diff --git a/web2/index.html b/web2/index.html index bfb9204..8233f3f 100644 --- a/web2/index.html +++ b/web2/index.html @@ -10,12 +10,14 @@ - + + + + integrity="sha256-x3YZWtRjM8bJqf48dFAv/qmgL68SI4jqNWeSLMZaMGA=" crossorigin="anonymous"> + integrity="sha256-WqU1JavFxSAMcLP2WIOI+GB2zWmShMI82mTpLDcqFUg=" crossorigin="anonymous"> @@ -54,37 +56,40 @@

veuillez selectionner les filtres de recherche ou parcourez la liste ci-dessous

- +
- +
- +
- +
-
- +
+ +
- - - - - - - - + + + + + + + + diff --git a/web2/js/alerts.js b/web2/js/alerts.js index 67cd33d..776cd31 100644 --- a/web2/js/alerts.js +++ b/web2/js/alerts.js @@ -2,15 +2,17 @@ // initialisation let previousAlerts = []; +let sortOrder = {}; +ajaxRequest('GET', 'php/request.php/alertes/', CheckNewAlerts); + // ajaxRequest('GET', 'php/request.php/alertes/', displayAlerts); setInterval(() => { - // Effectuer une requête AJAX pour récupérer les nouvelles alertes ajaxRequest('GET', 'php/request.php/alertes/', CheckNewAlerts); -}, 1000); + // Effectuer une requête AJAX pour récupérer les nouvelles alertes +}, 10000); ajaxRequest('GET', 'php/request.php/devices/', fillSelectDevice); fillSelectRisque(); - // filtrage $('#filter-button').click(() => { const params = []; // Initialise le tableau des paramètres @@ -36,22 +38,16 @@ $('#filter-button').click(() => { } ); -$('#tweets').on('click', '.mod', () => { - ajaxRequest('PUT', 'php/request.php/tweets/' + - $(event.target).closest('.mod').attr('value'), () => { - ajaxRequest('GET', 'php/request.php/tweets/', displayTweets); - }, 'login=' + login + '&text=' + prompt('Nouveau tweet :')); -} -); -$('#tweets').on('click', '.del', () => { - console.log('delete'); - ajaxRequest('DELETE', 'php/request.php/tweets/' + - $(event.target).closest('.del').attr('value') + '?login=' + login, () => { - ajaxRequest('GET', 'php/request.php/tweets/', displayTweets); - } - ); -} -); + +// $('#tweets').on('click', '.del', () => { +// console.log('delete'); +// ajaxRequest('DELETE', 'php/request.php/tweets/' + +// $(event.target).closest('.del').attr('value') + '?login=' + login, () => { +// ajaxRequest('GET', 'php/request.php/tweets/', displayTweets); +// } +// ); +// } +// ); //------------------------------------------------------------------------------ //--- displayAlerts ------------------------------------------------------------ @@ -98,3 +94,52 @@ function CheckNewAlerts(newAlerts) { previousAlerts = newAlerts; } } + +// Fonction pour trier les alertes +function sortTable(columnName) { + const currentOrder = sortOrder[columnName] || 'asc'; + const newOrder = currentOrder === 'asc' ? 'desc' : 'asc'; + sortOrder[columnName] = newOrder; + + // Construire les paramètres de la requête pour l'orderby + const params = []; + params.push(`orderby=${columnName}`); + params.push(`order=${newOrder}`); + + const url = `php/request.php/alertes/?${params.join('&')}`; + + // Effectuer la requête AJAX pour récupérer les alertes triées + ajaxRequest('GET', url, displayAlerts); +} + +// Ajouter des gestionnaires d'événements de clic sur les en-têtes de colonnes +$('th').click(function() { + let columnName = $(this).text().trim().toLowerCase().replace(/ /g, '_'); // Convertir le texte de l'en-tête en nom de colonne + switch (columnName) { + case 'n°': + columnName = 'id'; + break; + case 'date': + columnName = 'date_alerte'; + break; + case 'nom_alerte': + columnName = 'name'; + break; + case 'appareil_de_detection': + columnName = 'device_product'; + break; + case 'adresse_source': + columnName = 'src'; + break; + case 'adresse_destination': + columnName = 'dst'; + break; + case 'niveau_d\'alerte': + columnName = 'agent_severity'; + break; + case 'raison': + columnName = 'reason'; + break; + } + sortTable(columnName); +}); \ No newline at end of file diff --git a/web2/php/database.php b/web2/php/database.php index 53c112b..5218993 100644 --- a/web2/php/database.php +++ b/web2/php/database.php @@ -31,7 +31,7 @@ // Function to get all alertes // \param db The connected database. // \return The list of alertes. - function dbRequestAlerts($db, $filtres = null) + function dbRequestAlerts($db, $filtres = null, $orderby, $order) { try { @@ -49,6 +49,8 @@ $request .= ' WHERE ' . implode(' AND ', $conditions); } + $request .= " ORDER BY $orderby $order"; + $statement = $db->prepare($request); $statement->execute($params); $result = $statement->fetchAll(PDO::FETCH_ASSOC); @@ -85,7 +87,7 @@ return $result; } - + //---------------------------------------------------------------------------- //--- dbAddCTweet ------------------------------------------------------------ //---------------------------------------------------------------------------- diff --git a/web2/php/request.php b/web2/php/request.php index 71e8aa3..08ad380 100644 --- a/web2/php/request.php +++ b/web2/php/request.php @@ -21,17 +21,19 @@ $request = explode('/', $request); if ($request[1] == 'alertes') { if ($requestMethod == 'GET') { + $orderby = isset($_GET['orderby']) ? $_GET['orderby'] : 'date_alerte'; // Par défaut, trier par date_alerte + $order = isset($_GET['order']) && ($_GET['order'] == 'desc') ? 'DESC' : 'ASC'; // Par défaut, ordre croissant + $filtresArray = []; if(isset($_GET['device_product'])) $filtresArray['device_product'] = $_GET['device_product']; if(isset($_GET['agent_severity'])) $filtresArray['agent_severity'] = $_GET['agent_severity']; - error_log('filtres array : ' . json_encode($filtresArray)); if (!empty($filtresArray)) { - $data = dbRequestAlerts($db, $filtresArray); + $data = dbRequestAlerts($db, $filtresArray, $orderby, $order); } else { - $data = dbRequestAlerts($db, null); + $data = dbRequestAlerts($db, null, $orderby, $order); } }
DateNom alerteAppareil de détectionAdresse sourceAdresse destinationNiveau d'alerteRaisonDateNom alerteAppareil de détectionAdresse sourceAdresse destinationNiveau d'alerteRaison