OPNSense/core dfdadb6src/opnsense/mvc/app/models/OPNsense/Base/Menu MenuContainer.php MenuItem.php, src/opnsense/mvc/app/models/OPNsense/Firewall/Menu Menu.php

mvc: style sweep
DeltaFile
+1-2src/opnsense/mvc/app/models/OPNsense/Interfaces/Menu/Menu.php
+1-1src/opnsense/mvc/app/models/OPNsense/Base/Menu/MenuContainer.php
+1-1src/opnsense/mvc/app/models/OPNsense/Base/Menu/MenuItem.php
+1-1src/opnsense/mvc/app/models/OPNsense/Firewall/Menu/Menu.php
+4-54 files

OPNSense/core 8b13deasrc/opnsense/mvc/app/models/OPNsense/Base/Menu MenuSystem.php MenuItem.php, src/opnsense/mvc/app/models/OPNsense/Firewall/Menu Menu.php

MVC: add support for pluggable dynamic menu items and move some existing parts out of the MenuSystem class (#10113)

* MVC: add support for pluggable dynamic menu items and move some existing parts out of the MenuSystem class

In most cases we use static menu registartions, but there are exceptions which depend on interfaces for example.
While looking at https://github.com/opnsense/core/pull/10033, a longer standing wish came up again, which is the reason to add this support right now. It also helps in removing some legacy components for good via plugins.

To register new menu items, the following pattern may be used:

* In your model, derive a Menu class from MenuContainer
* implement a method collect() which should add new menu items via the appendItem() {bound to appendItem in MenuSystem}

Always try to minimize the amount of code inside these plugins as this code will be executed on each page load.

* menusystem: simplify class generation for links and add some support to be used for favorites.

This commit offers a couple of things, first of all it adds a unique class name on every traversable menu item so we can easily use javascript to pass a click event, for example:

$(".menu_ref_7e46272fe380827861cbaf5b484c43c9")[0].click()

    [5 lines not shown]
DeltaFile
+59-163src/opnsense/mvc/app/models/OPNsense/Base/Menu/MenuSystem.php
+129-0src/opnsense/mvc/app/models/OPNsense/Interfaces/Menu/Menu.php
+98-0src/opnsense/mvc/app/models/OPNsense/Firewall/Menu/Menu.php
+58-0src/opnsense/mvc/app/models/OPNsense/Base/Menu/MenuItem.php
+49-0src/opnsense/mvc/app/models/OPNsense/Base/Menu/MenuContainer.php
+8-8src/opnsense/mvc/app/views/layout_partials/base_menu_system.volt
+401-1712 files not shown
+412-1798 files

OPNSense/tools bf85679. Makefile, composite factory.sh custom.sh

composite: support more flexibility in custom/factory builds
DeltaFile
+4-3composite/factory.sh
+3-2composite/custom.sh
+2-0Makefile
+9-53 files

OPNSense/core 6f48d0fsrc/opnsense/mvc/app/views/layouts default.volt

ui: change generic error trap to exclude upgradestatus messages and prevent multiple instances being created, which prevents the user being spammed faster than he/she can close dialogs.
DeltaFile
+9-1src/opnsense/mvc/app/views/layouts/default.volt
+9-11 files

OPNSense/core 7eea658src/opnsense/mvc/app/controllers/OPNsense/Kea/forms dialogSubnet4.xml dialogSubnet6.xml, src/opnsense/mvc/app/models/OPNsense/Kea KeaDdns.php KeaDhcpv4.xml

Kea: DHCPv4/v6: DDNS dns server port can now be specified, default will remain 53 (#10183)
DeltaFile
+13-1src/opnsense/mvc/app/controllers/OPNsense/Kea/forms/dialogSubnet4.xml
+13-1src/opnsense/mvc/app/controllers/OPNsense/Kea/forms/dialogSubnet6.xml
+3-2src/opnsense/mvc/app/models/OPNsense/Kea/KeaDdns.php
+1-0src/opnsense/mvc/app/models/OPNsense/Kea/KeaDhcpv4.xml
+1-0src/opnsense/mvc/app/models/OPNsense/Kea/KeaDhcpv6.xml
+31-45 files

OPNSense/core 6241ea5src/opnsense/mvc/app/controllers/OPNsense/Kea/forms dialogSubnet4.xml dialogSubnet6.xml, src/opnsense/mvc/app/models/OPNsense/Kea KeaDdns.php KeaDhcpv4.xml

Kea: DHCPv4/v6: DDNS dns server port can now be specified, default will remain 53
DeltaFile
+13-1src/opnsense/mvc/app/controllers/OPNsense/Kea/forms/dialogSubnet4.xml
+13-1src/opnsense/mvc/app/controllers/OPNsense/Kea/forms/dialogSubnet6.xml
+3-2src/opnsense/mvc/app/models/OPNsense/Kea/KeaDdns.php
+1-0src/opnsense/mvc/app/models/OPNsense/Kea/KeaDhcpv4.xml
+1-0src/opnsense/mvc/app/models/OPNsense/Kea/KeaDhcpv6.xml
+31-45 files

OPNSense/core 4a1d6cfsrc/opnsense/mvc/app/models/OPNsense/Kea KeaDhcpv4.xml KeaDhcpv6.xml

Services: Kea DHCPv4/v6: Remove depend constraint of ddns_reverse_zone (#10182)

Since ddns_forward_zone already depends on ddns_dns_server, and the config generator bails if either of these are empty we do not need to protect ddns_reverse_zone in any specific way right now.

It's a good idea to keep it this way, only populating a reverse zone is very uncommon, and ISC also tethered it to the forward zone being there.
DeltaFile
+0-9src/opnsense/mvc/app/models/OPNsense/Kea/KeaDhcpv4.xml
+0-9src/opnsense/mvc/app/models/OPNsense/Kea/KeaDhcpv6.xml
+0-182 files

OPNSense/core a7024fcsrc/opnsense/mvc/app/models/OPNsense/Kea KeaDhcpv4.xml KeaDhcpv6.xml

Services: Kea DHCPv4/v6: Remove depend constraint of ddns_reverse_zone

Since ddns_forward_zone already depends on ddns_ddns_server, and the config generator bails if either of these are empty
we do not need to protect ddns_reverse_zone in any specific way right now.
DeltaFile
+0-9src/opnsense/mvc/app/models/OPNsense/Kea/KeaDhcpv4.xml
+0-9src/opnsense/mvc/app/models/OPNsense/Kea/KeaDhcpv6.xml
+0-182 files

OPNSense/core 293e645src/opnsense/scripts/system sysctl.py

system: only split first colon when reading sysctls
DeltaFile
+1-1src/opnsense/scripts/system/sysctl.py
+1-11 files

OPNSense/core db41dfcsrc/opnsense/mvc/app/controllers/OPNsense/Kea/forms dialogSubnet4.xml dialogSubnet6.xml, src/opnsense/mvc/app/models/OPNsense/Kea KeaDdns.php KeaDhcpv6.xml

Services: Kea DHCPv4/v6: add explicit reverse DDNS zones support (#10123)


---------

Co-authored-by: XtraLarge <20318559+XtraLarge at users.noreply.github.com>
Co-authored-by: Monviech <79600909+Monviech at users.noreply.github.com>
DeltaFile
+21-0src/opnsense/mvc/app/models/OPNsense/Kea/KeaDdns.php
+12-0src/opnsense/mvc/app/models/OPNsense/Kea/KeaDhcpv6.xml
+12-0src/opnsense/mvc/app/models/OPNsense/Kea/KeaDhcpv4.xml
+9-0src/opnsense/mvc/app/controllers/OPNsense/Kea/forms/dialogSubnet4.xml
+9-0src/opnsense/mvc/app/controllers/OPNsense/Kea/forms/dialogSubnet6.xml
+63-05 files

OPNSense/tools be63f99config/26.1 SMP-ARM

Add UNIONFS option to SMP-ARM configuration
DeltaFile
+3-0config/26.1/SMP-ARM
+3-01 files

OPNSense/core 9f56b9esrc/opnsense/mvc/app/views/OPNsense/Diagnostics fw_log.volt, src/opnsense/www/js opnsense_bootgrid.js opnsense_widget_manager.js

ui: simplify and clean up debounce() usage
DeltaFile
+5-22src/opnsense/www/js/opnsense_bootgrid.js
+1-18src/opnsense/www/js/opnsense_widget_manager.js
+0-17src/opnsense/mvc/app/views/OPNsense/Diagnostics/fw_log.volt
+13-0src/opnsense/www/js/opnsense.js
+19-574 files

OPNSense/tools 06fa31bconfig/26.1 ports.conf

Add architecture specification for aquantia-atlantic-kmod

unsupported as of now, causes an error, on aarch64 platforms
DeltaFile
+1-1config/26.1/ports.conf
+1-11 files

OPNSense/core 2e89bb5src/opnsense/www/js/widgets Services.js BaseWidget.js, src/opnsense/www/js/widgets/Metadata Core.xml

system: distill service widget essence based on #9608
DeltaFile
+10-36src/opnsense/www/js/widgets/Services.js
+2-2src/opnsense/www/js/widgets/BaseWidget.js
+2-2src/opnsense/www/js/widgets/Metadata/Core.xml
+14-403 files

OPNSense/core 22f6b06src/opnsense/www/js/widgets Services.js

system: style on service widget
DeltaFile
+1-1src/opnsense/www/js/widgets/Services.js
+1-11 files

OPNSense/core 72a8f6bsrc/opnsense/www/js opnsense_ui.js

ui: SimpleFileUploadDlg - add support for binary file uploads ( `SimpleFileUploadDlg({binary: true,...`), when set, files will be offered base64 encoded.
DeltaFile
+30-6src/opnsense/www/js/opnsense_ui.js
+30-61 files

OPNSense/core 191a95dsrc/opnsense/www/js opnsense_ui.js

ui: SimpleFileUploadDlg - add support for binary file uploads ( `SimpleFileUploadDlg({binary: true,...`), when set, files will be offered base64 encoded.
DeltaFile
+17-3src/opnsense/www/js/opnsense_ui.js
+17-31 files

OPNSense/core 16ddd5asrc/opnsense/mvc/app/models/OPNsense/Unbound Unbound.php Unbound.xml

Services: Unbound DNS: Overrides - One of the major disadvantages of asking for domains and hostnames seperately is that standard fqdn validations don't apply, which is the case here. Adding a dot at the end of a fqdn is valid, having an empty element isn't. We fix the latter by preventing a hostname ending with a dot here. closes https://github.com/opnsense/core/issues/10170
DeltaFile
+10-0src/opnsense/mvc/app/models/OPNsense/Unbound/Unbound.php
+1-0src/opnsense/mvc/app/models/OPNsense/Unbound/Unbound.xml
+11-02 files

OPNSense/core 8768f53src/opnsense/mvc/app/library/OPNsense/Auth LDAP.php

System: make LDAD auth adhere to bad login penalty as well (#10111)

Made remainder of modifications for GHSA-jpm7-f59c-mp54 which were previously discussed but deferred.
DeltaFile
+0-11src/opnsense/mvc/app/library/OPNsense/Auth/LDAP.php
+0-111 files

OPNSense/core 5b6913asrc/opnsense/scripts/filter/lib/alias __init__.py bgpasn.py

Firewall: Aliases - fix typo in error log (remove url as it has no value anyway) and make parser a bit more resilient by trapping all errors. closes https://github.com/opnsense/core/issues/10168
DeltaFile
+3-2src/opnsense/scripts/filter/lib/alias/__init__.py
+2-1src/opnsense/scripts/filter/lib/alias/bgpasn.py
+5-32 files

OPNSense/core 36158f6src/opnsense/www/js/widgets Services.js

dashboard: ui improvements of the Services widget (#9608)
DeltaFile
+54-29src/opnsense/www/js/widgets/Services.js
+54-291 files

OPNSense/core 2be8c8dsrc/opnsense/mvc/app/controllers/OPNsense/Interfaces/Api LaggSettingsController.php GifSettingsController.php

interfaces: fix import use and message style
DeltaFile
+22-24src/opnsense/mvc/app/controllers/OPNsense/Interfaces/Api/LaggSettingsController.php
+3-3src/opnsense/mvc/app/controllers/OPNsense/Interfaces/Api/GifSettingsController.php
+3-3src/opnsense/mvc/app/controllers/OPNsense/Interfaces/Api/GreSettingsController.php
+2-2src/opnsense/mvc/app/controllers/OPNsense/Interfaces/Api/BridgeSettingsController.php
+30-324 files

OPNSense/core 8f8a4c8src/opnsense/mvc/app/controllers/OPNsense/Routing/forms dialogEditGateway.xml, src/opnsense/mvc/app/models/OPNsense/Routing Gateways.xml

System: Gateways: Configuration: add nosync option

Excluding gateways from synchronization can be useful in cases
where a different default upstream gateway is used to keep
connectivity when failing over in a HA setup.
DeltaFile
+6-0src/opnsense/mvc/app/controllers/OPNsense/Routing/forms/dialogEditGateway.xml
+1-0src/opnsense/mvc/app/models/OPNsense/Routing/Gateways.xml
+7-02 files

OPNSense/core 9825ddfsrc/opnsense/scripts/interfaces reconfigure_bridges.php

interfaces: add comment for style
DeltaFile
+2-0src/opnsense/scripts/interfaces/reconfigure_bridges.php
+2-01 files

OPNSense/core 00f63c7src/opnsense/mvc/app/controllers/OPNsense/Cron/Api SettingsController.php

system: experiment/refactor on cron controller

Importer lint pass says "Cron" isn't used if we use getModel() so
let's see if this holds up.  $internalModelClass has the full path.
DeltaFile
+21-25src/opnsense/mvc/app/controllers/OPNsense/Cron/Api/SettingsController.php
+21-251 files

OPNSense/core b59c5cfsrc/opnsense/service/conf/actions.d actions_openvpn.conf

openvpn: allow restart action via cron; closes #10157
DeltaFile
+1-0src/opnsense/service/conf/actions.d/actions_openvpn.conf
+1-01 files

OPNSense/core 9a9b1aesrc/www system_general.php

system: for style
DeltaFile
+1-0src/www/system_general.php
+1-01 files

OPNSense/plugins ed017f7Mk defaults.mk

make: definitely the wrong coffee this morning
DeltaFile
+1-1Mk/defaults.mk
+1-11 files

OPNSense/plugins 58c1ae7Mk defaults.mk git.mk

make: add proper merge target origin
DeltaFile
+1-0Mk/defaults.mk
+1-0Mk/git.mk
+2-02 files

OPNSense/core 469b57fMk git.mk defaults.mk

Mk: previous conflicts with existing var, doh!
DeltaFile
+2-2Mk/git.mk
+1-1Mk/defaults.mk
+3-32 files