Correction de l'année d'importation pour modules@import
This commit is contained in:
parent
15959dd5af
commit
c10b29e43c
|
@ -120,120 +120,122 @@ if( document.querySelector('#CONTAINER section[name=controlesenseignants]') != n
|
|||
var toutEnregistrerBtn = document.querySelector("#CONTAINER section[name=controlesenseignants] table tr td:last-child .confirm.all");
|
||||
|
||||
|
||||
|
||||
// on référencie tous les input dans un objet
|
||||
for( var i = 0 ; i < saisieInput.length ; i++ ){
|
||||
|
||||
saisieInput[i].dataset.i = i; // le rang du <input> dans la liste
|
||||
|
||||
saisieObj[i] = {
|
||||
inputEl: saisieInput[i], // le <input> en question
|
||||
initval: parseFloat( saisieInput[i].value.replace(',', '.') ), // la valeur initiale du <input>
|
||||
button: saisieInput[i].parentNode.children[1], // le bouton de validation pour ce <input>
|
||||
ctrlid: saisieInput[i].dataset.ctrl, // on récupère l'id du contrôle
|
||||
userid: saisieInput[i].parentNode.parentNode.children[0].children[0].innerHTML // l'identifiant de l'utilisateur associé à ce <input>
|
||||
};
|
||||
|
||||
// on créé l'évènement qui affiche le validateur dès le changement de valeur
|
||||
saisieObj[i].inputEl.addEventListener('change', function(e){
|
||||
// on récupère le rang dans la liste et qu'il s'agit du même élément
|
||||
if( e.target.dataset.hasOwnProperty('i') && saisieObj[e.target.dataset.i].inputEl == e.target){
|
||||
var obj = saisieObj[e.target.dataset.i];
|
||||
var isActive = /active/.test(obj.inputEl.className); // VRAI si l'élément est actif
|
||||
if( toutEnregistrerBtn != null ){
|
||||
|
||||
|
||||
// si c'est une nouvelle valeur (nouvelle note), on active le validateur (bouton)
|
||||
if( obj.initval != parseFloat(obj.inputEl.value.replace(',', '.')) )
|
||||
addClass( obj.inputEl, 'active' );
|
||||
else
|
||||
remClass( obj.inputEl, 'active' );
|
||||
// on référencie tous les input dans un objet
|
||||
for( var i = 0 ; i < saisieInput.length ; i++ ){
|
||||
|
||||
saisieInput[i].dataset.i = i; // le rang du <input> dans la liste
|
||||
|
||||
saisieObj[i] = {
|
||||
inputEl: saisieInput[i], // le <input> en question
|
||||
initval: parseFloat( saisieInput[i].value.replace(',', '.') ), // la valeur initiale du <input>
|
||||
button: saisieInput[i].parentNode.children[1], // le bouton de validation pour ce <input>
|
||||
ctrlid: saisieInput[i].dataset.ctrl, // on récupère l'id du contrôle
|
||||
userid: saisieInput[i].parentNode.parentNode.children[0].children[0].innerHTML // l'identifiant de l'utilisateur associé à ce <input>
|
||||
};
|
||||
|
||||
// on créé l'évènement qui affiche le validateur dès le changement de valeur
|
||||
saisieObj[i].inputEl.addEventListener('change', function(e){
|
||||
// on récupère le rang dans la liste et qu'il s'agit du même élément
|
||||
if( e.target.dataset.hasOwnProperty('i') && saisieObj[e.target.dataset.i].inputEl == e.target){
|
||||
var obj = saisieObj[e.target.dataset.i];
|
||||
var isActive = /active/.test(obj.inputEl.className); // VRAI si l'élément est actif
|
||||
|
||||
|
||||
// si changement du caractère "actif", et plus particulièrement
|
||||
if( /active/.test(obj.inputEl.className) != isActive )
|
||||
if( !isActive ) // si activation
|
||||
nombreModification += 1;
|
||||
// si c'est une nouvelle valeur (nouvelle note), on active le validateur (bouton)
|
||||
if( obj.initval != parseFloat(obj.inputEl.value.replace(',', '.')) )
|
||||
addClass( obj.inputEl, 'active' );
|
||||
else
|
||||
nombreModification -= 1;
|
||||
|
||||
// si plus d'une modification, on affiche le bouton 'tout enregistrer'
|
||||
if( nombreModification > 1 )
|
||||
addClass( toutEnregistrerBtn, 'active' );
|
||||
else
|
||||
remClass( toutEnregistrerBtn, 'active' );
|
||||
|
||||
}
|
||||
}, false);
|
||||
remClass( obj.inputEl, 'active' );
|
||||
|
||||
|
||||
// on créé l'évènement de confirmation de la saisie
|
||||
saisieObj[i].button.addEventListener('click', function(e){
|
||||
// s'il s'agit bien d'un bouton de validation, que le <input> associé a data-i existante et que ça match correctement
|
||||
if( /confirm/.test(e.target.className) && e.target.parentNode.children[0].dataset.hasOwnProperty('i') && saisieObj[e.target.parentNode.children[0].dataset.i].button == e.target ){
|
||||
var obj = saisieObj[e.target.parentNode.children[0].dataset.i];
|
||||
// si changement du caractère "actif", et plus particulièrement
|
||||
if( /active/.test(obj.inputEl.className) != isActive )
|
||||
if( !isActive ) // si activation
|
||||
nombreModification += 1;
|
||||
else
|
||||
nombreModification -= 1;
|
||||
|
||||
var request = { // on définit la requête pour API
|
||||
level_0: 'career',
|
||||
level_1: 'saisieNote',
|
||||
etudiant: obj.userid,
|
||||
controle: obj.ctrlid,
|
||||
note: obj.inputEl.value.replace(',', '.'), // par précaution, on replace les virgules par des points pour le php (is_numeric)
|
||||
};
|
||||
|
||||
addClass( obj.button, 'loading' );
|
||||
|
||||
API.send(request, function(response){ // on gère la réponse de API, si déplacement effectué, on recharge la page
|
||||
if( response.request == 'success' ) reload();
|
||||
});
|
||||
// si plus d'une modification, on affiche le bouton 'tout enregistrer'
|
||||
if( nombreModification > 1 )
|
||||
addClass( toutEnregistrerBtn, 'active' );
|
||||
else
|
||||
remClass( toutEnregistrerBtn, 'active' );
|
||||
|
||||
}
|
||||
|
||||
}, false);
|
||||
}
|
||||
}, false);
|
||||
|
||||
|
||||
}
|
||||
// on créé l'évènement de confirmation de la saisie
|
||||
saisieObj[i].button.addEventListener('click', function(e){
|
||||
// s'il s'agit bien d'un bouton de validation, que le <input> associé a data-i existante et que ça match correctement
|
||||
if( /confirm/.test(e.target.className) && e.target.parentNode.children[0].dataset.hasOwnProperty('i') && saisieObj[e.target.parentNode.children[0].dataset.i].button == e.target ){
|
||||
var obj = saisieObj[e.target.parentNode.children[0].dataset.i];
|
||||
|
||||
var request = { // on définit la requête pour API
|
||||
level_0: 'career',
|
||||
level_1: 'saisieNote',
|
||||
etudiant: obj.userid,
|
||||
controle: obj.ctrlid,
|
||||
note: obj.inputEl.value.replace(',', '.'), // par précaution, on replace les virgules par des points pour le php (is_numeric)
|
||||
};
|
||||
|
||||
addClass( obj.button, 'loading' );
|
||||
|
||||
API.send(request, function(response){ // on gère la réponse de API, si déplacement effectué, on recharge la page
|
||||
if( response.request == 'success' ) reload();
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
}, false);
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
// on créé l'évènement de confirmation de la saisie de TOUTES les notes saisies ou modifiées
|
||||
toutEnregistrerBtn.addEventListener('click', function(e){
|
||||
// on créé l'évènement de confirmation de la saisie de TOUTES les notes saisies ou modifiées
|
||||
toutEnregistrerBtn.addEventListener('click', function(e){
|
||||
|
||||
addClass( toutEnregistrerBtn, 'loading' );
|
||||
addClass( toutEnregistrerBtn, 'loading' );
|
||||
|
||||
var toutesNotes = [];
|
||||
var toutesNotes = [];
|
||||
|
||||
var controleUID = null;
|
||||
var controleUID = null;
|
||||
|
||||
// on sélectionne toutes les valeurs contenues dans les lignes actives
|
||||
for( var i = 0 ; i < saisieObj.length ; i++ ){ if( /active/.test(saisieObj[i].inputEl.className) ){
|
||||
// on sélectionne toutes les valeurs contenues dans les lignes actives
|
||||
for( var i = 0 ; i < saisieObj.length ; i++ ){ if( /active/.test(saisieObj[i].inputEl.className) ){
|
||||
|
||||
if( controleUID == null ) controleUID = saisieObj[i].ctrlid;
|
||||
if( controleUID == null ) controleUID = saisieObj[i].ctrlid;
|
||||
|
||||
toutesNotes.push({
|
||||
etudiant: saisieObj[i].userid,
|
||||
valeur: saisieObj[i].inputEl.value.replace(',', '.') // par précaution, on replace les virgules par des points pour le php (is_numeric)
|
||||
toutesNotes.push({
|
||||
etudiant: saisieObj[i].userid,
|
||||
valeur: saisieObj[i].inputEl.value.replace(',', '.') // par précaution, on replace les virgules par des points pour le php (is_numeric)
|
||||
});
|
||||
|
||||
}}
|
||||
|
||||
|
||||
var request = { // on définit la requête pour API
|
||||
level_0: 'career',
|
||||
level_1: 'saisieNoteMultiple',
|
||||
controle: controleUID,
|
||||
notes: toutesNotes // on donne toutes les notes
|
||||
};
|
||||
|
||||
|
||||
API.send(request, function(response){ // on gère la réponse de API
|
||||
if( response.request == 'success' ) // si on a une réponse positive, on incrémente le nombre de succès
|
||||
reload();
|
||||
});
|
||||
|
||||
}}
|
||||
|
||||
|
||||
var request = { // on définit la requête pour API
|
||||
level_0: 'career',
|
||||
level_1: 'saisieNoteMultiple',
|
||||
controle: controleUID,
|
||||
notes: toutesNotes // on donne toutes les notes
|
||||
};
|
||||
|
||||
|
||||
API.send(request, function(response){ // on gère la réponse de API
|
||||
if( response.request == 'success' ) // si on a une réponse positive, on incrémente le nombre de succès
|
||||
reload();
|
||||
});
|
||||
|
||||
}, false);
|
||||
}, false);
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue