- 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>
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>
We need to query the dropdowns before initializing dynamic lists but
after initializing combo boxes.
Also fix a copy-paste error from a previous commit.
Fixes: 010102c2c ("luci-base: cbi.js: find dropdown and browser instances early")
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
Gather dropdown and file browser widget nodes early, before initializing
dynamic list widgets as dynlists invoke a dependency update which in turn
might remove widget nodes from dom before they have been initialized.
Ref: https://github.com/openwrt/luci/issues/2997#issuecomment-524251601
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
Rewrite the wireless network management views in client side JS using ubus
rpc calls for the router communication.
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
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>
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>
- 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>
The getWirelessDevices() method merges the results of the
network.wireless/status call with corresponding per-radio and
per-network iwinfo data.
This allows to simplify the client side network state model
implementation and saves extraneous rpc roundtrips to fetch
iwinfo data after discovering the wireless devices.
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
- Autoselect the matching IPv4 address when initially picking a MAC
- Add hostname hints in the MAC/IP dropdowns
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
- Redraw map even when it could not be saved due to validation errors
- Use createHandlerFn() for attaching event handlers
- Convert buttons to <button> element to allow use of spinning class
Signed-off-by: Jo-Philipp Wich <jo@mein.io>