🆕 db locked icon #685

This commit is contained in:
jokob-sk
2024-05-26 15:28:37 +10:00
parent 2c7d71d13c
commit df071c0835
11 changed files with 88 additions and 27 deletions

View File

@@ -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
[![GitHub Sponsors](https://img.shields.io/github/sponsors/jokob-sk?style=social)](https://github.com/sponsors/jokob-sk) [![GitHub Sponsors](https://img.shields.io/github/sponsors/jokob-sk?style=social)](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"

Binary file not shown.

After

Width:  |  Height:  |  Size: 119 KiB

View File

@@ -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;

View File

@@ -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 -->

View File

@@ -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);

View File

@@ -326,7 +326,6 @@ getData();
<!-- ----------------------------------------------------------------------- --> <!-- ----------------------------------------------------------------------- -->
<script src="js/db_methods.js?v=<?php include 'php/templates/version.php'; ?>"></script>
<!-- ----------------------------------------------------------------------- --> <!-- ----------------------------------------------------------------------- -->

View File

@@ -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;
}
}
?> ?>

View File

@@ -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>

View File

@@ -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 -->

View File

@@ -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>

View File

@@ -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"]