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
""")
# 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
settingsMissing = sql.execute("""
SELECT name FROM sqlite_master WHERE type='table'

View File

@@ -784,7 +784,7 @@ function main () {
tab = selectedTab;
// 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);
if (result) {
period = result;
@@ -792,21 +792,21 @@ function main () {
}
// 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);
if (Number.isInteger (result) ) {
sessionsRows = result;
}
// 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);
if (Number.isInteger (result) ) {
eventsRows = result;
}
// 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);
if (result) {
eventsHide = result;

View File

@@ -215,7 +215,7 @@
function main () {
// 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);
result = parseInt(result, 10)
@@ -225,7 +225,7 @@ function main () {
}
// 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);
result = JSON.parse(result);
if (Array.isArray (result) ) {

View File

@@ -188,7 +188,7 @@
// -----------------------------------------------------------------------------
function main () {
// 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);
if (result) {
period = result;
@@ -196,7 +196,7 @@ function main () {
}
// 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);
result = parseInt(result, 10)
if (Number.isInteger (result) ) {

View File

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

View File

@@ -246,7 +246,7 @@ if (isset($_POST['submit']) && submit && isset($_POST['skinselector_set'])) {
</div>
<div class="db_info_table_row">
<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 class="db_tools_table_cell_b"><?php echo lang('Maintenance_Tool_darkmode_text');?></div>
</div>
@@ -641,31 +641,38 @@ function ImportCSV()
});
}
// --------------------------------------------------------
// Switch Darkmode
function askPiaEnableDarkmode() {
function askToggleDarkmode() {
// Ask
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');
}
function PiaEnableDarkmode()
{
// Execute
$.get('php/server/devices.php?action=PiaEnableDarkmode', function(msg) {
showMessage (msg);
});
'<?php echo lang('Gen_Cancel');?>', '<?php echo lang('Gen_Switch');?>', 'ToggleDarkmode');
}
// Toggle the Arp-Scans
function askPiaToggleArpScan () {
// 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('php/server/devices.php?action=PiaToggleArpScan', function(msg) {
showMessage (msg);
// --------------------------------------------------------
function ToggleDarkmode()
{
// get parameter Front_Dark_Mode_Enabled value
$.get('php/server/parameters.php?action=get&defaultValue=false&parameter=Front_Dark_Mode_Enabled', function(data) {
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;
}
CommitDB ();
?>
<!-- /.content -->

View File

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

View File

@@ -41,9 +41,7 @@
case 'deleteDeviceEvents': deleteDeviceEvents(); break;
case 'PiaBackupDBtoArchive': PiaBackupDBtoArchive(); break;
case 'PiaRestoreDBfromArchive': PiaRestoreDBfromArchive(); break;
case 'PiaPurgeDBBackups': PiaPurgeDBBackups(); break;
case 'PiaEnableDarkmode': PiaEnableDarkmode(); break;
case 'PiaToggleArpScan': PiaToggleArpScan(); break;
case 'PiaPurgeDBBackups': PiaPurgeDBBackups(); break;
case 'ExportCSV': ExportCSV(); break;
case 'ImportCSV': ImportCSV(); break;
@@ -66,7 +64,7 @@
}
}
CommitDB();
//------------------------------------------------------------------------------
// Query Device Data
@@ -527,28 +525,8 @@ function ImportCSV() {
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
//------------------------------------------------------------------------------

View File

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

View File

@@ -9,7 +9,7 @@
//------------------------------------------------------------------------------
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 = [];
$SETTINGS = [];

View File

@@ -10,7 +10,6 @@
<?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/security.php';
@@ -260,7 +259,7 @@ if ($ENABLED_DARKMODE === True) {
}
// 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;
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;}
require '/home/pi/pialert/front/php/templates/skinUI.php';
require 'en_us.php';
require 'de_de.php';
require 'es_es.php';

View File

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

View File

@@ -40,7 +40,6 @@ while ($row = $result -> fetchArray (SQLITE3_ASSOC)) {
);
}
CommitDB();
?>
<!-- Page ------------------------------------------------------------------ -->
@@ -397,7 +396,7 @@ CommitDB();
}
// 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;