Age | Commit message (Collapse) | Author |
|
- Populate id option from table id attribute
- Update column head sort indicator in UITable.update()
- Don't store sort state for tables without id
Ref: https://github.com/openwrt/luci/issues/6640
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
|
|
In some places argument name was renamed but in the JsDoc it's remain old.
Added more typing for string enum fields like:
@param {string} [type=text]
replaced with:
@param {"blob"|"text"|"blob"} [type=text]
Signed-off-by: Sergey Ponomarev <stokito@gmail.com>
|
|
Attempt to prevent Firefox from randomly filling nonesense into arbitrary
password fields such as the WireGuard private key field by setting the
`autocomplete="new-password"` attribute on any password type fields.
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
|
|
Resync base translation templates as well.
Fixes: #6364
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
|
|
This reverts commit f1312cadc6675fb29d02425775dd8a2a533d7e7c.
The commit contained unrelated changes.
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
|
|
The OpenConnect configuration form incorrectly assumed that the server
setting must be hostname while it actually may be a full URL.
Fixes: #6184
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
|
|
- Automatically focus modal dialog frame
- Close modal dialog on pressing escape key
Fixes: #4609, #6205
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
|
|
Improve overall event and focus handling, avoid registering a global
mouseover event listener, stop propagating escape keypress on closing
dropdown and avoid `Element.blur()` to prevent de-focusing open modals.
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
|
|
Constructing UITable instances from existing, div based markup is
supported but the UITable.update() implementation did not account
for that, leading to defunct data updates on tables built from div
based markup.
Fix this issue by extending UITable.update() to consider a div based
table structure as well, like we do in UITable.initFromMarkup() already.
Fixes: #5713
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
|
|
- Gracefully handle cells without innerText
- Properly handle `DocumentFragment` call values on table update
- Introduce ability to fetch actual cell value for sorting purposes from
`data-value` attribute
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
|
|
Refactor various sort operations throughout luci-base to use the new
L.naturalCompare() comparator function.
This primarily ensures that embedded numbers are sorted numerically and
not in a lexicographical way.
It also simplifies some code as a side effect.
Ref: #5899
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
|
|
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
|
|
If specific settings such as the protocol, IP address or netmask of an
interface the user is connected to are changed, the apply/rollback
mechanism might interfere. Display an additional warning dialog in this
case, instructing the user to manually reconnect and offering to continue
with a less safe unchecked apply mechanism.
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
|
|
Previously, "Apply unchecked" was only possible from the save action of CBI
maps, allow to invoke it from the configuration change dialog as well.
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
|
|
Do not abort the poll loop if some confirm request attempts fail, which
might happen when the device starts rolling back its configuration.
Before that fix, the rollback information dialog offering an unchecked
apply was not reliably presented in such situations.
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
|
|
Extend LuCI.ui.menu.getChildren() to resolve aliases and rewrites prior to
returning the menu nodes. This allows aliasing entire menu trees instead of
just single pages.
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
|
|
Fixes: #5702
Fixes: e0e6989a4a ("luci-base: introduce new LuCI.ui.Table class")
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
|
|
Introduce a new `LuCI.ui.Table` class to simplify generating HTML tables
for data output and turn the existing `cbi_update_table()` procedure into
a wrapper around this new facility.
Tables generated by the new class closely resemble the old markup but
provide additional sorting capabilities.
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
|
|
Fixes: #5588
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
|
|
Signed-off-by: Lukas Voegl <lvoegl@tdt.de>
|
|
- Prefer nodes that do not require authentication over nodes that do
- Honour ACL dependencies while resolving firstchild nodes
- Consider currently active session while scanning menu tree instead
of only loading effective ACLs when a login node is encountered
- Do not consider nodes for firstchild dispatching which specify a
special "firstchild_ineligible" property
- Hide menu nodes that have no accessible children
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
|
|
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
|
|
Change the left button of the UCI Apply-changes overview to the more correct function close.
This also avoids confusion between Dismiss and Revert, which translate to the same in german.
Signed-off-by: Sven Roederer <devel-sven@geroedel.de>
|
|
When a tooltip is rendered for a checkbox widget, an additional node is
placed after the checkbox label element, breaking DOM selectors in
bind(), isChecked(), setValue().
Apparently the functionality was never actually tested.
Fixes: #4938
Fixes: e951236e3 ("luci-base: add tooltip handling")
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
|
|
The parent node of the current li might be null after collapsing the
dropdown, so resolve the parent ul early to avoid passing null to
subsequent calls.
Fixes clearing custom input values in DynamicList dropdowns.
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
|
|
Signed-off-by: Florian Eckert <fe@dev.tdt.de>
|
|
Signed-off-by: Florian Eckert <fe@dev.tdt.de>
|
|
Delay the cbi-tab-active custom event so any eventListner attached to the tab doesn't miss the first event.
Signed-off-by: Ansuel Smith <ansuelsmth@gmail.com>
|
|
The new `isChanged()` utility functions allows to query the dirty state
of an ui input widget.
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
|
|
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
|
|
The previous server side menu rendering ordered items first by their order
weight value, then by their internal name.
Do the same for client side menu rendering.
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
|
|
Fix "SyntaxError: Strict mode does not allow function declarations
in a lexically nested statement" error that may occur in some old
browsers (detected on QtWebKit 5.212).
Signed-off-by: Anton Kikin <a.kikin@tano-systems.com>
|
|
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
|
|
Fixes: d02c26772 ("luci-base: ui.js: rework password input handling")
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
|
|
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
|
|
Fixes: #3989
Fixes: 81effc111 ("luci-base: ui.js: assume select widget by default for ListValue widget")
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
|
|
- Get rid of dummy element
- Render password field as text input initially and later transform
it to a password field
- Use .control-group markup to allow better styling
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
|
|
Fixes: #3973
Fixes: 2fb55e1ab ("luci-base: ui.js: fixes for radio widget type of select element")
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
|
|
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
|
|
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
|
|
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
|
|
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
|
|
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
|
|
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
|
|
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
|
|
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
|
|
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
|
|
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
|
|
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
|
|
- Make builtin classes available via `require` to allow view code to
request external and internal classes in a consistent manner without
having to know which classes are builtin and which not
- Make base classes request any used class explicitely instead of
relying on implicitly set up L.{dom,view,Poll,Request,Class} aliases
- Consistently convert class names to lower case in JSdoc to match
the names used in `require` statements
- Deprecate L.{dom,view,Poll,Request,Class} aliases
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
|