From a5263e321bd0dfd46b0d9078c953200ae7384e2f Mon Sep 17 00:00:00 2001 From: Esenjin Date: Thu, 9 Jan 2025 23:17:35 +0100 Subject: [PATCH] =?UTF-8?q?quelques=20am=C3=A9liorations=20sur=20la=20page?= =?UTF-8?q?=20des=20logs?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- logs.php | 99 +++++++++++++++++++++++++++++++++++++++++++++--- styles-admin.css | 17 +++++++++ 2 files changed, 111 insertions(+), 5 deletions(-) diff --git a/logs.php b/logs.php index 62f6669..fb25edf 100644 --- a/logs.php +++ b/logs.php @@ -19,6 +19,31 @@ if ($_SESSION['admin_id'] != $firstId) { exit; } +// Supprimer les logs de plus d'un mois +$db->exec('DELETE FROM admin_logs WHERE created_at < datetime("now", "-1 month")'); + +// Tableau de traduction des actions +$actionTranslations = [ + 'ADD_USER' => 'Ajouter un utilisateur', + 'EDIT_USER' => 'Modifier un utilisateur', + 'DELETE_USER' => 'Supprimer un utilisateur', + 'CREATE_FOLDER' => 'Créer un dossier', + 'EDIT_FOLDER' => 'Modifier un dossier', + 'DELETE_FOLDER' => 'Supprimer un dossier', + 'CREATE_PRIVATE_FOLDER' => 'Créer un dossier privé', + 'EDIT_PRIVATE_FOLDER' => 'Modifier un dossier privé', + 'DELETE_PRIVATE_FOLDER' => 'Supprimer un dossier privé', + 'UPLOAD_IMAGES' => 'Téléverser des images', + 'DELETE_IMAGES' => 'Supprimer des images', + 'MOVE_IMAGES' => 'Déplacer des images', + 'UPLOAD_PRIVATE_IMAGES' => 'Téléverser des images privées', + 'DELETE_PRIVATE_IMAGES' => 'Supprimer des images privées', + 'GENERATE_SHARE_LINK' => 'Générer un lien de partage', + 'CLEAN_EXPIRED_KEYS' => 'Nettoyer les clés expirées', + 'DELETE_SHARE_KEY' => 'Supprimer une clé de partage', + 'UPDATE_SETTINGS' => 'Modifier les paramètres' +]; + // Pagination $page = isset($_GET['page']) ? max(1, intval($_GET['page'])) : 1; $perPage = 50; @@ -27,6 +52,7 @@ $offset = ($page - 1) * $perPage; // Filtres $actionType = isset($_GET['action_type']) ? $_GET['action_type'] : ''; $adminFilter = isset($_GET['admin']) ? intval($_GET['admin']) : 0; +$dateRange = isset($_GET['date_range']) ? $_GET['date_range'] : ''; // Construction de la requête $whereClause = []; @@ -42,6 +68,23 @@ if ($adminFilter) { $params[':admin_id'] = $adminFilter; } +if ($dateRange) { + switch ($dateRange) { + case '24h': + $whereClause[] = 'created_at >= datetime("now", "-1 day")'; + break; + case '48h': + $whereClause[] = 'created_at >= datetime("now", "-2 days")'; + break; + case '72h': + $whereClause[] = 'created_at >= datetime("now", "-3 days")'; + break; + case '1week': + $whereClause[] = 'created_at >= datetime("now", "-7 days")'; + break; + } +} + $whereSQL = !empty($whereClause) ? 'WHERE ' . implode(' AND ', $whereClause) : ''; // Récupérer le nombre total de logs @@ -74,6 +117,30 @@ while ($row = $result->fetchArray(SQLITE3_ASSOC)) { $logs[] = $row; } +function getLogActionClass($actionType) { + if (strpos(strtolower($actionType), 'create') !== false || + strpos(strtolower($actionType), 'add') !== false || + strpos(strtolower($actionType), 'upload') !== false || + strpos(strtolower($actionType), 'generate') !== false) { + return 'log-action-create'; + } + + if (strpos(strtolower($actionType), 'edit') !== false || + strpos(strtolower($actionType), 'update') !== false || + strpos(strtolower($actionType), 'modify') !== false || + strpos(strtolower($actionType), 'move') !== false) { + return 'log-action-edit'; + } + + if (strpos(strtolower($actionType), 'delete') !== false || + strpos(strtolower($actionType), 'remove') !== false || + strpos(strtolower($actionType), 'clean') !== false) { + return 'log-action-delete'; + } + + return ''; +} + // Récupérer la liste des admins pour le filtre $admins = []; $result = $db->query('SELECT id, username FROM admins ORDER BY username'); @@ -120,7 +187,7 @@ $config = getSiteConfig(); @@ -139,6 +206,17 @@ $config = getSiteConfig(); +
+ + +
+ @@ -156,11 +234,13 @@ $config = getSiteConfig(); - + - + @@ -173,7 +253,7 @@ $config = getSiteConfig(); 1): ?> - + + \ No newline at end of file diff --git a/styles-admin.css b/styles-admin.css index b1123fb..546a01c 100644 --- a/styles-admin.css +++ b/styles-admin.css @@ -1054,6 +1054,23 @@ body[data-page="carrousel"] .admin-header { margin-top: 2rem; } +/* Styles pour les différents types d'actions */ +.admin-table tr td:nth-child(3) { + font-weight: 500; +} + +.admin-table tr .log-action-create { + color: #4CAF50; +} + +.admin-table tr .log-action-edit { + color: #FFA726; +} + +.admin-table tr .log-action-delete { + color: #EF5350; +} + /* Media Queries */ @media (max-width: 768px) { .admin-page {