From e0f20cdd8517e85b90528090ebbf215e26f53ee9 Mon Sep 17 00:00:00 2001 From: xdrm-brackets Date: Sat, 29 Jul 2017 18:56:12 +0200 Subject: [PATCH] [update] history search (front-end) --- build/database/repo/history.php | 2 +- build/viewer/view/history/view.twig | 6 +-- public_html/view/js/history.js | 72 +++++++++++++++++++++++++++++ 3 files changed, 76 insertions(+), 4 deletions(-) create mode 100644 public_html/view/js/history.js diff --git a/build/database/repo/history.php b/build/database/repo/history.php index 059b47e..5af5024 100755 --- a/build/database/repo/history.php +++ b/build/database/repo/history.php @@ -234,7 +234,7 @@ $history_r = DatabaseDriver::getPDO()->prepare("SELECT id_history FROM history WHERE id_user IN (SELECT id_user FROM user WHERE username LIKE '%$keyword%') or id_machine IN (SELECT id_machine FROM machine WHERE name LIKE '%$keyword%') - ORDER BY id_history ASC;"); + ORDER BY timestamp DESC;"); $history_r->execute(); diff --git a/build/viewer/view/history/view.twig b/build/viewer/view/history/view.twig index 195d6c0..e78eaa9 100755 --- a/build/viewer/view/history/view.twig +++ b/build/viewer/view/history/view.twig @@ -17,7 +17,7 @@ {% endif %} -
+
#{{ entry.machine_name }} @@ -31,13 +31,13 @@ {{ entry.user_name }} {{ entry.user_firstname }} {{ entry.user_lastname }} - + {{ entry.action_name }} - +
diff --git a/public_html/view/js/history.js b/public_html/view/js/history.js new file mode 100644 index 0000000..d5c5dc2 --- /dev/null +++ b/public_html/view/js/history.js @@ -0,0 +1,72 @@ +// On referencie toutes les sections +var section = { + view: { + text: '#CONTAINER > section[data-sublink="view"] ', + element: document.querySelector('#CONTAINER > section[data-sublink="view"]'), + searchbar: document.querySelector('#CONTAINER > section[data-sublink="view"] > .searchbar') + }, + + details: { + text: '#CONTAINER > section[data-sublink="details"] ', + element: document.querySelector('#CONTAINER > section[data-sublink="details"]') + }, + + archive: { + text: '#CONTAINER > section[data-sublink="archive"] ', + element: document.querySelector('#CONTAINER > section[data-sublink="archive"]') + }, + +}; + + +/* GESTION DE L'AFFICHAGE DES ENTREES +* +*/ +if( section.view.element != null ){ + + /* (1) On recupere tous les liens */ + section.view.link = { + details: document.querySelectorAll(section.view.text + 'button[data-details]') + }; + + + /* (2) Gestion de la recherche instantannee */ + section.view.searchbar.addEventListener('keyup', function(e){ + + var search = { + path: 'historyDefault/search', + keywords: section.view.searchbar.value + }; + + // On envoie la requete + api.send(search, function(result){ + if( result.error == 0 ){ // si aucune erreur + + // On enregistre tous les UID dans un tableau + var uid_list = []; + for( var i = 0 ; i < result.history.length ; i++ ) + uid_list.push( parseInt(result.history[i].id_history) ); + + // On recupere la liste des elements correspondants aux logs + var history_list = document.querySelectorAll(section.view.text + '> article.inline-row[id]'); + + // Pour chaque log + for( var i = 0 ; i < history_list.length ; i++ ){ + console.log(uid_list, history_list); + // Si doit etre visible + if( uid_list.indexOf(parseInt(history_list[i].id)) > -1 ) + history_list[i].remClass('hidden'); + // Si ne doit pas etre visible + else + history_list[i].addClass('hidden'); + } + } + }); + + }, false); + + + +} + +