new LuCI(window, document, undefined)
This is the LuCI base class. It is automatically instantiated and accessible using the global L variable.
| Name | Type | Description |
|---|---|---|
window | Window | The browser global |
document | Document | The DOM |
undefined | undefined | Local |
| Name | Type | Description |
|---|---|---|
env | object | The environment settings to use for the LuCI runtime. |
Classes
Namespaces
Members
Class
Legacy L.Class class alias. New view code should use 'require baseclass'; to request the LuCI.baseclass class.
- Deprecated
- Yes
Poll
Legacy L.Poll class alias. New view code should use 'require poll'; to request the LuCI.poll class.
- Deprecated
- Yes
Request
Legacy L.Request class alias. New view code should use 'require request'; to request the LuCI.request class.
- Deprecated
- Yes
dom
Legacy L.dom class alias. New view code should use 'require dom'; to request the LuCI.dom class.
- Deprecated
- Yes
env
The env object holds environment settings used by LuCI, such as request timeouts, base URLs, etc.
naturalCompare :function
Compares two values numerically and returns -1, 0, or 1 depending on whether the first value is smaller, equal to, or larger than the second one respectively.
This function is meant to be used as a comparator function for Array.sort().
- function
view
Legacy L.view class alias. New view code should use 'require view'; to request the LuCI.view class.
- Deprecated
- Yes
Methods
bind(fn, self, …argsopt) → {function}
Return a bound function using the given self as this context and any further arguments as parameters to the bound function.
| Name | Type | Attributes | Description |
|---|---|---|---|
fn | function | The function to bind. | |
self | * | The value to bind as | |
args | * | <optional> <repeatable> | Zero or more variable arguments which are bound to the function as parameters. |
Returns the bound function.
- Type:
- function
error(typeopt, fmtopt, …argsopt)
A wrapper around raise() which also renders the error either as modal overlay when ui.js is already loaded or directly into the view body.
| Name | Type | Attributes | Default | Description |
|---|---|---|---|---|
type | Error | | <optional> | Error | Either a string specifying the type of the error to throw or an existing |
fmt | string | <optional> | Unspecified error | A format string which is used to form the error message, together with all subsequent optional arguments. |
args | * | <optional> <repeatable> | Zero or more variable arguments to the supplied format string. |
Throws the created error object with the captured stack trace appended to the message and the type set to the given type argument or copied from the given error instance.
- Type
- Error
fspath(…partsopt) → {string}
Construct an absolute filesystem path relative to the server document root.
| Name | Type | Attributes | Description |
|---|---|---|---|
parts | string | <optional> <repeatable> | An array of parts to join into a path. |
Return the joined path.
- Type:
- string
get(url, argsopt, cb) → {Promise.<null>}
Issues a GET request to the given url and invokes the specified callback function. The function is a wrapper around Request.request().
| Name | Type | Attributes | Description |
|---|---|---|---|
url | string | The URL to request. | |
args | Object.<string, string> | <optional> | Additional query string arguments to append to the URL. |
cb | LuCI. | The callback function to invoke when the request finishes. |
- Deprecated
- Yes
Returns a promise resolving to null when concluded.
- Type:
- Promise.<null>
halt() → {boolean}
Deprecated wrapper around Poll.stop().
- Deprecated
- Yes
Returns true when the polling loop has been stopped or false when it didn't run to begin with.
- Type:
- boolean
hasSystemFeature(feature, subfeatureopt) → {boolean|null}
Test whether a particular system feature is available, such as hostapd SAE support or an installed firewall. The features are queried once at the beginning of the LuCI session and cached in SessionStorage throughout the lifetime of the associated tab or browser window.
| Name | Type | Attributes | Description |
|---|---|---|---|
feature | string | The feature to test. For a detailed list of known feature flags, see | |
subfeature | string | <optional> | Some feature classes like |
Return true if the queried feature (and sub-feature) is available or false if the requested feature isn't present or known. Return null when a sub-feature was queried for a feature which has no sub-features.
- Type:
- boolean |
null
hasViewPermission() → {boolean|null}
Check whether a view has sufficient permissions.
Returns null if the current session has no permission at all to load resources required by the view. Returns false if readonly permissions are granted or true if at least one required ACL group is granted with write permissions.
- Type:
- boolean |
null
isArguments(valopt) → {boolean}
Tests whether the passed argument is a function arguments object.
| Name | Type | Attributes | Description |
|---|---|---|---|
val | * | <optional> | The value to test |
Returns true if the given value is a function arguments object, else returns false.
- Type:
- boolean
isObject(valopt) → {boolean}
Tests whether the passed argument is a JavaScript object. This function is meant to be an object counterpart to the standard Array.isArray() function.
| Name | Type | Attributes | Description |
|---|---|---|---|
val | * | <optional> | The value to test |
Returns true if the given value is of a type object and not null, else returns false.
- Type:
- boolean
location() → {string}
Return the complete URL path to the current view.
Returns the URL path to the current view.
- Type:
- string
media(…partsopt) → {string}
Construct a URL path relative to the media resource path of the LuCI ui (usually /luci-static/$theme_name).
The resulting URL is guaranteed to contain only the characters a-z, A-Z, 0-9, _, ., %, ,, ;, and - as well as / for the path separator. Suffixing '?x=y&foo=bar' URI parameters also limited to the aforementioned characters is permissible.
| Name | Type | Attributes | Description |
|---|---|---|---|
parts | string | <optional> <repeatable> | An array of parts to join into a URL path. Parts may contain slashes and any of the other characters mentioned above. |
Returns the resulting URL path.
- Type:
- string
path(prefixopt, …partsopt) → {string}
Construct a relative URL path from the given prefix and parts. The resulting URL is guaranteed to contain only the characters a-z, A-Z, 0-9, _, ., %, ,, ;, and - as well as / for the path separator. Suffixing '?x=y&foo=bar' URI parameters also limited to the aforementioned characters is permissible.
| Name | Type | Attributes | Description |
|---|---|---|---|
prefix | string | <optional> | The prefix to join the given parts with. If the |
parts | string | <optional> <repeatable> | An array of parts to join into a URL path. Parts may contain slashes and any of the other characters mentioned above. |
Return the joined URL path.
- Type:
- string
poll(interval, url, argsopt, cb, postopt) → {function}
Register a polling HTTP request that invokes the specified callback function. The function is a wrapper around Request.poll.add().
| Name | Type | Attributes | Default | Description |
|---|---|---|---|---|
interval | number | The poll interval to use. If set to a value less than or equal to | ||
url | string | The URL to request. | ||
args | Object.<string, string> | <optional> | Specifies additional arguments for the request. For GET requests, the arguments are appended to the URL as query string, for POST requests, they'll be added to the request body. | |
cb | LuCI. | The callback function to invoke whenever a request finishes. | ||
post | boolean | <optional> | false | When set to |
- Deprecated
- Yes
Returns the internally created function that has been passed to Request.poll.add(). This value can be passed to Poll.remove() to remove the polling request.
- Type:
- function
post(url, argsopt, cb) → {Promise.<null>}
Issues a POST request to the given url and invokes the specified callback function. The function is a wrapper around Request.request(). The request is sent using application/x-www-form-urlencoded encoding and will contain a field token with the current value of LuCI.env.token by default.
| Name | Type | Attributes | Description |
|---|---|---|---|
url | string | The URL to request. | |
args | Object.<string, string> | <optional> | Additional post arguments to append to the request body. |
cb | LuCI. | The callback function to invoke when the request finishes. |
- Deprecated
- Yes
Returns a promise resolving to null when concluded.
- Type:
- Promise.<null>
raise(typeopt, fmtopt, …argsopt)
Captures the current stack trace and throws an error of the specified type as a new exception. Also logs the exception as an error to the debug console if it is available.
| Name | Type | Attributes | Default | Description |
|---|---|---|---|---|
type | Error | | <optional> | Error | Either a string specifying the type of the error to throw or an existing |
fmt | string | <optional> | Unspecified error | A format string which is used to form the error message, together with all subsequent optional arguments. |
args | * | <optional> <repeatable> | Zero or more variable arguments to the supplied format string. |
Throws the created error object with the captured stack trace appended to the message and the type set to the given type argument or copied from the given error instance.
- Type
- Error
require(name, fromopt) → {Promise.<LuCI.baseclass>}
Load an additional LuCI JavaScript class and its dependencies, instantiate it and return the resulting class instance. Each class is only loaded once. Subsequent attempts to load the same class will return the already instantiated class.
| Name | Type | Attributes | Default | Description |
|---|---|---|---|---|
name | string | The name of the class to load in dotted notation. Dots will be replaced by spaces and joined with the runtime-determined base URL of LuCI.js to form an absolute URL to load the class file from. | ||
from | Array.<string> | <optional> | [] | Optional dependency chain used during dependency resolution. This array contains the sequence of class names already being resolved (the caller stack). It is used to detect circular dependencies — if |
Throws a
DependencyErrorwhen the class to load includes circular dependencies.- Type
- DependencyError
Throws
NetworkErrorwhen the underlyingLuCI.requestcall failed.- Type
- NetworkError
Throws
SyntaxErrorwhen the loaded class file code cannot be interpreted byeval.- Type
- SyntaxError
Throws
TypeErrorwhen the class file could be loaded and interpreted, but when invoking its code did not yield a valid class instance.- Type
- TypeError
Returns the instantiated class.
- Type:
- Promise.<LuCI.baseclass>
resolveDefault(value, defvalue) → {Promise.<*>}
Returns a promise resolving with either the given value or with the given default in case the input value is a rejecting promise.
| Name | Type | Description |
|---|---|---|
value | * | The value to resolve the promise with. |
defvalue | * | The default value to resolve the promise with in case the given input value is a rejecting promise. |
Returns a new promise resolving either to the given input value or to the given default value on error.
- Type:
- Promise.<*>
resource(…partsopt) → {string}
Construct a URL path relative to the global static resource path of the LuCI ui (usually /luci-static/resources).
The resulting URL is guaranteed to contain only the characters a-z, A-Z, 0-9, _, ., %, ,, ;, and - as well as / for the path separator. Suffixing '?x=y&foo=bar' URI parameters also limited to the aforementioned characters is permissible.
| Name | Type | Attributes | Description |
|---|---|---|---|
parts | string | <optional> <repeatable> | An array of parts to join into a URL path. Parts may contain slashes and any of the other characters mentioned above. |
Returns the resulting URL path.
- Type:
- string
run() → {boolean}
Deprecated wrapper around Poll.start().
- Deprecated
- Yes
Returns true when the polling loop has been started or false when it was already running.
- Type:
- boolean
sortedArray(val) → {Array.<*>}
Converts the given value to an array using toArray() if needed, performs a numerical sort using naturalCompare() and returns the result. If the input already is an array, no copy is being made and the sorting is performed in-place.
| Name | Type | Description |
|---|---|---|
val | * | The input value to sort (and convert to an array if needed). |
- See
- toArray
- naturalCompare
Returns the resulting, numerically sorted array.
- Type:
- Array.<*>
sortedKeys(obj, keyopt, sortmodeopt) → {Array.<string>}
Return an array of sorted object keys, optionally sorted by a different key or a different sorting mode.
| Name | Type | Attributes | Description |
|---|---|---|---|
obj | object | The object to extract the keys from. If the given value is not an object, the function will return an empty array. | |
key | string | | <optional> | Specifies the key to order by. This is mainly useful for nested objects of objects or objects of arrays when sorting shall not be performed by the primary object keys but by some other key pointing to a value within the nested values. |
sortmode | "addr" | | <optional> | Can be either |
Returns an array containing the sorted keys of the given object.
- Type:
- Array.<string>
stop(entry) → {boolean}
Deprecated wrapper around Poll.remove().
| Name | Type | Description |
|---|---|---|
entry | function | The polling function to remove. |
- Deprecated
- Yes
Returns true when the function has been removed or false if it could not be found.
- Type:
- boolean
toArray(val) → {Array.<*>}
Converts the given value to an array. If the given value is of type array, it is returned as-is, values of a type object are returned as one-element array containing the object, empty strings and null values are returned as an empty array, all other values are converted using String(), trimmed, split on white space and returned as an array.
| Name | Type | Description |
|---|---|---|
val | * | The value to convert into an array. |
Returns the resulting array.
- Type:
- Array.<*>
url(…partsopt) → {string}
Construct a URL with a path relative to the script path of the server side LuCI application (usually /cgi-bin/luci).
The resulting URL is guaranteed to contain only the characters a-z, A-Z, 0-9, _, ., %, ,, ;, and - as well as / for the path separator. Suffixing '?x=y&foo=bar' URI parameters also limited to the aforementioned characters is permissible.
| Name | Type | Attributes | Description |
|---|---|---|---|
parts | string | <optional> <repeatable> | An array of parts to join into a URL path. Parts may contain slashes and any of the other characters mentioned above. |
Returns the resulting URL path.
- Type:
- string
Type Definitions
requestCallbackFn(xhr, data, duration)
The request callback function is invoked whenever an HTTP reply to a request made using the L.get(), L.post() or L.poll() function is timed out or received successfully.
| Name | Type | Description |
|---|---|---|
xhr | XMLHTTPRequest | The XMLHTTPRequest instance used to make the request. |
data | * | The response JSON if the response could be parsed as such, else |
duration | number | The total duration of the request in milliseconds. |