OPNSense/core 720c791src/opnsense/mvc/app/controllers/OPNsense/Kea/forms ddnsSettings.xml, src/opnsense/mvc/app/views/OPNsense/Kea ddns.volt dhcpv4.volt

Services: Kea DHCPv4/6: Fix missing visual cues for manual mode in DDNS and DHCPv4/6 (#10340)
DeltaFile
+18-0src/opnsense/mvc/app/views/OPNsense/Kea/ddns.volt
+8-0src/opnsense/mvc/app/controllers/OPNsense/Kea/forms/ddnsSettings.xml
+1-1src/opnsense/mvc/app/views/OPNsense/Kea/dhcpv4.volt
+1-1src/opnsense/mvc/app/views/OPNsense/Kea/dhcpv6.volt
+28-24 files

OPNSense/core e38a698src/opnsense/mvc/app/models/OPNsense/Base/FieldTypes ModelRelationField.php

mvc: remove grouped ModelRelationField option handling (#10339)

The group option collapsed multiple related model rows into a single
display entry while still storing the UUID of one concrete source row.
This makes the selected relation dependent on iteration order and is not
a stable representation of the grouped object.

References:
https://github.com/opnsense/core/commit/fe571ac442efe76c3a1efd3e6f90b8ec4cb6e7bd

Frr was the only consumer (I could grep in core and plugins, don't know if external ones exist), I reworked how the relationship is displayed there to make it more obvious to the user how items relate to each other, and also prevent that the wrong items get deleted. Configs should be more coherent now.

It's also not perfect, but more "obvious" lets say.
It also helps with the addition of internalModelUseSafeDelete in FRR.

opnsense/plugins at 0798cde
opnsense/plugins at d3c3e79
opnsense/plugins at cb9a5d6
DeltaFile
+0-8src/opnsense/mvc/app/models/OPNsense/Base/FieldTypes/ModelRelationField.php
+0-81 files

OPNSense/core 3992d34src/opnsense/mvc/app/models/OPNsense/Base/FieldTypes ModelRelationField.php

mvc: remove grouped ModelRelationField option handling

The group option collapsed multiple related model rows into a single
display entry while still storing the UUID of one concrete source row.
This makes the selected relation dependent on iteration order and is not
a stable representation of the grouped object.

References:
https://github.com/opnsense/core/commit/fe571ac442efe76c3a1efd3e6f90b8ec4cb6e7bd
DeltaFile
+0-8src/opnsense/mvc/app/models/OPNsense/Base/FieldTypes/ModelRelationField.php
+0-81 files

OPNSense/core a8cc73bsrc/etc/inc filter.lib.inc

firewall: use safe iteration over rules in filter_core_rules_user()

(cherry picked from commit 51361af843ecbdd98f161b108fe45251fe37b718)
DeltaFile
+25-28src/etc/inc/filter.lib.inc
+25-281 files

OPNSense/core e4b80cbsrc/opnsense/mvc/app/controllers/OPNsense/Interfaces/forms dialogSettings.xml, src/opnsense/mvc/app/models/OPNsense/Interfaces/FieldTypes DUIDField.php

interfaces: wrong DUID-UUID format for #10218

(cherry picked from commit 0513f26235900a6c8c4a818549dd7c2ec4e11139)
(cherry picked from commit 7c8a426bbef7122fbfb2c0c68d07956b80029392)
DeltaFile
+5-1src/opnsense/mvc/app/models/OPNsense/Interfaces/FieldTypes/DUIDField.php
+1-1src/opnsense/mvc/app/controllers/OPNsense/Interfaces/forms/dialogSettings.xml
+1-1src/opnsense/scripts/interfaces/gen_duid.php
+7-33 files

OPNSense/core 588a302src/opnsense/mvc/app/controllers/OPNsense/IPsec/forms dialogConnection.xml, src/opnsense/mvc/app/views/OPNsense/IPsec connections.volt

ipsec: restyle the connections page for clarity

Co-authored-by: Stephan de Wit <stephan.de.wit at deciso.com>
DeltaFile
+147-154src/opnsense/mvc/app/views/OPNsense/IPsec/connections.volt
+10-0src/opnsense/mvc/app/controllers/OPNsense/IPsec/forms/dialogConnection.xml
+157-1542 files

OPNSense/core 889e806src/opnsense/mvc/app/views/layout_partials form_input_tr.volt

ui: split button render, some forms only use save

(cherry-picked from commit cea293825452c489488f9f37965cb10f33239f2c)
DeltaFile
+8-1src/opnsense/mvc/app/views/layout_partials/form_input_tr.volt
+8-11 files

OPNSense/core cea2938src/opnsense/mvc/app/controllers/OPNsense/IPsec/forms dialogConnection.xml, src/opnsense/mvc/app/views/layout_partials form_input_tr.volt

ui: split button render, some forms only use save

This makes it reusable so we can replace other "save" buttons
that don't follow striping correctly.
DeltaFile
+8-1src/opnsense/mvc/app/views/layout_partials/form_input_tr.volt
+2-1src/opnsense/mvc/app/controllers/OPNsense/IPsec/forms/dialogConnection.xml
+10-22 files

OPNSense/core 3a39250src/opnsense/mvc/app/controllers/OPNsense/Firewall/Api FilterController.php

Firewall: Rules - missed a spot in https://github.com/opnsense/core/commit/9b8ee2a92f14092f6971a96c86ca2fe138cd7b89

(cherry picked from commit ff20a2f1e748096401bc8bf51e0dca54d1e2229d)
(cherry picked from commit d741236652c619036ffedfad4e62ba4040187575)
DeltaFile
+5-5src/opnsense/mvc/app/controllers/OPNsense/Firewall/Api/FilterController.php
+5-51 files

OPNSense/core 82be8f8src/opnsense/mvc/app/controllers/OPNsense/Kea/forms generalSettings4.xml, src/opnsense/mvc/app/models/OPNsense/Kea KeaDhcpv4.xml KeaDhcpv4.php

kea add DHCPv4 compatibility options (#10336)

Refs: https://kea.readthedocs.io/en/stable/arm/dhcp4-srv.html#dhcp4-compatibility"

Co-authored-by: Franco Fichtner <franco at lastsummer.de>
Co-authored-by: Monviech <79600909+Monviech at users.noreply.github.com>

(cherry picked from commit 73df87682c3cf922503446795545365fec4c4149)
(cherry picked from commit a87b496d67de2b791d347c984775db1fdd2eec06)
DeltaFile
+10-0src/opnsense/mvc/app/controllers/OPNsense/Kea/forms/generalSettings4.xml
+9-0src/opnsense/mvc/app/models/OPNsense/Kea/KeaDhcpv4.xml
+4-0src/opnsense/mvc/app/models/OPNsense/Kea/KeaDhcpv4.php
+23-03 files

OPNSense/core 8553012Mk lint.mk, src/opnsense/mvc/app/models/OPNsense/Base/FieldTypes OptionField.php

mvc: OptionsField: use key as value if no value is set
DeltaFile
+3-3src/opnsense/mvc/app/models/OPNsense/Base/FieldTypes/OptionField.php
+3-0Mk/lint.mk
+6-32 files

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

kea: simplify previous
DeltaFile
+4-4src/opnsense/mvc/app/models/OPNsense/Kea/KeaDhcpv4.xml
+4-41 files

OPNSense/core f963e5bsrc/opnsense/mvc/app/views/OPNsense/IPsec settings.volt

ipsec: move swanctl.conf download button to the tab

This aligns with the aliases actions tab.

(cherry picked from commit e44a05a0de9c3d984cea938bc134824be90a5bdb)
DeltaFile
+10-9src/opnsense/mvc/app/views/OPNsense/IPsec/settings.volt
+10-91 files

OPNSense/core 2279423src/opnsense/mvc/app/views/OPNsense/Firewall alias.volt, src/opnsense/mvc/app/views/OPNsense/Hostdiscovery settings.volt

ui: apply button on multiple tab pages (#10331)

(cherry picked from commit 6207b5c83d443f5e5bc5af820daf85ca005020cc)
DeltaFile
+4-14src/opnsense/mvc/app/views/OPNsense/IPsec/settings.volt
+2-3src/opnsense/mvc/app/views/OPNsense/Syslog/index.volt
+2-2src/opnsense/mvc/app/views/OPNsense/Hostdiscovery/settings.volt
+1-1src/opnsense/mvc/app/views/OPNsense/Firewall/alias.volt
+9-204 files

OPNSense/core bb65459src/opnsense/mvc/app/controllers/OPNsense/Unbound/Api DiagnosticsController.php OverviewController.php, src/opnsense/mvc/app/models/OPNsense/Unbound Unbound.xml

unbound: blocklist improvements (#10149)

* Organizes DNSBLs by provider/category.
* Adds the Social Network blocklist by hegizi.
* The tester now gives you the DNSBL name and category instead of its shortcode.

(cherry picked from commit d7f455bdfb3586eb943d533edded011bd9972014)
DeltaFile
+41-30src/opnsense/mvc/app/models/OPNsense/Unbound/Unbound.xml
+17-4src/opnsense/mvc/app/views/OPNsense/Unbound/overview.volt
+14-0src/opnsense/mvc/app/controllers/OPNsense/Unbound/Api/DiagnosticsController.php
+8-1src/opnsense/mvc/app/controllers/OPNsense/Unbound/Api/OverviewController.php
+1-0src/opnsense/service/templates/OPNsense/Unbound/core/blocklists.conf
+81-355 files

OPNSense/core 584f865src/opnsense/mvc/app/controllers/OPNsense/Firewall/Api FilterController.php, src/opnsense/mvc/app/models/OPNsense/Firewall Filter.xml

Firewall: Rules [new]: Fix action, ipprotocol and protocol translations (legacy rules) (#10299)

* Firewall: Rules [new]: Fix action, ipprotocol and protocol translations. Fix Automatically generated rules category.

* Ensure translations are passed through all the way to icon formatter in view

* Ensure inet46 always shows as Any or *

* Update src/opnsense/mvc/app/models/OPNsense/Firewall/Filter.xml

Co-authored-by: Franco Fichtner <franco at opnsense.org>

* Update src/opnsense/scripts/filter/list_non_mvc_rules.php

Co-authored-by: Franco Fichtner <franco at opnsense.org>

---------

Co-authored-by: Franco Fichtner <franco at opnsense.org>
(cherry picked from commit b73465c9b17d0afa2cac1655592355b9cc96de5c)
DeltaFile
+13-13src/opnsense/mvc/app/views/OPNsense/Firewall/filter_rule.volt
+10-3src/opnsense/scripts/filter/list_non_mvc_rules.php
+7-3src/opnsense/mvc/app/controllers/OPNsense/Firewall/Api/FilterController.php
+1-1src/opnsense/mvc/app/models/OPNsense/Firewall/Filter.xml
+31-204 files

OPNSense/plugins cb9a5d6net/frr/src/opnsense/mvc/app/controllers/OPNsense/Quagga/Api BgpController.php, net/frr/src/opnsense/mvc/app/controllers/OPNsense/Quagga/forms dialogEditBGPNeighbor.xml dialogEditBGPRouteMaps.xml

net/frr: BGP Improve visibility in ModelRelationFields and enable internalModelUseSafeDelete (#5461)

* net/frr: Improve visibility in ModelRelationFields and enable internalModelUseSafeDelete

* Adjust BGP template to only emit a single set for multiple selected items with the same name
DeltaFile
+52-49net/frr/src/opnsense/mvc/app/models/OPNsense/Quagga/BGP.xml
+23-12net/frr/src/opnsense/service/templates/OPNsense/Quagga/bgpd.conf
+5-5net/frr/src/opnsense/mvc/app/controllers/OPNsense/Quagga/forms/dialogEditBGPNeighbor.xml
+3-6net/frr/src/opnsense/mvc/app/controllers/OPNsense/Quagga/forms/dialogEditBGPRouteMaps.xml
+4-4net/frr/src/opnsense/mvc/app/controllers/OPNsense/Quagga/forms/dialogEditBGPPeergroups.xml
+1-0net/frr/src/opnsense/mvc/app/controllers/OPNsense/Quagga/Api/BgpController.php
+88-766 files

OPNSense/core 82060besrc/opnsense/mvc/app/views/OPNsense/Unbound acl.volt dot.volt, src/opnsense/www/js opnsense_ui.js

Revert "ui: lazily hook settings-changed trigger in saveFormToEndpoint()"

This reverts commit e4dc9ad212f18d28590c46392793f4ca28fc069f.
This reverts commit 45ef8ddd1a553e44c5f7e95f2e228fc66ec58abc.

The current approach is fine since it is not the default behaviour to
use change() to save the form.

Discussed with: @swhite2
DeltaFile
+5-10src/opnsense/www/js/opnsense_ui.js
+3-1src/opnsense/mvc/app/views/OPNsense/Unbound/acl.volt
+3-1src/opnsense/mvc/app/views/OPNsense/Unbound/dot.volt
+11-123 files

OPNSense/plugins 8943781net/frr/src/opnsense/service/templates/OPNsense/Quagga bgpd.conf

Adjust BGP template to only emit a single set for multiple selected items with the same name
DeltaFile
+23-12net/frr/src/opnsense/service/templates/OPNsense/Quagga/bgpd.conf
+23-121 files

OPNSense/core 55f3c39src/opnsense/mvc/app/views/OPNsense/Unbound acl.volt, src/opnsense/mvc/app/views/layout_partials base_form.volt

ui: add a class marker for forms to use settings-changed trigger

Most flat forms make save+apply which glitches with a general
settings-changed show in saveFormToEndpoint().
DeltaFile
+4-2src/opnsense/www/js/opnsense_ui.js
+3-1src/opnsense/mvc/app/views/layout_partials/base_form.volt
+1-1src/opnsense/mvc/app/views/OPNsense/Unbound/acl.volt
+8-43 files

OPNSense/core 298d486src/opnsense/www/js opnsense_bootgrid.js

bootgrid: adjust column persistence behavior to prevent horizontal dead space

(cherry picked from commit be35c9f276fc5e583525bba398991d06b393de26)
(cherry picked from commit 3557f8d730f54d44180701ac487b890576f25c1d)
DeltaFile
+15-0src/opnsense/www/js/opnsense_bootgrid.js
+15-01 files

OPNSense/core 2f8a759src/opnsense/www/js opnsense_bootgrid.js

bootgrid: prevent NaN pagination values for non-ajax grids when row count is set to all

(cherry picked from commit 401677167f2e5d0d4dd467467c68c58909cc664a)
DeltaFile
+1-1src/opnsense/www/js/opnsense_bootgrid.js
+1-11 files

OPNSense/core 2b0799csrc/opnsense/www/js opnsense_bootgrid.js

bootgrid: remove unused getTotalRowCount method

(cherry picked from commit 21fd3f466b51479108ac560f7f1fd0d9ceab6711)
DeltaFile
+0-4src/opnsense/www/js/opnsense_bootgrid.js
+0-41 files

OPNSense/core f50f13fsrc/opnsense/www/js opnsense_bootgrid.js

bootgrid: safeguard replace function

(cherry picked from commit 195667f1aa8b1bd959081c26df7832883cdf3fdc)
DeltaFile
+4-0src/opnsense/www/js/opnsense_bootgrid.js
+4-01 files

OPNSense/core 04aa6f3src/opnsense/www/js opnsense_bootgrid.js

bootgrid: these are state variables, not options

(cherry picked from commit f1e2a3c8caae4bc73b8f8e0d88648d84adfb89bf)
DeltaFile
+6-6src/opnsense/www/js/opnsense_bootgrid.js
+6-61 files

OPNSense/core 961ac69src/opnsense/www/js opnsense_bootgrid.js

bootgrid: align datakey with the rest of the options, but allow top-level placement

(cherry picked from commit 1fe9b82f7879b2ed92fee135fab1470e9cdafe41)
DeltaFile
+4-3src/opnsense/www/js/opnsense_bootgrid.js
+4-31 files

OPNSense/core deefc3bsrc/opnsense/mvc/app/views/OPNsense/Unbound dnsbl.volt, src/opnsense/mvc/app/views/layout_partials base_apply_button.volt

ui: SimpleActionButton tab exclusion (#10328)

(cherry picked from commit db642a0cd8971c7ed0110dd087829946abfb5714)
DeltaFile
+8-19src/opnsense/mvc/app/views/OPNsense/Unbound/dnsbl.volt
+12-0src/opnsense/www/js/opnsense_ui.js
+3-0src/opnsense/mvc/app/views/layout_partials/base_apply_button.volt
+23-193 files

OPNSense/core 2272c9fsrc/opnsense/mvc/app/views/OPNsense/Unbound dnsbl.volt

unbound: blocklists apply button message (#10283)

(cherry picked from commit 9426be7cbdbf3e737a7152d062702b8f2a0fb897)
DeltaFile
+16-14src/opnsense/mvc/app/views/OPNsense/Unbound/dnsbl.volt
+16-141 files

OPNSense/core 31d0c9csrc/opnsense/www/js opnsense.js

ui: improve form validation error append (#10333)

Since this iterates over a lot of irrelevant IDs and then mismatches
with the target change this by safeguarding against fields that are
likely not going to work without help_block_<id> and switch target
to a suffix match.

One spot where this matters: under kea v6 subnet add "DNS servers"
entry e.g. "::", click auto collect for check mark, click save. Interface
and subnet validation is red, the DNS server one shown is not.

(cherry picked from commit 546de351d7eed21ae1f0464938ca1743c1d1b865)
DeltaFile
+10-5src/opnsense/www/js/opnsense.js
+10-51 files

OPNSense/plugins c6024d0net/frr/src/opnsense/mvc/app/controllers/OPNsense/Quagga/Api BgpController.php, net/frr/src/opnsense/mvc/app/controllers/OPNsense/Quagga/forms dialogEditBGPNeighbor.xml dialogEditBGPRouteMaps.xml

net/frr: Improve visibility in ModelRelationFields and enable internalModelUseSafeDelete
DeltaFile
+52-49net/frr/src/opnsense/mvc/app/models/OPNsense/Quagga/BGP.xml
+5-5net/frr/src/opnsense/mvc/app/controllers/OPNsense/Quagga/forms/dialogEditBGPNeighbor.xml
+3-6net/frr/src/opnsense/mvc/app/controllers/OPNsense/Quagga/forms/dialogEditBGPRouteMaps.xml
+4-4net/frr/src/opnsense/mvc/app/controllers/OPNsense/Quagga/forms/dialogEditBGPPeergroups.xml
+1-0net/frr/src/opnsense/mvc/app/controllers/OPNsense/Quagga/Api/BgpController.php
+65-645 files