@@ -128,9 +126,9 @@
// render based on element type
if (lastElementObj.elementType === 'select') {
- targetLocation = columns[j].Code_Name + "_initSettingDropdown"
+ targetLocation = columns[j].Code_Name + "_generateSetOptions"
- initSettingDropdown(columns[j].Code_Name, [], targetLocation, generateDropdownOptions)
+ generateOptionsOrSetOptions(columns[j].Code_Name, [], targetLocation, generateOptions)
// Handle Icons as tehy need a preview
if(columns[j].Code_Name == 'NEWDEV_dev_Icon')
diff --git a/front/php/components/logs.php b/front/php/components/logs.php
index feeb0242..ebec8adf 100755
--- a/front/php/components/logs.php
+++ b/front/php/components/logs.php
@@ -53,7 +53,7 @@ function renderLogArea($params) {
$html = '
-
diff --git a/front/php/server/util.php b/front/php/server/util.php
index 0f60c859..8c4216b5 100755
--- a/front/php/server/util.php
+++ b/front/php/server/util.php
@@ -370,18 +370,7 @@ function saveSettings()
$temp = '['.$temp.']'; // wrap brackets
$txt .= $settingKey . "=" . $temp . "\n";
- // $temp = '';
- // if (is_array($settingValue) == FALSE) {
- // $settingValue = json_decode($settingValue);
- // }
- // if (count($setting) > 3 && is_array($settingValue) == true) {
- // foreach ($settingValue as $val) {
- // $temp .= "'" . encode_single_quotes($val) . "',";
- // }
- // $temp = substr_replace($temp, "", -1); // remove last comma ','
- // }
- // $temp = '[' . $temp . ']'; // wrap brackets
- // $txt .= $settingKey . "=" . $temp . "\n";
+
} else {
$txt .= $settingKey . "='⭕Not handled⭕'\n";
}
diff --git a/front/php/templates/footer.php b/front/php/templates/footer.php
index 21a4d363..6cb84352 100755
--- a/front/php/templates/footer.php
+++ b/front/php/templates/footer.php
@@ -55,7 +55,7 @@
-
+
diff --git a/front/php/templates/header.php b/front/php/templates/header.php
index 2896fc2e..57c2b177 100755
--- a/front/php/templates/header.php
+++ b/front/php/templates/header.php
@@ -33,6 +33,8 @@ require dirname(__FILE__).'/security.php';
+
+
diff --git a/front/plugins/newdev_template/config.json b/front/plugins/newdev_template/config.json
index d9573841..a9a68016 100755
--- a/front/plugins/newdev_template/config.json
+++ b/front/plugins/newdev_template/config.json
@@ -28,7 +28,63 @@
"settings": [
{
"function": "ignored_MACs",
- "type": {"dataType": "array","elements": [ {"elementType": "input","elementOptions": [{ "placeholder": "Enter value" },{ "suffix": "_in" },{ "cssClasses": "col-sm-10" },{ "prefillValue": "null" }],"transformers": [] }, {"elementType": "button","elementOptions": [{ "sourceSuffixes": ["_in"] },{ "separator": "" },{ "cssClasses": "col-sm-12" },{ "onClick": "addList(this, false)" },{ "getStringKey": "Gen_Add" }],"transformers": [] }, {"elementType": "button","elementOptions": [{ "sourceSuffixes": [] },{ "separator": "" },{ "cssClasses": "col-sm-6" },{ "onClick": "removeAllOptions(this)" },{ "getStringKey": "Gen_Remove_All" }],"transformers": []},{"elementType": "button","elementOptions": [{ "sourceSuffixes": [] },{ "separator": "" },{ "cssClasses": "col-sm-6" },{ "onClick": "removeFromList(this)" },{ "getStringKey": "Gen_Remove_Last" }],"transformers": []}, {"elementType": "select","elementOptions": [{ "multiple": "true" },{ "readonly": "true" },{ "editable": "true" }],"transformers": [] }]},
+ "type": {
+ "dataType": "array",
+ "elements": [
+ {
+ "elementType": "input",
+ "elementOptions": [
+ { "placeholder": "Enter value" },
+ { "suffix": "_in" },
+ { "cssClasses": "col-sm-10" },
+ { "prefillValue": "null" }
+ ],
+ "transformers": []
+ },
+ {
+ "elementType": "button",
+ "elementOptions": [
+ { "sourceSuffixes": ["_in"] },
+ { "separator": "" },
+ { "cssClasses": "col-sm-12" },
+ { "onClick": "addList(this, false)" },
+ { "getStringKey": "Gen_Add" }
+ ],
+ "transformers": []
+ },
+ {
+ "elementType": "button",
+ "elementOptions": [
+ { "sourceSuffixes": [] },
+ { "separator": "" },
+ { "cssClasses": "col-sm-6" },
+ { "onClick": "removeAllOptions(this)" },
+ { "getStringKey": "Gen_Remove_All" }
+ ],
+ "transformers": []
+ },
+ {
+ "elementType": "button",
+ "elementOptions": [
+ { "sourceSuffixes": [] },
+ { "separator": "" },
+ { "cssClasses": "col-sm-6" },
+ { "onClick": "removeFromList(this)" },
+ { "getStringKey": "Gen_Remove_Last" }
+ ],
+ "transformers": []
+ },
+ {
+ "elementType": "select",
+ "elementOptions": [
+ { "multiple": "true" },
+ { "readonly": "true" },
+ { "editable": "true" }
+ ],
+ "transformers": []
+ }
+ ]
+ },
"default_value": [],
"options": [],
"localized": ["name", "description"],
@@ -47,7 +103,63 @@
},
{
"function": "ignored_IPs",
- "type": {"dataType": "array","elements": [ {"elementType": "input","elementOptions": [{ "placeholder": "Enter value" },{ "suffix": "_in" },{ "cssClasses": "col-sm-10" },{ "prefillValue": "null" }],"transformers": [] }, {"elementType": "button","elementOptions": [{ "sourceSuffixes": ["_in"] },{ "separator": "" },{ "cssClasses": "col-sm-12" },{ "onClick": "addList(this, false)" },{ "getStringKey": "Gen_Add" }],"transformers": [] }, {"elementType": "button","elementOptions": [{ "sourceSuffixes": [] },{ "separator": "" },{ "cssClasses": "col-sm-6" },{ "onClick": "removeAllOptions(this)" },{ "getStringKey": "Gen_Remove_All" }],"transformers": []},{"elementType": "button","elementOptions": [{ "sourceSuffixes": [] },{ "separator": "" },{ "cssClasses": "col-sm-6" },{ "onClick": "removeFromList(this)" },{ "getStringKey": "Gen_Remove_Last" }],"transformers": []}, {"elementType": "select","elementOptions": [{ "multiple": "true" },{ "readonly": "true" },{ "editable": "true" }],"transformers": [] }]},
+ "type": {
+ "dataType": "array",
+ "elements": [
+ {
+ "elementType": "input",
+ "elementOptions": [
+ { "placeholder": "Enter value" },
+ { "suffix": "_in" },
+ { "cssClasses": "col-sm-10" },
+ { "prefillValue": "null" }
+ ],
+ "transformers": []
+ },
+ {
+ "elementType": "button",
+ "elementOptions": [
+ { "sourceSuffixes": ["_in"] },
+ { "separator": "" },
+ { "cssClasses": "col-sm-12" },
+ { "onClick": "addList(this, false)" },
+ { "getStringKey": "Gen_Add" }
+ ],
+ "transformers": []
+ },
+ {
+ "elementType": "button",
+ "elementOptions": [
+ { "sourceSuffixes": [] },
+ { "separator": "" },
+ { "cssClasses": "col-sm-6" },
+ { "onClick": "removeAllOptions(this)" },
+ { "getStringKey": "Gen_Remove_All" }
+ ],
+ "transformers": []
+ },
+ {
+ "elementType": "button",
+ "elementOptions": [
+ { "sourceSuffixes": [] },
+ { "separator": "" },
+ { "cssClasses": "col-sm-6" },
+ { "onClick": "removeFromList(this)" },
+ { "getStringKey": "Gen_Remove_Last" }
+ ],
+ "transformers": []
+ },
+ {
+ "elementType": "select",
+ "elementOptions": [
+ { "multiple": "true" },
+ { "readonly": "true" },
+ { "editable": "true" }
+ ],
+ "transformers": []
+ }
+ ]
+ },
"default_value": [],
"options": [],
"localized": ["name", "description"],
@@ -66,7 +178,16 @@
},
{
"function": "dev_MAC",
- "type": {"dataType":"string", "elements": [{"elementType" : "input", "elementOptions" : [{"readonly": "true"}] ,"transformers": []}]},
+ "type": {
+ "dataType": "string",
+ "elements": [
+ {
+ "elementType": "input",
+ "elementOptions": [{ "readonly": "true" }],
+ "transformers": []
+ }
+ ]
+ },
"maxLength": 50,
"default_value": "",
"options": [],
@@ -86,7 +207,16 @@
},
{
"function": "dev_Name",
- "type": {"dataType":"string", "elements": [{"elementType" : "input", "elementOptions" : [{"readonly": "true"}] ,"transformers": []}]},
+ "type": {
+ "dataType": "string",
+ "elements": [
+ {
+ "elementType": "input",
+ "elementOptions": [{ "readonly": "true" }],
+ "transformers": []
+ }
+ ]
+ },
"maxLength": 50,
"default_value": "(unknown)",
"options": [],
@@ -106,7 +236,12 @@
},
{
"function": "dev_Owner",
- "type": {"dataType":"string", "elements": [{"elementType" : "select", "elementOptions" : [] ,"transformers": []}]},
+ "type": {
+ "dataType": "string",
+ "elements": [
+ { "elementType": "select", "elementOptions": [], "transformers": [] }
+ ]
+ },
"maxLength": 30,
"default_value": "",
"options": ["{value}"],
@@ -133,7 +268,12 @@
},
{
"function": "dev_DeviceType",
- "type": {"dataType":"string", "elements": [{"elementType" : "select", "elementOptions" : [] ,"transformers": []}]},
+ "type": {
+ "dataType": "string",
+ "elements": [
+ { "elementType": "select", "elementOptions": [], "transformers": [] }
+ ]
+ },
"maxLength": 30,
"default_value": "",
"options": ["{value}"],
@@ -165,7 +305,16 @@
},
{
"function": "dev_Vendor",
- "type": {"dataType":"string", "elements": [{"elementType" : "input", "elementOptions" : [{"readonly": "true"}] ,"transformers": []}]},
+ "type": {
+ "dataType": "string",
+ "elements": [
+ {
+ "elementType": "input",
+ "elementOptions": [{ "readonly": "true" }],
+ "transformers": []
+ }
+ ]
+ },
"maxLength": 250,
"default_value": "",
"options": [],
@@ -185,7 +334,16 @@
},
{
"function": "dev_Favorite",
- "type": {"dataType":"integer", "elements": [{"elementType" : "input", "elementOptions" : [{"type":"checkbox"}] ,"transformers": []}]},
+ "type": {
+ "dataType": "integer",
+ "elements": [
+ {
+ "elementType": "input",
+ "elementOptions": [{ "type": "checkbox" }],
+ "transformers": []
+ }
+ ]
+ },
"default_value": 0,
"options": [],
"localized": ["name", "description"],
@@ -204,7 +362,12 @@
},
{
"function": "dev_Group",
- "type": {"dataType":"string", "elements": [{"elementType" : "select", "elementOptions" : [] ,"transformers": []}]},
+ "type": {
+ "dataType": "string",
+ "elements": [
+ { "elementType": "select", "elementOptions": [], "transformers": [] }
+ ]
+ },
"maxLength": 10,
"default_value": "",
"options": ["{value}"],
@@ -231,7 +394,12 @@
},
{
"function": "dev_Comments",
- "type": {"dataType":"string", "elements": [{"elementType" : "input", "elementOptions" : [] ,"transformers": []}]},
+ "type": {
+ "dataType": "string",
+ "elements": [
+ { "elementType": "input", "elementOptions": [], "transformers": [] }
+ ]
+ },
"default_value": "",
"options": [],
"localized": ["name", "description"],
@@ -250,7 +418,16 @@
},
{
"function": "dev_FirstConnection",
- "type": {"dataType":"string", "elements": [{"elementType" : "input", "elementOptions" : [{"readonly": "true"}] ,"transformers": []}]},
+ "type": {
+ "dataType": "string",
+ "elements": [
+ {
+ "elementType": "input",
+ "elementOptions": [{ "readonly": "true" }],
+ "transformers": []
+ }
+ ]
+ },
"format": "date-time",
"default_value": "",
"options": [],
@@ -270,7 +447,16 @@
},
{
"function": "dev_LastConnection",
- "type": {"dataType":"string", "elements": [{"elementType" : "input", "elementOptions" : [{"readonly": "true"}] ,"transformers": []}]},
+ "type": {
+ "dataType": "string",
+ "elements": [
+ {
+ "elementType": "input",
+ "elementOptions": [{ "readonly": "true" }],
+ "transformers": []
+ }
+ ]
+ },
"format": "date-time",
"default_value": "",
"options": [],
@@ -290,7 +476,16 @@
},
{
"function": "dev_LastIP",
- "type": {"dataType":"string", "elements": [{"elementType" : "input", "elementOptions" : [{"readonly": "true"}] ,"transformers": []}]},
+ "type": {
+ "dataType": "string",
+ "elements": [
+ {
+ "elementType": "input",
+ "elementOptions": [{ "readonly": "true" }],
+ "transformers": []
+ }
+ ]
+ },
"maxLength": 50,
"default_value": "",
"options": [],
@@ -310,7 +505,16 @@
},
{
"function": "dev_StaticIP",
- "type": {"dataType":"integer", "elements": [{"elementType" : "input", "elementOptions" : [{"type":"checkbox"}] ,"transformers": []}]},
+ "type": {
+ "dataType": "integer",
+ "elements": [
+ {
+ "elementType": "input",
+ "elementOptions": [{ "type": "checkbox" }],
+ "transformers": []
+ }
+ ]
+ },
"default_value": 0,
"options": [],
"localized": ["name", "description"],
@@ -329,7 +533,16 @@
},
{
"function": "dev_ScanCycle",
- "type": {"dataType":"integer", "elements": [{"elementType" : "input", "elementOptions" : [{"type":"checkbox"}] ,"transformers": []}]},
+ "type": {
+ "dataType": "integer",
+ "elements": [
+ {
+ "elementType": "input",
+ "elementOptions": [{ "type": "checkbox" }],
+ "transformers": []
+ }
+ ]
+ },
"default_value": 1,
"options": [],
"localized": ["name", "description"],
@@ -348,7 +561,16 @@
},
{
"function": "dev_LogEvents",
- "type": {"dataType":"integer", "elements": [{"elementType" : "input", "elementOptions" : [{"type":"checkbox"}] ,"transformers": []}]},
+ "type": {
+ "dataType": "integer",
+ "elements": [
+ {
+ "elementType": "input",
+ "elementOptions": [{ "type": "checkbox" }],
+ "transformers": []
+ }
+ ]
+ },
"default_value": 1,
"options": [],
"localized": ["name", "description"],
@@ -367,7 +589,16 @@
},
{
"function": "dev_AlertEvents",
- "type": {"dataType":"integer", "elements": [{"elementType" : "input", "elementOptions" : [{"type":"checkbox"}] ,"transformers": []}]},
+ "type": {
+ "dataType": "integer",
+ "elements": [
+ {
+ "elementType": "input",
+ "elementOptions": [{ "type": "checkbox" }],
+ "transformers": []
+ }
+ ]
+ },
"default_value": 1,
"options": [],
"localized": ["name", "description"],
@@ -386,7 +617,16 @@
},
{
"function": "dev_AlertDeviceDown",
- "type": {"dataType":"integer", "elements": [{"elementType" : "input", "elementOptions" : [{"type":"checkbox"}] ,"transformers": []}]},
+ "type": {
+ "dataType": "integer",
+ "elements": [
+ {
+ "elementType": "input",
+ "elementOptions": [{ "type": "checkbox" }],
+ "transformers": []
+ }
+ ]
+ },
"default_value": 0,
"options": [],
"localized": ["name", "description"],
@@ -405,7 +645,12 @@
},
{
"function": "dev_SkipRepeated",
- "type": {"dataType":"string", "elements": [{"elementType" : "select", "elementOptions" : [] ,"transformers": []}]},
+ "type": {
+ "dataType": "string",
+ "elements": [
+ { "elementType": "select", "elementOptions": [], "transformers": [] }
+ ]
+ },
"default_value": 0,
"options": ["{value}"],
"options_params": [
@@ -431,7 +676,16 @@
},
{
"function": "dev_LastNotification",
- "type": {"dataType":"string", "elements": [{"elementType" : "input", "elementOptions" : [{"readonly": "true"}] ,"transformers": []}]},
+ "type": {
+ "dataType": "string",
+ "elements": [
+ {
+ "elementType": "input",
+ "elementOptions": [{ "readonly": "true" }],
+ "transformers": []
+ }
+ ]
+ },
"format": "date-time",
"default_value": "",
"options": [],
@@ -451,7 +705,16 @@
},
{
"function": "dev_PresentLastScan",
- "type": {"dataType":"integer", "elements": [{"elementType" : "input", "elementOptions" : [{"type":"checkbox"}] ,"transformers": []}]},
+ "type": {
+ "dataType": "integer",
+ "elements": [
+ {
+ "elementType": "input",
+ "elementOptions": [{ "type": "checkbox" }],
+ "transformers": []
+ }
+ ]
+ },
"default_value": 1,
"options": [],
"localized": ["name", "description"],
@@ -470,7 +733,16 @@
},
{
"function": "dev_NewDevice",
- "type": {"dataType":"integer", "elements": [{"elementType" : "input", "elementOptions" : [{"type":"checkbox"}] ,"transformers": []}]},
+ "type": {
+ "dataType": "integer",
+ "elements": [
+ {
+ "elementType": "input",
+ "elementOptions": [{ "type": "checkbox" }],
+ "transformers": []
+ }
+ ]
+ },
"default_value": 1,
"options": [],
"localized": ["name", "description"],
@@ -489,7 +761,12 @@
},
{
"function": "dev_Location",
- "type": {"dataType":"string", "elements": [{"elementType" : "select", "elementOptions" : [] ,"transformers": []}]},
+ "type": {
+ "dataType": "string",
+ "elements": [
+ { "elementType": "select", "elementOptions": [], "transformers": [] }
+ ]
+ },
"maxLength": 250,
"default_value": "",
"options": ["{value}"],
@@ -516,7 +793,16 @@
},
{
"function": "dev_Archived",
- "type": {"dataType":"integer", "elements": [{"elementType" : "input", "elementOptions" : [{"type":"checkbox"}] ,"transformers": []}]},
+ "type": {
+ "dataType": "integer",
+ "elements": [
+ {
+ "elementType": "input",
+ "elementOptions": [{ "type": "checkbox" }],
+ "transformers": []
+ }
+ ]
+ },
"default_value": 0,
"options": [],
"localized": ["name", "description"],
@@ -535,7 +821,12 @@
},
{
"function": "dev_Network_Node_MAC_ADDR",
- "type": {"dataType":"string", "elements": [{"elementType" : "select", "elementOptions" : [] ,"transformers": []}]},
+ "type": {
+ "dataType": "string",
+ "elements": [
+ { "elementType": "select", "elementOptions": [], "transformers": [] }
+ ]
+ },
"default_value": "",
"options": ["{value}"],
"options_params": [
@@ -566,7 +857,16 @@
},
{
"function": "dev_Network_Node_port",
- "type": {"dataType":"string", "elements": [{"elementType" : "input", "elementOptions" : [{"readonly": "true"}] ,"transformers": []}]},
+ "type": {
+ "dataType": "string",
+ "elements": [
+ {
+ "elementType": "input",
+ "elementOptions": [{ "readonly": "true" }],
+ "transformers": []
+ }
+ ]
+ },
"default_value": 0,
"options": [],
"localized": ["name", "description"],
@@ -585,7 +885,12 @@
},
{
"function": "dev_Icon",
- "type": {"dataType":"string", "elements": [{"elementType" : "select", "elementOptions" : [] ,"transformers": []}]},
+ "type": {
+ "dataType": "string",
+ "elements": [
+ { "elementType": "select", "elementOptions": [], "transformers": [] }
+ ]
+ },
"default_value": "",
"options": ["{value}"],
"options_params": [
@@ -611,7 +916,16 @@
},
{
"function": "LESS_NAME_CLEANUP",
- "type": {"dataType":"boolean", "elements": [{"elementType" : "input", "elementOptions" : [{"type":"checkbox"}] ,"transformers": []}]},
+ "type": {
+ "dataType": "boolean",
+ "elements": [
+ {
+ "elementType": "input",
+ "elementOptions": [{ "type": "checkbox" }],
+ "transformers": []
+ }
+ ]
+ },
"default_value": 0,
"options": [],
"localized": ["name", "description"],
@@ -630,8 +944,75 @@
},
{
"function": "NAME_CLEANUP_REGEX",
- "type": {"dataType":"string", "elements": [{"elementType" : "textarea", "elementOptions" : [] ,"transformers": ["base64"]}]},
- "default_value": ["XC5fYWlycGxheQ==", "XC5fdGNw", "XC5sb2NhbGRvbWFpbg==", "XC5sb2NhbA==", "XC5fZXNwaG9tZWxpYg==", "XC5fZ29vZ2xlY2FzdA==", "XC5sYW4=", "XC5ob21l", "LVthLWZBLUYwLTldezMyfQ==", "Iy4q" ],
+ "type": {
+ "dataType": "array",
+ "elements": [
+ {
+ "elementType": "input",
+ "elementOptions": [
+ { "placeholder": "Enter value" },
+ { "suffix": "_in" },
+ { "cssClasses": "col-sm-10" },
+ { "prefillValue": "null" }
+ ],
+ "transformers": []
+ },
+ {
+ "elementType": "button",
+ "elementOptions": [
+ { "sourceSuffixes": [] },
+ { "separator": "" },
+ { "cssClasses": "col-sm-3" },
+ { "onClick": "removeAllOptions(this)" },
+ { "getStringKey": "Gen_Remove_All" }
+ ],
+ "transformers": []
+ },
+ {
+ "elementType": "button",
+ "elementOptions": [
+ { "sourceSuffixes": [] },
+ { "separator": "" },
+ { "cssClasses": "col-sm-3" },
+ { "onClick": "removeFromList(this)" },
+ { "getStringKey": "Gen_Remove_Last" }
+ ],
+ "transformers": []
+ },
+ {
+ "elementType": "button",
+ "elementOptions": [
+ { "sourceSuffixes": ["_in"] },
+ { "separator": "" },
+ { "cssClasses": "col-sm-2" },
+ { "onClick": "addList(this, false)" },
+ { "getStringKey": "Gen_Add" }
+ ],
+ "transformers": []
+ },
+ {
+ "elementType": "select",
+ "elementOptions": [
+ { "multiple": "true" },
+ { "readonly": "true" },
+ { "editable": "true" }
+ ],
+ "transformers": ["base64"]
+ }
+ ]
+ },
+ "default_value": [
+ "XC5fYWlycGxheQ==",
+ "XC5fdGNw",
+ "XC5sb2NhbGRvbWFpbg==",
+ "XC5sb2NhbA==",
+ "XC5fZXNwaG9tZWxpYg==",
+ "XC5fZ29vZ2xlY2FzdA==",
+ "XC5sYW4=",
+ "XC5ob21l",
+ "LVthLWZBLUYwLTldezMyfQ==",
+ "Iy4q"
+ ],
"options": [],
"localized": ["name", "description"],
"name": [
diff --git a/front/plugins/nmap_dev_scan/nmap_dev.py b/front/plugins/nmap_dev_scan/nmap_dev.py
index 5c43e82b..aad6f769 100755
--- a/front/plugins/nmap_dev_scan/nmap_dev.py
+++ b/front/plugins/nmap_dev_scan/nmap_dev.py
@@ -84,7 +84,7 @@ def execute_scan(subnets_list, timeout):
for interface in subnets_list:
nmap_output = execute_scan_on_interface(interface, timeout)
- mylog('verbose', [f"[{pluginName}] nmap_output: ", nmap_output])
+ # mylog('verbose', [f"[{pluginName}] nmap_output XML: ", nmap_output])
if nmap_output: # Proceed only if nmap output is not empty
# Parse the XML output using python-nmap
diff --git a/front/settings.php b/front/settings.php
index bfae0bff..c5c2effb 100755
--- a/front/settings.php
+++ b/front/settings.php
@@ -50,7 +50,7 @@ $settingsJSON_DB = json_encode($settings, JSON_HEX_TAG | JSON_HEX_AMP | JSON_HEX
?>
-
+
@@ -237,7 +237,7 @@ $settingsJSON_DB = json_encode($settings, JSON_HEX_TAG | JSON_HEX_AMP | JSON_HEX
// only proceed if everything was loaded correctly
if(!exception_occurred)
{
- initSettingsPage(settingsData, pluginsData, generateDropdownOptions);
+ initSettingsPage(settingsData, pluginsData);
}
})
}
@@ -374,7 +374,7 @@ $settingsJSON_DB = json_encode($settings, JSON_HEX_TAG | JSON_HEX_AMP | JSON_HEX
// go thru all settings and collect settings per settings prefix
settingsData.forEach((set) => {
- const val = set['Value'];
+ const valIn = set['Value'];
const codeName = set['Code_Name'];
const setType = set['Type'];
const isMetadata = codeName.includes('__metadata');
@@ -382,7 +382,7 @@ $settingsJSON_DB = json_encode($settings, JSON_HEX_TAG | JSON_HEX_AMP | JSON_HEX
const setObj = isMetadata ? {} : JSON.parse(getSetting(`${codeName}__metadata`));
// not initialized properly, reload
- if(isMetadata && val == "" )
+ if(isMetadata && valIn == "" )
{
console.warn(`Metadata setting value is empty: ${codeName}`);
clearCache();
@@ -481,12 +481,22 @@ $settingsJSON_DB = json_encode($settings, JSON_HEX_TAG | JSON_HEX_AMP | JSON_HEX
valRes,
getStringKey,
onClick
- } = handleElementOptions(codeName, elementOptions, transformers, val);
+ } = handleElementOptions(codeName, elementOptions, transformers, valIn);
+
+ // override
+ val = valRes;
// Generate HTML based on dataType and elementType
switch (elementType) {
case 'select':
- inputHtml = generateOptions(pluginsData, set, inputHtml, dataType, isMultiSelect, editable, transformers);
+ let multi = isMultiSelect ? "multiple" : "";
+
+ inputHtml += `
+
+ `;
+
+ generateOptionsOrSetOptions(codeName, createArray(val), `${codeName}_temp_`, generateOptions, targetField = null, transformers);
+
break;
case 'input':
@@ -500,7 +510,7 @@ $settingsJSON_DB = json_encode($settings, JSON_HEX_TAG | JSON_HEX_AMP | JSON_HEX
my-data-type="${dataType}"
id="${codeName}${suffix}"
type="${inputType}"
- value="${valRes}"
+ value="${val}"
${readOnly}
${checked}
placeholder="${placeholder}"
@@ -530,7 +540,7 @@ $settingsJSON_DB = json_encode($settings, JSON_HEX_TAG | JSON_HEX_AMP | JSON_HEX
break;
default:
- console.warn(`Unknown element type: ${elementType}`);
+ console.warn(`🟥Unknown element type: ${elementType}`);
}
});
@@ -538,7 +548,7 @@ $settingsJSON_DB = json_encode($settings, JSON_HEX_TAG | JSON_HEX_AMP | JSON_HEX
// process events (e.g. run ascan, or test a notification) if associated with the setting
let eventsHtml = "";
- const eventsList = createArray(set['Events']);
+ const eventsList = createArray(set['Events']);
if (eventsList.length > 0) {
// console.log(eventsList)
@@ -569,7 +579,10 @@ $settingsJSON_DB = json_encode($settings, JSON_HEX_TAG | JSON_HEX_AMP | JSON_HEX
}
// init finished
- initListInteractionOptions() // init remove and edit listitem click gestures
+ setTimeout(() => {
+ initListInteractionOptions() // init remove and edit listitem click gestures
+ }, 50);
+
setupSmoothScrolling()
hideSpinner()
@@ -616,6 +629,7 @@ $settingsJSON_DB = json_encode($settings, JSON_HEX_TAG | JSON_HEX_AMP | JSON_HEX
const setTypeObject = JSON.parse(setType.replace(/'/g, '"'));
// console.log(setTypeObject);
+ const dataType = setTypeObject.dataType;
const lastElementObj = setTypeObject.elements[setTypeObject.elements.length - 1];
const { elementType, elementOptions = [], transformers = [] } = lastElementObj;
const {
@@ -635,20 +649,20 @@ $settingsJSON_DB = json_encode($settings, JSON_HEX_TAG | JSON_HEX_AMP | JSON_HEX
let value;
- if (setTypeObject.dataType === "string" ||
- (setTypeObject.dataType === "integer" && (inputType === "number" || inputType === "text"))) {
+ if (dataType === "string" ||
+ (dataType === "integer" && (inputType === "number" || inputType === "text"))) {
value = $('#' + setCodeName).val();
value = applyTransformers(value, transformers);
- settingsArray.push([prefix, setCodeName, setTypeObject.dataType, value]);
+ settingsArray.push([prefix, setCodeName, dataType, value]);
} else if (inputType === 'checkbox') {
value = $(`#${setCodeName}`).is(':checked') ? 1 : 0;
value = applyTransformers(value, transformers);
- settingsArray.push([prefix, setCodeName, setTypeObject.dataType, value]);
+ settingsArray.push([prefix, setCodeName, dataType, value]);
- } else if (setTypeObject.dataType === "array" ) {
+ } else if (dataType === "array" ) {
// make sure to collect all if set as "editable" or selected only otherwise
$(`#${setCodeName}`).attr("my-editable") == "true" ? additionalSelector = "" : additionalSelector = ":selected"
@@ -657,25 +671,27 @@ $settingsJSON_DB = json_encode($settings, JSON_HEX_TAG | JSON_HEX_AMP | JSON_HEX
$(`#${setCodeName} option${additionalSelector}`).each(function() {
const vl = $(this).val();
if (vl !== '') {
- temps.push(vl);
+ temps.push(applyTransformers(vl, transformers));
}
});
value = JSON.stringify(temps);
- value = applyTransformers(value, transformers);
- settingsArray.push([prefix, setCodeName, setTypeObject.dataType, value]);
+ settingsArray.push([prefix, setCodeName, dataType, value]);
- } else if (setTypeObject.dataType === "json") {
+ } else if (dataType === "json") {
value = $('#' + setCodeName).val();
value = applyTransformers(value, transformers);
value = JSON.stringify(value, null, 2)
- settingsArray.push([prefix, setCodeName, setTypeObject.dataType, value]);
+ settingsArray.push([prefix, setCodeName, dataType, value]);
} else {
+
+ console.error(`[saveSettings] Couldn't determnine how to handle (setCodeName|dataType|inputType):(${setCodeName}|${dataType}|${inputType})`);
+
value = $('#' + setCodeName).val();
value = applyTransformers(value, transformers);
- settingsArray.push([prefix, setCodeName, setTypeObject.dataType, value]);
+ settingsArray.push([prefix, setCodeName, dataType, value]);
}
});
@@ -702,7 +718,7 @@ $settingsJSON_DB = json_encode($settings, JSON_HEX_TAG | JSON_HEX_AMP | JSON_HEX
window.onbeforeunload = null;
// Reloads the current page
- // setTimeout("clearCache()", 5000);
+ setTimeout("clearCache()", 5000);
} else{
// something went wrong
// write_notification(data, 'interrupt')
diff --git a/server/plugin.py b/server/plugin.py
index 952ec8fb..61ed752e 100755
--- a/server/plugin.py
+++ b/server/plugin.py
@@ -42,11 +42,6 @@ class plugin_param:
mylog('debug', f'[Plugins] dType: {dataType}')
- # noConversion = ['text', 'string', 'integer', 'boolean', 'password', 'password.SHA256', 'readonly', 'integer.select', 'text.select', 'integer.checkbox' ]
- # arrayConversion = ['text.multiselect', 'list', 'list.select', 'subnets']
- # jsonConversion = ['.template']
-
-
if dataType == 'array':
# store number of returned values