var $P_Genders, $BD_Day, $BD_Month, $BD_Year, $P_Statuts, $CP, $CA, $alertCA, cp_Bruxelles; $(function () { // Récupération du token de chnagement de mot de passe (prioritaire sur tout autre traitement) if (eni.url.params().tk) { params = eni.url.params(); params['cl'] = eni.lng.code(); window.history.pushState('', document.title, document.location.pathname); eni.axc({Async:true,Type:'script', Url:'./actiris/ajax/reinitPwd.aspx', Data:params, Msg:job_in_progress}); }else{ init_Page(); } }); // initialition de la page init_Page = function(){ // test si utilisateur connecté if(!ac){ document.location='//'+document.location.hostname+$('.myTraining').attr("href").replace("./", "/");} else{ $P_Genders = $('#ctGender'); $BD_Day = $('#ctBD_Day'); $BD_Month = $('#ctBD_Month'); $BD_Year = $('#ctBD_Year'); $P_Statuts = $('#ctStatut'); $CP = $('#ctCP'); $CA = $('#ctCA'); $alertCA = $('#alertCA'); // Genre $.getJSON('./rsc/'+eni.lng.code()+'/genders.js', function(data) { $.each(data, function(idx, value) { $P_Genders.append(''); }); }); // Codes postaux $.getJSON('/rsc/'+eni.lng.code()+'/cp-bruxelles.js', function(data) { cp_Bruxelles = data; }); // Gestion des années year = (new Date()).getFullYear() - 18 for (var i = 1; i <= 100; i++) { $BD_Year.append(''); year-=1; } $BD_Year.change(function(){populate_Day()}) // Gestion des mois (avec libellé localisé) for (var i = 0; i < 12; i++) { var m = new Date(1999, i).toLocaleString(eni.lng.code(), {month: "long"}); $BD_Month.append(''); } $BD_Month.change(function(){populate_Day()}) // initailisation de toutes les combos $BD_Year.change() // Statuts $P_Statuts.on('input', function(e){console.log($P_Statuts.val());$P_Statuts[0].dataset.value = $P_Statuts.val();}) $.getJSON('./rsc/'+eni.lng.code()+'/statuts.js', function(data) { $.each(data, function(idx, value) { $P_Statuts.append(''); }); $P_Statuts.change(); }); // Récupération des données du compte eni.axc({Async:true,Type:'script', Url:'./actiris/ajax/infosAccount.aspx', Data:{'cl':eni.lng.code()}, fn:function(){ console.log(iac); if(iac){ $P_Genders.val(iac.Gender); $('#ctLastName').val(iac.LastName); $('#ctFirstName').val(iac.FirstName); $('#ctEmail').val(iac.Email); _BD = new Date(iac.Birthday) $BD_Day.val(_BD.getDate()); $BD_Month.val(_BD.getMonth()+1); $BD_Year.val(_BD.getFullYear()); $CP.val(iac.CP); $P_Statuts.val(iac.Statut); $P_Statuts[0].dataset.value = iac.Statut; $alertCA.html(iac.CA_Alert); if (iac.CA_Alert.length>0){$CA.addClass('Error');} else{$CA.val(iac.CA);} } $('#ACCOUNT > .container').addClass("show"); }}); $P_Statuts.change(); //------------------------------------------------------------------------ // Gestion du formulaire //------------------------------------------------------------------------ $formCDATAS_inputs = $('.formCDATAS > input'); if (is_mob_mode()){ $formCDATAS_inputs.each(function(){ $(this).attr('placeholder',$('[for='+$(this).attr('id')+']').text()) }); } $('.formCDATAS > [required]').each(function(){ $label = $('[for='+$(this).attr('id')+']'); if ($label.text().length > 0){ if (is_mob_mode()){ $(this).attr('placeholder', $label.text() + ' *'); }else{ $label.html('* '+$label.html()); } } }); $formCDATAS_inputs.focus(function(){$(this).removeClass('Error');}); $('#Send').click(function(){ var $form, _form={}, _title='', _errors='', _lst_feilds_incomplete='', _lst_feilds_error=''; // Récupération du formulaire prêt à être envoyé $form = $(this).closest('form'); _title = $form.data('error'); // Suppression de la class Error $form.find('input').not('[hidden]').removeClass('Error') .each(function(){ $field=$(this); if ($field.attr('required') == 'required'){ if ($field.val().length == 0) { if ($field.hasClass('flexdatalist')){$('#'+$field.attr('id')+'-flexdatalist').addClass('Error');} else{$field.addClass('Error');} var label = $('[for='+$field.attr('id')+']').text().replace('* ', ''); _lst_feilds_incomplete += (label.length > 0?'
   ' + $('[for='+$field.attr('id')+']').text().replace('* ', '') + '':' '); } } }) //if (_lst_feilds_error.length > 0) {_errors+=((_title + _errors).length>0?'
':'') + _lst_feilds_error} if (_lst_feilds_incomplete.length > 0) {_errors+=((_title + _errors).length>0?'
':'') + (_title.length>0?'- ':'') + $form.data('incomplete') + _lst_feilds_incomplete} else { // les tests de l'email et du mot de pase se font après validation des autres champs if (!email_pattern.test($('#ctEmail').val())){ _errors=$('#ctEmail').data('error'); $('#ctEmail').addClass('Error'); }else if ($("#ctPWD").val().length > 0){ if ($("#ctPWD").val().length < 6){ _errors=$("#ctPWD").data('error'); $("#ctPWD").addClass('Error'); }else if ($("#ctPWD").val() != $("#ctCPWD").val()){ _errors=$("#ctCPWD").data('error'); $("#ctCPWD").addClass('Error'); } } // test CP if (_errors.length === 0){ if (!_isContains(cp_Bruxelles, $CP.val())){ // commune invalide _errors=$CP.data('error').replace('%TARGET%', ($P_Statuts.val()!=="7"?$CP.data('target1'):$CP.data('target2'))); $CP.addClass('Error'); } } } if (_errors.length == 0) { // génération date de naissance $('#ctBirthday').val(new Date(Date.UTC($('#ctBD_Year').val(),$('#ctBD_Month').val()-1, $('#ctBD_Day').val())).toISOString().split("T")[0]) // Si tous les champs sont valides alors on envoie le formulaire $($form.find('input, select').serializeArray()).each(function(){ _form[this.name] = this.value; }); // On récupère également les données du formulaire précédent $($('.formVC').find('input').serializeArray()).each(function(){ _form[this.name] = this.value; }); // code langue _form['cl'] = eni.lng.code(); eni.axc({Async:true,Type:'script', Url:'./actiris/ajax/updateAccount.aspx', Data:_form, Msg:job_in_progress}); }else{ // Sinon alerte eni.msg({ Title: '', Content: _title + _errors}); } return false; }); } } // Mise à jour des données update_Page = function(_ac){ console.log(_ac); iac=_ac; if(iac){ $P_Genders.val(iac.Gender); $('#ctLastName').val(iac.LastName); $('#ctFirstName').val(iac.FirstName); $('#ctEmail').val(iac.Email); _BD = new Date(iac.Birthday) $BD_Day.val(_BD.getDate()); $BD_Month.val(_BD.getMonth()+1); $BD_Year.val(_BD.getFullYear()); $P_Statuts.val(iac.Statut); $CP.val(iac.CP); $CA.val(iac.CA); $alertCA.html(iac.CA_Alert); if (iac.CA_Alert.length>0){$CA.addClass('Error');} } } // population des jours en fonction du mois et de l'année sélectionnés populate_Day = function(){ d=new Date($BD_Year.val(), $BD_Month.val(), 1, -1).getDate(); ds=($BD_Day.val()?$BD_Day.val():1); $BD_Day.html(""); for (var i = 1; i <= d; i++) { $BD_Day.append(''); } // on sélectionne la date si possible avec la dernière date sélectionnée sinon 1er jour du mois $BD_Day.val((ds > d)?1:ds) } params = function(_url) { var parts = _url.replace("?", "").split("&"); var query_string = {}; for (var i = 0; i < parts.length; i++) { var pair = parts[i].split("="); if (typeof query_string[pair[0]] === "undefined") { query_string[pair[0]] = decodeURIComponent(pair[1]); } else if (typeof query_string[pair[0]] === "string") { var arr = [query_string[pair[0]], decodeURIComponent(pair[1])]; query_string[pair[0]] = arr; } else { query_string[pair[0]].push(decodeURIComponent(pair[1])); } } return query_string; } function _isContains(json, value) { let contains; Object.keys(json).some(key => { contains = typeof json[key] === 'object' ? _isContains(json[key], value) : json[key] == value; return contains; }); return contains; }