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
-
+
-
+
-
+
-
+
-
- N° |
- Date |
- Nom alerte |
- Appareil de détection |
- Adresse source |
- Adresse destination |
- Niveau d'alerte |
- Raison |
+ N° |
+ Date |
+ Nom alerte |
+ Appareil de détection |
+ Adresse source |
+ Adresse destination |
+ Niveau d'alerte |
+ Raison |
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);
}
}