Commit graph

12359 commits

Author SHA1 Message Date
Jo-Philipp Wich
4447dea2da luci-base: form.js: improve save error handling
Fixes: #3552
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
(cherry picked from commit 2dfcca23e4)
2020-05-07 19:40:49 +02:00
Jo-Philipp Wich
cd64289554 luci-base: form.js: add documentation
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
(cherry picked from commit 698c8ff843)
2020-05-07 19:40:49 +02:00
Jo-Philipp Wich
581ce6d116 form.js: use CSS .btn class for drag handles
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
(cherry picked from commit 5d8970d76c)
2020-05-07 19:40:49 +02:00
Jo-Philipp Wich
3005b14815 luci-base: form.js: rendering fixes for grid sections
- Ensure that last header cell is rendered for grid sections without
   sorting or addremove actions
 - Don't skip header cells for optional options

Signed-off-by: Jo-Philipp Wich <jo@mein.io>
(cherry picked from commit 9bb78b5cd8)
2020-05-07 19:40:49 +02:00
Jo-Philipp Wich
d51e0d807a luci-base: ui.js: reset scroll position when opening modal overlay
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
(cherry picked from commit 4df3a90b3d)
2020-05-07 19:40:49 +02:00
Jo-Philipp Wich
243c6c525d luci-base: ui.js: fix input value reading for select widgets
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>
(cherry picked from commit e3ef463ccd)
2020-05-07 19:40:49 +02:00
Jo-Philipp Wich
9be5a3df0b luci-base: ui.js: assume select widget by default for ListValue widget
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>
(cherry picked from commit 81effc1112)
2020-05-07 19:40:49 +02:00
Jo-Philipp Wich
41d2df511b luci-base: ui.js: fixes for radio widget type of select element
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
(cherry picked from commit 2fb55e1ab5)
2020-05-07 19:40:49 +02:00
Jo-Philipp Wich
e5ebf819da luci-base: ui.js: fix textarea width
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
(cherry picked from commit acae1378a8)
2020-05-07 19:40:49 +02:00
Jo-Philipp Wich
815824b36b luci-base: ui.js: order indicators by ID value
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
(cherry picked from commit 01d8283ece)
2020-05-07 19:40:49 +02:00
Jo-Philipp Wich
791741f0fb luci-base: ui.js: apply disabled attribute to toplevel dynlist node
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
(cherry picked from commit 46d31efc73)
2020-05-07 19:40:49 +02:00
Jo-Philipp Wich
cd29fdde9e luci-base: ui.js: use session data api to persist tab selection state
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
(cherry picked from commit 51186355ea)
2020-05-07 19:40:49 +02:00
Jo-Philipp Wich
b76269ab8c luci-base: ui.js: add disabled property to widgets
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
(cherry picked from commit 86c797041a)
2020-05-07 19:40:49 +02:00
Jo-Philipp Wich
ac4bb729ab luci-base: ui.js: add generic indicator handling functions
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
(cherry picked from commit 4250f99d7f)
2020-05-07 19:40:49 +02:00
Jo-Philipp Wich
67b2a36e53 luci-base: ui.js: improve mobile dropdown scroll behaviour
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
(cherry picked from commit 0fb2f8f1d1)
2020-05-07 19:40:49 +02:00
Jo-Philipp Wich
ceea8b7d5e luci-base: form.js / ui.js: tie form labels to widgets
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
(cherry picked from commit 22ba6fc40933bee02c3ea93bbda952bb44bf3af1)
(cherry picked from commit 82fb5a67d3)
2020-05-07 19:40:49 +02:00
Jo-Philipp Wich
2c2fdaf6ea luci-base: ui.js: various tweaks
- emit checkbox markup suitable for CSS styling
 - use .btn CSS class where appropriate
 - dispatch events when updating uci change indicator
 - use correct target node when handling events in createHandlerFn()

Signed-off-by: Jo-Philipp Wich <jo@mein.io>
(cherry picked from commit 993b4f7950)
2020-05-07 19:40:49 +02:00
Jo-Philipp Wich
85ac64e08c luci-base: luci.js: get rid of global L references in internal classes
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
(backported from commit 616d2a61e4)
2020-05-07 19:40:49 +02:00
Jo-Philipp Wich
bf4dd8e335 luci-base: luci.js: share environment object among LuCI base classes
This allows us to get rid of global `L` references in luci.js itself.

Signed-off-by: Jo-Philipp Wich <jo@mein.io>
(cherry picked from commit e385640505)
2020-05-07 19:40:49 +02:00
Jo-Philipp Wich
bef91474bd luci-base: ensure that ubus path uses trailing slash
Without the trailing slash, probing endpoint availability will fail.

