It doesn't really seem to make sense to try to link groups on different places, if they're only usable for pf which is always reloaded when new interfaces are connected.
The new ifgroup_setup() synchonizes attached interfaces for all configured groups, only rename and delete are still being served from the management pages (to avoid dropping static groups like openvpn).
This now makes it easy and predictable to add interfaces to multiple
groups.
Before this change, the interfaces_groups GUI was sorted by the
order that interface groups were added. However, this was not the order
that the actual pf rules would then be generated making it unpredictable
when adding interfaces to multiple groups.
The filter_rules_sort function already took care of the actual pf rule
order.
I also took care of only marking the filter subsystem dirty when needed.
I tested this patch quite a bit on 19.1.8. When updating, users only
need to make one change to the interface groups to have them sorted in
the GUI.
I hope I did not miss anything because this patch is against master. In
it’s current state, the patch can be directly applied to 19.1.x or
master.
This annoyed me for a long time: always print the literal description
if found, only use uppercase on the interface key if no description
is available.
Use original element (<div>/<small>) with "data-for" attribute.
The old jquery "for" attribute selectors can be removed once conversion to "data-for" attribute is complete (including plugins).
The old jquery selectors to remove once conversion is complete.
opnsense_ui.js & head.inc
$("*[for='" + $(this).attr('id') + "']")....
$('[for*="help_for"]')....
width, align, valign, cellpadding, cellspacing, border, summary
Error: The width attribute on the table element is obsolete. Use CSS instead.
Error: The align attribute on the table element is obsolete. Use CSS instead.
Error: The valign attribute on the table element is obsolete. Use CSS instead.
Error: The cellpadding attribute on the table element is obsolete. Use CSS instead.
Error: The cellspacing attribute on the table element is obsolete. Use CSS instead.
Error: The border attribute on the table element is obsolete. Use CSS instead.
Error: The summary attribute on the table element is obsolete. Consider describing the structure of the table in a caption element or in a figure element containing the table; or, simplify the structure of the table so that no description is needed.
PPPoE wasn't removed, which led to some refactoring to find
out why. The outcome is the same, but works a little bit
different now. While there, make it possible to omit the
config write in case we are going to call write_config()
shortly after anyway.
This will also be necessary for the legacy VPN plugins.
Make "src" the implicit "/usr/local" so that nobody can
sneak in weird files in the base file system or potentially
overwrite them.
This is the last time, I swear... :)