summaryrefslogtreecommitdiffhomepage
path: root/modules/luci-base/htdocs/luci-static/resources/ui.js
AgeCommit message (Collapse)Author
2024-07-19luci-base: revert replacing button tags with div tagsFlorian Eckert
Signed-off-by: Florian Eckert <fe@dev.tdt.de>
2024-07-17Merge pull request #7153 from TDT-AG/pr/20240607-luci-baseFlorian Eckert
treewide: add new css class button-row
2024-07-09luci-base: replace css class right with css class button-rowFlorian Eckert
Signed-off-by: Florian Eckert <fe@dev.tdt.de>
2024-07-09luci-base: update connectivity change help text and button textFlorian Eckert
Signed-off-by: Florian Eckert <fe@dev.tdt.de>
2024-07-06luci-base: Correct how textarea's wrap worksJoseph Mory
Signed-off-by: Joseph Mory <morytyann@outlook.com>
2024-06-07luci-base: replace button tag with div tag in ui.jsFlorian Eckert
Signed-off-by: Florian Eckert <fe@dev.tdt.de>
2024-06-07luci-base: add missing css class cbi-button to ui.jsFlorian Eckert
Signed-off-by: Florian Eckert <fe@dev.tdt.de>
2024-06-07luci-base: move cancel button to the topFlorian Eckert
This change is required, so that the cancel button is the first and thus closes the modal when the 'ESC' button is pressed. Signed-off-by: Florian Eckert <fe@dev.tdt.de>
2024-06-07luci-base: remove flex style tagsFlorian Eckert
Signed-off-by: Florian Eckert <fe@dev.tdt.de>
2024-06-07luci-base: replace button tag with div tag in ui.jsFlorian Eckert
Signed-off-by: Florian Eckert <fe@dev.tdt.de>
2024-06-07luci-base: add missing css class cbi-button to ui.jsFlorian Eckert
Signed-off-by: Florian Eckert <fe@dev.tdt.de>
2024-06-07luci-base: move button one level up for Save & ApplyFlorian Eckert
This is a preparation commit so the buttons could get the new css class 'button-row' Signed-off-by: Florian Eckert <fe@dev.tdt.de>
2024-06-07luci-base: replace button tag with div tag in ui.jsFlorian Eckert
Signed-off-by: Florian Eckert <fe@dev.tdt.de>
2024-06-07luci-base: add missing css classes btn and cbi-button to ui.jsFlorian Eckert
Signed-off-by: Florian Eckert <fe@dev.tdt.de>
2024-06-06luci-base: clarify apply-settings stringsPaul Donald
Signed-off-by: Paul Donald <newtwen+github@gmail.com>
2024-04-09Merge pull request #6553 from stokito/luc-mod-system_filemanagerJo-Philipp Wich
Add File Manager / File Browser based on form.FileUpload
2024-04-09luci-base: ui.js FileUpload: option to enable Download buttonSergey Ponomarev
Allow downloading from a file browser. The Download button is located near to Delete. It's shown only for files: folders or /dev/ devices can't be downloaded. The downloading is made via fs.read_direct() which internally calls cgi-download. Signed-off-by: Sergey Ponomarev <stokito@gmail.com>
2024-03-17Revert "luci-base: force menu to regenerate after uci change"Hannu Nyman
This reverts commit 97ebdcbddb9cad76dc551086fcb887e55886a069. The commit seems to cause errors already before the login screen. Discussion in https://github.com/openwrt/luci/commit/97ebdcbddb9cad76dc551086fcb887e55886a069#commitcomment-139871175 Errors like: In error(), file [C] called from function [anonymous function] (/usr/lib/lua/luci/ucodebridge.lua:23) called from function ((tail call)) In [anonymous function](), file /usr/share/ucode/luci/runtime.uc, line 148, byte 45: called from function build_pagetree (/usr/share/ucode/luci/dispatcher.uc:382:73) called from function menu_json (/usr/share/ucode/luci/dispatcher.uc:439:26) called from function [anonymous function] (/usr/share/ucode/luci/dispatcher.uc:898:24) called from anonymous function (/www/cgi-bin/luci:39:13) ` return lcall.call(modname, method, ...args);` Near here ----------------------------------------^ Signed-off-by: Hannu Nyman <hannu.nyman@iki.fi>
2024-03-17luci-base: force menu to regenerate after uci changeJames Haggerty
Because the menu JSON can have 'depends' in them, uci changes should force the menu to regenerate. Closes #6423 Signed-off-by: James Haggerty <james.haggerty@morsemicro.com> Signed-off-by: Paul Donald <newtwen@gmail.com>
2024-03-17luci-base: ui.js: avoid polling in a tight loop on confirm/rollbackErik Karlsson
The call function was based on the legacy XHR interface and it has not been updated to comply with the new request interface which passes the duration as part of the response object rather than as a separate argument. This resulted in polling in a tight loop in certain cases since the duration was undefined. In addition there is no need to adjust apply_holdoff based on elapsed time as no significant amount of time has elapsed at this point. Signed-off-by: Erik Karlsson <erik.karlsson@genexis.eu>
2024-03-08luci-base: CBIFileUpload support file browser modeSergey Ponomarev
In the Browser mode the file tree dialog won't be closed when clicking on a file. The mode is used by a File Browser. Signed-off-by: Sergey Ponomarev <stokito@gmail.com>
2024-03-06luci-base: docs house-keepingPaul Donald
Signed-off-by: Paul Donald <newtwen@gmail.com>
2024-02-21luci-base: ui.js: further keyboard navigation improvements for dropdownsJo-Philipp Wich
- Ensure that pressing escape within the custom choice input closes the dropdown list but not the parent modal dialog - Ensure that added custom choice elements are tabbable - Retain focus on dropdown when closing dropdown - Consistently focus input textarea when tabbing into custom choice item Signed-off-by: Jo-Philipp Wich <jo@mein.io>
2024-02-19luci-base: ui.js: rework dropdown focus behaviorJo-Philipp Wich
Drop mouse following focus behavior as it interferes with custom value inputs, rely on CSS based hover effects instead. Also slightly improve keyboard navigation by auto-focussing the custom value input when entering the last dropdown choice via arrow down or tab key, and by allowing to leave the text input again with the arrow up key. Fixes: #6903 Signed-off-by: Jo-Philipp Wich <jo@mein.io>
2024-01-31luci-mod-network: add disabled option for interfacePaul Donald
Enabled by default. If the interface is in use, the user will be asked to confirm. Signed-off-by: Sergey Ponomarev <stokito@gmail.com>
2024-01-31luci-base: Code quality fixesPaul Donald
handle (possibly incorrect) comment variants <!-- --> <!-- --!> Signed-off-by: Paul Donald <newtwen@gmail.com>
2023-10-19luci-base: ui.js: sorting fixes for tables initialized from markupJo-Philipp Wich
- 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>
2023-09-23luci-base: Fix typos in JsDocsSergey Ponomarev
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>
2023-06-07luci-base: ui.js: set `autocomplete="new-password"` for password fieldsJo-Philipp Wich
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>
2023-04-28luci-base: ui.js: make upload cancellation message translatableJo-Philipp Wich
Resync base translation templates as well. Fixes: #6364 Signed-off-by: Jo-Philipp Wich <jo@mein.io>
2023-02-08Revert "luci-proto-openconnect: fix server url validation"Jo-Philipp Wich
This reverts commit f1312cadc6675fb29d02425775dd8a2a533d7e7c. The commit contained unrelated changes. Signed-off-by: Jo-Philipp Wich <jo@mein.io>
2023-02-07luci-proto-openconnect: fix server url validationJo-Philipp Wich
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>
2023-02-05luci-base: ui.js: modal dialog tweaksJo-Philipp Wich
- Automatically focus modal dialog frame - Close modal dialog on pressing escape key Fixes: #4609, #6205 Signed-off-by: Jo-Philipp Wich <jo@mein.io>
2023-02-05luci-base: ui.js: improve ui.Dropdown event handlingJo-Philipp Wich
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>
2022-12-27luci-base: ui.js: support div based table markup in UITable.update()Jo-Philipp Wich
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>
2022-11-22luci-base: ui.js: table enhancementsJo-Philipp Wich
- 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>
2022-07-27luci-base: revise array sortingJo-Philipp Wich
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>
2022-05-17luci-base: ui.js: add required CSS class to dynlist widgetJo-Philipp Wich
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
2022-05-16luci-base: ui.js: warn about connectivity loss on changing iface settingsJo-Philipp Wich
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>
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-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: 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>
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-10-26luci-base: show validation message in errorLukas Voegl
Signed-off-by: Lukas Voegl <lvoegl@tdt.de>
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-06-09luci-base: ui.js: determine dropdown position relative to overflow parentJo-Philipp Wich
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
2021-05-04luci-base: change button-text from Dismiss to Close in UCI changes overviewSven Roederer
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>
2021-03-29luci-base: ui.js: fix UICheckbox widget operation when tooltips are setJo-Philipp Wich
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>