diff --git a/docs/PLUGINS_DEV.md b/docs/PLUGINS_DEV.md
index ada22149..e0671e52 100755
--- a/docs/PLUGINS_DEV.md
+++ b/docs/PLUGINS_DEV.md
@@ -191,7 +191,7 @@ This SQL query is executed on the `app.db` SQLite database file.
> ```json
> {
> "function": "CMD",
-> "type": "text",
+> "type": {"dataType":"string", "elements": [{"elementType" : "input", "elementOptions" : [] ,"transformers": []}]},
> "default_value":"SELECT dv.dev_Name as Object_PrimaryID, cast(dv.dev_LastIP as VARCHAR(100)) || ':' || cast( SUBSTR(ns.Port ,0, INSTR(ns.Port , '/')) as VARCHAR(100)) as Object_SecondaryID, datetime() as DateTime, ns.Service as Watched_Value1, ns.State as Watched_Value2, 'null' as Watched_Value3, 'null' as Watched_Value4, ns.Extra as Extra FROM (SELECT * FROM Nmap_Scan) ns LEFT JOIN (SELECT dev_Name, dev_MAC, dev_LastIP FROM Devices) dv ON ns.MAC = dv.dev_MAC",
> "options": [],
> "localized": ["name", "description"],
@@ -222,7 +222,7 @@ For example for `PIHOLE` (`"unique_prefix": "PIHOLE"`) it is `EXTERNAL_PIHOLE.`.
> ...
>{
> "function": "DB_PATH",
-> "type": "readonly",
+> "type": {"dataType":"string", "elements": [{"elementType" : "input", "elementOptions" : [{"readonly": "true"}] ,"transformers": []}]},
> "default_value":"/etc/pihole/pihole-FTL.db",
> "options": [],
> "localized": ["name", "description"],
@@ -247,7 +247,7 @@ The actual SQL query you want to execute is then stored as a `CMD` setting, simi
>```json
>{
> "function": "CMD",
-> "type": "text",
+> "type": {"dataType":"string", "elements": [{"elementType" : "input", "elementOptions" : [] ,"transformers": []}]},
> "default_value":"SELECT hwaddr as Object_PrimaryID, cast('http://' || (SELECT ip FROM EXTERNAL_PIHOLE.network_addresses WHERE network_id = id ORDER BY lastseen DESC, ip LIMIT 1) as VARCHAR(100)) || ':' || cast( SUBSTR((SELECT name FROM EXTERNAL_PIHOLE.network_addresses WHERE network_id = id ORDER BY lastseen DESC, ip LIMIT 1), 0, INSTR((SELECT name FROM EXTERNAL_PIHOLE.network_addresses WHERE network_id = id ORDER BY lastseen DESC, ip LIMIT 1), '/')) as VARCHAR(100)) as Object_SecondaryID, datetime() as DateTime, macVendor as Watched_Value1, lastQuery as Watched_Value2, (SELECT name FROM EXTERNAL_PIHOLE.network_addresses WHERE network_id = id ORDER BY lastseen DESC, ip LIMIT 1) as Watched_Value3, 'null' as Watched_Value4, '' as Extra, hwaddr as ForeignKey FROM EXTERNAL_PIHOLE.network WHERE hwaddr NOT LIKE 'ip-%' AND hwaddr <> '00:00:00:00:00:00'; ",
> "options": [],
> "localized": ["name", "description"],
@@ -425,7 +425,7 @@ The `params` array in the `config.json` is used to enable the user to change the
```json
{
"function": "CMD",
- "type": "text",
+ "type": {"dataType":"string", "elements": [{"elementType" : "input", "elementOptions" : [] ,"transformers": []}]},
"default_value":"python3 /app/front/plugins/website_monitor/script.py urls={urls}",
"options": [],
"localized": ["name", "description"],
@@ -508,18 +508,7 @@ Required attributes are:
| -------- | ----------- |
| `"function"` | Specifies the function the setting drives or a simple unique code name. See Supported settings function values for options. |
| `"type"` | Specifies the form control used for the setting displayed in the Settings page and what values are accepted. Supported options include: |
-| | - `text` |
-| | - `integer` |
-| | - `boolean` |
-| | - `password` |
-| | - `readonly` |
-| | - `integer.select` |
-| | - `text.select` |
-| | - `text.multiselect` |
-| | - `list` |
-| | - `list.select` |
-| | - `integer.checkbox` |
-| | - `text.template` |
+| | - `{"dataType":"string", "elements": [{"elementType" : "input", "elementOptions" : [{"type":"password"}] ,"transformers": ["sha256"]}]}` |
| `"localized"` | A list of properties on the current JSON level that need to be localized. |
| `"name"` | Displayed on the Settings page. An array of localized strings. See Localized strings below. |
| `"description"` | Displayed on the Settings page. An array of localized strings. See Localized strings below. |
@@ -562,7 +551,7 @@ You can have any `"function": "my_custom_name"` custom name, however, the ones l
> ```json
> {
> "function": "RUN",
-> "type": "text.select",
+> "type": {"dataType":"string", "elements": [{"elementType" : "select", "elementOptions" : [] ,"transformers": []}]},
> "default_value":"disabled",
> "options": ["disabled", "once", "schedule", "always_after_scan", "on_new_device"],
> "localized": ["name", "description"],
@@ -627,7 +616,7 @@ The UI will adjust how columns are displayed in the UI based on the resolvers de
```json
"function": "dev_DeviceType",
- "type": "text.select",
+ "type": {"dataType":"string", "elements": [{"elementType" : "select", "elementOptions" : [] ,"transformers": []}]},
"maxLength": 30,
"default_value": "",
"options": ["{value}"],
diff --git a/front/deviceDetails.php b/front/deviceDetails.php
index ef6143d8..4e261a1a 100755
--- a/front/deviceDetails.php
+++ b/front/deviceDetails.php
@@ -824,12 +824,12 @@ function initializeCombos () {
initializeCombo ( '#dropdownDevices', 'getDevices', 'txtFromDevice', false);
// Initiate dropdown
- // function initSettingDropdown(settingKey, // Identifier for the setting
- // valuesArray, // Array of values to be pre-selected in the dropdown
- // targetLocation, // ID of the HTML element where dropdown should be rendered (will be replaced)
- // callbackToGenerateEntries, // Callback function to generate entries based on options
- // targetField, // Target field or element where selected value should be applied or updated
- // nameTransformer) // callback to transform name
+ // initSettingDropdown(settingKey, // Identifier for the setting
+ // valuesArray, // Array of values to be pre-selected in the dropdown
+ // targetLocation, // ID of the HTML element where dropdown should be rendered (will be replaced)
+ // callbackToGenerateEntries, // Callback function to generate entries based on options
+ // targetField, // Target field or element where selected value should be applied or updated
+ // nameTransformer) // callback to transform name
initSettingDropdown("NEWDEV_dev_Icon", [], "dropdownIcon_tmp", genListWithInputSet, 'txtIcon', atob )
diff --git a/front/js/common.js b/front/js/common.js
index be6f8684..93e40f65 100755
--- a/front/js/common.js
+++ b/front/js/common.js
@@ -124,8 +124,10 @@ function cacheSettings()
settingsData.forEach((set) => {
resolvedOptions = createArray(set.Options)
+ resolvedOptionsOld = resolvedOptions
setPlugObj = {};
options_params = [];
+ resolved = ""
// proceed only if first option item contains something to resolve
if( !set.Code_Name.includes("__metadata") &&
@@ -158,7 +160,12 @@ function cacheSettings()
}
}
+ console.log(resolved);
+ console.log(resolvedOptionsOld);
+ console.log(resolvedOptions);
+
setCache(`pia_set_${set.Code_Name}`, set.Value)
+
setCache(`pia_set_opt_${set.Code_Name}`, resolvedOptions)
});
}).then(() => handleSuccess('cacheSettings', resolve())).catch(() => handleFailure('cacheSettings', reject("cacheSettings already completed"))); // handle AJAX synchronization
@@ -179,6 +186,7 @@ function getSettingOptions (key) {
if (result == "")
{
console.log(`Setting options with key "${key}" not found`)
+ result = []
}
return result;
@@ -743,10 +751,14 @@ function isRandomMAC(mac)
// ---------------------------------------------------------
// Generate an array object from a string representation of an array
function createArray(input) {
+ // Is already array, return
+ if (Array.isArray(input)) {
+ return input;
+ }
// Empty array
if (input === '[]') {
return [];
- }
+ }
// Regex pattern for brackets
const patternBrackets = /(^\s*\[)|(\]\s*$)/g;
diff --git a/front/js/db_methods.js b/front/js/db_methods.js
index 98885527..4678629d 100755
--- a/front/js/db_methods.js
+++ b/front/js/db_methods.js
@@ -6,6 +6,7 @@
// --------------------------------------------------
// Read data and place intotarget location, callback processies the results
function readData(sqlQuery, processDataCallback, valuesArray, targetLocation, targetField, nameTransformer) {
+
var apiUrl = `php/server/dbHelper.php?action=read&rawSql=${encodeURIComponent(sqlQuery)}`;
$.get(apiUrl, function(data) {
// Process the JSON data using the provided callback function
diff --git a/front/js/settings_utils.js b/front/js/settings_utils.js
index cfc0f7ff..29fc7f41 100755
--- a/front/js/settings_utils.js
+++ b/front/js/settings_utils.js
@@ -201,6 +201,13 @@
}
}
+ // -------------------------------------------------------------------
+ // Utility function to check if the value is already Base64
+ function isBase64(value) {
+ const base64Regex = /^(?:[A-Za-z0-9+\/]{4})*?(?:[A-Za-z0-9+\/]{2}==|[A-Za-z0-9+\/]{3}=)?$/;
+ return base64Regex.test(value);
+ }
+
// -------------------------------------------------------------------
// Validation
// -------------------------------------------------------------------
@@ -245,35 +252,37 @@ function settingsCollectedCorrectly(settingsArray, settingsJSON_DB) {
// -------------------------------------------------------------------
// ---------------------------------------------------------
+// Add item to list
function addList(element, clearInput = true)
{
-
const fromId = $(element).attr('my-input-from');
- const toId = $(element).attr('my-input-to');
+ const toId = $(element).attr('my-input-to');
+ const input = $(`#${fromId}`).val();
+
+ console.log(`fromId | toId | input : ${fromId} | ${toId} | ${input}`);
+
+ const newOption = $("").attr("value", input).text(input);
-
- input = $(`#${fromId}`).val();
-
- console.log(input);
- console.log(toId);
- console.log($(`#${toId}`));
-
- $(`#${toId}`).append($("").attr("value", input).text(input));
+ const el = $(`#${toId}`).append(newOption);
// clear input
if (clearInput)
{
$(`#${fromId}`).val("");
}
+
+ // Initialize interaction options only for the newly added option
+ initListInteractionOptions(newOption);
settingsChanged();
}
+
// ---------------------------------------------------------
function removeFromList(element)
{
settingsChanged();
- $(`#${$(element).attr('my-input')}`).find("option:last").remove();
+ $(`#${$(element).attr('my-input-to')}`).find("option:last").remove();
}
// ---------------------------------------------------------
@@ -320,7 +329,7 @@ function removeOptionItem(option) {
function removeAllOptions(element)
{
settingsChanged();
- $(`#${$(element).attr('my-input')}`).empty();
+ $(`#${$(element).attr('my-input-to')}`).empty();
}
@@ -331,12 +340,14 @@ function removeAllOptions(element)
let clickCounter = 0;
// Function to initialize list interaction options
-function initListInteractionOptions(selectorId) {
- // Select all options within the specified selector
- const $options = $(`#${selectorId} option`);
-
- // Add class to make options interactable
- $options.addClass('interactable-option');
+function initListInteractionOptions(element) {
+ if(element)
+ {
+ $options = $(element);
+ } else
+ {
+ $options = $(`.interactable-option`);
+ }
// Attach click event listener to options
$options.on('click', function() {
@@ -350,8 +361,6 @@ function initListInteractionOptions(selectorId) {
// Perform action based on click count
if (clickCounter === 1) {
// Single-click action
- // btoa(iconHtml.replace(/"/g, "'") <-- encode
- // atob() <--- decode
showModalFieldInput(
` ${getString('Gen_Update_Value')}`,
getString('settings_update_item_warning'),
@@ -371,6 +380,7 @@ function initListInteractionOptions(selectorId) {
clickCounter = 0;
}, 300); // Adjust delay as needed
});
+
}
@@ -490,39 +500,165 @@ function getParam(targetId, key, skipCache = false) {
}
- // ---------------------------------------------------------
- // generate a list of options for a input select
- function generateOptions(pluginsData, set, input, isMultiSelect = false, isValueSource = true)
- {
- multi = isMultiSelect ? "multiple" : "";
+ // ---------------------------------------------------------
+ // generate a list of options for a input select
+ function generateOptions(pluginsData, set, input, dataType, isMultiSelect = false, editable = false, transformers = []) {
+ let multi = isMultiSelect ? "multiple" : "";
+ let valuesArray = createArray(set['Value']);
+ let settingKey = set['Code_Name'];
+ // editable ? classNames += " interactable-option" : classNames = ""
+
+ // generate different ID depending on if it's the source for the value to be saved or only used as an input
+ // isValueSource ? id = settingKey : id = settingKey + '_input';
- // optionsArray = getSettingOptions(set['Code_Name'] )
- valuesArray = createArray(set['Value']);
-
-
- // create unique ID
- var targetLocation = set['Code_Name'] + "_initSettingDropdown";
-
- // execute AJAX callabck + SQL query resolution
- initSettingDropdown(set['Code_Name'] , valuesArray, targetLocation, generateDropdownOptions);
-
- // generate different ID depending on if it's the source for the value to be saved or only used as an input
- isValueSource ? id = set['Code_Name'] : id = set['Code_Name'] + '_input';
+ // main selection dropdown wrapper
+ input += `
+ `;
+
+ // add values from the setting options - execute AJAX callback + SQL query resolution
+ // initSettingDropdown(settingKey, valuesArray, targetLocation, generateDropdownOptions);
+
+ return input;
+ }
+
+// ------------------------------------------------------------
+// Function to apply transformers to a value
+function applyTransformers(val, transformers) {
+ transformers.forEach(transformer => {
+ switch (transformer) {
+ case 'sha256':
+ // Implement sha256 hashing logic
+ if (!isSHA256(val)) {
+ val = CryptoJS.SHA256(val).toString(CryptoJS.enc.Hex);
+ }
+ break;
+ case 'base64':
+ // Implement base64 logic
+ if (!isBase64(val)) {
+ val = btoa(val);
+ }
+ break;
+ default:
+ console.warn(`Unknown transformer: ${transformer}`);
+ }
+ });
+ return val;
+}
+
+
+
+// ------------------------------------------------------------
+// Function to initialize relevant variables based on HTML element
+const handleElementOptions = (codeName, elementOptions, transformers, val) => {
+ let inputType = 'text';
+ let readOnly = "";
+ let isMultiSelect = false;
+ let cssClasses = '';
+ let placeholder = '';
+ let suffix = '';
+ let separator = '';
+ let editable = false;
+ let valRes = val;
+ let sourceIds = [];
+ let getStringKey = "";
+ let onClick = "alert('Not implemented');";
+
+ elementOptions.forEach(option => {
+ if (option.prefillValue) {
+ valRes = option.prefillValue === 'null' ? "" : option.prefillValue;
+ }
+ if (option.type) {
+ inputType = option.type;
+ }
+ if (option.readonly === "true") {
+ readOnly = `readonly`;
+ }
+ if (option.multiple === "true") {
+ isMultiSelect = true;
+ }
+ if (option.editable === "true") {
+ editable = true;
+ }
+ if (option.cssClasses) {
+ cssClasses = option.cssClasses;
+ }
+ if (option.placeholder) {
+ placeholder = option.placeholder;
+ }
+ if (option.suffix) {
+ suffix = option.suffix;
+ }
+ if (option.sourceSuffixes) {
+ $.each(option.sourceSuffixes, function(index, suf) {
+ sourceIds.push(codeName + suf)
+ })
+ }
+ if (option.separator) {
+ separator = option.separator;
+ }
+ if (option.getStringKey) {
+ getStringKey = option.getStringKey;
+ }
+ if (option.onClick) {
+ onClick = option.onClick;
+ }
+ });
+
+ if (transformers.includes('sha256')) {
+ inputType = 'password';
}
+ return {
+ inputType,
+ readOnly,
+ isMultiSelect,
+ cssClasses,
+ placeholder,
+ suffix,
+ sourceIds,
+ separator,
+ editable,
+ valRes,
+ getStringKey,
+ onClick
+ };
+};
+
+
diff --git a/front/js/ui_components.js b/front/js/ui_components.js
index b011777a..eeb43294 100755
--- a/front/js/ui_components.js
+++ b/front/js/ui_components.js
@@ -79,7 +79,7 @@ function initDeviceSelectors() {
// -----------------------------------------------------------------------------
-// Initiate dropdown
+// (ASYNC) Initiate dropdown
function initSettingDropdown(settingKey, // Identifier for the setting
valuesArray, // Array of values to be pre-selected in the dropdown
targetLocation, // ID of the HTML element where dropdown should be rendered (will be replaced)
@@ -93,9 +93,15 @@ function initSettingDropdown(settingKey, // Identifier for the setting
// NOTE {value} options to replace with a setting or SQL value are handled in the cacheSettings() function
optionsArray = createArray(getSettingOptions(settingKey))
+
// check if the result is a SQL query
- if(isSQLQuery(optionsArray[0]))
+ if(optionsArray.length > 0 && isSQLQuery(optionsArray[0]))
{
+
+ if (settingKey == "NEWDEV_dev_Network_Node_MAC_ADDR") {
+ console.log("isSQLQuery in initSettingDropdown");
+
+ }
readData(optionsArray[0], callbackToGenerateEntries, valuesArray, targetLocation, targetField, nameTransformer);
} else // this should be already an array, e.g. from a setting or pre-defined
@@ -103,16 +109,18 @@ function initSettingDropdown(settingKey, // Identifier for the setting
optionsArray.forEach(option => {
let selected = valuesArray.includes(option) ? 'selected' : '';
optionsHtml += ``;
- });
-
+ });
+
// Replace the specified placeholder div with the resulting HTML
setTimeout(() => {
$("#" + targetLocation).replaceWith(optionsHtml);
- }, 50);
-
+ }, 50);
}
+
+
+
}
diff --git a/front/multiEditCore.php b/front/multiEditCore.php
index e1a7eb8a..aac32609 100755
--- a/front/multiEditCore.php
+++ b/front/multiEditCore.php
@@ -1,5 +1,5 @@
-
+
@@ -102,22 +102,31 @@
// Append form groups to the column
for (let j = i * elementsPerColumn; j < Math.min((i + 1) * elementsPerColumn, columns.length); j++) {
- let inputType;
+ const setTypeObject = JSON.parse(columns[j].Type.replace(/'/g, '"'));
+ // console.log(setTypeObject);
+ const lastElementObj = setTypeObject.elements[setTypeObject.elements.length - 1]
- switch (columns[j].Type) {
- case 'integer.checkbox':
- case 'checkbox':
- inputType = 'checkbox';
- break;
- case 'text.select':
- inputType = 'text.select';
- break;
- default:
- inputType = 'text';
- break;
- }
-
- if (inputType === 'text.select') {
+ const { elementType, elementOptions = [], transformers = [] } = lastElementObj;
+ const {
+ inputType,
+ readOnly,
+ isMultiSelect,
+ cssClasses,
+ placeholder,
+ suffix,
+ sourceIds,
+ separator,
+ editable,
+ valRes,
+ getStringKey,
+ onClick
+ } = handleElementOptions('none', elementOptions, transformers, val = "");
+
+ // console.log(setTypeObject);
+ // console.log(inputType);
+
+ // render based on element type
+ if (lastElementObj.elementType === 'select') {
targetLocation = columns[j].Code_Name + "_initSettingDropdown"
@@ -147,15 +156,11 @@
}
- } else {
+ } else if (lastElementObj.elementType === 'input'){
// Add classes specifically for checkboxes
- if (inputType === 'checkbox') {
- inputClass = 'checkbox';
-
- } else {
- inputClass = 'form-control';
- }
+ inputType === 'checkbox' ? inputClass = 'checkbox' : inputClass = 'form-control';
+
input = `
3 && is_array($settingValue) == true) {
+ foreach ($settingValue as $val) {
+ $temp .= "'" . encode_single_quotes($val) . "',";
+ }
- if ($group == $settingGroup) {
- if ($settingType == 'text' || $settingType == 'password' || $settingType == 'password.SHA256' || $settingType == 'readonly' || $settingType == 'text.select') {
- $val = encode_single_quotes($settingValue);
- $txt .= $settingKey . "='" . $val . "'\n";
- } elseif ($settingType == 'integer' || $settingType == 'integer.select') {
- $txt .= $settingKey . "=" . $settingValue . "\n";
- } elseif ($settingType == 'boolean' || $settingType == 'integer.checkbox') {
+ $temp = substr_replace($temp, "", -1); // remove last comma ','
+ }
- if ($settingValue === true || $settingValue === 1 || strtolower($settingValue) === 'true') {
- $val = "True";
- } else {
- $val = "False";
- }
-
- $txt .= $settingKey . "=" . $val . "\n";
- } elseif ($settingType == 'text.multiselect' || $settingType == 'subnets' || $settingType == 'list' || $settingType == 'list.select' || $settingType == 'list.base64') {
- $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";
- } elseif ($settingType == 'json') {
- $txt .= $settingKey . "=" . $settingValue . "\n";
- }
- }
- }
+ $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/plugins/__template/config.json b/front/plugins/__template/config.json
index 8938a1c4..dd2d1745 100755
--- a/front/plugins/__template/config.json
+++ b/front/plugins/__template/config.json
@@ -39,7 +39,7 @@
{
"function": "RUN",
"events": ["run"],
- "type": "text.select",
+ "type": {"dataType":"string", "elements": [{"elementType" : "select", "elementOptions" : [] ,"transformers": []}]},
"default_value": "disabled",
"options": [
@@ -66,7 +66,7 @@
},
{
"function": "RUN_SCHD",
- "type": "text",
+ "type": {"dataType":"string", "elements": [{"elementType" : "input", "elementOptions" : [] ,"transformers": []}]},
"default_value": "*/5 * * * *",
"options": [],
"localized": ["name", "description"],
@@ -85,7 +85,7 @@
},
{
"function": "text_example",
- "type": "text",
+ "type": {"dataType":"string", "elements": [{"elementType" : "input", "elementOptions" : [] ,"transformers": []}]},
"maxLength": 50,
"default_value": "",
"options": [],
@@ -105,7 +105,7 @@
},
{
"function": "boolean_example",
- "type": "boolean",
+ "type": {"dataType":"boolean", "elements": [{"elementType" : "input", "elementOptions" : [{"type":"checkbox"}] ,"transformers": []}]},
"default_value": false,
"options": [],
"localized": ["name", "description"],
@@ -124,7 +124,7 @@
},
{
"function": "list_example",
- "type": "list",
+ "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": ["existing_entry_1", "existing_entry_2"],
"options": [],
"localized": ["name", "description"],
@@ -143,7 +143,7 @@
},
{
"function": "multiselect_example_from_setting",
- "type": "text.multiselect",
+ "type": {"dataType":"array", "element": "select", "elementOptions" : ["multiple"] ,"transformers": []},
"maxLength": 50,
"default_value": [],
"options": ["{value}"],
@@ -170,7 +170,7 @@
},
{
"function": "CMD",
- "type": "readonly",
+ "type": {"dataType":"string", "element": "input", "elementOptions" : ["readonly"] ,"transformers": []},
"default_value": "python3 /app/front/plugins/
/rename_me.py",
"options": [],
"localized": ["name", "description"],
@@ -189,7 +189,7 @@
},
{
"function": "RUN_TIMEOUT",
- "type": "integer",
+ "type": {"dataType":"integer", "elements": [{"elementType" : "input", "elementOptions" : [{"type": "number"}] ,"transformers": []}]},
"default_value": 30,
"options": [],
"localized": ["name", "description"],
diff --git a/front/plugins/_publisher_apprise/config.json b/front/plugins/_publisher_apprise/config.json
index 7ad14747..572e80c4 100755
--- a/front/plugins/_publisher_apprise/config.json
+++ b/front/plugins/_publisher_apprise/config.json
@@ -288,7 +288,7 @@
{
"function": "RUN",
"events": ["test"],
- "type": "text.select",
+ "type": {"dataType":"string", "elements": [{"elementType" : "select", "elementOptions" : [] ,"transformers": []}]},
"default_value": "disabled",
"options": ["disabled", "on_notification"],
"localized": ["name", "description"],
@@ -315,7 +315,7 @@
},
{
"function": "CMD",
- "type": "readonly",
+ "type": {"dataType":"string", "elements": [{"elementType" : "input", "elementOptions" : [{"readonly": "true"}] ,"transformers": []}]},
"default_value": "python3 /app/front/plugins/_publisher_apprise/apprise.py",
"options": [],
"localized": ["name", "description"],
@@ -342,7 +342,7 @@
},
{
"function": "RUN_TIMEOUT",
- "type": "integer",
+ "type": {"dataType":"integer", "elements": [{"elementType" : "input", "elementOptions" : [{"type": "number"}] ,"transformers": []}]},
"default_value": 10,
"options": [],
"localized": ["name", "description"],
@@ -373,7 +373,7 @@
},
{
"function": "HOST",
- "type": "text",
+ "type": {"dataType":"string", "elements": [{"elementType" : "input", "elementOptions" : [] ,"transformers": []}]},
"default_value": "",
"options": [],
"localized": ["name", "description"],
@@ -400,7 +400,7 @@
},
{
"function": "URL",
- "type": "text",
+ "type": {"dataType":"string", "elements": [{"elementType" : "input", "elementOptions" : [] ,"transformers": []}]},
"default_value": "",
"options": [],
"localized": ["name", "description"],
@@ -427,7 +427,7 @@
},
{
"function": "PAYLOAD",
- "type": "text.select",
+ "type": {"dataType":"string", "elements": [{"elementType" : "select", "elementOptions" : [] ,"transformers": []}]},
"default_value": "html",
"options": ["html", "text"],
"localized": ["name", "description"],
@@ -454,7 +454,7 @@
},
{
"function": "SIZE",
- "type": "integer",
+ "type": {"dataType":"integer", "elements": [{"elementType" : "input", "elementOptions" : [{"type": "number"}] ,"transformers": []}]},
"default_value": 1024,
"options": [],
"localized": ["name", "description"],
diff --git a/front/plugins/_publisher_email/config.json b/front/plugins/_publisher_email/config.json
index 9e4b97d8..192b5c07 100755
--- a/front/plugins/_publisher_email/config.json
+++ b/front/plugins/_publisher_email/config.json
@@ -288,7 +288,7 @@
{
"function": "RUN",
"events": ["test"],
- "type": "text.select",
+ "type": {"dataType":"string", "elements": [{"elementType" : "select", "elementOptions" : [] ,"transformers": []}]},
"default_value": "disabled",
"options": ["disabled", "on_notification"],
"localized": ["name", "description"],
@@ -315,7 +315,7 @@
},
{
"function": "CMD",
- "type": "readonly",
+ "type": {"dataType":"string", "elements": [{"elementType" : "input", "elementOptions" : [{"readonly": "true"}] ,"transformers": []}]},
"default_value": "python3 /app/front/plugins/_publisher_email/email_smtp.py",
"options": [],
"localized": ["name", "description"],
@@ -342,7 +342,7 @@
},
{
"function": "RUN_TIMEOUT",
- "type": "integer",
+ "type": {"dataType":"integer", "elements": [{"elementType" : "input", "elementOptions" : [{"type": "number"}] ,"transformers": []}]},
"default_value": 20,
"options": [],
"localized": ["name", "description"],
@@ -373,7 +373,7 @@
},
{
"function": "SERVER",
- "type": "text",
+ "type": {"dataType":"string", "elements": [{"elementType" : "input", "elementOptions" : [] ,"transformers": []}]},
"default_value": "",
"options": [],
"localized": ["name", "description"],
@@ -400,7 +400,7 @@
},
{
"function": "PORT",
- "type": "integer",
+ "type": {"dataType":"integer", "elements": [{"elementType" : "input", "elementOptions" : [{"type": "number"}] ,"transformers": []}]},
"default_value": 587,
"options": [],
"localized": ["name", "description"],
@@ -427,7 +427,7 @@
},
{
"function": "SKIP_LOGIN",
- "type": "boolean",
+ "type": {"dataType":"boolean", "elements": [{"elementType" : "input", "elementOptions" : [{"type":"checkbox"}] ,"transformers": []}]},
"default_value": false,
"options": [],
"localized": ["name", "description"],
@@ -454,7 +454,7 @@
},
{
"function": "USER",
- "type": "text",
+ "type": {"dataType":"string", "elements": [{"elementType" : "input", "elementOptions" : [] ,"transformers": []}]},
"default_value": "",
"options": [],
"localized": ["name", "description"],
@@ -481,7 +481,7 @@
},
{
"function": "PASS",
- "type": "password",
+ "type": {"dataType":"string", "elements": [{"elementType" : "input", "elementOptions" : [{"type":"password"}] ,"transformers": []}]},
"default_value": "",
"options": [],
"localized": ["name", "description"],
@@ -508,7 +508,7 @@
},
{
"function": "SKIP_TLS",
- "type": "boolean",
+ "type": {"dataType":"boolean", "elements": [{"elementType" : "input", "elementOptions" : [{"type":"checkbox"}] ,"transformers": []}]},
"default_value": false,
"options": [],
"localized": ["name", "description"],
@@ -535,7 +535,7 @@
},
{
"function": "FORCE_SSL",
- "type": "boolean",
+ "type": {"dataType":"boolean", "elements": [{"elementType" : "input", "elementOptions" : [{"type":"checkbox"}] ,"transformers": []}]},
"default_value": false,
"options": [],
"localized": ["name", "description"],
@@ -562,7 +562,7 @@
},
{
"function": "REPORT_TO",
- "type": "text",
+ "type": {"dataType":"string", "elements": [{"elementType" : "input", "elementOptions" : [] ,"transformers": []}]},
"default_value": "user@gmail.com",
"options": [],
"localized": ["name", "description"],
@@ -589,7 +589,7 @@
},
{
"function": "REPORT_FROM",
- "type": "text",
+ "type": {"dataType":"string", "elements": [{"elementType" : "input", "elementOptions" : [] ,"transformers": []}]},
"default_value": "NetAlertX ",
"options": [],
"localized": ["name", "description"],
diff --git a/front/plugins/_publisher_email/email_smtp.py b/front/plugins/_publisher_email/email_smtp.py
index a098b59c..11e6e45f 100755
--- a/front/plugins/_publisher_email/email_smtp.py
+++ b/front/plugins/_publisher_email/email_smtp.py
@@ -56,6 +56,19 @@ def main():
# Retrieve new notifications
new_notifications = notifications.getNew()
+ # mylog('verbose', [f'[{pluginName}] new_notifications: ', new_notifications])
+ # mylog('verbose', [f'[{pluginName}] SMTP_SERVER: ', get_setting_value("SMTP_SERVER")])
+ # mylog('verbose', [f'[{pluginName}] SMTP_PORT: ', get_setting_value("SMTP_PORT")])
+ # mylog('verbose', [f'[{pluginName}] SMTP_SKIP_LOGIN: ', get_setting_value("SMTP_SKIP_LOGIN")])
+ # mylog('verbose', [f'[{pluginName}] SMTP_USER: ', get_setting_value("SMTP_USER")])
+ # mylog('verbose', [f'[{pluginName}] SMTP_PASS: ', get_setting_value("SMTP_PASS")])
+
+ # mylog('verbose', [f'[{pluginName}] SMTP_SKIP_TLS: ', get_setting_value("SMTP_SKIP_TLS")])
+ # mylog('verbose', [f'[{pluginName}] SMTP_FORCE_SSL: ', get_setting_value("SMTP_FORCE_SSL")])
+ # mylog('verbose', [f'[{pluginName}] SMTP_REPORT_TO: ', get_setting_value("SMTP_REPORT_TO")])
+ # mylog('verbose', [f'[{pluginName}] SMTP_REPORT_FROM: ', get_setting_value("SMTP_REPORT_FROM")])
+
+
# Process the new notifications (see the Notifications DB table for structure or check the /api/table_notifications.json endpoint)
for notification in new_notifications:
diff --git a/front/plugins/_publisher_mqtt/config.json b/front/plugins/_publisher_mqtt/config.json
index 3fe65744..bd4ae866 100755
--- a/front/plugins/_publisher_mqtt/config.json
+++ b/front/plugins/_publisher_mqtt/config.json
@@ -278,7 +278,7 @@
{
"function": "RUN",
"events": ["test"],
- "type": "text.select",
+ "type": {"dataType":"string", "elements": [{"elementType" : "select", "elementOptions" : [] ,"transformers": []}]},
"default_value": "disabled",
"options": [
"disabled",
@@ -312,7 +312,7 @@
},
{
"function": "CMD",
- "type": "readonly",
+ "type": {"dataType":"string", "elements": [{"elementType" : "input", "elementOptions" : [{"readonly": "true"}] ,"transformers": []}]},
"default_value": "python3 /app/front/plugins/_publisher_mqtt/mqtt.py devices={devices}",
"options": [],
"localized": ["name", "description"],
@@ -339,7 +339,7 @@
},
{
"function": "RUN_SCHD",
- "type": "text",
+ "type": {"dataType":"string", "elements": [{"elementType" : "input", "elementOptions" : [] ,"transformers": []}]},
"default_value": "0 2 * * 3",
"options": [],
"localized": ["name", "description"],
@@ -374,7 +374,7 @@
},
{
"function": "RUN_TIMEOUT",
- "type": "integer",
+ "type": {"dataType":"integer", "elements": [{"elementType" : "input", "elementOptions" : [{"type": "number"}] ,"transformers": []}]},
"default_value": 20,
"options": [],
"localized": ["name", "description"],
@@ -405,7 +405,7 @@
},
{
"function": "BROKER",
- "type": "text",
+ "type": {"dataType":"string", "elements": [{"elementType" : "input", "elementOptions" : [] ,"transformers": []}]},
"default_value": "",
"options": [],
"localized": ["name", "description"],
@@ -432,7 +432,7 @@
},
{
"function": "PORT",
- "type": "integer",
+ "type": {"dataType":"integer", "elements": [{"elementType" : "input", "elementOptions" : [{"type": "number"}] ,"transformers": []}]},
"default_value": 1883,
"options": [],
"localized": ["name", "description"],
@@ -459,7 +459,7 @@
},
{
"function": "USER",
- "type": "text",
+ "type": {"dataType":"string", "elements": [{"elementType" : "input", "elementOptions" : [] ,"transformers": []}]},
"default_value": "",
"options": [],
"localized": ["name", "description"],
@@ -486,7 +486,7 @@
},
{
"function": "PASSWORD",
- "type": "password",
+ "type": {"dataType":"string", "elements": [{"elementType" : "input", "elementOptions" : [{"type":"password"}] ,"transformers": []}]},
"default_value": "",
"options": [],
"localized": ["name", "description"],
@@ -513,7 +513,7 @@
},
{
"function": "SEND_STATS",
- "type": "boolean",
+ "type": {"dataType":"boolean", "elements": [{"elementType" : "input", "elementOptions" : [{"type":"checkbox"}] ,"transformers": []}]},
"default_value": true,
"options": [],
"localized": ["name", "description"],
@@ -532,7 +532,7 @@
},
{
"function": "DEVICE_ID",
- "type": "text",
+ "type": {"dataType":"string", "elements": [{"elementType" : "input", "elementOptions" : [] ,"transformers": []}]},
"default_value": "netalertx",
"options": [],
"localized": ["name", "description"],
@@ -551,7 +551,7 @@
},
{
"function": "DEVICE_NAME",
- "type": "text",
+ "type": {"dataType":"string", "elements": [{"elementType" : "input", "elementOptions" : [] ,"transformers": []}]},
"default_value": "NetAlertX",
"options": [],
"localized": ["name", "description"],
@@ -570,7 +570,7 @@
},
{
"function": "SEND_DEVICES",
- "type": "boolean",
+ "type": {"dataType":"boolean", "elements": [{"elementType" : "input", "elementOptions" : [{"type":"checkbox"}] ,"transformers": []}]},
"default_value": true,
"options": [],
"localized": ["name", "description"],
@@ -589,7 +589,7 @@
},
{
"function": "QOS",
- "type": "integer.select",
+ "type": {"dataType":"integer", "elements": [{"elementType" : "select", "elementOptions" : [] ,"transformers": []}]},
"default_value": 0,
"options": [0, 1, 2],
"localized": ["name", "description"],
@@ -616,7 +616,7 @@
},
{
"function": "VERSION",
- "type": "integer.select",
+ "type": {"dataType":"integer", "elements": [{"elementType" : "select", "elementOptions" : [] ,"transformers": []}]},
"default_value": 1,
"options": [1, 2],
"localized": ["name", "description"],
@@ -635,7 +635,7 @@
},
{
"function": "DELAY_SEC",
- "type": "integer",
+ "type": {"dataType":"integer", "elements": [{"elementType" : "input", "elementOptions" : [{"type": "number"}] ,"transformers": []}]},
"default_value": 2,
"options": [2, 3, 4, 5],
"localized": ["name", "description"],
diff --git a/front/plugins/_publisher_ntfy/config.json b/front/plugins/_publisher_ntfy/config.json
index 8c3e53f2..667d095c 100755
--- a/front/plugins/_publisher_ntfy/config.json
+++ b/front/plugins/_publisher_ntfy/config.json
@@ -242,7 +242,7 @@
{
"function": "RUN",
"events": ["test"],
- "type": "text.select",
+ "type": {"dataType":"string", "elements": [{"elementType" : "select", "elementOptions" : [] ,"transformers": []}]},
"default_value": "disabled",
"options": ["disabled", "on_notification"],
"localized": ["name", "description"],
@@ -269,7 +269,7 @@
},
{
"function": "CMD",
- "type": "readonly",
+ "type": {"dataType":"string", "elements": [{"elementType" : "input", "elementOptions" : [{"readonly": "true"}] ,"transformers": []}]},
"default_value": "python3 /app/front/plugins/_publisher_ntfy/ntfy.py",
"options": [],
"localized": ["name", "description"],
@@ -296,7 +296,7 @@
},
{
"function": "RUN_TIMEOUT",
- "type": "integer",
+ "type": {"dataType":"integer", "elements": [{"elementType" : "input", "elementOptions" : [{"type": "number"}] ,"transformers": []}]},
"default_value": 10,
"options": [],
"localized": ["name", "description"],
@@ -327,7 +327,7 @@
},
{
"function": "HOST",
- "type": "text",
+ "type": {"dataType":"string", "elements": [{"elementType" : "input", "elementOptions" : [] ,"transformers": []}]},
"default_value": "https://ntfy.sh",
"options": [],
"localized": ["name", "description"],
@@ -354,7 +354,7 @@
},
{
"function": "TOPIC",
- "type": "text",
+ "type": {"dataType":"string", "elements": [{"elementType" : "input", "elementOptions" : [] ,"transformers": []}]},
"default_value": "",
"options": [],
"localized": ["name", "description"],
@@ -381,7 +381,7 @@
},
{
"function": "USER",
- "type": "text",
+ "type": {"dataType":"string", "elements": [{"elementType" : "input", "elementOptions" : [] ,"transformers": []}]},
"default_value": "",
"options": [],
"localized": ["name", "description"],
@@ -408,7 +408,7 @@
},
{
"function": "PASSWORD",
- "type": "password",
+ "type": {"dataType":"string", "elements": [{"elementType" : "input", "elementOptions" : [{"type":"password"}] ,"transformers": []}]},
"default_value": "",
"options": [],
"localized": ["name", "description"],
@@ -435,7 +435,7 @@
},
{
"function": "PRIORITY",
- "type": "text.select",
+ "type": {"dataType":"string", "elements": [{"elementType" : "select", "elementOptions" : [] ,"transformers": []}]},
"default_value": "urgent",
"options": ["urgent", "high", "default", "low", "min"],
"localized": ["name", "description"],
diff --git a/front/plugins/_publisher_pushover/config.json b/front/plugins/_publisher_pushover/config.json
index 7e47e8d0..e9b1ed95 100755
--- a/front/plugins/_publisher_pushover/config.json
+++ b/front/plugins/_publisher_pushover/config.json
@@ -242,7 +242,7 @@
{
"function": "RUN",
"events": ["test"],
- "type": "text.select",
+ "type": {"dataType":"string", "elements": [{"elementType" : "select", "elementOptions" : [] ,"transformers": []}]},
"default_value": "disabled",
"options": ["disabled", "on_notification"],
"localized": ["name", "description"],
@@ -269,7 +269,7 @@
},
{
"function": "CMD",
- "type": "readonly",
+ "type": {"dataType":"string", "elements": [{"elementType" : "input", "elementOptions" : [{"readonly": "true"}] ,"transformers": []}]},
"default_value": "python3 /app/front/plugins/_publisher_pushover/pushover.py",
"options": [],
"localized": ["name", "description"],
@@ -296,7 +296,7 @@
},
{
"function": "RUN_TIMEOUT",
- "type": "integer",
+ "type": {"dataType":"integer", "elements": [{"elementType" : "input", "elementOptions" : [{"type": "number"}] ,"transformers": []}]},
"default_value": 10,
"options": [],
"localized": ["name", "description"],
@@ -323,7 +323,7 @@
},
{
"function": "USER_KEY",
- "type": "text",
+ "type": {"dataType":"string", "elements": [{"elementType" : "input", "elementOptions" : [] ,"transformers": []}]},
"default_value": "USER_KEY",
"options": [],
"localized": ["name", "description"],
@@ -342,7 +342,7 @@
},
{
"function": "APP_TOKEN",
- "type": "text",
+ "type": {"dataType":"string", "elements": [{"elementType" : "input", "elementOptions" : [] ,"transformers": []}]},
"default_value": "APP_TOKEN",
"options": [],
"localized": ["name", "description"],
@@ -361,7 +361,7 @@
},
{
"function": "DEVICE_NAME",
- "type": "text",
+ "type": {"dataType":"string", "elements": [{"elementType" : "input", "elementOptions" : [] ,"transformers": []}]},
"default_value": "DEVICE_NAME",
"options": [],
"localized": ["name", "description"],
diff --git a/front/plugins/_publisher_pushsafer/config.json b/front/plugins/_publisher_pushsafer/config.json
index be390332..1774ea57 100755
--- a/front/plugins/_publisher_pushsafer/config.json
+++ b/front/plugins/_publisher_pushsafer/config.json
@@ -242,7 +242,7 @@
{
"function": "RUN",
"events": ["test"],
- "type": "text.select",
+ "type": {"dataType":"string", "elements": [{"elementType" : "select", "elementOptions" : [] ,"transformers": []}]},
"default_value": "disabled",
"options": ["disabled", "on_notification"],
"localized": ["name", "description"],
@@ -269,7 +269,7 @@
},
{
"function": "CMD",
- "type": "readonly",
+ "type": {"dataType":"string", "elements": [{"elementType" : "input", "elementOptions" : [{"readonly": "true"}] ,"transformers": []}]},
"default_value": "python3 /app/front/plugins/_publisher_pushsafer/pushsafer.py",
"options": [],
"localized": ["name", "description"],
@@ -296,7 +296,7 @@
},
{
"function": "RUN_TIMEOUT",
- "type": "integer",
+ "type": {"dataType":"integer", "elements": [{"elementType" : "input", "elementOptions" : [{"type": "number"}] ,"transformers": []}]},
"default_value": 10,
"options": [],
"localized": ["name", "description"],
@@ -327,7 +327,7 @@
},
{
"function": "TOKEN",
- "type": "text",
+ "type": {"dataType":"string", "elements": [{"elementType" : "input", "elementOptions" : [] ,"transformers": []}]},
"default_value": "ApiKey",
"options": [],
"localized": ["name", "description"],
diff --git a/front/plugins/_publisher_webhook/config.json b/front/plugins/_publisher_webhook/config.json
index 9dfe6aaf..fface170 100755
--- a/front/plugins/_publisher_webhook/config.json
+++ b/front/plugins/_publisher_webhook/config.json
@@ -242,7 +242,7 @@
{
"function": "RUN",
"events": ["test"],
- "type": "text.select",
+ "type": {"dataType":"string", "elements": [{"elementType" : "select", "elementOptions" : [] ,"transformers": []}]},
"default_value": "disabled",
"options": ["disabled", "on_notification"],
"localized": ["name", "description"],
@@ -269,7 +269,7 @@
},
{
"function": "CMD",
- "type": "readonly",
+ "type": {"dataType":"string", "elements": [{"elementType" : "input", "elementOptions" : [{"readonly": "true"}] ,"transformers": []}]},
"default_value": "python3 /app/front/plugins/_publisher_webhook/webhook.py",
"options": [],
"localized": ["name", "description"],
@@ -296,7 +296,7 @@
},
{
"function": "RUN_TIMEOUT",
- "type": "integer",
+ "type": {"dataType":"integer", "elements": [{"elementType" : "input", "elementOptions" : [{"type": "number"}] ,"transformers": []}]},
"default_value": 10,
"options": [],
"localized": ["name", "description"],
@@ -327,7 +327,7 @@
},
{
"function": "URL",
- "type": "text",
+ "type": {"dataType":"string", "elements": [{"elementType" : "input", "elementOptions" : [] ,"transformers": []}]},
"default_value": "",
"options": [],
"localized": ["name", "description"],
@@ -354,7 +354,7 @@
},
{
"function": "PAYLOAD",
- "type": "text.select",
+ "type": {"dataType":"string", "elements": [{"elementType" : "select", "elementOptions" : [] ,"transformers": []}]},
"default_value": "json",
"options": ["json", "html", "text"],
"localized": ["name", "description"],
@@ -381,7 +381,7 @@
},
{
"function": "REQUEST_METHOD",
- "type": "text.select",
+ "type": {"dataType":"string", "elements": [{"elementType" : "select", "elementOptions" : [] ,"transformers": []}]},
"default_value": "GET",
"options": ["GET", "POST", "PUT"],
"localized": ["name", "description"],
@@ -408,7 +408,7 @@
},
{
"function": "SIZE",
- "type": "integer",
+ "type": {"dataType":"integer", "elements": [{"elementType" : "input", "elementOptions" : [{"type": "number"}] ,"transformers": []}]},
"default_value": 1024,
"options": [],
"localized": ["name", "description"],
@@ -435,7 +435,7 @@
},
{
"function": "SECRET",
- "type": "text",
+ "type": {"dataType":"string", "elements": [{"elementType" : "input", "elementOptions" : [] ,"transformers": []}]},
"default_value": "",
"options": [],
"localized": ["name", "description"],
diff --git a/front/plugins/arp_scan/config.json b/front/plugins/arp_scan/config.json
index 14f47a8c..5c2da327 100755
--- a/front/plugins/arp_scan/config.json
+++ b/front/plugins/arp_scan/config.json
@@ -69,7 +69,7 @@
"settings": [
{
"function": "RUN",
- "type": "text.select",
+ "type": {"dataType":"string", "elements": [{"elementType" : "select", "elementOptions" : [] ,"transformers": []}]},
"default_value": "disabled",
"options": [
"disabled",
@@ -111,7 +111,7 @@
},
{
"function": "CMD",
- "type": "readonly",
+ "type": {"dataType":"string", "elements": [{"elementType" : "input", "elementOptions" : [{"readonly": "true"}] ,"transformers": []}]},
"default_value": "python3 /app/front/plugins/arp_scan/script.py userSubnets={subnets}",
"options": [],
"localized": ["name", "description"],
@@ -146,7 +146,7 @@
},
{
"function": "RUN_TIMEOUT",
- "type": "integer",
+ "type": {"dataType":"integer", "elements": [{"elementType" : "input", "elementOptions" : [{"type": "number"}] ,"transformers": []}]},
"default_value": 300,
"options": [],
"localized": ["name", "description"],
@@ -181,7 +181,7 @@
},
{
"function": "RUN_SCHD",
- "type": "text",
+ "type": {"dataType":"string", "elements": [{"elementType" : "input", "elementOptions" : [] ,"transformers": []}]},
"default_value": "*/5 * * * *",
"options": [],
"localized": ["name", "description"],
@@ -216,7 +216,7 @@
},
{
"function": "WATCH",
- "type": "text.multiselect",
+ "type": {"dataType":"array", "elements": [{"elementType" : "select", "elementOptions" : [{"multiple":"true"}] ,"transformers": []}]},
"default_value": ["Watched_Value1", "Watched_Value2"],
"options": [
"Watched_Value1",
@@ -256,7 +256,7 @@
},
{
"function": "REPORT_ON",
- "type": "text.multiselect",
+ "type": {"dataType":"array", "elements": [{"elementType" : "select", "elementOptions" : [{"multiple":"true"}] ,"transformers": []}]},
"default_value": ["new"],
"options": [
"new",
@@ -296,7 +296,7 @@
},
{
"function": "ARGS",
- "type": "text",
+ "type": {"dataType":"string", "elements": [{"elementType" : "input", "elementOptions" : [] ,"transformers": []}]},
"default_value": "sudo arp-scan --ignoredups --retry=6",
"options": [],
"localized": ["name", "description"],
diff --git a/front/plugins/csv_backup/config.json b/front/plugins/csv_backup/config.json
index 99968bbe..322238e1 100755
--- a/front/plugins/csv_backup/config.json
+++ b/front/plugins/csv_backup/config.json
@@ -58,7 +58,7 @@
{
"function": "RUN",
"events": ["run"],
- "type": "text.select",
+ "type": {"dataType":"string", "elements": [{"elementType" : "select", "elementOptions" : [] ,"transformers": []}]},
"default_value": "schedule",
"options": [
"disabled",
@@ -99,7 +99,7 @@
},
{
"function": "CMD",
- "type": "readonly",
+ "type": {"dataType":"string", "elements": [{"elementType" : "input", "elementOptions" : [{"readonly": "true"}] ,"transformers": []}]},
"default_value": "python3 /app/front/plugins/csv_backup/script.py overwrite={overwrite} location={location}",
"options": [],
"localized": ["name", "description"],
@@ -134,7 +134,7 @@
},
{
"function": "RUN_SCHD",
- "type": "text",
+ "type": {"dataType":"string", "elements": [{"elementType" : "input", "elementOptions" : [] ,"transformers": []}]},
"default_value": "0 2 * * 3",
"options": [],
"localized": ["name", "description"],
@@ -169,7 +169,7 @@
},
{
"function": "RUN_TIMEOUT",
- "type": "integer",
+ "type": {"dataType":"integer", "elements": [{"elementType" : "input", "elementOptions" : [{"type": "number"}] ,"transformers": []}]},
"default_value": 30,
"options": [],
"localized": ["name", "description"],
@@ -204,7 +204,7 @@
},
{
"function": "overwrite",
- "type": "boolean",
+ "type": {"dataType":"boolean", "elements": [{"elementType" : "input", "elementOptions" : [{"type":"checkbox"}] ,"transformers": []}]},
"default_value": false,
"options": [],
"localized": ["name", "description"],
@@ -239,7 +239,7 @@
},
{
"function": "location",
- "type": "text",
+ "type": {"dataType":"string", "elements": [{"elementType" : "input", "elementOptions" : [] ,"transformers": []}]},
"default_value": "/app/config",
"options": [],
"localized": ["name", "description"],
diff --git a/front/plugins/db_cleanup/config.json b/front/plugins/db_cleanup/config.json
index 6e047139..179dd903 100755
--- a/front/plugins/db_cleanup/config.json
+++ b/front/plugins/db_cleanup/config.json
@@ -47,7 +47,7 @@
{
"function": "RUN",
"events": ["run"],
- "type": "text.select",
+ "type": {"dataType":"string", "elements": [{"elementType" : "select", "elementOptions" : [] ,"transformers": []}]},
"default_value": "schedule",
"options": ["disabled", "once", "schedule", "always_after_scan"],
"localized": ["name", "description"],
@@ -74,7 +74,7 @@
},
{
"function": "CMD",
- "type": "readonly",
+ "type": {"dataType":"string", "elements": [{"elementType" : "input", "elementOptions" : [{"readonly": "true"}] ,"transformers": []}]},
"default_value": "python3 /app/front/plugins/db_cleanup/script.py pluginskeephistory={pluginskeephistory} hourstokeepnewdevice={hourstokeepnewdevice} daystokeepevents={daystokeepevents} pholuskeepdays={pholuskeepdays}",
"options": [],
"localized": ["name", "description"],
@@ -109,7 +109,7 @@
},
{
"function": "RUN_SCHD",
- "type": "text",
+ "type": {"dataType":"string", "elements": [{"elementType" : "input", "elementOptions" : [] ,"transformers": []}]},
"default_value": "*/30 * * * *",
"options": [],
"localized": ["name", "description"],
@@ -144,7 +144,7 @@
},
{
"function": "RUN_TIMEOUT",
- "type": "integer",
+ "type": {"dataType":"integer", "elements": [{"elementType" : "input", "elementOptions" : [{"type": "number"}] ,"transformers": []}]},
"default_value": 30,
"options": [],
"localized": ["name", "description"],
@@ -179,7 +179,7 @@
},
{
"function": "NOTIFI_HIST",
- "type": "integer",
+ "type": {"dataType":"integer", "elements": [{"elementType" : "input", "elementOptions" : [{"type": "number"}] ,"transformers": []}]},
"default_value": 100,
"options": [],
"localized": ["name", "description"],
diff --git a/front/plugins/ddns_update/config.json b/front/plugins/ddns_update/config.json
index 1420b636..eeb5678f 100755
--- a/front/plugins/ddns_update/config.json
+++ b/front/plugins/ddns_update/config.json
@@ -76,7 +76,7 @@
{
"function": "RUN",
"events": ["run"],
- "type": "text.select",
+ "type": {"dataType":"string", "elements": [{"elementType" : "select", "elementOptions" : [] ,"transformers": []}]},
"default_value": "disabled",
"options": ["disabled", "once", "schedule", "always_after_scan"],
"localized": ["name", "description"],
@@ -107,7 +107,7 @@
},
{
"function": "CMD",
- "type": "readonly",
+ "type": {"dataType":"string", "elements": [{"elementType" : "input", "elementOptions" : [{"readonly": "true"}] ,"transformers": []}]},
"default_value": "python3 /app/front/plugins/ddns_update/script.py prev_ip={prev_ip} DDNS_UPDATE_URL={DDNS_UPDATE_URL} DDNS_USER={DDNS_USER} DDNS_PASSWORD={DDNS_PASSWORD} DDNS_DOMAIN={DDNS_DOMAIN} ",
"options": [],
"localized": ["name", "description"],
@@ -142,7 +142,7 @@
},
{
"function": "RUN_SCHD",
- "type": "text",
+ "type": {"dataType":"string", "elements": [{"elementType" : "input", "elementOptions" : [] ,"transformers": []}]},
"default_value": "*/5 * * * *",
"options": [],
"localized": ["name", "description"],
@@ -177,7 +177,7 @@
},
{
"function": "RUN_TIMEOUT",
- "type": "integer",
+ "type": {"dataType":"integer", "elements": [{"elementType" : "input", "elementOptions" : [{"type": "number"}] ,"transformers": []}]},
"default_value": 30,
"options": [],
"localized": ["name", "description"],
@@ -212,7 +212,7 @@
},
{
"function": "DOMAIN",
- "type": "text",
+ "type": {"dataType":"string", "elements": [{"elementType" : "input", "elementOptions" : [] ,"transformers": []}]},
"default_value": "your_domain.freeddns.org",
"options": [],
"localized": ["name", "description"],
@@ -247,7 +247,7 @@
},
{
"function": "USER",
- "type": "text",
+ "type": {"dataType":"string", "elements": [{"elementType" : "input", "elementOptions" : [] ,"transformers": []}]},
"default_value": "dynu_user",
"options": [],
"localized": ["name", "description"],
@@ -282,7 +282,7 @@
},
{
"function": "PASSWORD",
- "type": "password",
+ "type": {"dataType":"string", "elements": [{"elementType" : "input", "elementOptions" : [{"type":"password"}] ,"transformers": []}]},
"default_value": "A0000000B0000000C0000000D0000000",
"options": [],
"localized": ["name", "description"],
@@ -317,7 +317,7 @@
},
{
"function": "UPDATE_URL",
- "type": "text",
+ "type": {"dataType":"string", "elements": [{"elementType" : "input", "elementOptions" : [] ,"transformers": []}]},
"default_value": "https://api.dynu.com/nic/update?",
"options": [],
"localized": ["name", "description"],
@@ -352,7 +352,7 @@
},
{
"function": "WATCH",
- "type": "text.multiselect",
+ "type": {"dataType":"array", "elements": [{"elementType" : "select", "elementOptions" : [{"multiple":"true"}] ,"transformers": []}]},
"default_value": ["Watched_Value1"],
"options": [
"Watched_Value1",
@@ -388,7 +388,7 @@
},
{
"function": "REPORT_ON",
- "type": "text.multiselect",
+ "type": {"dataType":"array", "elements": [{"elementType" : "select", "elementOptions" : [{"multiple":"true"}] ,"transformers": []}]},
"default_value": ["new", "watched-changed"],
"options": [
"new",
diff --git a/front/plugins/dhcp_leases/config.json b/front/plugins/dhcp_leases/config.json
index 9dd217db..37b197d6 100755
--- a/front/plugins/dhcp_leases/config.json
+++ b/front/plugins/dhcp_leases/config.json
@@ -414,7 +414,12 @@
{
"function": "RUN",
"events": ["run"],
- "type": "text.select",
+ "type": {
+ "dataType": "string",
+ "elements": [
+ { "elementType": "select", "elementOptions": [], "transformers": [] }
+ ]
+ },
"default_value": "disabled",
"options": [
"disabled",
@@ -455,7 +460,12 @@
},
{
"function": "CMD",
- "type": "text",
+ "type": {
+ "dataType": "string",
+ "elements": [
+ { "elementType": "input", "elementOptions": [], "transformers": [] }
+ ]
+ },
"default_value": "python3 /app/front/plugins/dhcp_leases/script.py paths={paths}",
"options": [],
"localized": ["name", "description"],
@@ -490,7 +500,63 @@
},
{
"function": "paths_to_check",
- "type": "list",
+ "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": []
+ }
+ ]
+ },
"default_value": ["/mnt/dhcp1.leases", "/mnt/dhcp2.leases"],
"options": [],
"localized": ["name", "description"],
@@ -525,7 +591,12 @@
},
{
"function": "RUN_SCHD",
- "type": "text",
+ "type": {
+ "dataType": "string",
+ "elements": [
+ { "elementType": "input", "elementOptions": [], "transformers": [] }
+ ]
+ },
"default_value": "0 2 * * *",
"options": [],
"localized": ["name", "description"],
@@ -560,7 +631,16 @@
},
{
"function": "RUN_TIMEOUT",
- "type": "integer",
+ "type": {
+ "dataType": "integer",
+ "elements": [
+ {
+ "elementType": "input",
+ "elementOptions": [{ "type": "number" }],
+ "transformers": []
+ }
+ ]
+ },
"default_value": 5,
"options": [],
"localized": ["name", "description"],
@@ -595,7 +675,16 @@
},
{
"function": "WATCH",
- "type": "text.multiselect",
+ "type": {
+ "dataType": "array",
+ "elements": [
+ {
+ "elementType": "select",
+ "elementOptions": [{ "multiple": "true" }],
+ "transformers": []
+ }
+ ]
+ },
"default_value": ["Watched_Value1", "Watched_Value4"],
"options": [
"Watched_Value1",
@@ -635,7 +724,16 @@
},
{
"function": "REPORT_ON",
- "type": "text.multiselect",
+ "type": {
+ "dataType": "array",
+ "elements": [
+ {
+ "elementType": "select",
+ "elementOptions": [{ "multiple": "true" }],
+ "transformers": []
+ }
+ ]
+ },
"default_value": ["new", "watched-changed"],
"options": [
"new",
diff --git a/front/plugins/dhcp_servers/config.json b/front/plugins/dhcp_servers/config.json
index 1c3f2d5d..5870825d 100755
--- a/front/plugins/dhcp_servers/config.json
+++ b/front/plugins/dhcp_servers/config.json
@@ -307,7 +307,7 @@
{
"function": "RUN",
"events": ["run"],
- "type": "text.select",
+ "type": {"dataType":"string", "elements": [{"elementType" : "select", "elementOptions" : [] ,"transformers": []}]},
"default_value": "disabled",
"options": [
"disabled",
@@ -340,7 +340,7 @@
},
{
"function": "CMD",
- "type": "text",
+ "type": {"dataType":"string", "elements": [{"elementType" : "input", "elementOptions" : [] ,"transformers": []}]},
"default_value": "python3 /app/front/plugins/dhcp_servers/script.py",
"options": [],
"localized": ["name", "description"],
@@ -367,7 +367,7 @@
},
{
"function": "RUN_SCHD",
- "type": "text",
+ "type": {"dataType":"string", "elements": [{"elementType" : "input", "elementOptions" : [] ,"transformers": []}]},
"default_value": "0 2 * * *",
"options": [],
"localized": ["name", "description"],
@@ -394,7 +394,7 @@
},
{
"function": "RUN_TIMEOUT",
- "type": "integer",
+ "type": {"dataType":"integer", "elements": [{"elementType" : "input", "elementOptions" : [{"type": "number"}] ,"transformers": []}]},
"default_value": 10,
"options": [],
"localized": ["name", "description"],
@@ -425,7 +425,7 @@
},
{
"function": "WATCH",
- "type": "text.multiselect",
+ "type": {"dataType":"array", "elements": [{"elementType" : "select", "elementOptions" : [{"multiple":"true"}] ,"transformers": []}]},
"default_value": ["Watched_Value1"],
"options": [
"Watched_Value1",
@@ -457,7 +457,7 @@
},
{
"function": "REPORT_ON",
- "type": "text.multiselect",
+ "type": {"dataType":"array", "elements": [{"elementType" : "select", "elementOptions" : [{"multiple":"true"}] ,"transformers": []}]},
"default_value": ["new", "watched-changed"],
"options": ["new", "watched-changed", "watched-not-changed"],
"localized": ["name", "description"],
diff --git a/front/plugins/events_notifications/config.json b/front/plugins/events_notifications/config.json
index d7bb43bf..4caf5114 100755
--- a/front/plugins/events_notifications/config.json
+++ b/front/plugins/events_notifications/config.json
@@ -153,7 +153,7 @@
"string": "Device ID Parameter"
}
],
- "type": "string",
+ "type": {"dataType":"string", "elements": [{"elementType" : "input", "elementOptions" : [] ,"transformers": []}]},
"default_value": "1",
"localized": ["name"]
},
@@ -164,7 +164,7 @@
"string": "Event Type Parameter"
}
],
- "type": "string",
+ "type": {"dataType":"string", "elements": [{"elementType" : "input", "elementOptions" : [] ,"transformers": []}]},
"default_value": "device_down",
"localized": ["name"]
},
@@ -175,7 +175,7 @@
"string": "Repetition Count Parameter"
}
],
- "type": "integer",
+ "type": {"dataType":"integer", "elements": [{"elementType" : "input", "elementOptions" : [{"type": "number"}] ,"transformers": []}]},
"default_value": 3,
"localized": ["name"]
}
@@ -216,7 +216,7 @@
},
{
"function": "CMD",
- "type": "text",
+ "type": {"dataType":"string", "elements": [{"elementType" : "input", "elementOptions" : [] ,"transformers": []}]},
"default_value": "UPDATE Devices SET dev_AlertDeviceDown = {KNWN_dev_AlertDeviceDown}, dev_AlertEvents = {KNWN_dev_AlertEvents} WHERE dev_MAC in ({target_macs})",
"options": [],
"localized": ["name", "description"],
@@ -235,7 +235,7 @@
},
{
"function": "dev_Name",
- "type": "readonly",
+ "type": {"dataType":"string", "elements": [{"elementType" : "input", "elementOptions" : [{"readonly": "true"}] ,"transformers": []}]},
"maxLength": 50,
"default_value": "(unknown)",
"options": [],
@@ -255,7 +255,7 @@
},
{
"function": "dev_Owner",
- "type": "string",
+ "type": {"dataType":"string", "elements": [{"elementType" : "input", "elementOptions" : [] ,"transformers": []}]},
"maxLength": 30,
"default_value": "House",
"override_value": {
@@ -278,7 +278,7 @@
},
{
"function": "dev_DeviceType",
- "type": "string",
+ "type": {"dataType":"string", "elements": [{"elementType" : "input", "elementOptions" : [] ,"transformers": []}]},
"maxLength": 30,
"default_value": "",
"options": [],
@@ -298,7 +298,7 @@
},
{
"function": "dev_Vendor",
- "type": "readonly",
+ "type": {"dataType":"string", "elements": [{"elementType" : "input", "elementOptions" : [{"readonly": "true"}] ,"transformers": []}]},
"maxLength": 250,
"default_value": "",
"options": [],
@@ -318,7 +318,7 @@
},
{
"function": "dev_Favorite",
- "type": "integer.checkbox",
+ "type": {"dataType":"integer", "elements": [{"elementType" : "input", "elementOptions" : [{"type":"checkbox"}] ,"transformers": []}]},
"default_value": 0,
"override_value": {
"override": false
@@ -340,7 +340,7 @@
},
{
"function": "dev_Group",
- "type": "string",
+ "type": {"dataType":"string", "elements": [{"elementType" : "input", "elementOptions" : [] ,"transformers": []}]},
"maxLength": 10,
"default_value": "",
"override_value": {
@@ -363,7 +363,7 @@
},
{
"function": "dev_Comments",
- "type": "string",
+ "type": {"dataType":"string", "elements": [{"elementType" : "input", "elementOptions" : [] ,"transformers": []}]},
"default_value": "",
"options": [],
"localized": ["name", "description"],
@@ -382,7 +382,7 @@
},
{
"function": "dev_FirstConnection",
- "type": "readonly",
+ "type": {"dataType":"string", "elements": [{"elementType" : "input", "elementOptions" : [{"readonly": "true"}] ,"transformers": []}]},
"format": "date-time",
"default_value": "",
"options": [],
@@ -402,7 +402,7 @@
},
{
"function": "dev_LastConnection",
- "type": "readonly",
+ "type": {"dataType":"string", "elements": [{"elementType" : "input", "elementOptions" : [{"readonly": "true"}] ,"transformers": []}]},
"format": "date-time",
"default_value": "",
"options": [],
@@ -422,7 +422,7 @@
},
{
"function": "dev_LastIP",
- "type": "readonly",
+ "type": {"dataType":"string", "elements": [{"elementType" : "input", "elementOptions" : [{"readonly": "true"}] ,"transformers": []}]},
"maxLength": 50,
"default_value": "",
"options": [],
@@ -442,7 +442,7 @@
},
{
"function": "dev_StaticIP",
- "type": "integer.checkbox",
+ "type": {"dataType":"integer", "elements": [{"elementType" : "input", "elementOptions" : [{"type":"checkbox"}] ,"transformers": []}]},
"default_value": 1,
"override_value": {
"override": true
@@ -464,7 +464,7 @@
},
{
"function": "dev_ScanCycle",
- "type": "integer.checkbox",
+ "type": {"dataType":"integer", "elements": [{"elementType" : "input", "elementOptions" : [{"type":"checkbox"}] ,"transformers": []}]},
"default_value": 1,
"override_value": {
"override": true
@@ -486,7 +486,7 @@
},
{
"function": "dev_LogEvents",
- "type": "integer.checkbox",
+ "type": {"dataType":"integer", "elements": [{"elementType" : "input", "elementOptions" : [{"type":"checkbox"}] ,"transformers": []}]},
"default_value": 0,
"override_value": {
"override": false
@@ -508,7 +508,7 @@
},
{
"function": "dev_AlertEvents",
- "type": "integer.checkbox",
+ "type": {"dataType":"integer", "elements": [{"elementType" : "input", "elementOptions" : [{"type":"checkbox"}] ,"transformers": []}]},
"default_value": 0,
"override_value": {
"override": true
@@ -530,7 +530,7 @@
},
{
"function": "dev_AlertDeviceDown",
- "type": "integer.checkbox",
+ "type": {"dataType":"integer", "elements": [{"elementType" : "input", "elementOptions" : [{"type":"checkbox"}] ,"transformers": []}]},
"default_value": 0,
"options": [],
"localized": ["name", "description"],
@@ -549,7 +549,7 @@
},
{
"function": "dev_SkipRepeated",
- "type": "integer",
+ "type": {"dataType":"integer", "elements": [{"elementType" : "input", "elementOptions" : [{"type": "number"}] ,"transformers": []}]},
"default_value": 0,
"options": [],
"localized": ["name", "description"],
@@ -568,7 +568,7 @@
},
{
"function": "dev_LastNotification",
- "type": "readonly",
+ "type": {"dataType":"string", "elements": [{"elementType" : "input", "elementOptions" : [{"readonly": "true"}] ,"transformers": []}]},
"format": "date-time",
"default_value": "",
"options": [],
@@ -588,7 +588,7 @@
},
{
"function": "dev_PresentLastScan",
- "type": "integer.checkbox",
+ "type": {"dataType":"integer", "elements": [{"elementType" : "input", "elementOptions" : [{"type":"checkbox"}] ,"transformers": []}]},
"default_value": 1,
"options": [],
"localized": ["name", "description"],
@@ -607,7 +607,7 @@
},
{
"function": "dev_NewDevice",
- "type": "integer.checkbox",
+ "type": {"dataType":"integer", "elements": [{"elementType" : "input", "elementOptions" : [{"type":"checkbox"}] ,"transformers": []}]},
"default_value": true,
"options": [],
"localized": ["name", "description"],
@@ -626,7 +626,7 @@
},
{
"function": "dev_Location",
- "type": "string",
+ "type": {"dataType":"string", "elements": [{"elementType" : "input", "elementOptions" : [] ,"transformers": []}]},
"maxLength": 250,
"default_value": "",
"options": [],
@@ -646,7 +646,7 @@
},
{
"function": "dev_Archived",
- "type": "integer.checkbox",
+ "type": {"dataType":"integer", "elements": [{"elementType" : "input", "elementOptions" : [{"type":"checkbox"}] ,"transformers": []}]},
"default_value": 0,
"options": [],
"localized": ["name", "description"],
@@ -665,7 +665,7 @@
},
{
"function": "dev_Network_Node_MAC_ADDR",
- "type": "string",
+ "type": {"dataType":"string", "elements": [{"elementType" : "input", "elementOptions" : [] ,"transformers": []}]},
"default_value": "",
"options": [],
"localized": ["name", "description"],
@@ -684,7 +684,7 @@
},
{
"function": "dev_Network_Node_port",
- "type": "readonly",
+ "type": {"dataType":"string", "elements": [{"elementType" : "input", "elementOptions" : [{"readonly": "true"}] ,"transformers": []}]},
"default_value": 0,
"options": [],
"localized": ["name", "description"],
@@ -703,7 +703,7 @@
},
{
"function": "dev_Icon",
- "type": "string",
+ "type": {"dataType":"string", "elements": [{"elementType" : "input", "elementOptions" : [] ,"transformers": []}]},
"default_value": "",
"options": [],
"localized": ["name", "description"],
diff --git a/front/plugins/internet_ip/config.json b/front/plugins/internet_ip/config.json
index f3315a8f..79ed91f1 100755
--- a/front/plugins/internet_ip/config.json
+++ b/front/plugins/internet_ip/config.json
@@ -63,7 +63,7 @@
{
"function": "RUN",
"events": ["run"],
- "type": "text.select",
+ "type": {"dataType":"string", "elements": [{"elementType" : "select", "elementOptions" : [] ,"transformers": []}]},
"default_value": "disabled",
"options": ["disabled", "once", "schedule", "always_after_scan"],
"localized": ["name", "description"],
@@ -94,7 +94,7 @@
},
{
"function": "CMD",
- "type": "readonly",
+ "type": {"dataType":"string", "elements": [{"elementType" : "input", "elementOptions" : [{"readonly": "true"}] ,"transformers": []}]},
"default_value": "python3 /app/front/plugins/internet_ip/script.py prev_ip={prev_ip} INTRNT_DIG_GET_IP_ARG={INTRNT_DIG_GET_IP_ARG}",
"options": [],
"localized": ["name", "description"],
@@ -129,7 +129,7 @@
},
{
"function": "DIG_GET_IP_ARG",
- "type": "text",
+ "type": {"dataType":"string", "elements": [{"elementType" : "input", "elementOptions" : [] ,"transformers": []}]},
"default_value": "-4 myip.opendns.com @resolver1.opendns.com",
"options": [],
"localized": ["name", "description"],
@@ -164,7 +164,7 @@
},
{
"function": "RUN_SCHD",
- "type": "text",
+ "type": {"dataType":"string", "elements": [{"elementType" : "input", "elementOptions" : [] ,"transformers": []}]},
"default_value": "*/5 * * * *",
"options": [],
"localized": ["name", "description"],
@@ -199,7 +199,7 @@
},
{
"function": "RUN_TIMEOUT",
- "type": "integer",
+ "type": {"dataType":"integer", "elements": [{"elementType" : "input", "elementOptions" : [{"type": "number"}] ,"transformers": []}]},
"default_value": 30,
"options": [],
"localized": ["name", "description"],
@@ -234,7 +234,7 @@
},
{
"function": "RETRIES",
- "type": "integer",
+ "type": {"dataType":"integer", "elements": [{"elementType" : "input", "elementOptions" : [{"type": "number"}] ,"transformers": []}]},
"default_value": 3,
"options": [],
"localized": ["name", "description"],
@@ -253,7 +253,7 @@
},
{
"function": "WATCH",
- "type": "text.multiselect",
+ "type": {"dataType":"array", "elements": [{"elementType" : "select", "elementOptions" : [{"multiple":"true"}] ,"transformers": []}]},
"default_value": ["Watched_Value1"],
"options": [
"Watched_Value1",
@@ -289,7 +289,7 @@
},
{
"function": "REPORT_ON",
- "type": "text.multiselect",
+ "type": {"dataType":"array", "elements": [{"elementType" : "select", "elementOptions" : [{"multiple":"true"}] ,"transformers": []}]},
"default_value": ["new", "watched-changed"],
"options": [
"new",
diff --git a/front/plugins/internet_speedtest/config.json b/front/plugins/internet_speedtest/config.json
index 33cebed8..9c0fcd17 100755
--- a/front/plugins/internet_speedtest/config.json
+++ b/front/plugins/internet_speedtest/config.json
@@ -377,7 +377,7 @@
{
"function": "RUN",
"events": ["run"],
- "type": "text.select",
+ "type": {"dataType":"string", "elements": [{"elementType" : "select", "elementOptions" : [] ,"transformers": []}]},
"default_value": "disabled",
"options": ["disabled", "once", "schedule", "always_after_scan"],
"localized": ["name", "description"],
@@ -408,7 +408,7 @@
},
{
"function": "CMD",
- "type": "readonly",
+ "type": {"dataType":"string", "elements": [{"elementType" : "input", "elementOptions" : [{"readonly": "true"}] ,"transformers": []}]},
"default_value": "python3 /app/front/plugins/internet_speedtest/script.py",
"options": [],
"localized": ["name", "description"],
@@ -443,7 +443,7 @@
},
{
"function": "RUN_SCHD",
- "type": "text",
+ "type": {"dataType":"string", "elements": [{"elementType" : "input", "elementOptions" : [] ,"transformers": []}]},
"default_value": "*/30 * * * *",
"options": [],
"localized": ["name", "description"],
@@ -478,7 +478,7 @@
},
{
"function": "RUN_TIMEOUT",
- "type": "integer",
+ "type": {"dataType":"integer", "elements": [{"elementType" : "input", "elementOptions" : [{"type": "number"}] ,"transformers": []}]},
"default_value": 60,
"options": [],
"localized": ["name", "description"],
@@ -513,7 +513,7 @@
},
{
"function": "WATCH",
- "type": "text.multiselect",
+ "type": {"dataType":"array", "elements": [{"elementType" : "select", "elementOptions" : [{"multiple":"true"}] ,"transformers": []}]},
"default_value": [],
"options": [
"Watched_Value1",
@@ -549,7 +549,7 @@
},
{
"function": "REPORT_ON",
- "type": "text.multiselect",
+ "type": {"dataType":"array", "elements": [{"elementType" : "select", "elementOptions" : [{"multiple":"true"}] ,"transformers": []}]},
"default_value": [],
"options": [
"new",
diff --git a/front/plugins/known_template/config.json b/front/plugins/known_template/config.json
index be4380a6..32c3f3b1 100755
--- a/front/plugins/known_template/config.json
+++ b/front/plugins/known_template/config.json
@@ -159,7 +159,7 @@
},
{
"function": "CMD",
- "type": "text",
+ "type": {"dataType":"string", "elements": [{"elementType" : "input", "elementOptions" : [] ,"transformers": []}]},
"default_value": "UPDATE Devices SET dev_AlertDeviceDown = {KNWN_dev_AlertDeviceDown}, dev_AlertEvents = {KNWN_dev_AlertEvents} WHERE dev_MAC in ({target_macs})",
"options": [],
"localized": ["name", "description"],
@@ -178,7 +178,7 @@
},
{
"function": "dev_Name",
- "type": "readonly",
+ "type": {"dataType":"string", "elements": [{"elementType" : "input", "elementOptions" : [{"readonly": "true"}] ,"transformers": []}]},
"maxLength": 50,
"default_value": "(unknown)",
"options": [],
@@ -198,7 +198,7 @@
},
{
"function": "dev_Owner",
- "type": "string",
+ "type": {"dataType":"string", "elements": [{"elementType" : "input", "elementOptions" : [] ,"transformers": []}]},
"maxLength": 30,
"default_value": "House",
"override_value": {
@@ -221,7 +221,7 @@
},
{
"function": "dev_DeviceType",
- "type": "string",
+ "type": {"dataType":"string", "elements": [{"elementType" : "input", "elementOptions" : [] ,"transformers": []}]},
"maxLength": 30,
"default_value": "",
"options": [],
@@ -241,7 +241,7 @@
},
{
"function": "dev_Vendor",
- "type": "readonly",
+ "type": {"dataType":"string", "elements": [{"elementType" : "input", "elementOptions" : [{"readonly": "true"}] ,"transformers": []}]},
"maxLength": 250,
"default_value": "",
"options": [],
@@ -261,7 +261,7 @@
},
{
"function": "dev_Favorite",
- "type": "integer.checkbox",
+ "type": {"dataType":"integer", "elements": [{"elementType" : "input", "elementOptions" : [{"type":"checkbox"}] ,"transformers": []}]},
"default_value": 0,
"override_value": {
"override": false
@@ -283,7 +283,7 @@
},
{
"function": "dev_Group",
- "type": "string",
+ "type": {"dataType":"string", "elements": [{"elementType" : "input", "elementOptions" : [] ,"transformers": []}]},
"maxLength": 10,
"default_value": "",
"override_value": {
@@ -306,7 +306,7 @@
},
{
"function": "dev_Comments",
- "type": "string",
+ "type": {"dataType":"string", "elements": [{"elementType" : "input", "elementOptions" : [] ,"transformers": []}]},
"default_value": "",
"options": [],
"localized": ["name", "description"],
@@ -325,7 +325,7 @@
},
{
"function": "dev_FirstConnection",
- "type": "readonly",
+ "type": {"dataType":"string", "elements": [{"elementType" : "input", "elementOptions" : [{"readonly": "true"}] ,"transformers": []}]},
"format": "date-time",
"default_value": "",
"options": [],
@@ -345,7 +345,7 @@
},
{
"function": "dev_LastConnection",
- "type": "readonly",
+ "type": {"dataType":"string", "elements": [{"elementType" : "input", "elementOptions" : [{"readonly": "true"}] ,"transformers": []}]},
"format": "date-time",
"default_value": "",
"options": [],
@@ -365,7 +365,7 @@
},
{
"function": "dev_LastIP",
- "type": "readonly",
+ "type": {"dataType":"string", "elements": [{"elementType" : "input", "elementOptions" : [{"readonly": "true"}] ,"transformers": []}]},
"maxLength": 50,
"default_value": "",
"options": [],
@@ -385,7 +385,7 @@
},
{
"function": "dev_StaticIP",
- "type": "integer.checkbox",
+ "type": {"dataType":"integer", "elements": [{"elementType" : "input", "elementOptions" : [{"type":"checkbox"}] ,"transformers": []}]},
"default_value": 1,
"override_value": {
"override": true
@@ -407,7 +407,7 @@
},
{
"function": "dev_ScanCycle",
- "type": "integer.checkbox",
+ "type": {"dataType":"integer", "elements": [{"elementType" : "input", "elementOptions" : [{"type":"checkbox"}] ,"transformers": []}]},
"default_value": 1,
"override_value": {
"override": true
@@ -429,7 +429,7 @@
},
{
"function": "dev_LogEvents",
- "type": "integer.checkbox",
+ "type": {"dataType":"integer", "elements": [{"elementType" : "input", "elementOptions" : [{"type":"checkbox"}] ,"transformers": []}]},
"default_value": 0,
"override_value": {
"override": false
@@ -451,7 +451,7 @@
},
{
"function": "dev_AlertEvents",
- "type": "integer.checkbox",
+ "type": {"dataType":"integer", "elements": [{"elementType" : "input", "elementOptions" : [{"type":"checkbox"}] ,"transformers": []}]},
"default_value": 0,
"override_value": {
"override": true
@@ -473,7 +473,7 @@
},
{
"function": "dev_AlertDeviceDown",
- "type": "integer.checkbox",
+ "type": {"dataType":"integer", "elements": [{"elementType" : "input", "elementOptions" : [{"type":"checkbox"}] ,"transformers": []}]},
"default_value": 0,
"options": [],
"localized": ["name", "description"],
@@ -492,7 +492,7 @@
},
{
"function": "dev_SkipRepeated",
- "type": "integer",
+ "type": {"dataType":"integer", "elements": [{"elementType" : "input", "elementOptions" : [{"type": "number"}] ,"transformers": []}]},
"default_value": 0,
"options": [],
"localized": ["name", "description"],
@@ -511,7 +511,7 @@
},
{
"function": "dev_LastNotification",
- "type": "readonly",
+ "type": {"dataType":"string", "elements": [{"elementType" : "input", "elementOptions" : [{"readonly": "true"}] ,"transformers": []}]},
"format": "date-time",
"default_value": "",
"options": [],
@@ -531,7 +531,7 @@
},
{
"function": "dev_PresentLastScan",
- "type": "integer.checkbox",
+ "type": {"dataType":"integer", "elements": [{"elementType" : "input", "elementOptions" : [{"type":"checkbox"}] ,"transformers": []}]},
"default_value": 1,
"options": [],
"localized": ["name", "description"],
@@ -550,7 +550,7 @@
},
{
"function": "dev_NewDevice",
- "type": "integer.checkbox",
+ "type": {"dataType":"integer", "elements": [{"elementType" : "input", "elementOptions" : [{"type":"checkbox"}] ,"transformers": []}]},
"default_value": true,
"options": [],
"localized": ["name", "description"],
@@ -569,7 +569,7 @@
},
{
"function": "dev_Location",
- "type": "string",
+ "type": {"dataType":"string", "elements": [{"elementType" : "input", "elementOptions" : [] ,"transformers": []}]},
"maxLength": 250,
"default_value": "",
"options": [],
@@ -589,7 +589,7 @@
},
{
"function": "dev_Archived",
- "type": "integer.checkbox",
+ "type": {"dataType":"integer", "elements": [{"elementType" : "input", "elementOptions" : [{"type":"checkbox"}] ,"transformers": []}]},
"default_value": 0,
"options": [],
"localized": ["name", "description"],
@@ -608,7 +608,7 @@
},
{
"function": "dev_Network_Node_MAC_ADDR",
- "type": "string",
+ "type": {"dataType":"string", "elements": [{"elementType" : "input", "elementOptions" : [] ,"transformers": []}]},
"default_value": "",
"options": [],
"localized": ["name", "description"],
@@ -627,7 +627,7 @@
},
{
"function": "dev_Network_Node_port",
- "type": "readonly",
+ "type": {"dataType":"string", "elements": [{"elementType" : "input", "elementOptions" : [{"readonly": "true"}] ,"transformers": []}]},
"default_value": 0,
"options": [],
"localized": ["name", "description"],
@@ -646,7 +646,7 @@
},
{
"function": "dev_Icon",
- "type": "string",
+ "type": {"dataType":"string", "elements": [{"elementType" : "input", "elementOptions" : [] ,"transformers": []}]},
"default_value": "",
"options": [],
"localized": ["name", "description"],
diff --git a/front/plugins/maintenance/config.json b/front/plugins/maintenance/config.json
index 2bbbf5d2..280eb554 100755
--- a/front/plugins/maintenance/config.json
+++ b/front/plugins/maintenance/config.json
@@ -29,7 +29,7 @@
{
"function": "RUN",
"events": ["run"],
- "type": "text.select",
+ "type": {"dataType":"string", "elements": [{"elementType" : "select", "elementOptions" : [] ,"transformers": []}]},
"default_value": "schedule",
"options": [
"disabled",
@@ -62,7 +62,7 @@
},
{
"function": "CMD",
- "type": "readonly",
+ "type": {"dataType":"string", "elements": [{"elementType" : "input", "elementOptions" : [{"readonly": "true"}] ,"transformers": []}]},
"default_value": "python3 /app/front/plugins/maintenance/maintenance.py",
"options": [],
"localized": ["name", "description"],
@@ -97,7 +97,7 @@
},
{
"function": "RUN_SCHD",
- "type": "text",
+ "type": {"dataType":"string", "elements": [{"elementType" : "input", "elementOptions" : [] ,"transformers": []}]},
"default_value": "0 2 * * *",
"options": [],
"localized": ["name", "description"],
@@ -132,7 +132,7 @@
},
{
"function": "RUN_TIMEOUT",
- "type": "integer",
+ "type": {"dataType":"integer", "elements": [{"elementType" : "input", "elementOptions" : [{"type": "number"}] ,"transformers": []}]},
"default_value": 30,
"options": [],
"localized": ["name", "description"],
@@ -167,7 +167,7 @@
},
{
"function": "LOG_LENGTH",
- "type": "integer",
+ "type": {"dataType":"integer", "elements": [{"elementType" : "input", "elementOptions" : [{"type": "number"}] ,"transformers": []}]},
"default_value": 250000,
"options": [],
"localized": ["name", "description"],
diff --git a/front/plugins/newdev_template/config.json b/front/plugins/newdev_template/config.json
index 69f23a0c..d9573841 100755
--- a/front/plugins/newdev_template/config.json
+++ b/front/plugins/newdev_template/config.json
@@ -28,7 +28,7 @@
"settings": [
{
"function": "ignored_MACs",
- "type": "list",
+ "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 +47,7 @@
},
{
"function": "ignored_IPs",
- "type": "list",
+ "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 +66,7 @@
},
{
"function": "dev_MAC",
- "type": "readonly",
+ "type": {"dataType":"string", "elements": [{"elementType" : "input", "elementOptions" : [{"readonly": "true"}] ,"transformers": []}]},
"maxLength": 50,
"default_value": "",
"options": [],
@@ -86,7 +86,7 @@
},
{
"function": "dev_Name",
- "type": "readonly",
+ "type": {"dataType":"string", "elements": [{"elementType" : "input", "elementOptions" : [{"readonly": "true"}] ,"transformers": []}]},
"maxLength": 50,
"default_value": "(unknown)",
"options": [],
@@ -106,7 +106,7 @@
},
{
"function": "dev_Owner",
- "type": "text.select",
+ "type": {"dataType":"string", "elements": [{"elementType" : "select", "elementOptions" : [] ,"transformers": []}]},
"maxLength": 30,
"default_value": "",
"options": ["{value}"],
@@ -133,7 +133,7 @@
},
{
"function": "dev_DeviceType",
- "type": "text.select",
+ "type": {"dataType":"string", "elements": [{"elementType" : "select", "elementOptions" : [] ,"transformers": []}]},
"maxLength": 30,
"default_value": "",
"options": ["{value}"],
@@ -165,7 +165,7 @@
},
{
"function": "dev_Vendor",
- "type": "readonly",
+ "type": {"dataType":"string", "elements": [{"elementType" : "input", "elementOptions" : [{"readonly": "true"}] ,"transformers": []}]},
"maxLength": 250,
"default_value": "",
"options": [],
@@ -185,7 +185,7 @@
},
{
"function": "dev_Favorite",
- "type": "integer.checkbox",
+ "type": {"dataType":"integer", "elements": [{"elementType" : "input", "elementOptions" : [{"type":"checkbox"}] ,"transformers": []}]},
"default_value": 0,
"options": [],
"localized": ["name", "description"],
@@ -204,7 +204,7 @@
},
{
"function": "dev_Group",
- "type": "text.select",
+ "type": {"dataType":"string", "elements": [{"elementType" : "select", "elementOptions" : [] ,"transformers": []}]},
"maxLength": 10,
"default_value": "",
"options": ["{value}"],
@@ -231,7 +231,7 @@
},
{
"function": "dev_Comments",
- "type": "string",
+ "type": {"dataType":"string", "elements": [{"elementType" : "input", "elementOptions" : [] ,"transformers": []}]},
"default_value": "",
"options": [],
"localized": ["name", "description"],
@@ -250,7 +250,7 @@
},
{
"function": "dev_FirstConnection",
- "type": "readonly",
+ "type": {"dataType":"string", "elements": [{"elementType" : "input", "elementOptions" : [{"readonly": "true"}] ,"transformers": []}]},
"format": "date-time",
"default_value": "",
"options": [],
@@ -270,7 +270,7 @@
},
{
"function": "dev_LastConnection",
- "type": "readonly",
+ "type": {"dataType":"string", "elements": [{"elementType" : "input", "elementOptions" : [{"readonly": "true"}] ,"transformers": []}]},
"format": "date-time",
"default_value": "",
"options": [],
@@ -290,7 +290,7 @@
},
{
"function": "dev_LastIP",
- "type": "readonly",
+ "type": {"dataType":"string", "elements": [{"elementType" : "input", "elementOptions" : [{"readonly": "true"}] ,"transformers": []}]},
"maxLength": 50,
"default_value": "",
"options": [],
@@ -310,7 +310,7 @@
},
{
"function": "dev_StaticIP",
- "type": "integer.checkbox",
+ "type": {"dataType":"integer", "elements": [{"elementType" : "input", "elementOptions" : [{"type":"checkbox"}] ,"transformers": []}]},
"default_value": 0,
"options": [],
"localized": ["name", "description"],
@@ -329,7 +329,7 @@
},
{
"function": "dev_ScanCycle",
- "type": "integer.checkbox",
+ "type": {"dataType":"integer", "elements": [{"elementType" : "input", "elementOptions" : [{"type":"checkbox"}] ,"transformers": []}]},
"default_value": 1,
"options": [],
"localized": ["name", "description"],
@@ -348,7 +348,7 @@
},
{
"function": "dev_LogEvents",
- "type": "integer.checkbox",
+ "type": {"dataType":"integer", "elements": [{"elementType" : "input", "elementOptions" : [{"type":"checkbox"}] ,"transformers": []}]},
"default_value": 1,
"options": [],
"localized": ["name", "description"],
@@ -367,7 +367,7 @@
},
{
"function": "dev_AlertEvents",
- "type": "integer.checkbox",
+ "type": {"dataType":"integer", "elements": [{"elementType" : "input", "elementOptions" : [{"type":"checkbox"}] ,"transformers": []}]},
"default_value": 1,
"options": [],
"localized": ["name", "description"],
@@ -386,7 +386,7 @@
},
{
"function": "dev_AlertDeviceDown",
- "type": "integer.checkbox",
+ "type": {"dataType":"integer", "elements": [{"elementType" : "input", "elementOptions" : [{"type":"checkbox"}] ,"transformers": []}]},
"default_value": 0,
"options": [],
"localized": ["name", "description"],
@@ -405,7 +405,7 @@
},
{
"function": "dev_SkipRepeated",
- "type": "text.select",
+ "type": {"dataType":"string", "elements": [{"elementType" : "select", "elementOptions" : [] ,"transformers": []}]},
"default_value": 0,
"options": ["{value}"],
"options_params": [
@@ -431,7 +431,7 @@
},
{
"function": "dev_LastNotification",
- "type": "readonly",
+ "type": {"dataType":"string", "elements": [{"elementType" : "input", "elementOptions" : [{"readonly": "true"}] ,"transformers": []}]},
"format": "date-time",
"default_value": "",
"options": [],
@@ -451,7 +451,7 @@
},
{
"function": "dev_PresentLastScan",
- "type": "integer.checkbox",
+ "type": {"dataType":"integer", "elements": [{"elementType" : "input", "elementOptions" : [{"type":"checkbox"}] ,"transformers": []}]},
"default_value": 1,
"options": [],
"localized": ["name", "description"],
@@ -470,7 +470,7 @@
},
{
"function": "dev_NewDevice",
- "type": "integer.checkbox",
+ "type": {"dataType":"integer", "elements": [{"elementType" : "input", "elementOptions" : [{"type":"checkbox"}] ,"transformers": []}]},
"default_value": 1,
"options": [],
"localized": ["name", "description"],
@@ -489,7 +489,7 @@
},
{
"function": "dev_Location",
- "type": "text.select",
+ "type": {"dataType":"string", "elements": [{"elementType" : "select", "elementOptions" : [] ,"transformers": []}]},
"maxLength": 250,
"default_value": "",
"options": ["{value}"],
@@ -516,7 +516,7 @@
},
{
"function": "dev_Archived",
- "type": "integer.checkbox",
+ "type": {"dataType":"integer", "elements": [{"elementType" : "input", "elementOptions" : [{"type":"checkbox"}] ,"transformers": []}]},
"default_value": 0,
"options": [],
"localized": ["name", "description"],
@@ -535,7 +535,7 @@
},
{
"function": "dev_Network_Node_MAC_ADDR",
- "type": "text.select",
+ "type": {"dataType":"string", "elements": [{"elementType" : "select", "elementOptions" : [] ,"transformers": []}]},
"default_value": "",
"options": ["{value}"],
"options_params": [
@@ -566,7 +566,7 @@
},
{
"function": "dev_Network_Node_port",
- "type": "readonly",
+ "type": {"dataType":"string", "elements": [{"elementType" : "input", "elementOptions" : [{"readonly": "true"}] ,"transformers": []}]},
"default_value": 0,
"options": [],
"localized": ["name", "description"],
@@ -585,7 +585,7 @@
},
{
"function": "dev_Icon",
- "type": "text.select",
+ "type": {"dataType":"string", "elements": [{"elementType" : "select", "elementOptions" : [] ,"transformers": []}]},
"default_value": "",
"options": ["{value}"],
"options_params": [
@@ -611,7 +611,7 @@
},
{
"function": "LESS_NAME_CLEANUP",
- "type": "integer.checkbox",
+ "type": {"dataType":"boolean", "elements": [{"elementType" : "input", "elementOptions" : [{"type":"checkbox"}] ,"transformers": []}]},
"default_value": 0,
"options": [],
"localized": ["name", "description"],
@@ -630,7 +630,7 @@
},
{
"function": "NAME_CLEANUP_REGEX",
- "type": "list.base64",
+ "type": {"dataType":"string", "elements": [{"elementType" : "textarea", "elementOptions" : [] ,"transformers": ["base64"]}]},
"default_value": ["XC5fYWlycGxheQ==", "XC5fdGNw", "XC5sb2NhbGRvbWFpbg==", "XC5sb2NhbA==", "XC5fZXNwaG9tZWxpYg==", "XC5fZ29vZ2xlY2FzdA==", "XC5sYW4=", "XC5ob21l", "LVthLWZBLUYwLTldezMyfQ==", "Iy4q" ],
"options": [],
"localized": ["name", "description"],
diff --git a/front/plugins/nmap_dev_scan/config.json b/front/plugins/nmap_dev_scan/config.json
index e1b9ae32..2dab080b 100755
--- a/front/plugins/nmap_dev_scan/config.json
+++ b/front/plugins/nmap_dev_scan/config.json
@@ -45,7 +45,7 @@
"settings": [
{
"function": "RUN",
- "type": "text.select",
+ "type": {"dataType":"string", "elements": [{"elementType" : "select", "elementOptions" : [] ,"transformers": []}]},
"default_value": "disabled",
"options": [
"disabled",
@@ -87,7 +87,7 @@
},
{
"function": "CMD",
- "type": "readonly",
+ "type": {"dataType":"string", "elements": [{"elementType" : "input", "elementOptions" : [{"readonly": "true"}] ,"transformers": []}]},
"default_value": "python3 /app/front/plugins/nmap_dev_scan/nmap_dev.py ",
"options": [],
"localized": ["name", "description"],
@@ -122,7 +122,7 @@
},
{
"function": "RUN_TIMEOUT",
- "type": "integer",
+ "type": {"dataType":"integer", "elements": [{"elementType" : "input", "elementOptions" : [{"type": "number"}] ,"transformers": []}]},
"default_value": 300,
"options": [],
"localized": ["name", "description"],
@@ -157,7 +157,7 @@
},
{
"function": "RUN_SCHD",
- "type": "text",
+ "type": {"dataType":"string", "elements": [{"elementType" : "input", "elementOptions" : [] ,"transformers": []}]},
"default_value": "*/5 * * * *",
"options": [],
"localized": ["name", "description"],
@@ -192,7 +192,7 @@
},
{
"function": "WATCH",
- "type": "text.multiselect",
+ "type": {"dataType":"array", "elements": [{"elementType" : "select", "elementOptions" : [{"multiple":"true"}] ,"transformers": []}]},
"default_value": [],
"options": [
"Watched_Value1",
@@ -232,7 +232,7 @@
},
{
"function": "REPORT_ON",
- "type": "text.multiselect",
+ "type": {"dataType":"array", "elements": [{"elementType" : "select", "elementOptions" : [{"multiple":"true"}] ,"transformers": []}]},
"default_value": ["new"],
"options": [
"new",
@@ -272,7 +272,7 @@
},
{
"function": "ARGS",
- "type": "text",
+ "type": {"dataType":"string", "elements": [{"elementType" : "input", "elementOptions" : [] ,"transformers": []}]},
"default_value": "sudo nmap -sn -PR -oX - ",
"options": [],
"localized": ["name", "description"],
diff --git a/front/plugins/nmap_scan/config.json b/front/plugins/nmap_scan/config.json
index e2b4ffce..08b9090a 100755
--- a/front/plugins/nmap_scan/config.json
+++ b/front/plugins/nmap_scan/config.json
@@ -354,7 +354,7 @@
{
"function": "RUN",
"events": ["run"],
- "type": "text.select",
+ "type": {"dataType":"string", "elements": [{"elementType" : "select", "elementOptions" : [] ,"transformers": []}]},
"default_value": "disabled",
"options": [
"disabled",
@@ -387,7 +387,7 @@
},
{
"function": "CMD",
- "type": "text",
+ "type": {"dataType":"string", "elements": [{"elementType" : "input", "elementOptions" : [] ,"transformers": []}]},
"default_value": "python3 /app/front/plugins/nmap_scan/script.py ips={ips} macs={macs} timeout={timeout} args={args}",
"options": [],
"localized": ["name", "description"],
@@ -414,7 +414,7 @@
},
{
"function": "ARGS",
- "type": "text",
+ "type": {"dataType":"string", "elements": [{"elementType" : "input", "elementOptions" : [] ,"transformers": []}]},
"default_value": "-p -10000",
"options": [],
"localized": ["name", "description"],
@@ -441,7 +441,7 @@
},
{
"function": "RUN_SCHD",
- "type": "text",
+ "type": {"dataType":"string", "elements": [{"elementType" : "input", "elementOptions" : [] ,"transformers": []}]},
"default_value": "0 2 * * *",
"options": [],
"localized": ["name", "description"],
@@ -468,7 +468,7 @@
},
{
"function": "RUN_TIMEOUT",
- "type": "integer",
+ "type": {"dataType":"integer", "elements": [{"elementType" : "input", "elementOptions" : [{"type": "number"}] ,"transformers": []}]},
"default_value": 30,
"options": [],
"localized": ["name", "description"],
@@ -495,7 +495,7 @@
},
{
"function": "WATCH",
- "type": "text.multiselect",
+ "type": {"dataType":"array", "elements": [{"elementType" : "select", "elementOptions" : [{"multiple":"true"}] ,"transformers": []}]},
"default_value": ["Watched_Value1"],
"options": [
"Watched_Value1",
@@ -527,7 +527,7 @@
},
{
"function": "REPORT_ON",
- "type": "text.multiselect",
+ "type": {"dataType":"array", "elements": [{"elementType" : "select", "elementOptions" : [{"multiple":"true"}] ,"transformers": []}]},
"default_value": ["new", "watched-changed"],
"options": ["new", "watched-changed", "watched-not-changed"],
"localized": ["name", "description"],
diff --git a/front/plugins/notification_processing/config.json b/front/plugins/notification_processing/config.json
index 0154ff63..f5a8cff5 100755
--- a/front/plugins/notification_processing/config.json
+++ b/front/plugins/notification_processing/config.json
@@ -29,7 +29,7 @@
"settings": [
{
"function": "INCLUDED_SECTIONS",
- "type": "text.multiselect",
+ "type": {"dataType":"array", "elements": [{"elementType" : "select", "elementOptions" : [{"multiple":"true"}] ,"transformers": []}]},
"default_value": ["new_devices", "down_devices", "events"],
"options": [
"new_devices",
@@ -70,7 +70,7 @@
},
{
"function": "alert_down_time",
- "type": "integer",
+ "type": {"dataType":"integer", "elements": [{"elementType" : "input", "elementOptions" : [{"type": "number"}] ,"transformers": []}]},
"default_value": 5,
"options": [],
"localized": ["name", "description"],
@@ -89,7 +89,7 @@
},
{
"function": "new_dev_condition",
- "type": "text",
+ "type": {"dataType":"string", "elements": [{"elementType" : "input", "elementOptions" : [] ,"transformers": []}]},
"default_value": "",
"options": [],
"localized": ["name", "description"],
@@ -108,7 +108,7 @@
},
{
"function": "event_condition",
- "type": "text",
+ "type": {"dataType":"string", "elements": [{"elementType" : "input", "elementOptions" : [] ,"transformers": []}]},
"default_value": "",
"options": [],
"localized": ["name", "description"],
diff --git a/front/plugins/nslookup_scan/config.json b/front/plugins/nslookup_scan/config.json
index 4715add5..1c5625e1 100755
--- a/front/plugins/nslookup_scan/config.json
+++ b/front/plugins/nslookup_scan/config.json
@@ -36,7 +36,7 @@
{
"function": "RUN",
"events": ["run"],
- "type": "text.select",
+ "type": {"dataType":"string", "elements": [{"elementType" : "select", "elementOptions" : [] ,"transformers": []}]},
"default_value": "disabled",
"options": [
"disabled",
@@ -70,7 +70,7 @@
},
{
"function": "CMD",
- "type": "readonly",
+ "type": {"dataType":"string", "elements": [{"elementType" : "input", "elementOptions" : [{"readonly": "true"}] ,"transformers": []}]},
"default_value": "python3 /app/front/plugins/nslookup_scan/nslookup.py",
"options": [],
"localized": ["name", "description"],
@@ -105,7 +105,7 @@
},
{
"function": "RUN_SCHD",
- "type": "text",
+ "type": {"dataType":"string", "elements": [{"elementType" : "input", "elementOptions" : [] ,"transformers": []}]},
"default_value": "*/30 * * * *",
"options": [],
"localized": ["name", "description"],
@@ -140,7 +140,7 @@
},
{
"function": "RUN_TIMEOUT",
- "type": "integer",
+ "type": {"dataType":"integer", "elements": [{"elementType" : "input", "elementOptions" : [{"type": "number"}] ,"transformers": []}]},
"default_value": 10,
"options": [],
"localized": ["name", "description"],
diff --git a/front/plugins/omada_sdn_imp/README.md b/front/plugins/omada_sdn_imp/README.md
index c73241c3..1ebe573e 100755
--- a/front/plugins/omada_sdn_imp/README.md
+++ b/front/plugins/omada_sdn_imp/README.md
@@ -1,6 +1,6 @@
## Overview
-PLugin functionality overview and links to external resources if relevant. Include use cases if available.
+Plugin functionality overview and links to external resources if relevant. Include use cases if available.
> [!TIP]
> Some tip.
@@ -20,4 +20,6 @@ To set up the plugin correctly, make sure...
### Notes
-- Additional notes, limitations, Author info.
\ No newline at end of file
+- Additional notes, limitations, Author info.
+
+Made with ❤ by [@FlyingToto](https://github.com/FlyingToto) 🙏
\ No newline at end of file
diff --git a/front/plugins/omada_sdn_imp/config.json b/front/plugins/omada_sdn_imp/config.json
index 6ec693f2..dd122d8e 100755
--- a/front/plugins/omada_sdn_imp/config.json
+++ b/front/plugins/omada_sdn_imp/config.json
@@ -39,7 +39,7 @@
{
"function": "RUN",
"events": ["run"],
- "type": "text.select",
+ "type": {"dataType":"string", "elements": [{"elementType" : "select", "elementOptions" : [] ,"transformers": []}]},
"default_value": "disabled",
"options": [
@@ -72,7 +72,7 @@
},
{
"function": "RUN_SCHD",
- "type": "text",
+ "type": {"dataType":"string", "elements": [{"elementType" : "input", "elementOptions" : [] ,"transformers": []}]},
"default_value": "*/5 * * * *",
"options": [],
@@ -100,7 +100,7 @@
},
{
"function": "url",
- "type": "text",
+ "type": {"dataType":"string", "elements": [{"elementType" : "input", "elementOptions" : [] ,"transformers": []}]},
"maxLength": 50,
"default_value": "",
"options": [],
@@ -120,7 +120,7 @@
},
{
"function": "sites",
- "type": "list",
+ "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"],
@@ -139,7 +139,7 @@
},
{
"function": "username",
- "type": "text",
+ "type": {"dataType":"string", "elements": [{"elementType" : "input", "elementOptions" : [] ,"transformers": []}]},
"maxLength": 50,
"default_value": "",
"options": [],
@@ -159,7 +159,7 @@
},
{
"function": "password",
- "type": "password",
+ "type": {"dataType":"string", "elements": [{"elementType" : "input", "elementOptions" : [{"type":"password"}] ,"transformers": []}]},
"maxLength": 50,
"default_value": "",
"options": [],
@@ -179,7 +179,7 @@
},
{
"function": "force_overwrite",
- "type": "boolean",
+ "type": {"dataType":"boolean", "elements": [{"elementType" : "input", "elementOptions" : [{"type":"checkbox"}] ,"transformers": []}]},
"default_value": false,
"options": [],
"localized": ["name", "description"],
@@ -198,7 +198,7 @@
},
{
"function": "CMD",
- "type": "readonly",
+ "type": {"dataType":"string", "elements": [{"elementType" : "input", "elementOptions" : [{"readonly": "true"}] ,"transformers": []}]},
"default_value": "python3 /app/front/plugins/omada_sdn_imp/omada_sdn.py",
"options": [],
"localized": ["name", "description"],
@@ -233,7 +233,7 @@
},
{
"function": "RUN_TIMEOUT",
- "type": "integer",
+ "type": {"dataType":"integer", "elements": [{"elementType" : "input", "elementOptions" : [{"type": "number"}] ,"transformers": []}]},
"default_value": 30,
"options": [],
"localized": ["name", "description"],
@@ -292,7 +292,7 @@
"Watched_Value3",
"Watched_Value4"
],
- "type": "text.multiselect"
+ "type": {"dataType":"array", "elements": [{"elementType" : "select", "elementOptions" : [{"multiple":"true"}] ,"transformers": []}]}
},
{
"default_value": ["new", "watched-changed"],
@@ -316,7 +316,7 @@
"watched-not-changed",
"missing-in-last-scan"
],
- "type": "text.multiselect"
+ "type": {"dataType":"array", "elements": [{"elementType" : "select", "elementOptions" : [{"multiple":"true"}] ,"transformers": []}]}
}
],
"database_column_definitions": [
diff --git a/front/plugins/pholus_scan/config.json b/front/plugins/pholus_scan/config.json
index 996cd823..b983d3c5 100755
--- a/front/plugins/pholus_scan/config.json
+++ b/front/plugins/pholus_scan/config.json
@@ -62,7 +62,7 @@
"settings": [
{
"function": "RUN",
- "type": "text.select",
+ "type": {"dataType":"string", "elements": [{"elementType" : "select", "elementOptions" : [] ,"transformers": []}]},
"default_value": "disabled",
"options": [
"disabled",
@@ -96,7 +96,7 @@
},
{
"function": "CMD",
- "type": "readonly",
+ "type": {"dataType":"string", "elements": [{"elementType" : "input", "elementOptions" : [{"readonly": "true"}] ,"transformers": []}]},
"default_value": "python3 /app/front/plugins/pholus_scan/script.py userSubnets={subnets} timeoutSec={timeout}",
"options": [],
"localized": ["name", "description"],
@@ -123,7 +123,7 @@
},
{
"function": "RUN_TIMEOUT",
- "type": "integer",
+ "type": {"dataType":"integer", "elements": [{"elementType" : "input", "elementOptions" : [{"type": "number"}] ,"transformers": []}]},
"default_value": 300,
"options": [],
"localized": ["name", "description"],
@@ -150,7 +150,7 @@
},
{
"function": "RUN_SCHD",
- "type": "text",
+ "type": {"dataType":"string", "elements": [{"elementType" : "input", "elementOptions" : [] ,"transformers": []}]},
"default_value": "30 3 * * *",
"options": [],
"localized": ["name", "description"],
@@ -177,7 +177,7 @@
},
{
"function": "DAYS_DATA",
- "type": "integer",
+ "type": {"dataType":"integer", "elements": [{"elementType" : "input", "elementOptions" : [{"type": "number"}] ,"transformers": []}]},
"default_value": 30,
"options": [],
"localized": ["name", "description"],
@@ -204,7 +204,7 @@
},
{
"function": "WATCH",
- "type": "text.multiselect",
+ "type": {"dataType":"array", "elements": [{"elementType" : "select", "elementOptions" : [{"multiple":"true"}] ,"transformers": []}]},
"default_value": ["Watched_Value1", "Watched_Value2"],
"options": [
"Watched_Value1",
@@ -236,7 +236,7 @@
},
{
"function": "REPORT_ON",
- "type": "text.multiselect",
+ "type": {"dataType":"array", "elements": [{"elementType" : "select", "elementOptions" : [{"multiple":"true"}] ,"transformers": []}]},
"default_value": ["new"],
"options": [
"new",
diff --git a/front/plugins/pihole_scan/config.json b/front/plugins/pihole_scan/config.json
index 211a3710..10f1cef0 100755
--- a/front/plugins/pihole_scan/config.json
+++ b/front/plugins/pihole_scan/config.json
@@ -60,7 +60,7 @@
{
"function": "RUN",
"events": ["run"],
- "type": "text.select",
+ "type": {"dataType":"string", "elements": [{"elementType" : "select", "elementOptions" : [] ,"transformers": []}]},
"default_value": "disabled",
"options": [
"disabled",
@@ -93,7 +93,7 @@
},
{
"function": "CMD",
- "type": "text",
+ "type": {"dataType":"string", "elements": [{"elementType" : "input", "elementOptions" : [] ,"transformers": []}]},
"default_value": "SELECT n.hwaddr AS Object_PrimaryID, {s-quote}null{s-quote} AS Object_SecondaryID, datetime() AS DateTime, na.ip AS Watched_Value1, n.lastQuery AS Watched_Value2, na.name AS Watched_Value3, n.macVendor AS Watched_Value4, {s-quote}null{s-quote} AS Extra, n.hwaddr AS ForeignKey FROM EXTERNAL_PIHOLE.Network AS n LEFT JOIN EXTERNAL_PIHOLE.Network_Addresses AS na ON na.network_id = n.id WHERE n.hwaddr NOT LIKE {s-quote}ip-%{s-quote} AND n.hwaddr is not {s-quote}00:00:00:00:00:00{s-quote} AND na.ip is not null",
"options": [],
"localized": ["name", "description"],
@@ -120,7 +120,7 @@
},
{
"function": "DB_PATH",
- "type": "text",
+ "type": {"dataType":"string", "elements": [{"elementType" : "input", "elementOptions" : [] ,"transformers": []}]},
"default_value": "/etc/pihole/pihole-FTL.db",
"options": [],
"localized": ["name", "description"],
@@ -147,7 +147,7 @@
},
{
"function": "RUN_SCHD",
- "type": "text",
+ "type": {"dataType":"string", "elements": [{"elementType" : "input", "elementOptions" : [] ,"transformers": []}]},
"default_value": "*/30 * * * *",
"options": [],
"localized": ["name", "description"],
@@ -174,7 +174,7 @@
},
{
"function": "WATCH",
- "type": "text.multiselect",
+ "type": {"dataType":"array", "elements": [{"elementType" : "select", "elementOptions" : [{"multiple":"true"}] ,"transformers": []}]},
"default_value": ["Watched_Value1", "Watched_Value2"],
"options": [
"Watched_Value1",
@@ -206,7 +206,7 @@
},
{
"function": "REPORT_ON",
- "type": "text.multiselect",
+ "type": {"dataType":"array", "elements": [{"elementType" : "select", "elementOptions" : [{"multiple":"true"}] ,"transformers": []}]},
"default_value": ["new"],
"options": [
"new",
diff --git a/front/plugins/set_password/config.json b/front/plugins/set_password/config.json
index 210a187c..f31266dc 100755
--- a/front/plugins/set_password/config.json
+++ b/front/plugins/set_password/config.json
@@ -47,7 +47,7 @@
"settings": [
{
"function": "enable_password",
- "type": "boolean",
+ "type": {"dataType":"boolean", "elements": [{"elementType" : "input", "elementOptions" : [{"type":"checkbox"}] ,"transformers": []}]},
"default_value": false,
"options": [],
"localized": ["name", "description"],
@@ -66,7 +66,7 @@
},
{
"function": "password",
- "type": "password.SHA256",
+ "type": {"dataType":"string", "elements": [{"elementType" : "input", "elementOptions" : [{"type":"password"}] ,"transformers": ["sha256"]}]},
"maxLength": 50,
"default_value": "123456",
"options": [],
diff --git a/front/plugins/snmp_discovery/config.json b/front/plugins/snmp_discovery/config.json
index 650eb4fa..3e698ae5 100755
--- a/front/plugins/snmp_discovery/config.json
+++ b/front/plugins/snmp_discovery/config.json
@@ -339,7 +339,7 @@
{
"function": "RUN",
"events": ["run"],
- "type": "text.select",
+ "type": {"dataType":"string", "elements": [{"elementType" : "select", "elementOptions" : [] ,"transformers": []}]},
"default_value": "disabled",
"options": [
"disabled",
@@ -372,7 +372,7 @@
},
{
"function": "CMD",
- "type": "text",
+ "type": {"dataType":"string", "elements": [{"elementType" : "input", "elementOptions" : [] ,"transformers": []}]},
"default_value": "python3 /app/front/plugins/snmp_discovery/script.py routers={s-quote}{routers}{s-quote}",
"options": [],
"localized": ["name", "description"],
@@ -399,7 +399,7 @@
},
{
"function": "routers",
- "type": "list",
+ "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": [
"snmpwalk -v 2c -c public -OXsq 192.168.1.1 .1.3.6.1.2.1.3.1.1.2"
],
@@ -428,7 +428,7 @@
},
{
"function": "RUN_SCHD",
- "type": "text",
+ "type": {"dataType":"string", "elements": [{"elementType" : "input", "elementOptions" : [] ,"transformers": []}]},
"default_value": "0 2 * * *",
"options": [],
"localized": ["name", "description"],
@@ -455,7 +455,7 @@
},
{
"function": "RUN_TIMEOUT",
- "type": "integer",
+ "type": {"dataType":"integer", "elements": [{"elementType" : "input", "elementOptions" : [{"type": "number"}] ,"transformers": []}]},
"default_value": 5,
"options": [],
"localized": ["name", "description"],
@@ -486,7 +486,7 @@
},
{
"function": "WATCH",
- "type": "text.multiselect",
+ "type": {"dataType":"array", "elements": [{"elementType" : "select", "elementOptions" : [{"multiple":"true"}] ,"transformers": []}]},
"default_value": ["Watched_Value1"],
"options": [
"Watched_Value1",
@@ -518,7 +518,7 @@
},
{
"function": "REPORT_ON",
- "type": "text.multiselect",
+ "type": {"dataType":"array", "elements": [{"elementType" : "select", "elementOptions" : [{"multiple":"true"}] ,"transformers": []}]},
"default_value": ["new", "watched-changed"],
"options": [
"new",
diff --git a/front/plugins/sync/config.json b/front/plugins/sync/config.json
index a873141a..603cfa54 100755
--- a/front/plugins/sync/config.json
+++ b/front/plugins/sync/config.json
@@ -39,7 +39,7 @@
{
"function": "RUN",
"events": ["run"],
- "type": "text.select",
+ "type": {"dataType":"string", "elements": [{"elementType" : "select", "elementOptions" : [] ,"transformers": []}]},
"default_value": "disabled",
"options": [
@@ -74,7 +74,7 @@
},
{
"function": "RUN_SCHD",
- "type": "text",
+ "type": {"dataType":"string", "elements": [{"elementType" : "input", "elementOptions" : [] ,"transformers": []}]},
"default_value": "*/5 * * * *",
"options": [],
@@ -102,7 +102,7 @@
},
{
"function": "api_token",
- "type": "text",
+ "type": {"dataType":"string", "elements": [{"elementType" : "input", "elementOptions" : [] ,"transformers": []}]},
"maxLength": 50,
"default_value": "",
"options": [],
@@ -122,7 +122,7 @@
},
{
"function": "encryption_key",
- "type": "text",
+ "type": {"dataType":"string", "elements": [{"elementType" : "input", "elementOptions" : [] ,"transformers": []}]},
"maxLength": 50,
"default_value": "",
"options": [],
@@ -142,7 +142,7 @@
},
{
"function": "hub_url",
- "type": "text",
+ "type": {"dataType":"string", "elements": [{"elementType" : "input", "elementOptions" : [] ,"transformers": []}]},
"maxLength": 50,
"default_value": "",
@@ -163,7 +163,7 @@
},
{
"function": "node_name",
- "type": "text",
+ "type": {"dataType":"string", "elements": [{"elementType" : "input", "elementOptions" : [] ,"transformers": []}]},
"maxLength": 50,
"default_value": "",
"options": [],
@@ -183,7 +183,7 @@
},
{
"function": "devices",
- "type": "boolean",
+ "type": {"dataType":"boolean", "elements": [{"elementType" : "input", "elementOptions" : [{"type":"checkbox"}] ,"transformers": []}]},
"default_value": false,
"options": [],
"localized": ["name", "description"],
@@ -202,7 +202,7 @@
},
{
"function": "plugins",
- "type": "list.select",
+ "type": {"dataType":"array", "elements": [{"elementType" : "select", "elementOptions" : [{"multiple":"true"}] ,"transformers": []}]},
"maxLength": 50,
"default_value": [],
"options": ["{value}"],
@@ -229,7 +229,7 @@
},
{
"function": "CMD",
- "type": "readonly",
+ "type": {"dataType":"string", "elements": [{"elementType" : "input", "elementOptions" : [{"readonly": "true"}] ,"transformers": []}]},
"default_value": "python3 /app/front/plugins/sync/sync.py",
"options": [],
"localized": ["name", "description"],
@@ -264,7 +264,7 @@
},
{
"function": "RUN_TIMEOUT",
- "type": "integer",
+ "type": {"dataType":"integer", "elements": [{"elementType" : "input", "elementOptions" : [{"type": "number"}] ,"transformers": []}]},
"default_value": 30,
"options": [],
"localized": ["name", "description"],
diff --git a/front/plugins/ui_settings/config.json b/front/plugins/ui_settings/config.json
index f97f5079..1b3d60de 100755
--- a/front/plugins/ui_settings/config.json
+++ b/front/plugins/ui_settings/config.json
@@ -28,7 +28,7 @@
"settings": [
{
"function": "shown_cards",
- "type": "text.multiselect",
+ "type": {"dataType":"array", "elements": [{"elementType" : "select", "elementOptions" : [{"multiple":"true"}] ,"transformers": []}]},
"maxLength": 50,
"default_value": [
"my_devices",
@@ -64,7 +64,7 @@
},
{
"function": "hide_empty",
- "type": "boolean",
+ "type": {"dataType":"boolean", "elements": [{"elementType" : "input", "elementOptions" : [{"type":"checkbox"}] ,"transformers": []}]},
"default_value": false,
"options": [],
"localized": ["name", "description"],
diff --git a/front/plugins/undiscoverables/README.md b/front/plugins/undiscoverables/README.md
index 6d00d808..6dcef70a 100755
--- a/front/plugins/undiscoverables/README.md
+++ b/front/plugins/undiscoverables/README.md
@@ -25,3 +25,6 @@ Allowing Un-Discoverable devices like hubs, switches or APs to be added to the n
### Known Limitations
- Un-Discoverable Devices always show as offline. That is expected as they can not be discovered by NetAlertX.
- All IPs are set to 0.0.0.0 therefore the "Random MAC" icon might show up.
+
+Made with ❤ by [@Data-Monkey](https://github.com/Data-Monkey) 🙏
+
diff --git a/front/plugins/undiscoverables/config.json b/front/plugins/undiscoverables/config.json
index 7f480dae..8babb797 100755
--- a/front/plugins/undiscoverables/config.json
+++ b/front/plugins/undiscoverables/config.json
@@ -60,7 +60,7 @@
{
"function": "RUN",
"events": ["run"],
- "type": "text.select",
+ "type": {"dataType":"string", "elements": [{"elementType" : "select", "elementOptions" : [] ,"transformers": []}]},
"default_value": "disabled",
"options": ["disabled", "once", "schedule", "always_after_scan"],
"localized": ["name", "description"],
@@ -95,7 +95,7 @@
},
{
"function": "CMD",
- "type": "text",
+ "type": {"dataType":"string", "elements": [{"elementType" : "input", "elementOptions" : [] ,"transformers": []}]},
"default_value": "python3 /app/front/plugins/undiscoverables/script.py devices={devices}",
"options": [],
"localized": ["name", "description"],
@@ -130,7 +130,7 @@
},
{
"function": "RUN_TIMEOUT",
- "type": "integer",
+ "type": {"dataType":"integer", "elements": [{"elementType" : "input", "elementOptions" : [{"type": "number"}] ,"transformers": []}]},
"default_value": 10,
"options": [],
"localized": ["name", "description"],
@@ -165,7 +165,7 @@
},
{
"function": "WATCH",
- "type": "readonly",
+ "type": {"dataType":"string", "elements": [{"elementType" : "input", "elementOptions" : [{"readonly": "true"}] ,"transformers": []}]},
"default_value": [],
"options": [],
"localized": ["name", "description"],
@@ -200,7 +200,7 @@
},
{
"function": "REPORT_ON",
- "type": "readonly",
+ "type": {"dataType":"string", "elements": [{"elementType" : "input", "elementOptions" : [{"readonly": "true"}] ,"transformers": []}]},
"default_value": [],
"options": [
"new",
@@ -240,7 +240,7 @@
},
{
"function": "devices_to_import",
- "type": "list",
+ "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": ["dummy_router"],
"options": [],
"localized": ["name", "description"],
@@ -275,7 +275,7 @@
},
{
"function": "RUN_SCHD",
- "type": "text",
+ "type": {"dataType":"string", "elements": [{"elementType" : "input", "elementOptions" : [] ,"transformers": []}]},
"default_value": "*/5 * * * *",
"options": [],
"localized": ["name", "description"],
diff --git a/front/plugins/unifi_import/config.json b/front/plugins/unifi_import/config.json
index b06660b6..459d36ef 100755
--- a/front/plugins/unifi_import/config.json
+++ b/front/plugins/unifi_import/config.json
@@ -483,7 +483,7 @@
"always_after_scan",
"on_new_device"
],
- "type": "text.select"
+ "type": {"dataType":"string", "elements": [{"elementType" : "select", "elementOptions" : [] ,"transformers": []}]}
},
{
"default_value": "python3 /app/front/plugins/unifi_import/script.py username={username} password={password} host={host} sites={sites} port={port} verifyssl={verifyssl} version={version} fullimport={fullimport}",
@@ -518,7 +518,7 @@
}
],
"options": [],
- "type": "text"
+ "type": {"dataType":"string", "elements": [{"elementType" : "input", "elementOptions" : [] ,"transformers": []}]}
},
{
"default_value": "",
@@ -545,7 +545,7 @@
}
],
"options": [],
- "type": "text"
+ "type": {"dataType":"string", "elements": [{"elementType" : "input", "elementOptions" : [] ,"transformers": []}]}
},
{
"default_value": "",
@@ -572,7 +572,7 @@
}
],
"options": [],
- "type": "password"
+ "type": {"dataType":"string", "elements": [{"elementType" : "input", "elementOptions" : [{"type":"password"}] ,"transformers": []}]}
},
{
"default_value": "192.168.1.1",
@@ -599,7 +599,7 @@
}
],
"options": [],
- "type": "text"
+ "type": {"dataType":"string", "elements": [{"elementType" : "input", "elementOptions" : [] ,"transformers": []}]}
},
{
"default_value": "8443",
@@ -626,7 +626,7 @@
}
],
"options": [],
- "type": "text"
+ "type": {"dataType":"string", "elements": [{"elementType" : "input", "elementOptions" : [] ,"transformers": []}]}
},
{
"default_value": "false",
@@ -653,11 +653,11 @@
}
],
"options": ["true", "false"],
- "type": "text.select"
+ "type": {"dataType":"string", "elements": [{"elementType" : "select", "elementOptions" : [] ,"transformers": []}]}
},
{
"function": "version",
- "type": "text",
+ "type": {"dataType":"string", "elements": [{"elementType" : "input", "elementOptions" : [] ,"transformers": []}]},
"default_value": "v4",
"options": [],
"localized": ["name", "description"],
@@ -707,7 +707,7 @@
}
],
"options": [],
- "type": "list"
+ "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": "0 2 * * *",
@@ -734,7 +734,7 @@
}
],
"options": [],
- "type": "text"
+ "type": {"dataType":"string", "elements": [{"elementType" : "input", "elementOptions" : [] ,"transformers": []}]}
},
{
"default_value": 5,
@@ -769,7 +769,7 @@
}
],
"options": [],
- "type": "integer"
+ "type": {"dataType":"integer", "elements": [{"elementType" : "input", "elementOptions" : [{"type": "number"}] ,"transformers": []}]}
},
{
"default_value": ["Watched_Value1", "Watched_Value4"],
@@ -801,7 +801,7 @@
"Watched_Value3",
"Watched_Value4"
],
- "type": "text.multiselect"
+ "type": {"dataType":"array", "elements": [{"elementType" : "select", "elementOptions" : [{"multiple":"true"}] ,"transformers": []}]}
},
{
"default_value": ["new", "watched-changed"],
@@ -833,7 +833,7 @@
"watched-not-changed",
"missing-in-last-scan"
],
- "type": "text.multiselect"
+ "type": {"dataType":"array", "elements": [{"elementType" : "select", "elementOptions" : [{"multiple":"true"}] ,"transformers": []}]}
},
{
"default_value": "disabled",
@@ -868,7 +868,7 @@
}
],
"options": ["disabled", "once", "always"],
- "type": "text.select"
+ "type": {"dataType":"string", "elements": [{"elementType" : "select", "elementOptions" : [] ,"transformers": []}]}
}
]
}
diff --git a/front/plugins/vendor_update/config.json b/front/plugins/vendor_update/config.json
index bd298640..1b86086b 100755
--- a/front/plugins/vendor_update/config.json
+++ b/front/plugins/vendor_update/config.json
@@ -41,7 +41,7 @@
{
"function": "RUN",
"events": ["run"],
- "type": "text.select",
+ "type": {"dataType":"string", "elements": [{"elementType" : "select", "elementOptions" : [] ,"transformers": []}]},
"default_value": "schedule",
"options": ["disabled", "once", "schedule", "always_after_scan"],
"localized": ["name", "description"],
@@ -72,7 +72,7 @@
},
{
"function": "CMD",
- "type": "readonly",
+ "type": {"dataType":"string", "elements": [{"elementType" : "input", "elementOptions" : [{"readonly": "true"}] ,"transformers": []}]},
"default_value": "python3 /app/front/plugins/vendor_update/script.py",
"options": [],
"localized": ["name", "description"],
@@ -107,7 +107,7 @@
},
{
"function": "RUN_SCHD",
- "type": "text",
+ "type": {"dataType":"string", "elements": [{"elementType" : "input", "elementOptions" : [] ,"transformers": []}]},
"default_value": "0 4 * * 3",
"options": [],
"localized": ["name", "description"],
@@ -142,7 +142,7 @@
},
{
"function": "RUN_TIMEOUT",
- "type": "integer",
+ "type": {"dataType":"integer", "elements": [{"elementType" : "input", "elementOptions" : [{"type": "number"}] ,"transformers": []}]},
"default_value": 600,
"options": [],
"localized": ["name", "description"],
@@ -177,7 +177,7 @@
},
{
"function": "WATCH",
- "type": "text.multiselect",
+ "type": {"dataType":"array", "elements": [{"elementType" : "select", "elementOptions" : [{"multiple":"true"}] ,"transformers": []}]},
"default_value": ["Watched_Value1"],
"options": [
"Watched_Value1",
@@ -213,7 +213,7 @@
},
{
"function": "REPORT_ON",
- "type": "text.multiselect",
+ "type": {"dataType":"array", "elements": [{"elementType" : "select", "elementOptions" : [{"multiple":"true"}] ,"transformers": []}]},
"default_value": ["new", "watched-changed"],
"options": [
"new",
diff --git a/front/plugins/website_monitor/config.json b/front/plugins/website_monitor/config.json
index fe8b9266..6c5e25af 100755
--- a/front/plugins/website_monitor/config.json
+++ b/front/plugins/website_monitor/config.json
@@ -344,7 +344,7 @@
{
"function": "RUN",
"events": ["run"],
- "type": "text.select",
+ "type": {"dataType":"string", "elements": [{"elementType" : "select", "elementOptions" : [] ,"transformers": []}]},
"default_value": "disabled",
"options": [
"disabled",
@@ -377,7 +377,7 @@
},
{
"function": "CMD",
- "type": "text",
+ "type": {"dataType":"string", "elements": [{"elementType" : "input", "elementOptions" : [] ,"transformers": []}]},
"default_value": "python3 /app/front/plugins/website_monitor/script.py urls={urls}",
"options": [],
"localized": ["name", "description"],
@@ -404,7 +404,7 @@
},
{
"function": "RUN_SCHD",
- "type": "text",
+ "type": {"dataType":"string", "elements": [{"elementType" : "input", "elementOptions" : [] ,"transformers": []}]},
"default_value": "0 2 * * *",
"options": [],
"localized": ["name", "description"],
@@ -431,7 +431,7 @@
},
{
"function": "API_SQL",
- "type": "text",
+ "type": {"dataType":"string", "elements": [{"elementType" : "input", "elementOptions" : [] ,"transformers": []}]},
"default_value": "SELECT * FROM plugin_website_monitor",
"options": [],
"localized": ["name", "description"],
@@ -458,7 +458,7 @@
},
{
"function": "RUN_TIMEOUT",
- "type": "integer",
+ "type": {"dataType":"integer", "elements": [{"elementType" : "input", "elementOptions" : [{"type": "number"}] ,"transformers": []}]},
"default_value": 5,
"options": [],
"localized": ["name", "description"],
@@ -489,7 +489,7 @@
},
{
"function": "WATCH",
- "type": "text.multiselect",
+ "type": {"dataType":"array", "elements": [{"elementType" : "select", "elementOptions" : [{"multiple":"true"}] ,"transformers": []}]},
"default_value": ["Watched_Value1"],
"options": [
"Watched_Value1",
@@ -521,7 +521,7 @@
},
{
"function": "REPORT_ON",
- "type": "text.multiselect",
+ "type": {"dataType":"array", "elements": [{"elementType" : "select", "elementOptions" : [{"multiple":"true"}] ,"transformers": []}]},
"default_value": ["new", "watched-changed"],
"options": [
"new",
@@ -553,7 +553,7 @@
},
{
"function": "urls_to_check",
- "type": "list",
+ "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": ["https://google.com", "https://duck.com"],
"options": [],
"localized": ["name", "description"],
@@ -580,7 +580,7 @@
},
{
"function": "SQL_internet_ip",
- "type": "readonly",
+ "type": {"dataType":"string", "elements": [{"elementType" : "input", "elementOptions" : [{"readonly": "true"}] ,"transformers": []}]},
"default_value": "SELECT dev_LastIP FROM Devices WHERE dev_MAC = 'Internet'",
"options": [],
"localized": ["name", "description"],
diff --git a/front/plugins/workflows/config.json b/front/plugins/workflows/config.json
index 0a795394..8188dea6 100755
--- a/front/plugins/workflows/config.json
+++ b/front/plugins/workflows/config.json
@@ -30,7 +30,7 @@
"settings": [
{
"function": "AppEvents_hist",
- "type": "integer",
+ "type": {"dataType":"integer", "elements": [{"elementType" : "input", "elementOptions" : [{"type": "number"}] ,"transformers": []}]},
"default_value": 5000,
"options": [],
"localized": ["name", "description"],
diff --git a/front/settings.php b/front/settings.php
index a77dbead..bfae0bff 100755
--- a/front/settings.php
+++ b/front/settings.php
@@ -374,9 +374,9 @@ $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) => {
- let val = set['Value'];
+ const val = set['Value'];
const codeName = set['Code_Name'];
- const setType = set['Type'].toLowerCase();
+ const setType = set['Type'];
const isMetadata = codeName.includes('__metadata');
// is this isn't a metadata entry, get corresponding metadata object from the dummy setting
const setObj = isMetadata ? {} : JSON.parse(getSetting(`${codeName}__metadata`));
@@ -414,7 +414,7 @@ $settingsJSON_DB = json_encode($settings, JSON_HEX_TAG | JSON_HEX_AMP | JSON_HEX
${getString(codeName + '_description', set['Description'])}
- `;
}
-
// INPUT
- // pre-processing done, render setting based on type
-
- let inputHtml = "";
- if (setType.startsWith('text') || setType.startsWith('string') || setType.startsWith('date-time') ) {
- // --- process text ---
- if(setType.includes(".select"))
- {
- inputHtml = generateOptions(pluginsData, set, inputHtml, isMultiSelect = false)
-
- } else if(setType.includes(".multiselect"))
- {
- inputHtml = generateOptions(pluginsData, set, inputHtml, isMultiSelect = true)
- } else{
-
- // if it's overridable set readonly accordingly
- if(overridable)
- {
- override ? readonly = "" : readonly = " readonly" ;
- }
-
- inputHtml = ``;
- }
- } else if (setType === 'integer') {
- // --- process integer ---
- inputHtml = ``;
- } else if (setType.startsWith('password')) {
- // --- process password ---
- inputHtml = ``;
- } else if (setType === 'readonly') {
- // --- process readonly ---
- inputHtml = ``;
- } else if (setType === 'boolean' || setType === 'integer.checkbox') {
- // --- process boolean ---
- let checked = val === 'True' || val === '1' ? 'checked' : '';
-
- // if it's overridable set readonly accordingly
- if(overridable)
- {
- override ? disabled = "" : disabled = " disabled" ;
- }
-
- inputHtml = ``;
- } else if (setType === 'integer.select') {
-
- inputHtml = generateOptions(pluginsData, set, inputHtml)
- } else if (setType === 'subnets') {
- // --- process subnets ---
- inputHtml = `
-
-
- `;
+ // Parse the setType JSON string into an object
+ let inputHtml = '';
+ const setTypeObject = JSON.parse(setType.replace(/'/g, '"'));
+ const dataType = setTypeObject.dataType;
+ const elements = setTypeObject.elements || [];
- saved_values = createArray(val);
+ // Iterate through each element in elements array
+ elements.forEach(elementObj => {
+ const { elementType, elementOptions = [], transformers = [] } = elementObj;
+ const {
+ inputType,
+ readOnly,
+ isMultiSelect,
+ cssClasses,
+ placeholder,
+ suffix,
+ sourceIds,
+ separator,
+ editable,
+ valRes,
+ getStringKey,
+ onClick
+ } = handleElementOptions(codeName, elementOptions, transformers, val);
- saved_values.forEach(saved_val => {
- inputHtml += ``;
- });
+ // Generate HTML based on dataType and elementType
+ switch (elementType) {
+ case 'select':
+ inputHtml = generateOptions(pluginsData, set, inputHtml, dataType, isMultiSelect, editable, transformers);
+ break;
- inputHtml += `
-
-
-
-
-
`;
- } else if (setType.startsWith('list')) {
- // --- process list ---
+ case 'input':
+ let checked = val === 'True' || val === '1' ? 'checked' : '';
+ inputType === 'checkbox' ? inputClass = 'checkbox' : inputClass = 'form-control';
- inputHtml += `
-
-
- `;
-
- let saved_values = createArray(val);
-
- saved_values.forEach(saved_val => {
-
- inputHtml += ``;
- });
-
- inputHtml += '
' +
- `
-
-
-
`;
- } else if (setType === 'json') {
- // --- process json ---
- inputHtml = ``;
- }
+ });
// EVENTS
// process events (e.g. run ascan, or test a notification) if associated with the setting
@@ -617,21 +562,14 @@ $settingsJSON_DB = json_encode($settings, JSON_HEX_TAG | JSON_HEX_AMP | JSON_HEX
`
// generate settings in the correct prefix (group) section
- $(`#${prefix} .panel-body`).append(setHtml);
-
- // init remove and edit listitem click gestures
- if(['subnets'].includes(setType) || setType.startsWith('list'))
- {
- initListInteractionOptions(codeName)
- }
-
+ $(`#${prefix} .panel-body`).append(setHtml);
}
});
}
// init finished
-
+ initListInteractionOptions() // init remove and edit listitem click gestures
setupSmoothScrolling()
hideSpinner()
@@ -666,49 +604,78 @@ $settingsJSON_DB = json_encode($settings, JSON_HEX_TAG | JSON_HEX_AMP | JSON_HEX
var settingsArray = [];
// collect values for each of the different input form controls
- const noConversion = ['text', 'integer', 'string', 'password', 'readonly', 'text.select', 'integer.select', 'text.multiselect'];
-
// get settings to determine setting type to store values appropriately
$.get('api/table_settings.json?nocache=' + Date.now(), function(res) {
// loop through the settings definitions from the json
res["data"].forEach(set => {
- prefix = set["Group"]
- setType = set["Type"]
+ prefix = set["Group"]
+ setType = set["Type"]
setCodeName = set["Code_Name"]
- if (noConversion.includes(setType)) {
+ const setTypeObject = JSON.parse(setType.replace(/'/g, '"'));
+ // console.log(setTypeObject);
- settingsArray.push([prefix, setCodeName, setType, $('#'+setCodeName).val()]);
+ const lastElementObj = setTypeObject.elements[setTypeObject.elements.length - 1];
+ const { elementType, elementOptions = [], transformers = [] } = lastElementObj;
+ const {
+ inputType,
+ readOnly,
+ isMultiSelect,
+ cssClasses,
+ placeholder,
+ suffix,
+ sourceIds,
+ separator,
+ editable,
+ valRes,
+ getStringKey,
+ onClick
+ } = handleElementOptions('none', elementOptions, transformers, val = "");
- } else if (setType === 'boolean' || setType === 'integer.checkbox') {
+ let value;
+
+ if (setTypeObject.dataType === "string" ||
+ (setTypeObject.dataType === "integer" && (inputType === "number" || inputType === "text"))) {
- const temp = $(`#${setCodeName}`).is(':checked') ? 1 : 0;
- settingsArray.push([prefix, setCodeName, setType, temp]);
-
- } else if (setType.startsWith('list') || setType === 'subnets') {
+ value = $('#' + setCodeName).val();
+ value = applyTransformers(value, transformers);
+ settingsArray.push([prefix, setCodeName, setTypeObject.dataType, value]);
+
+ } else if (inputType === 'checkbox') {
+ value = $(`#${setCodeName}`).is(':checked') ? 1 : 0;
+ value = applyTransformers(value, transformers);
+ settingsArray.push([prefix, setCodeName, setTypeObject.dataType, value]);
+
+ } else if (setTypeObject.dataType === "array" ) {
+
+ // make sure to collect all if set as "editable" or selected only otherwise
+ $(`#${setCodeName}`).attr("my-editable") == "true" ? additionalSelector = "" : additionalSelector = ":selected"
+
const temps = [];
- $(`#${setCodeName} option`).each(function (i, selected) {
- const vl = $(selected).val();
+ $(`#${setCodeName} option${additionalSelector}`).each(function() {
+ const vl = $(this).val();
if (vl !== '') {
temps.push(vl);
}
- });
+ });
+
+ value = JSON.stringify(temps);
+ value = applyTransformers(value, transformers);
+ settingsArray.push([prefix, setCodeName, setTypeObject.dataType, value]);
+
+ } else if (setTypeObject.dataType === "json") {
- settingsArray.push([prefix, setCodeName, setType, JSON.stringify(temps)]);
- } else if (setType === 'json') {
- const temps = $('#'+setCodeName).val();
- settingsArray.push([prefix, setCodeName, setType, temps]);
- } else if (setType === 'password.SHA256') {
- // save value as SHA256 if value isn't SHA256 already
- var temps = $('#'+setCodeName).val();
-
- if(temps != "" && !isSHA256(temps))
- {
- temps = CryptoJS.SHA256(temps).toString(CryptoJS.enc.Hex);
- }
- settingsArray.push([prefix, setCodeName, setType, temps]);
+ value = $('#' + setCodeName).val();
+ value = applyTransformers(value, transformers);
+ value = JSON.stringify(value, null, 2)
+ settingsArray.push([prefix, setCodeName, setTypeObject.dataType, value]);
+
+ } else {
+ value = $('#' + setCodeName).val();
+ value = applyTransformers(value, transformers);
+ settingsArray.push([prefix, setCodeName, setTypeObject.dataType, value]);
}
});
@@ -716,8 +683,9 @@ $settingsJSON_DB = json_encode($settings, JSON_HEX_TAG | JSON_HEX_AMP | JSON_HEX
if(settingsCollectedCorrectly(settingsArray, settingsJSON_DB))
{
- // console.log(settingsArray);
-
+ console.log(settingsArray);
+ console.log( JSON.stringify(settingsArray));
+ // return;
// trigger a save settings event in the backend
$.ajax({
method: "POST",
@@ -734,7 +702,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/database.py b/server/database.py
index c6fed953..345db587 100755
--- a/server/database.py
+++ b/server/database.py
@@ -2,6 +2,7 @@
import sqlite3
import base64
+import json
# Register NetAlertX modules
from const import fullDbPath, sql_devices_stats, sql_devices_all, sql_generateGuid
@@ -556,6 +557,7 @@ class DB():
result["data"].append(tmp)
# mylog('debug',[ '[Database] - get_table_as_json - returning ', len(rows), " rows with columns: ", columnNames])
+ # mylog('debug',[ '[Database] - get_table_as_json - returning json ', json.dumps(result) ])
return json_obj(result, columnNames)
#-------------------------------------------------------------------------------
diff --git a/server/helper.py b/server/helper.py
index ebfb17f3..368ecaab 100755
--- a/server/helper.py
+++ b/server/helper.py
@@ -312,59 +312,100 @@ def get_setting_value(key):
#-------------------------------------------------------------------------------
# Convert the setting value to the corresponding python type
-def setting_value_to_python_type(set_type, set_value):
+import json
+import base64
+import hashlib
+import json
+import base64
+import hashlib
+
+def setting_value_to_python_type(set_type, set_value):
value = '----not processed----'
- # Handle different types of settings
- if set_type in ['text', 'string', 'password', 'password.SHA256', 'readonly', 'text.select']:
+ # "type": {"dataType":"array", "elements": [{"elementType" : "select", "elementOptions" : [{"multiple":"true"}] ,"transformers": []}]}
+
+
+ setTypJSN = json.loads(str(set_type).replace('"','\"').replace("'",'"'))
+
+ # Handle different types of settings based on set_type dictionary
+ dataType = setTypJSN.get('dataType', '')
+ elements = setTypJSN.get('elements', [])
+
+ # Ensure there's at least one element in the elements list
+ if not elements:
+ mylog('none', [f'[HELPER] No elements provided in set_type: {set_type} '])
+ return value
+
+ # Use the last element in the list
+ last_element = elements[len(elements)-1]
+ elementType = last_element.get('elementType', '')
+ elementOptions = last_element.get('elementOptions', [])
+ transformers = last_element.get('transformers', [])
+
+ # Apply transformers to the value
+ for transformer in transformers:
+ if transformer == 'base64':
+ if isinstance(set_value, str):
+ set_value = base64.b64decode(set_value).decode('utf-8')
+ elif transformer == 'sha256':
+ if isinstance(set_value, str):
+ set_value = hashlib.sha256(set_value.encode()).hexdigest()
+
+ # Convert value based on dataType and elementType
+ if dataType == 'string' and elementType in ['input', 'select']:
value = str(set_value)
- elif set_type in ['boolean', 'integer.checkbox']:
-
- value = False
- if isinstance(set_value, str) and set_value.lower() in ['true', '1']:
- value = True
- elif isinstance(set_value, int) and set_value == 1:
- value = True
+ elif dataType == 'integer' and elementType == 'input':
+ # handle storing/retrieving boolean values as 1/0
+ if set_value.lower() not in ['true', 'false'] and isinstance(set_value, str):
+ value = int(set_value)
elif isinstance(set_value, bool):
- value = set_value
-
- elif set_type in ['integer.select', 'integer']:
- value = int(set_value)
- # belwo covers 'text.multiselect', 'list', 'subnets', 'list.select', 'list'
- elif set_type in ['subnets', 'text.multiselect' ] or 'list' in set_type:
+ value = 1 if set_value else 0
+ elif isinstance(set_value, str):
+ value = 1 if set_value.lower() == 'true' else 0
+ else:
+ value = int(set_value)
- mylog('debug', [f'[SETTINGS] Handling set_type: "{set_type}", set_value: "{set_value}"'])
+ elif dataType == 'boolean' and elementType == 'input':
+ value = set_value.lower() in ['true', '1']
- # Handle string
+ elif dataType == 'array' and elementType == 'select':
if isinstance(set_value, str):
- value = json.loads(set_value.replace("'", "\""))
-
- # Assuming set_value is a list at this point
- if isinstance(set_value, list):
- if 'base64' in set_type:
- tmp_value = []
- for item in set_value:
- tmp_value.append(base64.b64decode(item))
-
- set_value = tmp_value
-
+ try:
+ value = json.loads(set_value.replace("'", "\""))
+ except json.JSONDecodeError as e:
+ print(f"Error decoding JSON array: {e}")
+ value = []
+ elif isinstance(set_value, list):
value = set_value
- elif set_type == '.template':
- # Assuming set_value is a JSON object in this case
- value = json.loads(set_value)
-
- # log debug info if not processed
+ elif dataType == 'object' and elementType == 'input':
+ if isinstance(set_value, str):
+ try:
+ value = json.loads(set_value)
+ except json.JSONDecodeError as e:
+ print(f"Error decoding JSON object: {e}")
+ value = {}
+ elif isinstance(set_value, dict):
+ value = set_value
+
+ elif dataType == 'string' and elementType == 'input' and any(opt.get('readonly') == "true" for opt in elementOptions):
+ value = str(set_value)
+
+ elif dataType == 'string' and elementType == 'input' and any(opt.get('type') == "password" for opt in elementOptions) and 'sha256' in transformers:
+ value = hashlib.sha256(set_value.encode()).hexdigest()
+
+
if value == '----not processed----':
- mylog('none', [f'[SETTINGS] ⚠ ERROR - set_type not handled:{set_type}'])
- mylog('none', [f'[SETTINGS] ⚠ ERROR - setting json:{json.dumps(set_value)}'])
- value = ''
+ mylog('none', [f'[HELPER] ⚠ ERROR not processed set_type: {set_type} '])
+ mylog('none', [f'[HELPER] ⚠ ERROR not processed set_value: {set_value} '])
return value
+
+
#-------------------------------------------------------------------------------
# Generate a WHERE condition for SQLite based on a list of values.
def list_to_where(logical_operator, column_name, condition_operator, values_list):
@@ -601,6 +642,10 @@ import dns.resolver
def cleanDeviceName(str, match_IP):
+ # add matching info
+ if match_IP:
+ str = str + " (IP match)"
+
if get_setting_value('NEWDEV_LESS_NAME_CLEANUP'):
mylog('debug', ["[Name cleanup] Using new cleanDeviceName(" + str + ")"])
@@ -628,9 +673,7 @@ def cleanDeviceName(str, match_IP):
if str.endswith('.'):
str = str[:-1]
- # add matching info
- if match_IP:
- str = str + " (IP match)"
+
# done
mylog('debug', ["[Name cleanup] cleanDeviceName = " + str])
@@ -656,9 +699,6 @@ def cleanDeviceName(str, match_IP):
if str.endswith('.'):
str = str[:-1]
- if match_IP:
- str = str + " (IP match)"
-
mylog('debug', ["cleanDeviceName = " + str])
return str
diff --git a/server/initialise.py b/server/initialise.py
index ecb4238c..a6ce25aa 100755
--- a/server/initialise.py
+++ b/server/initialise.py
@@ -48,7 +48,7 @@ def ccd(key, default, config_dir, name, inputtype, options, group, events=None,
result = result.replace('\'', "{s-quote}")
# Create the tuples
- sql_safe_tuple = (key, name, desc, inputtype, options, regex, str(result), group, str(events))
+ sql_safe_tuple = (key, name, desc, str(inputtype), options, regex, str(result), group, str(events))
settings_tuple = (key, name, desc, inputtype, options, regex, result, group, str(events))
# Update or append the tuples in the lists
@@ -57,7 +57,7 @@ def ccd(key, default, config_dir, name, inputtype, options, group, events=None,
# Save metadata in dummy setting if not a metadata key
if '__metadata' not in key:
- metadata_tuple = (f'{key}__metadata', "metadata name", "metadata desc", 'json', "", "", json.dumps(setJsonMetadata), group, '[]')
+ metadata_tuple = (f'{key}__metadata', "metadata name", "metadata desc", '{"dataType":"json", "elements": [{"elementType" : "textarea", "elementOptions" : [{"readonly": "true"}] ,"transformers": []}]}', '[]', "", json.dumps(setJsonMetadata), group, '[]')
conf.mySettingsSQLsafe = update_or_append(conf.mySettingsSQLsafe, metadata_tuple, f'{key}__metadata')
conf.mySettings = update_or_append(conf.mySettings, metadata_tuple, f'{key}__metadata')
@@ -131,25 +131,25 @@ def importConfigs (db, all_plugins):
# ----------------------------------------
# ccd(key, default, config_dir, name, inputtype, options, group, events=[], desc = "", regex = "", setJsonMetadata = {}, overrideTemplate = {})
- conf.LOADED_PLUGINS = ccd('LOADED_PLUGINS', [] , c_d, 'Loaded plugins', 'list.select', '', 'General')
- conf.SCAN_SUBNETS = ccd('SCAN_SUBNETS', ['192.168.1.0/24 --interface=eth1', '192.168.1.0/24 --interface=eth0'] , c_d, 'Subnets to scan', 'subnets', '', 'General')
- conf.LOG_LEVEL = ccd('LOG_LEVEL', 'verbose' , c_d, 'Log verboseness', 'text.select', "['none', 'minimal', 'verbose', 'debug']", 'General')
- conf.TIMEZONE = ccd('TIMEZONE', 'Europe/Berlin' , c_d, 'Time zone', 'text', '', 'General')
- conf.PLUGINS_KEEP_HIST = ccd('PLUGINS_KEEP_HIST', 250 , c_d, 'Keep history entries', 'integer', '', 'General')
- conf.REPORT_DASHBOARD_URL = ccd('REPORT_DASHBOARD_URL', 'http://netalertx/' , c_d, 'NetAlertX URL', 'text', '', 'General')
- conf.DAYS_TO_KEEP_EVENTS = ccd('DAYS_TO_KEEP_EVENTS', 90 , c_d, 'Delete events days', 'integer', '', 'General')
- conf.HRS_TO_KEEP_NEWDEV = ccd('HRS_TO_KEEP_NEWDEV', 0 , c_d, 'Keep new devices for', 'integer', "0", 'General')
- conf.API_CUSTOM_SQL = ccd('API_CUSTOM_SQL', 'SELECT * FROM Devices WHERE dev_PresentLastScan = 0' , c_d, 'Custom endpoint', 'text', '', 'General')
- conf.NETWORK_DEVICE_TYPES = ccd('NETWORK_DEVICE_TYPES', ['AP', 'Gateway', 'Firewall', 'Hypervisor', 'Powerline', 'Switch', 'WLAN', 'PLC', 'Router','USB LAN Adapter', 'USB WIFI Adapter', 'Internet'] , c_d, 'Network device types', 'list', '', 'General')
+ conf.LOADED_PLUGINS = ccd('LOADED_PLUGINS', [] , c_d, 'Loaded plugins', '{"dataType":"array", "elements": [{"elementType" : "select", "elementOptions" : [{"multiple":"true"}] ,"transformers": []}]}', '[]', 'General')
+ conf.SCAN_SUBNETS = ccd('SCAN_SUBNETS', ['192.168.1.0/24 --interface=eth1', '192.168.1.0/24 --interface=eth0'] , c_d, 'Subnets to scan', '{"dataType": "array","elements": [ {"elementType": "input","elementOptions": [{ "placeholder": "192.168.1.0/24 --interface=eth1" },{ "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": [] }]}', '[]', 'General')
+ conf.LOG_LEVEL = ccd('LOG_LEVEL', 'verbose' , c_d, 'Log verboseness', '{"dataType":"string", "elements": [{"elementType" : "select", "elementOptions" : [] ,"transformers": []}]}', "['none', 'minimal', 'verbose', 'debug']", 'General')
+ conf.TIMEZONE = ccd('TIMEZONE', 'Europe/Berlin' , c_d, 'Time zone', '{"dataType":"string", "elements": [{"elementType" : "input", "elementOptions" : [] ,"transformers": []}]}', '[]', 'General')
+ conf.PLUGINS_KEEP_HIST = ccd('PLUGINS_KEEP_HIST', 250 , c_d, 'Keep history entries', '{"dataType":"integer", "elements": [{"elementType" : "input", "elementOptions" : [{"type": "number"}] ,"transformers": []}]}', '[]', 'General')
+ conf.REPORT_DASHBOARD_URL = ccd('REPORT_DASHBOARD_URL', 'http://netalertx/' , c_d, 'NetAlertX URL', '{"dataType":"string", "elements": [{"elementType" : "input", "elementOptions" : [] ,"transformers": []}]}', '[]', 'General')
+ conf.DAYS_TO_KEEP_EVENTS = ccd('DAYS_TO_KEEP_EVENTS', 90 , c_d, 'Delete events days', '{"dataType":"integer", "elements": [{"elementType" : "input", "elementOptions" : [{"type": "number"}] ,"transformers": []}]}', '[]', 'General')
+ conf.HRS_TO_KEEP_NEWDEV = ccd('HRS_TO_KEEP_NEWDEV', 0 , c_d, 'Keep new devices for', '{"dataType":"integer", "elements": [{"elementType" : "input", "elementOptions" : [{"type": "number"}] ,"transformers": []}]}', "[]", 'General')
+ conf.API_CUSTOM_SQL = ccd('API_CUSTOM_SQL', 'SELECT * FROM Devices WHERE dev_PresentLastScan = 0' , c_d, 'Custom endpoint', '{"dataType":"string", "elements": [{"elementType" : "input", "elementOptions" : [] ,"transformers": []}]}', '[]', 'General')
+ conf.NETWORK_DEVICE_TYPES = ccd('NETWORK_DEVICE_TYPES', ['AP', 'Gateway', 'Firewall', 'Hypervisor', 'Powerline', 'Switch', 'WLAN', 'PLC', 'Router','USB LAN Adapter', 'USB WIFI Adapter', 'Internet'] , c_d, 'Network device types', '{"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": [] }]}', '[]', 'General')
# UI
- conf.UI_LANG = ccd('UI_LANG', 'English' , c_d, 'Language Interface', 'text.select', "['English', 'French', 'German', 'Norwegian', 'Russian', 'Spanish', 'Italian (it_it)', 'Portuguese (pt_br)', 'Polish (pl_pl)', 'Turkish (tr_tr)', 'Chinese (zh_cn)' ]", 'UI')
- conf.UI_NOT_RANDOM_MAC = ccd('UI_NOT_RANDOM_MAC', [] , c_d, 'Exlude from Random Prefix', 'list', "", 'UI')
- conf.UI_ICONS = ccd('UI_ICONS', ['PGkgY2xhc3M9ImZhIGZhLWNvbXB1dGVyIj48L2k+', 'PGkgY2xhc3M9ImZhIGZhLWV0aGVybmV0Ij48L2k+', 'PGkgY2xhc3M9ImZhIGZhLWdhbWVwYWQiPjwvaT4', 'PGkgY2xhc3M9ImZhIGZhLWdsb2JlIj48L2k+', 'PGkgY2xhc3M9ImZhIGZhLWxhcHRvcCI+PC9pPg==', 'PGkgY2xhc3M9ImZhIGZhLWxpZ2h0YnVsYiI+PC9pPg==', 'PGkgY2xhc3M9ImZhIGZhLXNoaWVsZCI+PC9pPg==', 'PGkgY2xhc3M9ImZhIGZhLXdpZmkiPjwvaT4'] , c_d, 'Icons', 'list', "", 'UI')
- conf.UI_REFRESH = ccd('UI_REFRESH', 0 , c_d, 'Refresh interval', 'integer', "", 'UI')
- conf.UI_DEV_SECTIONS = ccd('UI_DEV_SECTIONS', [] , c_d, 'Show sections', 'text.multiselect', "['Tile Cards', 'Device Presence']", 'UI')
- conf.UI_PRESENCE = ccd('UI_PRESENCE', ['online', 'offline', 'archived'] , c_d, 'Include in presence', 'text.multiselect', "['online', 'offline', 'archived']", 'UI')
- conf.UI_MY_DEVICES = ccd('UI_MY_DEVICES', ['online', 'offline', 'archived', 'new', 'down'] , c_d, 'Include in My Devices', 'text.multiselect', "['online', 'offline', 'archived', 'new', 'down']", 'UI')
+ conf.UI_LANG = ccd('UI_LANG', 'English' , c_d, 'Language Interface', '{"dataType":"string", "elements": [{"elementType" : "select", "elementOptions" : [] ,"transformers": []}]}', "['English', 'French', 'German', 'Norwegian', 'Russian', 'Spanish', 'Italian (it_it)', 'Portuguese (pt_br)', 'Polish (pl_pl)', 'Turkish (tr_tr)', 'Chinese (zh_cn)' ]", 'UI')
+ conf.UI_NOT_RANDOM_MAC = ccd('UI_NOT_RANDOM_MAC', [] , c_d, 'Exlude from Random Prefix', '{"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": [] }]}', "[]", 'UI')
+ conf.UI_ICONS = ccd('UI_ICONS', ['PGkgY2xhc3M9ImZhIGZhLWNvbXB1dGVyIj48L2k+', 'PGkgY2xhc3M9ImZhIGZhLWV0aGVybmV0Ij48L2k+', 'PGkgY2xhc3M9ImZhIGZhLWdhbWVwYWQiPjwvaT4', 'PGkgY2xhc3M9ImZhIGZhLWdsb2JlIj48L2k+', 'PGkgY2xhc3M9ImZhIGZhLWxhcHRvcCI+PC9pPg==', 'PGkgY2xhc3M9ImZhIGZhLWxpZ2h0YnVsYiI+PC9pPg==', 'PGkgY2xhc3M9ImZhIGZhLXNoaWVsZCI+PC9pPg==', 'PGkgY2xhc3M9ImZhIGZhLXdpZmkiPjwvaT4'] , c_d, 'Icons', '{"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": [] }]}', "[]", 'UI')
+ conf.UI_REFRESH = ccd('UI_REFRESH', 0 , c_d, 'Refresh interval', '{"dataType":"integer", "elements": [{"elementType" : "input", "elementOptions" : [{"type": "number"}] ,"transformers": []}]}', "[]", 'UI')
+ conf.UI_DEV_SECTIONS = ccd('UI_DEV_SECTIONS', [] , c_d, 'Show sections', '{"dataType":"array", "elements": [{"elementType" : "select", "elementOptions" : [{"multiple":"true"}] ,"transformers": []}]}', "['Tile Cards', 'Device Presence']", 'UI')
+ conf.UI_PRESENCE = ccd('UI_PRESENCE', ['online', 'offline', 'archived'] , c_d, 'Include in presence', '{"dataType":"array", "elements": [{"elementType" : "select", "elementOptions" : [{"multiple":"true"}] ,"transformers": []}]}', "['online', 'offline', 'archived']", 'UI')
+ conf.UI_MY_DEVICES = ccd('UI_MY_DEVICES', ['online', 'offline', 'archived', 'new', 'down'] , c_d, 'Include in My Devices', '{"dataType":"array", "elements": [{"elementType" : "select", "elementOptions" : [{"multiple":"true"}] ,"transformers": []}]}', "['online', 'offline', 'archived', 'new', 'down']", 'UI')
# Init timezone in case it changed
conf.tz = timezone(conf.TIMEZONE)
@@ -288,7 +288,7 @@ def importConfigs (db, all_plugins):
# save the newly discovered plugins as options and default values
- conf.LOADED_PLUGINS = ccd('LOADED_PLUGINS', loaded_plugins_prefixes , c_d, 'Loaded plugins', 'text.multiselect', str(sorted(all_plugins_prefixes)), 'General')
+ conf.LOADED_PLUGINS = ccd('LOADED_PLUGINS', loaded_plugins_prefixes , c_d, 'Loaded plugins', '{"dataType":"array", "elements": [{"elementType" : "select", "elementOptions" : [{"multiple":"true"}] ,"transformers": []}]}', str(sorted(all_plugins_prefixes)), 'General')
mylog('none', ['[Config] Number of Plugins to load: ', len(loaded_plugins_prefixes)])
mylog('none', ['[Config] Plugins to load: ', loaded_plugins_prefixes])
diff --git a/server/notification.py b/server/notification.py
index 16978465..cb9433e0 100755
--- a/server/notification.py
+++ b/server/notification.py
@@ -306,7 +306,7 @@ def write_notification(content, level, timestamp):
if file_contents == '':
file_contents = '[]' # If file is empty, initialize as empty list
- mylog('debug', ['[Notification] User Notifications file: ', file_contents])
+ # mylog('debug', ['[Notification] User Notifications file: ', file_contents])
notifications = json.loads(file_contents) # Parse JSON data
else:
mylog('error', 'File is not of type _io.TextIOWrapper')
diff --git a/server/plugin.py b/server/plugin.py
index c5ecfc1f..952ec8fb 100755
--- a/server/plugin.py
+++ b/server/plugin.py
@@ -33,30 +33,35 @@ class plugin_param:
setVal = inputValue["Value"] # setting value
setTyp = inputValue["Type"] # setting type
- noConversion = ['text', 'string', 'integer', 'boolean', 'password', 'password.SHA256', 'readonly', 'integer.select', 'text.select', 'integer.checkbox' ]
- arrayConversion = ['text.multiselect', 'list', 'list.select', 'subnets']
- jsonConversion = ['.template']
+ setTypJSN = json.loads(setTyp.replace('"','\"').replace("'",'"'))
mylog('debug', f'[Plugins] setTyp: {setTyp}')
+ mylog('debug', f'[Plugins] setTypJSN: {setTypJSN}')
- if '.select' in setTyp or setTyp in arrayConversion:
+ dataType = setTypJSN["dataType"]
+
+ 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
paramValuesCount = len(setVal)
- if setTyp in noConversion:
+ if dataType in ['string','integer', 'boolean']:
resolved = setVal
- elif setTyp in arrayConversion:
+ elif dataType == 'array':
# make them safely passable to a python or linux script
resolved = list_to_csv(setVal)
else:
- for item in jsonConversion:
- if setTyp.endswith(item):
- return json.dumps(setVal)
- else:
- mylog('none', ['[Plugins] ⚠ ERROR: Parameter not converted.'])
-
+ mylog('none', ['[Plugins] ⚠ ERROR: Parameter probably not converted.'])
+ return json.dumps(setVal)
# Get SQL result
if param["type"] == "sql":
diff --git a/server/reporting.py b/server/reporting.py
index 8baf41fb..8b7212bf 100755
--- a/server/reporting.py
+++ b/server/reporting.py
@@ -107,6 +107,8 @@ def get_notifications (db):
"columnNames": json_obj.columnNames
}
json_down_devices = json_obj.json["data"]
+
+ mylog('debug', ['[Notification] json_down_devices: ', json.dumps(json_down_devices) ])
if 'down_reconnected' in sections:
# Compose Reconnected Down Section
@@ -128,6 +130,8 @@ def get_notifications (db):
}
json_down_reconnected = json_obj.json["data"]
+ mylog('debug', ['[Notification] json_down_reconnected: ', json.dumps(json_down_reconnected) ])
+
if 'events' in sections:
# Compose Events Section
sqlQuery = f"""SELECT eve_MAC as MAC, eve_DateTime as Datetime, dev_LastIP as IP, eve_EventType as "Event Type", dev_Name as "Device name", dev_Comments as Comments FROM Events_Devices