Fixes: 529bde440 ("luci-base: make rpc webserver path configurable")
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
(cherry picked from commit 38289bc975)
2020-05-07 19:40:49 +02:00
Ansuel Smith
14a81ccb63 luci-base: make rpc webserver path configurable
Currently the ubus path that provide the webserver is hardcoded to be /ubus.
Change this to make it configurable from the luci config file.

Signed-off-by: Ansuel Smith <ansuelsmth@gmail.com>
(backported from commit 529bde4408)
2020-05-07 19:40:49 +02:00
Jo-Philipp Wich
e28f94bf01 luci-base: luci.js: add LuCI.session.getToken()
Since we're already have LuCI.session.getID() we should mirror the same
interface for retrieving the session token.

Signed-off-by: Jo-Philipp Wich <jo@mein.io>
(cherry picked from commit 551d839f90)
2020-05-07 19:40:49 +02:00
Jo-Philipp Wich
37d07f52bd luci-base: luci.js: add hasViewPermission() helper
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
(cherry picked from commit b739fc17ea)
2020-05-07 19:40:49 +02:00
Jo-Philipp Wich
93f9784a04 luci-base: luci.js: fix JSdoc markup issues
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
(cherry picked from commit 06af541c37)
2020-05-07 19:40:49 +02:00
Jo-Philipp Wich
cba0bf708f luci-base: luci.js: convert various probe* functions to session data api
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
(cherry picked from commit b0c8221926)
2020-05-07 19:40:49 +02:00
Jo-Philipp Wich
a198a32b2d luci-base: luci.js: add LuCI.session class
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
(cherry picked from commit ef718246b1)
2020-05-07 19:40:49 +02:00
Jo-Philipp Wich
87468c5731 luci-base: luci.js: add ability to add "preload" classes
Extend the LuCI bootstrap procedure to scan for class files in
/www/luci-static/preload/. Any JavaScript file found there will be
required automatically before setting up the view, allowing to stage
code that should run on every page load.

Signed-off-by: Jo-Philipp Wich <jo@mein.io>
(cherry picked from commit 0d0ad80fd1)
2020-05-07 19:40:49 +02:00
Jo-Philipp Wich
3c6dd6deec luci-base: luci.js: add LuCI.fspath() helper
The LuCI.fspath() function allows constructing absolute filesystem paths
from path segments relative to the document root.

Signed-off-by: Jo-Philipp Wich <jo@mein.io>
(cherry picked from commit fde144c9be)
2020-05-07 19:40:49 +02:00
Jo-Philipp Wich
2c7645b8e9 luci-base: expose effective dispatched path to client side environment
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
(backported from commit 97f27e0d54)
2020-05-07 19:40:49 +02:00
jjm2473
f42af69363 ucitrack: fix bug for exec with params
In file `/etc/config/ucitrack`
```
config fstab
        option exec '/sbin/block mount'
```
`/sbin/block mount` never be called after fstab changed.

Signed-off-by: jjm2473 <1129525450@qq.com>
(cherry picked from commit 97780a9ce1)
2020-05-07 19:40:49 +02:00
David Lam
855264221c luci-base: add system cert bundle detection
Add detection mechanism for system cert CA bundle installed by the
ca-bundle package. Used by LuCI to detect whether the "Use system
certificates" certificate validation option should be enabled.

Signed-off-by: David Lam <david@thedavid.net>
(cherry picked from commit 27b21c2a62)
2020-05-07 19:40:49 +02:00
Jo-Philipp Wich
20ddfdeb4f luci-base: dispatcher.lua: pass permission state to legacy CBI templates
Ref: https://github.com/openwrt/luci/issues/3937
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
(cherry picked from commit c48a8d5813)
2020-05-07 19:40:49 +02:00
Jo-Philipp Wich
d122f1278b luci-base: dispatcher.lua: honour acl_depends annotations in Lua controllers
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
(cherry picked from commit 760763a7b5)
2020-05-07 19:40:49 +02:00
Jo-Philipp Wich
9ad6320876 luci-base: dispatcher.lua: add support for handling menu ACL annotations
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
(cherry picked from commit 125916f2f4)
2020-05-07 19:40:49 +02:00
Anton Kikin
f77df82cd2 luci-base: Add missed config parameter for cbi when converting to JSON
The cbi() function has a second argument 'config' in which various
configuration parameters can be passed. When converting the lua menu
to JSON, we must also convert this parameter.

