Modification de shortcut-manager (pas besoin de tout retaper dans l'ordre) + correction JS "undefined creerSemestre"
commit v2 (ajout index)
This commit is contained in:
parent
b24b81866b
commit
c96b605021
10
index.php
10
index.php
|
@ -28,10 +28,10 @@ $notifNotifNum = 5;
|
|||
|
||||
|
||||
<!-- Dépendences Javascript -->
|
||||
<script type='text/javascript' src='js/adjust.js' ></script> <!-- Gestion des ajouts Javascript -->
|
||||
<script type='text/javascript' src='API.js' ></script> <!-- Gestion des dialogues client/serveur -->
|
||||
<script type='text/javascript' src='js/pageManager.js' ></script> <!-- Gestion réseau/chargement/lient -->
|
||||
<script type='text/javascript' src='js/shortcut-manager.js' ></script> <!-- Gestion des raccourcis clavier -->
|
||||
<script type='text/javascript' src='js/lib/adjust.js' ></script> <!-- Gestion des corrections Javascript -->
|
||||
<script type='text/javascript' src='js/lib/API.js' ></script> <!-- Gestion des dialogues client/serveur -->
|
||||
<script type='text/javascript' src='js/lib/page-manager.js' ></script> <!-- Gestion réseau/chargement/liens/URL -->
|
||||
<script type='text/javascript' src='js/lib/shortcut-manager.js' ></script> <!-- Gestion des raccourcis clavier -->
|
||||
|
||||
</head>
|
||||
<body class='trHoverActivated_'><!-- CORPS DE LA PAGE -->
|
||||
|
@ -129,7 +129,7 @@ $notifNotifNum = 5;
|
|||
|
||||
|
||||
<!-- Dépendences Javascript après chargement des éléments -->
|
||||
<script type='text/javascript' src='js/actionScript.js'></script>
|
||||
<script type='text/javascript' src='js/action-script.js'></script>
|
||||
|
||||
</body>
|
||||
</html>
|
|
@ -366,11 +366,13 @@ initForm( // initialisation du formulaire de connection
|
|||
*
|
||||
* ctrl+alt+e ouvre l'interface de connection/déconnection
|
||||
*
|
||||
* ctrl+NUM ouvre la section numéro "NUM"
|
||||
* ctrl+alt+NUM ouvre la section numéro "NUM"
|
||||
*
|
||||
* ctrl+droite ouvre la sous-section suivante
|
||||
*
|
||||
* ctrl+gauche ouvre la sous-section précédente
|
||||
* alt+haut ouvre la section suivante
|
||||
* alt+bas ouvre la section précédente
|
||||
*
|
||||
* alt+droite ouvre la sous-section suivante
|
||||
* alt+gauche ouvre la sous-section précédente
|
||||
*
|
||||
*
|
||||
*
|
||||
|
@ -383,29 +385,37 @@ sm.append('ctrl+alt+n', function(){
|
|||
|
||||
sm.append('ctrl+alt+e', function(){
|
||||
addClass(DOM.WRAPPER, 'blurred');
|
||||
DOM.AUTH.children[1].focus();
|
||||
});
|
||||
|
||||
sm.append('ctrl+1', function(){
|
||||
selectSection( document.querySelector('#MENU span[data-link]:nth-child(2)') );
|
||||
sm.append('alt+up', function(){// on récupère la section courante
|
||||
var cSection = document.querySelector('#MENU span[data-link='+pageM.page+']');
|
||||
if( cSection != null ){ // si on a trouvé la section
|
||||
var parentChildren = cSection.parentNode.children;
|
||||
var prevIndex = parentChildren.indexOf( cSection ) - 1;
|
||||
|
||||
// si il y a une section avant, on la charge
|
||||
if( prevIndex > 0 )
|
||||
selectSection( parentChildren[prevIndex] );
|
||||
}
|
||||
});
|
||||
|
||||
sm.append('ctrl+2', function(){
|
||||
selectSection( document.querySelector('#MENU span[data-link]:nth-child(3)') );
|
||||
|
||||
|
||||
sm.append('alt+down', function(){// on récupère la section courante
|
||||
var cSection = document.querySelector('#MENU span[data-link='+pageM.page+']');
|
||||
if( cSection != null ){ // si on a trouvé la section
|
||||
var parentChildren = cSection.parentNode.children;
|
||||
var nextIndex = parentChildren.indexOf( cSection ) + 1;
|
||||
|
||||
// si il y a une section après, on la charge
|
||||
if( nextIndex < parentChildren.length )
|
||||
selectSection( parentChildren[nextIndex] );
|
||||
}
|
||||
});
|
||||
|
||||
sm.append('ctrl+3', function(){
|
||||
selectSection( document.querySelector('#MENU span[data-link]:nth-child(4)') );
|
||||
});
|
||||
|
||||
sm.append('ctrl+4', function(){
|
||||
selectSection( document.querySelector('#MENU span[data-link]:nth-child(5)') );
|
||||
});
|
||||
|
||||
sm.append('ctrl+5', function(){
|
||||
selectSection( document.querySelector('#MENU span[data-link]:nth-child(6)') );
|
||||
});
|
||||
|
||||
sm.append('ctrl+right', function(){
|
||||
sm.append('alt+right', function(){
|
||||
// on récupère la sous-section courante
|
||||
var cSubSection = document.querySelector('#HEADER > nav.subsections > span[data-sectname='+pageM.vars[0]+']');
|
||||
if( cSubSection != null ){ // si on a trouvé la sous-section
|
||||
|
@ -418,7 +428,7 @@ sm.append('ctrl+right', function(){
|
|||
}
|
||||
});
|
||||
|
||||
sm.append('ctrl+left', function(){
|
||||
sm.append('alt+left', function(){
|
||||
// on récupère la sous-section courante
|
||||
var cSubSection = document.querySelector('#HEADER > nav.subsections > span[data-sectname='+pageM.vars[0]+']');
|
||||
if( cSubSection != null ){ // si on a trouvé la sous-section
|
|
@ -51,7 +51,7 @@ APIClass.prototype = {
|
|||
if( ptrAPI.xhr[i].readyState == 4 ){ // si la requête est terminée
|
||||
|
||||
/* DEBUG : affiche la réponse BRUTE de API.php */
|
||||
console.log('API.php => '+ptrAPI.xhr[i].responseText);
|
||||
// console.log('API.php => '+ptrAPI.xhr[i].responseText);
|
||||
console.log( JSON.parse(ptrAPI.xhr[i].responseText) );
|
||||
|
||||
/* si success de requête */
|
|
@ -23,7 +23,7 @@ function strToKeyCode(keyString){
|
|||
case 'alt': return 18; break;
|
||||
case 'tab': return 9; break;
|
||||
case 'left': return 37; break;
|
||||
case 'top': return 38; break;
|
||||
case 'up': return 38; break;
|
||||
case 'right': return 39; break;
|
||||
case 'down': return 40; break;
|
||||
}
|
||||
|
@ -43,8 +43,9 @@ function strToKeyCode(keyString){
|
|||
function ShortcutManager(){};
|
||||
|
||||
ShortcutManager.prototype = {
|
||||
pressed: [], // contiendra les touches pressées (en cours)
|
||||
shortcuts: [], // contiendra tous les raccourcis
|
||||
progress: [], // contiendra l'avancée des raccourcis
|
||||
// progress: [], // contiendra l'avancée des raccourcis
|
||||
handlers: [], // contiendra tous les handlers (fonctions à éxécuter)
|
||||
/* tmp */
|
||||
lastKeyCode: [], // contiendra des "reminder" pour les évènements
|
||||
|
@ -67,21 +68,11 @@ ShortcutManager.prototype = {
|
|||
/* [3] On enregistre dans l'objet (shortcuts, progress, handler)
|
||||
=======================================================*/
|
||||
var index = this.shortcuts.push( keyStore ) - 1;
|
||||
this.progress[index] = 0; // le progrès est l'index d'avancement
|
||||
// this.progress[index] = 0; // le progrès est l'index d'avancement
|
||||
this.handlers[index] = handler; // handler (function qui s'éxécutera lors de l'activation)
|
||||
this.lastKeyCode[index] = null; //
|
||||
},
|
||||
|
||||
|
||||
|
||||
/* remet à zéro tous les progrès */
|
||||
resetProgress: function(keyCode){
|
||||
for( var i = 0 ; i < this.progress.length ; i++ )
|
||||
if( this.lastKeyCode[i] != keyCode )
|
||||
this.progress[i] = 0;
|
||||
},
|
||||
|
||||
|
||||
/* démarre l'écoute (active les évènements) */
|
||||
listen: function(){
|
||||
|
||||
|
@ -92,22 +83,21 @@ ShortcutManager.prototype = {
|
|||
// on initialise/créer l'évènement
|
||||
window.addEventListener('keydown', function(e){
|
||||
|
||||
// on ajoute la touche si elle n'y est pas
|
||||
if( pointer.pressed.indexOf(e.keyCode) < 0 ) pointer.pressed.push(e.keyCode);
|
||||
|
||||
for( var i = 0 ; i < pointer.shortcuts.length ; i++ ){
|
||||
|
||||
// si on a la bonne touche, on incrémente l'avancement / sinon si on c'est une touche différente, on remet à 0
|
||||
if( e.keyCode == pointer.shortcuts[i][pointer.progress[i]] )
|
||||
pointer.progress[i] += 1;
|
||||
else if( e.keyCode != pointer.lastKeyCode[i] )
|
||||
pointer.progress[i] = 0;
|
||||
var complete = pointer.shortcuts[i].length; // taille du shortcut en question
|
||||
// on vérifie que l'ensemble des touches pressées remplissent le shortcut
|
||||
for( var k = 0 ; k < pointer.pressed.length ; k++ )
|
||||
if( pointer.shortcuts[i].indexOf( pointer.pressed[k] ) > -1 ) // si la touche est dans le shortcut, on décrémente compteur (complete)
|
||||
complete -= 1;
|
||||
|
||||
pointer.lastKeyCode[i] == e.keyCode;
|
||||
|
||||
// si on a terminé la combinaison de touches, on remet le compteur à 0 + on exécute le handler
|
||||
if( pointer.progress[i] == pointer.shortcuts[i].length ){
|
||||
pointer.progress[i] = 0;
|
||||
// si le compteur est à 0, on a terminé la combinaison de touches, on remet le compteur à 0 + on exécute le handler
|
||||
if( complete == 0 )
|
||||
pointer.handlers[i](e);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}, false);
|
||||
|
@ -115,9 +105,13 @@ ShortcutManager.prototype = {
|
|||
|
||||
|
||||
|
||||
// si on lâche une touche, on remet à zéro
|
||||
// si on lâche une touche, on l'enlève de "pressed"
|
||||
window.addEventListener('keyup', function(e){
|
||||
pointer.resetProgress( e.keyCode );
|
||||
var index = pointer.pressed.indexOf(e.keyCode);
|
||||
if( index > -1 ) // si c'est une touche définie comme déjà appuyée, on l'enlève
|
||||
pointer.pressed = pointer.pressed.slice(0,index).concat( pointer.pressed.slice(index+1) );
|
||||
else // sinon on supprime tout (car sûrement erreur d'écoute)
|
||||
pointer.pressed = [];
|
||||
}, false);
|
||||
}
|
||||
};
|
|
@ -110,7 +110,7 @@ class noteRepo extends DBAccess{
|
|||
============================================================*/
|
||||
if( !is_int($groupe) ){
|
||||
|
||||
$getNoteList = DataBase::getPDO()->prepare("SELECT DISTINCT g.id_groupe, g.nom as groupe, n.id_note as id, n.id_appartenance, n.id_controle, AVG(n.valeur) as moyenne, min(n.valeur) as min, max(n.valeur) as max, COUNT(n.valeur) as nb_notes
|
||||
$getNoteList = DataBase::getPDO()->prepare("SELECT DISTINCT g.id_groupe, g.nom as groupe, n.id_note as id, n.id_controle, AVG(n.valeur) as moyenne, min(n.valeur) as min, max(n.valeur) as max, COUNT(n.valeur) as nb_notes
|
||||
FROM note as n, appartenance as app, semestre as s, controle as ctrl, mcc_ue, mcc_module as mcc_m, groupe as g
|
||||
WHERE n.id_appartenance = app.id_appartenance
|
||||
AND app.id_semestre = s.id_semestre
|
||||
|
@ -120,6 +120,8 @@ class noteRepo extends DBAccess{
|
|||
AND mcc_m.id_mcc_module = ctrl.id_mcc_module
|
||||
AND n.id_controle = ctrl.id_controle
|
||||
|
||||
AND n.id_note in (SELECT max(id_note) FROM note GROUP BY id_appartenance, id_controle)
|
||||
|
||||
AND ctrl.id_controle = :controle
|
||||
|
||||
GROUP BY g.id_groupe
|
||||
|
@ -141,6 +143,8 @@ class noteRepo extends DBAccess{
|
|||
AND mcc_ue.id_mcc_ue = mcc_m.id_mcc_ue
|
||||
AND mcc_m.id_mcc_module = ctrl.id_mcc_module
|
||||
AND n.id_controle = ctrl.id_controle
|
||||
|
||||
AND n.id_note in (SELECT max(id_note) FROM note GROUP BY id_appartenance, id_controle)
|
||||
|
||||
AND ctrl.id_controle = :controle
|
||||
AND app.id_groupe = :groupe
|
||||
|
|
|
@ -302,7 +302,7 @@ class semestreRepo extends DBAccess{
|
|||
FROM semestre as s, formation as f
|
||||
WHERE s.id_formation = f.id_formation
|
||||
AND annee = :annee
|
||||
ORDER BY rang ASC");
|
||||
ORDER BY f.nom, annee, rang ASC");
|
||||
$getSemestreList->execute(array( ':annee' => $annee ));
|
||||
|
||||
return DataBase::delNumeric( $getSemestreList->fetchAll() );
|
||||
|
|
|
@ -118,7 +118,7 @@ class ueRepo extends DBAccess{
|
|||
AND mcc_ue.id_semestre = s.id_semestre
|
||||
|
||||
AND s.id_semestre = :semestre
|
||||
ORDER BY s.rang, ue.nom, ue.libelle");
|
||||
ORDER BY s.rang, ue.nom, ue.libelle ASC");
|
||||
$getUEList->execute(array( ':semestre' => $semestre ));
|
||||
|
||||
return DataBase::delNumeric( $getUEList->fetchAll() );
|
||||
|
|
|
@ -217,7 +217,7 @@ if( document.querySelector('#CONTAINER section[name=controlesenseignants]') != n
|
|||
|
||||
toutesNotes.push({
|
||||
etudiant: saisieObjEnseignant[i].userid,
|
||||
valeur: saisieObjEnseignant[i].inputEl.value.replace(',', '.') // par précaution, on replace les virgules par des points pour le php (is_numeric)
|
||||
valeur: parseFloat( saisieObjEnseignant[i].inputEl.value.replace(',', '.') ) // par précaution, on replace les virgules par des points pour le php (is_numeric)
|
||||
});
|
||||
|
||||
}}
|
||||
|
|
|
@ -190,35 +190,39 @@ if( importMcc != null ){
|
|||
/* GESTION DE LA CRÉATION DE SEMESTRE */
|
||||
/**************************************/
|
||||
var creerSemestre = document.getElementById('creer_semestre');
|
||||
creerSemestre.addEventListener('click', function(e){
|
||||
|
||||
addClass( creerSemestre, 'loading' );
|
||||
if( creerSemestre != null ){ // si la page est présente
|
||||
|
||||
var form = creerSemestre.parentNode;
|
||||
var fAnnee = form.children[2].value;
|
||||
var fFormation = form.children[4].value;
|
||||
var fLibelle = form.children[6].value;
|
||||
var fSemestre = form.children[8].value;
|
||||
var fRang = form.children[10].value;
|
||||
creerSemestre.addEventListener('click', function(e){
|
||||
|
||||
var request = {
|
||||
level_0: 'career',
|
||||
level_1: 'creerSemestre',
|
||||
annee: fAnnee,
|
||||
formation: fFormation,
|
||||
nom_formation: fLibelle,
|
||||
semestre: fSemestre,
|
||||
rang: fRang
|
||||
}
|
||||
addClass( creerSemestre, 'loading' );
|
||||
|
||||
API.send(request, function(e){
|
||||
if( e.request == 'success' )
|
||||
reload();
|
||||
});
|
||||
var form = creerSemestre.parentNode;
|
||||
var fAnnee = form.children[2].value;
|
||||
var fFormation = form.children[4].value;
|
||||
var fLibelle = form.children[6].value;
|
||||
var fSemestre = form.children[8].value;
|
||||
var fRang = form.children[10].value;
|
||||
|
||||
var request = {
|
||||
level_0: 'career',
|
||||
level_1: 'creerSemestre',
|
||||
annee: fAnnee,
|
||||
formation: fFormation,
|
||||
nom_formation: fLibelle,
|
||||
semestre: fSemestre,
|
||||
rang: fRang
|
||||
}
|
||||
|
||||
API.send(request, function(e){
|
||||
if( e.request == 'success' )
|
||||
reload();
|
||||
});
|
||||
|
||||
|
||||
}, false);
|
||||
}, false);
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
|
|
@ -846,7 +846,7 @@ elseif( permission('master') || permission('admin') ){ // si enseignant et qu'un
|
|||
*
|
||||
*/
|
||||
if( (permission('master') || permission('admin')) && $etudiantOpt != null ){
|
||||
include __ROOT__.'/svg.php';
|
||||
include __ROOT__.'src/svg.php';
|
||||
|
||||
|
||||
|
||||
|
@ -864,17 +864,6 @@ if( (permission('master') || permission('admin')) && $etudiantOpt != null ){
|
|||
$parcoursChart = array();
|
||||
foreach($answer->parcours as $semestre) array_push($parcoursChart, array('id'=>$semestre['id'], 'nom' => $semestre['formation'].' '.$semestre['semestre']) );
|
||||
|
||||
// $parcoursChart = array(
|
||||
// array('id' => 1, 'nom' => 'ITINN1 - S1' ),
|
||||
// array('id' => 2, 'nom' => 'ITINN1 - S2' ),
|
||||
// array('id' => 1, 'nom' => 'ITINN1 - S1' ),
|
||||
// array('id' => 2, 'nom' => 'ITINN1 - S2' ),
|
||||
// array('id' => 1, 'nom' => 'ITINN2 - S3' ),
|
||||
// array('id' => 1, 'nom' => 'ITINN2 - S4' ),
|
||||
// array('id' => 1, 'nom' => 'ITINN2 - S3' ),
|
||||
// array('id' => 1, 'nom' => 'ITINN2 - S4' )
|
||||
// );
|
||||
|
||||
displayParcours( $parcoursChart );
|
||||
|
||||
// pour chaque semestres (tous si aucun semestreOpt, sinon uniquement le selectionné)
|
||||
|
|
Loading…
Reference in New Issue