Refactor Toggle Dark mode

This commit is contained in:
Jokob-sk
2023-01-16 23:56:19 +11:00
parent 8ef6f420e4
commit fef33d652d
15 changed files with 70 additions and 111 deletions

View File

@@ -2741,36 +2741,6 @@ def upgradeDB ():
ALTER TABLE "Devices" ADD "dev_Icon" TEXT ALTER TABLE "Devices" ADD "dev_Icon" TEXT
""") """)
# Re-creating Parameters table
file_print("[upgradeDB] Re-creating Parameters table")
sql.execute("DROP TABLE Parameters;")
sql.execute("""
CREATE TABLE "Parameters" (
"par_ID" TEXT,
"par_Value" TEXT
);
""")
params = [
# General
('Front_Events_Period', '1 day'),
('Front_Details_Sessions_Rows', '50'),
('Front_Details_Events_Rows', '50'),
('Front_Details_Events_Hide', 'True'),
('Front_Events_Rows', '50'),
('Front_Details_Period', '1 day'),
('Front_Devices_Order', '[[3,"desc"],[0,"asc"]]'),
('Front_Devices_Rows', '100'),
('Front_Details_Tab', 'tabDetails'),
('Back_Settings_Imported', round(time.time() * 1000)),
('Back_App_State', 'Initializing'),
('Back_New_Version_Available', False),
('Front_Event', 'finished')
]
sql.executemany ("""INSERT INTO Parameters ("par_ID", "par_Value") VALUES (?, ?)""", params)
# indicates, if Settings table is available # indicates, if Settings table is available
settingsMissing = sql.execute(""" settingsMissing = sql.execute("""
SELECT name FROM sqlite_master WHERE type='table' SELECT name FROM sqlite_master WHERE type='table'

View File

@@ -784,7 +784,7 @@ function main () {
tab = selectedTab; tab = selectedTab;
// get parameter value // get parameter value
$.get('php/server/parameters.php?action=get&parameter='+ parPeriod, function(data) { $.get('php/server/parameters.php?action=get&defaultValue=1 day&parameter='+ parPeriod, function(data) {
var result = JSON.parse(data); var result = JSON.parse(data);
if (result) { if (result) {
period = result; period = result;
@@ -792,21 +792,21 @@ function main () {
} }
// get parameter value // get parameter value
$.get('php/server/parameters.php?action=get&parameter='+ parSessionsRows, function(data) { $.get('php/server/parameters.php?action=get&defaultValue=50&parameter='+ parSessionsRows, function(data) {
var result = JSON.parse(data); var result = JSON.parse(data);
if (Number.isInteger (result) ) { if (Number.isInteger (result) ) {
sessionsRows = result; sessionsRows = result;
} }
// get parameter value // get parameter value
$.get('php/server/parameters.php?action=get&parameter='+ parEventsRows, function(data) { $.get('php/server/parameters.php?action=get&defaultValue=50&parameter='+ parEventsRows, function(data) {
var result = JSON.parse(data); var result = JSON.parse(data);
if (Number.isInteger (result) ) { if (Number.isInteger (result) ) {
eventsRows = result; eventsRows = result;
} }
// get parameter value // get parameter value
$.get('php/server/parameters.php?action=get&parameter='+ parEventsHide, function(data) { $.get('php/server/parameters.php?action=get&defaultValue=true&parameter='+ parEventsHide, function(data) {
var result = JSON.parse(data); var result = JSON.parse(data);
if (result) { if (result) {
eventsHide = result; eventsHide = result;

View File

@@ -215,7 +215,7 @@
function main () { function main () {
// get parameter value // get parameter value
$.get('php/server/parameters.php?action=get&parameter='+ parTableRows, function(data) { $.get('php/server/parameters.php?action=get&defaultValue=50&parameter='+ parTableRows, function(data) {
var result = JSON.parse(data); var result = JSON.parse(data);
result = parseInt(result, 10) result = parseInt(result, 10)
@@ -225,7 +225,7 @@ function main () {
} }
// get parameter value // get parameter value
$.get('php/server/parameters.php?action=get&parameter='+ parTableOrder, function(data) { $.get('php/server/parameters.php?action=get&defaultValue=[[3,"desc"],[0,"asc"]]&parameter='+ parTableOrder, function(data) {
var result = JSON.parse(data); var result = JSON.parse(data);
result = JSON.parse(result); result = JSON.parse(result);
if (Array.isArray (result) ) { if (Array.isArray (result) ) {

View File

@@ -188,7 +188,7 @@
// ----------------------------------------------------------------------------- // -----------------------------------------------------------------------------
function main () { function main () {
// get parameter value // get parameter value
$.get('php/server/parameters.php?action=get&parameter='+ parPeriod, function(data) { $.get('php/server/parameters.php?action=get&defaultValue=1 day&parameter='+ parPeriod, function(data) {
var result = JSON.parse(data); var result = JSON.parse(data);
if (result) { if (result) {
period = result; period = result;
@@ -196,7 +196,7 @@ function main () {
} }
// get parameter value // get parameter value
$.get('php/server/parameters.php?action=get&parameter='+ parTableRows, function(data) { $.get('php/server/parameters.php?action=get&defaultValue=50&parameter='+ parTableRows, function(data) {
var result = JSON.parse(data); var result = JSON.parse(data);
result = parseInt(result, 10) result = parseInt(result, 10)
if (Number.isInteger (result) ) { if (Number.isInteger (result) ) {

View File

@@ -2,7 +2,6 @@
require 'php/templates/language/lang.php'; require 'php/templates/language/lang.php';
require 'php/templates/skinUI.php';
require 'php/templates/security.php'; require 'php/templates/security.php';
if ($Pia_WebProtection != 'true') if ($Pia_WebProtection != 'true')

View File

@@ -246,7 +246,7 @@ if (isset($_POST['submit']) && submit && isset($_POST['skinselector_set'])) {
</div> </div>
<div class="db_info_table_row"> <div class="db_info_table_row">
<div class="db_tools_table_cell_a"> <div class="db_tools_table_cell_a">
<button type="button" class="btn bg-green dbtools-button" id="btnPiaEnableDarkmode" onclick="askPiaEnableDarkmode()"><?php echo lang('Maintenance_Tool_darkmode');?></button> <button type="button" class="btn bg-green dbtools-button" id="btnToggleDarkmode" onclick="askToggleDarkmode()"><?php echo lang('Maintenance_Tool_darkmode');?></button>
</div> </div>
<div class="db_tools_table_cell_b"><?php echo lang('Maintenance_Tool_darkmode_text');?></div> <div class="db_tools_table_cell_b"><?php echo lang('Maintenance_Tool_darkmode_text');?></div>
</div> </div>
@@ -641,31 +641,38 @@ function ImportCSV()
}); });
} }
// --------------------------------------------------------
// Switch Darkmode // Switch Darkmode
function askPiaEnableDarkmode() { function askToggleDarkmode() {
// Ask // Ask
showModalWarning('<?php echo lang('Maintenance_Tool_darkmode_noti');?>', '<?php echo lang('Maintenance_Tool_darkmode_noti_text');?>', showModalWarning('<?php echo lang('Maintenance_Tool_darkmode_noti');?>', '<?php echo lang('Maintenance_Tool_darkmode_noti_text');?>',
'<?php echo lang('Gen_Cancel');?>', '<?php echo lang('Gen_Switch');?>', 'PiaEnableDarkmode'); '<?php echo lang('Gen_Cancel');?>', '<?php echo lang('Gen_Switch');?>', 'ToggleDarkmode');
}
function PiaEnableDarkmode()
{
// Execute
$.get('php/server/devices.php?action=PiaEnableDarkmode', function(msg) {
showMessage (msg);
});
} }
// Toggle the Arp-Scans // --------------------------------------------------------
function askPiaToggleArpScan () { function ToggleDarkmode()
// Ask
showModalWarning('<?php echo lang('Maintenance_Tool_arpscansw_noti');?>', '<?php echo lang('Maintenance_Tool_arpscansw_noti_text');?>',
'<?php echo lang('Gen_Cancel');?>', '<?php echo lang('Gen_Switch');?>', 'PiaToggleArpScan');
}
function PiaToggleArpScan()
{ {
// Execute // get parameter Front_Dark_Mode_Enabled value
$.get('php/server/devices.php?action=PiaToggleArpScan', function(msg) { $.get('php/server/parameters.php?action=get&defaultValue=false&parameter=Front_Dark_Mode_Enabled', function(data) {
showMessage (msg); var result = JSON.parse(data);
if (result) {
darkModeEnabled = result == 'true';
darkModeEnabled = !darkModeEnabled;
$.get('php/server/parameters.php?action=set&parameter=Front_Dark_Mode_Enabled&value='+ darkModeEnabled,
function(data) {
if (data != "OK") {
showMessage (data);
setTimeout(function (){location.reload()}, 1000);
} else {
showMessage (data);
};
} );
}
}); });
} }

View File

@@ -433,7 +433,7 @@
echo $str_table_header.$str_table_rows.$str_table_close; echo $str_table_header.$str_table_rows.$str_table_close;
} }
CommitDB ();
?> ?>
<!-- /.content --> <!-- /.content -->

View File

@@ -70,11 +70,6 @@ function OpenDB (...$DBPath) {
$db->exec('PRAGMA journal_mode = wal;'); $db->exec('PRAGMA journal_mode = wal;');
} }
function CommitDB () {
global $db;
// $db->commit();
}
// # Open DB once and keep open // # Open DB once and keep open
// # Opening / closing DB frequently actually casues more issues // # Opening / closing DB frequently actually casues more issues

View File

@@ -42,8 +42,6 @@
case 'PiaBackupDBtoArchive': PiaBackupDBtoArchive(); break; case 'PiaBackupDBtoArchive': PiaBackupDBtoArchive(); break;
case 'PiaRestoreDBfromArchive': PiaRestoreDBfromArchive(); break; case 'PiaRestoreDBfromArchive': PiaRestoreDBfromArchive(); break;
case 'PiaPurgeDBBackups': PiaPurgeDBBackups(); break; case 'PiaPurgeDBBackups': PiaPurgeDBBackups(); break;
case 'PiaEnableDarkmode': PiaEnableDarkmode(); break;
case 'PiaToggleArpScan': PiaToggleArpScan(); break;
case 'ExportCSV': ExportCSV(); break; case 'ExportCSV': ExportCSV(); break;
case 'ImportCSV': ImportCSV(); break; case 'ImportCSV': ImportCSV(); break;
@@ -66,7 +64,7 @@
} }
} }
CommitDB();
//------------------------------------------------------------------------------ //------------------------------------------------------------------------------
// Query Device Data // Query Device Data
@@ -527,28 +525,8 @@ function ImportCSV() {
echo lang('BackDevices_DBTools_ImportCSVMissing'); echo lang('BackDevices_DBTools_ImportCSVMissing');
} }
CommitDB();
} }
//------------------------------------------------------------------------------
// Toggle Dark/Light Themes
//------------------------------------------------------------------------------
function PiaEnableDarkmode() {
$file = '../../../db/setting_darkmode';
if (file_exists($file)) {
echo lang('BackDevices_darkmode_disabled');
unlink($file);
echo("<meta http-equiv='refresh' content='1'>");
} else {
echo lang('BackDevices_darkmode_enabled');
$darkmode = fopen($file, 'w');
echo("<meta http-equiv='refresh' content='1'>");
}
}
//------------------------------------------------------------------------------ //------------------------------------------------------------------------------
// Query total numbers of Devices by status // Query total numbers of Devices by status
//------------------------------------------------------------------------------ //------------------------------------------------------------------------------

View File

@@ -22,16 +22,21 @@
ini_set ('max_execution_time','15'); ini_set ('max_execution_time','15');
$skipCache = FALSE; $skipCache = FALSE;
$defaultValue = '';
if (isset ($_REQUEST['skipcache'])) { if (isset ($_REQUEST['skipcache'])) {
$skipCache = TRUE; $skipCache = TRUE;
} }
if (isset ($_REQUEST['defaultValue'])) {
$defaultValue = $_REQUEST['defaultValue'];
}
// Action functions // Action functions
if (isset ($_REQUEST['action']) && !empty ($_REQUEST['action'])) { if (isset ($_REQUEST['action']) && !empty ($_REQUEST['action'])) {
$action = $_REQUEST['action']; $action = $_REQUEST['action'];
switch ($action) { switch ($action) {
case 'get': getParameter($skipCache); break; case 'get': getParameter($skipCache, $defaultValue); break;
case 'set': setParameter(); break; case 'set': setParameter(); break;
default: logServerConsole ('Action: '. $action); break; default: logServerConsole ('Action: '. $action); break;
} }
@@ -41,18 +46,19 @@
//------------------------------------------------------------------------------ //------------------------------------------------------------------------------
// Get Parameter Value // Get Parameter Value
//------------------------------------------------------------------------------ //------------------------------------------------------------------------------
function getParameter($skipCache) { function getParameter($skipCache, $defaultValue) {
$parameter = $_REQUEST['parameter']; $parameter = $_REQUEST['parameter'];
$value = ""; $value = "";
// get the value from the cookie if available // get the value from the cache if available
if(getCache($parameter) != "") $cachedValue = getCache($parameter);
if($cachedValue != "")
{ {
$value = getCache($parameter); $value = $cachedValue;
} }
// query the database if no cache entry found or requesting live data for the Back_App_State in the header // query the database if no cache entry found or requesting live data (skipping cache)
if($skipCache || $value == "" ) if($skipCache || $value == "" )
{ {
global $db; global $db;
@@ -62,12 +68,15 @@ function getParameter($skipCache) {
$result = $db->query($sql); $result = $db->query($sql);
$row = $result -> fetchArray (SQLITE3_NUM); $row = $result -> fetchArray (SQLITE3_NUM);
if($row != NULL && count($row) == 1)
{
$value = $row[0]; $value = $row[0];
} else{
$value = $defaultValue;
}
// Commit DB // update cache
CommitDB();
// update cookie cache
setCache($parameter, $value); setCache($parameter, $value);
} }
// return value // return value
@@ -109,10 +118,7 @@ function setParameter() {
} }
} }
// Commit DB // update cache
CommitDB();
// update cookie cache
setCache($parameter, $value); setCache($parameter, $value);
echo 'OK'; echo 'OK';

View File

@@ -9,7 +9,7 @@
//------------------------------------------------------------------------------ //------------------------------------------------------------------------------
require '/home/pi/pialert/front/php/templates/timezone.php'; require '/home/pi/pialert/front/php/templates/timezone.php';
require '/home/pi/pialert/front/php/templates/skinUI.php'; require '/home/pi/pialert/front/php/templates/language/lang.php';
$FUNCTION = []; $FUNCTION = [];
$SETTINGS = []; $SETTINGS = [];

View File

@@ -10,7 +10,6 @@
<?php <?php
require '/home/pi/pialert/front/php/templates/timezone.php'; require '/home/pi/pialert/front/php/templates/timezone.php';
require '/home/pi/pialert/front/php/templates/skinUI.php';
require '/home/pi/pialert/front/php/templates/language/lang.php'; require '/home/pi/pialert/front/php/templates/language/lang.php';
require '/home/pi/pialert/front/php/templates/security.php'; require '/home/pi/pialert/front/php/templates/security.php';
@@ -260,7 +259,7 @@ if ($ENABLED_DARKMODE === True) {
} }
// get parameter value // get parameter value
$.get('php/server/parameters.php?action=get&parameter='+ key + skipCacheQuery, function(data) { $.get('php/server/parameters.php?action=get&defaultValue=NULL&parameter='+ key + skipCacheQuery, function(data) {
var result = data; var result = data;
document.getElementById(targetId).innerHTML = result.replaceAll('"', ''); document.getElementById(targetId).innerHTML = result.replaceAll('"', '');

View File

@@ -14,6 +14,7 @@ if(!isset($_COOKIE["language"])) {
if (isset($pia_lang_selected) == FALSE or (strlen($pia_lang_selected) == 0)) {$pia_lang_selected = defaultLang;} if (isset($pia_lang_selected) == FALSE or (strlen($pia_lang_selected) == 0)) {$pia_lang_selected = defaultLang;}
require '/home/pi/pialert/front/php/templates/skinUI.php';
require 'en_us.php'; require 'en_us.php';
require 'de_de.php'; require 'de_de.php';
require 'es_es.php'; require 'es_es.php';

View File

@@ -4,9 +4,14 @@
// ## GUI settings processing start // ## GUI settings processing start
// ################################### // ###################################
if (file_exists('/home/pi/pialert/db/setting_darkmode')) { if( isset($_COOKIE['Front_Dark_Mode_Enabled']))
$ENABLED_DARKMODE = True; {
$ENABLED_DARKMODE = $_COOKIE['Front_Dark_Mode_Enabled'] == "true";
}else
{
$ENABLED_DARKMODE = False;
} }
foreach (glob("/home/pi/pialert/db/setting_skin*") as $filename) { foreach (glob("/home/pi/pialert/db/setting_skin*") as $filename) {
$pia_skin_selected = str_replace('setting_','',basename($filename)); $pia_skin_selected = str_replace('setting_','',basename($filename));
} }

View File

@@ -40,7 +40,6 @@ while ($row = $result -> fetchArray (SQLITE3_ASSOC)) {
); );
} }
CommitDB();
?> ?>
<!-- Page ------------------------------------------------------------------ --> <!-- Page ------------------------------------------------------------------ -->
@@ -397,7 +396,7 @@ CommitDB();
} }
// get parameter value // get parameter value
$.get('php/server/parameters.php?action=get&parameter='+ key + skipCacheQuery, function(data) { $.get('php/server/parameters.php?action=get&defaultValue=0&parameter='+ key + skipCacheQuery, function(data) {
var result = data; var result = data;