summaryrefslogtreecommitdiffhomepage
path: root/modules/luci-base/luasrc/view
AgeCommit message (Collapse)Author
2019-07-07luci-base: fix cbi mvalue templatesJo-Philipp Wich
Fixes: 9c7eb1dec ("luci-base: switch from server side to client side widget markup") Signed-off-by: Jo-Philipp Wich <jo@mein.io>
2019-07-07luci-base: switch from server side to client side widget markupJo-Philipp Wich
Do not render standard widgets like checkboxes, select boxes, text input fields etc. on the server side anymore but utilize the ui.js primitives instead. This avoids logic duplication between server side cbi templates and JS widgets in the future. Signed-off-by: Jo-Philipp Wich <jo@mein.io>
2019-07-07luci-base: add client based view actionsJo-Philipp Wich
Introduce a new view() target for CBI dispatch nodes, as long with the required template and plumbing work in luci.js to allow requiring view classes. Signed-off-by: Jo-Philipp Wich <jo@mein.io>
2019-07-07luci-base: replace uci change pages with client side modal dialogJo-Philipp Wich
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
2019-07-07luci-base: add ES6 Promise polyfill for IE < EdgeJo-Philipp Wich
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
2019-07-06luci-base: hide autocomplete-preventing password input with bigger offsetYousong Zhou
Fixes openwrt/luci#2624 Signed-off-by: Yousong Zhou <yszhou4tech@gmail.com>
2019-07-06luci-base: nowrap for password input and reveal buttonYousong Zhou
Fixes openwrt/luci#2624 Signed-off-by: Yousong Zhou <yszhou4tech@gmail.com>
2019-05-25Merge pull request #2174 from rosysong/lease-statusFlorian Eckert
luci-base: drop ipv6 lease status when IPV6 is not support
2019-05-02luci-mod-admin-full: add dependency for channel autoEnrique Giraldo
Do not show 'auto' channel option if hostapd is not compiled with CONFIG_ACS Signed-off-by: Enrique Giraldo <hgiraldos@gmail.com>
2019-04-08Merge pull request #2642 from TDT-AG/pr/20190329-luci-baseJo-Philipp Wich
luci-base: add cbi tsection error msg option
2019-04-02luci-base: increase max size of network dropdownsJo-Philipp Wich
Fixes: #2646 Signed-off-by: Jo-Philipp Wich <jo@mein.io>
2019-03-29luci-base: add cbi tsection error msg optionFlorian Eckert
In some situation it is usefull to inform the use that this section could not get delete, because this config is referenced or is in use. Example pseudo code: function s.remove(self, sid) <check if secation could get deleted> if output == nil then self.error_msg = translatef("Unable to remove this section") return nil end end Signed-off-by: Florian Eckert <fe@dev.tdt.de>
2019-02-12treewide: avoid double-escaping CBI section labelsJo-Philipp Wich
Since the section labels are already HTML-escaped implicitely by the striptags() function, we must not escape them again in attr() or ifattr(). Fixes: #2524 Signed-off-by: Jo-Philipp Wich <jo@mein.io>
2018-12-29luci-base: rework filebrowser initializationJo-Philipp Wich
Do not call cbi_init() from the browser field template but lazily initialize the field, like it is being done for all other widgets as well. Fixes: #2398 Signed-off-by: Jo-Philipp Wich <jo@mein.io>
2018-12-20luci-base: use default poll intervalFlorian Eckert
Replace all XHR poll time number with -1 so they will use the default poll interval time value from "/etc/config/luci". If this is not set then 5 seconds as default is used. Signed-off-by: Florian Eckert <fe@dev.tdt.de>
2018-12-20modules: use configurable poll intervalFlorian Eckert
Make poll interval configurable. Use option from ---- config core 'main' option pollinterval '5' --- This will only be used if the interval option is less or equal zero. If the poll interval is not configured then a default value of 5 seconds is used. Signed-off-by: Florian Eckert <fe@dev.tdt.de>
2018-12-13luci-base: support cidr list notation for option ipaddr and ip6addrJo-Philipp Wich
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
2018-12-12luci-base: fix UCI changelog markup mistakeAnton Kikin
Signed-off-by: Anton Kikin <a.kikin@tano-systems.com>
2018-12-11luci-base: fix syntax error in map.htmJo-Philipp Wich
Fixes #2366. Fixes: 76e9c0305 ("luci-base: rework ui tabbing code") Signed-off-by: Jo-Philipp Wich <jo@mein.io>
2018-12-10luci-base: rework ui tabbing codeJo-Philipp Wich
- Instantiate tab menus on the client side - Simplify server side markup generation - Show error indicators in cbi tabs Signed-off-by: Jo-Philipp Wich <jo@mein.io>
2018-11-22luci-base: do not trigger form action when revealing passwordJo-Philipp Wich
Ref: https://github.com/openwrt/luci/issues/2327 Signed-off-by: Jo-Philipp Wich <jo@mein.io>
2018-11-22luci-base: introduce common JavaScript apiJo-Philipp Wich
Introduce a new script file luci.js which is included by default and intended to be the common location of functions currently scattered in cbi.js and xhr.js. The luci.js file provides a LuCI() class which - among other things - implements helpers to construct URL paths and making HTTP requests. A singleton instance of the class is instantiated as window.L upon load and preset with the necessary environment information. Signed-off-by: Jo-Philipp Wich <jo@mein.io>
2018-11-20luci-base: fix apply/rollback stringsJo-Philipp Wich
Commit 94d8c9a7a accidentally overwrite the rewording of strings made in an earlier commit. Fixes: 94d8c9a7a ("luci-base: simplify apply widget code") Signed-off-by: Jo-Philipp Wich <jo@mein.io>
2018-11-15luci-base: support disconnecting (deauthenticating) wireless clientsWang805447391
Add a button to each row in the wireless assoclist table to allow disconnecting clients using the ubus del_client method if the underlying radio interface supports it. Ref: https://github.com/openwrt/luci/pull/2271 Submitted-by: Wang805447391 <805447391@qq.com> [move deauth function to luci-base next to the existing assoclist function, require post security, fix parameter check condition, hide button if not supported by the radio, disable button after call, squash commits, fix whitespace, reword subject, add commit message] Signed-off-by: Jo-Philipp Wich <jo@mein.io>
2018-11-14Merge pull request #2282 from TDT-AG/pr/20181114-luci-baseJo-Philipp Wich
luci-base: allow optional default value for file browser
2018-11-14luci-base: simplify apply widget codeJo-Philipp Wich
- Drop embedded CSS in favor to new global rules - Drop extraneous include of cbi.js - Use showModal() facilities - Fix a cosmetic bug in countdown timeout handling Signed-off-by: Jo-Philipp Wich <jo@mein.io>
2018-11-14luci-base: rework dynamic list templateJo-Philipp Wich
Commit 7c7821833 ("luci-base, themes: rework dynlist and dropdown widgets") changed the way we initialize dynamic lists on client side, avoiding the need for pre-rendering the items on the server side. Signed-off-by: Jo-Philipp Wich <jo@mein.io>
2018-11-14luci-base: add ARIA label to reveal/hide password buttonJo-Philipp Wich
Fixes #2070. Signed-off-by: Jo-Philipp Wich <jo@mein.io>
2018-11-14luci-base: allow optional default value for file browserFlorian Eckert
With this change we could set optional value for the file browser. Signed-off-by: Florian Eckert <fe@dev.tdt.de>
2018-10-17luci-base: fix cbi dropdown quirks with MS EdgeJo-Philipp Wich
On MS Edge, the behaviour of "value" attributes on "li" elements is unreliable, so use the "data-" prefix to circumvent the problem. Ref: https://developer.microsoft.com/en-us/microsoft-edge/platform/issues/19320991/ Fixes: #2224 Signed-off-by: Jo-Philipp Wich <jo@mein.io>
2018-10-10luci-base: show default forwarding policy in zone forwarding listJo-Philipp Wich
The zone forwarding list widget misleadingly displays the intra-zone forwarding policy as default policy action when no forwardings exist instead of the appropriate global defaults forwarding policy which is the one applied to inter-zone forwarded traffic. Fix the issue by displaying the defaults policy and not the per-zone policy to match what the firewall implementation is actually doing. Fixes: #2213 Signed-off-by: Jo-Philipp Wich <jo@mein.io>
2018-10-10luci-base: validate name in firewall zone selector widgetJo-Philipp Wich
When creating a new zone through the firewall zone selector widget, validate the given name before creating new items. Depends on commit 0b6ae96f2 ("luci-base: cbi.js: recognize invalid input in dropdown create field"). Fixes: #2211 Signed-off-by: Jo-Philipp Wich <jo@mein.io>
2018-10-03luci-base: reword rollback notification dialogJo-Philipp Wich
Rename "Apply unchecked" to "Apply anyway" for better clarity and update the base translation files accordingly. Signed-off-by: Jo-Philipp Wich <jo@mein.io>
2018-09-23luci-base: drop ipv6 lease status when IPV6 is not supportRosy Song
Signed-off-by: Rosy Song <rosysong@rosinson.com>
2018-09-19modules: Split luci-mod-fullDaniel F. Dickinson
Move some common elements to luci-base, and otherwise make three packages out of status, system, and network. They were mostly separated already, but there were some shared elements between status and network that are now in luci-base. Signed-off-by: Daniel F. Dickinson <cshored@thecshore.com>
2018-09-19modules: Make luci-base sufficient to use luci appsDaniel F. Dickinson
Per the discussion in https://github.com/openwrt/luci/issues/869, make luci-base sufficient to login, logout, and review and apply or revert uci changes. This allows most luci-app-xxx to work without having luci-mod-admin-full installed. It has been tested with some apps and not luci-mod-admin-full, as well as with luci-mod-admin-full (to make sure the usual case doesn't break). Instead of creating a new module namespace (e.g. 'Base') we reduce the opportunities for breakage by having luci-base take over the 'shell' of the 'Administration' (admin/....) namespace. Since admin is assumed by all current building LuCI components (including Freifunk), this doesn't introduce the 'Administration' tab into any situation where it would not already be present (but includes it where it was before). We also add a "Component not installed" page to avoid fatal errors and backtrace when e.g. luci-mod-admin-full is not installed. Signed-off-by: Daniel F. Dickinson <cshored@thecshore.com>
2018-08-17luci-base: remove fake password field from tab orderJo-Philipp Wich
Set a negative tabindex on the dummy password field to not break the form tab order flow. Signed-off-by: Jo-Philipp Wich <jo@mein.io>
2018-08-16luci-base: mark password template dummy field as hiddenJo-Philipp Wich
Mark the dummy input field as aria-hidden, should fix #2063. Signed-off-by: Jo-Philipp Wich <jo@mein.io>
2018-08-07Correct grammar in apply_widget.htmGregory L. Dietsche
This patch corrects "to get" to "to be" in apply_widget.htm This shell command was used to find and make the change in all impacted files: find . -type f -exec sed -i 's/Waiting for configuration to get applied/Waiting for configuration to be applied/g' {} + Signed-off-by: Gregory L. Dietsche <gregory.dietsche@cuw.edu>
2018-07-28luci-base: fix footer templateJo-Philipp Wich
Move the apply widget markup before the final </html> tag to avoid XHTML errors with the OpenWrt theme. Signed-off-by: Jo-Philipp Wich <jo@mein.io>
2018-07-27treewide: rework rollback/apply workflowJo-Philipp Wich
Rework the apply confirmation mechanism to be session agnostic in order to circumvent cross domain restrictions which prevent the JS code from issuing apply confirm requests in some cases, e.g. when changing the LAN IP. Confirmation calls may now be done from unauthenticated pages, as long as a matching confirmation token is sent along with the request. The reasoning behind this is that there is little security impact in confirming pending apply sessions, especially since those sessions can only be initiated while being authenticated. After this change, LuCI will now launch a confirmation process on every rendered page when a rollback is pending. The confirmation will happen regardless of whether the user is logged in or not, or if the current page is a CBI form or static template. A confirmation request now also requires a random one-time token which is rendered along with the confirmation JavaScript code in order to succeed. This token is not meant to provide security but to ensure that the confirm was triggered from an interactive browser session and not some background HTTP requests that happened to end up in the admin ui. As a consequence, the different apply/confirm/rollback code paths in CBI maps and the UCI change/revert pages have been consolidated into one common implementation residing in the common global theme agnostic footer template. Signed-off-by: Jo-Philipp Wich <jo@mein.io>
2018-07-23luci-base: strip superfluous space in additional field markupJo-Philipp Wich
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
2018-07-23luci-base: rework reveal/hide CBI password template buttonJo-Philipp Wich
Also add a hidden type password field to prevent browser autocompleters from entering the login passwords into fields liek the wireless WPA key field. Signed-off-by: Jo-Philipp Wich <jo@mein.io>
2018-07-22luci-base: add description annotations to tblsection cellsJo-Philipp Wich
Add a "data-description" attribute to CBI fields which have a description set, this allows responsive design themes to render a field description when decomposing the table grid. Also reuse the precalculated "typename" property if it exists, instead of deriving it from the template name yet again. Signed-off-by: Jo-Philipp Wich <jo@mein.io>
2018-07-20luci-base: fix bad CSS class names in table section templateJo-Philipp Wich
The previous refactoring of the template caused the row stripying CSS classes to be interpolated in such a way, that a separating space to previous CSS classes was missing, leading to not rendered row names and other side effects. Signed-off-by: Jo-Philipp Wich <jo@mein.io>
2018-07-18luci-base: rework CBI footer templateJo-Philipp Wich
- Make sure that hitting enter in the form hits the CBI save action and not apply or cancel - Hide action panel if no actions are available - CLeanup code Signed-off-by: Jo-Philipp Wich <jo@mein.io>
2018-07-18luci-base: rework tblsection templateJo-Philipp Wich
- Hide empty title and description rows - Correct row striping offset - Cleanup code Signed-off-by: Jo-Philipp Wich <jo@mein.io>
2018-07-18luci-base: rework simpleform templateJo-Philipp Wich
- Ensure that pressing enter in the form triggers the submit action and not a cbi skip or cancel - Hide page actions when empty - Cleanup code Signed-off-by: Jo-Philipp Wich <jo@mein.io>
2018-07-16luci-base: fix field section add button/input field namesJo-Philipp Wich
Some CBI map models, mainly the Network -> VLAN page, expect a valid previous section ID in their Section:create() callback. Previous refactoring of the tblsection markup broke this behaviour as the "section" loop variable was accidentally localized, causing it to be undefined outside of the loop body which caused the section add button and name input fields to get rendered with a wrong "name" attribute. Fix this by moving the "section" variable declaration out of the loop and by readding references to it in the non-anonymous section add case. Fixes FS#1657 Fixes 002c4d1d5 ("luci-base: add "Name" label to autogenerated title column") Signed-off-by: Jo-Philipp Wich <jo@mein.io>
2018-07-15luci-base: fix handling alias interfaces in ifacelist widgetJo-Philipp Wich
Signed-off-by: Jo-Philipp Wich <jo@mein.io>