This commit adds a toggle which skips config file generation for kea-dhcp4.conf and lets the user handle it manuallt, service startup and control stays in place while manually configured.
When manual mode is selected, all other options will be hidden in the form, which should help people understand (and read) what the purpose of this toggle is (advanced mode).
Unfortunately we can't prevent all overlaps, but at least we cab make it consistent with the rules being generated. loadAliasMap() overlays aliases on top of networks (and interface groups), swapping the order makes sure we thread them equally.
We could move the check to backend() at the risk of breaking firmware upgrades on
errors. Breaking the auto-check seems like the lesser evil.
In reality you can always go back to the status tab and re-create the issue by
clicking check for updates again after already having it clicked. That is why the
page actually switches to the updates tab on click. The update click is also delayed
to give the status call to fill the status tab first which immitates a normal page
render.
The issue actually appears because:
1. Backend options are detached and are dispatched, but since they run in the backround
we don't return any feedback because we don't have it. This then...
2. ... creates a parallel chain of trackStatus() calls which eventually reports the same
modal.
The issue only appears when no updates are found or triggering a separate error modal.
When updates are found this is handled gracefully.
Making the modals and errors static seems like overkill as well.
Keeping friction and magic out of this page is important too.
* dnsmasq: Add full dhcp-host support for IPv4 and IPv6
* dnsmasq: Cleanup previous in dnsmasq.inc
* dnsmasq: Change comma placement in template to reduce one condition
* dnsmasq: Add validation to client_id
* dnsmasq: There can be multiple hardware addresses so change label accordingly
* dnsmasq: Change hostname validation so that client_id is also a valid choice without hostname defined.
* dnsmasq: Add validation that prevents duplicate IP addresses in dhcp-host set
* remove one stray newline
* Services: Dnsmasq DNS & DHCP - minor cleanups in https://github.com/opnsense/core/pull/8497
o fix possible race condition in validations
o simplify jinja template
---------
Co-authored-by: Ad Schellevis <ad@opnsense.org>
Some may argue the hidden commands are not good, but they are really
only to be intended to be called upon request. None of these things
magically fix firmware updates on their own, but can be useful (and
copying console output into the forum can also be more difficult).
* dnsmasq: Add filter function for interfaces and tags with multiselect
* dnsmasq: Small cleanup in filter selectpicker previous
* Refactor search actions and tag filtering
- Use single helper function for building filter
- Use tag UUIDs instead of names for filtering
- Avoid building filter functions when filters are empty
- Pass null to searchBase() when no filtering is required
- Use UUID-based filtering for dhcp_tags via record attributes
* dnsmasq: Make tags and interfaces dropdown just a tad nicer
* Services: Dnsmasq DNS & DHCP - cleanups for https://github.com/opnsense/core/pull/8465
simplify recurring pattern for tag search and move select options generation into common jquery function.
---------
Co-authored-by: Ad Schellevis <ad@opnsense.org>
* dnsmasq: Require interface when ra_mode is selected due to ra-param interface requirement. Hide ra-param in dialog when ra_mode is default, since then the global enable_ra defaults are used instead.
* Update src/opnsense/mvc/app/controllers/OPNsense/Dnsmasq/forms/dialogDHCPrange.xml
Co-authored-by: Franco Fichtner <franco@opnsense.org>
* Update src/opnsense/mvc/app/models/OPNsense/Dnsmasq/Dnsmasq.php
Co-authored-by: Franco Fichtner <franco@opnsense.org>
* Update src/opnsense/mvc/app/views/OPNsense/Dnsmasq/settings.volt
Co-authored-by: Franco Fichtner <franco@opnsense.org>
---------
Co-authored-by: Franco Fichtner <franco@opnsense.org>
* Display OpenVPN virtual IPv6 addresses for OpenVPN clients
* Check for virtual IPv6 address
* Filtering client vars and join them
* Revert "Filtering client vars and join them"
This reverts commit 8914b39d82ebc50656884172c290d8e8db7a1137.
* Moved logic
* Revert "Moved logic"
This reverts commit c66182871031c64d938bc70bf4d0c57f00634c28.
* Moved ip address list logic
---------
Co-authored-by: lucaspalomodevelop <lucas.palomo@t-online.de>
Added options:
- `columnSelectForceReload` (default false). Changes current behavior for all bootgrids (currently adding a new column re-fetches the data, which is unnecessary in most cases). Caches response internally, thereby assuming the data for a newly added column is already present.
- `headerFormatters` object. Can be explicitly set via `data-headerFormatter-<identifier>` or implicitly linked via the row id.
- `setColumns` function (`grid.bootgrid("setColumns", ['colA', 'colB' ...])`). Marks passed columns for addition. Requires either a `reload` or `softreload` to apply.
- `unsetColumns` function (`grid.bootgrid("unsetColumns", ['colA', 'colB' ...])`). Marks passed columns for removal. Requires either a `reload` or `softreload` to apply.
- `softreload` function (`grid.bootgrid("softreload")`).
UX changes:
- `headerFormatters` now makes sure that if column headers require styling, the styling doesn't flash and is applied from the beginning / during reloads.
- The "Loading..." status has been replaced with a transparent overlay containing a spinner. This prevents unnecessary style flashing when data is reloaded, i.e. when scrolling through pages, setting columns, forced refreshes etc.
- Added "reset to defaults" button, resetting the sort, visiblity and rowcount options to the controller defaults (removes them from localstorage).
Fixes https://github.com/opnsense/core/issues/8457
* dnsmasq: Add router advertisement options
* dnsmasq: Add router advertisement options
* dnsmasq: Add router advertisement options, fix small issue with spurious newline
* dnsmasq: Selectively show and hide dhcpv4 and dhcpv6 related options without introducing a new selectpicker. Since the validation in dnsmasq.php uses : to determine IPv6, the front end behaves the same.
* dnsmasq: Fix small style issue in previous
* dnsmasq: Since router advertisements are not opt-out per dhcpv6 range, it makes more sense not to enable it implicitely, but explicitely as global option.
* dnsmasq: Add validation for ra_mode, fix template spot of ra_mode, improve help text
* dnsmasq: Clear helptext up regarding SLAAC and prefix length. Template ignores this by default when ra is enabled.
* dnsmasq: Fix terminology of ra-param and add MTU option for feature completeness
* Update src/opnsense/mvc/app/controllers/OPNsense/Dnsmasq/forms/dialogDHCPrange.xml
Co-authored-by: Franco Fichtner <franco@opnsense.org>
* Update src/opnsense/mvc/app/controllers/OPNsense/Dnsmasq/forms/dialogDHCPrange.xml
Co-authored-by: Franco Fichtner <franco@opnsense.org>
---------
Co-authored-by: Franco Fichtner <franco@opnsense.org>