257 lines
6.9 KiB
JavaScript
Executable File
257 lines
6.9 KiB
JavaScript
Executable File
// On referencie toutes les sections
|
|
var section = {
|
|
info: {
|
|
text: '#CONTAINER > section[data-sublink="info"] ',
|
|
element: document.querySelector('#CONTAINER > section[data-sublink="info"]')
|
|
},
|
|
|
|
password: {
|
|
text: '#CONTAINER > section[data-sublink="password"] ',
|
|
element: document.querySelector('#CONTAINER > section[data-sublink="password"]')
|
|
},
|
|
|
|
admins: {
|
|
text: '#CONTAINER > section[data-sublink="admins"] ',
|
|
element: document.querySelector('#CONTAINER > section[data-sublink="admins"]')
|
|
},
|
|
|
|
admin: {
|
|
text: '#CONTAINER > section[data-sublink="admin"] ',
|
|
element: document.querySelector('#CONTAINER > section[data-sublink="admin"]')
|
|
}
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
/* [1] info -> Visualisation des informations de l'entrepôt
|
|
=========================================================*/
|
|
if( section.info.element != null ){
|
|
// TODO: Info warehouse
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/* [2] password -> Changement de mot de passe
|
|
=========================================================*/
|
|
if( section.password.element != null ){
|
|
|
|
// On récupère les champs
|
|
section.password.input = {
|
|
old: document.querySelector(section.password.text + '#old_pwd'),
|
|
new: document.querySelector(section.password.text + '#new_pwd'),
|
|
confirm: document.querySelector(section.password.text + '#confirm_pwd'),
|
|
|
|
submit: document.querySelector(section.password.text + '#update_pwd')
|
|
};
|
|
|
|
// On recupere tous les messages d'erreur
|
|
section.password.errmsg = {
|
|
old: document.querySelector(section.password.text + '.error-msg.old_pwd'),
|
|
new: document.querySelector(section.password.text + '.error-msg.new_pwd'),
|
|
confirm: document.querySelector(section.password.text + '.error-msg.confirm_pwd')
|
|
};
|
|
|
|
/* (n) Gestion de l'envoi du formulaire */
|
|
section.password.input.submit.addEventListener('click', function(e){
|
|
// On annule l'envoi de base (PHP)
|
|
e.preventDefault();
|
|
|
|
// On vide les messages erreurs
|
|
section.password.errmsg.old.innerHTML =
|
|
section.password.errmsg.new.innerHTML =
|
|
section.password.errmsg.confirm.innerHTML = '';
|
|
|
|
var request = {
|
|
path: 'authenticationDefault/update_warehouse', // On veut modifier le mot de passe admin
|
|
old: section.password.input.old.value,
|
|
new: section.password.input.new.value,
|
|
confirm: section.password.input.confirm.value
|
|
};
|
|
|
|
api.send(request, function(answer){
|
|
if( answer.error == 0 ){ // Tout s'est bien deroule
|
|
console.log('Mot de passe mis à jour!');
|
|
|
|
section.password.input.submit.anim('active', 1500);
|
|
|
|
// on vide les champs
|
|
section.password.input.old.value = '';
|
|
section.password.input.new.value = '';
|
|
section.password.input.confirm.value = '';
|
|
|
|
}else{ // Erreur
|
|
console.error('ModuleError::'+answer.error);
|
|
|
|
// if missing or incorrect param
|
|
if( answer.error == 16 || answer.error == 17 ){
|
|
if( section.password.errmsg[answer.ErrorArguments[0]] != null )
|
|
section.password.errmsg[answer.ErrorArguments[0]].innerHTML = 'Le champ est manquant ou incorrect !';
|
|
}
|
|
}
|
|
|
|
});
|
|
|
|
|
|
|
|
}, false);
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/* [3] admins -> Liste des administrateurs
|
|
=========================================================*/
|
|
if( section.admins.element != null ){
|
|
|
|
/* (1) Fetch the remove links
|
|
---------------------------------------------------------*/
|
|
section.admins.link = {};
|
|
section.admins.link.remove = document.querySelectorAll(section.admins.text + '.link_remove[data-admin]');
|
|
|
|
/* (2) Define admin-remove function
|
|
---------------------------------------------------------*/
|
|
var remove_admin = function(entry_element){
|
|
/* (1) Get admin.id + admin.name */
|
|
var admin = {
|
|
id: parseInt(entry_element.id),
|
|
name: entry_element.children[0].children[0].innerHTML
|
|
};
|
|
|
|
/* (2) Create popup */
|
|
var PopupManager = new Popup();
|
|
|
|
var confirm_content = {
|
|
title: "Suppression d'un administrteur",
|
|
content: "L'administrateur <b>"+admin.name+"</b> sera définitivement supprimé de la plateforme, cette opération ne peut pas être annulée.",
|
|
type: "invalid",
|
|
action: "Supprimer"
|
|
};
|
|
|
|
/* (3) Ask for confirmation */
|
|
PopupManager.ask(confirm_content, function(is_confirmed){
|
|
|
|
/* (3.1) If cancelled -> abort */
|
|
if( !is_confirmed )
|
|
return;
|
|
|
|
/* (2.1) Manage deletion
|
|
---------------------------------------------------------*/
|
|
/* (1) Create request */
|
|
var request = {
|
|
path: 'adminDefault/delete', // On veut créer un nouvel admin
|
|
id_admin: admin.id
|
|
};
|
|
|
|
/* (2) Send request + handle response */
|
|
api.send(request, function(answer){
|
|
|
|
if( answer.error == 0 ){ // Tout s'est bien deroule
|
|
|
|
console.log('Admin supprimé!');
|
|
|
|
// on supprime de la liste
|
|
entry_element.parentNode.removeChild(entry_element);
|
|
|
|
}else{ // Erreur
|
|
|
|
console.error('ModuleError::'+answer.error);
|
|
|
|
}
|
|
|
|
});
|
|
|
|
|
|
});
|
|
|
|
};
|
|
|
|
|
|
/* (3) Bind event for each remove link
|
|
---------------------------------------------------------*/
|
|
for( var i = 0 ; i < section.admins.link.remove.length ; i++ ){
|
|
|
|
section.admins.link.remove[i].addEventListener('click', function(e){
|
|
|
|
remove_admin(e.target.parentNode.parentNode);
|
|
|
|
}, false);
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/* [4] admin -> Création d'administrateur
|
|
=========================================================*/
|
|
if( section.admin.element != null ){
|
|
|
|
// On récupère les champs
|
|
section.admin.input = {
|
|
username: document.querySelector(section.admin.text + '#admin_username'),
|
|
mail: document.querySelector(section.admin.text + '#admin_mail'),
|
|
password: document.querySelector(section.admin.text + '#admin_password'),
|
|
|
|
submit: document.querySelector(section.admin.text + '#admin_submit')
|
|
};
|
|
|
|
// On recupere tous les messages d'erreur
|
|
section.admin.errmsg = {
|
|
username: document.querySelector(section.admin.text + '.error-msg.admin_username'),
|
|
mail: document.querySelector(section.admin.text + '.error-msg.admin_mail')
|
|
};
|
|
|
|
/* (n) Gestion de l'envoi du formulaire */
|
|
section.admin.input.submit.addEventListener('click', function(e){
|
|
// On annule l'envoi de base (PHP)
|
|
e.preventDefault();
|
|
|
|
// On vide les messages erreurs
|
|
section.admin.errmsg.username.innerHTML =
|
|
section.admin.errmsg.mail.innerHTML = '';
|
|
|
|
var request = {
|
|
path: 'adminDefault/create', // On veut créer un nouvel admin
|
|
username: section.admin.input.username.value,
|
|
mail: section.admin.input.mail.value
|
|
};
|
|
|
|
api.send(request, function(answer){
|
|
if( answer.error == 0 ){ // Tout s'est bien deroule
|
|
console.log('Admin créé!');
|
|
|
|
section.admin.input.submit.anim('active', 1500);
|
|
|
|
// on vide les champs
|
|
section.admin.input.username.value = '';
|
|
section.admin.input.mail.value = '';
|
|
section.admin.input.password.value = answer.password;
|
|
|
|
}else{ // Erreur
|
|
console.error('ModuleError::'+answer.error);
|
|
|
|
// if missing or incorrect param
|
|
if( answer.error == 16 || answer.error == 17 ){
|
|
if( section.admin.errmsg[answer.ErrorArguments[0]] != null )
|
|
section.admin.errmsg[answer.ErrorArguments[0]].innerHTML = 'Le champ est manquant ou incorrect !';
|
|
}
|
|
}
|
|
|
|
});
|
|
|
|
|
|
|
|
}, false);
|
|
|
|
}
|
|
|