From 35d9c0e54805f0d9468cc6297a2700cd9bedca1c Mon Sep 17 00:00:00 2001 From: Jokob-sk Date: Mon, 23 Jan 2023 21:18:27 +1100 Subject: [PATCH] Fix Network scaling, DeviceDetials link, missing lang string, incorrectly mapped columns, default device values --- back/pialert.py | 18 ++++++++--- front/devices.php | 8 ++--- front/network.php | 57 +++++++++++++++++++-------------- front/php/server/devices.php | 15 +++++---- front/php/server/parameters.php | 30 +++++++++++------ front/php/server/util.php | 12 +++++++ 6 files changed, 91 insertions(+), 49 deletions(-) diff --git a/back/pialert.py b/back/pialert.py index 49de451b..f2d18b41 100755 --- a/back/pialert.py +++ b/back/pialert.py @@ -383,7 +383,7 @@ def importConfig (): lastTimeImported = time.time() # Used to display a message in the UI when old (outdated) settings are loaded - sql.execute ("""UPDATE Parameters set "par_Value" = ? where "par_ID" = "Back_Settings_Imported" """, (round(time.time() * 1000),)) + initOrSetParam("Back_Settings_Imported",(round(time.time() * 1000),) ) commitDB() @@ -2840,6 +2840,9 @@ def upgradeDB (): AND name='Nmap_Scan'; """).fetchone() == None + # Initialize Parameters if unavailable + initOrSetParam('Back_App_State','Initializing') + # if nmapScanMissing == False: # # Re-creating Nmap_Scan table # sql.execute("DROP TABLE Nmap_Scan;") @@ -2859,8 +2862,14 @@ def upgradeDB (): PRIMARY KEY("Index" AUTOINCREMENT) ); """) - - # don't hog DB access + + commitDB () + +#------------------------------------------------------------------------------- +def initOrSetParam(parID, parValue): + + sql.execute ("INSERT INTO Parameters(par_ID, par_Value) VALUES('"+str(parID)+"', '"+str(parValue)+"') ON CONFLICT(par_ID) DO UPDATE SET par_Value='"+str(parValue)+"' where par_ID='"+str(parID)+"'") + commitDB () #------------------------------------------------------------------------------- @@ -2868,7 +2877,6 @@ def updateState(newState): sql.execute ("UPDATE Parameters SET par_Value='"+ newState +"' WHERE par_ID='Back_App_State'") - # don't hog DB access commitDB () @@ -3112,7 +3120,7 @@ def isNewVersion(): if realeaseTimestamp > buildTimestamp + 600: file_print(" New version of the container available!") newVersionAvailable = True - sql.execute ("UPDATE Parameters SET par_Value='"+ str(newVersionAvailable) +"' WHERE par_ID='Back_New_Version_Available'") + initOrSetParam('Back_New_Version_Available', str(newVersionAvailable)) return newVersionAvailable diff --git a/front/devices.php b/front/devices.php index f640f968..9eb6c56d 100755 --- a/front/devices.php +++ b/front/devices.php @@ -192,9 +192,9 @@ var parTableOrder = 'Front_Devices_Order'; var tableRows = 10; var tableOrder = [[3,'desc'], [0,'asc']]; - var tableColumnVisible = [0,1,2,3,4,5,6,7,8,9,10,12,13,14]; - var columnsStr = '[0,1,2,3,4,5,6,7,8,9,10,12,13,14]'; - var tableColumnOrder = [0,1,2,3,4,5,6,7,8,9,10,12,13,14] ; + var tableColumnVisible = [0,1,2,3,4,5,6,7,8,9,10,11,12,13,14]; + var columnsStr = '[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14]'; + var tableColumnOrder = [0,1,2,3,4,5,6,7,8,9,10,11,12,13,14] ; // Read parameters & Initialize components main(); @@ -461,7 +461,7 @@ function getDevicesFromTable(table) rowIDs.map(function(rowID, index){ result.push({ "rowid": rowID, - "mac":rowMACs[index], + "mac" : rowMACs[index], "name" : rowNames[index], "type" : rowTypes[index], "icon" : rowIcons[index], diff --git a/front/network.php b/front/network.php index f5bb5bff..420b3b85 100755 --- a/front/network.php +++ b/front/network.php @@ -454,7 +454,7 @@ - diff --git a/front/php/server/devices.php b/front/php/server/devices.php index b5f4288e..701314d4 100755 --- a/front/php/server/devices.php +++ b/front/php/server/devices.php @@ -622,8 +622,8 @@ function getDevicesList() { $defaultOrder = array ($row['dev_Name'], $row['dev_Owner'], - $row['dev_DeviceType'], - $row['dev_Icon'], + handleNull($row['dev_DeviceType']), + handleNull($row['dev_Icon'], "laptop"), $row['dev_Favorite'], $row['dev_Group'], formatDate ($row['dev_FirstConnection']), @@ -634,12 +634,12 @@ function getDevicesList() { $row['dev_MAC'], // MAC (hidden) formatIPlong ($row['dev_LastIP']), // IP orderable $row['rowid'], // Rowid (hidden) - $row['dev_Network_Node_MAC_ADDR'] // + handleNull($row['dev_Network_Node_MAC_ADDR']) // ); $newOrder = array(); - + // reorder columns based on user settings for($index = 0; $index < count($columnOrderMapping); $index++) { array_push($newOrder, $defaultOrder[$columnOrderMapping[$index][2]]); @@ -757,10 +757,11 @@ function getIcons() { // arrays of rows $tableData = array(); - while ($row = $result -> fetchArray (SQLITE3_ASSOC)) { + while ($row = $result -> fetchArray (SQLITE3_ASSOC)) { + $icon = handleNull($row['dev_Icon'], "laptop"); // Push row data - $tableData[] = array('id' => $row['dev_Icon'], - 'name' => ' - '.$row['dev_Icon'] ); + $tableData[] = array('id' => $icon, + 'name' => ' - '.$icon ); } // Control no rows diff --git a/front/php/server/parameters.php b/front/php/server/parameters.php index bb091db4..9fdcca77 100755 --- a/front/php/server/parameters.php +++ b/front/php/server/parameters.php @@ -80,6 +80,9 @@ function getParameter($skipCache, $defaultValue, $expireMinutes) { $value = $row[0]; } else{ $value = $defaultValue; + + // Nothing found in the DB, Insert new value + insertNew($parameter, $value); } // update cache @@ -113,15 +116,7 @@ function setParameter($expireMinutes) { $changes = $db->changes(); if ($changes == 0) { // Insert new value - $sql = 'INSERT INTO Parameters (par_ID, par_Value) - VALUES ("'. quotes($parameter) .'", - "'. quotes($value) .'")'; - $result = $db->query($sql); - - if (! $result == TRUE) { - echo "Error creating parameter\n\n$sql \n\n". $db->lastErrorMsg(); - return; - } + insertNew($parameter, $value); } // update cache @@ -130,4 +125,21 @@ function setParameter($expireMinutes) { echo 'OK'; } +function insertNew($parameter, $value) +{ + global $db; + + // Insert new value + $sql = 'INSERT INTO Parameters (par_ID, par_Value) + VALUES ("'. quotes($parameter) .'", + "'. quotes($value) .'")'; + $result = $db->query($sql); + + if (! $result == TRUE) { + echo "Error creating parameter\n\n$sql \n\n". $db->lastErrorMsg(); + return; + } +} + + ?> diff --git a/front/php/server/util.php b/front/php/server/util.php index a08cdb44..a051f540 100755 --- a/front/php/server/util.php +++ b/front/php/server/util.php @@ -353,6 +353,18 @@ function logServerConsole ($text) { $x = array(); $y = $x['__________'. $text .'__________']; } + +// ------------------------------------------------------------------------------------------- +function handleNull ($text, $default = "") { + if($text == NULL || $text == 'NULL') + { + return $default; + } else + { + return $text; + } + +} // -------------------------------------------------------------------------------------------