/* [1] Gestion des tokens =========================================================*/ var TOKEN = { add: { // Tout ce qui attrait a l'ajout toggle: document.getElementById('add-token'), // bouton de toggle pour l'affichage du panel panel: document.querySelector("[data-sublink='tokens'] div[data-add]"), // formulaire de creation state: true, // etat (visible ou non) du panel name: document.querySelector("[data-sublink='tokens'] div[data-add] #add-name"), // nom du token a creer duration: document.querySelector("[data-sublink='tokens'] div[data-add] #add-duration"), // duree du token a creer (en jours) submit: document.querySelector("[data-sublink='tokens'] div[data-add] #add-token-submit") // validation de la creation }, remove: { buttons: document.querySelectorAll('.remove-token') } }; /* (1) Gestion de la creation de token */ /* (1.1) Gestion du toggle pour le panel de creation */ TOKEN.add.toggle.addEventListener('click', function(e){ // Gestion du toggle if( TOKEN.add.state ) TOKEN.add.panel.addClass('active'); else TOKEN.add.panel.remClass('active'); TOKEN.add.state = !TOKEN.add.state; // switch de l'etat pour le toggle }, false); /* (1.2) Gestion de la creation */ TOKEN.add.submit.addEventListener('click', function(e){ // On redige la requete var request = { // on ecrit la requete 'path': 'token/generate', 'name': TOKEN.add.name.value, 'duration': TOKEN.add.duration.value }; // On lance la requete api.send(request, function(answer){ // Si la generation effectuee, on recharge la page if( answer.ModuleError == 0 ) reload(); }); }, false); /* (2) Gestion de la suppression d'un token */ for( var i = 0 ; i < TOKEN.remove.buttons.length ; i++ ){ /* (2.0) Pour chaque bouton supprimer, on attache un evenement */ TOKEN.remove.buttons[i].addEventListener('click', function(e){ var token_id = e.target.parentNode.getData('id'); /* (2.1) Si on ne trouve pas l'id, on retourne une erreur */ if( token_id == false ){ console.warn('id du token non trouvee'); return; } /* (2.2) On lance la suppression */ var request = { // on ecrit la requete 'path': 'token/remove', 'token_id': token_id }; // On lance la requete api.send(request, function(answer){ console.log(answer); // Si la suppression effectuee, on recharge la page if( answer.ModuleError == 0 ) reload(); }); }, false); } /* [2] Gestion des utilisateurs =========================================================*/ var USERS = { add: { // Tout ce qui attrait a l'ajout toggle: document.getElementById('add-user'), // bouton de toggle pour l'affichage du panel panel: document.querySelector("[data-sublink='users'] div[data-add]"), // formulaire de creation state: true, // etat (visible ou non) du panel login: document.querySelector("[data-sublink='users'] div[data-add] #add-login"), // identifiant de l'utilisateur password: document.querySelector("[data-sublink='users'] div[data-add] #add-password"), // password de l'utilisateur password2: document.querySelector("[data-sublink='users'] div[data-add] #add-password2"), // verification du password de l'utilisateur mail: document.querySelector("[data-sublink='users'] div[data-add] #add-mail"), // adresse mail de l'utilisateur isAdmin: document.querySelector("[data-sublink='users'] div[data-add] #add-admin"), // Bouton radio si l'utilisateur est admin isSubject: document.querySelector("[data-sublink='users'] div[data-add] #add-subject"), // Bouton radio si l'utilisateur est sujet reference: document.querySelector("[data-sublink='users'] div[data-add] #add-reference"), // reference de l'utilisateur submit: document.querySelector("[data-sublink='users'] div[data-add] #add-user-submit") // validation de la creation }, remove: { buttons: document.querySelectorAll('.remove-user') } }; /* (1) Gestion de la creation d'utilisateur */ /* (1.1) Gestion du toggle pour le panel de creation */ USERS.add.toggle.addEventListener('click', function(e){ // Gestion du toggle if( USERS.add.state ) USERS.add.panel.addClass('active'); else USERS.add.panel.remClass('active'); USERS.add.state = !USERS.add.state; // switch de l'etat pour le toggle }, false); /* (1.2) Gestion de la creation */ USERS.add.submit.addEventListener('click', function(e){ // On verifie que les 2 mots de passe sont identiques if( USERS.add.password.value != USERS.add.password2.value ){ return; } // On redige la requete var request = { // on ecrit la requete 'path': 'user/create', 'login': USERS.add.login.value, 'password': USERS.add.password.value, 'mail': USERS.add.mail.value, 'reference': USERS.add.reference.value, 'permissions': (USERS.add.isAdmin.checked) ? 'admin' : 'subject' }; // On lance la requete api.send(request, function(answer){ console.log(answer); // Si la generation effectuee, on recharge la page if( answer.ModuleError == 0 ) reload(); }); }, false); /* (2) Gestion de la suppression d'utilisateur */ for( var i = 0 ; i < USERS.remove.buttons.length ; i++ ){ /* (2.0) Pour chaque bouton supprimer, on attache un evenement */ USERS.remove.buttons[i].addEventListener('click', function(e){ var user_id = e.target.parentNode.getData('id'); /* (2.1) Si on ne trouve pas l'id, on retourne une erreur */ if( user_id == false ){ console.warn('id de l\'utilisateur non trouvee'); return; } /* (2.2) On lance la suppression */ var request = { // on ecrit la requete 'path': 'user/remove', 'user_id': user_id }; // On lance la requete api.send(request, function(answer){ console.log(answer); // Si la suppression effectuee, on recharge la page if( answer.ModuleError == 0 ) reload(); }); }, false); }