172 lines
4.4 KiB
JavaScript
Executable File
172 lines
4.4 KiB
JavaScript
Executable File
<!--
|
|
|
|
|
|
|
|
/********************************/
|
|
/* GESTION DE L'AFFINAGE PAR UE */
|
|
/********************************/
|
|
var selectList = document.querySelectorAll("#CONTAINER > section[name] > .p > select[name=annee]");
|
|
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], "+
|
|
"#CONTAINER > section[name] > .p > div.partlist[name=semestre] > span[data-stre]");
|
|
|
|
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;
|
|
|
|
}else if( e.target.parentNode.getAttribute('name') == 'semestre' && e.target.dataset.hasOwnProperty('stre') )
|
|
pageM.vars[2] = 's:'+e.target.dataset.stre;
|
|
|
|
// si la formation n'est pas définie, on l'active
|
|
if( !/^[fa]:/.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);
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// GESTION DE L'AFFINAGE PAR ANNEE //
|
|
for( var i = 0 ; i < selectList.length ; i++ ){
|
|
|
|
selectList[i].addEventListener('change', function(e){
|
|
|
|
if( e.target.tagName == 'SELECT' ){
|
|
|
|
if( e.target.getAttribute('name') == 'annee' )
|
|
pageM.vars[1] = 'a:'+e.target.value;
|
|
|
|
// si la formation n'est pas définie, on l'active
|
|
if( !/^[fa]:/.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);
|
|
|
|
}
|
|
|
|
|
|
|
|
/* LIEN VERS LA PAGE "CREER UN SEMESTRE" */
|
|
var creerSemestre = document.getElementById('creer_semestre');
|
|
creerSemestre.addEventListener('click', function(e){
|
|
|
|
pageM.vars[0] = 'createsemestre';
|
|
reload();
|
|
|
|
}, false);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/* GESTION DE L'IMPORT DE MCC */
|
|
var importMcc = document.getElementById('import_mcc');
|
|
importMcc.addEventListener('change', function(e){
|
|
|
|
addClass( importMcc, 'loading' );
|
|
|
|
var file = importMcc.files[0];
|
|
|
|
/* [1] IMPORTATION DU FICHIER
|
|
=======================================*/
|
|
var fd = new FormData();
|
|
fd.append('filename', 'import_mcc');
|
|
fd.append('file', file, file.name);
|
|
|
|
var xhr = new XMLHttpRequest();
|
|
|
|
xhr.open('POST', 'manager/import.php', true);
|
|
|
|
xhr.onreadystatechange = function(){
|
|
if( xhr.readyState == 4 )
|
|
if( [0, 200].indexOf(xhr.status) > -1 )
|
|
if( xhr.responseText == 'success' ){
|
|
|
|
|
|
/* [2] LECTURE DU FICHIER
|
|
=======================================*/
|
|
var request = {
|
|
level_0: 'phpExcel',
|
|
level_1: 'import_mcc'
|
|
}
|
|
|
|
API.send(request, function(e){
|
|
if( e.request == 'success' ){ // si on a récupéré l'objet MCC, on lance maintenant l'intégration
|
|
|
|
/* [3] INTÉGRATION À LA BDD
|
|
=======================================*/
|
|
requestIntegration = {
|
|
level_0: 'career',
|
|
level_1: 'setMCC',
|
|
semestre: 1,
|
|
mcc: e.mcc
|
|
}
|
|
|
|
API.send( requestIntegration, function(f){
|
|
if( f.request == 'success' ){
|
|
console.log('mcc intégré');
|
|
reload();
|
|
}else
|
|
console.log('Mcc non intégré');
|
|
});
|
|
|
|
}else
|
|
reload();
|
|
});
|
|
|
|
|
|
|
|
|
|
}
|
|
}
|
|
|
|
xhr.send(fd);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
}, false);
|
|
--> |