Jo-Philipp Wich
df8078d542
luci-base: ui.js: use common fs.js class for filebrowser operations
...
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
2019-10-07 11:53:39 +02:00
Jo-Philipp Wich
8776e423d9
luci-base: introduce common fs.js helper class
...
Introduce a new fs.js helper class to gather filesystem related RPC
operations in a single file.
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
2019-10-07 11:53:35 +02:00
Jo-Philipp Wich
1154e755f1
luci-base: luci.js: add resolveDefault() helper
...
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
2019-10-07 11:48:33 +02:00
Jo-Philipp Wich
b2809cebd8
luci-base: luci.js, rpc.js, uci.js, network.js: add JSDoc annotations
...
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
2019-10-02 08:59:41 +02:00
Jo-Philipp Wich
948ca3712f
luci-base: network.js: implement getMeshID() getter
...
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
2019-09-30 12:39:33 +02:00
Jo-Philipp Wich
809f16d4ce
luci-base: network.js: fix deleteNetwork() implementation
...
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
2019-09-24 08:02:57 +02:00
Jo-Philipp Wich
186ddfa044
luci-base: form.js: do not inherit map tabbing to nested sections
...
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
2019-09-24 08:01:04 +02:00
Jo-Philipp Wich
0068c3bd49
luci-base: form.js: allow overriding remove action in Table/GridSections
...
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
2019-09-24 07:59:04 +02:00
Jo-Philipp Wich
158515d5bd
luci-base: form.js: do not add title attributes for untitled options
...
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
2019-09-22 22:26:36 +02:00
Jo-Philipp Wich
6dba41cadc
luci-base: tie cached system features to user session
...
Store the cached system feature flags keyed by the current session id,
this ensures that the features are refreshed on login.
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
2019-09-21 10:55:54 +02:00
Jo-Philipp Wich
119c6319cb
luci-base: network.js: don't batch wireless scan requests
...
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
2019-09-21 10:23:37 +02:00
Jo-Philipp Wich
21d1266c53
luci-base: rpc.js: increase default timeout to 20s, allow batch prevention
...
Support a new option "nobatch: true" in rpc.declare() which prevents the
underlying RPC call from being batched with other calls.
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
2019-09-21 10:23:37 +02:00
Jo-Philipp Wich
afeacdc7df
luci-base: luci.js: improve XHR issue diagnostics
...
Differentiate between request timeouts and other error reasons.
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
2019-09-21 10:23:37 +02:00
Jo-Philipp Wich
d10575dfee
luci-base: form.js: only update option default if cfgvalue is null
...
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
2019-09-20 09:58:31 +02:00
Jo-Philipp Wich
25e0b966c7
luci-base: form.js: add support for dynamic default values
...
Many uci options have different implicit defaults, depending on the
values of other related options. A prominent example is the wireless
ieee80211w option which defaults to 2, 1 or 0 depending on whether
the encryption is set to wpa3-sae, wpa2/wpa2 mixed or any other mode
respectively.
Add the ability to specify a dictionary of default values and their
corresponding dependencies in order to be able to express such
configurations.
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
2019-09-19 15:40:57 +02:00
Jo-Philipp Wich
4dfa657f77
luci-base: ui.js: mark user-changed widgets
...
Set a `data-changed=true` attribute on the widget element when the user
did any change to the default value.
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
2019-09-19 15:39:46 +02:00
Jo-Philipp Wich
53ac685092
luci-base: form.js: fix default click action of button options
...
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
2019-09-18 15:08:19 +02:00
Jo-Philipp Wich
934fa275b2
luci-base: ensure that button labels are properly html escaped
...
Fixes : #3067
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
2019-09-18 13:51:16 +02:00
Jo-Philipp Wich
fd9182b21a
luci-base: network.js: filter invalid mac addresses
...
Only consider valid ethernet mac addresses when building the device state
from raw getifaddrs() information.
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
2019-09-18 07:46:33 +02:00
Jo-Philipp Wich
10880b565f
luci-base: network.js: get low level device details from getifaddr() info
...
Fixes : #3078
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
2019-09-18 07:19:18 +02:00
Jo-Philipp Wich
9ecfe33edd
luci-base: luci.js: render view buttons depending on available functions
...
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
2019-09-17 07:03:27 +02:00
Jo-Philipp Wich
96fbca76c8
luci-base: form.js: implement JSONMap
...
Implement a new map type JSONMap which uses a JSON data structure instead
of uci as configuration data backend.
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
2019-09-16 07:55:45 +02:00
Jo-Philipp Wich
2e206861ae
luci-base: luci.js: append version when dynamically loading classes
...
This allows for some naive cache busting when the LuCI version changes,
to avoid loading outdated classes from cache.
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
2019-09-14 17:44:32 +02:00
Jo-Philipp Wich
208bf47a33
luci-base: cbi.js: update dependencies after widgets have been rendered
...
Fixes : #3066
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
2019-09-14 17:20:41 +02:00
Jo-Philipp Wich
7c9d1a259c
luci-base: network.js: register "none" protocol
...
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
2019-09-14 17:04:02 +02:00
Jo-Philipp Wich
2dd17fad6c
luci-base: network.js: implement Hosts.getMACHints()
...
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
2019-09-13 14:18:43 +02:00
Jo-Philipp Wich
3734f88c35
luci-base: fix ip6hint option dependencies and validation
...
Ref: https://forum.openwrt.org/t/odhcpd-make-lease-file-persistent/44118/8
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
2019-09-13 12:57:08 +02:00
Jo-Philipp Wich
473bd2741b
luci-base: rpc.js: fix list requests, handle aborted http requests
...
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
2019-09-12 14:02:06 +02:00
Jo-Philipp Wich
9be42e29e7
luci-base: form.js: handle non-string values in stripTags()
...
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
2019-09-12 11:09:57 +02:00
Jo-Philipp Wich
34e73fd983
luci-base: widgets.js: fix display quirk in tools.widgets.DeviceSelect
...
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
2019-09-11 12:44:34 +02:00
Jo-Philipp Wich
c96de72043
luci-base: validation.js: implement length() datatype validator
...
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
2019-09-11 12:28:58 +02:00
Jo-Philipp Wich
a0d1294566
luci-base: luci.js: register rpc interceptor to catch expired sessions
...
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
2019-09-11 12:21:24 +02:00
Jo-Philipp Wich
c3ddcbb542
luci-base: luci.js: rework error handling
...
- Capture stack trace in L.raise() if passed type is not an Error instance
- Use L.ui.addNotification in L.error() to render the error message
- Prevent duplicate error reporting in the ui
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
2019-09-11 12:21:05 +02:00
Jo-Philipp Wich
f141433f5e
luci-base: rpc.js: revamp error handling, add interceptor support
...
Add two new functions L.rpc.addInterceptor() and L.rpc.removeInterceptor()
which allow to register and remove interceptor functions which are invoked
before the rpc reply result promise is fulfilled.
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
2019-09-11 09:25:11 +02:00
Jo-Philipp Wich
94a9f600d3
luci-base: ui.js: implement addNotification() helper
...
The L.ui.addNotification() function pushes a dismissable banner message to
the top of the view.
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
2019-09-11 09:22:13 +02:00
Jo-Philipp Wich
5dc61be746
luci-base: replace luci/getHostname with generic file/read rpc operation
...
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
2019-09-10 15:29:15 +02:00
Jo-Philipp Wich
dab0a11b73
luci-base: form.js: store pointer to parent map in modal overlay map
...
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
2019-09-10 15:28:16 +02:00
Jo-Philipp Wich
03f9528847
luci-base: form.js: pass-through promise in handleAdd
...
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
2019-09-10 15:28:16 +02:00
Jo-Philipp Wich
18e6b17911
luci-base: network.js: add getHostHints() api
...
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
2019-09-10 15:28:16 +02:00
Jo-Philipp Wich
3f93650901
luci-base: use cgi-io and rpcd-mod-file to handle file upload and browsing
...
Remove the old server side support for file browsing and file uploading
and switch to a client side widget instead which uses XMLHTTPRequests to
upload files via cgi-io and RPC calls for file listing and status queries.
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
2019-09-10 15:28:16 +02:00
Jo-Philipp Wich
1fcf34510a
luci-base: cbi.js: handle ui elements which return a promise in render()
...
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
2019-09-10 15:28:16 +02:00
Jo-Philipp Wich
6d9a23af60
luci-base: cbi.js: fix unintended number sign overflow in format
...
Fixes : #3003
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
2019-09-10 15:28:16 +02:00
Jo-Philipp Wich
642b8277df
luci-base: form.js: use createHandlerFn() for click actions
...
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
2019-09-10 15:28:16 +02:00
Jo-Philipp Wich
eac8316e0d
luci-base: luci.js: use createHandlerFn() for page actions
...
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
2019-09-10 15:28:16 +02:00
Jo-Philipp Wich
e14b884771
luci-base: form.js: do not consider inactive fields for dependency checks
...
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
2019-09-10 15:28:16 +02:00
Jo-Philipp Wich
aef4bc3a23
luci-base: rpc.js: add getStatusText() call
...
The new function allows translating an ubus return code into a human
readable error message.
Also report the called object and method on ubus rpc errors.
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
2019-09-10 15:28:16 +02:00
Jo-Philipp Wich
93af8a3af8
luci-base: network.js: fix, rework and improve wireless state handling
...
- Use new getWirelessDevices rpc method to optimize data fetching
- Implement further getters to access iwinfo information
- Implement assoc- and scan list functions
- Simplify internal data model
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
2019-09-10 15:28:16 +02:00
Jo-Philipp Wich
8481330e42
luci-base: luci.js: support passing FormData as request payload
...
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
2019-09-10 15:28:16 +02:00
Jo-Philipp Wich
d5e6688072
luci-base: luci.js: support registering request progress handlers
...
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
2019-09-10 15:28:16 +02:00
Jo-Philipp Wich
88969529f1
luci-base: luci.js: fix L.Poll.remove()
...
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
2019-09-10 15:28:16 +02:00