Plugins 0.1 - Adding LIST setting 0.1

This commit is contained in:
Jokob-sk
2023-02-08 23:49:53 +11:00
parent c287bc2f22
commit e7a1f013df
4 changed files with 59 additions and 16 deletions

View File

@@ -2900,7 +2900,9 @@ def mqtt_start():
# Get all devices # Get all devices
devices = get_all_devices() devices = get_all_devices()
file_print(" Estimated delay: ", (len(devices) * int(MQTT_DELAY_SEC)*5), 's ', '(', round((len(devices) * int(MQTT_DELAY_SEC))/60,1) , 'min)' ) sec_delay = len(devices) * int(MQTT_DELAY_SEC)*5
file_print(" Estimated delay: ", (sec_delay), 's ', '(', round(sec_delay/60,1) , 'min)' )
for device in devices: for device in devices:
@@ -3589,8 +3591,10 @@ def get_form_control(setting):
return 'boolean' return 'boolean'
if type in ['TIMEOUT', 'RUN_TIMEOUT']: if type in ['TIMEOUT', 'RUN_TIMEOUT']:
return 'integer' return 'integer'
if type in ['WATCH', 'LIST']: if type in ['WATCH']:
return 'multiselect' return 'multiselect'
if type in ['LIST']:
return 'text'
return 'text' return 'text'
@@ -3630,7 +3634,7 @@ def run_plugin_scripts(runType):
print_plugin_info(plugin, ['display_name']) print_plugin_info(plugin, ['display_name'])
file_print(' [Plugins] CMD: ', get_plugin_setting(plugin, "CMD")["value"]) file_print(' [Plugins] CMD: ', get_plugin_setting(plugin, "CMD")["value"])
#------------------------------------------------------------------------------- #-------------------------------------------------------------------------------
def get_plugin_setting(plugin, key): def get_plugin_setting(plugin, key):

View File

