diff --git a/src/opnsense/mvc/app/models/OPNsense/Base/Menu/Menu.xml b/src/opnsense/mvc/app/models/OPNsense/Base/Menu/Menu.xml index 84ed2b039..1cca3b097 100644 --- a/src/opnsense/mvc/app/models/OPNsense/Base/Menu/Menu.xml +++ b/src/opnsense/mvc/app/models/OPNsense/Base/Menu/Menu.xml @@ -145,11 +145,7 @@ - - - - - + diff --git a/src/opnsense/mvc/app/models/OPNsense/Base/Menu/MenuSystem.php b/src/opnsense/mvc/app/models/OPNsense/Base/Menu/MenuSystem.php index 174b58983..38ecb7273 100644 --- a/src/opnsense/mvc/app/models/OPNsense/Base/Menu/MenuSystem.php +++ b/src/opnsense/mvc/app/models/OPNsense/Base/Menu/MenuSystem.php @@ -103,9 +103,9 @@ class MenuSystem } } } - // add interfaces to "Interfaces" menu tab... kind of a hack, may need some improvement. - $ifarr = array(); $config = Config::getInstance()->object(); + // add interfaces to "Interfaces" menu tab... + $ifarr = array(); if ($config->interfaces->count() > 0) { foreach ($config->interfaces->children() as $key => $node) { if (empty($node->virtual)) { @@ -123,7 +123,37 @@ class MenuSystem 'order' => $ordid++, )); } - unset($ifarr); + + // add interfaces to "Firewall: Rules" menu tab... + if ($config->interfaces->count() > 0) { + foreach ($config->interfaces->children() as $key => $node) { + if (isset($node->enable)) { + $fwarr[$key] = !empty($node->descr) ? (string)$node->descr : strtoupper($key); + } + } + } + natcasesort($fwarr); + $fwarr = array_merge(array('FloatingRules' => gettext('Floating')), $fwarr); + $ordid = 0; + foreach ($fwarr as $key => $descr) { + $this->appendItem('Firewall.Rules', $key, array( + 'url' => '/firewall_rules.php?if='. $key, + 'visiblename' => $descr, + 'order' => $ordid++, + )); + $this->appendItem('Firewall.Rules.' . $key, 'Add' . $key, array( + 'url' => '/firewall_rules_edit.php?if='. $key, + 'visibility' => 'hidden', + )); + $this->appendItem('Firewall.Rules.' . $key, 'Edit' . $key, array( + 'url' => '/firewall_rules_edit.php?if=' . $key . '&id=*', + 'visibility' => 'hidden', + )); + $this->appendItem('Firewall.Rules.' . $key, 'Clone' . $key, array( + 'url' => '/firewall_rules_edit.php?if=' . $key . '&dup=*', + 'visibility' => 'hidden', + )); + } } /** diff --git a/src/www/firewall_rules.php b/src/www/firewall_rules.php index 4e3a700df..d2ae0b64e 100644 --- a/src/www/firewall_rules.php +++ b/src/www/firewall_rules.php @@ -275,25 +275,6 @@ $( document ).ready(function() { You must apply the changes in order for them to take effect."));?>
- true)) as $if => $ifdetail) { - $iflist_tabs[$if] = strtoupper($ifdetail['descr']); - } - - $tab_array = array(); - foreach ($iflist_tabs as $ifent => $ifname) { - $active = false; - // mark active if selected or mark floating active when none is selected - if ($ifent == $selected_if) { - $active = true; - } - $tab_array[] = array($ifname, $active, "firewall_rules.php?if={$ifent}"); - } - display_top_tabs($tab_array); -?>