sid/page/_JS/groups.js

84 lines
2.3 KiB
JavaScript
Raw Normal View History

2015-10-22 12:06:49 +00:00
var subSections = document.querySelectorAll('hgroup');
// si aucune sous-partie n'est active, on active la première
if( document.querySelector('#CONTAINER hgroup.active') == null )
selectSubSection( document.querySelector('#CONTAINER hgroup') );
/* Gestion du déroulement des tableaux des groupes */
function afficherCacherGroupes(e){
e.preventDefault();
// 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';
}
}
if( !afficherCacherGroupesDefined )
DOM.CONTAINER.addEventListener('click', afficherCacherGroupes, false);
var afficherCacherGroupesDefined = true;
/* on définit le Drag'n'Drop */
var dnd = new DragnDrop();
/* GESTION DU DRAG N DROP */
if( document.querySelector('#CONTAINER section[name=movestudents]') != null ){ // si c'set l'admin
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]);
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]);
dnd.init(function(input, output){ // on demande un déplacement
var id_etudiant = input.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,
semestre: 2,
annee: 2015
};
// 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' ){
var cloneEtudiant = input; // on clone l'étudiant
input.parentNode.removeChild( input );
var tableauDestination = output.parentNode.parentNode.parentNode;
tableauDestination.children[1].removeChild( tableauDestination.children[1].lastChild );
tableauDestination.children[1].appendChild( cloneEtudiant );
dnd.setDraggable( cloneEtudiant );
tableauDestination.children[1].innerHTML += '<tr><td colspan=5 class=more></td></tr>';
// selectSection( document.querySelector('#MENU span[data-link=groups]') );
}
});
});
}