From 3bd1f1dc2934a0b3826f59f09589c535b088f92c Mon Sep 17 00:00:00 2001 From: xdrm-brackets Date: Fri, 8 Jan 2016 18:00:40 +0100 Subject: [PATCH] =?UTF-8?q?[x]=C2=A0Gestion=20explicite=20du=20chargement?= =?UTF-8?q?=20de=20tout=20traitement=20(bounce=20pamp=20puis=20retour=20de?= =?UTF-8?q?fault)=20=09+=20career.js=20=09+=20groups.js=20=09+=20modules.j?= =?UTF-8?q?s=20=09+=20settings.js?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- css/global.css | 47 +++++++++++++++++++++++++- js/action-script.js | 16 ++++----- js/lib/adjust.js | 30 +++++++++++++++- page/_JS/career.js | 36 +++++++++++++++----- page/_JS/groups.js | 26 +++++++++----- page/_JS/modules.js | 8 +++-- page/_JS/settings.js | 37 ++++++++++++++------ page/career.php | 4 +-- src/files/admin2_export_jury.xlsx | Bin 0 -> 9504 bytes src/files/admin2_import_inscrits.xlsx | Bin 0 -> 24511 bytes 10 files changed, 161 insertions(+), 43 deletions(-) create mode 100644 src/files/admin2_export_jury.xlsx create mode 100755 src/files/admin2_import_inscrits.xlsx diff --git a/css/global.css b/css/global.css index f76894c..b6f548d 100755 --- a/css/global.css +++ b/css/global.css @@ -372,9 +372,54 @@ select.active + .confirm, .confirm.pamp{ border-color: #f55b55; color: #f55b55; - background-image: url(../src/validate@pamp.svg); + background-image: url(../src/validate@pamp.svg) !important; } +@keyframes bounce_err{ + 0%{ + transform: translateX(5px); + -moz-transform: translateX(5px); + -webkit-transform: translateX(5px); + -ms-transform: translateX(5px); + -o-transform: translateX(5px); + } + + + 25%{ + transform: translateX(-5px); + -moz-transform: translateX(-5px); + -webkit-transform: translateX(-5px); + -ms-transform: translateX(-5px); + -o-transform: translateX(-5px); + } + + 50%{ + transform: translateX(5px); + -moz-transform: translateX(5px); + -webkit-transform: translateX(5px); + -ms-transform: translateX(5px); + -o-transform: translateX(5px); + } + + 100%{ + transform: translateX(0); + -moz-transform: translateX(0); + -webkit-transform: translateX(0); + -ms-transform: translateX(0); + -o-transform: translateX(0); + } +} + +/* bounce animation */ +.confirm.bounce_error{ + animation: bounce_err .8s ease-in; + -moz-animation: bounce_err .8s ease-in; + -webkit-animation: bounce_err .8s ease-in; + -ms-animation: bounce_err .8s ease-in; + -o-animation: bounce_err .8s ease-in; +} + + /* tr@hover */ body.trHoverActivated tr:hover td select.active + .confirm, body.trHoverActivated tr:hover td input.active + .confirm, diff --git a/js/action-script.js b/js/action-script.js index a04aa23..a791518 100755 --- a/js/action-script.js +++ b/js/action-script.js @@ -87,15 +87,15 @@ var connected = !( DOM.AUTH.children[0].innerHTML == 'Connexion' ); /* [c] gestion des classes ================================================*/ - function addClass(el, pClass){ - if( el.className.length > 0 && el.className != pClass ) el.className = el.className + ' ' + pClass; - else el.className = pClass; - } + // function addClass(el, pClass){ + // if( el.className.length > 0 && el.className != pClass ) el.className = el.className + ' ' + pClass; + // else el.className = pClass; + // } - function remClass(el, pClass){ - if( el.className.indexOf(pClass) > -1 ) // si la class de l'élement contient la classe à enlever - el.className = el.className.substr(0, el.className.indexOf(pClass)) + '' + el.className.substr(el.className.indexOf(pClass)+pClass.length); - } + // function remClass(el, pClass){ + // if( el.className.indexOf(pClass) > -1 ) // si la class de l'élement contient la classe à enlever + // el.className = el.className.substr(0, el.className.indexOf(pClass)) + '' + el.className.substr(el.className.indexOf(pClass)+pClass.length); + // } diff --git a/js/lib/adjust.js b/js/lib/adjust.js index 81f3a9b..9407bc4 100755 --- a/js/lib/adjust.js +++ b/js/lib/adjust.js @@ -6,4 +6,32 @@ NodeList.prototype.indexOf = HTMLCollection.prototype.indexOf = function(searche // si on a rien trouvé, on retourne -1 return -1; -}; \ No newline at end of file +}; + + +/* GESTION DE L'AJOUT/SUPPRESSION D'UNE CLASSE */ +function addClass(el, pClass){ + if( el.className.length > 0 && el.className != pClass ) el.className = el.className + ' ' + pClass; + else el.className = pClass; +} + +function remClass(el, pClass){ + if( el.className.indexOf(pClass) > -1 ) // si la class de l'élement contient la classe à enlever + el.className = el.className.substr(0, el.className.indexOf(pClass)) + '' + el.className.substr(el.className.indexOf(pClass)+pClass.length); +} + + +/* ANIMATION DE BOUNCE PENDANT 1 SEC */ +function makeBounce(buttonElement){ + // ajout de la classe + remClass(buttonElement, 'loading'); + addClass(buttonElement, 'bounce_error'); + addClass(buttonElement, 'pamp'); + + // suppression de la classe après 1 sec + setTimeout(function(){ + remClass(buttonElement, 'bounce_error'); + remClass(buttonElement, 'pamp'); + }, 1000); + +} \ No newline at end of file diff --git a/page/_JS/career.js b/page/_JS/career.js index d35d06b..115a218 100755 --- a/page/_JS/career.js +++ b/page/_JS/career.js @@ -226,6 +226,8 @@ if( document.querySelector('#CONTAINER section[name=controlesenseignants]') != n 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 réponse erreur, on le signale physiquement + else makeBounce(obj.button); }); } @@ -270,6 +272,7 @@ if( document.querySelector('#CONTAINER section[name=controlesenseignants]') != n 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(); + else makeBounce(e.target); }); }, false); @@ -369,6 +372,8 @@ if( document.querySelector('#CONTAINER section[name=allcontroles]') != null ){ / 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 réponse erreur, on le signale physiquement + else makeBounce(obj.button); }); } @@ -413,6 +418,8 @@ if( document.querySelector('#CONTAINER section[name=allcontroles]') != null ){ / 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(); + // si réponse erreur, on le signale physiquement + else makeBounce(e.target); }); }, false); @@ -479,9 +486,9 @@ if( exportJury != null ){ if( answer2.request == 'success' ){ // le fichier a bien été généré, on lance le téléchargement document.location = answer2.pathfile; reload(); - } + }else makeBounce(e.target); }); - } + }else makeBounce(e.target); }); @@ -543,13 +550,19 @@ if( importJury != null ){ if( f.request == 'success' ){ console.log('liste intégrée'); reload(); - }else console.log('integration error'); + }else{ + console.log('integration error'); + makeBounce(e.target); + } }); - }else console.log('import error'); + }else{ + console.log('import error'); + makeBounce(e.target); + } }); - } + }else makeBounce(e.target); } @@ -591,6 +604,7 @@ if( publicationControles.length > 0 ){ // on envoie la requête vers l'API API.send(request, function(answer){ if( answer.request == 'success' ) reload(); + else makeBounce(e.target); }); } }, false); @@ -708,13 +722,19 @@ if( importNotes.length > 0 ){ if( f.request == 'success' ){ console.log('liste intégrée'); reload(); - }else console.log('integration error'); + }else{ + console.log('integration error'); + makeBounce(boutonImport); + } }); - }else console.log('import error'); + }else{ + console.log('import error'); + makeBounce(boutonImport); + } }); - } + }else makeBounce(boutonImport); } diff --git a/page/_JS/groups.js b/page/_JS/groups.js index 0f34a88..c89eeec 100755 --- a/page/_JS/groups.js +++ b/page/_JS/groups.js @@ -85,6 +85,7 @@ if( canMoveStudents ){ // si c'set l'admin // on envoie la requête API.send(request, function(answer){ if( answer.request == 'success' ) reload(); + else makeBounce(e.target); }); }, false); @@ -231,9 +232,9 @@ if( exportInscrits != null ){ if( answer2.request == 'success' ){ // le fichier a bien été généré, on lance le téléchargement document.location = answer2.pathfile; reload(); - } + }else makeBounce(e.target); }); - } + }else makeBounce(e.target); }); @@ -282,24 +283,31 @@ if( importInscrits != null ){ /* [2] LECTURE DU FICHIER =======================================*/ var request = { level_0: 'excel', level_1: 'import_inscrits' }; - API.send(request, function(e){ - console.log('[2] PARSE=>'+e.request); - if( e.request == 'success' ){ + API.send(request, function(ex){ + console.log('[2] PARSE=>'+ex.request); + if( ex.request == 'success' ){ /* [3] INTÉGRATION À LA BDD =======================================*/ - requestIntegration = { level_0: 'groups', level_1: 'addUserlist', rang: rang, annee: annee, formationList: e.formationList }; + requestIntegration = { level_0: 'groups', level_1: 'addUserlist', rang: rang, annee: annee, formationList: ex.formationList }; API.send( requestIntegration, function(f){ console.log('[3] INTEGRATION=>'+f.request); if( f.request == 'success' ){ console.log('liste intégrée'); reload(); - }else console.log('integration error'); + }else{ + console.log('integration error'); + makeBounce(e.target.parentNode); + } }); - }else console.log('import error'); + }else{ + console.log('import error'); + makeBounce(e.target.parentNode); + console.log( e.target ); + } }); - } + }else makeBounce(e.target.parentNode); } diff --git a/page/_JS/modules.js b/page/_JS/modules.js index 6aed31e..0180f6c 100755 --- a/page/_JS/modules.js +++ b/page/_JS/modules.js @@ -158,13 +158,13 @@ if( importMcc != null ){ if( f.request == 'success' ){ console.log('mcc intégré'); reload(); - } + }else makeBounce(e.target); }); - } + }else makeBounce(e.target); }); - } + }else makeBounce(e.target); } @@ -217,6 +217,7 @@ if( creerSemestre != null ){ // si la page est présente API.send(request, function(e){ if( e.request == 'success' ) reload(); + else makeBounce(e.target); }); @@ -251,6 +252,7 @@ if( cloneMCC != null ){ // si la page est présente API.send(request, function(e){ if( e.request == 'success' ) reload(); + else makeBounce(e.target); }); diff --git a/page/_JS/settings.js b/page/_JS/settings.js index bf2456f..c6c5453 100755 --- a/page/_JS/settings.js +++ b/page/_JS/settings.js @@ -138,8 +138,11 @@ if( roleSection != null ){ }; API.send(request, function(answer){ - if( answer.request != 'success' ) console.log('erreur de changement de rôle (admin)'); - reload(); + if( answer.request != 'success' ){ + console.log('erreur de changement de rôle (admin)'); + makeBounce(e.target); + }else + reload(); }); } @@ -169,8 +172,11 @@ if( roleSection != null ){ }; API.send(request, function(answer){ - if( answer.request != 'success' ) console.log('erreur de changement de rôle (référent)'); - reload(); + if( answer.request != 'success' ){ + console.log('erreur de changement de rôle (référent)'); + makeBounce(e.target); + }else + reload(); }); } @@ -206,8 +212,11 @@ if( roleSection != null ){ }; API.send(request, function(answer){ - if( answer.request != 'success' ) console.log('erreur de changement de rôle'); - reload(); + if( answer.request != 'success' ){ + console.log('erreur de changement de rôle'); + makeBounce(e.target); + }else + reload(); }); } @@ -241,8 +250,11 @@ if( roleSection != null ){ }; API.send(request, function(answer){ - if( answer.request != 'success' ) console.log('erreur de changement de rôle'); - reload(); + if( answer.request != 'success' ){ + console.log('erreur de changement de rôle'); + makeBounce(e.target); + }else + reload(); }); } @@ -273,8 +285,11 @@ if( roleSection != null ){ }; API.send(request, function(answer){ - if( answer.request != 'success' ) console.log('erreur de changement de rôle'); - reload(); + if( answer.request != 'success' ){ + console.log('erreur de changement de rôle'); + makeBounce(e.target); + }else + reload(); }); } @@ -320,7 +335,7 @@ if( changeYear.select != null && changeYear.button != null ){ if( answer.request == 'success' ){ reload(); // on recharge la page updateCurrentYear(request.year); - } + }else makeBounce(e.target); }); }, false); diff --git a/page/career.php b/page/career.php index 78659d4..6248755 100755 --- a/page/career.php +++ b/page/career.php @@ -440,9 +440,9 @@ elseif( permission('teacher') ){ // si enseignant et qu'un contrôle est spécif echo ""; if( $user['note'] != null ) // s'il a déjà une note, on la met par défaut - echo ""; + echo ""; else // sinon on laisse le champ vide - echo ""; + echo ""; echo "
enregistrer
"; echo ""; diff --git a/src/files/admin2_export_jury.xlsx b/src/files/admin2_export_jury.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..cd216da401d1e85dbd158139670c56ee1e274fde GIT binary patch literal 9504 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 literal 0 HcmV?d00001 diff --git a/src/files/admin2_import_inscrits.xlsx b/src/files/admin2_import_inscrits.xlsx new file mode 100755 index 0000000000000000000000000000000000000000..bb8094e300700b58c37baa9de6c036b25ddf9cdb GIT binary patch literal 24511 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 literal 0 HcmV?d00001