diff --git a/css/global.css b/css/global.css index cfc4578..7d3b2b4 100755 --- a/css/global.css +++ b/css/global.css @@ -283,6 +283,7 @@ td select > option{ padding: 0; } + /* @all */ .confirm.all, tr.grayscale .confirm{ margin-top: -.7em; } @@ -296,6 +297,9 @@ select.active + .confirm, display: inline-block; background-image: url(../src/validate.svg); } +.confirm.loading{ + background-image: url(../src/loader.gif); +} .confirm.center{ position: relative; diff --git a/page/_JS/career.js b/page/_JS/career.js index f95f7cf..4365bd8 100755 --- a/page/_JS/career.js +++ b/page/_JS/career.js @@ -180,6 +180,8 @@ if( document.querySelector('#CONTAINER section[name=controlesenseignants]') != n 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(); }); @@ -192,6 +194,8 @@ if( document.querySelector('#CONTAINER section[name=controlesenseignants]') != n // 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' ); + var nbRequest = 0; var nbSuccess = 0; @@ -199,6 +203,8 @@ if( document.querySelector('#CONTAINER section[name=controlesenseignants]') != n for( var i = 0 ; i < saisieObj.length ; i++ ){ if( /active/.test(saisieObj[i].inputEl.className) ){ nbRequest += 1; + + addClass( saisieObj[i].button, 'loading' ); var request = { // on définit la requête pour API level_0: 'career', diff --git a/page/_JS/groups.js b/page/_JS/groups.js index ae724d4..38fec3d 100755 --- a/page/_JS/groups.js +++ b/page/_JS/groups.js @@ -47,6 +47,8 @@ if( document.querySelector('#CONTAINER section[name=movestudents]') != null ){ / if( /^confirm/.test(e.target.className) && e.target.parentNode.children[0].dataset.hasOwnProperty('i') && deplacementObj[e.target.parentNode.children[0].dataset.i].button == e.target ){ var obj = deplacementObj[e.target.parentNode.children[0].dataset.i]; + addClass( obj.button, 'loading' ); + var request = { // on définit la requête pour API level_0: 'groups', level_1: 'move', diff --git a/page/career.php b/page/career.php index b3a474a..6f44a48 100755 --- a/page/career.php +++ b/page/career.php @@ -106,7 +106,7 @@ if( permission('student') ){ // si l'utilisateur est connecté et que c'est un foreach($module['controles'] as $controle){ // pour chaque contrôle echo ''; - echo ''.$controle['intitule'].''; + echo ''.$controle['libelle'].''; if( count($controle['notes']) == 0 ) // si aucune note pour ce controle on affiche 'Pas de note' echo 'Pas de note'; @@ -280,7 +280,7 @@ if( permission('teacher') && $controleOpt == null ){ // si c'est un enseignant e foreach($module['controles'] as $controle){ // pour chaque contrôle echo ''; - echo "".$controle['intitule'].""; + echo "".$controle['libelle'].""; echo "".$module['nom']." - ".$module['libelle'].""; echo "".$UE['nom']." - ".$UE['libelle'].""; @@ -348,10 +348,10 @@ elseif( permission('teacher') ){ // si enseignant et qu'un contrôle est spécif echo ""; - echo "'; + echo "'; echo ''; - echo ""; + echo ""; echo ""; @@ -501,7 +501,7 @@ if( permission('teacher') && $etudiantOpt != null ){ foreach($module['controles'] as $controle){ // pour chaque contrôle echo ''; - echo ''; + echo ''; if( count($controle['notes']) == 0 ) // si aucune note pour ce controle on affiche 'Pas de note' echo ''; diff --git a/src/loader.gif b/src/loader.gif new file mode 100644 index 0000000..85d7ea3 Binary files /dev/null and b/src/loader.gif differ
".$answer->controle['module'].' - '.$answer->controle['intitule'].'".$answer->controle['module'].' - '.$answer->controle['libelle'].'
".$answer->controle['intitule']."".$answer->controle['libelle']."".$answer->controle['module']." - ".$answer->controle['modulelib']."
'.$controle['intitule'].''.$controle['libelle'].'Pas de note