From ec274c90dafdbcc622321a070d2460060669b2e5 Mon Sep 17 00:00:00 2001 From: Jokob-sk Date: Thu, 9 Feb 2023 21:06:38 +1100 Subject: [PATCH] Plugins 0.1 - Adding LIST setting 0.2 --- back/pialert.py | 2 +- front/php/server/util.php | 2 +- front/settings.php | 54 ++++++++++++++++++++++++++++++++++----- 3 files changed, 49 insertions(+), 9 deletions(-) diff --git a/back/pialert.py b/back/pialert.py index 9767a7b6..df256da0 100755 --- a/back/pialert.py +++ b/back/pialert.py @@ -3594,7 +3594,7 @@ def get_form_control(setting): if type in ['WATCH']: return 'multiselect' if type in ['LIST']: - return 'text' + return 'list' return 'text' diff --git a/front/php/server/util.php b/front/php/server/util.php index 4a14e435..fdd4f0e5 100755 --- a/front/php/server/util.php +++ b/front/php/server/util.php @@ -289,7 +289,7 @@ function saveSettings() $val = "True"; } $txt = $txt.$setting[1]."=".$val."\n" ; - }elseif($setting[2] == 'multiselect' or $setting[2] == 'subnets') + }elseif($setting[2] == 'multiselect' or $setting[2] == 'subnets' or $setting[2] == 'list') { $temp = '['; foreach($setting[3] as $val) diff --git a/front/settings.php b/front/settings.php index 5ebcdb4b..418ca92e 100755 --- a/front/settings.php +++ b/front/settings.php @@ -26,11 +26,12 @@ $settingsJson = json_decode($data); // get settings from the DB global $db; +global $settingKeyOfLists; $result = $db->query("SELECT * FROM Settings"); // array -$lists = array(); +$settingKeyOfLists = array(); $settings = array(); while ($row = $result -> fetchArray (SQLITE3_ASSOC)) { // Push row data @@ -238,12 +239,12 @@ while ($row = $result -> fetchArray (SQLITE3_ASSOC)) { elseif ($set['Type'] == 'list') { - $lists[] = array($set['Code_Name']); + $settingKeyOfLists[] = $set['Code_Name']; $input = $input. '
-
- +
+
'; // Add interface button $input = $input. @@ -262,7 +263,7 @@ while ($row = $result -> fetchArray (SQLITE3_ASSOC)) { } $input = $input.'
'; // Remove all interfaces button - $input = $input.'
'; + $input = $input.'
'; } @@ -335,9 +336,31 @@ while ($row = $result -> fetchArray (SQLITE3_ASSOC)) { } ").attr("value", input).text(input)); + + + $("#'.$settingKey.'_input").val(""); + + settingsChanged(); + } + '; + + + $remList = 'function removeFromList'.$settingKey.'() + { + settingsChanged(); + // $("#'.$settingKey.'").empty(); + $("#'.$settingKey.'").find("option:last").remove(); + }'; + + echo $remList; + echo $addList; } ?> @@ -384,6 +407,7 @@ while ($row = $result -> fetchArray (SQLITE3_ASSOC)) { foreach ($settings as $set) { if(in_array($set['Type'] , $noConversion)) { + echo 'settingsArray.push(["'.$set["Group"].'", "'.$set["Code_Name"].'", "'.$set["Type"].'", $("#'.$set["Code_Name"].'").val() ]);'; } elseif ($set['Type'] == "boolean") @@ -402,6 +426,22 @@ while ($row = $result -> fetchArray (SQLITE3_ASSOC)) { "; echo 'settingsArray.push(["'.$set["Group"].'", "'.$set["Code_Name"].'", "'.$set["Type"].'", temps ]);'; } + elseif ($set['Type'] == "list") + { + echo 'console.log($("#'.$set["Code_Name"].'"));'; + echo "var temps = []; + + $( '#".$set["Code_Name"]." option' ).each( function( i, selected ) { + vl = $( selected ).val() + if (vl != '') + { + temps.push(vl); + } + }); + console.log(temps); + "; + echo 'settingsArray.push(["'.$set["Group"].'", "'.$set["Code_Name"].'", "'.$set["Type"].'", temps ]);'; + } } ?>