diff --git a/page/_JS/settings.js b/page/_JS/settings.js index f3bd5f3..21b852a 100755 --- a/page/_JS/settings.js +++ b/page/_JS/settings.js @@ -1,9 +1,104 @@ var roleSection = document.querySelector('#CONTAINER section[name=attributionrole]'); + + + + + + + + + + + + + + + + + + + + + + + + + + /**************************************/ /* SI LA SECTION "RÔLES" EST PRÉSENTE */ /**************************************/ if( roleSection != null ){ + + + /* GESTION DE L'AFFINAGE */ + var partList = document.querySelectorAll("#CONTAINER > section[name] > table.partlist[name=UE], "+ + "#CONTAINER > section[name] > table.partlist[name=semestre], "+ + "#CONTAINER > section[name] > table.partlist[name=formation]"); + + for( var i = 0 ; i < partList.length ; i++ ){ + + partList[i].addEventListener('click', function(e){ + var tableauParent = e.target.parentNode.parentNode.parentNode; + + if( tableauParent.tagName == 'TABLE' && e.target.dataset.hasOwnProperty('value') ){ + + /* SI c'est une affinage par FORMATION */ + if( tableauParent.getAttribute('name') == 'formation' ){ + pageM.vars[1] = 'f:'+e.target.dataset.value; + if( pageM.vars.length > 2 ) // si un deuxième affinage existe, on le supprime lors du choix de la formation + pageM.vars.pop(); + } + + /* SI c'est une affinage par SEMESTRE */ + if( tableauParent.getAttribute('name') == 'semestre' ) + pageM.vars[2] = 's:'+e.target.dataset.value; + + /* SI c'est un affinage par UE */ + if( tableauParent.getAttribute('name') == 'UE' ) + pageM.vars[2] = 'u:'+e.target.dataset.value; + + } + + // si la formation n'est pas définie, on l'active + if( !/^[f]:/.test(pageM.vars[1]) ) + if( document.querySelector('#CONTAINER > section[name] > table.partlist[name=formation] td[data-value].active') != null ) + pageM.vars[1] = 'f:'+document.querySelector('#CONTAINER > section[name] > table.partlist[name=formation] td[data-value].active').dataset.value; + + // si on a '*' comme valeur, on l'enlève + if( /\*$/.test(pageM.vars[2]) ) + pageM.vars.pop(); + + reload(); + + }, false); + + } + + + + + + + + + + + + + + + + + + + + + + + + // liste des checkbox pour la caractère "admin" (CHECKBOX) var checkAdmin = document.querySelectorAll('#CONTAINER section[name=attributionrole] .check_admin[data-usr]'); diff --git a/page/settings.php b/page/settings.php index b369f07..32b652b 100755 --- a/page/settings.php +++ b/page/settings.php @@ -67,7 +67,7 @@ if( permission('admin') ){ // on récupère tous les modules de l'année pour l'affinage $rAffinage = new stdClass(); $aAffinage = new stdClass(); $rAffinage->level_1 = 'getByYear'; - $rAffinage->annee = $_SESSION['annee']; + $rAffinage->annee = (String) $_SESSION['annee']; modules_switch_level_1($rAffinage, $aAffinage); @@ -244,9 +244,12 @@ if( permission('admin') ){ /* AJOUT DE MODULES */ echo ""; echo ""; echo "
Définir comme correcteur
"; echo "";