Plugins 0.1 - Adding LIST setting 0.2

This commit is contained in:
Jokob-sk
2023-02-09 21:06:38 +11:00
parent e7a1f013df
commit ec274c90da
3 changed files with 49 additions and 9 deletions

View File

@@ -3594,7 +3594,7 @@ def get_form_control(setting):
if type in ['WATCH']: if type in ['WATCH']:
return 'multiselect' return 'multiselect'
if type in ['LIST']: if type in ['LIST']:
return 'text' return 'list'
return 'text' return 'text'

View File

@@ -289,7 +289,7 @@ function saveSettings()
$val = "True"; $val = "True";
} }
$txt = $txt.$setting[1]."=".$val."\n" ; $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 = '['; $temp = '[';
foreach($setting[3] as $val) foreach($setting[3] as $val)

View File

@@ -26,11 +26,12 @@ $settingsJson = json_decode($data);
// get settings from the DB // get settings from the DB
global $db; global $db;
global $settingKeyOfLists;
$result = $db->query("SELECT * FROM Settings"); $result = $db->query("SELECT * FROM Settings");
// array // array
$lists = array(); $settingKeyOfLists = array();
$settings = array(); $settings = array();
while ($row = $result -> fetchArray (SQLITE3_ASSOC)) { while ($row = $result -> fetchArray (SQLITE3_ASSOC)) {
// Push row data // Push row data
@@ -238,12 +239,12 @@ while ($row = $result -> fetchArray (SQLITE3_ASSOC)) {
elseif ($set['Type'] == 'list') elseif ($set['Type'] == 'list')
{ {
$lists[] = array($set['Code_Name']); $settingKeyOfLists[] = $set['Code_Name'];
$input = $input. $input = $input.
'<div class="row form-group"> '<div class="row form-group">
<div class="col-xs-6"> <div class="col-xs-9">
<input class="form-control" type="text" placeholder="Enter value"/> <input class="form-control" type="text" id="'.$set['Code_Name'].'_input" placeholder="Enter value"/>
</div>'; </div>';
// Add interface button // Add interface button
$input = $input. $input = $input.
@@ -262,7 +263,7 @@ while ($row = $result -> fetchArray (SQLITE3_ASSOC)) {
} }
$input = $input.'</select></div>'; $input = $input.'</select></div>';
// Remove all interfaces button // Remove all interfaces button
$input = $input.'<div><button class="btn btn-primary" onclick="removeList'.$set['Code_Name'].'()">Remove all</button></div>'; $input = $input.'<div><button class="btn btn-primary" onclick="removeFromList'.$set['Code_Name'].'()">Remove last</button></div>';
} }
@@ -335,9 +336,31 @@ while ($row = $result -> fetchArray (SQLITE3_ASSOC)) {
} }
<?php <?php
foreach($list as $lists) // generate javascript methods to handle add and remove items to lists
foreach($settingKeyOfLists as $settingKey )
{ {
// HERE TODO $addList = 'function addList'.$settingKey.'()
{
input = $("#'.$settingKey.'_input").val();
$("#'.$settingKey.'").append($("<option disabled></option>").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) { foreach ($settings as $set) {
if(in_array($set['Type'] , $noConversion)) if(in_array($set['Type'] , $noConversion))
{ {
echo 'settingsArray.push(["'.$set["Group"].'", "'.$set["Code_Name"].'", "'.$set["Type"].'", $("#'.$set["Code_Name"].'").val() ]);'; echo 'settingsArray.push(["'.$set["Group"].'", "'.$set["Code_Name"].'", "'.$set["Type"].'", $("#'.$set["Code_Name"].'").val() ]);';
} }
elseif ($set['Type'] == "boolean") 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 ]);'; 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 ]);';
}
} }
?> ?>