diff --git a/src/usr/local/www/firewall_rules_edit.php b/src/usr/local/www/firewall_rules_edit.php index e7e77179bc2..777c8324666 100644 --- a/src/usr/local/www/firewall_rules_edit.php +++ b/src/usr/local/www/firewall_rules_edit.php @@ -1366,7 +1366,7 @@ function build_if_list() { 'Display Advanced', null, 'fa-cog' - ))->addClass('btn-info'); + ))->addClass('btn-info btn-sm'); } $portValues = ['' => gettext('(other)'), 'any' => gettext('any')]; @@ -1441,23 +1441,19 @@ function build_if_list() { $pconfig['descr'] ))->setHelp('You may enter a description here for your reference.'); -$adv_open = is_aoadv_used($pconfig); - -$btnadvanced = new Form_Button( - 'toggle-advanced', - 'Advanced Options', +$btnadv = new Form_Button( + 'btnadvopts', + 'Display Advanced', null, 'fa-cog' ); -$btnadvanced->addClass('btn-info'); +$btnadv->addClass('btn-info btn-sm'); -if (!$adv_open) { - $section->addInput(new Form_StaticText( - null, - $btnadvanced - )); -} +$section->addInput(new Form_StaticText( + 'Advanced Options', + $btnadv +)); $form->add($section); @@ -1743,9 +1739,40 @@ function build_if_list() { var portsenabled = 1; var editenabled = 1; - var optionsvisible = 0; var srcportsvisible = false; + // Show advanced additional opts options ====================================================== + var showadvopts = false; + + function show_advopts(ispageload) { + var text; + // On page load decide the initial state based on the data. + if (ispageload) { + showadvopts = ; + } else { + // It was a click, swap the state. + showadvopts = !showadvopts; + } + + hideClass('advanced-options', !showadvopts); + if ($('#tcpflags_any').prop('checked')) { + $('.table-flags').addClass('hidden'); + } + + if (showadvopts) { + text = ""; + } else { + text = ""; + } + $('#btnadvopts').html(' ' + text); + } + + $('#btnadvopts').prop('type', 'button'); + + $('#btnadvopts').click(function(event) { + show_advopts(); + }); + function ext_change() { if (($('#srcbeginport').find(":selected").index() == 0) && portsenabled && editenabled) { @@ -1927,7 +1954,7 @@ function dst_rep_change() { typesel_change(); - hideClass('advanced-options', ! ""); + show_advopts(true); hideClass('srcportrange', true); @@ -1936,7 +1963,6 @@ function dst_rep_change() { // Make it a regular button, not a submit - $('#toggle-advanced').prop('type','button'); $("#btnsrcadv").prop('type','button'); // on click . . @@ -1983,14 +2009,6 @@ function dst_rep_change() { proto_change(); }); - $('#toggle-advanced').click(function() { - optionsvisible = 1; - hideClass('advanced-options', false); - if ($('#tcpflags_any').prop('checked')) { - $('.table-flags').addClass('hidden'); - } - }); - $('#tcpflags_any').click(function () { if (this.checked) { $('.table-flags').addClass('hidden');