You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
747 lines
28 KiB
747 lines
28 KiB
var set_preference = (function($, window, jQuery) {
|
|
|
|
/* Stop validator from firing on keyprss */
|
|
$.validator.setDefaults({
|
|
onkeyup: false
|
|
});
|
|
let selectedCountryCode;
|
|
var _vars_ = {};
|
|
|
|
return {
|
|
"set_vars": function(options) {
|
|
$.extend(_vars_, options || {});
|
|
},
|
|
|
|
"get_vars": function() {
|
|
return _vars_;
|
|
},
|
|
|
|
"form": {
|
|
|
|
"validate": function(options) {
|
|
$("#e_pref").text("").hide();
|
|
|
|
var custom_val = true;
|
|
if (typeof options.custom_validation != "undefined") {
|
|
custom_val = options.custom_validation();
|
|
}
|
|
app._form._resetFormValidation(options.validation.form_id);
|
|
|
|
var valOPtions = {
|
|
ignore: options.validation.ignore,
|
|
highlight: function(element) {
|
|
$(element).closest('.form-group').addClass('has-error');
|
|
$(element).closest('.form-label-group').addClass('has-error');
|
|
},
|
|
unhighlight: function(element) {
|
|
$(element).closest('.form-group').removeClass('has-error');
|
|
$(element).closest('.form-label-group').removeClass('has-error');
|
|
},
|
|
errorElement: 'span',
|
|
errorClass: 'help-block',
|
|
errorPlacement: function(error, element) {
|
|
|
|
// if (element.hasClass("multi-checkbox")) {
|
|
// error.insertAfter($(".event-pref label")).addClass("pull-right");
|
|
// } else if( element.attr("id") == "country"){
|
|
// $(".select2-container--default .select2-selection--single").css({"border-color" : "#a94442" })
|
|
// error.insertAfter('.with-country-custom-error').css({"color":"#a94442", "float":"right"});
|
|
// }else if( element.attr("id") == "Concert"){
|
|
// error.insertAfter('.with-event-preferences-custom-error').css({"color":"#a94442", "float":"left"});
|
|
// }else if( element.attr("name") == "civility" ){
|
|
// error.insertAfter('.with-civility-custom-error').css({"color":"#a94442"});
|
|
// } else {
|
|
// error.insertAfter(element);
|
|
// }
|
|
|
|
if (element.hasClass("multi-checkbox")) {
|
|
error.insertAfter('.with-event-preferences-custom-error').addClass('error-msg');
|
|
$('.with-event-preferences-custom-error').addClass('error-msg');
|
|
|
|
} else if (element.attr("id") == "country") {
|
|
$(".select2-container--default .select2-selection--single").css({
|
|
"border-color": "#a94442 !important"
|
|
})
|
|
error.insertAfter('.with-country-custom-error').addClass('error-msg');
|
|
$('.with-country-custom-error').addClass('error-msg');
|
|
} else if (element.attr("id") == "Concert") {
|
|
error.insertAfter('.with-event-preferences-custom-error').addClass('error-msg');
|
|
} else if (element.attr("name") == "civility") {
|
|
error.insertAfter('.with-civility-custom-error').addClass('error-msg');
|
|
$('.with-civility-custom-error').addClass('error-msg');
|
|
} else if (element.attr("name") == "first_name") {
|
|
error.insertAfter('.with-fname-error').addClass('error-msg');
|
|
$('.with-fname-error').addClass('error-msg');
|
|
} else if (element.attr("name") == "last_name") {
|
|
error.insertAfter('.with-lname-error').addClass('error-msg');
|
|
$('.with-lname-error').addClass('error-msg');
|
|
} else if (element.attr("name") == "birthday") {
|
|
error.insertAfter('.with-birthday-error').addClass('error-msg');
|
|
$('.with-birthday-error').addClass('error-msg');
|
|
} else if (element.attr("name") == "address") {
|
|
error.insertAfter('.with-address-error').addClass('error-msg');
|
|
$('.with-address-error').addClass('error-msg');
|
|
} else if (element.attr("name") == "additional_address") {
|
|
error.insertAfter('.with-additionaladdress-error').addClass('error-msg');
|
|
$('.with-additionaladdress-error').addClass('error-msg');
|
|
} else if (element.attr("name") == "postal_code") {
|
|
error.insertAfter('.with-postal_code-error').addClass('error-msg');
|
|
$('.with-postal_code-error').addClass('error-msg');
|
|
} else if (element.attr("name") == "city") {
|
|
error.insertAfter('.with-city-error').addClass('error-msg');
|
|
$('.with-city-error').addClass('error-msg');
|
|
} else if (element.attr("name") == "mobile") {
|
|
error.insertAfter('.with-mobile-error').addClass('error-msg');
|
|
$('.with-mobile-error').addClass('error-msg');
|
|
} else if (element.attr("name") == "phone") {
|
|
error.insertAfter('.with-phone-error').addClass('error-msg');
|
|
$('.with-phone-error').addClass('error-msg');
|
|
} else {
|
|
error.insertAfter(element);
|
|
// app._notify("error", "Enregistrement impossible, merci de vérifier les informations complétées.");
|
|
}
|
|
},
|
|
submitHandler: function() {
|
|
return false;
|
|
}
|
|
};
|
|
var form = $(options.validation.form_id);
|
|
var rulesReset = form.data('validator');
|
|
|
|
if (typeof rulesReset != "undefined") {
|
|
rulesReset.settings.rules = options.validation.rules;
|
|
form.data('validator', rulesReset);
|
|
valOPtions.rules = options.validation.rules;
|
|
} else {
|
|
valOPtions.rules = options.validation.rules;
|
|
}
|
|
|
|
try {
|
|
//validate form
|
|
form.validate(valOPtions);
|
|
|
|
//put the bootbox dialog outside to prevent it from caching
|
|
if (form.valid()) {
|
|
if (custom_val) {
|
|
// if(Helper._prefix($("#mobile").val()) < 9){
|
|
// app._form._populate_field_error("mobile", "Entrez au moins 9 chiffres.", 0);
|
|
// }else if(Helper._prefix($("#phone").val()) < 9){
|
|
// app._form._populate_field_error("phone", "Entrez au moins 9 chiffres.", 0);
|
|
// }else{
|
|
// }
|
|
set_preference.update();
|
|
}
|
|
}else{
|
|
app._notify("error", "Enregistrement impossible, merci de vérifier les informations complétées.");
|
|
}
|
|
} catch (e) {
|
|
console.log(e);
|
|
};
|
|
}
|
|
},
|
|
|
|
"create_require_asteriks": function() {
|
|
$.getJSON(app.get_vars().baseurl + "personalize/create_reg_form_rules", function(jsonData) {
|
|
for (var i = 0; i < jsonData.length; i++) {
|
|
if ("civility" == jsonData[i].name && jsonData[i].required != true)
|
|
$('.civility').hide();
|
|
if ("first_name" == jsonData[i].name && jsonData[i].required != true)
|
|
$('.first_name').hide();
|
|
if ("last_name" == jsonData[i].name && jsonData[i].required != true)
|
|
$('.last_name').hide();
|
|
if ("birthday" == jsonData[i].name && jsonData[i].required != true)
|
|
$('.birthday').hide();
|
|
if ("address" == jsonData[i].name && jsonData[i].required != true)
|
|
$('.address').hide();
|
|
if ("additional_address" == jsonData[i].name && jsonData[i].required != true)
|
|
$('.additional_address').hide();
|
|
if ("country" == jsonData[i].name && jsonData[i].required != true)
|
|
$('.country_required').hide();
|
|
if ("postal_code" == jsonData[i].name && jsonData[i].required != true)
|
|
$('.postal_code').hide();
|
|
if ("city" == jsonData[i].name && jsonData[i].required != true)
|
|
$('.city').hide();
|
|
if ("mobile" == jsonData[i].name && jsonData[i].required != true)
|
|
$('.mobile').hide();
|
|
if ("phone" == jsonData[i].name && jsonData[i].required != true)
|
|
$('.phone').hide();
|
|
if ("event_preferences" == jsonData[i].name && jsonData[i].required != true)
|
|
$('.event_preferences_error').hide();
|
|
|
|
// if( "event_preferences" == jsonData[i].name && jsonData[i].required == true)
|
|
// $('span#event_preferences').append(' <span class="font-required">*</span>');
|
|
|
|
// if( "civility" == jsonData[i].name && jsonData[i].required == true)
|
|
// $('span#civility').append(' <span class="font-required">*</span>');
|
|
|
|
// $('form#set_preferences_form label').each(function() {
|
|
// $this = $(this)
|
|
// if($this.attr('for') == jsonData[i].name && jsonData[i].required == true && "civility" != jsonData[i].name && "country" != jsonData[i].name && "first_name" != jsonData[i].name && "last_name" != jsonData[i].name && "birthday" != jsonData[i].name && "address" != jsonData[i].name && "additional_address" != jsonData[i].name && "postal_code" != jsonData[i].name && "city" != jsonData[i].name && "phone" != jsonData[i].name && "mobile" != jsonData[i].name )
|
|
// {
|
|
// $('.error-sign').append(' <span class="font-required">*</span>');
|
|
// }
|
|
// });
|
|
}
|
|
});
|
|
},
|
|
|
|
"validation": function() {
|
|
// var validator = $( "#set_preferences_form" ).validate();
|
|
|
|
// $.validator.addMethod("checklengthmobile", function (value, element) {
|
|
// return $("#mobile").val() != "+[33] X XX XX XX XX";
|
|
// }, "Entrez au moins 9 chiffres." );
|
|
//
|
|
//
|
|
// $.validator.addMethod("checklengthphone", function (value, element) {
|
|
// return $("#phone").val() != "+[33] X XX XX XX XX";
|
|
// }, "Entrez au moins 9 chiffres." );
|
|
|
|
$.validator.addMethod("checkPostalCode", function(value, element) {
|
|
var postalIsValid = false;
|
|
$.ajax({
|
|
url: app.get_vars().baseurl + "setPreferences/validateFormat/postal?postal=" + value + "&countryCode=" + element.dataset.countryCode,
|
|
async: false,
|
|
success: function(response) {
|
|
postalIsValid = response.isValid;
|
|
}
|
|
});
|
|
return postalIsValid;
|
|
}, "Le code postal ne correspond pas au pays renseigné.");
|
|
|
|
|
|
$.validator.addMethod("checkPhoneNumber", function(value, element) {
|
|
var errorMsg = '',phoneIsValid = false;
|
|
$.ajax({
|
|
url: app.get_vars().baseurl + "setPreferences/validateFormat/phone?phone=" + value + "&countryCode=" + element.dataset.countryCode,
|
|
async: false,
|
|
success: function(response) {
|
|
if (response.isValid == "empty"){
|
|
errorMsg = 'Ce champ est obligatoire.';
|
|
phoneIsValid = false;
|
|
}else if(response.isValid == "invalide"){
|
|
errorMsg = 'Numéro de téléphone invalide.';
|
|
phoneIsValid = false;
|
|
}else if (response.isValid == false){
|
|
errorMsg = 'Le code indicatif téléphone ne correspond pas au pays renseigné.';
|
|
phoneIsValid = response.isValid;
|
|
}else {
|
|
phoneIsValid = true;
|
|
}
|
|
}
|
|
});
|
|
$.validator.messages["checkPhoneNumber"] = errorMsg;
|
|
return phoneIsValid;
|
|
}, '');
|
|
|
|
|
|
$.getJSON(app.get_vars().baseurl + "personalize/create_reg_form_rules", function(jsonData) {
|
|
|
|
var r_civility;
|
|
var r_first_name;
|
|
var r_last_name;
|
|
var r_bday;
|
|
var r_address;
|
|
var r_additional_address;
|
|
var r_country;
|
|
var r_postal_code;
|
|
var r_city;
|
|
var r_email_address;
|
|
var r_mobile;
|
|
var r_phone;
|
|
var r_preference;
|
|
|
|
for (var i = 0; i < jsonData.length; i++) {
|
|
switch (jsonData[i].name) {
|
|
case "civility":
|
|
r_civility = jsonData[i].required;
|
|
break;
|
|
case "first_name":
|
|
r_first_name = jsonData[i].required;
|
|
break;
|
|
case "last_name":
|
|
r_last_name = jsonData[i].required;
|
|
break;
|
|
case "birthday":
|
|
r_bday = jsonData[i].required;
|
|
break;
|
|
case "address":
|
|
r_address = jsonData[i].required;
|
|
break;
|
|
case "additional_address":
|
|
r_additional_address = jsonData[i].required;
|
|
break;
|
|
case "country":
|
|
r_country = jsonData[i].required;
|
|
break;
|
|
case "postal_code":
|
|
r_postal_code = jsonData[i].required;
|
|
break;
|
|
case "city":
|
|
r_city = jsonData[i].required;
|
|
break;
|
|
case "email_address":
|
|
r_email_address = jsonData[i].required;
|
|
break;
|
|
case "mobile":
|
|
r_mobile = jsonData[i].required;
|
|
break;
|
|
case "phone":
|
|
r_phone = jsonData[i].required;
|
|
break;
|
|
case "event_preferences":
|
|
r_preference = jsonData[i].required;
|
|
break;
|
|
}
|
|
}
|
|
|
|
var options = {
|
|
//custom_validation : set_preference.custom_validation,
|
|
validation: {
|
|
// ignore : "[readonly]",
|
|
form_id: "form#set_preferences_form",
|
|
rules: {
|
|
civility: {
|
|
required: r_civility
|
|
},
|
|
first_name: {
|
|
required: r_first_name
|
|
},
|
|
last_name: {
|
|
required: r_last_name
|
|
},
|
|
birthday: {
|
|
required: r_bday
|
|
},
|
|
address: {
|
|
required: r_address
|
|
},
|
|
additional_address: {
|
|
required: r_additional_address
|
|
},
|
|
country: {
|
|
required: r_country
|
|
},
|
|
postal_code: {
|
|
// digits: true,
|
|
required: r_postal_code,
|
|
checkPostalCode: r_postal_code
|
|
},
|
|
city: {
|
|
required: r_city
|
|
},
|
|
mobile: {
|
|
required: r_mobile,
|
|
// checklengthmobile: r_mobile
|
|
checkPhoneNumber: r_mobile,
|
|
},
|
|
phone: {
|
|
required: r_phone,
|
|
// checklengthphone: r_phone
|
|
checkPhoneNumber: r_phone
|
|
},
|
|
"preference[]": {
|
|
minlength: 1,
|
|
required: r_preference
|
|
}
|
|
}
|
|
}
|
|
};
|
|
set_preference.form.validate(options);
|
|
}, 'json');
|
|
},
|
|
|
|
/*"custom_validation" : function() {
|
|
var error = true;
|
|
var telephone_no = $("#phone").val();
|
|
var mobile_no = $("#mobile").val()
|
|
|
|
if(telephone_no == "+[33] X XX XX XX XX" || mobile_no == "+[33] X XX XX XX XX") {
|
|
$(".err-phone").hide()
|
|
} else {
|
|
error = false;
|
|
$(".err-phone").show()
|
|
}
|
|
|
|
if(mobile_no.length == 0 || mobile_no.length == 10) {
|
|
$(".err-mobile").hide()
|
|
} else {
|
|
error = false;
|
|
$(".err-mobile").show()
|
|
}
|
|
|
|
return error;
|
|
},*/
|
|
|
|
"save_preferences_btn": function(btn, remove, duration) {
|
|
$(btn).attr("disabled", true);
|
|
|
|
if (remove) window.setTimeout(function() {
|
|
$(btn).removeAttr("disabled")
|
|
}, duration);
|
|
},
|
|
|
|
"update": function() {
|
|
|
|
//disabled button to prevent duplicate
|
|
set_preference.save_preferences_btn("#save_preferences_btn", true, 5000);
|
|
|
|
let formData = $("form#set_preferences_form").serializeArray();
|
|
|
|
//quick fix for telephone fixe that saves the placeholder instead an empty value
|
|
let explode = (formData[11].value).trim().split(" ");
|
|
|
|
if (formData[11].value.indexOf("X") != -1 || typeof explode[1] == "undefined" || (typeof explode[1] != "undefined" && explode[1].trim().length < 1)) {
|
|
formData[11].value = "";
|
|
}
|
|
|
|
$.ajax({
|
|
url: app.get_vars().baseurl + "profile/preferences/setPreferences",
|
|
type: "POST",
|
|
data: formData,
|
|
success: function(result) {
|
|
if (!result.nomessage) {
|
|
if (result.message != null) {
|
|
app._notify(result.mtype, result.message);
|
|
}
|
|
}
|
|
if (result.mtype == "session_timeout") {
|
|
window.setTimeout(function() {
|
|
window.location.href = result.mdetail.path;
|
|
}, result.mdetail.redirect);
|
|
} else if (result.mtype == "success") {
|
|
|
|
//disabled button to prevent duplicate
|
|
set_preference.save_preferences_btn("#save_preferences_btn", false, 5000);
|
|
|
|
//reload grid
|
|
window.setTimeout(function() {
|
|
window.location.href = app.get_vars().baseurl;
|
|
}, 2000);
|
|
} else {
|
|
var x = 0;
|
|
$.map(result.mdetail, function(input, i) {
|
|
app._form._populate_field_error(input.field, input.message, x);
|
|
x++;
|
|
});
|
|
}
|
|
}
|
|
});
|
|
},
|
|
|
|
"prevent_page_load": function() {
|
|
history.pushState(null, null, document.url);
|
|
window.addEventListener('popstate', function() {
|
|
//$.ajax({
|
|
// url : app.get_vars().baseurl+"is_alive/",
|
|
// type : "POST",
|
|
// data : {
|
|
// action : 1
|
|
// },
|
|
// success : function(result){
|
|
// console.log(result)
|
|
// if(result.redirect==1){
|
|
// //window.location.href = app.get_vars().baseurl+"login";
|
|
// }
|
|
// }
|
|
//});
|
|
var d = decodeURIComponent(set_preference.getCookie("_sdllmea"));
|
|
if (d.indexOf("first_logged_in") <= -1) {
|
|
window.location.href = app.get_vars().baseurl;
|
|
} else {
|
|
history.pushState(null, null, document.url);
|
|
}
|
|
|
|
});
|
|
},
|
|
|
|
"getCookie": function(name) {
|
|
var value = "; " + document.cookie;
|
|
var parts = value.split("; " + name + "=");
|
|
if (parts.length == 2) return parts.pop().split(";").shift();
|
|
},
|
|
|
|
"postal_min_max": function() {
|
|
|
|
// $("#postal_code").attr("readonly", true);
|
|
|
|
$('#country').on('keypress, blur', function() {
|
|
var values = $.trim($(this).val());
|
|
if (values.length > 0)
|
|
$("#postal_code").removeAttr("readonly");
|
|
else
|
|
$("#postal_code").attr("readonly", true);
|
|
});
|
|
|
|
$('#country').on('change', function() {
|
|
$("#postal_code").val('');
|
|
if (this.value.toLowerCase() === "france") {
|
|
$("#postal_code").removeAttr("readonly");
|
|
$("#postal_code").attr("minlength", 5);
|
|
$("#postal_code").attr("maxlength", 5);
|
|
$("#postal_code").attr("onkeypress", "return Helper.validate_numbers(event)");
|
|
} else if (this.value.toLowerCase() !== "france") {
|
|
$("#postal_code").removeAttr("readonly");
|
|
$("#postal_code").removeAttr("minlength");
|
|
$("#postal_code").removeAttr("maxlength");
|
|
$("#postal_code").removeAttr("onkeypress");
|
|
}
|
|
})
|
|
},
|
|
|
|
"civility_option": function(civility_option) {
|
|
$(civility_option).on('change', function() {
|
|
$(civility_option).not(this).prop('checked', false);
|
|
});
|
|
},
|
|
|
|
"country_list": function() {
|
|
$("#country").select2({
|
|
// placeholder: {
|
|
// id: "-1",
|
|
// text: 'Pays'
|
|
// }
|
|
/*sorter: function(data) {
|
|
return data.sort(function (a, b) {
|
|
a = a.text.toLowerCase();
|
|
b = b.text.toLowerCase();
|
|
if (a > b) {
|
|
if(a=="france" || b =="france")
|
|
return -1
|
|
else return 1
|
|
}
|
|
if (a < b) {
|
|
return -1;
|
|
}
|
|
return 0;
|
|
});
|
|
}*/
|
|
});
|
|
$('.country').addClass('country_selected');
|
|
$('#country').val('France'); // Select the option with a value of '1'
|
|
$('#country').trigger('change'); // Notify any JS components that the value changed
|
|
|
|
var selectedCountryCode = $('#country').children(":selected").attr("id");
|
|
$('#postal_code').attr('data-country-code', selectedCountryCode);
|
|
$('#mobile').attr('data-country-code', selectedCountryCode);
|
|
$('#phone').attr('data-country-code', selectedCountryCode);
|
|
|
|
if ($('#country').val().toLowerCase() === "france") {
|
|
$("#postal_code").removeAttr("readonly");
|
|
$("#postal_code").attr("minlength", 5);
|
|
$("#postal_code").attr("maxlength", 5);
|
|
$("#postal_code").attr("onkeypress", "return Helper.validate_numbers(event)");
|
|
} else if ($('#country').val().toLowerCase() !== "france") {
|
|
$("#postal_code").removeAttr("readonly");
|
|
$("#postal_code").removeAttr("minlength");
|
|
$("#postal_code").removeAttr("maxlength");
|
|
$("#postal_code").removeAttr("onkeypress");
|
|
}
|
|
|
|
$.ajax({
|
|
url: app.get_vars().baseurl + "setPreferences/getPhoneNumberFormat/" + selectedCountryCode,
|
|
async: false,
|
|
success: function(response) {
|
|
$('#postal_code').removeAttr('readonly');
|
|
$('#mobile').removeAttr('readonly');
|
|
$('#phone').removeAttr('readonly');
|
|
$('#mobile').removeAttr('placeholder');
|
|
$('#phone').removeAttr('placeholder');
|
|
$('#mobile').val('');
|
|
$('#phone').val('');
|
|
$('#mobile').unmask();
|
|
$('#phone').unmask();
|
|
|
|
if (selectedCountryCode == 'FR') {
|
|
$('#mobile').attr('placeholder', `+[33] X XX XX XX XX`);
|
|
$('#phone').attr('placeholder', `+[33] X XX XX XX XX`);
|
|
|
|
//create prefix
|
|
// Helper._create_prefix("#phone");
|
|
// Helper._create_prefix("#mobile");
|
|
|
|
// Helper.mask_setpref("#phone", `floooor X XX XX XX XX`, `+[33] X XX XX XX XX`);
|
|
Helper.mask_setpref("#mobile", `floooor X XX XX XX XX`, `+[33] X XX XX XX XX`);
|
|
|
|
} else {
|
|
$('#mobile').attr('placeholder', `+[${response.code}] ${response.format}`);
|
|
$('#phone').attr('placeholder', `+[${response.code}] ${response.format}`);
|
|
|
|
//create prefix
|
|
// Helper._create_prefix("#phone", response.code, response.format);
|
|
// Helper._create_prefix("#mobile", response.code, response.format);
|
|
|
|
Helper.mask_setpref("#phone", `floooor ${response.format}`, `+[${response.code}] ${response.format}`);
|
|
Helper.mask_setpref("#mobile", `floooor ${response.format}`, `+[${response.code}] ${response.format}`);
|
|
}
|
|
}
|
|
});
|
|
|
|
}
|
|
};
|
|
|
|
// Pass in jQuery.
|
|
})(jQuery, this);
|
|
|
|
$(function() {
|
|
//focus first element
|
|
$("#first_name").focus();
|
|
|
|
//create dropdown list of countries
|
|
set_preference.country_list();
|
|
|
|
//hide first custom error message on mobile ang phone
|
|
$(".err-mobile, .err-phone").hide();
|
|
|
|
//create datepicker for b-day then call validation onchange
|
|
$('#birthday').datetimepicker({
|
|
format: 'DD/MM/YYYY',
|
|
locale: 'fr',
|
|
icons: {
|
|
next: "fas fa-chevron-right fa-sm",
|
|
previous: "fas fa-chevron-left fa-sm"
|
|
}
|
|
}).on('dp.change', function(e) {
|
|
if ($(e.target).val().length > 0) {
|
|
if ($(e.target).prop("name")) {
|
|
$(e.target).closest('.form-group').removeClass('has-error').find("span.help-block").text('')
|
|
}
|
|
}
|
|
}).on('dp.show', function(e) {
|
|
if($(e.target).val().trim() != ""){
|
|
return $(e.target).data('DateTimePicker').date(null);
|
|
} else {
|
|
// return $(this).data('DateTimePicker').date(moment($(this).val(), "DD/MM/YYYY HH[h]mm", true));
|
|
}
|
|
}).on('dp.hide', function() {
|
|
$(this).blur();
|
|
});
|
|
//validate form on submit
|
|
$('#save_preferences_btn').off('click').on('click', function(event) {
|
|
event.preventDefault();
|
|
set_preference.validation();
|
|
});
|
|
|
|
//remove validation errors on keypress
|
|
app._form._form_on_keypress("set_preferences_form", function() {
|
|
set_preference.validation();
|
|
});
|
|
|
|
//remove validation errors on select for country
|
|
$('select.s1').on('change', function(e) {
|
|
if ($(e.target).val().length > 0) {
|
|
if ($(e.target).prop("name")) {
|
|
$(".select2-container--default .select2-selection--single").css({
|
|
"border-color": "#ccc"
|
|
})
|
|
$(e.target).closest('.form-label-group').removeClass('has-error').find("span.help-block").text('')
|
|
}
|
|
}
|
|
|
|
//remove error on telephone field
|
|
$('#mobile').closest('.form-label-group').removeClass('has-error').find("span.help-block").text('');
|
|
});
|
|
|
|
$('.textboxes').on('keypress',function (e) {
|
|
$(e.target).closest('.form-label-group').removeClass('has-error').find("span.help-block").text('');
|
|
})
|
|
|
|
//civility checkbox options
|
|
set_preference.civility_option('input#civility');
|
|
|
|
//create asterisk for required fields accordingly
|
|
set_preference.create_require_asteriks();
|
|
|
|
//chnage postal value lengt if france max 5 numbers else other countries greater than 5
|
|
set_preference.postal_min_max();
|
|
|
|
set_preference.prevent_page_load();
|
|
|
|
$.fn.setCursorPosition = function(pos) {
|
|
this.each(function(index, elem) {
|
|
if (elem.setSelectionRange) {
|
|
elem.setSelectionRange(pos, pos);
|
|
} else if (elem.createTextRange) {
|
|
var range = elem.createTextRange();
|
|
range.collapse(true);
|
|
range.moveEnd('character', pos);
|
|
range.moveStart('character', pos);
|
|
range.select();
|
|
}
|
|
});
|
|
return this;
|
|
};
|
|
|
|
//mask phone and mobile
|
|
//Helper.input_mask("#phone", "[~][~][~] X XX XX XX XX" );
|
|
//Helper.input_mask("#mobile", "[~][~][~] X XX XX XX XX" );
|
|
|
|
|
|
/*$('#phone').on('click',function(){
|
|
setTimeout(function(){
|
|
$('input[name=phone]').focus().setCursorPosition(1);
|
|
}, 0);
|
|
});
|
|
|
|
$('#mobile').on('click', function(){
|
|
setTimeout(function(){
|
|
$('input[name=mobile]').focus().setCursorPosition(1);
|
|
}, 0);
|
|
});*/
|
|
|
|
$(window).on('load', function() {
|
|
// $('#firstPopUp').modal({
|
|
// backdrop: 'static',
|
|
// keyboard: false
|
|
// });
|
|
});
|
|
|
|
$('label.country').on('click', function (e) {
|
|
$('#country').select2('open');
|
|
});
|
|
|
|
$('select#country').on("select2:select", function(e) {
|
|
$('.country').addClass('country_selected');
|
|
var selectedCountryCode = e.params.data.element.id;
|
|
$('#postal_code').attr('data-country-code', selectedCountryCode);
|
|
$('#mobile').attr('data-country-code', selectedCountryCode);
|
|
$('#phone').attr('data-country-code', selectedCountryCode);
|
|
|
|
$.ajax({
|
|
url: app.get_vars().baseurl + "setPreferences/getPhoneNumberFormat/" + selectedCountryCode,
|
|
async: false,
|
|
success: function(response) {
|
|
$('#postal_code').removeAttr('readonly');
|
|
$('#mobile').removeAttr('readonly');
|
|
$('#phone').removeAttr('readonly');
|
|
$('#mobile').removeAttr('placeholder');
|
|
$('#phone').removeAttr('placeholder');
|
|
$('#mobile').val('');
|
|
$('#phone').val('');
|
|
$('#mobile').unmask();
|
|
$('#phone').unmask();
|
|
|
|
if (selectedCountryCode == 'FR') {
|
|
$('#mobile').attr('placeholder', `+[33] X XX XX XX XX`);
|
|
$('#phone').attr('placeholder', `+[33] X XX XX XX XX`);
|
|
|
|
//create prefix
|
|
// Helper._create_prefix("#phone");
|
|
// Helper._create_prefix("#mobile");
|
|
Helper.mask_setpref("#phone", `floooor X XX XX XX XX`, `+[33] X XX XX XX XX`);
|
|
Helper.mask_setpref("#mobile", `floooor X XX XX XX XX`, `+[33] X XX XX XX XX`);
|
|
} else {
|
|
$('#mobile').attr('placeholder', `+[${response.code}] ${response.format}`);
|
|
$('#phone').attr('placeholder', `+[${response.code}] ${response.format}`);
|
|
|
|
//create prefix
|
|
// Helper._create_prefix("#phone", response.code, response.format);
|
|
// Helper._create_prefix("#mobile", response.code, response.format);
|
|
Helper.mask_setpref("#phone", `floooor ${response.format}`, `+[${response.code}] ${response.format}`);
|
|
Helper.mask_setpref("#mobile", `floooor ${response.format}`, `+[${response.code}] ${response.format}`);
|
|
}
|
|
}
|
|
});
|
|
})
|
|
|
|
});
|
|
|