Signed-off-by: Anton Kikin <a.kikin@tano-systems.com>
(cherry picked from commit 2d8299338e)
2020-05-07 19:40:49 +02:00
Jo-Philipp Wich
fa534c4578 luci-base: dispatcher.lua: remove redundant check_fs_depends() call
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
(cherry picked from commit 08eea3f93e)
2020-05-07 19:40:49 +02:00
Jo-Philipp Wich
68784d4e61 luci-base: dispatcher.lua: fix filesystem dependency checks
A variable clash led to declarative `fs` dependencies being ineffective.

Signed-off-by: Jo-Philipp Wich <jo@mein.io>
(cherry picked from commit 7cfce56553)
2020-05-07 19:40:49 +02:00
Jo-Philipp Wich
4b7fe42410 luci-base: dispatcher: remove empty firstchild nodes from menu
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
(cherry picked from commit fd7961337f)
2020-05-07 19:40:49 +02:00
Jo-Philipp Wich
0f83d819b8 luci-base: dispatcher: fix rpc controller regression
When testing the luci-rpc authnetication, avoid clobbering the HTTP
post request body.

Fixes: #3470
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
(cherry picked from commit 38c9c9e0a2)
2020-05-07 19:40:49 +02:00
Jo-Philipp Wich
400e3ac4ec luci-base: dispatcher.lua: add support for loading JSON menu files
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
(cherry picked from commit cf1219bd07)
2020-05-07 19:40:49 +02:00
Jo-Philipp Wich
4618dee211 luci-base: dispatcher.lua: refactor dispatch logic
Refactor the dispatch logic to operate on the internal JSON representation
of the menu tree.

Signed-off-by: Jo-Philipp Wich <jo@mein.io>
(cherry picked from commit 184ea62300)
2020-05-07 19:40:49 +02:00
Jo-Philipp Wich
8059a49efc luci-base: dispatcher.lua: factor out template class init into own function
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
(cherry picked from commit 1ec6e72106)
2020-05-07 19:40:49 +02:00
Jo-Philipp Wich
be5116814e luci-base: dispatcher.lua: factor out language check into own function
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
(cherry picked from commit a6b214f873)
2020-05-07 19:40:49 +02:00
Jo-Philipp Wich
0f6af6e00d luci-base: dispatcher.lua: introduce dispatch tree JSON conversion
Introduce a new method menu_json() which converts the current dispatch
tree into JSON structure.

Signed-off-by: Jo-Philipp Wich <jo@mein.io>
(cherry picked from commit 852d24061d)
2020-05-07 19:40:49 +02:00
Jo-Philipp Wich
cecc13b9d4 luci-mod-status: use LuCI.ui.instantiateView() to load index view
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
(cherry picked from commit f9d61213fb)
2020-05-07 19:40:49 +02:00
Jo-Philipp Wich
a60ea6915c luci-base: ui.js: add instantiateView() helper
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
(cherry picked from commit d9e9cf92d1)
2020-05-07 19:40:49 +02:00
Jo-Philipp Wich
c2f30fbe4d treewide: import utility classes explicitly
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
(backported from commit 3c4bc228a1)
2020-05-07 19:40:49 +02:00
Jo-Philipp Wich
28489b12eb luci-base: harmonize JS class naming and requesting
- 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>
(backported from commit 711f759278)
2020-05-07 19:40:48 +02:00
Kevin Darbyshire-Bryant
9705b53322 luci-base: Improve change application message
As a native English speaker the luci message displayed when clicking
'Save & Apply' has a somewhat uncomfortable English phrasing of "Waiting
for configuration to get applied".  It could be improved by replacing
'get' with 'be' but once you've got that far you might as well replace
this with the shorter & simpler "Applying configuration changes".  This
is also technically more correct since luci/openwrt should only be
updating/restarting processes that are related to the changed areas, not
changing the entire configuration.

As a result of that, change both the 'success' and 'rolled back'
messages to "Configuration changes have been applied" & "Configuration
changes have been rolled back"

Signed-off-by: Kevin Darbyshire-Bryant <ldir@darbyshire-bryant.me.uk>
(cherry picked from commit 9b266d11c6)
2020-05-07 19:40:48 +02:00
Jo-Philipp Wich
c7c78291f1 luci-base: ui.js: dispatch "cbi-tab-active" event when a tab is selected
This is useful to lazy-load tab contents.

Signed-off-by: Jo-Philipp Wich <jo@mein.io>
(cherry picked from commit bf774e4c2a)
2020-05-07 19:40:48 +02:00