diff --git a/page/_JS/career.js b/page/_JS/career.js index 3dbbc16..42019fc 100755 --- a/page/_JS/career.js +++ b/page/_JS/career.js @@ -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 dans la liste - - saisieObj[i] = { - inputEl: saisieInput[i], // le en question - initval: parseFloat( saisieInput[i].value.replace(',', '.') ), // la valeur initiale du - button: saisieInput[i].parentNode.children[1], // le bouton de validation pour ce - 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 - }; - - // 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 dans la liste + + saisieObj[i] = { + inputEl: saisieInput[i], // le en question + initval: parseFloat( saisieInput[i].value.replace(',', '.') ), // la valeur initiale du + button: saisieInput[i].parentNode.children[1], // le bouton de validation pour ce + 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 + }; + + // 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 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 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); - + } } diff --git a/test.php b/test.php index a52858e..dca4a07 100755 --- a/test.php +++ b/test.php @@ -46,7 +46,7 @@ require_once __ROOT__.'/manager/security.php'; debug(); -$_SESSION['annee'] = 2019; +$_SESSION['annee'] = 2015; // require_once __ROOT__.'/manager/phpExcel.php'; // require_once __ROOT__.'/manager/groups.php';