Page admin@settings/rôles, affinage fonctionnel + affichage de la formation associée à l'enseignement + propose les modules en fonction de l'affinage

This commit is contained in:
xdrm-brackets 2015-11-26 15:01:05 +01:00
parent e43a564787
commit c992157db7
2 changed files with 102 additions and 4 deletions

View File

@ -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]');

View File

@ -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 "<tr class='grayscale'>";
echo "<td><select name='modules'>";
foreach($completeModuleList as $MOD){ if( !in_array($MOD['id'], $userModulesUID) ){
echo "<option value='".$MOD['id_mcc_module']."'>".$MOD['nom']." - ".$MOD['libelle']."</option>";
}}
if( count($completeModuleList) > 0 ){ // si au moins 1 module
foreach($completeModuleList as $MOD){ if( !in_array($MOD['id'], $userModulesUID) ){
echo "<option value='".$MOD['id_mcc_module']."'>".$MOD['nom']." - ".$MOD['libelle']."</option>";
}}
}else // si aucun module
echo "<option>Aucun module trouvé</option>";
echo "</select></td>";
echo "<td><div data-usr='".$user['id']."' class='confirm active set_correcteur'>Définir comme correcteur</div></td>";
echo "<td></td>";