@@ -275,24 +275,24 @@ function saveSettings()
{ {
if($group == $setting[0]) if($group == $setting[0])
{ {
if($setting[3] == 'text' or $setting[3] == 'password' or $setting[3] == 'readonly' or $setting[3] == 'selecttext') if($setting[2] == 'text' or $setting[2] == 'password' or $setting[2] == 'readonly' or $setting[2] == 'selecttext')
{ {
$txt = $txt.$setting[1]."='".$setting[2]."'\n" ; $txt = $txt.$setting[1]."='".$setting[3]."'\n" ;
} elseif($setting[3] == 'integer' or $setting[3] == 'selectinteger') } elseif($setting[2] == 'integer' or $setting[2] == 'selectinteger')
{ {
$txt = $txt.$setting[1]."=".$setting[2]."\n" ; $txt = $txt.$setting[1]."=".$setting[3]."\n" ;
} elseif($setting[3] == 'boolean') } elseif($setting[2] == 'boolean')
{ {
$val = "False"; $val = "False";
if($setting[2] == 'true') if($setting[3] == 'true')
{ {
$val = "True"; $val = "True";
} }
$txt = $txt.$setting[1]."=".$val."\n" ; $txt = $txt.$setting[1]."=".$val."\n" ;
}elseif($setting[3] == 'multiselect' or $setting[3] == 'subnets') }elseif($setting[2] == 'multiselect' or $setting[2] == 'subnets')
{ {
$temp = '['; $temp = '[';
foreach($setting[2] as $val) foreach($setting[3] as $val)
{ {
$temp = $temp."'". $val."',"; $temp = $temp."'". $val."',";
} }

View File

@@ -56,7 +56,7 @@
"localized": ["name", "description"], "localized": ["name", "description"],
"name" :[{ "name" :[{
"language_code":"en_us", "language_code":"en_us",
"string" : "Run condition" "string" : "When to run"
}], }],
"description": [{ "description": [{
"language_code":"en_us", "language_code":"en_us",

View File

@@ -30,6 +30,7 @@ global $db;
$result = $db->query("SELECT * FROM Settings"); $result = $db->query("SELECT * FROM Settings");
// array // array
$lists = array();
$settings = array(); $settings = array();
while ($row = $result -> fetchArray (SQLITE3_ASSOC)) { while ($row = $result -> fetchArray (SQLITE3_ASSOC)) {
// Push row data // Push row data
@@ -232,6 +233,37 @@ while ($row = $result -> fetchArray (SQLITE3_ASSOC)) {
// Remove all interfaces button // Remove all interfaces button
$input = $input.'<div><button class="btn btn-primary" onclick="removeInterfaces()">Remove all</button></div>'; $input = $input.'<div><button class="btn btn-primary" onclick="removeInterfaces()">Remove all</button></div>';
}
// list
elseif ($set['Type'] == 'list')
{
$lists[] = array($set['Code_Name']);
$input = $input.
'<div class="row form-group">
<div class="col-xs-6">
<input class="form-control" type="text" placeholder="Enter value"/>
</div>';
// Add interface button
$input = $input.
'<div class="col-xs-3"><button class="btn btn-primary" onclick="addList'.$set['Code_Name'].'()" >Add</button></div>
</div>';
// list all interfaces as options
$input = $input.'<div class="form-group">
<select class="form-control" name="'.$set['Code_Name'].'" id="'.$set['Code_Name'].'" multiple readonly>';
$options = createArray($set['Value']);
foreach ($options as $option) {
$input = $input.'<option value="'.$option.'" disabled>'.$option.'</option>';
}
$input = $input.'</select></div>';
// Remove all interfaces button
$input = $input.'<div><button class="btn btn-primary" onclick="removeList'.$set['Code_Name'].'()">Remove all</button></div>';
} }
$html = $html.$input; $html = $html.$input;
@@ -301,6 +333,13 @@ while ($row = $result -> fetchArray (SQLITE3_ASSOC)) {
{ {
showModalOk('WARNING', "<?= lang("settings_missing")?>"); showModalOk('WARNING', "<?= lang("settings_missing")?>");
} }
<?php
foreach($list as $lists)
{
// HERE TODO
}
?>
// --------------------------------------------------------- // ---------------------------------------------------------
function addInterface() function addInterface()
@@ -340,17 +379,17 @@ while ($row = $result -> fetchArray (SQLITE3_ASSOC)) {
// generate javascript to collect values // generate javascript to collect values
<?php <?php
$noConversion = array('text', 'integer', 'password', 'readonly', 'selecttext', 'selectinteger', "multiselect"); $noConversion = array('text', 'integer', 'password', 'readonly', 'selecttext', 'selectinteger', 'multiselect');
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["Code_Name"].'").val(), "'.$set["Type"].'" ]);'; echo 'settingsArray.push(["'.$set["Group"].'", "'.$set["Code_Name"].'", "'.$set["Type"].'", $("#'.$set["Code_Name"].'").val() ]);';
} }
elseif ($set['Type'] == "boolean") elseif ($set['Type'] == "boolean")
{ {
echo 'temp = $("#'.$set["Code_Name"].'").is(":checked") ;'; echo 'temp = $("#'.$set["Code_Name"].'").is(":checked") ;';
echo 'settingsArray.push(["'.$set["Group"].'", "'.$set["Code_Name"].'", temp, "'.$set["Type"].'" ]);'; echo 'settingsArray.push(["'.$set["Group"].'", "'.$set["Code_Name"].'", "'.$set["Type"].'", temp ]);';
} }
elseif ($set["Code_Name"] == "SCAN_SUBNETS") elseif ($set["Code_Name"] == "SCAN_SUBNETS")
{ {
@@ -361,7 +400,7 @@ while ($row = $result -> fetchArray (SQLITE3_ASSOC)) {
}); });
"; ";
echo 'settingsArray.push(["'.$set["Group"].'", "'.$set["Code_Name"].'", temps, "'.$set["Type"].'" ]);'; echo 'settingsArray.push(["'.$set["Group"].'", "'.$set["Code_Name"].'", "'.$set["Type"].'", temps ]);';
} }
} }