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;
+ }
+
+}
// -------------------------------------------------------------------------------------------