diff --git a/src/opnsense/mvc/app/controllers/OPNsense/Firewall/forms/dialogFilterRule.xml b/src/opnsense/mvc/app/controllers/OPNsense/Firewall/forms/dialogFilterRule.xml
index af4cda9bc..e0aa5a8db 100644
--- a/src/opnsense/mvc/app/controllers/OPNsense/Firewall/forms/dialogFilterRule.xml
+++ b/src/opnsense/mvc/app/controllers/OPNsense/Firewall/forms/dialogFilterRule.xml
@@ -54,6 +54,7 @@
rule.source_net
text
+
rule.source_port
@@ -72,6 +73,7 @@
rule.destination_net
text
+
rule.destination_not
diff --git a/src/opnsense/mvc/app/views/OPNsense/Firewall/filter.volt b/src/opnsense/mvc/app/views/OPNsense/Firewall/filter.volt
index 1b3abb397..428c974ff 100644
--- a/src/opnsense/mvc/app/views/OPNsense/Firewall/filter.volt
+++ b/src/opnsense/mvc/app/views/OPNsense/Firewall/filter.volt
@@ -105,58 +105,9 @@
// replace all "net" selectors with details retrieved from "list_network_select_options" endpoint
ajaxGet('/api/firewall/{{ruleController}}/list_network_select_options', [], function(data, status){
- // fetch options
- let options = [];
if (data.single) {
- Object.keys(data).forEach((key, idx) => {
- if (data[key].items !== undefined) {
- let optgrp = $("").attr('label', data[key].label);
- Object.keys(data[key].items).forEach((key2, idx2) => {
- let this_item = data[key].items[key2];
- optgrp.append($("").val(key2).text(this_item));
- });
- options.push(optgrp);
- } else {
- options.push($("").val('').text(data[key].label));
- }
- });
+ $(".net_selector").replaceInputWithSelector(data);
}
- if (options.length == 0) {
- // unable to fetch options.
- return;
- }
- $(".net_selector").each(function(){
- let $items = $("#network_select").clone().show();
- let $this_input = $items.find('input');
- let $this_select = $items.find('select');
- for (i=0; i < options.length; ++i) {
- $this_select.append(options[i].clone());
- }
- $this_select.attr('for', $(this).attr('id')).selectpicker();
- $this_select.change(function(){
- let $value = $(this).val();
- if ($value !== '') {
- $this_input.val($value);
- $this_input.hide();
- } else {
- $this_input.show();
- }
- });
- $this_input.attr('id', $(this).attr('id'));
- $this_input.change(function(){
- $this_select.val($(this).val());
- if ($this_select.val() === null || $this_select.val() == '') {
- $this_select.val('');
- $this_input.show();
- } else {
- $this_input.hide();
- }
- $this_select.selectpicker('refresh');
- });
- $this_input.show();
- $(this).replaceWith($items);
- });
-
});
});
@@ -231,20 +182,4 @@
-
-
{{ partial("layout_partials/base_dialog",['fields':formDialogFilterRule,'id':'DialogFilterRule','label':lang._('Edit rule')])}}