NxTIC/public_html/view/js/settings.js

184 lines
4.8 KiB
JavaScript

/* [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: $("[data-sublink='tokens'] div[data-add]"), // formulaire de creation
state: true, // etat (visible ou non) du panel
submit: $("[data-sublink='tokens'] div[data-add] #add-token-submit") // validation de la creation
},
remove: {
buttons: $$('.remove-token')
}
};
var tokenDeflater = new FormDeflater(TOKEN.add.panel, ['input'], ['id']);
/* (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){
var form = tokenDeflater.deflate();
// On redige la requete
var request = { // on ecrit la requete
'path': 'token/generate',
'name': form['add-name'],
'duration': form['add-duration']
};
// 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: $("[data-sublink='users'] div[data-add]"), // formulaire de creation
state: true, // etat (visible ou non) du panel
submit: $("[data-sublink='users'] div[data-add] #add-user-submit") // validation de la creation
},
remove: {
buttons: $$('.remove-user')
}
};
var userDefalter = new FormDeflater(USERS.add.panel, ['input'], ['id']);
/* (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){
var form = userDefalter.deflate();
// On verifie que les 2 mots de passe sont identiques
if( form['add-password'] != form['add-password2'] ){
return;
}
// On redige la requete
var request = { // on ecrit la requete
'path': 'user/create',
'login': form['add-login'],
'password': form['add-password'],
'mail': form['add-mail'],
'reference': form['add-reference'],
'permission': form['add-admin']
};
// 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',
'id_user': user_id
};
// On lance la requete
api.send(request, function(answer){
// Si la suppression effectuee, on recharge la page
if( answer.ModuleError == 0 )
reload();
});
}, false);
}