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]'); // liste des checkbox pour la caractère "référent" (CHECKBOX) var checkMaster = document.querySelectorAll('#CONTAINER section[name=attributionrole] .check_master[data-usr]'); // liste des enseignements pour modules à supprimer ("Supprimer") var delModules = document.querySelectorAll('#CONTAINER section[name=attributionrole] .confirm.pamp.active.enseignement[data-usr][data-mccmod]'); // liste des enseignements à ajouter (BOUTON) var addModules = document.querySelectorAll('#CONTAINER section[name=attributionrole] .set_correcteur'); // liste des enseignements de groupes pour des modules que l'on peut ajouter/supprimer (CHECKBOX) var switchModuleGroupe = document.querySelectorAll('#CONTAINER section[name=attributionrole] .del_module[data-usr][data-mccmod][data-grp]'); /*** CHANGEMENT DE STATUS POUR "ADMIN" ***/ for( var i = 0 ; i < checkAdmin.length ; i++ ){ checkAdmin[i].addEventListener('change', function(e){ // si l'élément est correct if( typeof e.target.checked == 'boolean' && e.target.dataset.hasOwnProperty('usr') ){ // on met à jour le status var request = { level_0: 'user', level_1: 'updateRole', identifiant: e.target.dataset.usr, admin: e.target.checked, master: null, addModule: null, delModule: null }; API.send(request, function(answer){ if( answer.request != 'success' ) console.log('erreur de changement de rôle (admin)'); reload(); }); } }, false); } /*** CHANGEMENT DE STATUS POUR "REFERENT" ***/ for( var i = 0 ; i < checkMaster.length ; i++ ){ checkMaster[i].addEventListener('change', function(e){ // si l'élément est correct if( typeof e.target.checked == 'boolean' && e.target.dataset.hasOwnProperty('usr') ){ // on met à jour le status var request = { level_0: 'user', level_1: 'updateRole', identifiant: e.target.dataset.usr, admin: null, master: e.target.checked, addModule: null, delModule: null }; API.send(request, function(answer){ if( answer.request != 'success' ) console.log('erreur de changement de rôle (référent)'); reload(); }); } }, false); } /*** AJOUTER/SUPPRIMER UN MODULE POUR UN GROUPE POUR UN UTILISATEUR ***/ for( var i = 0 ; i < switchModuleGroupe.length ; i++ ){ switchModuleGroupe[i].addEventListener('change', function(e){ // si l'élément est correct // si décoché, on supprime if( typeof e.target.checked == 'boolean' && e.target.dataset.hasOwnProperty('usr') && e.target.dataset.hasOwnProperty('grp') && e.target.dataset.hasOwnProperty('mccmod') ){ var addModState = ( e.target.checked ) ? e.target.dataset.mccmod : null; var delModState = ( !e.target.checked ) ? e.target.dataset.mccmod : null; // on met à jour le status var request = { level_0: 'user', level_1: 'updateRole', identifiant: e.target.dataset.usr, admin: null, master: null, addModule: addModState, delModule: delModState, groupe: e.target.dataset.grp }; API.send(request, function(answer){ if( answer.request != 'success' ) console.log('erreur de changement de rôle'); reload(); }); } }, false); } /*** AJOUTER UN MODULE POUR UN UTILISATEUR ***/ for( var i = 0 ; i < addModules.length ; i++ ){ addModules[i].addEventListener('click', function(e){ var associatedSelect = e.target.parentNode.parentNode.children[0].children[0]; console.log( associatedSelect ); // si l'élément est correct if( e.target.dataset.hasOwnProperty('usr') && associatedSelect.tagName == 'SELECT' && associatedSelect.getAttribute('name') == 'modules' ){ // on met à jour le status var request = { level_0: 'user', level_1: 'updateRole', identifiant: e.target.dataset.usr, admin: null, master: null, addModule: associatedSelect.value, delModule: null }; API.send(request, function(answer){ if( answer.request != 'success' ) console.log('erreur de changement de rôle'); reload(); }); } }, false); } /*** SUPPRIMER UN MODULE POUR UN UTILISATEUR ***/ for( var i = 0 ; i < delModules.length ; i++ ){ delModules[i].addEventListener('click', function(e){ // si l'élément est correct if( e.target.dataset.hasOwnProperty('usr') && e.target.dataset.hasOwnProperty('mccmod') ){ // on met à jour le status var request = { level_0: 'user', level_1: 'updateRole', identifiant: e.target.dataset.usr, admin: null, master: null, addModule: null, delModule: e.target.dataset.mccmod }; API.send(request, function(answer){ if( answer.request != 'success' ) console.log('erreur de changement de rôle'); reload(); }); } }, false); } } /* GESTION DU CHANGEMENT D'ANNÉE */ var changeYear = { select: document.querySelector('#CONTAINER section[name=changeyear] #yeartochange'), button: document.querySelector('#CONTAINER section[name=changeyear] #change_year') }; // si la page existe, on créé l'évènement if( changeYear.select != null && changeYear.button != null ){ changeYear.button.addEventListener('click', function(e){ // on créé la requête à envoyer var request = { level_0: 'user', level_1: 'changeyear', year: changeYear.select.value }; // on envoie la requête à l'API API.send(request, function(answer){ if( answer.request == 'success' ){ reload(); // on recharge la page updateCurrentYear(request.year); } }); }, false); }