2015-11-11 14:50:05 +00:00
|
|
|
<!--
|
|
|
|
|
2015-10-22 12:06:49 +00:00
|
|
|
|
|
|
|
|
|
|
|
// si aucune sous-partie n'est active, on active la première
|
|
|
|
if( document.querySelector('#CONTAINER hgroup.active') == null )
|
|
|
|
selectSubSection( document.querySelector('#CONTAINER hgroup') );
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2015-10-25 16:55:18 +00:00
|
|
|
/* Gestion du déroulement des tableaux des groupes */
|
|
|
|
function afficherCacherGroupes(e){
|
2015-10-31 17:16:54 +00:00
|
|
|
e.preventDefault();
|
|
|
|
|
2015-10-24 17:01:22 +00:00
|
|
|
// s'il s'agit de la case "Voir plus"
|
|
|
|
if( e.target.className == 'more' ){
|
|
|
|
var thead = e.target.parentNode.parentNode.parentNode.children[0];
|
|
|
|
thead.className = (thead.className=='active') ? '' : 'active';
|
|
|
|
}
|
2015-10-25 16:55:18 +00:00
|
|
|
}
|
|
|
|
|
2015-10-31 17:16:54 +00:00
|
|
|
if( !afficherCacherGroupesDefined )
|
|
|
|
DOM.CONTAINER.addEventListener('click', afficherCacherGroupes, false);
|
|
|
|
|
|
|
|
var afficherCacherGroupesDefined = true;
|
|
|
|
|
2015-10-28 17:08:12 +00:00
|
|
|
|
|
|
|
|
|
|
|
|
2015-10-31 17:16:54 +00:00
|
|
|
/* on définit le Drag'n'Drop */
|
2015-11-13 17:00:17 +00:00
|
|
|
// var dnd = new DragnDrop();
|
2015-10-28 17:08:12 +00:00
|
|
|
|
|
|
|
|
|
|
|
|
2015-10-31 16:25:19 +00:00
|
|
|
|
|
|
|
|
|
|
|
|
2015-10-28 17:08:12 +00:00
|
|
|
/* GESTION DU DRAG N DROP */
|
|
|
|
if( document.querySelector('#CONTAINER section[name=movestudents]') != null ){ // si c'set l'admin
|
|
|
|
|
2015-11-13 17:00:17 +00:00
|
|
|
// var members = document.querySelectorAll('#CONTAINER section[name=movestudents] table tr td:not(.more)');
|
|
|
|
// for( var i = 0 ; i < members.length ; i++ )
|
|
|
|
// dnd.setDraggable(members[i]);
|
2015-10-28 17:08:12 +00:00
|
|
|
|
2015-11-13 17:00:17 +00:00
|
|
|
// var groups = document.querySelectorAll('#CONTAINER section[name=movestudents] table thead th:first-child');
|
|
|
|
// for( var i = 0 ; i < groups.length ; i++ )
|
|
|
|
// dnd.setDroppable(groups[i]);
|
2015-10-28 17:08:12 +00:00
|
|
|
|
2015-11-13 17:00:17 +00:00
|
|
|
// dnd.init(function(input, output){ // on demande un déplacement
|
|
|
|
// var id_etudiant = input.children[0].children[0].innerHTML;
|
|
|
|
// var nom_groupe = output.children[0].innerHTML;
|
|
|
|
|
|
|
|
// var request = { // on définit la requête pour API
|
|
|
|
// level_0: 'groups',
|
|
|
|
// level_1: 'move',
|
|
|
|
// etudiant: id_etudiant,
|
|
|
|
// groupe: nom_groupe
|
|
|
|
// };
|
|
|
|
|
|
|
|
// // l'ordre n'est pas alphabétique mais va à la fin
|
|
|
|
|
|
|
|
// API.send(request, function(response){ // on gère la réponse de API
|
|
|
|
// if( response.request == 'success' ){
|
|
|
|
// input.parentNode.removeChild( input ); // on supprime le membre de l'ancien groupe
|
|
|
|
|
|
|
|
// var tableauDestination = output.parentNode.parentNode.parentNode.children[1]; // <tbody> destination
|
|
|
|
// tableauDestination.appendChild( input ); // on ajoute le membre au nouveau groupe
|
|
|
|
|
|
|
|
// // selectSection( document.querySelector('#MENU span[data-link=groups]') );
|
|
|
|
// }
|
|
|
|
// });
|
|
|
|
// });
|
|
|
|
//
|
|
|
|
|
|
|
|
/* DEPLACEMENT A L'AIDE DES <SELECT> */
|
|
|
|
var deplacementElements = document.querySelectorAll('#CONTAINER section[name=movestudents] table tr td select');
|
|
|
|
var deplacementObj = [];
|
2015-10-31 16:25:19 +00:00
|
|
|
|
2015-11-13 17:00:17 +00:00
|
|
|
// on référencie tous les select dans un objet
|
|
|
|
for( var i = 0 ; i < deplacementElements.length ; i++ ){
|
2015-10-31 17:16:54 +00:00
|
|
|
|
2015-11-13 17:00:17 +00:00
|
|
|
deplacementElements[i].dataset.i = i; // le rang du <select> dans la liste
|
2015-10-31 16:25:19 +00:00
|
|
|
|
2015-11-13 17:00:17 +00:00
|
|
|
deplacementObj[i] = {
|
|
|
|
select: deplacementElements[i], // le <select> en question
|
|
|
|
initval: deplacementElements[i].value, // la valeur initiale du <select>
|
|
|
|
button: deplacementElements[i].parentNode.children[1], // le bouton de validation pour ce <select>
|
|
|
|
userid: deplacementElements[i].parentNode.parentNode.children[0].children[0].innerHTML // l'identifiant de l'utilisateur associé à ce <select>
|
|
|
|
};
|
2015-10-31 16:25:19 +00:00
|
|
|
|
2015-11-13 17:00:17 +00:00
|
|
|
// on créé l'évènement qui affiche le validateur dès le changement de valeur
|
|
|
|
deplacementObj[i].select.addEventListener('change', function(e){
|
|
|
|
// on récupère le rang dans la liste et qu'il s'agit du même élément
|
|
|
|
if( e.target.dataset.hasOwnProperty('i') && deplacementObj[e.target.dataset.i].select == e.target ){
|
|
|
|
var obj = deplacementObj[e.target.dataset.i];
|
|
|
|
|
|
|
|
if( obj.initval != obj.select.value ) // si c'est une nouvelle valeur (nouveau groupe), on active le validateur (bouton)
|
|
|
|
addClass( obj.button, 'active' );
|
|
|
|
else
|
|
|
|
remClass( obj.button, 'active' );
|
|
|
|
|
2015-10-31 17:16:54 +00:00
|
|
|
}
|
2015-11-13 17:00:17 +00:00
|
|
|
}, false);
|
|
|
|
|
|
|
|
|
|
|
|
// on créé l'évènement de confirmation du déplacement
|
|
|
|
deplacementObj[i].button.addEventListener('click', function(e){
|
|
|
|
// s'il s'agit bien d'un bouton de validation, que le <select> associé a data-i existante et que ça match correctement
|
|
|
|
if( /^valider_deplacement/.test(e.target.className) && e.target.parentNode.children[0].dataset.hasOwnProperty('i') && deplacementObj[e.target.parentNode.children[0].dataset.i].button == e.target ){
|
|
|
|
var obj = deplacementObj[e.target.parentNode.children[0].dataset.i];
|
|
|
|
|
|
|
|
var request = { // on définit la requête pour API
|
|
|
|
level_0: 'groups',
|
|
|
|
level_1: 'move',
|
|
|
|
etudiant: obj.userid,
|
|
|
|
groupe: obj.select.value
|
|
|
|
};
|
|
|
|
|
|
|
|
API.send(request, function(response){ // on gère la réponse de API, si déplacement effectué, on recharge la page
|
2015-11-14 17:33:06 +00:00
|
|
|
if( response.request == 'success' ) reload();
|
2015-11-13 17:00:17 +00:00
|
|
|
});
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}, false);
|
|
|
|
}
|
|
|
|
|
2015-10-31 17:16:54 +00:00
|
|
|
|
2015-11-06 10:13:32 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
/***************************************************/
|
|
|
|
/*** GESTION DES SELECT POUR AFFINER LES GROUPES ***/
|
|
|
|
/***************************************************/
|
2015-11-06 14:57:12 +00:00
|
|
|
var selectList = document.querySelectorAll("#CONTAINER > section[name] > select");
|
|
|
|
|
|
|
|
|
|
|
|
// GESTION DE LA PRISE EN COMPTE DES SELECT //
|
|
|
|
DOM.CONTAINER.addEventListener('change', function(e){
|
|
|
|
if( e.target.tagName == 'SELECT' && ['semestre', 'groupe'].indexOf(e.target.getAttribute('name')) > -1 ){
|
2015-11-12 08:18:10 +00:00
|
|
|
if( e.target.getAttribute('name') == 'semestre' ){ // SI modifie le semestre
|
2015-11-06 14:57:12 +00:00
|
|
|
pageM.vars[1] = e.target.value; // on selectionne semestre
|
|
|
|
pageM.vars[2] = '*'; // on désactive le groupe
|
2015-11-12 08:18:10 +00:00
|
|
|
}else{ // SINON
|
2015-11-06 14:57:12 +00:00
|
|
|
pageM.vars[1] = '*'; // on désactive le semestre
|
|
|
|
pageM.vars[2] = e.target.value; // on active le groupe
|
|
|
|
}
|
|
|
|
|
2015-11-14 17:33:06 +00:00
|
|
|
reload();
|
2015-11-06 14:57:12 +00:00
|
|
|
// console.log(e.target.getAttribute('name')+' = '+e.target.value);
|
|
|
|
}
|
2015-11-11 14:50:05 +00:00
|
|
|
}, false);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
-->
|