bootgrid: maintain scrolling position for both datatree and command actions. Closes https://github.com/opnsense/core/issues/9151
The usage of scrollToRow has been considered, but this contains
too much magic causing all kinds of jumps in scroll position,
causing a user to lose track of the changes they made. The only
downside to this is that when a datatree is expanded at the bottom
of a grid, the associated rows aren't immediately visible until
manually scrolled to.
(cherry picked from commit 75e60e85194e7f2bf7e20e3891743ce801e05820)
dashboard:gauge improvements (#10063)
Closes: #8356
*Makes the disk widget become table/bars from grid 2 size onwards
*Adds disk free/used size on the gauge
*Removes parentheses from the memory widget
---------
Co-authored-by: Fabian Rodriguez <317514+MagicFab at users.noreply.github.com>
(cherry picked from commit 7f3bcf5b787145b7cf185854758c3cddefdf1971)
Scripts: widgets without endpoint access exist now
(Likely the right fix: just print as informational message)
(cherry picked from commit 4d3601d5ca9bf56ac852ad6cd9e120ee6f52fbd3)
bootgrid: set visibility hidden for base_bootgrid_table
Since the structure is used to initialize the bootgrid, we shouldn't render
the original structure possibly causing a flash of content.
(cherry picked from commit 9861da22a25bed9dedb5d577bc38d9bc7ed381a4)
unbound: limit duckdb to a single thread in write mode to reduce logger memory usage
After some testing, it seems the duckdb python API has a tendency to
leak (up to a cap), which seems to be mitigated when we limit to a single thread.
Further testing shows that the single logger.py process doesn't
use parallelization when appending dataframes to the db instance
and as such multiple threads are useless to begin with. The heavier
actions are the read actions, which are separate short-lived processes
and do not suffer from the same issue and likely do require duckdb
parallelism to perform properly, so apply the single thread only to
writers.
(cherry picked from commit 5e781d8321e7b10b0b627bd1e2917cd23a343830)
firmware: repeat the update after pkg reinstall
It appears that the package manager lost a number of tricks
over the years so now we add more manual labor to do what
we expect of it.
(cherry picked from commit c0d5331e1fe7d974a8a153b9d67239b4c3d251a0)
mvc: BaseField: add setValues() for generic use
A small follow-up to make setValues() work like getValues()
including stripping empty values. Works from everywhere now
and adds a few tests in order to make sure it will keep working.
(cherry picked from commit aefe80cdd8168f26401ab85456c6632c6a259830)
(cherry picked from commit 0f092c3d7d558fdae0925bc36fea616473277369)
mvc: BaseListField replace empty check with isSet so a 0 value is considered a non empty selection (#10047)
(cherry picked from commit fff53c467fca07dd43ccb0568f4702dc2ca42d87)
kea: move pool-in-subnet validation logic mostly to KeaPoolsField; closes #10040
While here use getValues() consistently and move the trim() calls to the
latest point in time to avoid generalized trimming of input (the subnet
notation isn't allowed to be trimmed).
An alternative would have been to allow " ?- ?" as a split-regex since the
trim() itself will allow the leading an trailing whitespaces of the pool line,
too.
Suggested by: @Astranox
(cherry picked from commit 9ed851330086919bb7f6e2185ff46a1ea0986a6e)
(cherry picked from commit f5c3fb7c75dd0ddc9d2205e7616ee6b65bdb51b2)
Services: Kea: DDNS: Add subnet specific qualifying suffix and prevent updates if no server is set. (#10038)
(cherry picked from commit 14c9eb1215909c7d2f40ff44eab417d5d9861a18)
Firewall: Remove tokenizer from categories and use selectpicker instead (#10049)
The issue with the tokenizer is the limit of items that is set to 10 per default, which does not always display all items. And you can increase it, but that also needs CSS changes. Additionally the tokenizer is not maintained anymore, and needs replacement. Cutting it out here decreases the need to clean this up later.
The fix here is that now all categories will be displayed and are searchable via the normal selectpicker search field.
(cherry picked from commit 8c2136139c3094a097984162c3efbc07bfe0ebea)
Firewall: Rules [new] - change sorting to interface/group name and stop caring about counted rules, for https://github.com/opnsense/core/issues/9719
Historically this made sense to avoid having to click to all interfaces if this component only serviced a part of it, when moving to this being the standard, this feels less relevant.
(cherry picked from commit e958ea7cb6489eae39821947b752d6e0d81b62d3)