diff --git a/web2/js/alerts.js b/web2/js/alerts.js
index 3e88dd2..5242c16 100644
--- a/web2/js/alerts.js
+++ b/web2/js/alerts.js
@@ -3,27 +3,26 @@
// initialisation
let previousAlerts = [];
let sortOrder = {};
-ajaxRequest('GET', 'php/request.php/alertes/', CheckNewAlerts);
-// ajaxRequest('GET', 'php/request.php/alertes/', displayAlerts);
-setInterval(() => {
- ajaxRequest('GET', 'php/request.php/alertes/', CheckNewAlerts);
- // Effectuer une requête AJAX pour récupérer les nouvelles alertes
-}, 10000);
+ajaxRequest('GET', 'php/request.php/alertes/', CheckNewAlerts);
ajaxRequest('GET', 'php/request.php/devices/', fillSelectDevice);
fillSelectRisque();
-// filtrage
+setInterval(() => {
+ ajaxRequest('GET', 'php/request.php/alertes/', CheckNewAlerts);
+}, 10000);
+
+// initialisation of the filters
$('#filter-button').click(() => {
- const params = []; // Initialise le tableau des paramètres
+ const params = [];
const device = $('#device-select').val();
const alertlvl = $('#risque-select').val();
-
- // Ajouter les paramètres uniquement s'ils sont définis
+
+ // enable parameters only if they are not empty
if (device) params.push(`device_product=${encodeURIComponent(device)}`);
if (alertlvl) params.push(`agent_severity=${encodeURIComponent(alertlvl)}`);
-
- // Construire l'URL avec les paramètres
+
+ // build the url
let url;
if (params.length) {
url = `php/request.php/alertes/?${params.join('&')}`;
@@ -32,23 +31,12 @@ $('#filter-button').click(() => {
url = 'php/request.php/alertes/';
console.log(url);
}
-
- // Effectuer la requête AJAX
- ajaxRequest('GET', url, displayAlerts);
+
+ ajaxRequest('GET', url, displayAlerts);
}
);
-// $('#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 ------------------------------------------------------------
//------------------------------------------------------------------------------
@@ -66,55 +54,68 @@ function displayAlerts(alerts) {
$('
').text(alert['date_alerte']),
$(' ').text(alert['name']),
$(' ').text(alert['device_product']),
- $(' ').text(alert['src']+":"+alert['spt']),
- $(' ').text(alert['dst']+":"+alert['dpt']),
+ $(' ').text(alert['src'] + ":" + alert['spt']),
+ $(' ').text(alert['dst'] + ":" + alert['dpt']),
$(' ').text(alert['agent_severity']),
$(' ').text(alert['reason'])
)
);
}
+//------------------------------------------------------------------------------
+//--- fillSelectDevice ------------------------------------------------------------
+//------------------------------------------------------------------------------
+// fill select with devices.
+// \param devices The devices data received via the Ajax request.
function fillSelectDevice(devices) {
for (let device of devices)
$('#device-select').append($('').text(device['device_product']).val(device['device_product']));
}
+//------------------------------------------------------------------------------
+//--- fillSelectRisque ------------------------------------------------------------
+//------------------------------------------------------------------------------
+// fill select with alertslvl.
function fillSelectRisque() {
for (let i = 1; i <= 10; i++)
$('#risque-select').append($(' ').text(i).val(i));
}
+//------------------------------------------------------------------------------
+//--- CheckNewAlerts ------------------------------------------------------------
+//------------------------------------------------------------------------------
+// checks if there is new alerts in the database and display if so.
+// \param newAlerts The alerts data received via the Ajax request.
+// \previousAlerts The old alerts data received via the Ajax request and stored.
function CheckNewAlerts(newAlerts) {
- // Comparer les nouvelles alertes avec les anciennes
if (JSON.stringify(previousAlerts) !== JSON.stringify(newAlerts)) {
- // Si les alertes ont changé, mettre à jour l'interface
- displayAlerts(newAlerts);
-
- // Mettre à jour les alertes précédentes
- previousAlerts = newAlerts;
+ displayAlerts(newAlerts);
+ previousAlerts = newAlerts;
}
}
-// Fonction pour trier les alertes
+//------------------------------------------------------------------------------
+//--- sortTable ------------------------------------------------------------
+//------------------------------------------------------------------------------
+// sort the table.
+// \param columnName The name of the column to sort.
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
+// sort the table when clicking on the column name
+$('th').click(function () {
+ let columnName = $(this).text().trim().toLowerCase().replace(/ /g, '_');
console.log(columnName);
switch (columnName) {
case 'n°':
diff --git a/web2/php/database.php b/web2/php/database.php
index 5218993..ac3c977 100644
--- a/web2/php/database.php
+++ b/web2/php/database.php
@@ -1,170 +1,79 @@
setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
- }
- catch (PDOException $exception)
- {
- error_log('Connection error: '.$exception->getMessage());
- return false;
- }
- return $db;
+//----------------------------------------------------------------------------
+//--- dbConnect --------------------------------------------------------------
+//----------------------------------------------------------------------------
+// Create the connection to the database.
+// \return False on error and the database otherwise.
+function dbConnect()
+{
+ try {
+ $db = new PDO(
+ 'mysql:host=' . DB_SERVER . ';dbname=' . DB_NAME . ';charset=utf8',
+ DB_USER,
+ DB_PASSWORD
+ );
+ $db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
+ } catch (PDOException $exception) {
+ error_log('Connection error: ' . $exception->getMessage());
+ return false;
}
+ return $db;
+}
- //----------------------------------------------------------------------------
- //--- dbRequestAlertes --------------------------------------------------------
- //----------------------------------------------------------------------------
- // Function to get all alertes
- // \param db The connected database.
- // \return The list of alertes.
- function dbRequestAlerts($db, $filtres = null, $orderby, $order)
- {
- try
- {
- $request = 'SELECT * FROM alertes';
- $params = [];
+//----------------------------------------------------------------------------
+//--- dbRequestAlertes --------------------------------------------------------
+//----------------------------------------------------------------------------
+// Function to get all alertes
+// \param db The connected database.
+// \return The list of alertes.
+function dbRequestAlerts($db, $filtres = null, $orderby, $order)
+{
+ try {
+ $request = 'SELECT * FROM alertes';
+ $params = [];
-
- // Si $filtres est non nul et non vide, appliquez les conditions
- if (isset($filtres)) {
- $conditions = [];
- foreach ($filtres as $colonne => $valeur) {
- $conditions[] = "$colonne = :$colonne";
- $params[":$colonne"] = $valeur;
- }
- $request .= ' WHERE ' . implode(' AND ', $conditions);
- }
-
- $request .= " ORDER BY $orderby $order";
-
- $statement = $db->prepare($request);
- $statement->execute($params);
- $result = $statement->fetchAll(PDO::FETCH_ASSOC);
+ if (isset($filtres)) {
+ $conditions = [];
+ foreach ($filtres as $colonne => $valeur) {
+ $conditions[] = "$colonne = :$colonne";
+ $params[":$colonne"] = $valeur;
+ }
+ $request .= ' WHERE ' . implode(' AND ', $conditions);
}
- catch (PDOException $exception)
- {
- error_log('Request error: '.$exception->getMessage());
- return false;
- }
- return $result;
+
+ $request .= " ORDER BY $orderby $order";
+
+ $statement = $db->prepare($request);
+ $statement->execute($params);
+ $result = $statement->fetchAll(PDO::FETCH_ASSOC);
+ } catch (PDOException $exception) {
+ error_log('Request error: ' . $exception->getMessage());
+ return false;
}
+ return $result;
+}
- //----------------------------------------------------------------------------
- //--- dbRequestDevices --------------------------------------------------------
- //----------------------------------------------------------------------------
- // Function to get all alertes
- // \param db The connected database.
- // \return The list of alertes.
- function dbRequestDevices($db)
- {
- try
- {
- $request = 'SELECT device_product FROM alertes GROUP BY device_product;';
- $statement = $db->prepare($request);
- $statement->execute();
- $result = $statement->fetchAll(PDO::FETCH_ASSOC);
- }
-
- catch (PDOException $exception)
- {
- error_log('Request error: '.$exception->getMessage());
- return false;
- }
- return $result;
+//----------------------------------------------------------------------------
+//--- dbRequestDevices --------------------------------------------------------
+//----------------------------------------------------------------------------
+// Function to get all Devices
+// \param db The connected database.
+// \return The list of Devices.
+function dbRequestDevices($db)
+{
+ try {
+ $request = 'SELECT device_product FROM alertes GROUP BY device_product;';
+ $statement = $db->prepare($request);
+ $statement->execute();
+ $result = $statement->fetchAll(PDO::FETCH_ASSOC);
+ } catch (PDOException $exception) {
+ error_log('Request error: ' . $exception->getMessage());
+ return false;
}
-
-
- //----------------------------------------------------------------------------
- //--- dbAddCTweet ------------------------------------------------------------
- //----------------------------------------------------------------------------
- // Add a tweet.
- // \param db The connected database.
- // \param login The login of the user.
- // \param text The tweet to add.
- // \return True on success, false otherwise.
- function dbAddTweet($db, $login, $text)
- {
- try
- {
- $request = 'INSERT INTO tweets(login, text) VALUES(:login, :text)';
- $statement = $db->prepare($request);
- $statement->bindParam(':login', $login, PDO::PARAM_STR, 20);
- $statement->bindParam(':text', $text, PDO::PARAM_STR, 80);
- $statement->execute();
- }
- catch (PDOException $exception)
- {
- error_log('Request error: '.$exception->getMessage());
- return false;
- }
- return true;
- }
-
- //----------------------------------------------------------------------------
- //--- dbModifyTweet ----------------------------------------------------------
- //----------------------------------------------------------------------------
- // Function to modify a tweet.
- // \param db The connected database.
- // \param id The id of the tweet to update.
- // \param login The login of the user.
- // \param text The new tweet.
- // \return True on success, false otherwise.
- function dbModifyTweet($db, $id, $login, $text)
- {
- try
- {
- $request = 'UPDATE tweets SET text=:text WHERE id=:id AND login=:login ';
- $statement = $db->prepare($request);
- $statement->bindParam(':id', $id, PDO::PARAM_INT);
- $statement->bindParam(':login', $login, PDO::PARAM_STR, 20);
- $statement->bindParam(':text', $text, PDO::PARAM_STR, 80);
- $statement->execute();
- }
- catch (PDOException $exception)
- {
- error_log('Request error: '.$exception->getMessage());
- return false;
- }
- return true;
- }
-
- //----------------------------------------------------------------------------
- //--- dbDeleteTweet ----------------------------------------------------------
- //----------------------------------------------------------------------------
- // Delete a tweet.
- // \param db The connected database.
- // \param id The id of the tweet.
- // \param login The login of the user.
- // \return True on success, false otherwise.
- function dbDeleteTweet($db, $id, $login)
- {
- try
- {
- $request = 'DELETE FROM tweets WHERE id=:id AND login=:login';
- $statement = $db->prepare($request);
- $statement->bindParam(':id', $id, PDO::PARAM_INT);
- $statement->bindParam(':login', $login, PDO::PARAM_STR, 20);
- $statement->execute();
- }
- catch (PDOException $exception)
- {
- error_log('Request error: '.$exception->getMessage());
- return false;
- }
- return true;
- }
-?>
+ return $result;
+}
diff --git a/web2/php/request.php b/web2/php/request.php
index 08ad380..375b318 100644
--- a/web2/php/request.php
+++ b/web2/php/request.php
@@ -17,17 +17,16 @@ $requestMethod = $_SERVER['REQUEST_METHOD'];
$request = $_SERVER['PATH_INFO'];
$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
+ $orderby = isset($_GET['orderby']) ? $_GET['orderby'] : 'date_alerte';
+ $order = isset($_GET['order']) && ($_GET['order'] == 'desc') ? 'DESC' : 'ASC';
$filtresArray = [];
- if(isset($_GET['device_product']))
+ if (isset($_GET['device_product']))
$filtresArray['device_product'] = $_GET['device_product'];
- if(isset($_GET['agent_severity']))
+ if (isset($_GET['agent_severity']))
$filtresArray['agent_severity'] = $_GET['agent_severity'];
if (!empty($filtresArray)) {
@@ -36,12 +35,6 @@ if ($request[1] == 'alertes') {
$data = dbRequestAlerts($db, null, $orderby, $order);
}
}
-
- if ($requestMethod == 'PUT') {
- parse_str(file_get_contents('php://input'), $_PUT);
- if ($id != '' && isset($_PUT['login']) && isset($_PUT['text']))
- $data = dbModifyTweet($db, $id, $_PUT['login'], strip_tags($_PUT['text']));
- }
}
if ($request[1] == 'devices') {