[update] `historyDefault/search` and `history/search` (using username and machine name)

This commit is contained in:
xdrm-brackets 2017-07-29 18:45:24 +02:00
parent 601d331348
commit 80e0fcc0c1
3 changed files with 84 additions and 2 deletions

View File

@ -2,6 +2,8 @@
namespace database\repo;
use \database\core\DatabaseDriver;
use \database\core\Repo;
use \error\core\Err;
use \orm\core\Table;
use \orm\core\Rows;
@ -189,6 +191,56 @@
return $history->fetch();
}
/* RENVOIE UNE LISTE DE LOGS EN FONCTION D'UN MOT CLE
*
* @id_warehouse<int> UID de l'entrepot
* @keyword<String> Element de recherche
*
* @return logs<Array> Retourne les logs trouvees
*
*/
public static function search($id_warehouse, $keyword){
$machine_ids = [];
$user_ids = [];
/* [1] Recherche dans les relations 'machines'
=========================================================*/
/* (1) On exécute la requête */
$machines_r = new Repo('machine/search', [$id_warehouse, $keyword]);
/* (2) Gestion succès */
if( $machines_r->error->get() == Err::Success )
foreach($machines_r->answer() as $row)
$machine_ids[] = $row['id_machine'];
/* [2] Recherche dans les relations 'users'
=========================================================*/
/* (1) On cherche dans les utilisateurs */
$users_r = new Repo('user/search', [$id_warehouse, $keyword]);
/* (2) Gestion succès */
if( $users_r->error->get() == Err::Success )
foreach($users_r->answer() as $row)
$user_ids[] = $row['id_user'];
/* [3] On rédige/execute la requête
=========================================================*/
$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;");
$history_r->execute();
return DatabaseDriver::delNumeric( $history_r->fetchAll() );
}

View File

@ -526,7 +526,19 @@
"output": {
"history": { "description": "Données de l'historique", "type": "array" }
}
},
"POST::search": {
"description": "Recherche une entrée historique par mots-clés.",
"permissions": [["admin"]],
"parameters": {
"keywords": { "description": "Mots-clés de recherche d'entrée historique", "type": "text" }
},
"output": {
"history": { "description": "Liste des logs correspondant à la recherche.", "type": "array<array<mixed>>" }
}
}
}
}

View File

@ -16,12 +16,12 @@
<span>Tout afficher</span>
</span>
<span data-sublink='filter' >
<span data-sublink='details' >
<span class='svg'><?php echo file_get_contents( __PUBLIC__.'/src/static/sub-menu-side/filter.svg' ); ?></span>
<span>Détails</span>
</span>
<span data-sublink='remove' >
<span data-sublink='archive' >
<span class='svg'><?php echo file_get_contents( __PUBLIC__.'/src/static/sub-menu-side/archive.svg' ); ?></span>
<span>Archiver</span>
</span>
@ -49,3 +49,21 @@
$view->view();
echo '</section>';
/* [1] VIEW -> Liste des acces
=========================================================*/
if( isset($post[1]) && is_numeric($post[1]) ){
echo "<section data-sublink='details' class='list fstart'>";
echo "details";
$view = new Viewer('history.details', []);
$view->view();
echo '</section>';
}