diff --git a/src/opnsense/mvc/app/controllers/OPNsense/IDS/Api/SettingsController.php b/src/opnsense/mvc/app/controllers/OPNsense/IDS/Api/SettingsController.php index e67185c09..bf9ffbbda 100644 --- a/src/opnsense/mvc/app/controllers/OPNsense/IDS/Api/SettingsController.php +++ b/src/opnsense/mvc/app/controllers/OPNsense/IDS/Api/SettingsController.php @@ -211,6 +211,7 @@ class SettingsController extends ApiMutableModelControllerBase $row['reference_html'] .= $item_html . '
'; } } + ksort($row); return $row; } else { return array(); diff --git a/src/opnsense/mvc/app/controllers/OPNsense/IDS/forms/dialogRule.xml b/src/opnsense/mvc/app/controllers/OPNsense/IDS/forms/dialogRule.xml index 9562726e3..08f64bf0d 100644 --- a/src/opnsense/mvc/app/controllers/OPNsense/IDS/forms/dialogRule.xml +++ b/src/opnsense/mvc/app/controllers/OPNsense/IDS/forms/dialogRule.xml @@ -9,25 +9,17 @@ info - - gid - - info - - - classtype - - info - msg info + - reference_html - - info + __template__ + + info + action diff --git a/src/opnsense/mvc/app/views/OPNsense/IDS/index.volt b/src/opnsense/mvc/app/views/OPNsense/IDS/index.volt index 0c4115da5..d3864dff7 100644 --- a/src/opnsense/mvc/app/views/OPNsense/IDS/index.volt +++ b/src/opnsense/mvc/app/views/OPNsense/IDS/index.volt @@ -342,6 +342,33 @@ POSSIBILITY OF SUCH DAMAGE. } return toggle; } + }, + onBeforeRenderDialog: function(payload) { + // update form with dynamic fields + let template_tr = $("#row___template__"); + $(".__rule__metadata_record").remove(); + template_tr.hide(); + if (payload.frm_DialogRule) { + $.each(payload.frm_DialogRule, function(key, value){ + // ignore fixed fields and empty values + if (['sid', 'rev', 'action', 'action_default', 'installed_action', + 'enabled', 'enabled_default', 'msg', 'reference'].includes(key) + || value === null) { + return; + } + let new_tr = template_tr.clone(); + new_tr.prop("id", "row_" + key); + new_tr.addClass("__rule__metadata_record"); + new_tr.html(new_tr.html().replace('__template__label__', key)); + if (key === 'reference_html') { + value = $("