From fce52f918a9f9d369183e6ee757129ab83262dd0 Mon Sep 17 00:00:00 2001 From: xdrm-brackets Date: Wed, 17 Feb 2016 11:31:46 +0100 Subject: [PATCH] - [x] [view/js/users] Implementer la recherche pour la suppression --- todo.md | 2 +- view/js/machines.js | 3 - view/js/users.js | 132 ++++++++++++++++++++++++++++---------------- 3 files changed, 85 insertions(+), 52 deletions(-) diff --git a/todo.md b/todo.md index ab18c05..031b0dd 100755 --- a/todo.md +++ b/todo.md @@ -7,7 +7,6 @@ ############ # EN COURS # ############ -- [ ] [view/js/users] Implementer la recherche pour la suppression - [ ] [container.scss] Icone dans bouton quand succes sur l'operation - [ ] [view/users][view/js/users.js] Suppression avec recherche comme pour la modification @@ -17,6 +16,7 @@ ######## # FAIT # ######## +- [x] [view/js/users] Implementer la recherche pour la suppression - [x] [view/js/machines] Implementer la recherche pour la suppression - [x] Nettoyage git - [x] [ResourceDispatcher] Gestion de la coloration de svg diff --git a/view/js/machines.js b/view/js/machines.js index 7a397f1..15e6b8a 100755 --- a/view/js/machines.js +++ b/view/js/machines.js @@ -257,9 +257,6 @@ if( section.remove.element != null ){ // On annule l'envoi de base (PHP) e.preventDefault(); - /* (1) On recupere l'UID de la machine */ - var getuid = {}; - // Si l'id est defini if( section.remove.input.search.id.value != '' ){ diff --git a/view/js/users.js b/view/js/users.js index a83e383..38eb900 100755 --- a/view/js/users.js +++ b/view/js/users.js @@ -185,8 +185,14 @@ if( section.create.element != null ){ =========================================================*/ if( section.remove.element != null ){ - // Definition des champs + /* (1) Definition des champs */ section.remove.input = { + search: { + keyword: document.querySelector(section.remove.text + '#remove_search_keyword'), + id: document.querySelector(section.remove.text + '#remove_search_id'), + submit: document.querySelector(section.remove.text + '#remove_search_submit') + }, + code: document.querySelector(section.remove.text + '#remove_code'), username: document.querySelector(section.remove.text + '#remove_username'), @@ -194,73 +200,104 @@ if( section.remove.element != null ){ }; - /* (1) Gestion de l'auto-remplissage par url */ + /* (2) Gestion de l'auto-remplissage par url */ function autofill_remove(id_user){ // On recupere le code + username de l'utilisateur selectionne - var user_data = null; + var user_data = { + id_user: '', + code: '', + username: '', + firstname: '', + lastname: '', + mail: '', + status: '', + disable_input: true + }; api.send({path:'userDefault/getById', data: [id_user]}, function(answer){ if( answer.ModuleError == 0 ){ // Si un resultat user_data = answer.user; + user_data.disable_input = false; + } // Auto-remplissage du formulaire section.remove.input.code.value = user_data.code; section.remove.input.username.value = user_data.username; // On affiche le bouton de suppression - section.remove.input.submit.disabled = false; + section.remove.input.submit.disabled = user_data.disable_input; - }else // Si aucun resultat -> on desactive le bouton de suppression - section.remove.input.submit.disabled = true; }); }if( pageManager.vars.length >= 2 && !isNaN(pageManager.vars[1]) ) autofill_remove(pageManager.vars[1]); + /* (3) Gestion de la recherche */ + var lastsearch_remove = null; + var searchindex_remove = 0; + section.remove.input.search.submit.addEventListener('click', function(e){ + // On annule l'envoi de base (PHP) + e.preventDefault(); + + // Si le champ n'est pas vide, on lance la recherche + if( section.remove.input.search.keyword.value != '' ){ + // Redaction de la requete + var getuid = { + path: 'userDefault/search', + data: [section.remove.input.search.keyword.value] + }; + + // On envoie la requete + api.send(getuid, function(uidanswer){ + if( uidanswer.ModuleError == 0 && uidanswer.users.length > 0){ // si on a trouve qqch + // Si on trouve la meme machine que lors de la derniere recherche + if( lastsearch_remove == uidanswer.users[searchindex_remove].id_user ) + searchindex_remove = (searchindex_remove+1) % uidanswer.users.length; // on affiche le prochain (decalage cyclique) + + lastsearch_remove = uidanswer.users[searchindex_remove].id_user; + section.remove.input.search.id.value = lastsearch_remove; + // on auto-remplit le formulaire + autofill_remove(lastsearch_remove); + + }else + autofill_remove(null); + }); + } + + }, false); + + + + + + /* (n) Gestion de l'envoi du formulaire */ section.remove.input.submit.addEventListener('click', function(e){ // On annule l'envoi de base (PHP) e.preventDefault(); + // Si l'id est defini + if( section.remove.input.search.id.value != '' ){ + /* (2) On supprime l'utilisateur */ + var request = { + path: 'userDefault/delete', // On veut supprimer cet utilisateur + data: [section.remove.input.search.id.value] + }; - /* (1) On recupere l'UID de l'utilisateur */ - var getuid = {}; + api.send(request, function(answer){ + if( answer.ModuleError == 0 && answer.status == true ){ // Tout s'est bien deroule + console.log('Utilisateur supprime!'); + // On vide le formulaire + autofill_remove(null); + }else // Erreur + console.error('ModuleError::'+answer.ModuleError); + }); - // recuperation par CODE - if( section.remove.input.code.value != '' ){ - getuid.path = 'userDefault/getByCode'; - getuid.data = [section.remove.input.code.value]; - - // recuperation par USERNAME - }else if( section.remove.input.username.value != '' ){ - getuid.path = 'userDefault/getByUsername'; - getuid.data = [section.remove.input.username.value]; } - // On envoie la requete de demande d'uid - api.send(getuid, function(uid_answer){ - if( uid_answer.ModuleError == 0 ){ // Si aucune erreur - - /* (2) On supprime l'utilisateur */ - var request = { - path: 'userDefault/delete', // On veut supprimer cet utilisateur - data: [uid_answer.user.id_user] - }; - - api.send(request, function(answer){ - if( answer.ModuleError == 0 && answer.status == true ) // Tout s'est bien deroule - console.log('Utilisateur supprime!'); - else // Erreur - console.error('ModuleError::'+answer.ModuleError); - }); - - } - - }); - }, false); } @@ -347,8 +384,8 @@ if( section.edit.element != null ){ /* (2) Gestion de la recherche de l'utilisateur */ - var lastsearch = null; - var searchindex = 0; + var lastsearch_edit = null; + var searchindex_edit = 0; section.edit.input.search.submit.addEventListener('click', function(e){ // On annule l'envoi de base (PHP) e.preventDefault(); @@ -365,17 +402,16 @@ if( section.edit.element != null ){ api.send(getuid, function(uidanswer){ if( uidanswer.ModuleError == 0 && uidanswer.users.length > 0 ){ // si on a trouve qqch // Si on trouve le meme utilisateur que lors de la derniere recherche - if( lastsearch == uidanswer.users[searchindex].id_user ) - searchindex = (searchindex+1) % uidanswer.users.length; // on affiche le prochain (decalage cyclique) + if( lastsearch_edit == uidanswer.users[searchindex_edit].id_user ) + searchindex_edit = (searchindex_edit+1) % uidanswer.users.length; // on affiche le prochain (decalage cyclique) - lastsearch = uidanswer.users[searchindex].id_user; - section.edit.input.search.id.value = lastsearch; + lastsearch_edit = uidanswer.users[searchindex_edit].id_user; + section.edit.input.search.id.value = lastsearch_edit; // on auto-remplit le formulaire - autofill_edit(lastsearch); + autofill_edit(lastsearch_edit); - }else{ + }else autofill_edit(null); - } }); } @@ -412,7 +448,7 @@ if( section.edit.element != null ){ console.log('Utilisateur modifie!'); // On met a jour l'utilisateur - autofill_edit(null); + autofill_edit(section.edit.input.search.id.value); }else // Erreur console.error('ModuleError::'+answer.ModuleError);