134 lines
4.7 KiB
JavaScript
Executable File
134 lines
4.7 KiB
JavaScript
Executable File
/* [1] On récupère les 2 <select> de création de RDV
|
|
===============================================================*/
|
|
var newRDVPatient = document.getElementById('newRDVPatient');
|
|
var newRDVMedecin = document.getElementById('newRDVMedecin');
|
|
|
|
/* [2] Si on a récupéré les 2 <select>, on créé l'évènement de selection dynamique
|
|
===============================================================*/
|
|
if( newRDVPatient != null && newRDVMedecin != null ){
|
|
|
|
/* [1] On selectionne dynamiquement le médecin traitant associé
|
|
=======================================================================*/
|
|
newRDVPatient.addEventListener('change', function(e){
|
|
var child = document.querySelector("#newRDVPatient > option[value='"+newRDVPatient.value+"'][data-medecin]");
|
|
|
|
// on selectionne le medecin associé
|
|
newRDVMedecin.value = child.dataset.medecin;
|
|
addClass(newRDVMedecin, 'associated');
|
|
}, false);
|
|
|
|
|
|
// [1] On met en valeur le médecin traitant associé (class=associated)
|
|
// =======================================================================
|
|
newRDVMedecin.addEventListener('change', function(e){
|
|
var child = document.querySelector("#newRDVPatient > option[value='"+newRDVPatient.value+"'][data-medecin]");
|
|
if( newRDVMedecin.value == child.dataset.medecin ) // si c'est le medecin traitant, on met en valeur l'association
|
|
addClass(newRDVMedecin, 'associated');
|
|
else
|
|
remClass(newRDVMedecin, 'associated');
|
|
|
|
}, false);
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/* VERIFICATION DES CHAMPS */
|
|
var inCk = new inputChecker();
|
|
var inDate = document.getElementById('inDate');
|
|
var inHeure = document.getElementById('inHeure');
|
|
var inSecu = document.getElementById('inSecu');
|
|
|
|
|
|
// format de date simplifié
|
|
var dateFormat = new formatChecker(null,
|
|
'Ji/Mi/2iii', { 'J': '[0-3]', 'M': '[0-1]' }
|
|
);
|
|
|
|
// format de temps simplifié
|
|
var timeFormat = new formatChecker(null,
|
|
'Hi:Mi', { 'H': '[0-2]', 'M': '[0-6]' }
|
|
);
|
|
// format numéro SECU simplifié
|
|
var secuFormat = new formatChecker(null,
|
|
'S ii Mi ii iii iii ii', { 'S': '[0-1]', 'M': '[0-1]' }
|
|
);
|
|
|
|
|
|
|
|
|
|
var now = new Date();
|
|
inCk.append( inDate, dateFormat, now.toLocaleFormat('%d/%m/%Y') );
|
|
inCk.append( inHeure, timeFormat, now.toLocaleFormat('%H:%M') );
|
|
inCk.append( inSecu, secuFormat, inSecu.placeholder );
|
|
|
|
|
|
inDate.addEventListener('keyup', function(e){
|
|
if( inCk.check(inDate) ) addClass(inDate, 'validated'); // on active la classe si correct
|
|
else{ // si incorrect
|
|
remClass(inDate, 'validated'); // on désactive la classe
|
|
inCk.correct(inDate, false); // on corrige partiellement
|
|
if( inCk.check(inDate) ) addClass(inDate, 'validated'); // mise à jour de la classe après correction
|
|
}
|
|
}, false);
|
|
|
|
|
|
inHeure.addEventListener('keyup', function(e){
|
|
if( inCk.check(inHeure) ) addClass(inHeure, 'validated'); // on active la classe
|
|
else{ // si incorrect
|
|
remClass(inHeure, 'validated'); // on désactive la classe
|
|
inCk.correct(inHeure, false); // on corrige partiellement
|
|
if( inCk.check(inHeure) ) addClass(inHeure, 'validated'); // mise à jour de la classe après correction
|
|
}
|
|
}, false);
|
|
|
|
inDuree.addEventListener('keyup', function(e){
|
|
if( !isNaN(parseInt(inDuree.value)) ){
|
|
inDuree.value = parseInt( inDuree.value ); // on caste en <int>
|
|
addClass(inDuree, 'validated'); // on active la classe si correct
|
|
}else // si incorrect
|
|
remClass(inDuree, 'validated'); // on désactive la classe
|
|
}, false);
|
|
|
|
function checkSecuControlKey(pNumSecu){
|
|
var NIR = pNumSecu.slice(0,-2).replace(/ /g, '');
|
|
var key = pNumSecu.slice(-2);
|
|
|
|
return 97-(NIR%97) == key;
|
|
}
|
|
|
|
inSecu.addEventListener('keyup', function(e){
|
|
if( inCk.check(inSecu) ){
|
|
|
|
if( checkSecuControlKey(inSecu.value) ){ // si la clé est correcte
|
|
addClass(inSecu, 'validated'); // on dis que le champ est valide
|
|
remClass(inSecu, 'invalid'); // on dis qu'il n'est pas invalide
|
|
}else{
|
|
remClass(inSecu, 'validated'); // on dis que le champ n'est pas valide
|
|
addClass(inSecu, 'invalid'); // on dis qu'il est invalide
|
|
}
|
|
|
|
}else{ // si incorrect
|
|
|
|
remClass(inSecu, 'validated'); // on désactive la classe
|
|
remClass(inSecu, 'invalid'); // on dis qu'il n'est pas invalide
|
|
|
|
inCk.correct(inSecu, false); // on corrige partiellement
|
|
if( inCk.check(inSecu) ){
|
|
|
|
if( checkSecuControlKey(inSecu.value) ){ // si la clé est correcte
|
|
addClass(inSecu, 'validated'); // on dis que le champ est valide
|
|
remClass(inSecu, 'invalid'); // on dis qu'il n'est pas invalide
|
|
}else{
|
|
remClass(inSecu, 'validated'); // on dis que le champ n'est pas valide
|
|
addClass(inSecu, 'invalid'); // on dis qu'il est invalide
|
|
}
|
|
}
|
|
}
|
|
}, false);
|
|
|
|
|
|
// inDate.value = 'x3 F3/a8';
|
|
// inHeure.value = 'x3 F3/a8';
|
|
inSecu.value = '1 96 01 31 555 861'; |