summaryrefslogtreecommitdiffhomepage
path: root/modules/luci-base/luasrc
AgeCommit message (Collapse)Author
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>
2019-02-12luci-base: dispatcher: support raw values in attr() and ifattr()Jo-Philipp Wich
Extend the attr() and ifattr() template functions to take an optional further parameter indicating that the passed value should not be escaped. This is needed for cases where the input already is escaped through other means, e.g. when the value was previously filtered through the striptags() template helper. Signed-off-by: Jo-Philipp Wich <jo@mein.io>
2019-01-02timezone data: update to 2018iHannu Nyman
Update timezone data to 2018i http://mm.icann.org/pipermail/tz-announce/2018-December/000053.html http://mm.icann.org/pipermail/tz-announce/2018-December/000054.html 2018h: * Qyzylorda, Kazakhstan moved from +06 to +05 on 2018-12-21. * New zone Asia/Qostanay because Qostanay, Kazakhstan didn't move. * Metlakatla, Alaska observes PST this winter only. * Guess Morocco will continue to adjust clocks around Ramadan. * Add predictions for Iran from 2038 through 2090. 2018i: * São Tomé and Príncipe switches from +01 to +00 on 2019-01-01. Signed-off-by: Hannu Nyman <hannu.nyman@iki.fi>
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: fix table compare upon writing ipaddr changesJo-Philipp Wich
Fixes: b33192a03 ("luci-base: support cidr list notation for option ipaddr and ip6addr") Signed-off-by: Jo-Philipp Wich <jo@mein.io>
2018-12-13luci-base: properly option ipaddr in single cidr string notation as wellJo-Philipp Wich
When an interface configuration specifies both "option ipaddr 1.2.3.4/24" and "option netmask", then netifd will ignore the netmask in favor to the prefix encoded in the cidr string. Support this variant as well by treating a sole cidr string value as singöe-item cidr list. Signed-off-by: Jo-Philipp Wich <jo@mein.io>
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-27luci-base: dispatcher: use consistent orderingJo-Philipp Wich
Use the same ordering logic for building the dispatch tree and for querying the children of a given node. Fixes #2338. Signed-off-by: Jo-Philipp Wich <jo@mein.io>
2018-11-27luci-base: dispatcher: remove tree modifier supportJo-Philipp Wich
This feature was never used, is hardly documented and appears to be designed to fiddle with the internal dispatch tree state. Given that, simply drop the related code to simplify the dispatcher class somewhat. 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-16luci-base: dispatcher: add login indication on 403 errorsJo-Philipp Wich
Send a custom LuCI X-Header to indicate that a login is required to access the requested resource. This is mainly intended for xhr.js to be able to intercept such responses and popup an authentication dialog. 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-14luci-base: datatypes: add "unique" dummy validatorJo-Philipp Wich
Add a dummy validator for the server side so that we can start using unique in client side JS code. Signed-off-by: Jo-Philipp Wich <jo@mein.io>
2018-11-14Merge pull request #2259 from pmelange/luci-app-olsr-new-json-libJo-Philipp Wich
update luci-app-olsr to the new jsoninfo library
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-lib-ipkg: move out of luci-baseJo-Philipp Wich
Move the old luci.model.ipkg utility class into a separate package and let the components using it depend on the new library package. Signed-off-by: Jo-Philipp Wich <jo@mein.io>
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: add luci.sys.process.exec()Jo-Philipp Wich
The new process.exec() function simplifies spawning external processes and capturing their stdio. 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-11-07luci-base: network.lua add ipv6-prefix-assignment support to ↵pmelange
get_status_by_address Signed-off-by: pmelange <isprotejesvalkata@gmail.com>
2018-11-05luci-base: validate DHCP clientid as hexstringJo-Philipp Wich
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
2018-11-05luci-base: expose system translations to JavaScriptJo-Philipp Wich
Add a new /admin/translations/ endpoint which exposes the loaded system translations as JavaScript file. Once referenced by <script>, the endpoint will create a `window.TR` object containing the entire translation string table for use on the client side. Signed-off-by: Jo-Philipp Wich <jo@mein.io>
2018-11-05luci-base: remove unused i18n functionsJo-Philipp Wich
Drop load(), loadc(), string() and stringf() from the luci.i18n class since these functions are either no longer unused or were never used to begin with. Also slightly rework the module to only use local symbols and unify the module require style. Signed-off-by: Jo-Philipp Wich <jo@mein.io>
2018-11-05luci-base: remove references to luci.i18n.loadc()Jo-Philipp Wich
The i18n.loadc() function has been a no-op since almost six years so it makes no sense to invoke it anymore. Signed-off-by: Jo-Philipp Wich <jo@mein.io>
2018-11-05luci-base: introduce luci.i18n.dump()Jo-Philipp Wich
Add a new luci.i18n.dump() function which returns all currently loaded translation strings as Lua table. Signed-off-by: Jo-Philipp Wich <jo@mein.io>
2018-11-05luci-base: fix luci.i18n.setlanguage()Jo-Philipp Wich
Rework the setlanguage() implementation to actually switch catalogues if another language has been loaded previously and change it to return the effectively loaded language tag. Also improve input parameter validation and accept tags in both lower or upper case. Signed-off-by: Jo-Philipp Wich <jo@mein.io>
2018-10-30timezone data: update to 2018gHannu Nyman
Update timezone data to 2018g http://mm.icann.org/pipermail/tz-announce/2018-October/000052.html * Morocco switches to permanent +01 on 2018-10-27. Signed-off-by: Hannu Nyman <hannu.nyman@iki.fi>
2018-10-25 timezone data: update to 2018fHannu Nyman
Update timezone data to 2018f http://mm.icann.org/pipermail/tz-announce/2018-October/000051.html Volgograd moves from +03 to +04 on 2018-10-28. Fiji ends DST 2019-01-13, not 2019-01-20. Most of Chile changes DST dates, effective 2019-04-06. Signed-off-by: Hannu Nyman <hannu.nyman@iki.fi>
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-12treewide: Fix typos in UI stringsyangfl
Signed-off-by: David Yang <mmyangfl@gmail.com>
2018-10-10Merge pull request #2197 from yangfl/masterHannu Nyman
treewide: Fix typos in comments
2018-10-10luci-base: move luci.sys.iptparser into separate packageJo-Philipp Wich
Since commit f6bfac211 ("luci-mod-status: rework iptables status page"), nothing in luci-base depends on the iptparser class anymore, so fold it out into a separate package and let the few apps that require it depend on the new library package. Saves about 10K uncompressed in luci-base while the iptables status rework enlarged the markup by roughly 5KB, saving roughly 5KB of size overall. Signed-off-by: Jo-Philipp Wich <jo@mein.io>
2018-10-10treewide: Fix typos in commentsyangfl
Signed-off-by: David Yang <mmyangfl@gmail.com>
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-09timezone data: update to 2018eHannu Nyman
Update timezone data to 2018e http://mm.icann.org/pipermail/tz-announce/2018-May/000050.html North Korea switches back to +09 on 2018-05-05. The main format uses negative DST again, for Ireland Signed-off-by: Hannu Nyman <hannu.nyman@iki.fi>
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-29luci-base: cbi.lua: fix TypedSection.parse()Darius
It's not necessary to execute all code if section already exists. Signed-off-by: Darius Joksas <jok.darius@gmail.com> [reword commit message, squash commits, remove stray semicolon] Signed-off-by: Jo-Philipp Wich <jo@mein.io>
2018-09-27luci-base: fix sysauth cookie not removed on logoutKyle Rogers
Signed-off-by: Kyle Rogers <7157021+kyle30312@users.noreply.github.com>
2018-09-19luci-base: switch admin category node to firstnode() actionJo-Philipp Wich
After this change, luci-base will render the first module or application page installed on the system, instead of rendering a "Component not found" message when the status category is unavailable. This allows for single-purpose LuCI installations like e.g. luci-base with luci-app-travelmate which only presents application specific views without any of the standard system pages. Signed-off-by: Jo-Philipp Wich <jo@mein.io>
2018-09-19luci-base: dispatcher: introduce firstnode() dispatching targetJo-Philipp Wich
The firstnode target will dispatch the request to the first eligible menu subtree node that is not a redirect to another node, a special action or post security enabled page. That action is specifically useful for global category toplevel nodes like "admin" which are supposed to simply direct access to the first installed page node without having to hardcode specific choices. Signed-off-by: Jo-Philipp Wich <jo@mein.io>