diff --git a/js/pageManager.js b/js/pageManager.js index 998c1f6..1d40bd9 100755 --- a/js/pageManager.js +++ b/js/pageManager.js @@ -81,7 +81,7 @@ pageManager.prototype = { explodeURL: function(url_data){ url_data = (arguments.length >= 1) ? url_data : document.URL; // si pageList est correct et que l'URL correspond à un schéma de page => continue [sinon] return null - if( this.pagelist != null && /^(?:.+)\/#\/([a-z0-9_]+)\/?(?:\/((?:[a-z0-9:_]+\/)+)\/?)?$/i.test(url_data) ){ + if( this.pagelist != null && /^(?:.+)\/#\/([a-z0-9_]+)\/?(?:\/((?:.+\/)+)\/?)?$/i.test(url_data) ){ // si la page récupérée dans l'url est dans la liste => renvoi de l'objet [sinon] null var vars = RegExp.$2.split('/'); while( vars[vars.length-1] == '' ) // on supprime les dernières entrées vides diff --git a/page/_JS/groups.js b/page/_JS/groups.js index 8a40682..fea44c2 100755 --- a/page/_JS/groups.js +++ b/page/_JS/groups.js @@ -114,21 +114,28 @@ for( var i = 0 ; i < partList.length ; i++ ){ /* SI c'est une affinage par SEMESTRE */ if( tableauParent.getAttribute('name') == 'semestre' ) - pageM.vars[2] = 's:'+e.target.dataset.value; + if( /^a:/.test(pageM.vars[2]) ) + pageM.vars[3] = 's:'+e.target.value; + else + pageM.vars[2] = 's:'+e.target.value; // affinage par semestre (exportation) }else if( e.target.parentNode.getAttribute('name') == 'semestre' && e.target.dataset.hasOwnProperty('stre') && e.target.dataset.hasOwnProperty('frm') ){ pageM.vars[1] = 'f:'+e.target.dataset.frm; - pageM.vars[2] = 's:'+e.target.dataset.stre; + // pageM.vars[2] = 's:'+e.target.dataset.stre; + if( /^a:/.test(pageM.vars[2]) ) + pageM.vars[3] = 's:'+e.target.dataset.stre; + else + 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( !/^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]) ) + while( /\*$/.test(pageM.vars[pageM.vars.length-1]) ) pageM.vars.pop(); reload(); @@ -146,18 +153,21 @@ for( var i = 0 ; i < selectList.length ; i++ ){ if( e.target.tagName == 'SELECT' ){ if( e.target.getAttribute('name') == 'groupe' ) - pageM.vars[2] = 'g:'+e.target.value; + if( /^a:/.test(pageM.vars[2]) ) + pageM.vars[3] = 'g:'+e.target.value; + else + pageM.vars[2] = 'g:'+e.target.value; if( e.target.getAttribute('name') == 'annee' ) - pageM.vars[1] = 'a:'+e.target.value; + pageM.vars[2] = 'a:'+e.target.value; // si la formation n'est pas définie, on l'active - if( !/^[fa]:/.test(pageM.vars[1]) ) + 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]) ) + while( /\*$/.test(pageM.vars[pageM.vars.length-1]) ) pageM.vars.pop(); reload(); diff --git a/page/_JS/modules.js b/page/_JS/modules.js index 3c7a9e9..07f43b1 100755 --- a/page/_JS/modules.js +++ b/page/_JS/modules.js @@ -27,24 +27,33 @@ for( var i = 0 ; i < partList.length ; i++ ){ /* SI c'est une affinage par SEMESTRE */ if( tableauParent.getAttribute('name') == 'semestre' ) - pageM.vars[2] = 's:'+e.target.dataset.value; + if( /^a:/.test(pageM.vars[2]) ) + pageM.vars[3] = 's:'+e.target.dataset.value; + else + 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; + if( /^a:/.test(pageM.vars[2]) ) + pageM.vars[3] = 'u:'+e.target.dataset.value; + else + pageM.vars[2] = 'u:'+e.target.dataset.value; }else if( e.target.parentNode.getAttribute('name') == 'semestre' && e.target.dataset.hasOwnProperty('stre') && e.target.dataset.hasOwnProperty('frm') ){ pageM.vars[1] = 'f:'+e.target.dataset.frm; - pageM.vars[2] = 's:'+e.target.dataset.stre; + if( /^a:/.test(pageM.vars[2]) ) + pageM.vars[3] = 's:'+e.target.dataset.stre; + else + 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( !/^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]) ) + while( /\*$/.test(pageM.vars[pageM.vars.length-1]) ) pageM.vars.pop(); reload(); @@ -66,15 +75,15 @@ for( var i = 0 ; i < selectList.length ; i++ ){ if( e.target.tagName == 'SELECT' ){ if( e.target.getAttribute('name') == 'annee' ) - pageM.vars[1] = 'a:'+e.target.value; + pageM.vars[2] = 'a:'+e.target.value; // si la formation n'est pas définie, on l'active - if( !/^[fa]:/.test(pageM.vars[1]) ) + 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]) ) + while( /\*$/.test(pageM.vars[pageM.vars.length-1]) ) pageM.vars.pop(); reload(); diff --git a/page/groups.php b/page/groups.php index 4dd68d4..7e9820f 100755 --- a/page/groups.php +++ b/page/groups.php @@ -595,8 +595,8 @@ if( permission('master') || permission('admin') ){ if( !in_array($semestreOpt, $semestresListe) ) $semestreOpt = null; echo "