mirror of
https://github.com/jokob-sk/NetAlertX.git
synced 2025-12-06 17:15:38 -08:00
Add maintenance features
Theme Selector, some bugfixing, update Readme
This commit is contained in:
12
README.md
12
README.md
@@ -66,6 +66,17 @@ A web frontal that allows:
|
||||
| -------------------- | -------------------- |
|
||||
| ![Screen 3][screen3] | ![Screen 4][screen4] |
|
||||
|
||||
### Maintenance
|
||||
With the work of [jokobsk/Pi.Alert](https://github.com/jokob-sk/Pi.Alert) and own extensions, various possibilities for
|
||||
maintenance and settings are available on this page:
|
||||
- DB Backup and Restore
|
||||
- Theme Selection (blue, red, green, yellow, black, purple)
|
||||
- Light/Dark-Mode Switch
|
||||
- DB maintenance tools
|
||||
|
||||
In addition, some information is available (active scans, database size, backup counter).
|
||||
|
||||
![Maintain screen dark][maintain_dark]
|
||||
|
||||
# Installation
|
||||
<!--- --------------------------------------------------------------------- --->
|
||||
@@ -137,4 +148,5 @@ Linux distributions.
|
||||
[report1]: ./docs/img/4_report_1.jpg "Report sample 1"
|
||||
[report2]: ./docs/img/4_report_2.jpg "Report sample 2"
|
||||
[main_dark]: /docs/img/1_devices_dark.jpg "Main screen dark"
|
||||
[maintain_dark]: /docs/img/5_maintain.jpg "Maintain screen dark"
|
||||
|
||||
|
||||
BIN
docs/img/5_maintain.jpg
Normal file
BIN
docs/img/5_maintain.jpg
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 115 KiB |
@@ -119,6 +119,18 @@
|
||||
margin-left: 0px;
|
||||
}
|
||||
|
||||
.fix_maintain_section {
|
||||
min-height: 650px;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
@media (max-width: 520px) {
|
||||
.fix_maintain_section {
|
||||
min-height: 900px;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
.sidebar-open .content-wrapper, .sidebar-open .main-footer {
|
||||
@@ -453,7 +465,7 @@
|
||||
}
|
||||
|
||||
.dbtools-button {
|
||||
margin: 5px; display: inline-block; width: 140px; height: 100px; white-space: normal; word-wrap: break-word; font-size: 16px; border-radius: 10px;
|
||||
margin: 5px; display: inline-block; width: 140px; height: 100px; white-space: normal; word-wrap: break-word; font-size: 16px; border-radius: 10px; margin-bottom: 25px;
|
||||
}
|
||||
|
||||
.db_info_table_cell:nth-child(1) {background: white}
|
||||
@@ -469,6 +481,7 @@
|
||||
margin: auto;
|
||||
margin-top: 40px;
|
||||
margin-bottom: 40px;
|
||||
border: solid 1px #ddd;
|
||||
}
|
||||
.db_info_table_row {display: table-row; padding: 3px; }
|
||||
.db_info_table_cell {display: table-cell; padding: 3px; padding-left: 10px;}
|
||||
|
||||
@@ -2,6 +2,13 @@
|
||||
"name": "Pi-Alert Console",
|
||||
"short_name": "Pi-Alert",
|
||||
"display": "standalone",
|
||||
"theme_color": "#367fa9",
|
||||
"background_color": "#367fa9"
|
||||
"icons": [
|
||||
{
|
||||
"src": "",
|
||||
"sizes": "180x180",
|
||||
"type": "image/png"
|
||||
}
|
||||
],
|
||||
"theme_color": "#000",
|
||||
"background_color": "#000"
|
||||
}
|
||||
|
||||
@@ -28,7 +28,7 @@
|
||||
</section>
|
||||
|
||||
<!-- Main content ---------------------------------------------------------- -->
|
||||
<section class="content" style="min-height: 600px;">
|
||||
<section class="content fix_maintain_section" style="height: 100%;">
|
||||
|
||||
|
||||
<?php
|
||||
@@ -59,6 +59,35 @@ natsort($latestfiles);
|
||||
$latestfiles = array_reverse($latestfiles,False);
|
||||
$latestbackup = $latestfiles[0];
|
||||
$latestbackup_date = date ("Y-m-d H:i:s", filemtime($latestbackup));
|
||||
|
||||
if (submit) {
|
||||
$pia_skin_set_dir = '../db/';
|
||||
$pia_skin_selector = htmlspecialchars($_POST['skinselector']);
|
||||
$pia_installed_skins = array('skin-black-light', 'skin-black', 'skin-blue-light', 'skin-blue', 'skin-green-light', 'skin-green', 'skin-purple-light', 'skin-purple', 'skin-red-light', 'skin-red', 'skin-yellow-light', 'skin-yellow',);
|
||||
if (in_array($pia_skin_selector, $pia_installed_skins)) {
|
||||
foreach ($pia_installed_skins as $file) {
|
||||
unlink ($pia_skin_set_dir.'/'.$file);
|
||||
}
|
||||
|
||||
foreach ($pia_installed_skins as $file) {
|
||||
if (file_exists($pia_skin_set_dir.'/'.$file)) {
|
||||
$pia_skin_error = True;
|
||||
break;
|
||||
} else {
|
||||
$pia_skin_error = False;
|
||||
}
|
||||
}
|
||||
|
||||
if ($pia_skin_error == False) {
|
||||
$testskin = fopen($pia_skin_set_dir.$pia_skin_selector, 'w');
|
||||
$pia_skin_test = '';
|
||||
echo("<meta http-equiv='refresh' content='1'>");
|
||||
} else {
|
||||
$pia_skin_test = '';
|
||||
echo("<meta http-equiv='refresh' content='1'>");
|
||||
}
|
||||
}
|
||||
}
|
||||
?>
|
||||
|
||||
<div class="db_info_table">
|
||||
@@ -88,10 +117,36 @@ $latestbackup_date = date ("Y-m-d H:i:s", filemtime($latestbackup));
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<form method="post" action="maintenance.php">
|
||||
<div class="db_info_table">
|
||||
<div class="db_info_table_row">
|
||||
<div class="db_info_table_cell" style="height:50px; text-align:center; vertical-align: middle;">
|
||||
<div style="display: inline-block; margin-right: 10px;">Theme Selection:</div>
|
||||
<div style="display: inline-block;">
|
||||
<select name="skinselector">
|
||||
<option value="">--Choose a theme--</option>
|
||||
<option value="skin-black-light">black light</option>
|
||||
<option value="skin-black">black</option>
|
||||
<option value="skin-blue-light">blue light</option>
|
||||
<option value="skin-blue">blue</option>
|
||||
<option value="skin-green-light">green light</option>
|
||||
<option value="skin-green">green</option>
|
||||
<option value="skin-purple-light">purple light</option>
|
||||
<option value="skin-purple">purple</option>
|
||||
<option value="skin-red-light">red light</option>
|
||||
<option value="skin-red">red</option>
|
||||
<option value="skin-yellow-light">yellow light</option>
|
||||
<option value="skin-yellow">yellow</option>
|
||||
</select></div>
|
||||
<div style="display: inline-block;"><input type="submit" value="Set"><?php echo $pia_skin_test; ?></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
|
||||
<div class="col-xs-12" style="text-align:center; padding-top: 10px; margin-bottom: 50px;">
|
||||
<div class="col-xs-12" style="text-align:center; padding-top: 10px;">
|
||||
|
||||
<button type="button" class="btn btn-default pa-btn pa-btn-delete bg-green dbtools-button" id="btnPiaEnableDarkmode" style="border-top: solid 3px #00a65a;" onclick="askPiaEnableDarkmode()">Switch Themes (Dark/Light)</button>
|
||||
<button type="button" class="btn btn-default pa-btn pa-btn-delete bg-green dbtools-button" id="btnPiaEnableDarkmode" style="border-top: solid 3px #00a65a;" onclick="askPiaEnableDarkmode()">Switch Modes (Dark/Light)</button>
|
||||
|
||||
<button type="button" class="btn btn-default pa-btn pa-btn-delete bg-red dbtools-button" id="btnDeleteMAC" style="border-top: solid 3px #dd4b39;" onclick="askDeleteDevicesWithEmptyMACs()">Delete Devices with empty MACs</button>
|
||||
|
||||
|
||||
@@ -272,7 +272,7 @@ function PiaBackupDBtoArchive() {
|
||||
|
||||
// copy files as a fast Backup
|
||||
if (!copy($file, $newfile)) {
|
||||
echo "The Backup executed not successfully";
|
||||
echo "The original database could not be saved.";
|
||||
} else {
|
||||
// Create archive with actual date
|
||||
$Pia_Archive_Name = 'pialertdb_'.date("Ymd_His").'.zip';
|
||||
@@ -282,8 +282,9 @@ function PiaBackupDBtoArchive() {
|
||||
if (file_exists($Pia_Archive_Path.$Pia_Archive_Name) && filesize($Pia_Archive_Path.$Pia_Archive_Name) > 0) {
|
||||
echo 'The backup executed successfully with the new archive: ('.$Pia_Archive_Name.')';
|
||||
unlink($newfile);
|
||||
echo("<meta http-equiv='refresh' content='1'>");
|
||||
} else {
|
||||
echo 'Test backup executed partially successfully. The archive could not be created or is empty. (pialert.db.latestbackup)';
|
||||
echo 'The backup executed partially successfully. The archive could not be created or is empty. (pialert.db.latestbackup)';
|
||||
}
|
||||
}
|
||||
|
||||
@@ -299,7 +300,7 @@ function PiaRestoreDBfromArchive() {
|
||||
|
||||
// copy files as a fast Backup
|
||||
if (!copy($file, $oldfile)) {
|
||||
echo "Test Function executed not successfully";
|
||||
echo 'The original database could not be saved.';
|
||||
} else {
|
||||
// extract latest archive and overwrite the actual pialert.db
|
||||
$Pia_Archive_Path = '../../../db/';
|
||||
@@ -308,6 +309,7 @@ function PiaRestoreDBfromArchive() {
|
||||
if (file_exists($file)) {
|
||||
echo 'Restore executed successfully';
|
||||
unlink($oldfile);
|
||||
echo("<meta http-equiv='refresh' content='1'>");
|
||||
} else {
|
||||
echo 'Restore Failed. Please restore the backup manually.';
|
||||
}
|
||||
|
||||
@@ -8,9 +8,14 @@
|
||||
#--------------------------------------------------------------------------- -->
|
||||
|
||||
<?php
|
||||
|
||||
if (file_exists('../db/darkmode')) {
|
||||
$ENABLED_DARKMODE = True;
|
||||
}
|
||||
foreach (glob("../db/skin*") as $filename) {
|
||||
$pia_skin_selected = basename($filename);
|
||||
}
|
||||
if (strlen($pia_skin_selected) == 0) {$pia_skin_selected = 'skin-blue';}
|
||||
?>
|
||||
|
||||
<!DOCTYPE html>
|
||||
@@ -42,7 +47,7 @@ if (file_exists('../db/darkmode')) {
|
||||
<!-- AdminLTE Skins. We have chosen the skin-blue for this starter
|
||||
page. However, you can choose any other skin. Make sure you
|
||||
apply the skin class to the body tag so the changes take effect. -->
|
||||
<link rel="stylesheet" href="lib/AdminLTE/dist/css/skins/skin-blue.min.css">
|
||||
<link rel="stylesheet" href="lib/AdminLTE/dist/css/skins/<?php echo $pia_skin_selected;?>.min.css">
|
||||
|
||||
<!-- Pi.Alert CSS -->
|
||||
<link rel="stylesheet" href="css/pialert.css">
|
||||
@@ -61,7 +66,7 @@ if (file_exists('../db/darkmode')) {
|
||||
|
||||
<!-- For better UX on Mobile Devices using the Shortcut on the Homescreen -->
|
||||
<link rel="manifest" href="img/manifest.json">
|
||||
|
||||
<link rel="apple-touch-icon" href="https://net-dev.de/pialert_homescreen.png">
|
||||
<!-- Dark-Mode Patch -->
|
||||
<?php
|
||||
if ($ENABLED_DARKMODE === True) {
|
||||
@@ -93,7 +98,7 @@ function show_pia_servertime() {
|
||||
|
||||
<!-- ----------------------------------------------------------------------- -->
|
||||
<!-- Layout Boxed Yellow -->
|
||||
<body class="hold-transition skin-blue layout-boxed sidebar-mini" <?php echo $BACKGROUND_IMAGE_PATCH;?> onLoad="show_pia_servertime();" >
|
||||
<body class="hold-transition <?php echo $pia_skin_selected;?> layout-boxed sidebar-mini" <?php echo $BACKGROUND_IMAGE_PATCH;?> onLoad="show_pia_servertime();" >
|
||||
<!-- Site wrapper -->
|
||||
<div class="wrapper">
|
||||
|
||||
|
||||
Reference in New Issue
Block a user