summaryrefslogtreecommitdiffhomepage
path: root/modules/luci-base/htdocs
AgeCommit message (Collapse)Author
2022-05-06luci-base: ui.js: make "Apply unchecked" available from the changes dialogJo-Philipp Wich
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>
2022-05-06luci-base: ui.js: gracefully handle failing confirm calls on rollbackJo-Philipp Wich
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>
2022-05-06luci-base: form.js: rework stacked modal CBI map logicJo-Philipp Wich
Only stack a new modal CBI map on top of the currently displayed modal one if the related map or section differs. This prevents misbehavior when switching the protocol of interfaces. Signed-off-by: Jo-Philipp Wich <jo@mein.io>
2022-04-28luci-base: ui: resolve aliases and rewrites on obtaining menu node childrenJo-Philipp Wich
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>
2022-02-27luci-base: ui: fix null access in ui.Table.update()Jo-Philipp Wich
Fixes: #5702 Fixes: e0e6989a4a ("luci-base: introduce new LuCI.ui.Table class") Signed-off-by: Jo-Philipp Wich <jo@mein.io>
2022-02-24luci-base: form.js: add column sorting to TableSections and GridSectionsJo-Philipp Wich
Add ability to reorder TableSection and GridSection rows by clicking on column headers. Signed-off-by: Jo-Philipp Wich <jo@mein.io>
2022-02-24luci-base: introduce new LuCI.ui.Table classJo-Philipp Wich
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>
2022-02-21luci-base: properly handle promise targets in Request.request()Jo-Philipp Wich
Under some circumstances, ubus RPC requests may be initiated while LuCI is still resolving the `rpcBaseURL` value. In this situation, the `target` argument of the `request()` call will be a pending promise object which results in an invalid URL when serialized by `expandURL()`, leading to an `Failed to execute 'open' on 'XMLHttpRequest': Invalid URL` exception. This commonly occured on the index status page which immediately initiates ubus RPC calls on load to discover existing status page partials. Solve the issue by filtering the given `target` argument through `Promise.resolve()` before expanding the URL and initiating the actual request. Fixes: #3747 Signed-off-by: Jo-Philipp Wich <jo@mein.io>
2022-02-16luci-app-firewall: fix setting unspecified zone on forwardingsJo-Philipp Wich
Fixes: #5685 Signed-off-by: Jo-Philipp Wich <jo@mein.io>
2021-12-23luci.js: remove unsafe fallback code from dom.parse()Jo-Philipp Wich
Do not fallback to .innerHTML if DOMParser() failed for whatever reason. Signed-off-by: Jo-Philipp Wich <jo@mein.io>
2021-12-23luci-base: form.js: do not execute embedded script code in stripTags()Jo-Philipp Wich
Instead of relying on .innerHTML which executes embedded script code to parse a given HTML fragment, use dom.parse() which utilizies DOMParser() internally in order to extract textContent in a safe manner. Fixes: FS#4199 Ref: https://bugs.openwrt.org/index.php?do=details&task_id=4199 Signed-off-by: Jo-Philipp Wich <jo@mein.io>
2021-12-09luci-base: cbi.js: properly handle non-strings in `%h` and `%q` formatsJo-Philipp Wich
Only replace null, objects and function values with the empty string but return booleans and numbers as strings. Spotted while debugging #5587. Signed-off-by: Jo-Philipp Wich <jo@mein.io>
2021-12-09luci-base: ui.js: avoid error tooltips overlapping dropdownsJo-Philipp Wich
Fixes: #5588 Signed-off-by: Jo-Philipp Wich <jo@mein.io>
2021-12-09luci-base: form.js: implement AbstractValue.retain propertyJo-Philipp Wich
The new `retain` boolean property controls whether the related option value is purged from the configuration when the dependencies of the option are not satisifed. Ref: #5579 Signed-off-by: Jo-Philipp Wich <jo@mein.io>
2021-12-02Merge pull request #5540 from jow-/wireguard-peer-gridsectionJo-Philipp Wich
Implement nested grid section support and use it for wireguard peer config
2021-11-23luci-base: cbi.js: properly handle falsy values in cbi_update_table()Jo-Philipp Wich
Fixes: #5544 Signed-off-by: Jo-Philipp Wich <jo@mein.io>
2021-11-22luci-base: form.js: allow nesting Grid and Table sectionsJo-Philipp Wich
Implement a simple view stack within the modal overlay to allow the modal edit dialog of a table or grid section to render another table or grid section which recursively opens another modal edit dialog. Signed-off-by: Jo-Philipp Wich <jo@mein.io>
2021-11-18Merge pull request #5442 from lvoegl/validation-error-popup-messageJo-Philipp Wich
luci-base: show validation message in save error
2021-11-16luci-base: luci.js: fix undefined variable access in Request.request()Jo-Philipp Wich
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
2021-11-11luci-base: widget.js: use firewall.getZoneColorStyle() in zone widgetsJo-Philipp Wich
Use the new `firewall.getZoneColorStyle()` helper to apply background color styles. Signed-off-by: Jo-Philipp Wich <jo@mein.io>
2021-11-11luci-base: firewall.js: add getZoneColorStyle() helperJo-Philipp Wich
The getZoneColorStyle() function will produce CSS style properties that describe the color value of the zone. The color declaration is divided into a CSS variable called `--zone-color-rgb` which holds the RGB value of the color and a `background-color` property assigning these values as background property. This allows themes to override the color with derived values, e.g. by applying an alpha channel. Signed-off-by: Jo-Philipp Wich <jo@mein.io>
2021-11-10luci-base: network.js: ignore wireless ifname patterns on retrieving devicesJo-Philipp Wich
Only treat the given identifier as Linux netdev name if we can find a corresponding entry in the device info cache and do not consider strings starting with "wlan", "ath" or "wl" to be existing devices. This fixes incorrectly adding wireless sections as ifnames to network interfaces when the wifi-iface section name begins with one of the `iface_patterns_wireless` patterns. Fixes: #5069 Signed-off-by: Jo-Philipp Wich <jo@mein.io>
2021-11-10luci-base: tools.widgets: adjust zone selector dropdown markupJo-Philipp Wich
No functional changes but required for styling rules. Signed-off-by: Jo-Philipp Wich <jo@mein.io>
2021-10-28luci-base: add legacy directory, file and device validator JS stubsJo-Philipp Wich
Fixes: #5466 Signed-off-by: Jo-Philipp Wich <jo@mein.io>
2021-10-26luci-base: show validation message in errorLukas Voegl
Signed-off-by: Lukas Voegl <lvoegl@tdt.de>
2021-10-22luci-base: remove further related section types on deleting networkJo-Philipp Wich
When removing a `config interface` section in `/etc/config/network`, drop related `rule` and `rule6` sections too, as well as related `dhcp` sections in `/etc/config/dhcp`. Ref: https://forum.openwrt.org/t/grooming-etc-config/109764/7 Signed-off-by: Jo-Philipp Wich <jo@mein.io>
2021-10-11luci-base: dispatcher: rework dispatching and menu filtering logicJo-Philipp Wich
- 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>
2021-10-08luci-base: cbi.js: use IEC 80000-13 units to format base 2 byte valuesJo-Philipp Wich
Fixes: #5354 Signed-off-by: Jo-Philipp Wich <jo@mein.io>
2021-10-08luci-base: form.js: add drag-drop sorting support for mobileJo-Philipp Wich
Fixes: #5416 Signed-off-by: Jo-Philipp Wich <jo@mein.io>
2021-08-15luci-base: support loopback by widgets.NetworkSelectVladislav Grigoryev
Support the "loopback" interface by "widgets.NetworkSelect". Enable the "loopback" option to include this interface. Can be used to configure interface binding for services. Signed-off-by: Vladislav Grigoryev <vg.aetera@gmail.com>
2021-08-11Merge pull request #5239 from aparcar/secondsJo-Philipp Wich
2021-08-11Merge pull request #5154 from TDT-AG/pr/20210628-luci-compatFlorian Eckert
luci-base: prevent empty field for adding new entry
2021-08-11luci-base: prevent empty field for adding new entryHelge Mader
Signed-off-by: Florian Eckert <fe@dev.tdt.de>
2021-08-09luci-base: fix request timeout docstringPaul Spooren
The `timeout` is defined in milliseconds, not seconds. Signed-off-by: Paul Spooren <mail@aparcar.org>
2021-07-15luci-base: fix off-by-one in cbi_update_table()Jo-Philipp Wich
Fixes: #5189 Fixes: f919635310 ("luci-base: batch DOM updates to prevent slowdown") Ref: https://github.com/openwrt/luci/commit/f919635310286b3b905aedb716d707da1ea2c811#commitcomment-53495580 Signed-off-by: Jo-Philipp Wich <jo@mein.io>
2021-07-13luci-base: batch DOM updates to prevent slowdownOlli Asikainen
Signed-off-by: Olli Asikainen <olli.asikainen@gmail.com>
2021-07-06luci-base: Fix time display errorDeYu Liu
Signed-off-by: DeYu Liu <vito_sam@outlook.com>
2021-07-03luci-base: validation: disallow mutlicast MACs by defaultJo-Philipp Wich
Extend the MAC address validator to disallow multicast MAC addresses and add a new optional validator option to require multicast MACs instead of unicast ones. Fixes: #5166 Signed-off-by: Jo-Philipp Wich <jo@mein.io>
2021-07-01luci-base: do not add validation for named section if readonly is setFlorian Eckert
Signed-off-by: Florian Eckert <fe@dev.tdt.de>
2021-07-01luci-base: prevent empty field for adding new named section in JavaScriptHelge Mader
Suggested-by: Helge Mader <ma@dev.tdt.de> Signed-off-by: Florian Eckert <fe@dev.tdt.de>
2021-07-01luci-base: change css class btn to cbi-buttonFlorian Eckert
The css class btn is only a valid input element on lua rendered pages. Use instead cbi-button for javascript rendered pages. Signed-off-by: Florian Eckert <fe@dev.tdt.de>
2021-07-01luci-base: use button tag instead of input tag on named section addFlorian Eckert
Signed-off-by: Florian Eckert <fe@dev.tdt.de>
2021-06-12luci-base: network.js: add link status information accessorsJo-Philipp Wich
Fixes: #5121 Fixes: 8c71b1d01e ("luci-mod-network: add port status to bridge vlan filter matrix") Signed-off-by: Jo-Philipp Wich <jo@mein.io>
2021-06-09luci-base: ui.js: determine dropdown position relative to overflow parentJo-Philipp Wich
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
2021-06-05Merge pull request #5070 from blocktrron/pr-luci-wifi6David Bauer
luci-mod-network: add 802.11ax HE support
2021-06-05luci-base: add 11ax HW / HT modesDavid Bauer
Add the known values returned for 802.11ax HW as well as HT modes to the respective method descriptions. Signed-off-by: David Bauer <mail@david-bauer.net>
2021-06-05luci-mod-network: add 802.11ax HE supportDavid Bauer
This commit adds the ability to configure HE-modes for radios (HE20 / HE40 / HE80 / HE160) as well as HE rate information in the assiciation view. Tested-on: Ubiquiti UniFi 6 Lite / LR Signed-off-by: David Bauer <mail@david-bauer.net>
2021-06-03luci-base: network.js: sorting fixesJo-Philipp Wich
Ensure that sort callbacks consistently return [-N .. 0 .. +N] values instead of just true/false. Signed-off-by: Jo-Philipp Wich <jo@mein.io>
2021-06-03treewide: Update JS using luci-rpc getHostHintsNiels Widger
Update frontend JS code which uses luci-rpc getHostHints to support the new response format which removes the `ipv4` and `ipv6` host hint string fields and replaces them with `ipaddrs` and `ip6addrs` weighted string list fields. Signed-off-by: Niels Widger <niels@qacafe.com> [rework code to be forwards/backwards compatible, fix some Network.Hosts methods, fix IP choice ordering, change commit subject, rewrap commit message] Signed-off-by: Jo-Philipp Wich <jo@mein.io>
2021-06-02Merge pull request #4770 from nickberry17/update_DummyValueJo-Philipp Wich
luci-base: add new member 'hidden' to DummyValue