mirror of
https://github.com/jokob-sk/NetAlertX.git
synced 2025-12-06 17:15:38 -08:00
🆕 db locked icon #685
This commit is contained in:
35
README.md
35
README.md
@@ -70,6 +70,12 @@ Get visibility of what's going on on your WIFI/LAN network. Schedule scans for d
|
|||||||
> - [Fing](https://www.fing.com/) - Network scanner app for your Internet security (Commercial, Phone App, Proprietary hardware)
|
> - [Fing](https://www.fing.com/) - Network scanner app for your Internet security (Commercial, Phone App, Proprietary hardware)
|
||||||
> - [NetBox](https://netboxlabs.com/) - Network management software (Commercial)
|
> - [NetBox](https://netboxlabs.com/) - Network management software (Commercial)
|
||||||
|
|
||||||
|
## 🔔 Get notified what's new
|
||||||
|
|
||||||
|
Get notified about a new release, what new functionality you can use and about breaking changes.
|
||||||
|
|
||||||
|
![Follow and star][follow_star]
|
||||||
|
|
||||||
### ⭐ Sponsors
|
### ⭐ Sponsors
|
||||||
|
|
||||||
[](https://github.com/sponsors/jokob-sk)
|
[](https://github.com/sponsors/jokob-sk)
|
||||||
@@ -130,18 +136,19 @@ Help out and suggest languages in the [online portal of Weblate](https://hosted.
|
|||||||
|
|
||||||
|
|
||||||
<!--- --------------------------------------------------------------------- --->
|
<!--- --------------------------------------------------------------------- --->
|
||||||
[main]: ./docs/img/devices_split.png "Main screen"
|
[main]: ./docs/img/devices_split.png "Main screen"
|
||||||
[screen1]: ./docs/img/device_details.png "Screen 1"
|
[screen1]: ./docs/img/device_details.png "Screen 1"
|
||||||
[screen2]: ./docs/img/events.png "Screen 2"
|
[screen2]: ./docs/img/events.png "Screen 2"
|
||||||
[screen3]: ./docs/img/presence.png "Screen 3"
|
[screen3]: ./docs/img/presence.png "Screen 3"
|
||||||
[screen4]: ./docs/img/maintenance.png "Screen 4"
|
[screen4]: ./docs/img/maintenance.png "Screen 4"
|
||||||
[screen5]: ./docs/img/network.png "Screen 5"
|
[screen5]: ./docs/img/network.png "Screen 5"
|
||||||
[screen6]: ./docs/img/settings.png "Screen 6"
|
[screen6]: ./docs/img/settings.png "Screen 6"
|
||||||
[screen7]: ./docs/img/help_faq.png "Screen 7"
|
[screen7]: ./docs/img/help_faq.png "Screen 7"
|
||||||
[screen8]: ./docs/img/plugins_rogue_dhcp.png "Screen 8"
|
[screen8]: ./docs/img/plugins_rogue_dhcp.png "Screen 8"
|
||||||
[screen9]: ./docs/img/device_nmap.png "Screen 9"
|
[screen9]: ./docs/img/device_nmap.png "Screen 9"
|
||||||
[report1]: ./docs/img/4_report_1.jpg "Report sample 1"
|
[report1]: ./docs/img/4_report_1.jpg "Report sample 1"
|
||||||
[report2]: ./docs/img/4_report_2.jpg "Report sample 2"
|
[report2]: ./docs/img/4_report_2.jpg "Report sample 2"
|
||||||
[main_dark]: /docs/img/1_devices_dark.jpg "Main screen dark"
|
[main_dark]: /docs/img/1_devices_dark.jpg "Main screen dark"
|
||||||
[maintain_dark]: /docs/img/5_maintain.jpg "Maintain screen dark"
|
[maintain_dark]: /docs/img/5_maintain.jpg "Maintain screen dark"
|
||||||
|
[follow_star]: /docs/img/Follow_Releases_and_Star.gif "Follow and Star"
|
||||||
|
|
||||||
|
|||||||
BIN
docs/img/Follow_Releases_and_Star.gif
Executable file
BIN
docs/img/Follow_Releases_and_Star.gif
Executable file
Binary file not shown.
|
After Width: | Height: | Size: 119 KiB |
@@ -144,6 +144,17 @@
|
|||||||
{
|
{
|
||||||
background-color: rgba(0, 0, 0, 0);
|
background-color: rgba(0, 0, 0, 0);
|
||||||
}
|
}
|
||||||
|
.header-status-locked-db
|
||||||
|
{
|
||||||
|
width: 25px;
|
||||||
|
height: 25px;
|
||||||
|
color: red;
|
||||||
|
position: absolute;
|
||||||
|
top: 12px;
|
||||||
|
right: -17px;
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
|
||||||
.navbar-nav > li > a
|
.navbar-nav > li > a
|
||||||
{
|
{
|
||||||
line-height: 30px;
|
line-height: 30px;
|
||||||
|
|||||||
@@ -628,7 +628,7 @@
|
|||||||
<script src="lib/AdminLTE/bower_components/fullcalendar/dist/locale-all.js"></script>
|
<script src="lib/AdminLTE/bower_components/fullcalendar/dist/locale-all.js"></script>
|
||||||
<!-- ----------------------------------------------------------------------- -->
|
<!-- ----------------------------------------------------------------------- -->
|
||||||
|
|
||||||
<script src="js/db_methods.js?v=<?php include 'php/templates/version.php'; ?>"></script>
|
|
||||||
<!-- ----------------------------------------------------------------------- -->
|
<!-- ----------------------------------------------------------------------- -->
|
||||||
|
|
||||||
<!-- Dark-Mode Patch -->
|
<!-- Dark-Mode Patch -->
|
||||||
|
|||||||
@@ -1,7 +1,9 @@
|
|||||||
// -----------------------------------------------------------------------------
|
// -----------------------------------------------------------------------------
|
||||||
// General utilities to interact with teh database
|
// General utilities to interact with the database
|
||||||
// -----------------------------------------------------------------------------
|
// -----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
|
||||||
|
// --------------------------------------------------
|
||||||
// Read data and place intotarget location, callback processies the results
|
// Read data and place intotarget location, callback processies the results
|
||||||
function readData(sqlQuery, processDataCallback, valuesArray, targetLocation, targetField, nameTransformer) {
|
function readData(sqlQuery, processDataCallback, valuesArray, targetLocation, targetField, nameTransformer) {
|
||||||
var apiUrl = `php/server/dbHelper.php?action=read&rawSql=${encodeURIComponent(sqlQuery)}`;
|
var apiUrl = `php/server/dbHelper.php?action=read&rawSql=${encodeURIComponent(sqlQuery)}`;
|
||||||
@@ -15,4 +17,31 @@ function readData(sqlQuery, processDataCallback, valuesArray, targetLocation, ta
|
|||||||
// Place the resulting HTML into the specified placeholder div
|
// Place the resulting HTML into the specified placeholder div
|
||||||
$("#" + targetLocation).replaceWith(htmlResult);
|
$("#" + targetLocation).replaceWith(htmlResult);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// --------------------------------------------------
|
||||||
|
// Check if database is locked
|
||||||
|
function checkDbLock() {
|
||||||
|
$.ajax({
|
||||||
|
url: 'php/server/dbHelper.php', // Replace with the actual path to your PHP file
|
||||||
|
type: 'GET',
|
||||||
|
data: { action: 'checkLock' },
|
||||||
|
success: function(response) {
|
||||||
|
if (response == 1) {
|
||||||
|
console.log('🟥 Database is locked');
|
||||||
|
$(".header-status-locked-db").show()
|
||||||
|
} else {
|
||||||
|
// console.log('Database is not locked');
|
||||||
|
$(".header-status-locked-db").hide()
|
||||||
|
}
|
||||||
|
},
|
||||||
|
error: function() {
|
||||||
|
console.log('Error checking database lock status');
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
// Start the loop
|
||||||
|
setInterval(() => {
|
||||||
|
checkDbLock();
|
||||||
|
}, 1000);
|
||||||
|
|||||||
@@ -326,7 +326,6 @@ getData();
|
|||||||
|
|
||||||
<!-- ----------------------------------------------------------------------- -->
|
<!-- ----------------------------------------------------------------------- -->
|
||||||
|
|
||||||
<script src="js/db_methods.js?v=<?php include 'php/templates/version.php'; ?>"></script>
|
|
||||||
<!-- ----------------------------------------------------------------------- -->
|
<!-- ----------------------------------------------------------------------- -->
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -72,6 +72,7 @@
|
|||||||
case 'read' : read($rawSql); break;
|
case 'read' : read($rawSql); break;
|
||||||
case 'update': update($columnName, $id, $defaultValue, $expireMinutes, $dbtable, $columns, $values); break;
|
case 'update': update($columnName, $id, $defaultValue, $expireMinutes, $dbtable, $columns, $values); break;
|
||||||
case 'delete': delete($columnName, $id, $dbtable); break;
|
case 'delete': delete($columnName, $id, $dbtable); break;
|
||||||
|
case 'checkLock': checkLock(); break;
|
||||||
default: logServerConsole ('Action: '. $action); break;
|
default: logServerConsole ('Action: '. $action); break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -264,4 +265,20 @@ function delete($columnName, $id, $dbtable)
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
//------------------------------------------------------------------------------
|
||||||
|
// check if the database is locked
|
||||||
|
//------------------------------------------------------------------------------
|
||||||
|
function checkLock() {
|
||||||
|
global $db;
|
||||||
|
try {
|
||||||
|
$db->exec('BEGIN EXCLUSIVE TRANSACTION');
|
||||||
|
$db->exec('COMMIT');
|
||||||
|
echo 0; // Not locked
|
||||||
|
return 0;
|
||||||
|
} catch (Exception $e) {
|
||||||
|
echo 1; // Locked
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
?>
|
?>
|
||||||
|
|||||||
@@ -55,6 +55,7 @@
|
|||||||
<!-- NetAlertX -->
|
<!-- NetAlertX -->
|
||||||
<script src="js/handle_version.js"></script>
|
<script src="js/handle_version.js"></script>
|
||||||
<script src="js/ui_components.js?v=<?php include 'php/templates/version.php'; ?>"></script>
|
<script src="js/ui_components.js?v=<?php include 'php/templates/version.php'; ?>"></script>
|
||||||
|
<script src="js/db_methods.js?v=<?php include 'php/templates/version.php'; ?>"></script>
|
||||||
|
|
||||||
<!-- Select2 JavaScript -->
|
<!-- Select2 JavaScript -->
|
||||||
<script src="lib/AdminLTE/bower_components/select2/dist/js/select2.full.min.js" defer></script>
|
<script src="lib/AdminLTE/bower_components/select2/dist/js/select2.full.min.js" defer></script>
|
||||||
|
|||||||
@@ -57,12 +57,6 @@ require dirname(__FILE__).'/security.php';
|
|||||||
<!-- NetAlertX CSS -->
|
<!-- NetAlertX CSS -->
|
||||||
<link rel="stylesheet" href="css/app.css">
|
<link rel="stylesheet" href="css/app.css">
|
||||||
|
|
||||||
<!-- HTML5 Shim and Respond.js IE8 support of HTML5 elements and media queries -->
|
|
||||||
<!-- WARNING: Respond.js doesn't work if you view the page via file:// -->
|
|
||||||
<!--[if lt IE 9]>
|
|
||||||
<script src="https://oss.maxcdn.com/html5shiv/3.7.3/html5shiv.min.js"></script>
|
|
||||||
<script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script>
|
|
||||||
<![endif]-->
|
|
||||||
|
|
||||||
<!-- Google Font -->
|
<!-- Google Font -->
|
||||||
<!-- <link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Source+Sans+Pro:300,400,600,700,300italic,400italic,600italic"> -->
|
<!-- <link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Source+Sans+Pro:300,400,600,700,300italic,400italic,600italic"> -->
|
||||||
@@ -173,6 +167,9 @@ if ($ENABLED_DARKMODE === True) {
|
|||||||
<div class="header-status">
|
<div class="header-status">
|
||||||
<code id="state"></code>
|
<code id="state"></code>
|
||||||
</div>
|
</div>
|
||||||
|
<div class="header-status-locked-db">
|
||||||
|
<i class="fa-solid fa-database fa-fade"></i>
|
||||||
|
</div>
|
||||||
</a>
|
</a>
|
||||||
</li>
|
</li>
|
||||||
<!-- Server Name -->
|
<!-- Server Name -->
|
||||||
|
|||||||
@@ -54,7 +54,7 @@ while ($row = $result -> fetchArray (SQLITE3_ASSOC)) {
|
|||||||
<!-- Page ------------------------------------------------------------------ -->
|
<!-- Page ------------------------------------------------------------------ -->
|
||||||
|
|
||||||
<script src="js/settings_utils.js?v=<?php include 'php/templates/version.php'; ?>"></script>
|
<script src="js/settings_utils.js?v=<?php include 'php/templates/version.php'; ?>"></script>
|
||||||
<script src="js/db_methods.js?v=<?php include 'php/templates/version.php'; ?>"></script>
|
|
||||||
<script src="lib/crypto/crypto-js.min.js"></script>
|
<script src="lib/crypto/crypto-js.min.js"></script>
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -74,7 +74,7 @@ def get_notifications (db):
|
|||||||
json_obj = db.get_table_as_json(sqlQuery)
|
json_obj = db.get_table_as_json(sqlQuery)
|
||||||
|
|
||||||
json_new_devices_meta = {
|
json_new_devices_meta = {
|
||||||
"title": "🆕New devices",
|
"title": "🆕 New devices",
|
||||||
"columnNames": json_obj.columnNames
|
"columnNames": json_obj.columnNames
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -103,7 +103,7 @@ def get_notifications (db):
|
|||||||
json_obj = db.get_table_as_json(sqlQuery)
|
json_obj = db.get_table_as_json(sqlQuery)
|
||||||
|
|
||||||
json_down_devices_meta = {
|
json_down_devices_meta = {
|
||||||
"title": "⚠ Down devices",
|
"title": "🔴 Down devices",
|
||||||
"columnNames": json_obj.columnNames
|
"columnNames": json_obj.columnNames
|
||||||
}
|
}
|
||||||
json_down_devices = json_obj.json["data"]
|
json_down_devices = json_obj.json["data"]
|
||||||
|
|||||||
Reference in New Issue
Block a user