343 lines
8.0 KiB
JavaScript
Executable File
343 lines
8.0 KiB
JavaScript
Executable File
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)');
|
|
makeBounce(e.target);
|
|
}else
|
|
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)');
|
|
makeBounce(e.target);
|
|
}else
|
|
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');
|
|
makeBounce(e.target);
|
|
}else
|
|
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');
|
|
makeBounce(e.target);
|
|
}else
|
|
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');
|
|
makeBounce(e.target);
|
|
}else
|
|
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);
|
|
}else makeBounce(e.target);
|
|
});
|
|
|
|
}, false);
|
|
|
|
} |