From 9a96529ae0bfdb0bbdbeb35db1202dc3643bc73f Mon Sep 17 00:00:00 2001 From: jokob-sk Date: Tue, 2 Aug 2022 22:21:22 +1000 Subject: [PATCH] add delete events older than 30 days --- front/maintenance.php | 20 ++++++++++++++++++++ front/php/server/devices.php | 21 +++++++++++++++++++++ front/php/templates/language/en_us.php | 6 +++++- 3 files changed, 46 insertions(+), 1 deletion(-) diff --git a/front/maintenance.php b/front/maintenance.php index 909b9d34..49389505 100644 --- a/front/maintenance.php +++ b/front/maintenance.php @@ -310,6 +310,12 @@ if (submit && isset($_POST['langselector_set'])) {
+
+
+ +
+
+
@@ -415,6 +421,20 @@ function deleteEvents() }); } +// delete all Events older than 30 days +function askDeleteEvents30 () { + // Ask + showModalWarning('', '', + '', '', 'deleteEvents30'); +} +function deleteEvents30() +{ + // Execute + $.get('php/server/devices.php?action=deleteEvents30', function(msg) { + showMessage (msg); + }); +} + // delete Hostory function askDeleteActHistory () { // Ask diff --git a/front/php/server/devices.php b/front/php/server/devices.php index 76bfa7ae..0d05715c 100644 --- a/front/php/server/devices.php +++ b/front/php/server/devices.php @@ -51,6 +51,7 @@ if (strlen($pia_lang_selected) == 0) {$pia_lang_selected = 'en_us';} case 'runScan1min': runScan1min(); break; case 'deleteUnknownDevices': deleteUnknownDevices(); break; case 'deleteEvents': deleteEvents(); break; + case 'deleteEvents30': deleteEvents30(); break; case 'deleteActHistory': deleteActHistory(); break; case 'deleteDeviceEvents': deleteDeviceEvents(); break; case 'PiaBackupDBtoArchive': PiaBackupDBtoArchive(); break; @@ -308,6 +309,26 @@ function deleteEvents() { } } +//------------------------------------------------------------------------------ +// Delete all Events older than 30 days +//------------------------------------------------------------------------------ +function deleteEvents30() { + global $db; + global $pia_lang; + + // sql + $sql = "DELETE FROM Events WHERE eve_DateTime <= date('now', '-30 day')"; + // execute sql + $result = $db->query($sql); + + // check result + if ($result == TRUE) { + echo $pia_lang['BackDevices_DBTools_DelEvents']; + } else { + echo $pia_lang['BackDevices_DBTools_DelEventsError']."\n\n$sql \n\n". $db->lastErrorMsg(); + } +} + //------------------------------------------------------------------------------ // Delete History //------------------------------------------------------------------------------ diff --git a/front/php/templates/language/en_us.php b/front/php/templates/language/en_us.php index 90e429c5..e0fcd50a 100644 --- a/front/php/templates/language/en_us.php +++ b/front/php/templates/language/en_us.php @@ -224,10 +224,14 @@ $pia_lang['Maintenance_Tool_del_unknowndev'] = 'Delete (unknown) Devices'; $pia_lang['Maintenance_Tool_del_unknowndev_text'] = 'Before using this function, please make a backup. The deletion cannot be undone. All devices named (unknown) will be deleted from the database.'; $pia_lang['Maintenance_Tool_del_unknowndev_noti'] = 'Delete (unknown) Devices'; $pia_lang['Maintenance_Tool_del_unknowndev_noti_text'] = 'Are you sure you want to delete all (unknown) devices?'; -$pia_lang['Maintenance_Tool_del_allevents'] = 'Delete all Events (Reset Presence)'; +$pia_lang['Maintenance_Tool_del_allevents'] = 'Delete Events (Reset Presence)'; $pia_lang['Maintenance_Tool_del_allevents_text'] = 'Before using this function, please make a backup. The deletion cannot be undone. All events in the database will be deleted. At that moment the presence of all devices will be reset. This can lead to invalid sessions. This means that devices are displayed as "present" although they are offline. A scan while the device in question is online solves the problem.'; $pia_lang['Maintenance_Tool_del_allevents_noti'] = 'Delete Events'; $pia_lang['Maintenance_Tool_del_allevents_noti_text'] = 'Are you sure you want to delete all Events? This resets Presence of all Devices.'; +$pia_lang['Maintenance_Tool_del_allevents30'] = 'Delete all Events older than 30 days'; +$pia_lang['Maintenance_Tool_del_allevents30_text'] = 'Before using this function, please make a backup. The deletion cannot be undone. All events older than 30 days in the database will be deleted. At that moment the presence of all devices will be reset. This can lead to invalid sessions. This means that devices are displayed as "present" although they are offline. A scan while the device in question is online solves the problem.'; +$pia_lang['Maintenance_Tool_del_allevents30_noti'] = 'Delete Events'; +$pia_lang['Maintenance_Tool_del_allevents30_noti_text'] = 'Are you sure you want to delete all Events older than 30 days? This resets Presence of all Devices.'; $pia_lang['Maintenance_Tool_backup'] = 'DB Backup'; $pia_lang['Maintenance_Tool_backup_text'] = 'The database backups are located in the database directory as a zip-archive, named with the creation date. There is no maximum number of backups.'; $pia_lang['Maintenance_Tool_backup_noti'] = 'DB Backup';