diff --git a/CBI.md b/CBI.md index 933380d22f..056386f8c2 100644 --- a/CBI.md +++ b/CBI.md @@ -1,78 +1,83 @@ +# Writing LuCI CBI models -# CBI models -are Lua files describing the structure of an UCI config file and the resulting HTML form to be evaluated by the CBI parser.
-All CBI model files must return an object of type **luci.cbi.Map**.
-For a commented example of a CBI model, see the [Writing Modules tutorial](ModulesHowTo.md#cbimodels). +See [online wiki](https://github.com/openwrt/luci/wiki/CBI) for latest version. -The scope of a CBI model file is automatically extended by the contents of the module **luci.cbi** and the _translate_ function from **luci.i18n** +CBI models are Lua files describing the structure of an UCI config file and the resulting HTML form to be evaluated by the CBI parser.
+All CBI model files must return an object of type `luci.cbi.Map`.
+For a commented example of a CBI model, see the [Writing Modules tutorial](./ModulesHowTo.md). + +The scope of a CBI model file is automatically extended by the contents of the module `luci.cbi` and the `translate` function from `luci.i18n`. This Reference covers **the basics** of the CBI system. -## class Map (_config, title, description_) +## class Map (config, title, description) This is the root object of the model. -* **config:** configuration filename to be mapped, see [UCI documentation](https://openwrt.org/docs/guide-user/base-system/uci) and the files in /etc/config -* **title:** title shown in the UI -* **description:** description shown in the UI +* `config:` configuration filename to be mapped, see [UCI documentation](https://openwrt.org/docs/guide-user/base-system/uci) and the files in `/etc/config` +* `title:` title shown in the UI +* `description:` description shown in the UI -#### function :section (_sectionclass_, ...) +#### function :section (sectionclass, ...) Creates a new section -* **sectionclass**: a class object of the section +* `sectionclass`: a class object of the section * _additional parameters passed to the constructor of the section class_ ---- -## class NamedSection (_name, type, title, description_) +## class NamedSection (name, type, title, description) An object describing an UCI section selected by the name.
To instantiate use: `Map:section(NamedSection, "name", "type", "title", "description")` -* **name:** UCI section name -* **type:** UCI section type -* **title:** The title shown in the UI -* **description:** description shown in the UI +* `name:` UCI section name +* `type:` UCI section type +* `title:` The title shown in the UI +* `description:` description shown in the UI -#### function :option(_optionclass_, ...) +#### function :option(optionclass, ...) Creates a new option -* **optionclass:** a class object of the section +* `optionclass:` a class object of the section * _additional parameters passed to the constructor of the option class_ #### property .addremove = false Allows the user to remove and recreate the configuration section. #### property .dynamic = false -Marks this section as dynamic. Dynamic sections can contain an undefinded number of completely userdefined options. +Marks this section as dynamic. +Dynamic sections can contain an undefinded number of completely userdefined options. #### property .optional = true Parse optional options ---- -## class TypedSection (_type, title, description_) +## class TypedSection (type, title, description) An object describing a group of UCI sections selected by their type.
To instantiate use: `Map:section(TypedSection, "type", "title", "description")` -* **type:** UCI section type -* **title:** The title shown in the UI -* **description:** description shown in the UI +* `type:` UCI section type +* `title:` The title shown in the UI +* `description:` description shown in the UI -#### function :option(_optionclass_, ...) +#### function :option(optionclass, ...) Creates a new option - **optionclass:** a class object of the section - _additional parameters passed to the constructor of the option class_ +* `optionclass:` a class object of the section +* _additional parameters passed to the constructor of the option class_ -#### function :depends(_key, value_) -Only select those sections where _key == value_
+#### function :depends(key, value) +Only show this option field if another option `key` is set to `value` in the same section.
If you call this function several times the dependencies will be linked with **"or"** -#### function .filter(_self, section_) -abstract- +#### function .filter(self, section) -abstract- You can override this function to filter certain sections that will not be parsed. -The filter function will be called for every section that should be parsed and returns **nil** for sections that should be filtered. For all other sections it should return the section name as given in the second parameter. +The filter function will be called for every section that should be parsed and returns `nil` for sections that should be filtered. +For all other sections it should return the section name as given in the second parameter. #### property .addremove = false Allows the user to remove and recreate the configuration section #### property .dynamic = false -Marks this section as dynamic. Dynamic sections can contain an undefinded number of completely userdefined options. +Marks this section as dynamic. +Dynamic sections can contain an undefinded number of completely userdefined options. #### property .optional = true Parse optional options @@ -82,16 +87,16 @@ Do not show UCI section names ---- -## class Value (_option, title, description_) +## class Value (option, title, description) An object describing an option in a section of a UCI File. Creates a standard text field in the formular.
To instantiate use: `NamedSection:option(Value, "option", "title", "description")`
or `TypedSection:option(Value, "option", "title", "description")` -* **option:** UCI option name -* **title:** The title shown in the UI -* **description:** description shown in the UI +* `option:` UCI option name +* `title:` The title shown in the UI +* `description:` description shown in the UI #### function :depends(key, value) -Only show this option field if another option _key_ is set to _value_ in the same section.
+Only show this option field if another option `key` is set to `value` in the same section.
If you call this function several times the dependencies will be linked with **"or"** #### function :value(key, value) @@ -101,10 +106,10 @@ Convert this text field into a combobox if possible and add a selection option. The default value #### property .maxlength = nil -The maximum inputlength (of chars) of the value +The maximum input length (of chars) of the value #### property .optional = false -Marks this option as optional, implies .rmempty = true +Marks this option as optional, implies `.rmempty = true` #### property .rmempty = true Removes this option from the configuration file when the user enters an empty value @@ -114,30 +119,30 @@ The maximum number of chars displayed by form field ---- -## class ListValue (_option, title, description_) +## class ListValue (option, title, description) An object describing an option in a section of a UCI File.
Creates a list box or list of radio (for selecting one of many choices) in the formular.
To instantiate use: `NamedSection:option(ListValue, "option", "title", "description")`
or `TypedSection:option(ListValue, "option", "title", "description")` -* **option:** UCI option name -* **title:** The title shown in the UI -* **description:** description shown in the UI +* `option:` UCI option name +* `title:` The title shown in the UI +* `description:` description shown in the UI #### function :depends(key, value) -Only show this option field if another option _key_ is set to _value_ in the same section.
+Only show this option field if another option `key` is set to `value` in the same section.
If you call this function several times the dependencies will be linked with **"or"** -#### function :value(_key, value_) +#### function :value(key, value) Adds an entry to the selection list #### property .widget = "select" -**"select"** shows a selection list, **"radio"** shows a list of radio buttons inside form +`select` shows a selection list, `radio` shows a list of radio buttons inside form #### property .default = nil The default value #### property .optional = false -Marks this option as optional, implies .rmempty = true +Marks this option as optional, implies `.rmempty = true` #### property .rmempty = true Removes this option from the configuration file when the user enters an empty value @@ -147,17 +152,17 @@ The size of the form field ---- -## class Flag (_option, title, description_) +## class Flag (option, title, description) An object describing an option with two possible values in a section of a UCI File.
Creates a checkbox field in the formular.
-To instantiate use: `NamedSection:option(Flag, "option", ""title", "description")`
+To instantiate use: `NamedSection:option(Flag, "option", "title", "description")`
or `TypedSection:option(Flag, "option", "title", "description")` -* **option:** UCI option name -* **title:** The title shown in the UI -* **description:** description shown in the UI +* `option:` UCI option name +* `title:` The title shown in the UI +* `description:` description shown in the UI -#### function :depends (_key, value_) -Only show this option field if another option _key_ is set to _value_ in the same section.
+#### function :depends (key, value) +Only show this option field if another option `key` is set to `value` in the same section.
If you call this function several times the dependencies will be linked with **"or"** #### property .default = nil @@ -170,31 +175,31 @@ the value that should be set if the checkbox is unchecked the value that should be set if the checkbox is checked #### property .optional = false -Marks this option as optional, implies .rmempty = true +Marks this option as optional, implies `.rmempty = true` #### property .rmempty = true Removes this option from the configuration file when the user enters an empty value ---- -## class MultiValue (_option'', ''title'', ''description_) +## class MultiValue (option, title, description) An object describing an option in a section of a UCI File.
Creates a list of checkboxed or a multiselectable list as form fields.
-To instantiate use: `NamedSection:option(MultiValue, "option", ""title", "description")`
+To instantiate use: `NamedSection:option(MultiValue, "option", "title", "description")`
or `TypedSection:option(MultiValue, "option", "title", "description")` -* **option:** UCI option name -* **title:** The title shown in the UI -* **description:** description shown in the UI +* `option:` UCI option name +* `title:` The title shown in the UI +* `description:` description shown in the UI -#### function :depends (_key, value_) -Only show this option field if another option _key_ is set to _value_ in the same section.
+#### function :depends (key, value) +Only show this option field if another option `key` is set to `value` in the same section.
If you call this function several times the dependencies will be linked with **"or"** -#### function :value(_key, value_) +#### function :value(key, value) Adds an entry to the list #### property .widget = "checkbox" -**"select"** shows a selection list, **"checkbox"** shows a list of checkboxes inside form +`select` shows a selection list, `checkbox` shows a list of checkboxes inside form #### property .delimiter = " " The string which will be used to delimit the values inside stored option @@ -203,44 +208,44 @@ The string which will be used to delimit the values inside stored option The default value #### property .optional = false -Marks this option as optional, implies .rmempty = true +Marks this option as optional, implies `.rmempty = true` #### property .rmempty = true Removes this option from the configuration file when the user enters an empty value #### property .size = nil -The size of the form field (only used if property _.widget = "select"_) +The size of the form field (only used if property `.widget = "select"`) ---- -## class StaticList (_option, title, description_) -Similar to the MultiValue, but stores selected Values into a UCI list instead of a character-separated option. +## class StaticList (option, title, description) +Similar to the `MultiValue`, but stores selected Values into a UCI list instead of a character-separated option. ---- -## class DynamicList (_option, title, description_) +## class DynamicList (option, title, description) A extensible list of user-defined values. Stores Values into a UCI list ---- -## class DummyValue (_option, title, description_) +## class DummyValue (option, title, description) Creates a readonly text in the form. !It writes no data to UCI!
-To instantiate use: `NamedSection:option(DummyValue, "option", ""title", "description")`
+To instantiate use: `NamedSection:option(DummyValue, "option", "title", "description")`
or `TypedSection:option(DummyValue, "option", "title", "description")` -* **option:** UCI option name -* **title:** The title shown in the UI -* **description:** description shown in the UI +* `option:` UCI option name +* `title:` The title shown in the UI +* `description:` description shown in the UI -#### property :depends (_key, value_) -Only show this option field if another option _key_ is set to _value_ in the same section.
+#### function :depends (key, value) +Only show this option field if another option `key` is set to `value` in the same section.
If you call this function several times the dependencies will be linked with **"or"** ---- -## class TextValue (_option, title, description_) +## class TextValue (option, title, description) An object describing a multi-line textbox in a section in a non-UCI form. ---- -## class Button (_option, title, description_) +## class Button (option, title, description) An object describing a Button in a section in a non-UCI form. diff --git a/JsonRpcHowTo.md b/JsonRpcHowTo.md index 76d61f86e3..46aeb05659 100644 --- a/JsonRpcHowTo.md +++ b/JsonRpcHowTo.md @@ -1,66 +1,120 @@ -LuCI provides some of its libraries to external applications through a JSON-RPC API. +# HowTo: Using the JSON-RPC API + +See [online wiki](https://github.com/openwrt/luci/wiki/JsonRpcHowTo) for latest version. + +LuCI provides some of its libraries to external applications through a [JSON-RPC](https://en.wikipedia.org/wiki/JSON-RPC) API. This Howto shows how to use it and provides information about available functions. +See also +* wiki [rpcd](https://openwrt.org/docs/techref/rpcd) +* wiki [ubus](https://openwrt.org/docs/techref/ubus) -# Basics -LuCI comes with an efficient JSON De-/Encoder together with a JSON-RPC-Server which implements the *JSON-RPC 1.0_' and 2.0 (partly) specifications. The LuCI JSON-RPC server offers several independent APIs. Therefore you have to use '_different URLs for every exported library*. -Assuming your LuCI-Installation can be reached through */cgi-bin/luci_' any exported library can be reached via '''/cgi-bin/luci/rpc/''LIBRARY_*. +## Basics +To enable the API, install the following package and restart `uhttpd`: + +```bash +opkg install luci-mod-rpc luci-lib-ipkg luci-compat +/etc/init.d/uhttpd restart +``` + +LuCI comes with an efficient JSON De-/Encoder together with a JSON-RPC-Server which implements the JSON-RPC 1.0 and 2.0 (partly) specifications. +The LuCI JSON-RPC server offers several independent APIs. +Therefore you have to use **different URLs for every exported library**. +Assuming your LuCI-Installation can be reached through `/cgi-bin/luci`, any exported library can be reached via `/cgi-bin/luci/rpc/LIBRARY`. -# Authentication -Most exported libraries will require a valid authentication to be called with. If you get an *HTTP 403 Forbidden_' status code you are probably missing a valid authentication token. To get such a token you have to call the function '''login''' of the RPC-Library '''auth'''. Following our example from above this login function would be provided at '_/cgi-bin/luci/rpc/auth*. The function accepts 2 parameters: username and password (of a valid user account on the host system) and returns an authentication token. +## Authentication +Most exported libraries will require a valid authentication to be called with. +If you get an `HTTP 403 Forbidden` status code you are probably missing a valid authentication token. +To get such a token you have to call the `login` method of the RPC-Library `auth`. +Following our example from above this login function would be provided at `/cgi-bin/luci/rpc/auth`. +The function accepts 2 parameters: `username` and `password` (of a valid user account on the host system) and returns an authentication token. -If you want to call any exported library which requires an authentication token you have to *append it as an URL parameter _auth''''' to the RPC-Server URL. So instead of calling '''/cgi-bin/luci/rpc/''LIBRARY''''' you have to call '''/cgi-bin/luci/rpc/''LIBRARY''?auth=''TOKEN_*. +Example: +```sh +curl http:///cgi-bin/luci/rpc/auth --data ' +{ + "id": 1, + "method": "login", + "params": [ + "youruser", + "somepassword" + ] +}' +``` + +response: +```json +{"id":1,"result":"65e60c5a93b2f2c05e61681bf5e94b49","error":null} +``` + +If you want to call any exported library which requires an authentication token you have to append it as an URL parameter auth to the RPC-Server URL. +E.g. instead of calling `/cgi-bin/luci/rpc/LIBRARY` you should call `/cgi-bin/luci/rpc/LIBRARY?auth=TOKEN`. If your JSON-RPC client is Cookie-aware (like most browsers are) you will receive the authentication token also with a session cookie and probably don't have to append it to the RPC-Server URL. -# Exported Libraries -## uci -The UCI-Library */rpc/uci* offers functionality to interact with the Universal Configuration Interface. -*Exported Functions:* -* [(string) add(config, type)](http://luci.subsignal.org/api/luci/modules/luci.model.uci.html#Cursor.add) -* [(integer) apply(config)](http://luci.subsignal.org/api/luci/modules/luci.model.uci.html#Cursor.apply) -* [http://luci.subsignal.org/api/luci/modules/luci.model.uci.html#Cursor.changes (object) changes([config])] -* [(boolean) commit(config)](http://luci.subsignal.org/api/luci/modules/luci.model.uci.html#Cursor.commit) -* [http://luci.subsignal.org/api/luci/modules/luci.model.uci.html#Cursor.delete (boolean) delete(config, section[, option])] -* [http://luci.subsignal.org/api/luci/modules/luci.model.uci.html#Cursor.delete_all (boolean) delete_all(config[, type])] -* [http://luci.subsignal.org/api/luci/modules/luci.model.uci.html#Cursor.foreach (array) foreach(config[, type])] -* [http://luci.subsignal.org/api/luci/modules/luci.model.uci.html#Cursor.get (mixed) get(config, section[, option])] -* [http://luci.subsignal.org/api/luci/modules/luci.model.uci.html#Cursor.get_all (object) get_all(config[, section])] -* [http://luci.subsignal.org/api/luci/modules/luci.model.uci.html#Cursor.get (mixed) get_state(config, section[, option])] -* [(boolean) revert(config)](http://luci.subsignal.org/api/luci/modules/luci.model.uci.html#Cursor.revert) -* [(name) section(config, type, name, values)](http://luci.subsignal.org/api/luci/modules/luci.model.uci.html#Cursor.section) -* [(boolean) set(config, section, option, value)](http://luci.subsignal.org/api/luci/modules/luci.model.uci.html#Cursor.set) -* [(boolean) tset(config, section, values)](http://luci.subsignal.org/api/luci/modules/luci.model.uci.html#Cursor.tset) +## Exported Libraries +### uci +The UCI-Library `/rpc/uci` offers functionality to interact with the Universal Configuration Interface. -## uvl -The UVL-Library */rpc/uvl* offers functionality to validate UCI files and get schemes describing UCI files. -*Exported Functions:* -* [(array) get_scheme(scheme)](http://luci.subsignal.org/api/luci/modules/luci.uvl.html#UVL.get_scheme) -* [(array) validate(config, section, option)](http://luci.subsignal.org/api/luci/modules/luci.uvl.html#UVL.validate) -* [(array) validate_config(config)](http://luci.subsignal.org/api/luci/modules/luci.uvl.html#UVL.validate_config) -* [(array) validate_section(config, section)](http://luci.subsignal.org/api/luci/modules/luci.uvl.html#UVL.validate_section) -* [(array) validate(config, section, option)](http://luci.subsignal.org/api/luci/modules/luci.uvl.html#UVL.validate_option) +**Exported Functions:** +* [(string) add(config, type)](https://htmlpreview.github.io/?https://raw.githubusercontent.com/openwrt/luci/master/docs/api/modules/luci.model.uci.html#Cursor.add) +* [(integer) apply(config)](https://htmlpreview.github.io/?https://raw.githubusercontent.com/openwrt/luci/master/docs/api/modules/luci.model.uci.html#Cursor.apply) +* [(object) changes([config])](https://htmlpreview.github.io/?https://raw.githubusercontent.com/openwrt/luci/master/docs/api/modules/luci.model.uci.html#Cursor.changes) +* [(boolean) commit(config)](https://htmlpreview.github.io/?https://raw.githubusercontent.com/openwrt/luci/master/docs/api/modules/luci.model.uci.html#Cursor.commit) +* [(boolean) delete(config, section[, option])](https://htmlpreview.github.io/?https://raw.githubusercontent.com/openwrt/luci/master/docs/api/modules/luci.model.uci.html#Cursor.delete) +* [(boolean) delete_all(config[, type])](https://htmlpreview.github.io/?https://raw.githubusercontent.com/openwrt/luci/master/docs/api/modules/luci.model.uci.html#Cursor.delete_all) +* [(array) foreach(config[, type])](https://htmlpreview.github.io/?https://raw.githubusercontent.com/openwrt/luci/master/docs/api/modules/luci.model.uci.html#Cursor.foreach) +* [(mixed) get(config, section[, option])](https://htmlpreview.github.io/?https://raw.githubusercontent.com/openwrt/luci/master/docs/api/modules/luci.model.uci.html#Cursor.get) +* [(object) get_all(config[, section])](https://htmlpreview.github.io/?https://raw.githubusercontent.com/openwrt/luci/master/docs/api/modules/luci.model.uci.html#Cursor.get_all) +* [(mixed) get_state(config, section[, option])](https://htmlpreview.github.io/?https://raw.githubusercontent.com/openwrt/luci/master/docs/api/modules/luci.model.uci.html#Cursor.get) +* [(boolean) revert(config)](https://htmlpreview.github.io/?https://raw.githubusercontent.com/openwrt/luci/master/docs/api/modules/luci.model.uci.html#Cursor.revert) +* [(name) section(config, type, name, values)](https://htmlpreview.github.io/?https://raw.githubusercontent.com/openwrt/luci/master/docs/api/modules/luci.model.uci.html#Cursor.section) +* [(boolean) set(config, section, option, value)](https://htmlpreview.github.io/?https://raw.githubusercontent.com/openwrt/luci/master/docs/api/modules/luci.model.uci.html#Cursor.set) +* [(boolean) tset(config, section, values)](https://htmlpreview.github.io/?https://raw.githubusercontent.com/openwrt/luci/master/docs/api/modules/luci.model.uci.html#Cursor.tset) -## fs -The Filesystem library */rpc/fs* offers functionality to interact with the filesystem on the host machine. -*Exported Functions:* +Example: +```sh +curl http:///cgi-bin/luci/rpc/uci?auth=yourtoken --data ' +{ + "method": "get_all", + "params": [ "network" ] +}' +``` -* [Complete luci.fs library](http://luci.subsignal.org/api/luci/modules/luci.fs.html) -*Note:* All functions are exported as they are except for _readfile'' which encodes its return value in base64 and ''writefile'' which only accepts base64 encoded data as second argument. Note that both functions will only be available when the ''luasocket_ packet is installed on the hostsystem. +### fs +The Filesystem library `/rpc/fs` offers functionality to interact with the filesystem on the host machine. -## sys -The System library */rpc/sys* offers functionality to interact with the operating system on the host machine. -*Exported Functions:* -* [Complete luci.sys library](http://luci.subsignal.org/api/luci/modules/luci.sys.html) -* [Complete luci.sys.group library](http://luci.subsignal.org/api/luci/modules/luci.sys.group.html) with prefix *group.* -* [Complete luci.sys.net library](http://luci.subsignal.org/api/luci/modules/luci.sys.net.html) with prefix *net.* -* [Complete luci.sys.process library](http://luci.subsignal.org/api/luci/modules/luci.sys.process.html) with prefix *process.* -* [Complete luci.sys.user library](http://luci.subsignal.org/api/luci/modules/luci.sys.user.html) with prefix *user.* -* [Complete luci.sys.wifi library](http://luci.subsignal.org/api/luci/modules/luci.sys.wifi.html) with prefix *wifi.* +**Exported Functions:** + +* [Complete luci.fs library](https://htmlpreview.github.io/?https://raw.githubusercontent.com/openwrt/luci/master/docs/api/modules/luci.fs.html) + +**Note:** All functions are exported as they are except for `readfile` which encodes its return value in [Base64](https://en.wikipedia.org/wiki/Base64) and `writefile` which only accepts Base64 encoded data as second argument. +Note that both functions will only be available when the `luasocket` packet is installed on the host system. + +### sys +The System library `/rpc/sys` offers functionality to interact with the operating system on the host machine. + +**Exported Functions:** +* [Complete luci.sys library](https://htmlpreview.github.io/?https://raw.githubusercontent.com/openwrt/luci/master/docs/api/modules/luci.sys.html) +* [Complete luci.sys.group library](https://htmlpreview.github.io/?https://raw.githubusercontent.com/openwrt/luci/master/docs/api/modules/luci.sys.group.html) prefixing the method name with `group.methodname`. +* [Complete luci.sys.net library](https://htmlpreview.github.io/?https://raw.githubusercontent.com/openwrt/luci/master/docs/api/modules/luci.sys.net.html) prefixing the method name with `net.methodname`. +* [Complete luci.sys.process library](https://htmlpreview.github.io/?https://raw.githubusercontent.com/openwrt/luci/master/docs/api/modules/luci.sys.process.html) prefixing the method name with `process.methodname`. +* [Complete luci.sys.user library](https://htmlpreview.github.io/?https://raw.githubusercontent.com/openwrt/luci/master/docs/api/modules/luci.sys.user.html) with prefix `user`. +* [Complete luci.sys.wifi library](https://htmlpreview.github.io/?https://raw.githubusercontent.com/openwrt/luci/master/docs/api/modules/luci.sys.wifi.html) with prefix `wifi`. + +Example: +```sh +curl http:///cgi-bin/luci/rpc/sys?auth=yourtoken --data ' +{ + "method": "net.conntrack" +}' +``` + +### ipkg +The IPKG library `/rpc/ipkg` offers functionality to interact with the package manager (IPKG or OPKG) on the host machine. + +**Exported Functions:** +* [Complete luci.model.ipkg library](https://htmlpreview.github.io/?https://raw.githubusercontent.com/openwrt/luci/master/docs/api/modules/luci.model.ipkg.html) -## ipkg -The IPKG library */rpc/ipkg* offers functionality to interact with the package manager (IPKG or OPKG) on the host machine. -*Exported Functions:* -* [Complete luci.model.ipkg library](http://luci.subsignal.org/api/luci/modules/luci.model.ipkg.html) diff --git a/LAR.md b/LAR.md deleted file mode 100644 index 457b076f9a..0000000000 --- a/LAR.md +++ /dev/null @@ -1,87 +0,0 @@ -LAR is a simple archive format to pack multiple lua source files and arbitrary other resources into a single file. - - -# Format Specification - -A LAR archive file is divided into two parts: the payload and the index lookup table. -All segments of the archive are 4 Byte aligned to ease reading and processing of the format. -All integers are stored in network byte order, so an implementation has to use htonl() and htons() to properly read them. - -Schema: - - - - > - - - - > - - ... - - - - > - > - - - - - > - - - - - > - - ... - - - - - > - > - - - - - -# Processing - -In order to process an LAR archive, an implementation would have to do the following steps: - -## Read Index - -1. Locate and open the archive file -1. Seek to end of file - 4 bytes -1. Read 32bit index offset and swap from network to native byte order -1. Seek to index offset, calculate index length: filesize - index offset - 4 -1. Initialize a linked list for index table entries -1. Read each index entry until the index length is reached, read and byteswap 4 * 32bit int and 2 * 16bit int -1. Seek to begin of file - -## Read Member - -1. Read the archive index -1. Iterate through the linked index list, perform the following steps for each entry -1. Seek to the specified file path offset -1. Read as much bytes as specified in the file path length into a buffer -1. Compare the contents of the buffer against the path of the searched member -1. If buffer and searched path are equal, seek to the specified file data offset -1. Read data until the file data length is reached, return -1. Select the next index table entry and repeat from step 3, if there is no next entry then return - -# Reference implementation - -A reference implementation can be found here: -http://luci.subsignal.org/trac/browser/luci/trunk/contrib/lar - -The lar.pl script is a simple packer for LAR archives and cli.c provides a utility to list and dump packed LAR archives. diff --git a/LMO.md b/LMO.md index 961a45ba84..6402849dbb 100644 --- a/LMO.md +++ b/LMO.md @@ -1,7 +1,12 @@ -LMO is a simple binary format to pack language strings into a more efficient form. Although it's suitable to store any kind of key-value table, it's only used for the LuCI *.po based translation system at the moment. The abbreviation "LMO" stands for "Lua Machine Objects" in the style of the GNU gettext *.mo format. +# LMO - Lua Machine Objects +See [online wiki](https://github.com/openwrt/luci/wiki/LMO) for latest version. -# Format Specification +LMO is a simple binary format to pack language strings into a more efficient form. +Although it's suitable to store any kind of key-value table, it's only used for the LuCI \*.po based translation system at the moment. +The abbreviation "LMO" stands for "Lua Machine Objects" in the style of the GNU gettext \*.mo format. + +## Format Specification A LMO file is divided into two parts: the payload and the index lookup table. All segments of the file are 4 Byte aligned to ease reading and processing of the format. @@ -50,95 +55,95 @@ Schema: -# Processing +## Processing In order to process a LMO file, an implementation would have to do the following steps: -## Read Index +### Read Index 1. Locate and open the archive file -1. Seek to end of file - 4 bytes (sizeof(uint32_t)) -1. Read 32bit index offset and swap from network to native byte order -1. Seek to index offset, calculate index length: filesize - index offset - 4 -1. Initialize a linked list for index table entries -1. Read each index entry until the index length is reached, read and byteswap 4 * uint32_t for each step -1. Seek to begin of file +2. Seek to end of file - 4 bytes (sizeof(uint32_t)) +3. Read 32bit index offset and swap from network to native byte order +4. Seek to index offset, calculate index length: filesize - index offset - 4 +5. Initialize a linked list for index table entries +6. Read each index entry until the index length is reached, read and byteswap 4 * uint32_t for each step +7. Seek to begin of file -## Read Entry +### Read Entry 1. Calculate the unsigned 32bit hash of the entries key value (see "Hash Function" section below) -1. Obtain the archive index -1. Iterate through the linked index list, perform the following steps for each entry: - 1. Compare the entry hash value with the calculated hash from step 1 - 2. If the hash values are equal proceed with step 4 - 3. Select the next entry and repeat from step 3.1 -1. Seek to the file offset specified in the selected entry -1. Read as much bytes as specified in the entry length into a buffer -1. Return the buffer value +2. Obtain the archive index +3. Iterate through the linked index list, perform the following steps for each entry: + 1. Compare the entry hash value with the calculated hash from step 1 + 2. If the hash values are equal proceed with step 4 + 3. Select the next entry and repeat from step 3.1 +4. Seek to the file offset specified in the selected entry +5. Read as much bytes as specified in the entry length into a buffer +6. Return the buffer value -# Hash Function +## Hash Function -The current LuCI-LMO implementation uses the "Super Fast Hash" function which was kindly put in the public domain by it's original author. See http://www.azillionmonkeys.com/qed/hash.html for details. Below is the C-Implementation of this function: +The current LuCI-LMO implementation uses the "Super Fast Hash" function which was kindly put in the public domain by its original author. See http://www.azillionmonkeys.com/qed/hash.html for details. Below is the C-Implementation of this function: - - #if (defined(__GNUC__) && defined(__i386__)) - #define sfh_get16(d) (*((const uint16_t *) (d))) - #else - #define sfh_get16(d) ((((uint32_t)(((const uint8_t *)(d))[1])) << 8)\ - +(uint32_t)(((const uint8_t *)(d))[0]) ) - #endif - - uint32_t sfh_hash(const char * data, int len) - { - uint32_t hash = len, tmp; - int rem; - - if (len <= NULL) return 0; - - rem = len & 3; - len >>= 2; - - /* Main loop */ - for (;len > 0; len--) { - hash += sfh_get16(data); - tmp = (sfh_get16(data+2) << 11) ^ hash; - hash = (hash << 16) ^ tmp; - data += 2*sizeof(uint16_t); - hash += hash >> 11; - } - - /* Handle end cases */ - switch (rem) { - case 3: hash += sfh_get16(data); - hash ^= hash << 16; - hash ^= data[sizeof(uint16_t)] << 18; - hash += hash >> 11; - break; - case 2: hash += sfh_get16(data); - hash ^= hash << 11; - hash += hash >> 17; - break; - case 1: hash += *data; - hash ^= hash << 10; - hash += hash >> 1; - } - - /* Force "avalanching" of final 127 bits */ - hash ^= hash << 3; - hash += hash >> 5; - hash ^= hash << 4; - hash += hash >> 17; - hash ^= hash << 25; - hash += hash >> 6; - - return hash; +```c +#if (defined(__GNUC__) && defined(__i386__)) +#define sfh_get16(d) (*((const uint16_t *) (d))) +#else +#define sfh_get16(d) ((((uint32_t)(((const uint8_t *)(d))[1])) << 8)\ + +(uint32_t)(((const uint8_t *)(d))[0]) ) +#endif + +uint32_t sfh_hash(const char * data, int len) +{ + uint32_t hash = len, tmp; + int rem; + + if (len <= 0 || data == NULL) return 0; + + rem = len & 3; + len >>= 2; + + /* Main loop */ + for (;len > 0; len--) { + hash += sfh_get16(data); + tmp = (sfh_get16(data+2) << 11) ^ hash; + hash = (hash << 16) ^ tmp; + data += 2*sizeof(uint16_t); + hash += hash >> 11; } - -# Reference Implementation + /* Handle end cases */ + switch (rem) { + case 3: hash += sfh_get16(data); + hash ^= hash << 16; + hash ^= data[sizeof(uint16_t)] << 18; + hash += hash >> 11; + break; + case 2: hash += sfh_get16(data); + hash ^= hash << 11; + hash += hash >> 17; + break; + case 1: hash += *data; + hash ^= hash << 10; + hash += hash >> 1; + } + + /* Force "avalanching" of final 127 bits */ + hash ^= hash << 3; + hash += hash >> 5; + hash ^= hash << 4; + hash += hash >> 17; + hash ^= hash << 25; + hash += hash >> 6; + + return hash; +} +``` + +## Reference Implementation A reference implementation can be found here: -http://luci.subsignal.org/trac/browser/luci/trunk/libs/lmo/src +https://github.com/openwrt/luci/blob/master/modules/luci-base/src/template_lmo.c -The lmo_po2lmo.c executable implements a *.po to *.lmo conversation utility and lmo_lookup.c is a simple *.lmo test utility. -Lua bindings for lmo are defined in lmo_lualib.c and associated headers. +The `po2lmo.c` executable implements a `*.po` to `*.lmo` conversation utility. +Lua bindings for lmo are defined in `template_lualib.c` and associated headers. diff --git a/LuCI-0.10.md b/LuCI-0.10.md index 5db9895e58..69a5f33d5b 100644 --- a/LuCI-0.10.md +++ b/LuCI-0.10.md @@ -1,148 +1,144 @@ -[[PageOutline(2-5, Table of Contents, floated)]] +# New in LuCI 0.10 +See [online wiki](https://github.com/openwrt/luci/wiki/LuCI-0.10) for latest version. This document describes new features and incompatibilities to LuCI 0.9.x. It is targeted at module authors developing external addons to LuCI. -# I18N Changes +## I18N Changes -## API +### API The call conventions for the i18n api changed, there is no dedicated translation key anymore and the english text is used for lookup instead. This was done to ease the maintenance of language files. -Code that uses _translate()'' or ''i18n()_ must be changed as follows: +Code that uses `translate()` or `i18n()` must be changed as follows: - - -- old style: - translate("some_text", "Some Text") - translatef("some_format_text", "Some formatted Text: %d", 123) - - -- new style: - translate("Some Text") - translatef("Some formatted Text: %d", 123) - +```lua +-- old style: +translate("some_text", "Some Text") +translatef("some_format_text", "Some formatted Text: %d", 123) + +-- new style: +translate("Some Text") +translatef("Some formatted Text: %d", 123) +``` Likewise for templates: - - - <%:some_text Some Text%> - - - <%:Some Text%> - +```html + +<%:some_text Some Text%> + + +<%:Some Text%> +``` If code must support both LuCI 0.9.x and 0.10.x versions, it is suggested to write the calls as follows: - - translate("Some Text", "Some Text") - +```lua +translate("Some Text", "Some Text") +``` An alternative is wrapping translate() calls into a helper function: - - function tr(key, alt) - return translate(key) or translate(alt) or alt - end - +```lua +function tr(key, alt) + return translate(key) or translate(alt) or alt +end +``` ... which is used as follows: - - tr("some_key", "Some Text") - +```lua +tr("some_key", "Some Text") +``` -## Translation File Format +### Translation File Format -Translation catalogs are now maintained in *.po format files. During build those get translated -into [*.lmo archives](http://luci.subsignal.org/trac/wiki/Documentation/LMO). +Translation catalogs are now maintained in `*.po` format files. +During build those get translated into [*.lmo archives](https://github.com/openwrt/luci/wiki/LMO). -LuCI ships a [utility script](http://luci.subsignal.org/trac/browser/luci/branches/luci-0.10/build/i18n-lua2po.pl) -in the build/ directory to convert old Lua translation files to the *.po format. The generated *.po files should -be placed in the appropriate subdirectories within the top po/ file in the LuCI source tree. - -### Components built within the LuCI tree +#### Components built within the LuCI tree If components using translations are built along with the LuCI tree, the newly added *.po file are automatically compiled into *.lmo archives during the build process. In order to bundle the appropriate *.lmo files into the corresponding *.ipk packages, component Makefiles must include a "PO" variable specifying the files to include. -Given a module _applications/example/'' which uses ''po/en/example.po'' and ''po/en/example-extra.po_, -the _applications/example/Makefile_ must be changed as follows: +Given a module `applications/example/` which uses `po/en/example.po` and `po/en/example-extra.po`, +the `applications/example/Makefile` must be changed as follows: - - PO = example example-extra - - include ../../build/config.mk - include ../../build/module.mk - +```Makefile +PO = example example-extra -### Standalone components +include ../../build/config.mk +include ../../build/module.mk +``` -Authors who externally package LuCI components must prepare required *.lmo archives themselves. -To convert existing Lua based message catalogs to the *.po format, the build/i18n-lua2po.pl helper script can be used. -In order to convert *.po files into *.lmo files, the standalone "po2lmo" utility must be compiled as follows: +#### Standalone components - - $ svn co http://svn.luci.subsignal.org/luci/branches/luci-0.10/libs/lmo - $ cd lmo/ - $ make - $ ./src/po2lmo translations.po translations.lmo - +Authors who externally package LuCI components must prepare required `*.lmo` archives themselves. +To convert existing Lua based message catalogs to the `*.po` format, the `build/i18n-lua2po.pl` helper script can be used. +In order to convert `*.po` files into `*.lmo` files, the standalone `po2lmo` utility must be compiled as follows: + +``` +$ svn co http://svn.luci.subsignal.org/luci/branches/luci-0.10/libs/lmo +$ cd lmo/ +$ make +$ ./src/po2lmo translations.po translations.lmo +``` Note that at the time of writing, the utility program needs Lua headers installed on the system in order to compile properly. -# CBI +## CBI -## Datatypes +### Datatypes The server side UVL validation has been dropped to reduce space requirements on the target. Instead it is possible to define datatypes for CBI widgets now: - - opt = section:option(Value, "optname", "Title Text") - opt.datatype = "ip4addr" - +```lua +opt = section:option(Value, "optname", "Title Text") +opt.datatype = "ip4addr" +``` User provided data is validated once on the frontend via JavaScript and on the server side prior to saving it. -A list of possible datatypes can be found in the [luci.cbi.datatypes](http://luci.subsignal.org/trac/browser/luci/branches/luci-0.10/libs/web/luasrc/cbi/datatypes.lua#L26) class. +A list of possible datatypes can be found in the [luci.cbi.datatypes](https://github.com/openwrt/luci/blob/master/modules/luci-compat/luasrc/cbi/datatypes.lua) class. -## Validation +### Validation -Server-sided validator function can now return custom error messages to provide better feedback on invalid input. +Server-side validator functions can now return custom error messages to provide better feedback on invalid input. - - opt = section:option(Value, "optname", "Title Text") - - function opt.validate(self, value, section) - if input_is_valid(value) then - return value - else - return nil, "The value is invalid because ..." - end - end - +```lua +opt = section:option(Value, "optname", "Title Text") -## Tabs +function opt.validate(self, value, section) + if input_is_valid(value) then + return value + else + return nil, "The value is invalid because ..." + end +end +``` + +### Tabs It is now possible to break up CBI sections into multiple tabs to better organize longer forms. -The TypedSection and NamedSection classes gained two new functions to define tabs, _tab()'' and ''taboption()_. +The TypedSection and NamedSection classes gained two new functions to define tabs, `tab()` and `taboption()`. - - sct = map:section(TypedSection, "name", "type", "Title Text") - - sct:tab("general", "General Tab Title", "General Tab Description") - sct:tab("advanced", "Advanced Tab Title", "Advanced Tab Description") - - opt = sct:taboption("general", Value, "optname", "Title Text") - ... - +```lua +sct = map:section(TypedSection, "name", "type", "Title Text") -The _tab()_ function is declares a new tab and takes up to three arguments: +sct:tab("general", "General Tab Title", "General Tab Description") +sct:tab("advanced", "Advanced Tab Title", "Advanced Tab Description") + +opt = sct:taboption("general", Value, "optname", "Title Text") +``` + +The `tab()` function declares a new tab and takes up to three arguments: * Internal name of the tab, must be unique within the section * Title text of the tab * Optional description text for the tab -The _taboption()'' function wraps ''option()_ and assigns the option object to the given tab. +The `taboption()` function wraps `option()` and assigns the option object to the given tab. It takes up to five arguments: * Name of the tab to assign the option to @@ -151,52 +147,50 @@ It takes up to five arguments: * Title text of the option * Optional description text of the option -If tabs are used within a particular section, the _option()_ function must not be used, +If tabs are used within a particular section, the `option()` function must not be used, doing so results in undefined behaviour. -## Hooks +### Hooks -The CBI gained support for _hooks_ which can be used to trigger additional actions during the +The CBI gained support for `hooks` which can be used to trigger additional actions during the life-cycle of a map: - - map = Map("config", "Title Text") - - function map.on_commit(self) - -- do something if the UCI configuration got committed - end - +```lua +map = Map("config", "Title Text") + +function map.on_commit(self) + -- do something if the UCI configuration got committed +end +``` The following hooks are defined: -|| on_cancel || The user pressed cancel within a multi-step Delegator or a SimpleForm instance || -|| on_init || The CBI is about to render the Map object || -|| on_parse || The CBI is about to read received HTTP form values || -|| on_save, on_before_save || The CBI is about to save modified UCI configuration files || -|| on_after_save || Modified UCI configuration files just got saved -|| on_before_commit || The CBI is about to commit the changes || -|| on_commit, on_after_commit, on_before_apply || Modified configurations got committed and the CBI is about to restart associated services || -|| on_apply, on_after_apply || All changes where completely applied (only works on Map instances with the apply_on_parse attribute set) || +* `on_cancel`: The user pressed cancel within a multistep Delegator or a SimpleForm instance +* `on_init`: The CBI is about to render the Map object +* `on_parse`: The CBI is about to read received HTTP form values +* `on_save`, `on_before_save`: The CBI is about to save modified UCI configuration files +* `on_after_save`: Modified UCI configuration files just got saved +* `on_before_commit`: The CBI is about to commit the changes +* `on_commit`, `on_after_commit`, `on_before_apply`: Modified configurations got committed and the CBI is about to restart associated services +* `on_apply`, `on_after_apply`: All changes where completely applied (only works on Map instances with the apply_on_parse attribute set) -## Sortable Tables +### Sortable Tables -TypedSection instances which use the "cbi/tblsection" template may now use a new attribute _sortable_ to allow the user to reorder table rows. +TypedSection instances which use the `cbi/tblsection` template may now use a new attribute `sortable` to allow the user to reorder table rows. - - sct = map:section(TypedSection, "name", "type", "Title Text") - sct.template = "cbi/tblsection" - sct.sortable = true - - ... - +```lua +sct = map:section(TypedSection, "name", "type", "Title Text") +sct.template = "cbi/tblsection" +sct.sortable = true +``` -# JavaScript +## JavaScript -The LuCI 0.10 branch introduced a new JavaScript file _xhr.js_ which provides support routines for XMLHttpRequest operations. -Each theme must include this file in the area of the document for forms to work correctly. +The LuCI 0.10 branch introduced a new JavaScript file `xhr.js` which provides support routines for `XMLHttpRequest` operations. +Each theme must include this file in the `` area of the document for forms to work correctly. It should be included like this: - - - \ No newline at end of file +```html + +``` diff --git a/Modules.md b/Modules.md index 2897df9488..0c9852954e 100644 --- a/Modules.md +++ b/Modules.md @@ -1,94 +1,94 @@ -# Categories +# Reference: LuCI Modules + +See [online wiki](https://github.com/openwrt/luci/wiki/Modules) for latest version. + +## Categories The LuCI modules are divided into several category directories, namely: -* applications (Single applications or plugins for other modules or applications) -* i18n (Translation files) -* libs (Independent libraries) -* modules (Collections of applications) -* themes (Frontend themes) +* applications - Single applications or plugins for other modules +* i18n - Translation files +* libs - libraries of Luci +* modules - main modules of Luci itself +* protocols - network related plugins +* themes - Frontend themes -Each module goes into a subdirectory of any of this category-directories. +Each module goes into a subdirectory of this category-directories. -# Module directory +## Module directory The contents of a module directory are as follows: -## Makefile +### Makefile This is the module's makefile. If the module just contains Lua sourcecode or resources then the following Makefile should suffice. - - include ../../build/config.mk - include ../../build/module.mk - +```Makefile +include $(TOPDIR)/rules.mk -If you have C(++) code in your module your Makefile should at least contain the following things. - - include ../../build/config.mk - include ../../build/gccconfig.mk - include ../../build/module.mk - - compile: - # Commands to compile and link your C-code - # and to install them under the dist/ hierarchy - - clean: luaclean - # Commands to clean your compiled objects - +LUCI_TITLE:=Title of my example applications +LUCI_DEPENDS:=+some-package +libsome-library +luci-app-anotherthing + +include ../../luci.mk + +# call BuildPackage - OpenWrt buildroot signature +``` +If you have C(++) code in your module you should include a `src/` subdirectory containing another Makefile supporting a `clean`, a `compile` and an `install` target. +The `install` target should deploy its files relative to the predefined `$(DESTDIR)` variable, e.g. +``` +mkdir -p $(DESTDIR)/usr/bin; cp myexecutable $(DESTDIR)/usr/bin/myexecutable +``` -## src -The *src* directory is reserved for C sourcecode. +### src +The `src` directory is reserved for C sourcecode. -## luasrc -*luasrc* contains all Lua sourcecode files. These will automatically be stripped or compiled depending on the Make target and are installed in the LuCI installation directory. +### luasrc +`luasrc` contains all Lua sourcecode files. These will automatically be stripped or compiled depending on the Make target and are installed in the LuCI installation directory. -## lua -*lua* is equivalent to _luasrc_ but containing Lua files will be installed in the Lua document root. +### lua +`lua` is equivalent to `luasrc` but containing Lua files will be installed in the Lua document root. -## htdocs -All files under *htdocs* will be copied to the document root of the target webserver. +### htdocs +All files under `htdocs` will be copied to the document root of the target webserver. -## root -All directories and files under *root* will be copied to the installation target as they are. +### root +All directories and files under `root` will be copied to the installation target as they are. -## dist -*dist* is reserved for the builder to create a working installation tree that will represent the filesystem on the target machine. -*DO NOT* put any files there as they will get deleted. +### dist +`dist` is reserved for the builder to create a working installation tree that will represent the filesystem on the target machine. +**DO NOT** put any files there as they will get deleted. -## ipkg -*ipkg* contains IPKG package control files, like _preinst'', ''posinst'', ''prerm'', ''postrm''. ''conffiles_. +### ipkg +`ipkg` contains IPKG package control files, like `preinst`, `posinst`, `prerm`, `postrm`. `conffiles`. See IPKG documentation for details. -# OpenWRT feed integration -If you want to add your module to the LuCI OpenWRT feed you have to add several sections to the contrib/package/luci/Makefile. +## OpenWRT feed integration +If you want to add your module to the LuCI OpenWRT feed you have to add several sections to the `contrib/package/luci/Makefile`. For a Web UI applications this is: A package description: - - define Package/luci-app-YOURMODULE - $(call Package/luci/webtemplate) - DEPENDS+=+some-package +some-other-package - TITLE:=SHORT DESCRIPTION OF YOURMODULE - endef - - +```Makefile +define Package/luci-app-YOURMODULE + $(call Package/luci/webtemplate) + DEPENDS+=+some-package +some-other-package + TITLE:=SHORT DESCRIPTION OF YOURMODULE +endef +``` A package installation target: - - define Package/luci-app-YOURMODULE/install - $(call Package/luci/install/template,$(1),applications/YOURMODULE) - endef - +```Makefile +define Package/luci-app-YOURMODULE/install + $(call Package/luci/install/template,$(1),applications/YOURMODULE) +endef +``` A module build instruction: - - ifneq ($(CONFIG_PACKAGE_luci-app-YOURMODULE),) - PKG_SELECTED_MODULES+=applications/YOURMODULE - endif - - +```Makefile +ifneq ($(CONFIG_PACKAGE_luci-app-YOURMODULE),) + PKG_SELECTED_MODULES+=applications/YOURMODULE +endif +``` A build package call: - - $(eval $(call BuildPackage,luci-app-YOURMODULE)) - +```Makefile +$(eval $(call BuildPackage,luci-app-YOURMODULE)) +``` diff --git a/ModulesHowTo.md b/ModulesHowTo.md index 7efed83d67..75b7e75307 100644 --- a/ModulesHowTo.md +++ b/ModulesHowTo.md @@ -1,153 +1,171 @@ -*Note:* If you plan to integrate your module into LuCI, you should read the [wiki:Documentation/Modules Module Reference] before. +# HowTo: Write Lua based Modules (deprecated for client side modules) + +See [online wiki](https://github.com/openwrt/luci/wiki/ModulesHowTo) for latest version. + +**Note:** If you plan to integrate your module into LuCI, you should read the [Module Reference](./Modules.md) in advance. This tutorial describes how to write your own modules for the LuCI WebUI. -For this tutorial we refer to your LuCI installation directory as *lucidir_' (/usr/lib/lua/luci if you are working with an installed version) and assume your LuCI installation is reachable through your webserver via '_/cgi-bin/luci*. +For this tutorial we refer to your LuCI installation directory as `lucidir` (`/usr/lib/lua/luci` on your OpenWRT device) and assume your LuCI installation is reachable through your webserver via `http://192.168.1.1/cgi-bin/luci`. -If you are working with the development environment replace *lucidir_' with '''''/path/to/your/luci/checkout''/applications/myapplication/luasrc''' (this is a default empty module you can use for your experiments) and your LuCI installation can probably be reached via http://localhost:8080/luci/ after you ran '_make runhttpd*. +The recommended way to set up a development environment: + +- Install OpenWRT on your router/device (You could use a QEMU or VirtualBox image instead) + +- Install SSHFS on your host + +- Mount your routers' root (`/`) someplace on your development host (eg. `/mnt/router`) + +- Then open `/mnt/router/(lucidir)` in your favorite development studio + +Extra: +- Add configurations to your dev studio which will delete the luci cache (detailed below) and then open a browser window to your routers' configuration page in order to see your module/application. +When testing, if you have edited index files, be sure to remove the folder `/tmp/luci-modulecache/*` and the file(s) `/tmp/luci-indexcache*`, then refresh the LUCI page to see your edits. -# Show me the way (The dispatching process) -To write a module you need to understand the basics of the dispatching process in LuCI. -LuCI uses a dispatching tree that will be built by executing the index-Function of every available controller. -The CGI-environment variable *PATH_INFO* will be used as the path in this dispatching tree, e.g.: /cgi-bin/luci/foo/bar/baz -will be resolved to foo.bar.baz +## The dispatching process +LuCI uses a dispatching tree that is built by executing the index-Function of every available controller. +The CGI-environment variable `PATH_INFO` will be used as the path in this dispatching tree, e.g.: `/cgi-bin/luci/foo/bar/baz` +resolves to `foo.bar.baz`. -To register a function in the dispatching tree, you can use the *entry*-function of _luci.dispatcher_. entry takes 4 arguments (2 are optional): - - entry(path, target, title=nil, order=nil) - +To register a function in the dispatching tree, use the `entry`-function of `luci.dispatcher`. It takes 4 arguments (2 are optional): +```lua +entry(path, target, title=nil, order=nil) +``` -* *path* is a table that describes the position in the dispatching tree: For example a path of {"foo", "bar", "baz"} would insert your node in foo.bar.baz. -* *target* describes the action that will be taken when a user requests the node. There are several predefined ones of which the 3 most important (call, template, cbi) are described later on on this page -* *title* defines the title that will be visible to the user in the menu (optional) -* *order* is a number with which nodes on the same level will be sorted in the menu (optional) +* `path` is a table that describes the position in the dispatching tree: For example a path of `{"foo", "bar", "baz"}` would insert your node in `foo.bar.baz`. +* `target` describes the action that will be taken when a user requests the node. There are several predefined actions, of which the 3 most important (call, template, cbi) are described later on this page +* `title` defines the title that will be visible to the user in the menu (optional) +* `order` is a number with which nodes on the same level will be sorted in the menu (optional) You can assign more attributes by manipulating the node table returned by the entry-function. A few example attributes: -* *i18n* defines which translation file should be automatically loaded when the page gets requested -* *dependent* protects plugins to be called out of their context if a parent node is missing -* *leaf* stops parsing the request at this node and goes no further in the dispatching tree -* *sysauth* requires the user to authenticate with a given system user account +* `i18n` defines which translation file should be automatically loaded when the page gets requested +* `dependent` protects plugins to be called out of their context if a parent node is missing +* `leaf` stops parsing the request at this node and goes no further in the dispatching tree +* `sysauth` requires the user to authenticate with a given system user account -# It's all about names (Naming and the module file) -Now that you know the basics about dispatching, we can start writing modules. But before you have to choose the category and name of your new digital child. +# Naming and the module file +Now we can start writing modules. Choose the category and name of your new digital child. -We assume you want to create a new application "myapp" with a module "mymodule". +Let's assume you want to create a new application `myapp` with a module `mymodule`. -So you have to create a new subdirectory *_lucidir''/controller/myapp''' with a file '_mymodule.lua* with the following content: - - module("luci.controller.myapp.mymodule", package.seeall) - - function index() - - end - +So you have to create a new sub-directory `lucidir/controller/myapp` with a file `mymodule.lua` with the following content: +```lua +module("luci.controller.myapp.mymodule", package.seeall) + +function index() + +end +``` The first line is required for Lua to correctly identify the module and create its scope. -The index-Function will be used to register actions in the dispatching tree. +The `index`-Function will be used to register actions in the dispatching tree. -# Teaching your new child (Actions) -So it is there and has a name but it has no actions. +## Teaching your new child (Actions) +So it has a name, but no actions. -We assume you want to reuse your module myapp.mymodule that you begun in the last step. +We assume you want to reuse your module myapp.mymodule that you began in the last step. -## Actions -Reopen *_lucidir_/controller/myapp/mymodule.lua* and just add a function to it so that its content looks like this example: +### Actions +Reopen `lucidir/controller/myapp/mymodule.lua` and just add a function to it with: +```lua +module("luci.controller.myapp.mymodule", package.seeall) - - module("luci.controller.myapp.mymodule", package.seeall) - - function index() - entry({"click", "here", "now"}, call("action_tryme"), "Click here", 10).dependent=false - end - - function action_tryme() - luci.http.prepare_content("text/plain") - luci.http.write("Haha, rebooting now...") - luci.sys.reboot() - end - +function index() + entry({"click", "here", "now"}, call("action_tryme"), "Click here", 10).dependent=false +end + +function action_tryme() + luci.http.prepare_content("text/plain") + luci.http.write("Haha, rebooting now...") + luci.sys.reboot() +end +``` -And now type */cgi-bin/luci/click/here/now_' ('_[http://localhost:8080/luci/click/here/now]* if you are using the development environment) in your browser. +And now visit the path `/cgi-bin/luci/click/here/now` (`http://192.168.1.1/luci/click/here/now` if you are using the development environment) in your browser. -You see these action functions simple have to be added to a dispatching entry. +These action functions simply have to be added to a dispatching entry. -As you might or might not know: CGI specification requires you to send a Content-Type header before you can send your content. You will find several shortcuts (like the one used above) as well as redirecting functions in the module *luci.http* +As you may or may not know: CGI specification requires you to send a `Content-Type` header before you can send your content. You will find several shortcuts (like the one used above) as well as redirecting functions in the module `luci.http` -## Views -If you only want to show the user a text or some interesting familiy photos it may be enough to use a HTML-template. These templates can also include some Lua code but be aware that writing whole office suites by only using these templates might be called "dirty" by other developers. +### Views +If you only want to show the user text or some interesting family photos, it may be enough to use an HTML-template. +These templates can also include some Lua code but be aware that writing whole office-suites by only using these templates might be considered "dirty" by other developers. -Now let's create a little template *_lucidir_/view/myapp-mymodule/helloworld.htm* with the content: +Now let's create a little template `lucidir/view/myapp-mymodule/helloworld.htm` with the content: - - <%+header%> -

<%:Hello World%>

- <%+footer%> - +```html +<%+header%> +

<%:Hello World%>

+<%+footer%> +``` -and add the following line to the index-Function of your module file. - - entry({"my", "new", "template"}, template("myapp-mymodule/helloworld"), "Hello world", 20).dependent=false - +and add the following line to the `index`-Function of your module file. +```lua +entry({"my", "new", "template"}, template("myapp-mymodule/helloworld"), "Hello world", 20).dependent=false +``` -Now type */cgi-bin/luci/my/new/template_' ('_[http://localhost:8080/luci/my/new/template]* if you are using the development environment) in your browser. +Now visit the path `/cgi-bin/luci/my/new/template` (`http://192.168.1.1/luci/my/new/template`) in your browser. -You may notice those fancy <% %>-Tags, these are [wiki:Documentation/Templates|template markups] used by the LuCI template processor. +You may notice those special `<% %>`-Tags, these are [template markups](./Templates.md) used by the LuCI template processor. It is always good to include header and footer at the beginning and end of a template as those create the default design and menu. -## CBI models -The CBI is one of the uber coolest features of LuCI. It creates a formular based user interface and saves its contents to a specific UCI config file. You only have to describe the structure of the configuration file in a CBI model file and Luci does the rest of the work. This includes generating, parsing and validating a XHTML form and reading and writing the UCI file. +### CBI models +The CBI is one of the coolest features of LuCI. +It creates a formulae based user interface and saves its contents to a specific UCI config file. +You only have to describe the structure of the configuration file in a CBI model file and Luci does the rest of the work. +This includes generating, parsing and validating an XHTML form and reading and writing the UCI file. -So let's be serious at least for this paragraph and create a real pratical example *_lucidir_/model/cbi/myapp-mymodule/netifaces.lua* with the following contents: +So let's be serious at least for this paragraph and create a practical example `lucidir/model/cbi/myapp-mymodule/netifaces.lua` with the following contents: - - m = Map("network", "Network") -- We want to edit the uci config file /etc/config/network - - s = m:section(TypedSection, "interface", "Interfaces") -- Especially the "interface"-sections - s.addremove = true -- Allow the user to create and remove the interfaces - function s:filter(value) - return value ~= "loopback" and value -- Don't touch loopback - end - s:depends("proto", "static") -- Only show those with "static" - s:depends("proto", "dhcp") -- or "dhcp" as protocol and leave PPPoE and PPTP alone - - p = s:option(ListValue, "proto", "Protocol") -- Creates an element list (select box) - p:value("static", "static") -- Key and value pairs - p:value("dhcp", "DHCP") - p.default = "static" - - s:option(Value, "ifname", "interface", "the physical interface to be used") -- This will give a simple textbox - - s:option(Value, "ipaddr", translate("ip", "IP Address")) -- Ja, das ist eine i18n-Funktion ;-) - - s:option(Value, "netmask", "Netmask"):depends("proto", "static") -- You may remember this "depends" function from above - - mtu = s:option(Value, "mtu", "MTU") - mtu.optional = true -- This one is very optional - - dns = s:option(Value, "dns", "DNS-Server") - dns:depends("proto", "static") - dns.optional = true - function dns:validate(value) -- Now, that's nifty, eh? - return value:match("[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+") -- Returns nil if it doesn't match otherwise returns match - end - - gw = s:option(Value, "gateway", "Gateway") - gw:depends("proto", "static") - gw.rmempty = true -- Remove entry if it is empty - - return m -- Returns the map - +```lua +m = Map("network", "Network") -- We want to edit the uci config file /etc/config/network -and of course don't forget to add something like this to your module's index-Function. - - entry({"admin", "network", "interfaces"}, cbi("myapp-mymodule/netifaces"), "Network interfaces", 30).dependent=false - +s = m:section(TypedSection, "interface", "Interfaces") -- Especially the "interface"-sections +s.addremove = true -- Allow the user to create and remove the interfaces +function s:filter(value) + return value ~= "loopback" and value -- Don't touch loopback +end +s:depends("proto", "static") -- Only show those with "static" +s:depends("proto", "dhcp") -- or "dhcp" as protocol and leave PPPoE and PPTP alone -There are many more features, see [wiki:Documentation/CBI the CBI reference] and the modules shipped with LuCI. +p = s:option(ListValue, "proto", "Protocol") -- Creates an element list (select box) +p:value("static", "static") -- Key and value pairs +p:value("dhcp", "DHCP") +p.default = "static" + +s:option(Value, "ifname", "interface", "the physical interface to be used") -- This will give a simple textbox + +s:option(Value, "ipaddr", translate("ip", "IP Address")) -- Yes, this is an i18n function ;-) + +s:option(Value, "netmask", "Netmask"):depends("proto", "static") -- You may remember this "depends" function from above + +mtu = s:option(Value, "mtu", "MTU") +mtu.optional = true -- This one is very optional + +dns = s:option(Value, "dns", "DNS-Server") +dns:depends("proto", "static") +dns.optional = true +function dns:validate(value) -- Now, that's nifty, eh? + return value:match("[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+") -- Returns nil if it doesn't match otherwise returns match +end + +gw = s:option(Value, "gateway", "Gateway") +gw:depends("proto", "static") +gw.rmempty = true -- Remove entry if it is empty + +return m -- Returns the map +``` + +and of course remember to add something like this to your module's `index`-Function. +```lua +entry({"admin", "network", "interfaces"}, cbi("myapp-mymodule/netifaces"), "Network interfaces", 30).dependent=false +``` + +There are many more features. See [the CBI reference](./CBI.md) and the modules shipped with LuCI. diff --git a/README.md b/README.md index 0366a64559..eeb5d0ead4 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,24 @@ # LuCI Documentation +See Wiki [LuCI Technical Reference](https://openwrt.org/docs/techref/luci) + ## API Reference - - [Client side JavaScript APIs](jsapi/index.html) - - [Server side Lua APIs](api/index.html) +- [Client side JavaScript APIs](jsapi/) +- [How to i18n your module](i18n): internationalization via \*.po and \*.pot files +- [How to make LuCI JS Modules](https://github.com/openwrt/luci/tree/master/applications/luci-app-example): see the luci-app-example in the repo +- [How to use the JSON-RPC](JsonRpcHowTo) +- [How to make themes](ThemesHowTo) +- [LuCI Modules Reference](Modules): can be JS based or Lua (deprecated) + +## Deprecated API Reference (older Lua based APIs) + +- [CBI models reference](CBI):CBI models are Lua files describing the structure of an UCI config file and the resulting HTML form to be evaluated by the CBI parser +- [How to make LuCI Lua Modules](ModulesHowTo): No new Lua modules for client side display are accepted, but some server side things are still done in Lua +- [LMO - Lua Machine Objects](LMO): to pack language strings into a more efficient form for Lua +- [Server side Lua APIs](api/index.html) +- [Templates](Templates): template processor which parses HTML-files to Lua functions and allows to store precompiled template files + +## Archived + +- [LuCI-0.10](LuCI-0.10): No longer used, but useful reference if you encounter older LuCI versions. \ No newline at end of file diff --git a/Templates.md b/Templates.md index adf019c01a..ed51bcf4d8 100644 --- a/Templates.md +++ b/Templates.md @@ -1,65 +1,68 @@ +## Templates + +See [online wiki](https://github.com/openwrt/luci/wiki/Templates) for latest version. + LuCI has a simple regex based template processor which parses HTML-files to Lua functions and allows to store precompiled template files. The simplest form of a template is just an ordinary HTML-file. It will be printed out to the user as is. -In LuCI every template is an object with an own scope. It can therefore be instantiated and each instance can has a different scope. As every template processor. LuCI supports several special markups. Those are enclosed in `<% %>`-Tags. +In LuCI every template is an object with an own scope +It can therefore be instanced and each instance can have a different scope. +As every template processor. LuCI supports several special markups. Those are enclosed in `<% %>`-Tags. -By adding `-` (dash) right after the opening `<%` every whitespace before the markup will be stripped. Adding a `-` right before the closing `%>` will equivalently strip every whitespace behind the markup. +By adding `-` (dash) right after the opening `<%` every whitespace before the markup will be stripped. +Adding a `-` right before the closing `%>` will equivalently strip every whitespace behind the markup. -# Builtin functions and markups -## Including Lua code +## Builtin functions and markups +### Including Lua code *Markup:* - - <% code %> - +``` +<% code %> +``` - -## Writing variables and function values +### Writing variables and function values *Syntax:* - - <% write (value) %> - +``` +<% write (value) %> +``` *Short-Markup:* - - <%=value%> - +``` +<%=value%> +``` -## Including templates +### Including templates *Syntax:* - - <% include (templatename) %> - +``` +<% include (templatename) %> +``` *Short-Markup:* - - <%+templatename%> - +``` +<%+templatename%> +``` -## Translating +### Translating *Syntax:* - - <%= translate("Text to translate") %> - - +``` +<%= translate("Text to translate") %> +``` *Short-Markup:* - - <%:Text to translate%> - +``` +<%:Text to translate%> +``` -## Commenting +### Commenting *Markup:* - - <%# comment %> - +``` +<%# comment %> +``` -# Builtin constants -| Name | Value | ----------|--------- -|`REQUEST_URI`|The current URL (without server part)| -|`controller`|Path to the Luci main dispatcher| -|`resource`|Path to the resource directory| -|`media`|Path to the active theme directory| +## Builtin constants +* `REQUEST_URI`: The current URL (without server part) +* `controller`: Path to the Luci main dispatcher +* `resource`: Path to the resource directory +* `media`: Path to the active theme directory diff --git a/ThemesHowTo.md b/ThemesHowTo.md index ae6f8e09cd..62a11b1745 100644 --- a/ThemesHowTo.md +++ b/ThemesHowTo.md @@ -1,76 +1,81 @@ # HowTo: Create Themes -*Note:* You should read the [Module Reference](Modules.md) and the [Template Reference](Templates.md) before. +**Note:** You have already read the [Module Reference](./Modules.md) and the [Template Reference](./Templates.md). -We assume you want to call your new theme _mytheme_. Make sure you replace this by your module name every time this is mentionend in this Howto. +We assume you want to call your new theme `mytheme`. +Replace `mytheme` with your module name every time this is mentioned in this Howto. +## Creating the structure +At first create a new theme directory `themes/luci-theme-mytheme`. +Create a `Makefile` inside your theme directory with the following content: +```Makefile +include $(TOPDIR)/rules.mk -# Creating the structure -At first create a new theme directory *themes/_mytheme_*. +LUCI_TITLE:=Title of mytheme -Create a _Makefile_ inside your theme directory with the following content: - - include ../../build/config.mk - include ../../build/module.mk - +include ../../luci.mk +# call BuildPackage - OpenWrt buildroot signature +``` Create the following directory structure inside your theme directory. * ipkg * htdocs * luci-static - * _mytheme_ + * `mytheme` * luasrc * view * themes - * _mytheme_ + * `mytheme` * root * etc * uci-defaults +## Designing +Create two LuCI HTML-Templates named `header.htm` and `footer.htm` under `luasrc/view/themes/mytheme`. +The `header.htm` will be included at the beginning of each rendered page and the `footer.htm` at the end. +So your `header.htm` will probably contain a DOCTYPE description, headers, +the menu and layout of the page and the `footer.htm` will close all remaining open tags and may add a footer bar. +But hey that's your choice: you are the designer ;-). -# Designing -Create two LuCI HTML-Templates named _header.htm'' and ''footer.htm'' under *luasrc/view/themes/''mytheme_*. -The _header.htm'' will be included at the beginning of each rendered page and the ''footer.htm_ at the end. -So your _header.htm'' will probably contain a DOCTYPE description, headers, the menu and layout of the page and the ''footer.htm_ will close all remaining open tags and may add a footer bar but hey that's your choice you are the designer ;-). +Just make sure your `header.htm` begins with the following lines: +``` +<% +require("luci.http").prepare_content("text/html") +-%> +``` -Just make sure your _header.htm_ *begins* with the following lines: - - <% - require("luci.http").prepare_content("text/html") - -%> - - -This makes sure your content will be sent to the client with the right content type. Of course you can adapt _text/html_ to your needs. +This ensures your content is sent to the client with the right content type. +Of course you can adapt `text/html` to your needs. -Put any stylesheets, Javascripts, images, ... into *htdocs/luci-static/_mytheme_*. -You should refer to this directory in your header and footer templates as: _<%=media%>''. That means for a stylesheet *htdocs/luci-static/''mytheme_/cascade.css* you would write: - - - +Put any stylesheets, Javascripts, images, ... into `htdocs/luci-static/mytheme`. +Refer to this directory in your header and footer templates as: `<%=media%>`. +That means for a stylesheet `htdocs/luci-static/mytheme/cascade.css` you would write: +```html + +``` - - -# Making the theme selectable +## Making the theme selectable If you are done with your work there are two last steps to do. -To make your theme OpenWRT-capable and selectable on the settings page you should now create a file *root/etc/uci-defaults/luci-theme-_mytheme_* with the following contents: - - #!/bin/sh - uci batch <<-EOF - set luci.themes.MyTheme=/luci-static/mytheme - commit luci - EOF - +To make your theme OpenWrt-capable and selectable on the settings page, create a file `root/etc/uci-defaults/luci-theme-mytheme` with the following contents: +```sh +#!/bin/sh +uci batch <<-EOF + set luci.themes.MyTheme=/luci-static/mytheme + commit luci +EOF +exit 0 +``` -and another file *ipkg/postinst* with the following content: - - #!/bin/sh - [ -n "${IPKG_INSTROOT}" ] || { - ( . /etc/uci-defaults/luci-theme-mytheme ) && rm -f /etc/uci-defaults/luci-theme-mytheme - } - +and another file `ipkg/postinst` with the following content: +```sh +#!/bin/sh +[ -n "${IPKG_INSTROOT}" ] || { + ( . /etc/uci-defaults/luci-theme-mytheme ) && rm -f /etc/uci-defaults/luci-theme-mytheme +} +``` -This is some OpenWRT magic to correctly register the template with LuCI when it gets installed. +This correctly registers the template with LuCI when it gets installed. That's all. Now send your theme to the LuCI developers to get it into the development repository - if you like. diff --git a/i18n.md b/i18n.md index 226a406c2a..a9ba01314b 100644 --- a/i18n.md +++ b/i18n.md @@ -1,19 +1,119 @@ -# General -Translations are saved in the folder po/ for each module and application. You find the reference in po/templates/.pot. The actual translation files can be found at po/[lang]/[package].po . +# Internationalization (i18n) -In order to use the commands below you need to have the _gettext'' utilities (''msgcat'', ''msgfmt'', ''msgmerge_) installed on your system. +See [online wiki](https://github.com/openwrt/luci/wiki/i18n) for latest version. -# Rebuild po files -If you want to rebuild the translations after you made changes to a package this is an easy way: - - ./build/i18n-scan.pl applications/[application] > applications/[application]/po/templates/[application_basename].pot - ./build/i18n-update.pl applications/[application]/po +## Use translation function - Example: - ./build/i18n-scan.pl applications/luci-app-firewall > applications/luci-app-firewall/po/templates/firewall.pot - ./build/i18n-update.pl applications/luci-app-firewall/po - (note that the directory argument can be omitted for i18n-update.pl to update all apps) - -*Note:* Some packages share translation files, in this case you need to scan through all their folders. The first command from above should then be: - - ./build/i18n-scan.pl applications/[package-1] applications/[package-2] applications/[package-n] > [location of shared template]/[application].pot +### Translations in JavaScript + +Wrap translatable strings with `_()` e.g. `_('string to translate')` and the `i18n-scan.pl` and friends will correctly identify these strings for translation. + +If you have multi line strings you can split them with concatenation: +```js +var mystr = _('this string will translate ' + + 'correctly even though it is ' + + 'a multi line string!'); +``` + +You may also use line continuations `\` syntax: + +```js +var mystr = _('this string will translate \ + correctly even though it is \ + a multi line string'); +``` + +Usually if you have multiple sentences you may need to use a line break. Use the `
` HTML tag like so: +```js +var mystr = _('Port number.') + '
' + + _('E.g. 80 for HTTP'); +``` +Use `
` and **not** `
` or `
`. + +If you have a link inside a translation, move its attributes out of a translation key: +```js +var mystr = _('For further information check the wiki') + .format('href="https://openwrt.org/docs/" target="_blank" rel="noreferrer"') +``` +This will generate a full link with HTML `For further information check the wiki`. The `noreferrer` is important so that it is opened in a new tab (`target="_blank"`). + +### Translations in LuCI lua+html templates +Use the `<%: text to translate %>` as documented on [Templates](./Templates.md) + +### Translations in Lua controller code and Lua CBIs +As hinted at in the Templates doc, the `%:` invokes a `translate()` function. +In most controller contexts, this is already available for you, but if necessary, is available for include in `luci.i18n.translate` + + +## Translation files +Translations are saved in the folder `po/` within each individual LuCI component directory, e.g. `applications/luci-app-acl/po/`. +The template is in `po/templates/.pot`. +The individual language translation files can be found at `po/[lang]/[package].po`. + +In order to use the commands below you need to have the `gettext` utilities (`msgcat`, `msgfmt`, `msgmerge`) installed on your system. +On Debian/Ubuntu, install them with `sudo apt install gettext`. + +### Initialize po files + +When you add or update an app, run from your `applications/luci-app-acl/` app folder: + + ../../build/i18n-add-language.sh + +This creates the skeleton .po files for all available languages open for translation for your app. + +Or from the luci repo root: + + ./build/i18n-add-language.sh + +This creates the skeleton .po files for all existing languages open for translation for all sub-folders. + +### Rebuild po files (for existing languages) +After you make changes to a package, run: + + ./build/i18n-sync.sh applications/[application] + +Example: + + ./build/i18n-sync.sh applications/luci-app-acl + +This only updates those language .po files that already exist in `applications/luci-app-acl/po/`. See the previous step to add a new language. + +Note: the directory argument can be omitted to update all po template and po files. + + +Some packages share translation files, in this case you need to scan through all their folders: + + ./build/i18n-scan.pl applications/[package-1] applications/[package-2] applications/[package-n] > [location of shared template]/[application].pot + +This is what the `mkbasepot.sh` script does for the `luci-base` module: + + ./build/i18n-scan.pl \ + modules/luci-base modules/luci-compat modules/luci-lua-runtime \ + modules/luci-mod-network modules/luci-mod-status modules/luci-mod-system \ + protocols themes \ + > modules/luci-base/po/templates/base.pot + +*Note:* The translation catalog for the base system covers multiple components. Use the following commands to update it: + + ./build/mkbasepot.sh + ./build/i18n-update.pl + +### LMO files +The `*.po` files are big so Luci needs them in a compact compiled [LMO format](./LMO.md). +Luci reads `*.lmo` translations from the `/usr/lib/lua/luci/i18n/` folder. +E.g. `luci-app-acl` has an Arabic translation in `luci-i18n-acl-ar` package that installs `/usr/lib/lua/luci/i18n/acl.ar.lmo` file. + +In order to quickly convert a single `.po` file to `.lmo` file for testing on the target system use the `po2lmo` utility. +You will need to compile it from the `luci-base` module: + + $ cd modules/luci-base/src/ + $ make po2lmo + $ ./po2lmo + Usage: ./po2lmo input.po output.lmo + +Now you can compile and upload the translation: + + ./po2lmo ../../../applications/luci-app-acl/po/ar/acl.po ./acl.ar.lmo + scp ./acl.ar.lmo root@192.168.1.1:/usr/lib/lua/luci/i18n/ + +You can change languages in [System /Language and Style](http://192.168.1.1/cgi-bin/luci/admin/system/system) and check the translation. diff --git a/jsapi/LuCI.baseclass.html b/jsapi/LuCI.baseclass.html index 33c9267a69..4b67aa9338 100644 --- a/jsapi/LuCI.baseclass.html +++ b/jsapi/LuCI.baseclass.html @@ -819,6 +819,10 @@
  • enabled
  • +
  • tooltip
  • + +
  • tooltipicon
  • +
  • datatype
  • default
  • @@ -935,10 +939,6 @@
  • tabbed
  • -
  • tooltip
  • - -
  • tooltipicon
  • -
  • uciconfig
  • @@ -1545,12 +1545,6 @@ Members -
  • addbtntitle
  • - -
  • addremove
  • - -
  • anonymous
  • -
  • extedit
  • max_cols
  • @@ -1565,8 +1559,6 @@
  • sortable
  • -
  • uciconfig
  • -
  • addbtntitle
  • addremove
  • @@ -1577,10 +1569,6 @@
  • tabbed
  • -
  • tooltip
  • - -
  • tooltipicon
  • -
  • uciconfig
  • @@ -1743,10 +1731,6 @@
  • tabbed
  • -
  • tooltip
  • - -
  • tooltipicon
  • -
  • uciconfig
  • parentoption
  • @@ -3770,7 +3754,7 @@ subclass.

    - Returns a new LuCI.baseclass sublassed from this class, extended + Returns a new LuCI.baseclass subclassed from this class, extended by the given properties and with its prototype set to this base class to enable inheritance. The resulting value represents a class constructor and can be instantiated with new. @@ -4677,7 +4661,7 @@ would copy all values till the end.

    repeatable -

    Extra arguments to add to prepend to the resultung array.

    +

    Extra arguments to add to prepend to the resulting array.

    @@ -4774,7 +4758,7 @@ and the values extracted from the args array beginning with
    - Documentation generated by JSDoc 3.6.11 on Tue Nov 15 2022 18:54:12 GMT+0000 (Coordinated Universal Time) + Documentation generated by JSDoc 3.6.11 on Wed Mar 06 2024 05:14:49 GMT+0000 (Coordinated Universal Time)
    diff --git a/jsapi/LuCI.dom.html b/jsapi/LuCI.dom.html index 5282fd05f4..5a8545534f 100644 --- a/jsapi/LuCI.dom.html +++ b/jsapi/LuCI.dom.html @@ -819,6 +819,10 @@
  • enabled
  • +
  • tooltip
  • + +
  • tooltipicon
  • +
  • datatype
  • default
  • @@ -935,10 +939,6 @@
  • tabbed
  • -
  • tooltip
  • - -
  • tooltipicon
  • -
  • uciconfig
  • @@ -1545,12 +1545,6 @@ Members -
  • addbtntitle
  • - -
  • addremove
  • - -
  • anonymous
  • -
  • extedit
  • max_cols
  • @@ -1565,8 +1559,6 @@
  • sortable
  • -
  • uciconfig
  • -
  • addbtntitle
  • addremove
  • @@ -1577,10 +1569,6 @@
  • tabbed
  • -
  • tooltip
  • - -
  • tooltipicon
  • -
  • uciconfig
  • @@ -1743,10 +1731,6 @@
  • tabbed
  • -
  • tooltip
  • - -
  • tooltipicon
  • -
  • uciconfig
  • parentoption
  • @@ -3739,7 +3723,7 @@ external JavaScript, use L.require("dom").then(...).

    < -

    The childrens to append to the given node.

    +

    The children to append to the given node.

    When children is an array, then each item of the array will be either appended as child element or text node, depending on whether the item is a DOM Node instance or @@ -3751,10 +3735,10 @@ the passed node argument as sole parameter and the appendnode argument as first and the return value of the children function as second parameter.

    -

    When children is is a DOM Node instance, it will be +

    When children is a DOM Node instance, it will be appended to the given node.

    When children is any other non-null value, it will be -converted to a string and appened to the innerHTML property +converted to a string and appended to the innerHTML property of the given node.

    @@ -3987,7 +3971,7 @@ added as attribute to the given node, using the given key

    When val is of any other type, it will be added as attribute to the given node as-is, with the underlying setAttribute() -call implicitely turning it into a string.

    +call implicitly turning it into a string.

    @@ -4475,7 +4459,7 @@ instance didn't have the requested method.

    Replaces the content of the given node with the given children.

    This function first removes any children of the given DOM -Node and then adds the given given children following the +Node and then adds the given children following the rules outlined below.

    @@ -4558,7 +4542,7 @@ rules outlined below.

    -

    The childrens to replace into the given node.

    +

    The children to replace into the given node.

    When children is an array, then each item of the array will be either appended as child element or text node, depending on whether the item is a DOM Node instance or @@ -4570,10 +4554,10 @@ the passed node argument as sole parameter and the appendnode argument as first and the return value of the children function as second parameter.

    -

    When children is is a DOM Node instance, it will be +

    When children is a DOM Node instance, it will be appended to the given node.

    When children is any other non-null value, it will be -converted to a string and appened to the innerHTML property +converted to a string and appended to the innerHTML property of the given node.

    @@ -6332,7 +6316,7 @@ ignored, else not.

    - Documentation generated by JSDoc 3.6.11 on Tue Nov 15 2022 18:54:12 GMT+0000 (Coordinated Universal Time) + Documentation generated by JSDoc 3.6.11 on Wed Mar 06 2024 05:14:49 GMT+0000 (Coordinated Universal Time)
    diff --git a/jsapi/LuCI.form.AbstractElement.html b/jsapi/LuCI.form.AbstractElement.html index a3beea4e79..d3d7175610 100644 --- a/jsapi/LuCI.form.AbstractElement.html +++ b/jsapi/LuCI.form.AbstractElement.html @@ -819,6 +819,10 @@
  • enabled
  • +
  • tooltip
  • + +
  • tooltipicon
  • +
  • datatype
  • default
  • @@ -935,10 +939,6 @@
  • tabbed
  • -
  • tooltip
  • - -
  • tooltipicon
  • -
  • uciconfig
  • @@ -1545,12 +1545,6 @@ Members -
  • addbtntitle
  • - -
  • addremove
  • - -
  • anonymous
  • -
  • extedit
  • max_cols
  • @@ -1565,8 +1559,6 @@
  • sortable
  • -
  • uciconfig
  • -
  • addbtntitle
  • addremove
  • @@ -1577,10 +1569,6 @@
  • tabbed
  • -
  • tooltip
  • - -
  • tooltipicon
  • -
  • uciconfig
  • @@ -1743,10 +1731,6 @@
  • tabbed
  • -
  • tooltip
  • - -
  • tooltipicon
  • -
  • uciconfig
  • parentoption
  • @@ -3642,7 +3626,7 @@ properties.

    - append(element) + append(obj)

    @@ -3689,7 +3673,7 @@ properties.

    - element + obj @@ -3777,7 +3761,7 @@ properties.

    Parse this elements form input.

    The parse() function recursively walks the form element tree and triggers input value reading and validation for each encountered element.

    -

    Elements which are hidden due to unsatisified dependencies are skipped.

    +

    Elements which are hidden due to unsatisfied dependencies are skipped.

    @@ -3970,7 +3954,7 @@ the form element's markup, including the markup of any child elements.

    - stripTags(input){string} + stripTags(s){string}

    @@ -4017,7 +4001,7 @@ the form element's markup, including the markup of any child elements. - input + s @@ -4098,7 +4082,7 @@ the form element's markup, including the markup of any child elements. - The cleaned input string with HTML removes removed. + The cleaned input string with HTML tags removed. @@ -4321,7 +4305,7 @@ was neither a string nor a function.
    - Documentation generated by JSDoc 3.6.11 on Tue Nov 15 2022 18:54:12 GMT+0000 (Coordinated Universal Time) + Documentation generated by JSDoc 3.6.11 on Wed Mar 06 2024 05:14:49 GMT+0000 (Coordinated Universal Time)
    diff --git a/jsapi/LuCI.form.AbstractSection.html b/jsapi/LuCI.form.AbstractSection.html index b219dad8c5..37331a2959 100644 --- a/jsapi/LuCI.form.AbstractSection.html +++ b/jsapi/LuCI.form.AbstractSection.html @@ -819,6 +819,10 @@
  • enabled
  • +
  • tooltip
  • + +
  • tooltipicon
  • +
  • datatype
  • default
  • @@ -935,10 +939,6 @@
  • tabbed
  • -
  • tooltip
  • - -
  • tooltipicon
  • -
  • uciconfig
  • @@ -1545,12 +1545,6 @@ Members -
  • addbtntitle
  • - -
  • addremove
  • - -
  • anonymous
  • -
  • extedit
  • max_cols
  • @@ -1565,8 +1559,6 @@
  • sortable
  • -
  • uciconfig
  • -
  • addbtntitle
  • addremove
  • @@ -1577,10 +1569,6 @@
  • tabbed
  • -
  • tooltip
  • - -
  • tooltipicon
  • -
  • uciconfig
  • @@ -1743,10 +1731,6 @@
  • tabbed
  • -
  • tooltip
  • - -
  • tooltipicon
  • -
  • uciconfig
  • parentoption
  • @@ -3702,7 +3686,7 @@ this property will hold a reference to the parent option instance.

    inherited - append(element) + append(obj) @@ -3749,7 +3733,7 @@ this property will hold a reference to the parent option instance.

    - element + obj @@ -5024,7 +5008,7 @@ should be used instead if this form section element uses tabs.

    The option class to use for rendering the configuration option. Note that this value must be the class itself, not a class instance obtained -from calling new. It must also be a class dervied from +from calling new. It must also be a class derived from LuCI.form.AbstractSection.

    @@ -5055,7 +5039,7 @@ from calling new. It must also be a class dervied from repeatable -

    Additional arguments which are passed as-is to the contructor of the +

    Additional arguments which are passed as-is to the constructor of the given option class. Refer to the class specific constructor documentation for details.

    @@ -5187,7 +5171,7 @@ descendent of AbstractValue.

    The parse() function recursively walks the section element tree and triggers input value reading and validation for each encountered child option element.

    -

    Options which are hidden due to unsatisified dependencies are skipped.

    +

    Options which are hidden due to unsatisfied dependencies are skipped.

    @@ -5383,7 +5367,7 @@ the form element's markup, including the markup of any child elements. inherited - stripTags(input){string} + stripTags(s){string} @@ -5430,7 +5414,7 @@ the form element's markup, including the markup of any child elements. - input + s @@ -5511,7 +5495,7 @@ the form element's markup, including the markup of any child elements. - The cleaned input string with HTML removes removed. + The cleaned input string with HTML tags removed. @@ -5713,7 +5697,7 @@ contents. If omitted, no description will be rendered.

    -

    Throws an exeption if a tab with the same name already exists.

    +

    Throws an exception if a tab with the same name already exists.

    @@ -5745,7 +5729,7 @@ contents. If omitted, no description will be rendered.

    - taboption(tabname, optionclass, classargs){LuCI.form.AbstractValue} + taboption(tabName, optionclass, classargs){LuCI.form.AbstractValue}

    @@ -5792,7 +5776,7 @@ contents. If omitted, no description will be rendered.

    - tabname + tabName @@ -5843,7 +5827,7 @@ contents. If omitted, no description will be rendered.

    The option class to use for rendering the configuration option. Note that this value must be the class itself, not a class instance obtained -from calling new. It must also be a class dervied from +from calling new. It must also be a class derived from LuCI.form.AbstractSection.

    @@ -5874,7 +5858,7 @@ from calling new. It must also be a class dervied from repeatable -

    Additional arguments which are passed as-is to the contructor of the +

    Additional arguments which are passed as-is to the constructor of the given option class. Refer to the class specific constructor documentation for details.

    @@ -6220,7 +6204,7 @@ was neither a string nor a function.
    - Documentation generated by JSDoc 3.6.11 on Tue Nov 15 2022 18:54:12 GMT+0000 (Coordinated Universal Time) + Documentation generated by JSDoc 3.6.11 on Wed Mar 06 2024 05:14:49 GMT+0000 (Coordinated Universal Time)
    diff --git a/jsapi/LuCI.form.AbstractValue.html b/jsapi/LuCI.form.AbstractValue.html index 28630a4201..bcaa94a282 100644 --- a/jsapi/LuCI.form.AbstractValue.html +++ b/jsapi/LuCI.form.AbstractValue.html @@ -819,6 +819,10 @@
  • enabled
  • +
  • tooltip
  • + +
  • tooltipicon
  • +
  • datatype
  • default
  • @@ -935,10 +939,6 @@
  • tabbed
  • -
  • tooltip
  • - -
  • tooltipicon
  • -
  • uciconfig
  • @@ -1545,12 +1545,6 @@ Members -
  • addbtntitle
  • - -
  • addremove
  • - -
  • anonymous
  • -
  • extedit
  • max_cols
  • @@ -1565,8 +1559,6 @@
  • sortable
  • -
  • uciconfig
  • -
  • addbtntitle
  • addremove
  • @@ -1577,10 +1569,6 @@
  • tabbed
  • -
  • tooltip
  • - -
  • tooltipicon
  • -
  • uciconfig
  • @@ -1743,10 +1731,6 @@
  • tabbed
  • -
  • tooltip
  • - -
  • tooltipicon
  • -
  • uciconfig
  • parentoption
  • @@ -4017,7 +4001,7 @@ with.

    If set to true, the underlying ui input widget value is not cleared -from the configuration on unsatisfied depedencies. The default behavior +from the configuration on unsatisfied dependencies. The default behavior is to remove the values of all options whose dependencies are not fulfilled.

    @@ -4380,7 +4364,7 @@ table section elements.

    inherited - append(element) + append(obj) @@ -4427,7 +4411,7 @@ table section elements.

    - element + obj @@ -4848,7 +4832,7 @@ different way.

    - depends(optionname_or_depends, optionvalue|RegExp) + depends(field, value)

    @@ -4864,9 +4848,9 @@ different way.

    -

    Add a dependency contraint to the option.

    +

    Add a dependency constraint to the option.

    Dependency constraints allow making the presence of option elements -dependant on the current values of certain other options within the +dependent on the current values of certain other options within the same form. An option element with unsatisfied dependencies will be hidden from the view and its current value is omitted when saving.

    Multiple constraints (that is, multiple calls to depends()) are @@ -4875,7 +4859,7 @@ treated as alternatives, forming a logical "or" expression.

    possible to depend on multiple options simultaneously, allowing to form a logical "and" expression.

    Option names may be given in "dot notation" which allows to reference -option elements outside of the current form section. If a name without +option elements outside the current form section. If a name without dot is specified, it refers to an option within the same configuration section. If specified as configname.sectionid.optionname, options anywhere within the same form may be specified.

    @@ -4966,7 +4950,7 @@ is ignored. The recognized tags are:

    - optionname_or_depends + field @@ -4986,20 +4970,23 @@ is ignored. The recognized tags are:

    The name of the option to depend on or an object describing multiple -dependencies which must be satified (a logical "and" expression).

    +dependencies which must be satisfied (a logical "and" expression).

    - optionvalue|RegExp + value string +| + +RegExp @@ -6417,7 +6404,7 @@ the form element's markup, including the markup of any child elements. inherited - stripTags(input){string} + stripTags(s){string} @@ -6464,7 +6451,7 @@ the form element's markup, including the markup of any child elements. - input + s @@ -6545,7 +6532,7 @@ the form element's markup, including the markup of any child elements. - The cleaned input string with HTML removes removed. + The cleaned input string with HTML tags removed. @@ -7275,7 +7262,7 @@ before it is written.

    - Documentation generated by JSDoc 3.6.11 on Tue Nov 15 2022 18:54:12 GMT+0000 (Coordinated Universal Time) + Documentation generated by JSDoc 3.6.11 on Wed Mar 06 2024 05:14:49 GMT+0000 (Coordinated Universal Time)
    diff --git a/jsapi/LuCI.form.ButtonValue.html b/jsapi/LuCI.form.ButtonValue.html index ce4f2a4b4c..7bfc66f087 100644 --- a/jsapi/LuCI.form.ButtonValue.html +++ b/jsapi/LuCI.form.ButtonValue.html @@ -819,6 +819,10 @@
  • enabled
  • +
  • tooltip
  • + +
  • tooltipicon
  • +
  • datatype
  • default
  • @@ -935,10 +939,6 @@
  • tabbed
  • -
  • tooltip
  • - -
  • tooltipicon
  • -
  • uciconfig
  • @@ -1545,12 +1545,6 @@ Members -
  • addbtntitle
  • - -
  • addremove
  • - -
  • anonymous
  • -
  • extedit
  • max_cols
  • @@ -1565,8 +1559,6 @@
  • sortable
  • -
  • uciconfig
  • -
  • addbtntitle
  • addremove
  • @@ -1577,10 +1569,6 @@
  • tabbed
  • -
  • tooltip
  • - -
  • tooltipicon
  • -
  • uciconfig
  • @@ -1743,10 +1731,6 @@
  • tabbed
  • -
  • tooltip
  • - -
  • tooltipicon
  • -
  • uciconfig
  • parentoption
  • @@ -3559,7 +3543,7 @@ renders the underlying UCI option or default value as readonly text.

    @@ -4450,7 +4434,7 @@ with.

    If set to true, the underlying ui input widget value is not cleared -from the configuration on unsatisfied depedencies. The default behavior +from the configuration on unsatisfied dependencies. The default behavior is to remove the values of all options whose dependencies are not fulfilled.

    @@ -4813,7 +4797,7 @@ table section elements.

    inherited - append(element) + append(obj) @@ -4860,7 +4844,7 @@ table section elements.

    - element + obj @@ -5287,7 +5271,7 @@ different way.

    inherited - depends(optionname_or_depends, optionvalue|RegExp) + depends(field, value) @@ -5303,9 +5287,9 @@ different way.

    -

    Add a dependency contraint to the option.

    +

    Add a dependency constraint to the option.

    Dependency constraints allow making the presence of option elements -dependant on the current values of certain other options within the +dependent on the current values of certain other options within the same form. An option element with unsatisfied dependencies will be hidden from the view and its current value is omitted when saving.

    Multiple constraints (that is, multiple calls to depends()) are @@ -5314,7 +5298,7 @@ treated as alternatives, forming a logical "or" expression.

    possible to depend on multiple options simultaneously, allowing to form a logical "and" expression.

    Option names may be given in "dot notation" which allows to reference -option elements outside of the current form section. If a name without +option elements outside the current form section. If a name without dot is specified, it refers to an option within the same configuration section. If specified as configname.sectionid.optionname, options anywhere within the same form may be specified.

    @@ -5405,7 +5389,7 @@ is ignored. The recognized tags are:

    - optionname_or_depends + field @@ -5425,20 +5409,23 @@ is ignored. The recognized tags are:

    The name of the option to depend on or an object describing multiple -dependencies which must be satified (a logical "and" expression).

    +dependencies which must be satisfied (a logical "and" expression).

    - optionvalue|RegExp + value string +| + +RegExp @@ -6764,7 +6751,7 @@ implement alternative removal logic, e.g. to retain the original value.

    inherited - stripTags(input){string} + stripTags(s){string} @@ -6811,7 +6798,7 @@ implement alternative removal logic, e.g. to retain the original value.

    - input + s @@ -6892,7 +6879,7 @@ implement alternative removal logic, e.g. to retain the original value.

    - The cleaned input string with HTML removes removed. + The cleaned input string with HTML tags removed. @@ -7286,12 +7273,12 @@ was neither a string nor a function. inherited - value(key, value) + value(key, val)
    @@ -7359,7 +7346,7 @@ custom value.

    - value + val @@ -7598,7 +7585,7 @@ before it is written.

    - Documentation generated by JSDoc 3.6.11 on Tue Nov 15 2022 18:54:12 GMT+0000 (Coordinated Universal Time) + Documentation generated by JSDoc 3.6.11 on Wed Mar 06 2024 05:14:49 GMT+0000 (Coordinated Universal Time)
    diff --git a/jsapi/LuCI.form.DummyValue.html b/jsapi/LuCI.form.DummyValue.html index f0eaa2338c..48de5e506c 100644 --- a/jsapi/LuCI.form.DummyValue.html +++ b/jsapi/LuCI.form.DummyValue.html @@ -819,6 +819,10 @@
  • enabled
  • +
  • tooltip
  • + +
  • tooltipicon
  • +
  • datatype
  • default
  • @@ -935,10 +939,6 @@
  • tabbed
  • -
  • tooltip
  • - -
  • tooltipicon
  • -
  • uciconfig
  • @@ -1545,12 +1545,6 @@ Members -
  • addbtntitle
  • - -
  • addremove
  • - -
  • anonymous
  • -
  • extedit
  • max_cols
  • @@ -1565,8 +1559,6 @@
  • sortable
  • -
  • uciconfig
  • -
  • addbtntitle
  • addremove
  • @@ -1577,10 +1569,6 @@
  • tabbed
  • -
  • tooltip
  • - -
  • tooltipicon
  • -
  • uciconfig
  • @@ -1743,10 +1731,6 @@
  • tabbed
  • -
  • tooltip
  • - -
  • tooltipicon
  • -
  • uciconfig
  • parentoption
  • @@ -3559,7 +3543,7 @@ renders the underlying UCI option or default value as readonly text.

    @@ -3873,7 +3857,7 @@ option to the section.

    -

    Set an URL which is opened when clicking on the dummy value text.

    +

    Set a URL which is opened when clicking on the dummy value text.

    By setting this property, the dummy value text is wrapped in an <a> element with the property value used as href attribute.

    @@ -4436,7 +4420,7 @@ with.

    If set to true, the underlying ui input widget value is not cleared -from the configuration on unsatisfied depedencies. The default behavior +from the configuration on unsatisfied dependencies. The default behavior is to remove the values of all options whose dependencies are not fulfilled.

    @@ -4799,7 +4783,7 @@ table section elements.

    inherited - append(element) + append(obj) @@ -4846,7 +4830,7 @@ table section elements.

    - element + obj @@ -5273,7 +5257,7 @@ different way.

    inherited - depends(optionname_or_depends, optionvalue|RegExp) + depends(field, value) @@ -5289,9 +5273,9 @@ different way.

    -

    Add a dependency contraint to the option.

    +

    Add a dependency constraint to the option.

    Dependency constraints allow making the presence of option elements -dependant on the current values of certain other options within the +dependent on the current values of certain other options within the same form. An option element with unsatisfied dependencies will be hidden from the view and its current value is omitted when saving.

    Multiple constraints (that is, multiple calls to depends()) are @@ -5300,7 +5284,7 @@ treated as alternatives, forming a logical "or" expression.

    possible to depend on multiple options simultaneously, allowing to form a logical "and" expression.

    Option names may be given in "dot notation" which allows to reference -option elements outside of the current form section. If a name without +option elements outside the current form section. If a name without dot is specified, it refers to an option within the same configuration section. If specified as configname.sectionid.optionname, options anywhere within the same form may be specified.

    @@ -5391,7 +5375,7 @@ is ignored. The recognized tags are:

    - optionname_or_depends + field @@ -5411,20 +5395,23 @@ is ignored. The recognized tags are:

    The name of the option to depend on or an object describing multiple -dependencies which must be satified (a logical "and" expression).

    +dependencies which must be satisfied (a logical "and" expression).

    - optionvalue|RegExp + value string +| + +RegExp @@ -6630,7 +6617,7 @@ validation constraints.
    @@ -6750,7 +6737,7 @@ implement alternative removal logic, e.g. to retain the original value.

    inherited - stripTags(input){string} + stripTags(s){string} @@ -6797,7 +6784,7 @@ implement alternative removal logic, e.g. to retain the original value.

    - input + s @@ -6878,7 +6865,7 @@ implement alternative removal logic, e.g. to retain the original value.

    - The cleaned input string with HTML removes removed. + The cleaned input string with HTML tags removed. @@ -7272,12 +7259,12 @@ was neither a string nor a function. inherited - value(key, value) + value(key, val) @@ -7345,7 +7332,7 @@ custom value.

    - value + val @@ -7425,7 +7412,7 @@ or a plain text string. If omitted, the key value is used as captio @@ -7584,7 +7571,7 @@ before it is written.

    - Documentation generated by JSDoc 3.6.11 on Tue Nov 15 2022 18:54:12 GMT+0000 (Coordinated Universal Time) + Documentation generated by JSDoc 3.6.11 on Wed Mar 06 2024 05:14:49 GMT+0000 (Coordinated Universal Time)
    diff --git a/jsapi/LuCI.form.DynamicList.html b/jsapi/LuCI.form.DynamicList.html index 8ccaf79f39..62cd4545ba 100644 --- a/jsapi/LuCI.form.DynamicList.html +++ b/jsapi/LuCI.form.DynamicList.html @@ -819,6 +819,10 @@
  • enabled
  • +
  • tooltip
  • + +
  • tooltipicon
  • +
  • datatype
  • default
  • @@ -935,10 +939,6 @@
  • tabbed
  • -
  • tooltip
  • - -
  • tooltipicon
  • -
  • uciconfig
  • @@ -1545,12 +1545,6 @@ Members -
  • addbtntitle
  • - -
  • addremove
  • - -
  • anonymous
  • -
  • extedit
  • max_cols
  • @@ -1565,8 +1559,6 @@
  • sortable
  • -
  • uciconfig
  • -
  • addbtntitle
  • addremove
  • @@ -1577,10 +1569,6 @@
  • tabbed
  • -
  • tooltip
  • - -
  • tooltipicon
  • -
  • uciconfig
  • @@ -1743,10 +1731,6 @@
  • tabbed
  • -
  • tooltip
  • - -
  • tooltipicon
  • -
  • uciconfig
  • parentoption
  • @@ -3560,7 +3544,7 @@ predefined choices. It builds upon the @@ -4287,7 +4271,7 @@ with.

    If set to true, the underlying ui input widget value is not cleared -from the configuration on unsatisfied depedencies. The default behavior +from the configuration on unsatisfied dependencies. The default behavior is to remove the values of all options whose dependencies are not fulfilled.

    @@ -4650,7 +4634,7 @@ table section elements.

    inherited - append(element) + append(obj) @@ -4697,7 +4681,7 @@ table section elements.

    - element + obj @@ -5124,7 +5108,7 @@ different way.

    inherited - depends(optionname_or_depends, optionvalue|RegExp) + depends(field, value) @@ -5140,9 +5124,9 @@ different way.

    -

    Add a dependency contraint to the option.

    +

    Add a dependency constraint to the option.

    Dependency constraints allow making the presence of option elements -dependant on the current values of certain other options within the +dependent on the current values of certain other options within the same form. An option element with unsatisfied dependencies will be hidden from the view and its current value is omitted when saving.

    Multiple constraints (that is, multiple calls to depends()) are @@ -5151,7 +5135,7 @@ treated as alternatives, forming a logical "or" expression.

    possible to depend on multiple options simultaneously, allowing to form a logical "and" expression.

    Option names may be given in "dot notation" which allows to reference -option elements outside of the current form section. If a name without +option elements outside the current form section. If a name without dot is specified, it refers to an option within the same configuration section. If specified as configname.sectionid.optionname, options anywhere within the same form may be specified.

    @@ -5242,7 +5226,7 @@ is ignored. The recognized tags are:

    - optionname_or_depends + field @@ -5262,20 +5246,23 @@ is ignored. The recognized tags are:

    The name of the option to depend on or an object describing multiple -dependencies which must be satified (a logical "and" expression).

    +dependencies which must be satisfied (a logical "and" expression).

    - optionvalue|RegExp + value string +| + +RegExp @@ -6601,7 +6588,7 @@ implement alternative removal logic, e.g. to retain the original value.

    inherited - stripTags(input){string} + stripTags(s){string} @@ -6648,7 +6635,7 @@ implement alternative removal logic, e.g. to retain the original value.

    - input + s @@ -6729,7 +6716,7 @@ implement alternative removal logic, e.g. to retain the original value.

    - The cleaned input string with HTML removes removed. + The cleaned input string with HTML tags removed. @@ -7123,12 +7110,12 @@ was neither a string nor a function. inherited - value(key, value) + value(key, val)
    @@ -7196,7 +7183,7 @@ custom value.

    - value + val @@ -7435,7 +7422,7 @@ before it is written.

    - Documentation generated by JSDoc 3.6.11 on Tue Nov 15 2022 18:54:12 GMT+0000 (Coordinated Universal Time) + Documentation generated by JSDoc 3.6.11 on Wed Mar 06 2024 05:14:49 GMT+0000 (Coordinated Universal Time)
    diff --git a/jsapi/LuCI.form.FileUpload.html b/jsapi/LuCI.form.FileUpload.html index ee1b374c49..f5060c0625 100644 --- a/jsapi/LuCI.form.FileUpload.html +++ b/jsapi/LuCI.form.FileUpload.html @@ -819,6 +819,10 @@
  • enabled
  • +
  • tooltip
  • + +
  • tooltipicon
  • +
  • datatype
  • default
  • @@ -935,10 +939,6 @@
  • tabbed
  • -
  • tooltip
  • - -
  • tooltipicon
  • -
  • uciconfig
  • @@ -1545,12 +1545,6 @@ Members -
  • addbtntitle
  • - -
  • addremove
  • - -
  • anonymous
  • -
  • extedit
  • max_cols
  • @@ -1565,8 +1559,6 @@
  • sortable
  • -
  • uciconfig
  • -
  • addbtntitle
  • addremove
  • @@ -1577,10 +1569,6 @@
  • tabbed
  • -
  • tooltip
  • - -
  • tooltipicon
  • -
  • uciconfig
  • @@ -1743,10 +1731,6 @@
  • tabbed
  • -
  • tooltip
  • - -
  • tooltipicon
  • -
  • uciconfig
  • parentoption
  • @@ -3559,7 +3543,7 @@ offers the ability to browse, upload and select remote files.

    @@ -4498,7 +4482,7 @@ with.

    If set to true, the underlying ui input widget value is not cleared -from the configuration on unsatisfied depedencies. The default behavior +from the configuration on unsatisfied dependencies. The default behavior is to remove the values of all options whose dependencies are not fulfilled.

    @@ -4861,7 +4845,7 @@ table section elements.

    inherited - append(element) + append(obj) @@ -4908,7 +4892,7 @@ table section elements.

    - element + obj @@ -5335,7 +5319,7 @@ different way.

    inherited - depends(optionname_or_depends, optionvalue|RegExp) + depends(field, value) @@ -5351,9 +5335,9 @@ different way.

    -

    Add a dependency contraint to the option.

    +

    Add a dependency constraint to the option.

    Dependency constraints allow making the presence of option elements -dependant on the current values of certain other options within the +dependent on the current values of certain other options within the same form. An option element with unsatisfied dependencies will be hidden from the view and its current value is omitted when saving.

    Multiple constraints (that is, multiple calls to depends()) are @@ -5362,7 +5346,7 @@ treated as alternatives, forming a logical "or" expression.

    possible to depend on multiple options simultaneously, allowing to form a logical "and" expression.

    Option names may be given in "dot notation" which allows to reference -option elements outside of the current form section. If a name without +option elements outside the current form section. If a name without dot is specified, it refers to an option within the same configuration section. If specified as configname.sectionid.optionname, options anywhere within the same form may be specified.

    @@ -5453,7 +5437,7 @@ is ignored. The recognized tags are:

    - optionname_or_depends + field @@ -5473,20 +5457,23 @@ is ignored. The recognized tags are:

    The name of the option to depend on or an object describing multiple -dependencies which must be satified (a logical "and" expression).

    +dependencies which must be satisfied (a logical "and" expression).

    - optionvalue|RegExp + value string +| + +RegExp @@ -6812,7 +6799,7 @@ implement alternative removal logic, e.g. to retain the original value.

    inherited - stripTags(input){string} + stripTags(s){string} @@ -6859,7 +6846,7 @@ implement alternative removal logic, e.g. to retain the original value.

    - input + s @@ -6940,7 +6927,7 @@ implement alternative removal logic, e.g. to retain the original value.

    - The cleaned input string with HTML removes removed. + The cleaned input string with HTML tags removed. @@ -7334,12 +7321,12 @@ was neither a string nor a function. inherited - value(key, value) + value(key, val)
    @@ -7407,7 +7394,7 @@ custom value.

    - value + val @@ -7646,7 +7633,7 @@ before it is written.

    - Documentation generated by JSDoc 3.6.11 on Tue Nov 15 2022 18:54:12 GMT+0000 (Coordinated Universal Time) + Documentation generated by JSDoc 3.6.11 on Wed Mar 06 2024 05:14:49 GMT+0000 (Coordinated Universal Time)
    diff --git a/jsapi/LuCI.form.FlagValue.html b/jsapi/LuCI.form.FlagValue.html index 72b1303046..3bd32556f4 100644 --- a/jsapi/LuCI.form.FlagValue.html +++ b/jsapi/LuCI.form.FlagValue.html @@ -819,6 +819,10 @@
  • enabled
  • +
  • tooltip
  • + +
  • tooltipicon
  • +
  • datatype
  • default
  • @@ -935,10 +939,6 @@
  • tabbed
  • -
  • tooltip
  • - -
  • tooltipicon
  • -
  • uciconfig
  • @@ -1545,12 +1545,6 @@ Members -
  • addbtntitle
  • - -
  • addremove
  • - -
  • anonymous
  • -
  • extedit
  • max_cols
  • @@ -1565,8 +1559,6 @@
  • sortable
  • -
  • uciconfig
  • -
  • addbtntitle
  • addremove
  • @@ -1577,10 +1569,6 @@
  • tabbed
  • -
  • tooltip
  • - -
  • tooltipicon
  • -
  • uciconfig
  • @@ -1743,10 +1731,6 @@
  • tabbed
  • -
  • tooltip
  • - -
  • tooltipicon
  • -
  • uciconfig
  • parentoption
  • @@ -3559,7 +3543,7 @@ implement a simple checkbox element.

    @@ -3816,7 +3800,7 @@ option to the section.

    -

    disablednumber

    +

    disabledstring

    @@ -3864,7 +3848,7 @@ option to the section.

    -

    enablednumber

    +

    enabledstring

    @@ -3902,6 +3886,108 @@ option to the section.

    +
    + + + + + + + +
    +
    +

    tooltipstring function

    +
    + + +
    +
    + +
    +

    Set a tooltip for the flag option.

    +

    If set to a string, it will be used as-is as a tooltip.

    +

    If set to a function, the function will be invoked and the return +value will be shown as a tooltip. If the return value of the function +is null no tooltip will be set.

    +
    + + + +
    + + + + + + + + + + + + + + + +
    Default Value:
    +
    • null
    + + + + + + + +
    + + + +
    + + + +
    +
    +

    tooltipiconstring

    +
    + + +
    +
    + +
    +

    Set a tooltip icon for the flag option.

    +

    If set, this icon will be shown for the default one. +This could also be a png icon from the resources directory.

    +
    + + + +
    + + + + + + + + + + + + + + + +
    Default Value:
    +
    • 'ℹ️';
    + + + + + + +
    @@ -4382,7 +4468,7 @@ with.

    If set to true, the underlying ui input widget value is not cleared -from the configuration on unsatisfied depedencies. The default behavior +from the configuration on unsatisfied dependencies. The default behavior is to remove the values of all options whose dependencies are not fulfilled.

    @@ -4745,7 +4831,7 @@ table section elements.

    inherited - append(element) + append(obj) @@ -4792,7 +4878,7 @@ table section elements.

    - element + obj @@ -5219,7 +5305,7 @@ different way.

    inherited - depends(optionname_or_depends, optionvalue|RegExp) + depends(field, value) @@ -5235,9 +5321,9 @@ different way.

    -

    Add a dependency contraint to the option.

    +

    Add a dependency constraint to the option.

    Dependency constraints allow making the presence of option elements -dependant on the current values of certain other options within the +dependent on the current values of certain other options within the same form. An option element with unsatisfied dependencies will be hidden from the view and its current value is omitted when saving.

    Multiple constraints (that is, multiple calls to depends()) are @@ -5246,7 +5332,7 @@ treated as alternatives, forming a logical "or" expression.

    possible to depend on multiple options simultaneously, allowing to form a logical "and" expression.

    Option names may be given in "dot notation" which allows to reference -option elements outside of the current form section. If a name without +option elements outside the current form section. If a name without dot is specified, it refers to an option within the same configuration section. If specified as configname.sectionid.optionname, options anywhere within the same form may be specified.

    @@ -5337,7 +5423,7 @@ is ignored. The recognized tags are:

    - optionname_or_depends + field @@ -5357,20 +5443,23 @@ is ignored. The recognized tags are:

    The name of the option to depend on or an object describing multiple -dependencies which must be satified (a logical "and" expression).

    +dependencies which must be satisfied (a logical "and" expression).

    - optionvalue|RegExp + value string +| + +RegExp @@ -5442,7 +5531,7 @@ argument, this parameter is ignored.

    @@ -6424,7 +6513,7 @@ so it may return promises if overridden by user code. @@ -6695,7 +6784,7 @@ implement alternative removal logic, e.g. to retain the original value.

    inherited - stripTags(input){string} + stripTags(s){string} @@ -6742,7 +6831,7 @@ implement alternative removal logic, e.g. to retain the original value.

    - input + s @@ -6823,7 +6912,7 @@ implement alternative removal logic, e.g. to retain the original value.

    - The cleaned input string with HTML removes removed. + The cleaned input string with HTML tags removed. @@ -6847,7 +6936,7 @@ implement alternative removal logic, e.g. to retain the original value.

    @@ -7212,12 +7301,12 @@ was neither a string nor a function. inherited - value(key, value) + value(key, val) @@ -7285,7 +7374,7 @@ custom value.

    - value + val @@ -7524,7 +7613,7 @@ before it is written.

    - Documentation generated by JSDoc 3.6.11 on Tue Nov 15 2022 18:54:12 GMT+0000 (Coordinated Universal Time) + Documentation generated by JSDoc 3.6.11 on Wed Mar 06 2024 05:14:49 GMT+0000 (Coordinated Universal Time)
    diff --git a/jsapi/LuCI.form.GridSection.html b/jsapi/LuCI.form.GridSection.html index 0eda18c028..f1a4540898 100644 --- a/jsapi/LuCI.form.GridSection.html +++ b/jsapi/LuCI.form.GridSection.html @@ -819,6 +819,10 @@
  • enabled
  • +
  • tooltip
  • + +
  • tooltipicon
  • +
  • datatype
  • default
  • @@ -935,10 +939,6 @@
  • tabbed
  • -
  • tooltip
  • - -
  • tooltipicon
  • -
  • uciconfig
  • @@ -1545,12 +1545,6 @@ Members -
  • addbtntitle
  • - -
  • addremove
  • - -
  • anonymous
  • -
  • extedit
  • max_cols
  • @@ -1565,8 +1559,6 @@
  • sortable
  • -
  • uciconfig
  • -
  • addbtntitle
  • addremove
  • @@ -1577,10 +1569,6 @@
  • tabbed
  • -
  • tooltip
  • - -
  • tooltipicon
  • -
  • uciconfig
  • @@ -1743,10 +1731,6 @@
  • tabbed
  • -
  • tooltip
  • - -
  • tooltipicon
  • -
  • uciconfig
  • parentoption
  • @@ -3548,7 +3532,7 @@ elements added with tabopti are displayed in the modal popup.

    Another important difference is that the table cells show a readonly text preview of the corresponding option elements by default, unless the child -option element is explicitely made writable by setting the editable +option element is explicitly made writable by setting the editable property to true.

    Additionally, the grid section honours a modalonly property of child option elements. Refer to the AbstractValue @@ -3572,7 +3556,7 @@ documentation for details.

    @@ -4407,108 +4391,6 @@ among instances. The default is false.

    - - - - -
    - - - -
    -
    -

    tooltipstring function

    -
    - - -
    -
    - -
    -

    Set a tooltip for the flag option.

    -

    If set to a string, it will be used as-is as a tooltip.

    -

    If set to a function, the function will be invoked and the return -value will be shown as a tooltip. If the return value of the function -is null no tooltip will be set.

    -
    - - - -
    - - - - - - - - - - - - - - - -
    Default Value:
    -
    • null
    - - - - - - - -
    - - - -
    - - - -
    -
    -

    tooltipiconstring

    -
    - - -
    -
    - -
    -

    Set a tooltip icon.

    -

    If set, this icon will be shown for the default one. -This could also be a png icon from the resources directory.

    -
    - - - -
    - - - - - - - - - - - - - - - -
    Default Value:
    -
    • 'ℹ️';
    - - - - - - -
    @@ -4585,7 +4467,7 @@ The default is null, means inheriting from the parent form.

    @@ -4763,7 +4645,7 @@ e.g. query additional data or to inject further option elements.

    Return values of this function are ignored but if a promise is returned, it is run to completion before the rendering is continued, allowing -custom logic to perform asynchroneous work before the modal dialog +custom logic to perform asynchronous work before the modal dialog is shown. @@ -4783,7 +4665,7 @@ is shown. inherited - append(element) + append(obj) @@ -4830,7 +4712,7 @@ is shown. - element + obj @@ -5991,7 +5873,7 @@ should be used instead if this form section element uses tabs.

    The option class to use for rendering the configuration option. Note that this value must be the class itself, not a class instance obtained -from calling new. It must also be a class dervied from +from calling new. It must also be a class derived from LuCI.form.AbstractSection.

    @@ -6022,7 +5904,7 @@ from calling new. It must also be a class dervied from repeatable -

    Additional arguments which are passed as-is to the contructor of the +

    Additional arguments which are passed as-is to the constructor of the given option class. Refer to the class specific constructor documentation for details.

    @@ -6141,7 +6023,7 @@ descendent of AbstractValue.

    @@ -6156,7 +6038,7 @@ descendent of AbstractValue.

    The parse() function recursively walks the section element tree and triggers input value reading and validation for each encountered child option element.

    -

    Options which are hidden due to unsatisified dependencies are skipped.

    +

    Options which are hidden due to unsatisfied dependencies are skipped.

    @@ -6244,7 +6126,7 @@ not meeting the validation constraints of their respective elements. inherited - stripTags(input){string} + stripTags(s){string} @@ -6291,7 +6173,7 @@ not meeting the validation constraints of their respective elements. - input + s @@ -6372,7 +6254,7 @@ not meeting the validation constraints of their respective elements. - The cleaned input string with HTML removes removed. + The cleaned input string with HTML tags removed. @@ -6394,7 +6276,7 @@ not meeting the validation constraints of their respective elements. @@ -6573,7 +6455,7 @@ contents. If omitted, no description will be rendered.

    -

    Throws an exeption if a tab with the same name already exists.

    +

    Throws an exception if a tab with the same name already exists.

    @@ -6607,7 +6489,7 @@ contents. If omitted, no description will be rendered.

    inherited - taboption(tabname, optionclass, classargs){LuCI.form.AbstractValue} + taboption(tabName, optionclass, classargs){LuCI.form.AbstractValue} @@ -6654,7 +6536,7 @@ contents. If omitted, no description will be rendered.

    - tabname + tabName @@ -6705,7 +6587,7 @@ contents. If omitted, no description will be rendered.

    The option class to use for rendering the configuration option. Note that this value must be the class itself, not a class instance obtained -from calling new. It must also be a class dervied from +from calling new. It must also be a class derived from LuCI.form.AbstractSection.

    @@ -6736,7 +6618,7 @@ from calling new. It must also be a class dervied from repeatable -

    Additional arguments which are passed as-is to the contructor of the +

    Additional arguments which are passed as-is to the constructor of the given option class. Refer to the class specific constructor documentation for details.

    @@ -7082,7 +6964,7 @@ was neither a string nor a function.
    - Documentation generated by JSDoc 3.6.11 on Tue Nov 15 2022 18:54:12 GMT+0000 (Coordinated Universal Time) + Documentation generated by JSDoc 3.6.11 on Wed Mar 06 2024 05:14:49 GMT+0000 (Coordinated Universal Time)
    diff --git a/jsapi/LuCI.form.HiddenValue.html b/jsapi/LuCI.form.HiddenValue.html index 4c9337021d..4f515bb5b9 100644 --- a/jsapi/LuCI.form.HiddenValue.html +++ b/jsapi/LuCI.form.HiddenValue.html @@ -819,6 +819,10 @@
  • enabled
  • +
  • tooltip
  • + +
  • tooltipicon
  • +
  • datatype
  • default
  • @@ -935,10 +939,6 @@
  • tabbed
  • -
  • tooltip
  • - -
  • tooltipicon
  • -
  • uciconfig
  • @@ -1545,12 +1545,6 @@ Members -
  • addbtntitle
  • - -
  • addremove
  • - -
  • anonymous
  • -
  • extedit
  • max_cols
  • @@ -1565,8 +1559,6 @@
  • sortable
  • -
  • uciconfig
  • -
  • addbtntitle
  • addremove
  • @@ -1577,10 +1569,6 @@
  • tabbed
  • -
  • tooltip
  • - -
  • tooltipicon
  • -
  • uciconfig
  • @@ -1743,10 +1731,6 @@
  • tabbed
  • -
  • tooltip
  • - -
  • tooltipicon
  • -
  • uciconfig
  • parentoption
  • @@ -3564,7 +3548,7 @@ distorted form layout when rendering the option element.

    @@ -4291,7 +4275,7 @@ with.

    If set to true, the underlying ui input widget value is not cleared -from the configuration on unsatisfied depedencies. The default behavior +from the configuration on unsatisfied dependencies. The default behavior is to remove the values of all options whose dependencies are not fulfilled.

    @@ -4654,7 +4638,7 @@ table section elements.

    inherited - append(element) + append(obj) @@ -4701,7 +4685,7 @@ table section elements.

    - element + obj @@ -5128,7 +5112,7 @@ different way.

    inherited - depends(optionname_or_depends, optionvalue|RegExp) + depends(field, value) @@ -5144,9 +5128,9 @@ different way.

    -

    Add a dependency contraint to the option.

    +

    Add a dependency constraint to the option.

    Dependency constraints allow making the presence of option elements -dependant on the current values of certain other options within the +dependent on the current values of certain other options within the same form. An option element with unsatisfied dependencies will be hidden from the view and its current value is omitted when saving.

    Multiple constraints (that is, multiple calls to depends()) are @@ -5155,7 +5139,7 @@ treated as alternatives, forming a logical "or" expression.

    possible to depend on multiple options simultaneously, allowing to form a logical "and" expression.

    Option names may be given in "dot notation" which allows to reference -option elements outside of the current form section. If a name without +option elements outside the current form section. If a name without dot is specified, it refers to an option within the same configuration section. If specified as configname.sectionid.optionname, options anywhere within the same form may be specified.

    @@ -5246,7 +5230,7 @@ is ignored. The recognized tags are:

    - optionname_or_depends + field @@ -5266,20 +5250,23 @@ is ignored. The recognized tags are:

    The name of the option to depend on or an object describing multiple -dependencies which must be satified (a logical "and" expression).

    +dependencies which must be satisfied (a logical "and" expression).

    - optionvalue|RegExp + value string +| + +RegExp @@ -6605,7 +6592,7 @@ implement alternative removal logic, e.g. to retain the original value.

    inherited - stripTags(input){string} + stripTags(s){string} @@ -6652,7 +6639,7 @@ implement alternative removal logic, e.g. to retain the original value.

    - input + s @@ -6733,7 +6720,7 @@ implement alternative removal logic, e.g. to retain the original value.

    - The cleaned input string with HTML removes removed. + The cleaned input string with HTML tags removed. @@ -7127,12 +7114,12 @@ was neither a string nor a function. inherited - value(key, value) + value(key, val)
    @@ -7200,7 +7187,7 @@ custom value.

    - value + val @@ -7439,7 +7426,7 @@ before it is written.

    - Documentation generated by JSDoc 3.6.11 on Tue Nov 15 2022 18:54:12 GMT+0000 (Coordinated Universal Time) + Documentation generated by JSDoc 3.6.11 on Wed Mar 06 2024 05:14:49 GMT+0000 (Coordinated Universal Time)
    diff --git a/jsapi/LuCI.form.JSONMap.html b/jsapi/LuCI.form.JSONMap.html index 5092503ee3..8fda3c76ca 100644 --- a/jsapi/LuCI.form.JSONMap.html +++ b/jsapi/LuCI.form.JSONMap.html @@ -819,6 +819,10 @@
  • enabled
  • +
  • tooltip
  • + +
  • tooltipicon
  • +
  • datatype
  • default
  • @@ -935,10 +939,6 @@
  • tabbed
  • -
  • tooltip
  • - -
  • tooltipicon
  • -
  • uciconfig
  • @@ -1545,12 +1545,6 @@ Members -
  • addbtntitle
  • - -
  • addremove
  • - -
  • anonymous
  • -
  • extedit
  • max_cols
  • @@ -1565,8 +1559,6 @@
  • sortable
  • -
  • uciconfig
  • -
  • addbtntitle
  • addremove
  • @@ -1577,10 +1569,6 @@
  • tabbed
  • -
  • tooltip
  • - -
  • tooltipicon
  • -
  • uciconfig
  • @@ -1743,10 +1731,6 @@
  • tabbed
  • -
  • tooltip
  • - -
  • tooltipicon
  • -
  • uciconfig
  • parentoption
  • @@ -3685,7 +3669,7 @@ corresponding headline element will not be rendered.

    The description text of the form which is usually rendered as text -paragraph below the form title and before the actual form conents. +paragraph below the form title and before the actual form contents. If omitted, the corresponding paragraph element will not be rendered.

    @@ -3819,7 +3803,7 @@ permissions are granted.

    inherited - append(element) + append(obj) @@ -3866,7 +3850,7 @@ permissions are granted.

    - element + obj @@ -4616,7 +4600,7 @@ an error. inherited - lookupOption(name_or_id, section_id, config){Array.<LuCI.form.AbstractValue, string>|null} + lookupOption(name, section_id, config_name){Array.<LuCI.form.AbstractValue, string>|null} @@ -4663,7 +4647,7 @@ an error. - name_or_id + name @@ -4722,7 +4706,7 @@ omitted if a full ID is passed as first argument.

    - config + config_name @@ -4745,7 +4729,7 @@ omitted if a full ID is passed as first argument.

    -

    The name of the UCI configuration the option instance is belonging to. +

    The name of the UCI configuration the option instance belongs to. Defaults to the main UCI configuration of the map if omitted.

    @@ -4854,7 +4838,7 @@ Returns null if the option could not be found.

    Parse the form input values.

    The parse() function recursively walks the form element tree and triggers input value reading and validation for each child element.

    -

    Elements which are hidden due to unsatisified dependencies are skipped.

    +

    Elements which are hidden due to unsatisfied dependencies are skipped.

    @@ -5266,7 +5250,7 @@ additional data manipulation steps before saving the changes.

    If set to true, trigger an alert message to the user in case saving -the form data failes. Otherwise fail silently.

    +the form data failures. Otherwise fail silently.

    @@ -5430,7 +5414,7 @@ documentation of the different section classes for details.

    The section class to use for rendering the configuration section. Note that this value must be the class itself, not a class instance -obtained from calling new. It must also be a class dervied from +obtained from calling new. It must also be a class derived from LuCI.form.AbstractSection.

    @@ -5461,7 +5445,7 @@ obtained from calling new. It must also be a class dervied from repeatable -

    Additional arguments which are passed as-is to the contructor of the +

    Additional arguments which are passed as-is to the constructor of the given section class. Refer to the class specific constructor documentation for details.

    @@ -5547,7 +5531,7 @@ documentation for details.

    inherited - stripTags(input){string} + stripTags(s){string} @@ -5594,7 +5578,7 @@ documentation for details.

    - input + s @@ -5675,7 +5659,7 @@ documentation for details.

    - The cleaned input string with HTML removes removed. + The cleaned input string with HTML tags removed. @@ -5900,7 +5884,7 @@ was neither a string nor a function.
    - Documentation generated by JSDoc 3.6.11 on Tue Nov 15 2022 18:54:13 GMT+0000 (Coordinated Universal Time) + Documentation generated by JSDoc 3.6.11 on Wed Mar 06 2024 05:14:49 GMT+0000 (Coordinated Universal Time)
    diff --git a/jsapi/LuCI.form.ListValue.html b/jsapi/LuCI.form.ListValue.html index 2ddade4798..ba007675b1 100644 --- a/jsapi/LuCI.form.ListValue.html +++ b/jsapi/LuCI.form.ListValue.html @@ -819,6 +819,10 @@
  • enabled
  • +
  • tooltip
  • + +
  • tooltipicon
  • +
  • datatype
  • default
  • @@ -935,10 +939,6 @@
  • tabbed
  • -
  • tooltip
  • - -
  • tooltipicon
  • -
  • uciconfig
  • @@ -1545,12 +1545,6 @@ Members -
  • addbtntitle
  • - -
  • addremove
  • - -
  • anonymous
  • -
  • extedit
  • max_cols
  • @@ -1565,8 +1559,6 @@
  • sortable
  • -
  • uciconfig
  • -
  • addbtntitle
  • addremove
  • @@ -1577,10 +1569,6 @@
  • tabbed
  • -
  • tooltip
  • - -
  • tooltipicon
  • -
  • uciconfig
  • @@ -1743,10 +1731,6 @@
  • tabbed
  • -
  • tooltip
  • - -
  • tooltipicon
  • -
  • uciconfig
  • parentoption
  • @@ -3540,7 +3524,7 @@

    The ListValue class implements a simple static HTML select element -allowing the user to chose a single value from a set of predefined choices. +allowing the user to choose a single value from a set of predefined choices. It builds upon the LuCI.ui.Select widget.

    @@ -3560,7 +3544,7 @@ It builds upon the LuCI.ui.Select @@ -4436,7 +4420,7 @@ with.

    If set to true, the underlying ui input widget value is not cleared -from the configuration on unsatisfied depedencies. The default behavior +from the configuration on unsatisfied dependencies. The default behavior is to remove the values of all options whose dependencies are not fulfilled.

    @@ -4799,7 +4783,7 @@ table section elements.

    inherited - append(element) + append(obj) @@ -4846,7 +4830,7 @@ table section elements.

    - element + obj @@ -5273,7 +5257,7 @@ different way.

    inherited - depends(optionname_or_depends, optionvalue|RegExp) + depends(field, value) @@ -5289,9 +5273,9 @@ different way.

    -

    Add a dependency contraint to the option.

    +

    Add a dependency constraint to the option.

    Dependency constraints allow making the presence of option elements -dependant on the current values of certain other options within the +dependent on the current values of certain other options within the same form. An option element with unsatisfied dependencies will be hidden from the view and its current value is omitted when saving.

    Multiple constraints (that is, multiple calls to depends()) are @@ -5300,7 +5284,7 @@ treated as alternatives, forming a logical "or" expression.

    possible to depend on multiple options simultaneously, allowing to form a logical "and" expression.

    Option names may be given in "dot notation" which allows to reference -option elements outside of the current form section. If a name without +option elements outside the current form section. If a name without dot is specified, it refers to an option within the same configuration section. If specified as configname.sectionid.optionname, options anywhere within the same form may be specified.

    @@ -5391,7 +5375,7 @@ is ignored. The recognized tags are:

    - optionname_or_depends + field @@ -5411,20 +5395,23 @@ is ignored. The recognized tags are:

    The name of the option to depend on or an object describing multiple -dependencies which must be satified (a logical "and" expression).

    +dependencies which must be satisfied (a logical "and" expression).

    - optionvalue|RegExp + value string +| + +RegExp @@ -6750,7 +6737,7 @@ implement alternative removal logic, e.g. to retain the original value.

    inherited - stripTags(input){string} + stripTags(s){string} @@ -6797,7 +6784,7 @@ implement alternative removal logic, e.g. to retain the original value.

    - input + s @@ -6878,7 +6865,7 @@ implement alternative removal logic, e.g. to retain the original value.

    - The cleaned input string with HTML removes removed. + The cleaned input string with HTML tags removed. @@ -7272,12 +7259,12 @@ was neither a string nor a function. inherited - value(key, value) + value(key, val)
    @@ -7345,7 +7332,7 @@ custom value.

    - value + val @@ -7584,7 +7571,7 @@ before it is written.

    - Documentation generated by JSDoc 3.6.11 on Tue Nov 15 2022 18:54:13 GMT+0000 (Coordinated Universal Time) + Documentation generated by JSDoc 3.6.11 on Wed Mar 06 2024 05:14:49 GMT+0000 (Coordinated Universal Time)
    diff --git a/jsapi/LuCI.form.Map.html b/jsapi/LuCI.form.Map.html index 3ab4ae340e..fa87142b97 100644 --- a/jsapi/LuCI.form.Map.html +++ b/jsapi/LuCI.form.Map.html @@ -819,6 +819,10 @@
  • enabled
  • +
  • tooltip
  • + +
  • tooltipicon
  • +
  • datatype
  • default
  • @@ -935,10 +939,6 @@
  • tabbed
  • -
  • tooltip
  • - -
  • tooltipicon
  • -
  • uciconfig
  • @@ -1545,12 +1545,6 @@ Members -
  • addbtntitle
  • - -
  • addremove
  • - -
  • anonymous
  • -
  • extedit
  • max_cols
  • @@ -1565,8 +1559,6 @@
  • sortable
  • -
  • uciconfig
  • -
  • addbtntitle
  • addremove
  • @@ -1577,10 +1569,6 @@
  • tabbed
  • -
  • tooltip
  • - -
  • tooltipicon
  • -
  • uciconfig
  • @@ -1743,10 +1731,6 @@
  • tabbed
  • -
  • tooltip
  • - -
  • tooltipicon
  • -
  • uciconfig
  • parentoption
  • @@ -3540,7 +3524,7 @@

    The Map class represents one complete form. A form usually maps one UCI -configuraton file and is divided into multiple sections containing multiple +configuration file and is divided into multiple sections containing multiple fields each.

    It serves as main entry point into the LuCI.form for typical view code.

    @@ -3684,7 +3668,7 @@ corresponding headline element will not be rendered.

    The description text of the form which is usually rendered as text -paragraph below the form title and before the actual form conents. +paragraph below the form title and before the actual form contents. If omitted, the corresponding paragraph element will not be rendered.

    @@ -3818,7 +3802,7 @@ permissions are granted.

    inherited - append(element) + append(obj) @@ -3865,7 +3849,7 @@ permissions are granted.

    - element + obj @@ -4605,7 +4589,7 @@ an error.

    - lookupOption(name_or_id, section_id, config){Array.<LuCI.form.AbstractValue, string>|null} + lookupOption(name, section_id, config_name){Array.<LuCI.form.AbstractValue, string>|null}

    @@ -4652,7 +4636,7 @@ an error. - name_or_id + name @@ -4711,7 +4695,7 @@ omitted if a full ID is passed as first argument.

    - config + config_name @@ -4734,7 +4718,7 @@ omitted if a full ID is passed as first argument.

    -

    The name of the UCI configuration the option instance is belonging to. +

    The name of the UCI configuration the option instance belongs to. Defaults to the main UCI configuration of the map if omitted.

    @@ -4841,7 +4825,7 @@ Returns null if the option could not be found.

    Parse the form input values.

    The parse() function recursively walks the form element tree and triggers input value reading and validation for each child element.

    -

    Elements which are hidden due to unsatisified dependencies are skipped.

    +

    Elements which are hidden due to unsatisfied dependencies are skipped.

    @@ -5247,7 +5231,7 @@ additional data manipulation steps before saving the changes.

    If set to true, trigger an alert message to the user in case saving -the form data failes. Otherwise fail silently.

    +the form data failures. Otherwise fail silently.

    @@ -5409,7 +5393,7 @@ documentation of the different section classes for details.

    The section class to use for rendering the configuration section. Note that this value must be the class itself, not a class instance -obtained from calling new. It must also be a class dervied from +obtained from calling new. It must also be a class derived from LuCI.form.AbstractSection.

    @@ -5440,7 +5424,7 @@ obtained from calling new. It must also be a class dervied from repeatable -

    Additional arguments which are passed as-is to the contructor of the +

    Additional arguments which are passed as-is to the constructor of the given section class. Refer to the class specific constructor documentation for details.

    @@ -5526,7 +5510,7 @@ documentation for details.

    inherited - stripTags(input){string} + stripTags(s){string} @@ -5573,7 +5557,7 @@ documentation for details.

    - input + s @@ -5654,7 +5638,7 @@ documentation for details.

    - The cleaned input string with HTML removes removed. + The cleaned input string with HTML tags removed. @@ -5879,7 +5863,7 @@ was neither a string nor a function.
    - Documentation generated by JSDoc 3.6.11 on Tue Nov 15 2022 18:54:13 GMT+0000 (Coordinated Universal Time) + Documentation generated by JSDoc 3.6.11 on Wed Mar 06 2024 05:14:49 GMT+0000 (Coordinated Universal Time)
    diff --git a/jsapi/LuCI.form.MultiValue.html b/jsapi/LuCI.form.MultiValue.html index 006c0fb659..cf167b45ba 100644 --- a/jsapi/LuCI.form.MultiValue.html +++ b/jsapi/LuCI.form.MultiValue.html @@ -819,6 +819,10 @@
  • enabled
  • +
  • tooltip
  • + +
  • tooltipicon
  • +
  • datatype
  • default
  • @@ -935,10 +939,6 @@
  • tabbed
  • -
  • tooltip
  • - -
  • tooltipicon
  • -
  • uciconfig
  • @@ -1545,12 +1545,6 @@ Members -
  • addbtntitle
  • - -
  • addremove
  • - -
  • anonymous
  • -
  • extedit
  • max_cols
  • @@ -1565,8 +1559,6 @@
  • sortable
  • -
  • uciconfig
  • -
  • addbtntitle
  • addremove
  • @@ -1577,10 +1569,6 @@
  • tabbed
  • -
  • tooltip
  • - -
  • tooltipicon
  • -
  • uciconfig
  • @@ -1743,10 +1731,6 @@
  • tabbed
  • -
  • tooltip
  • - -
  • tooltipicon
  • -
  • uciconfig
  • parentoption
  • @@ -3560,7 +3544,7 @@ select dropdown element.

    @@ -4387,7 +4371,7 @@ with.

    If set to true, the underlying ui input widget value is not cleared -from the configuration on unsatisfied depedencies. The default behavior +from the configuration on unsatisfied dependencies. The default behavior is to remove the values of all options whose dependencies are not fulfilled.

    @@ -4750,7 +4734,7 @@ table section elements.

    inherited - append(element) + append(obj) @@ -4797,7 +4781,7 @@ table section elements.

    - element + obj @@ -5224,7 +5208,7 @@ different way.

    inherited - depends(optionname_or_depends, optionvalue|RegExp) + depends(field, value) @@ -5240,9 +5224,9 @@ different way.

    -

    Add a dependency contraint to the option.

    +

    Add a dependency constraint to the option.

    Dependency constraints allow making the presence of option elements -dependant on the current values of certain other options within the +dependent on the current values of certain other options within the same form. An option element with unsatisfied dependencies will be hidden from the view and its current value is omitted when saving.

    Multiple constraints (that is, multiple calls to depends()) are @@ -5251,7 +5235,7 @@ treated as alternatives, forming a logical "or" expression.

    possible to depend on multiple options simultaneously, allowing to form a logical "and" expression.

    Option names may be given in "dot notation" which allows to reference -option elements outside of the current form section. If a name without +option elements outside the current form section. If a name without dot is specified, it refers to an option within the same configuration section. If specified as configname.sectionid.optionname, options anywhere within the same form may be specified.

    @@ -5342,7 +5326,7 @@ is ignored. The recognized tags are:

    - optionname_or_depends + field @@ -5362,20 +5346,23 @@ is ignored. The recognized tags are:

    The name of the option to depend on or an object describing multiple -dependencies which must be satified (a logical "and" expression).

    +dependencies which must be satisfied (a logical "and" expression).

    - optionvalue|RegExp + value string +| + +RegExp @@ -6701,7 +6688,7 @@ implement alternative removal logic, e.g. to retain the original value.

    inherited - stripTags(input){string} + stripTags(s){string} @@ -6748,7 +6735,7 @@ implement alternative removal logic, e.g. to retain the original value.

    - input + s @@ -6829,7 +6816,7 @@ implement alternative removal logic, e.g. to retain the original value.

    - The cleaned input string with HTML removes removed. + The cleaned input string with HTML tags removed. @@ -7223,12 +7210,12 @@ was neither a string nor a function. inherited - value(key, value) + value(key, val)
    @@ -7296,7 +7283,7 @@ custom value.

    - value + val @@ -7535,7 +7522,7 @@ before it is written.

    - Documentation generated by JSDoc 3.6.11 on Tue Nov 15 2022 18:54:13 GMT+0000 (Coordinated Universal Time) + Documentation generated by JSDoc 3.6.11 on Wed Mar 06 2024 05:14:49 GMT+0000 (Coordinated Universal Time)
    diff --git a/jsapi/LuCI.form.NamedSection.html b/jsapi/LuCI.form.NamedSection.html index 6a52fedc6b..d6a99515c2 100644 --- a/jsapi/LuCI.form.NamedSection.html +++ b/jsapi/LuCI.form.NamedSection.html @@ -819,6 +819,10 @@
  • enabled
  • +
  • tooltip
  • + +
  • tooltipicon
  • +
  • datatype
  • default
  • @@ -935,10 +939,6 @@
  • tabbed
  • -
  • tooltip
  • - -
  • tooltipicon
  • -
  • uciconfig
  • @@ -1545,12 +1545,6 @@ Members -
  • addbtntitle
  • - -
  • addremove
  • - -
  • anonymous
  • -
  • extedit
  • max_cols
  • @@ -1565,8 +1559,6 @@
  • sortable
  • -
  • uciconfig
  • -
  • addbtntitle
  • addremove
  • @@ -1577,10 +1569,6 @@
  • tabbed
  • -
  • tooltip
  • - -
  • tooltipicon
  • -
  • uciconfig
  • @@ -1743,10 +1731,6 @@
  • tabbed
  • -
  • tooltip
  • - -
  • tooltipicon
  • -
  • uciconfig
  • parentoption
  • @@ -3561,7 +3545,7 @@ specified when constructing the class instance.

    @@ -3972,7 +3956,7 @@ this property will hold a reference to the parent option instance.

    inherited - append(element) + append(obj) @@ -4019,7 +4003,7 @@ this property will hold a reference to the parent option instance.

    - element + obj @@ -4093,7 +4077,7 @@ this property will hold a reference to the parent option instance.

    @@ -5282,7 +5266,7 @@ should be used instead if this form section element uses tabs.

    The option class to use for rendering the configuration option. Note that this value must be the class itself, not a class instance obtained -from calling new. It must also be a class dervied from +from calling new. It must also be a class derived from LuCI.form.AbstractSection.

    @@ -5313,7 +5297,7 @@ from calling new. It must also be a class dervied from repeatable -

    Additional arguments which are passed as-is to the contructor of the +

    Additional arguments which are passed as-is to the constructor of the given option class. Refer to the class specific constructor documentation for details.

    @@ -5447,7 +5431,7 @@ descendent of AbstractValue.

    The parse() function recursively walks the section element tree and triggers input value reading and validation for each encountered child option element.

    -

    Options which are hidden due to unsatisified dependencies are skipped.

    +

    Options which are hidden due to unsatisfied dependencies are skipped.

    @@ -5540,7 +5524,7 @@ not meeting the validation constraints of their respective elements. @@ -5643,7 +5627,7 @@ the form element's markup, including the markup of any child elements. inherited - stripTags(input){string} + stripTags(s){string} @@ -5690,7 +5674,7 @@ the form element's markup, including the markup of any child elements. - input + s @@ -5771,7 +5755,7 @@ the form element's markup, including the markup of any child elements. - The cleaned input string with HTML removes removed. + The cleaned input string with HTML tags removed. @@ -5975,7 +5959,7 @@ contents. If omitted, no description will be rendered.

    -

    Throws an exeption if a tab with the same name already exists.

    +

    Throws an exception if a tab with the same name already exists.

    @@ -6009,7 +5993,7 @@ contents. If omitted, no description will be rendered.

    inherited - taboption(tabname, optionclass, classargs){LuCI.form.AbstractValue} + taboption(tabName, optionclass, classargs){LuCI.form.AbstractValue} @@ -6056,7 +6040,7 @@ contents. If omitted, no description will be rendered.

    - tabname + tabName @@ -6107,7 +6091,7 @@ contents. If omitted, no description will be rendered.

    The option class to use for rendering the configuration option. Note that this value must be the class itself, not a class instance obtained -from calling new. It must also be a class dervied from +from calling new. It must also be a class derived from LuCI.form.AbstractSection.

    @@ -6138,7 +6122,7 @@ from calling new. It must also be a class dervied from repeatable -

    Additional arguments which are passed as-is to the contructor of the +

    Additional arguments which are passed as-is to the constructor of the given option class. Refer to the class specific constructor documentation for details.

    @@ -6484,7 +6468,7 @@ was neither a string nor a function.
    - Documentation generated by JSDoc 3.6.11 on Tue Nov 15 2022 18:54:13 GMT+0000 (Coordinated Universal Time) + Documentation generated by JSDoc 3.6.11 on Wed Mar 06 2024 05:14:49 GMT+0000 (Coordinated Universal Time)
    diff --git a/jsapi/LuCI.form.SectionValue.html b/jsapi/LuCI.form.SectionValue.html index 5e5d1821a8..371ce01c3e 100644 --- a/jsapi/LuCI.form.SectionValue.html +++ b/jsapi/LuCI.form.SectionValue.html @@ -819,6 +819,10 @@
  • enabled
  • +
  • tooltip
  • + +
  • tooltipicon
  • +
  • datatype
  • default
  • @@ -935,10 +939,6 @@
  • tabbed
  • -
  • tooltip
  • - -
  • tooltipicon
  • -
  • uciconfig
  • @@ -1545,12 +1545,6 @@ Members -
  • addbtntitle
  • - -
  • addremove
  • - -
  • anonymous
  • -
  • extedit
  • max_cols
  • @@ -1565,8 +1559,6 @@
  • sortable
  • -
  • uciconfig
  • -
  • addbtntitle
  • addremove
  • @@ -1577,10 +1569,6 @@
  • tabbed
  • -
  • tooltip
  • - -
  • tooltipicon
  • -
  • uciconfig
  • @@ -1743,10 +1731,6 @@
  • tabbed
  • -
  • tooltip
  • - -
  • tooltipicon
  • -
  • uciconfig
  • parentoption
  • @@ -3559,7 +3543,7 @@ element container, allowing to nest form sections into other sections.

    @@ -4339,7 +4323,7 @@ with.

    If set to true, the underlying ui input widget value is not cleared -from the configuration on unsatisfied depedencies. The default behavior +from the configuration on unsatisfied dependencies. The default behavior is to remove the values of all options whose dependencies are not fulfilled.

    @@ -4702,7 +4686,7 @@ table section elements.

    inherited - append(element) + append(obj) @@ -4749,7 +4733,7 @@ table section elements.

    - element + obj @@ -5003,7 +4987,7 @@ within the given specific section.

    @@ -5173,7 +5157,7 @@ its cfgvalue() implementation will always return null. inherited - depends(optionname_or_depends, optionvalue|RegExp) + depends(field, value) @@ -5189,9 +5173,9 @@ its cfgvalue() implementation will always return null.
    -

    Add a dependency contraint to the option.

    +

    Add a dependency constraint to the option.

    Dependency constraints allow making the presence of option elements -dependant on the current values of certain other options within the +dependent on the current values of certain other options within the same form. An option element with unsatisfied dependencies will be hidden from the view and its current value is omitted when saving.

    Multiple constraints (that is, multiple calls to depends()) are @@ -5200,7 +5184,7 @@ treated as alternatives, forming a logical "or" expression.

    possible to depend on multiple options simultaneously, allowing to form a logical "and" expression.

    Option names may be given in "dot notation" which allows to reference -option elements outside of the current form section. If a name without +option elements outside the current form section. If a name without dot is specified, it refers to an option within the same configuration section. If specified as configname.sectionid.optionname, options anywhere within the same form may be specified.

    @@ -5291,7 +5275,7 @@ is ignored. The recognized tags are:

    - optionname_or_depends + field @@ -5311,20 +5295,23 @@ is ignored. The recognized tags are:

    The name of the option to depend on or an object describing multiple -dependencies which must be satified (a logical "and" expression).

    +dependencies which must be satisfied (a logical "and" expression).

    - optionvalue|RegExp + value string +| + +RegExp @@ -5396,7 +5383,7 @@ argument, this parameter is ignored.

    @@ -6194,7 +6181,7 @@ returns false. @@ -6377,7 +6364,7 @@ so it may return promises if overridden by user code. @@ -6528,7 +6515,7 @@ validation constraints. @@ -6642,7 +6629,7 @@ its remove() implementation is a no-op.

    inherited - stripTags(input){string} + stripTags(s){string} @@ -6689,7 +6676,7 @@ its remove() implementation is a no-op.

    - input + s @@ -6770,7 +6757,7 @@ its remove() implementation is a no-op.

    - The cleaned input string with HTML removes removed. + The cleaned input string with HTML tags removed. @@ -7164,12 +7151,12 @@ was neither a string nor a function. inherited - value(key, value) + value(key, val) @@ -7235,7 +7222,7 @@ its value() implementation is a no-op.

    - value + val @@ -7315,7 +7302,7 @@ or a plain text string. If omitted, the key value is used as captio @@ -7466,7 +7453,7 @@ its write() implementation is a no-op.

    - Documentation generated by JSDoc 3.6.11 on Tue Nov 15 2022 18:54:13 GMT+0000 (Coordinated Universal Time) + Documentation generated by JSDoc 3.6.11 on Wed Mar 06 2024 05:14:49 GMT+0000 (Coordinated Universal Time)
    diff --git a/jsapi/LuCI.form.TableSection.html b/jsapi/LuCI.form.TableSection.html index 405492e50f..4f351a2b12 100644 --- a/jsapi/LuCI.form.TableSection.html +++ b/jsapi/LuCI.form.TableSection.html @@ -819,6 +819,10 @@
  • enabled
  • +
  • tooltip
  • + +
  • tooltipicon
  • +
  • datatype
  • default
  • @@ -935,10 +939,6 @@
  • tabbed
  • -
  • tooltip
  • - -
  • tooltipicon
  • -
  • uciconfig
  • @@ -1545,12 +1545,6 @@ Members -
  • addbtntitle
  • - -
  • addremove
  • - -
  • anonymous
  • -
  • extedit
  • max_cols
  • @@ -1565,8 +1559,6 @@
  • sortable
  • -
  • uciconfig
  • -
  • addbtntitle
  • addremove
  • @@ -1577,10 +1569,6 @@
  • tabbed
  • -
  • tooltip
  • - -
  • tooltipicon
  • -
  • uciconfig
  • @@ -1743,10 +1731,6 @@
  • tabbed
  • -
  • tooltip
  • - -
  • tooltipicon
  • -
  • uciconfig
  • parentoption
  • @@ -3786,159 +3770,6 @@ by section().

    -
    -
    -

    addbtntitlestring function

    -
    - - -
    -
    - -
    -

    Override the caption used for the section add button at the bottom of -the section form element. If set to a string, it will be used as-is, -if set to a function, the function will be invoked and its return value -is used as caption, after converting it to a string. If this property -is not set, the default is Add.

    -
    - - - -
    - - - - - - - - - - - - - - - -
    Default Value:
    -
    • null
    - - - - - - - -
    - - - -
    - - - -
    -
    -

    addremoveboolean

    -
    - - -
    -
    - -
    -

    If set to true, the user may add or remove instances from the form -section widget, otherwise only preexisting sections may be edited. -The default is false.

    -
    - - - -
    - - - - - - - - - - - - - - - -
    Default Value:
    -
    • false
    - - - - - - - -
    - - - -
    - - - -
    -
    -

    anonymousboolean

    -
    - - -
    -
    - -
    -

    If set to true, mapped section instances are treated as anonymous -UCI sections, which means that section instance elements will be -rendered without title element and that no name is required when adding -new sections. The default is false.

    -
    - - - -
    - - - - - - - - - - - - - - - -
    Default Value:
    -
    • false
    - - - - - - - -
    - - - -
    - - -

    exteditstring function

    @@ -4300,57 +4131,6 @@ element.

    -
    - - - -
    - - - -
    -
    -

    uciconfigstring

    -
    - - -
    -
    - -
    -

    Override the UCI configuration name to read the section IDs from. By -default, the configuration name is inherited from the parent Map. -By setting this property, a deviating configuration may be specified. -The default is null, means inheriting from the parent form.

    -
    - - - -
    - - - - - - - - - - - - - - - -
    Default Value:
    -
    • null
    - - - - - - -
    @@ -4603,108 +4383,6 @@ among instances. The default is false.

    - - - - -
    - - - -
    -
    -

    tooltipstring function

    -
    - - -
    -
    - -
    -

    Set a tooltip for the flag option.

    -

    If set to a string, it will be used as-is as a tooltip.

    -

    If set to a function, the function will be invoked and the return -value will be shown as a tooltip. If the return value of the function -is null no tooltip will be set.

    -
    - - - -
    - - - - - - - - - - - - - - - -
    Default Value:
    -
    • null
    - - - - - - - -
    - - - -
    - - - -
    -
    -

    tooltipiconstring

    -
    - - -
    -
    - -
    -

    Set a tooltip icon.

    -

    If set, this icon will be shown for the default one. -This could also be a png icon from the resources directory.

    -
    - - - -
    - - - - - - - - - - - - - - - -
    Default Value:
    -
    • 'ℹ️';
    - - - - - - -
    @@ -4779,7 +4457,7 @@ The default is null, means inheriting from the parent form.

    @@ -4957,7 +4635,7 @@ e.g. query additional data or to inject further option elements.

    Return values of this function are ignored but if a promise is returned, it is run to completion before the rendering is continued, allowing -custom logic to perform asynchroneous work before the modal dialog +custom logic to perform asynchronous work before the modal dialog is shown. @@ -4977,7 +4655,7 @@ is shown. inherited - append(element) + append(obj) @@ -5024,7 +4702,7 @@ is shown. - element + obj @@ -6185,7 +5863,7 @@ should be used instead if this form section element uses tabs.

    The option class to use for rendering the configuration option. Note that this value must be the class itself, not a class instance obtained -from calling new. It must also be a class dervied from +from calling new. It must also be a class derived from LuCI.form.AbstractSection.

    @@ -6216,7 +5894,7 @@ from calling new. It must also be a class dervied from repeatable -

    Additional arguments which are passed as-is to the contructor of the +

    Additional arguments which are passed as-is to the constructor of the given option class. Refer to the class specific constructor documentation for details.

    @@ -6350,7 +6028,7 @@ descendent of AbstractValue.

    The parse() function recursively walks the section element tree and triggers input value reading and validation for each encountered child option element.

    -

    Options which are hidden due to unsatisified dependencies are skipped.

    +

    Options which are hidden due to unsatisfied dependencies are skipped.

    @@ -6438,7 +6116,7 @@ not meeting the validation constraints of their respective elements. inherited - stripTags(input){string} + stripTags(s){string} @@ -6485,7 +6163,7 @@ not meeting the validation constraints of their respective elements. - input + s @@ -6566,7 +6244,7 @@ not meeting the validation constraints of their respective elements. - The cleaned input string with HTML removes removed. + The cleaned input string with HTML tags removed. @@ -6590,7 +6268,7 @@ not meeting the validation constraints of their respective elements. @@ -6783,7 +6461,7 @@ contents. If omitted, no description will be rendered.

    inherited - taboption(tabname, optionclass, classargs){LuCI.form.AbstractValue} + taboption(tabName, optionclass, classargs){LuCI.form.AbstractValue} @@ -6830,7 +6508,7 @@ contents. If omitted, no description will be rendered.

    - tabname + tabName @@ -6881,7 +6559,7 @@ contents. If omitted, no description will be rendered.

    The option class to use for rendering the configuration option. Note that this value must be the class itself, not a class instance obtained -from calling new. It must also be a class dervied from +from calling new. It must also be a class derived from LuCI.form.AbstractSection.

    @@ -6912,7 +6590,7 @@ from calling new. It must also be a class dervied from repeatable -

    Additional arguments which are passed as-is to the contructor of the +

    Additional arguments which are passed as-is to the constructor of the given option class. Refer to the class specific constructor documentation for details.

    @@ -7258,7 +6936,7 @@ was neither a string nor a function.
    - Documentation generated by JSDoc 3.6.11 on Tue Nov 15 2022 18:54:13 GMT+0000 (Coordinated Universal Time) + Documentation generated by JSDoc 3.6.11 on Wed Mar 06 2024 05:14:49 GMT+0000 (Coordinated Universal Time)
    diff --git a/jsapi/LuCI.form.TextValue.html b/jsapi/LuCI.form.TextValue.html index 20e42472e5..d5229c6bdc 100644 --- a/jsapi/LuCI.form.TextValue.html +++ b/jsapi/LuCI.form.TextValue.html @@ -819,6 +819,10 @@
  • enabled
  • +
  • tooltip
  • + +
  • tooltipicon
  • +
  • datatype
  • default
  • @@ -935,10 +939,6 @@
  • tabbed
  • -
  • tooltip
  • - -
  • tooltipicon
  • -
  • uciconfig
  • @@ -1545,12 +1545,6 @@ Members -
  • addbtntitle
  • - -
  • addremove
  • - -
  • anonymous
  • -
  • extedit
  • max_cols
  • @@ -1565,8 +1559,6 @@
  • sortable
  • -
  • uciconfig
  • -
  • addbtntitle
  • addremove
  • @@ -1577,10 +1569,6 @@
  • tabbed
  • -
  • tooltip
  • - -
  • tooltipicon
  • -
  • uciconfig
  • @@ -1743,10 +1731,6 @@
  • tabbed
  • -
  • tooltip
  • - -
  • tooltipicon
  • -
  • uciconfig
  • parentoption
  • @@ -3559,7 +3543,7 @@ @@ -4482,7 +4466,7 @@ with.

    If set to true, the underlying ui input widget value is not cleared -from the configuration on unsatisfied depedencies. The default behavior +from the configuration on unsatisfied dependencies. The default behavior is to remove the values of all options whose dependencies are not fulfilled.

    @@ -4845,7 +4829,7 @@ table section elements.

    inherited - append(element) + append(obj) @@ -4892,7 +4876,7 @@ table section elements.

    - element + obj @@ -5319,7 +5303,7 @@ different way.

    inherited - depends(optionname_or_depends, optionvalue|RegExp) + depends(field, value) @@ -5335,9 +5319,9 @@ different way.

    -

    Add a dependency contraint to the option.

    +

    Add a dependency constraint to the option.

    Dependency constraints allow making the presence of option elements -dependant on the current values of certain other options within the +dependent on the current values of certain other options within the same form. An option element with unsatisfied dependencies will be hidden from the view and its current value is omitted when saving.

    Multiple constraints (that is, multiple calls to depends()) are @@ -5346,7 +5330,7 @@ treated as alternatives, forming a logical "or" expression.

    possible to depend on multiple options simultaneously, allowing to form a logical "and" expression.

    Option names may be given in "dot notation" which allows to reference -option elements outside of the current form section. If a name without +option elements outside the current form section. If a name without dot is specified, it refers to an option within the same configuration section. If specified as configname.sectionid.optionname, options anywhere within the same form may be specified.

    @@ -5437,7 +5421,7 @@ is ignored. The recognized tags are:

    - optionname_or_depends + field @@ -5457,20 +5441,23 @@ is ignored. The recognized tags are:

    The name of the option to depend on or an object describing multiple -dependencies which must be satified (a logical "and" expression).

    +dependencies which must be satisfied (a logical "and" expression).

    - optionvalue|RegExp + value string +| + +RegExp @@ -6796,7 +6783,7 @@ implement alternative removal logic, e.g. to retain the original value.

    inherited - stripTags(input){string} + stripTags(s){string} @@ -6843,7 +6830,7 @@ implement alternative removal logic, e.g. to retain the original value.

    - input + s @@ -6924,7 +6911,7 @@ implement alternative removal logic, e.g. to retain the original value.

    - The cleaned input string with HTML removes removed. + The cleaned input string with HTML tags removed. @@ -7482,7 +7469,7 @@ before it is written.

    - Documentation generated by JSDoc 3.6.11 on Tue Nov 15 2022 18:54:13 GMT+0000 (Coordinated Universal Time) + Documentation generated by JSDoc 3.6.11 on Wed Mar 06 2024 05:14:49 GMT+0000 (Coordinated Universal Time)
    diff --git a/jsapi/LuCI.form.TypedSection.html b/jsapi/LuCI.form.TypedSection.html index da8c1d827d..4f765857ac 100644 --- a/jsapi/LuCI.form.TypedSection.html +++ b/jsapi/LuCI.form.TypedSection.html @@ -819,6 +819,10 @@
  • enabled
  • +
  • tooltip
  • + +
  • tooltipicon
  • +
  • datatype
  • default
  • @@ -935,10 +939,6 @@
  • tabbed
  • -
  • tooltip
  • - -
  • tooltipicon
  • -
  • uciconfig
  • @@ -1545,12 +1545,6 @@ Members -
  • addbtntitle
  • - -
  • addremove
  • - -
  • anonymous
  • -
  • extedit
  • max_cols
  • @@ -1565,8 +1559,6 @@
  • sortable
  • -
  • uciconfig
  • -
  • addbtntitle
  • addremove
  • @@ -1577,10 +1569,6 @@
  • tabbed
  • -
  • tooltip
  • - -
  • tooltipicon
  • -
  • uciconfig
  • @@ -1743,10 +1731,6 @@
  • tabbed
  • -
  • tooltip
  • - -
  • tooltipicon
  • -
  • uciconfig
  • parentoption
  • @@ -3982,108 +3966,6 @@ among instances. The default is false.

    - - - - -
    - - - -
    -
    -

    tooltipstring function

    -
    - - -
    -
    - -
    -

    Set a tooltip for the flag option.

    -

    If set to a string, it will be used as-is as a tooltip.

    -

    If set to a function, the function will be invoked and the return -value will be shown as a tooltip. If the return value of the function -is null no tooltip will be set.

    -
    - - - -
    - - - - - - - - - - - - - - - -
    Default Value:
    -
    • null
    - - - - - - - -
    - - - -
    - - - -
    -
    -

    tooltipiconstring

    -
    - - -
    -
    - -
    -

    Set a tooltip icon.

    -

    If set, this icon will be shown for the default one. -This could also be a png icon from the resources directory.

    -
    - - - -
    - - - - - - - - - - - - - - - -
    Default Value:
    -
    • 'ℹ️';
    - - - - - - -
    @@ -4203,7 +4085,7 @@ this property will hold a reference to the parent option instance.

    inherited - append(element) + append(obj) @@ -4250,7 +4132,7 @@ this property will hold a reference to the parent option instance.

    - element + obj @@ -5541,7 +5423,7 @@ should be used instead if this form section element uses tabs.

    The option class to use for rendering the configuration option. Note that this value must be the class itself, not a class instance obtained -from calling new. It must also be a class dervied from +from calling new. It must also be a class derived from LuCI.form.AbstractSection.

    @@ -5572,7 +5454,7 @@ from calling new. It must also be a class dervied from repeatable -

    Additional arguments which are passed as-is to the contructor of the +

    Additional arguments which are passed as-is to the constructor of the given option class. Refer to the class specific constructor documentation for details.

    @@ -5706,7 +5588,7 @@ descendent of AbstractValue.

    The parse() function recursively walks the section element tree and triggers input value reading and validation for each encountered child option element.

    -

    Options which are hidden due to unsatisified dependencies are skipped.

    +

    Options which are hidden due to unsatisfied dependencies are skipped.

    @@ -5902,7 +5784,7 @@ the form element's markup, including the markup of any child elements. inherited - stripTags(input){string} + stripTags(s){string} @@ -5949,7 +5831,7 @@ the form element's markup, including the markup of any child elements. - input + s @@ -6030,7 +5912,7 @@ the form element's markup, including the markup of any child elements. - The cleaned input string with HTML removes removed. + The cleaned input string with HTML tags removed. @@ -6234,7 +6116,7 @@ contents. If omitted, no description will be rendered.

    -

    Throws an exeption if a tab with the same name already exists.

    +

    Throws an exception if a tab with the same name already exists.

    @@ -6268,7 +6150,7 @@ contents. If omitted, no description will be rendered.

    inherited - taboption(tabname, optionclass, classargs){LuCI.form.AbstractValue} + taboption(tabName, optionclass, classargs){LuCI.form.AbstractValue} @@ -6315,7 +6197,7 @@ contents. If omitted, no description will be rendered.

    - tabname + tabName @@ -6366,7 +6248,7 @@ contents. If omitted, no description will be rendered.

    The option class to use for rendering the configuration option. Note that this value must be the class itself, not a class instance obtained -from calling new. It must also be a class dervied from +from calling new. It must also be a class derived from LuCI.form.AbstractSection.

    @@ -6397,7 +6279,7 @@ from calling new. It must also be a class dervied from repeatable -

    Additional arguments which are passed as-is to the contructor of the +

    Additional arguments which are passed as-is to the constructor of the given option class. Refer to the class specific constructor documentation for details.

    @@ -6743,7 +6625,7 @@ was neither a string nor a function.
    - Documentation generated by JSDoc 3.6.11 on Tue Nov 15 2022 18:54:13 GMT+0000 (Coordinated Universal Time) + Documentation generated by JSDoc 3.6.11 on Wed Mar 06 2024 05:14:49 GMT+0000 (Coordinated Universal Time)
    diff --git a/jsapi/LuCI.form.Value.html b/jsapi/LuCI.form.Value.html index e89c7be08d..f49be8b633 100644 --- a/jsapi/LuCI.form.Value.html +++ b/jsapi/LuCI.form.Value.html @@ -819,6 +819,10 @@
  • enabled
  • +
  • tooltip
  • + +
  • tooltipicon
  • +
  • datatype
  • default
  • @@ -935,10 +939,6 @@
  • tabbed
  • -
  • tooltip
  • - -
  • tooltipicon
  • -
  • uciconfig
  • @@ -1545,12 +1545,6 @@ Members -
  • addbtntitle
  • - -
  • addremove
  • - -
  • anonymous
  • -
  • extedit
  • max_cols
  • @@ -1565,8 +1559,6 @@
  • sortable
  • -
  • uciconfig
  • -
  • addbtntitle
  • addremove
  • @@ -1577,10 +1569,6 @@
  • tabbed
  • -
  • tooltip
  • - -
  • tooltipicon
  • -
  • uciconfig
  • @@ -1743,10 +1731,6 @@
  • tabbed
  • -
  • tooltip
  • - -
  • tooltipicon
  • -
  • uciconfig
  • parentoption
  • @@ -3560,7 +3544,7 @@ @@ -4287,7 +4271,7 @@ with.

    If set to true, the underlying ui input widget value is not cleared -from the configuration on unsatisfied depedencies. The default behavior +from the configuration on unsatisfied dependencies. The default behavior is to remove the values of all options whose dependencies are not fulfilled.

    @@ -4650,7 +4634,7 @@ table section elements.

    inherited - append(element) + append(obj) @@ -4697,7 +4681,7 @@ table section elements.

    - element + obj @@ -5124,7 +5108,7 @@ different way.

    inherited - depends(optionname_or_depends, optionvalue|RegExp) + depends(field, value) @@ -5140,9 +5124,9 @@ different way.

    -

    Add a dependency contraint to the option.

    +

    Add a dependency constraint to the option.

    Dependency constraints allow making the presence of option elements -dependant on the current values of certain other options within the +dependent on the current values of certain other options within the same form. An option element with unsatisfied dependencies will be hidden from the view and its current value is omitted when saving.

    Multiple constraints (that is, multiple calls to depends()) are @@ -5151,7 +5135,7 @@ treated as alternatives, forming a logical "or" expression.

    possible to depend on multiple options simultaneously, allowing to form a logical "and" expression.

    Option names may be given in "dot notation" which allows to reference -option elements outside of the current form section. If a name without +option elements outside the current form section. If a name without dot is specified, it refers to an option within the same configuration section. If specified as configname.sectionid.optionname, options anywhere within the same form may be specified.

    @@ -5242,7 +5226,7 @@ is ignored. The recognized tags are:

    - optionname_or_depends + field @@ -5262,20 +5246,23 @@ is ignored. The recognized tags are:

    The name of the option to depend on or an object describing multiple -dependencies which must be satified (a logical "and" expression).

    +dependencies which must be satisfied (a logical "and" expression).

    - optionvalue|RegExp + value string +| + +RegExp @@ -6606,7 +6593,7 @@ implement alternative removal logic, e.g. to retain the original value.

    @@ -6709,7 +6696,7 @@ the form element's markup, including the markup of any child elements. inherited - stripTags(input){string} + stripTags(s){string} @@ -6756,7 +6743,7 @@ the form element's markup, including the markup of any child elements. - input + s @@ -6837,7 +6824,7 @@ the form element's markup, including the markup of any child elements. - The cleaned input string with HTML removes removed. + The cleaned input string with HTML tags removed. @@ -7229,12 +7216,12 @@ was neither a string nor a function.

    - value(key, value) + value(key, val)

    @@ -7302,7 +7289,7 @@ custom value.

    - value + val @@ -7541,7 +7528,7 @@ before it is written.

    - Documentation generated by JSDoc 3.6.11 on Tue Nov 15 2022 18:54:13 GMT+0000 (Coordinated Universal Time) + Documentation generated by JSDoc 3.6.11 on Wed Mar 06 2024 05:14:49 GMT+0000 (Coordinated Universal Time)
    diff --git a/jsapi/LuCI.form.html b/jsapi/LuCI.form.html index 244f93d5ec..4c004d9e40 100644 --- a/jsapi/LuCI.form.html +++ b/jsapi/LuCI.form.html @@ -819,6 +819,10 @@
  • enabled
  • +
  • tooltip
  • + +
  • tooltipicon
  • +
  • datatype
  • default
  • @@ -935,10 +939,6 @@
  • tabbed
  • -
  • tooltip
  • - -
  • tooltipicon
  • -
  • uciconfig
  • @@ -1545,12 +1545,6 @@ Members -
  • addbtntitle
  • - -
  • addremove
  • - -
  • anonymous
  • -
  • extedit
  • max_cols
  • @@ -1565,8 +1559,6 @@
  • sortable
  • -
  • uciconfig
  • -
  • addbtntitle
  • addremove
  • @@ -1577,10 +1569,6 @@
  • tabbed
  • -
  • tooltip
  • - -
  • tooltipicon
  • -
  • uciconfig
  • @@ -1743,10 +1731,6 @@
  • tabbed
  • -
  • tooltip
  • - -
  • tooltipicon
  • -
  • uciconfig
  • parentoption
  • @@ -3539,7 +3523,7 @@ form -

    The LuCI form class provides high level abstractions for creating creating +

    The LuCI form class provides high level abstractions for creating UCI- or JSON backed configurations forms.

    To import the class in views, use 'require form', to import it in external JavaScript, use L.require("form").then(...).

    @@ -3589,7 +3573,7 @@ m.render().then(function(node) {
    @@ -3742,7 +3726,7 @@ m.render().then(function(node) {
    - Documentation generated by JSDoc 3.6.11 on Tue Nov 15 2022 18:54:12 GMT+0000 (Coordinated Universal Time) + Documentation generated by JSDoc 3.6.11 on Wed Mar 06 2024 05:14:49 GMT+0000 (Coordinated Universal Time)
    diff --git a/jsapi/LuCI.fs.html b/jsapi/LuCI.fs.html index fc379f286a..9c08c4b90a 100644 --- a/jsapi/LuCI.fs.html +++ b/jsapi/LuCI.fs.html @@ -819,6 +819,10 @@
  • enabled
  • +
  • tooltip
  • + +
  • tooltipicon
  • +
  • datatype
  • default
  • @@ -935,10 +939,6 @@
  • tabbed
  • -
  • tooltip
  • - -
  • tooltipicon
  • -
  • uciconfig
  • @@ -1545,12 +1545,6 @@ Members -
  • addbtntitle
  • - -
  • addremove
  • - -
  • anonymous
  • -
  • extedit
  • max_cols
  • @@ -1565,8 +1559,6 @@
  • sortable
  • -
  • uciconfig
  • -
  • addbtntitle
  • addremove
  • @@ -1577,10 +1569,6 @@
  • tabbed
  • -
  • tooltip
  • - -
  • tooltipicon
  • -
  • uciconfig
  • @@ -1743,10 +1731,6 @@
  • tabbed
  • -
  • tooltip
  • - -
  • tooltipicon
  • -
  • uciconfig
  • parentoption
  • @@ -3989,7 +3973,13 @@ the ubus based exec call.

    -string +"blob" +| + +"text" +| + +"json" @@ -4672,7 +4662,13 @@ the ubus based read call.

    -string +"blob" +| + +"text" +| + +"json" @@ -4781,7 +4777,7 @@ reason.

    - remove(The){Promise.<number>} + remove(path){Promise.<number>}

    @@ -4828,7 +4824,7 @@ reason. - The + path @@ -4844,7 +4840,7 @@ reason. -

    file path to remove.

    +

    The file path to remove.

    @@ -5919,7 +5915,7 @@ the failure reason.
    - Documentation generated by JSDoc 3.6.11 on Tue Nov 15 2022 18:54:13 GMT+0000 (Coordinated Universal Time) + Documentation generated by JSDoc 3.6.11 on Wed Mar 06 2024 05:14:49 GMT+0000 (Coordinated Universal Time)
    diff --git a/jsapi/LuCI.headers.html b/jsapi/LuCI.headers.html index 8916569e7d..1c83b538e7 100644 --- a/jsapi/LuCI.headers.html +++ b/jsapi/LuCI.headers.html @@ -819,6 +819,10 @@
  • enabled
  • +
  • tooltip
  • + +
  • tooltipicon
  • +
  • datatype
  • default
  • @@ -935,10 +939,6 @@
  • tabbed
  • -
  • tooltip
  • - -
  • tooltipicon
  • -
  • uciconfig
  • @@ -1545,12 +1545,6 @@ Members -
  • addbtntitle
  • - -
  • addremove
  • - -
  • anonymous
  • -
  • extedit
  • max_cols
  • @@ -1565,8 +1559,6 @@
  • sortable
  • -
  • uciconfig
  • -
  • addbtntitle
  • addremove
  • @@ -1577,10 +1569,6 @@
  • tabbed
  • -
  • tooltip
  • - -
  • tooltipicon
  • -
  • uciconfig
  • @@ -1743,10 +1731,6 @@
  • tabbed
  • -
  • tooltip
  • - -
  • tooltipicon
  • -
  • uciconfig
  • parentoption
  • @@ -3947,7 +3931,7 @@ Note: Header-Names are case-insensitive.

    - Documentation generated by JSDoc 3.6.11 on Tue Nov 15 2022 18:54:13 GMT+0000 (Coordinated Universal Time) + Documentation generated by JSDoc 3.6.11 on Wed Mar 06 2024 05:14:49 GMT+0000 (Coordinated Universal Time)
    diff --git a/jsapi/LuCI.html b/jsapi/LuCI.html index 17ae45df7b..3ff2c3e5b1 100644 --- a/jsapi/LuCI.html +++ b/jsapi/LuCI.html @@ -819,6 +819,10 @@
  • enabled
  • +
  • tooltip
  • + +
  • tooltipicon
  • +
  • datatype
  • default
  • @@ -935,10 +939,6 @@
  • tabbed
  • -
  • tooltip
  • - -
  • tooltipicon
  • -
  • uciconfig
  • @@ -1545,12 +1545,6 @@ Members -
  • addbtntitle
  • - -
  • addremove
  • - -
  • anonymous
  • -
  • extedit
  • max_cols
  • @@ -1565,8 +1559,6 @@
  • sortable
  • -
  • uciconfig
  • -
  • addbtntitle
  • addremove
  • @@ -1577,10 +1569,6 @@
  • tabbed
  • -
  • tooltip
  • - -
  • tooltipicon
  • -
  • uciconfig
  • @@ -1743,10 +1731,6 @@
  • tabbed
  • -
  • tooltip
  • - -
  • tooltipicon
  • -
  • uciconfig
  • parentoption
  • @@ -4299,7 +4283,7 @@ as parameters.

    A wrapper around raise() which also renders -the error either as modal overlay when ui.js is already loaed +the error either as modal overlay when ui.js is already loaded or directly into the view body.

    @@ -5561,7 +5545,7 @@ not null, else returns false.
    -

    Construct an URL path relative to the media resource path of the +

    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 only contain the characters a-z, A-Z, 0-9, _, ., %, ,, ;, and - as well @@ -5619,7 +5603,7 @@ as / for the path separator.

    -

    An array of parts to join into an URL path. Parts may contain +

    An array of parts to join into a URL path. Parts may contain slashes and any of the other characters mentioned above.

    @@ -5806,7 +5790,7 @@ omitted, it defaults to an empty string.

    -

    An array of parts to join into an URL path. Parts may contain +

    An array of parts to join into a URL path. Parts may contain slashes and any of the other characters mentioned above.

    @@ -6922,7 +6906,7 @@ class instance.

    -

    Returns a promise resolving with either the given value or or with +

    Returns a promise resolving with either the given value or with the given default in case the input value is a rejecting promise.

    @@ -7093,7 +7077,7 @@ to the given default value on error.
    -

    Construct an URL path relative to the global static resource path +

    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 only contain the characters a-z, A-Z, 0-9, _, ., %, ,, ;, and - as well @@ -7151,7 +7135,7 @@ as / for the path separator.

    -

    An array of parts to join into an URL path. Parts may contain +

    An array of parts to join into a URL path. Parts may contain slashes and any of the other characters mentioned above.

    @@ -7578,6 +7562,9 @@ not an object, the function will return an empty array.

    string +| + +null @@ -7610,7 +7597,10 @@ some other key pointing to a value within the nested values.

    -string +"addr" +| + +"num" @@ -7627,7 +7617,7 @@ some other key pointing to a value within the nested values.

    -

    May be either addr or num to override the natural +

    Can be either addr or num to override the natural lexicographic sorting with a sorting suitable for IP/MAC style addresses or numeric values respectively.

    @@ -8025,7 +8015,7 @@ space and returned as array.

    -

    Construct an URL pathrelative to the script path of the server +

    Construct a URL with path relative to the script path of the server side LuCI application (usually /cgi-bin/luci).

    The resulting URL is guaranteed to only contain the characters a-z, A-Z, 0-9, _, ., %, ,, ;, and - as well @@ -8083,7 +8073,7 @@ as / for the path separator.

    -

    An array of parts to join into an URL path. Parts may contain +

    An array of parts to join into a URL path. Parts may contain slashes and any of the other characters mentioned above.

    @@ -8348,7 +8338,7 @@ else null.

    - Documentation generated by JSDoc 3.6.11 on Tue Nov 15 2022 18:54:12 GMT+0000 (Coordinated Universal Time) + Documentation generated by JSDoc 3.6.11 on Wed Mar 06 2024 05:14:49 GMT+0000 (Coordinated Universal Time)
    diff --git a/jsapi/LuCI.network.Device.html b/jsapi/LuCI.network.Device.html index 41e0d43d40..c1e996e2cb 100644 --- a/jsapi/LuCI.network.Device.html +++ b/jsapi/LuCI.network.Device.html @@ -819,6 +819,10 @@
  • enabled
  • +
  • tooltip
  • + +
  • tooltipicon
  • +
  • datatype
  • default
  • @@ -935,10 +939,6 @@
  • tabbed
  • -
  • tooltip
  • - -
  • tooltipicon
  • -
  • uciconfig
  • @@ -1545,12 +1545,6 @@ Members -
  • addbtntitle
  • - -
  • addremove
  • - -
  • anonymous
  • -
  • extedit
  • max_cols
  • @@ -1565,8 +1559,6 @@
  • sortable
  • -
  • uciconfig
  • -
  • addbtntitle
  • addremove
  • @@ -1577,10 +1569,6 @@
  • tabbed
  • -
  • tooltip
  • - -
  • tooltipicon
  • -
  • uciconfig
  • @@ -1743,10 +1731,6 @@
  • tabbed
  • -
  • tooltip
  • - -
  • tooltipicon
  • -
  • uciconfig
  • parentoption
  • @@ -3928,7 +3912,7 @@ enabled, else false. Returns true if the device has a carrier, e.g. when a cable is -inserted into an ethernet port of false if there is none. +inserted into an Ethernet port of false if there is none. @@ -4134,7 +4118,7 @@ null if the duplex mode is unknown or unsupported. Returns a string containing the type description and device name -for non-wifi devices or operation mode and ssid for wifi ones. +for non-WiFi devices or operation mode and SSID for WiFi ones. @@ -4438,7 +4422,7 @@ for non-wifi devices or operation mode and ssid for wifi ones. Returns the MAC address of the device or null if not applicable, -e.g. for non-ethernet tunnel devices. +e.g. for non-Ethernet tunnel devices. @@ -5357,8 +5341,8 @@ a Linux bridge. - Returns the device name for non-wifi devices or a string containing -the operation mode and SSID for wifi devices. + Returns the device name for non-WiFi devices or a string containing +the operation mode and SSID for WiFi devices. @@ -5462,8 +5446,8 @@ the operation mode and SSID for wifi devices. Returns the current speed of the network device in Mbps. If the -device supports no ethernet speed levels, null is returned. -If the device supports ethernet speeds but has no carrier, -1 is +device supports no Ethernet speed levels, null is returned. +If the device supports Ethernet speeds but has no carrier, -1 is returned. @@ -6312,7 +6296,7 @@ when it is down or absent.
    - Documentation generated by JSDoc 3.6.11 on Tue Nov 15 2022 18:54:13 GMT+0000 (Coordinated Universal Time) + Documentation generated by JSDoc 3.6.11 on Wed Mar 06 2024 05:14:50 GMT+0000 (Coordinated Universal Time)
    diff --git a/jsapi/LuCI.network.Hosts.html b/jsapi/LuCI.network.Hosts.html index 142a69309f..e3aa6a65d2 100644 --- a/jsapi/LuCI.network.Hosts.html +++ b/jsapi/LuCI.network.Hosts.html @@ -819,6 +819,10 @@
  • enabled
  • +
  • tooltip
  • + +
  • tooltipicon
  • +
  • datatype
  • default
  • @@ -935,10 +939,6 @@
  • tabbed
  • -
  • tooltip
  • - -
  • tooltipicon
  • -
  • uciconfig
  • @@ -1545,12 +1545,6 @@ Members -
  • addbtntitle
  • - -
  • addremove
  • - -
  • anonymous
  • -
  • extedit
  • max_cols
  • @@ -1565,8 +1559,6 @@
  • sortable
  • -
  • uciconfig
  • -
  • addbtntitle
  • addremove
  • @@ -1577,10 +1569,6 @@
  • tabbed
  • -
  • tooltip
  • - -
  • tooltipicon
  • -
  • uciconfig
  • @@ -1743,10 +1731,6 @@
  • tabbed
  • -
  • tooltip
  • - -
  • tooltipicon
  • -
  • uciconfig
  • parentoption
  • @@ -3656,7 +3640,7 @@ host information by different criteria.

    -

    Lookup the hostname associated with the given IPv6 address.

    +

    Look up the hostname associated with the given IPv6 address.

    @@ -3703,7 +3687,7 @@ host information by different criteria.

    -

    The IPv6 address to lookup.

    +

    The IPv6 address to look up.

    @@ -3806,7 +3790,7 @@ the corresponding host.
    -

    Lookup the hostname associated with the given IPv4 address.

    +

    Look up the hostname associated with the given IPv4 address.

    @@ -3853,7 +3837,7 @@ the corresponding host. -

    The IPv4 address to lookup.

    +

    The IPv4 address to look up.

    @@ -3956,7 +3940,7 @@ the corresponding host.
    -

    Lookup the hostname associated with the given MAC address.

    +

    Look up the hostname associated with the given MAC address.

    @@ -4003,7 +3987,7 @@ the corresponding host. -

    The MAC address to lookup.

    +

    The MAC address to look up.

    @@ -4106,7 +4090,7 @@ the corresponding host.
    -

    Lookup the IPv6 address associated with the given MAC address.

    +

    Look up the IPv6 address associated with the given MAC address.

    @@ -4153,7 +4137,7 @@ the corresponding host. -

    The MAC address to lookup.

    +

    The MAC address to look up.

    @@ -4256,7 +4240,7 @@ the corresponding host.
    -

    Lookup the IPv4 address associated with the given MAC address.

    +

    Look up the IPv4 address associated with the given MAC address.

    @@ -4303,7 +4287,7 @@ the corresponding host. -

    The MAC address to lookup.

    +

    The MAC address to look up.

    @@ -4406,7 +4390,7 @@ the corresponding host.
    -

    Lookup the MAC address associated with the given IPv6 address.

    +

    Look up the MAC address associated with the given IPv6 address.

    @@ -4453,7 +4437,7 @@ the corresponding host. -

    The IPv6 address to lookup.

    +

    The IPv6 address to look up.

    @@ -4556,7 +4540,7 @@ the corresponding host.
    -

    Lookup the MAC address associated with the given IPv4 address.

    +

    Look up the MAC address associated with the given IPv4 address.

    @@ -4603,7 +4587,7 @@ the corresponding host. -

    The IPv4 address to lookup.

    +

    The IPv4 address to look up.

    @@ -4873,7 +4857,7 @@ is used as hint.
    - Documentation generated by JSDoc 3.6.11 on Tue Nov 15 2022 18:54:13 GMT+0000 (Coordinated Universal Time) + Documentation generated by JSDoc 3.6.11 on Wed Mar 06 2024 05:14:50 GMT+0000 (Coordinated Universal Time)
    diff --git a/jsapi/LuCI.network.Protocol.html b/jsapi/LuCI.network.Protocol.html index 746ff4940a..a12f0dd93b 100644 --- a/jsapi/LuCI.network.Protocol.html +++ b/jsapi/LuCI.network.Protocol.html @@ -819,6 +819,10 @@
  • enabled
  • +
  • tooltip
  • + +
  • tooltipicon
  • +
  • datatype
  • default
  • @@ -935,10 +939,6 @@
  • tabbed
  • -
  • tooltip
  • - -
  • tooltipicon
  • -
  • uciconfig
  • @@ -1545,12 +1545,6 @@ Members -
  • addbtntitle
  • - -
  • addremove
  • - -
  • anonymous
  • -
  • extedit
  • max_cols
  • @@ -1565,8 +1559,6 @@
  • sortable
  • -
  • uciconfig
  • -
  • addbtntitle
  • addremove
  • @@ -1577,10 +1569,6 @@
  • tabbed
  • -
  • tooltip
  • - -
  • tooltipicon
  • -
  • uciconfig
  • @@ -1743,10 +1731,6 @@
  • tabbed
  • -
  • tooltip
  • - -
  • tooltipicon
  • -
  • uciconfig
  • parentoption
  • @@ -4573,7 +4557,7 @@ interface.

    - Returns an array of of Network.Device class instances representing + Returns an array of Network.Device class instances representing the sub-devices attached to this logical interface or null if the logical interface does not support sub-devices, e.g. because it is virtual and not a bridge. @@ -4677,7 +4661,7 @@ virtual and not a bridge. Returns an array of IPv6 DNS servers registered by the remote -protocol backend. +protocol back-end. @@ -4778,7 +4762,7 @@ protocol backend. Returns an array of IPv4 DNS servers registered by the remote -protocol backend. +protocol back-end. @@ -5227,7 +5211,7 @@ default route or null if no default route was found.
    -

    Return a human readable description for the protcol, such as +

    Return a human readable description for the protocol, such as Static address or DHCP client.

    This function should be overwritten by subclasses.

    @@ -5329,7 +5313,7 @@ default route or null if no default route was found.
    -

    Get the associared Linux network device of this network.

    +

    Get the associated Linux network device of this network.

    @@ -5949,7 +5933,7 @@ follows the order of the addresses in ubus runtime information. -

    Returns the layer 2 linux network device currently associated +

    Returns the layer 2 Linux network device currently associated with this logical interface.

    @@ -6051,7 +6035,7 @@ network device currently associated with the logical interface.
    -

    Returns the layer 3 linux network device currently associated +

    Returns the layer 3 Linux network device currently associated with this logical interface.

    @@ -6527,7 +6511,7 @@ protocol handler or null if no IPv4 addresses were set. Returns the name of the opkg package required for the protocol to -function, e.g. odhcp6c for the dhcpv6 prototocol. +function, e.g. odhcp6c for the dhcpv6 protocol. @@ -7187,7 +7171,7 @@ or false when the logical interface is no bridge.
    -

    Check function for the protocol handler if a new interface is createable.

    +

    Check function for the protocol handler if a new interface is creatable.

    This function should be overwritten by protocol specific subclasses.

    @@ -7300,7 +7284,7 @@ or false when the logical interface is no bridge. - Returns a promise resolving if new interface is createable, else + Returns a promise resolving if new interface is creatable, else rejects with an error message string. @@ -7439,7 +7423,7 @@ or not (false).
    -

    Checks whether this logical interface is "empty", meaning that ut +

    Checks whether this logical interface is "empty", where empty means that it has no network devices attached.

    @@ -7542,7 +7526,7 @@ has no network devices attached.

    Checks whether this protocol is "floating".

    A "floating" protocol is a protocol which spawns its own interfaces -on demand, like a virtual one but which relies on an existinf lower +on demand, like a virtual one but which relies on an existing lower level interface to initiate the connection.

    An example for such a protocol is "pppoe".

    This function exists for backwards compatibility with older code @@ -7857,7 +7841,7 @@ returns true.

    A "virtual" protocol is a protocol which spawns its own interfaces on demand instead of using existing physical interfaces.

    Examples for virtual protocols are 6in4 which gre spawn tunnel -network device on startup, examples for non-virtual protcols are +network device on startup, examples for non-virtual protocols are dhcp or static which apply IP configuration to existing interfaces.

    This function should be overwritten by subclasses.

    @@ -8103,7 +8087,7 @@ configuration.

    - Documentation generated by JSDoc 3.6.11 on Tue Nov 15 2022 18:54:13 GMT+0000 (Coordinated Universal Time) + Documentation generated by JSDoc 3.6.11 on Wed Mar 06 2024 05:14:50 GMT+0000 (Coordinated Universal Time)
    diff --git a/jsapi/LuCI.network.WifiDevice.html b/jsapi/LuCI.network.WifiDevice.html index 08cff5ddc2..0e868fa920 100644 --- a/jsapi/LuCI.network.WifiDevice.html +++ b/jsapi/LuCI.network.WifiDevice.html @@ -819,6 +819,10 @@
  • enabled
  • +
  • tooltip
  • + +
  • tooltipicon
  • +
  • datatype
  • default
  • @@ -935,10 +939,6 @@
  • tabbed
  • -
  • tooltip
  • - -
  • tooltipicon
  • -
  • uciconfig
  • @@ -1545,12 +1545,6 @@ Members -
  • addbtntitle
  • - -
  • addremove
  • - -
  • anonymous
  • -
  • extedit
  • max_cols
  • @@ -1565,8 +1559,6 @@
  • sortable
  • -
  • uciconfig
  • -
  • addbtntitle
  • addremove
  • @@ -1577,10 +1569,6 @@
  • tabbed
  • -
  • tooltip
  • - -
  • tooltipicon
  • -
  • uciconfig
  • @@ -1743,10 +1731,6 @@
  • tabbed
  • -
  • tooltip
  • - -
  • tooltipicon
  • -
  • uciconfig
  • parentoption
  • @@ -3645,7 +3629,7 @@ well as methods for enumerating related wireless networks.

    @@ -3800,7 +3784,7 @@ were invalid. @@ -3859,7 +3843,7 @@ radio device.

    -

    The name of the wireless network to lookup. This may be either an uci +

    The name of the wireless network to look up. This may be either an uci configuration section ID, a network ID in the form radio#.network# or a Linux network device name like wlan0 which is resolved to the corresponding configuration section through ubus runtime information.

    @@ -4532,7 +4516,7 @@ for the wireless phy. @@ -4612,7 +4596,7 @@ nearby networks.

    Returns a promise resolving to an array of scan result objects -describing the networks found in the vincinity. +describing the networks found in the vicinity. @@ -4634,7 +4618,7 @@ describing the networks found in the vincinity. @@ -4692,7 +4676,7 @@ describing the networks found in the vincinity. -

    The name of the wireless network to lookup. This may be either an uci +

    The name of the wireless network to look up. This may be either an uci configuration section ID, a network ID in the form radio#.network# or a Linux network device name like wlan0 which is resolved to the corresponding configuration section through ubus runtime information.

    @@ -4785,7 +4769,7 @@ this radio device. @@ -4864,7 +4848,7 @@ this radio device. Returns a promise resolving to an array of Network.WifiNetwork -instances respresenting the wireless networks associated with this +instances representing the wireless networks associated with this radio device. @@ -4989,7 +4973,7 @@ UCI configuration. @@ -5085,7 +5069,7 @@ runtime state.

    - set(opt, val) + set(opt, value)

    @@ -5155,7 +5139,7 @@ runtime state.

    - val + value @@ -5244,7 +5228,7 @@ configuration.

    - Documentation generated by JSDoc 3.6.11 on Tue Nov 15 2022 18:54:13 GMT+0000 (Coordinated Universal Time) + Documentation generated by JSDoc 3.6.11 on Wed Mar 06 2024 05:14:50 GMT+0000 (Coordinated Universal Time)
    diff --git a/jsapi/LuCI.network.WifiNetwork.html b/jsapi/LuCI.network.WifiNetwork.html index f05a15c95f..752873ae54 100644 --- a/jsapi/LuCI.network.WifiNetwork.html +++ b/jsapi/LuCI.network.WifiNetwork.html @@ -819,6 +819,10 @@
  • enabled
  • +
  • tooltip
  • + +
  • tooltipicon
  • +
  • datatype
  • default
  • @@ -935,10 +939,6 @@
  • tabbed
  • -
  • tooltip
  • - -
  • tooltipicon
  • -
  • uciconfig
  • @@ -1545,12 +1545,6 @@ Members -
  • addbtntitle
  • - -
  • addremove
  • - -
  • anonymous
  • -
  • extedit
  • max_cols
  • @@ -1565,8 +1559,6 @@
  • sortable
  • -
  • uciconfig
  • -
  • addbtntitle
  • addremove
  • @@ -1577,10 +1569,6 @@
  • tabbed
  • -
  • tooltip
  • - -
  • tooltipicon
  • -
  • uciconfig
  • @@ -1743,10 +1731,6 @@
  • tabbed
  • -
  • tooltip
  • - -
  • tooltipicon
  • -
  • uciconfig
  • parentoption
  • @@ -3561,7 +3545,7 @@ such networks in parallel.

    @@ -3646,7 +3630,7 @@ such networks in parallel.

    @@ -3751,7 +3735,7 @@ such networks in parallel.

    -

    Specifies whether to deauthenticate (true) or disassociate (false) +

    Specifies whether to de-authenticate (true) or disassociate (false) the client.

    @@ -3827,7 +3811,7 @@ with. Default is 1 which corresponds to Unspecified reasonSpecifies the amount of milliseconds to ban the client from reconnecting. By default, no ban time is set which allows the client -to reassociate / reauthenticate immediately.

    +to re-associate / reauthenticate immediately.

    @@ -3917,7 +3901,7 @@ are passed. @@ -4069,7 +4053,7 @@ not found. @@ -4170,7 +4154,7 @@ information. @@ -4248,7 +4232,7 @@ information. - Returns a string describing the current encryption or - if the the + Returns a string describing the current encryption or - if the encryption state could not be found in ubus runtime information. @@ -4271,7 +4255,7 @@ encryption state could not be found in ubus runtime information. - network.js, line 3838 + network.js, line 3839 @@ -4349,8 +4333,8 @@ encryption state could not be found in ubus runtime information. - Returns the human readable mode name as reported by ubus runtime -state. Possible returned values are: + Returns the human readable mode name as reported by iwinfo or uci mode. +Possible returned values are: @@ -1545,12 +1545,6 @@ Members -
  • addbtntitle
  • - -
  • addremove
  • - -
  • anonymous
  • -
  • extedit
  • max_cols
  • @@ -1565,8 +1559,6 @@
  • sortable
  • -
  • uciconfig
  • -
  • addbtntitle
  • addremove
  • @@ -1577,10 +1569,6 @@
  • tabbed
  • -
  • tooltip
  • - -
  • tooltipicon
  • -
  • uciconfig
  • @@ -1743,10 +1731,6 @@
  • tabbed
  • -
  • tooltip
  • - -
  • tooltipicon
  • -
  • uciconfig
  • parentoption
  • @@ -3539,7 +3523,7 @@ network -

    The LuCI.network class combines data from multiple ubus apis to +

    The LuCI.network class combines data from multiple ubus APIs to provide an abstraction of the current network configuration state.

    It provides methods to enumerate interfaces and devices, to query current configuration details and to manipulate settings.

    @@ -5017,7 +5001,7 @@ class instance describing the found hosts.

    -

    Obtains the the network device name of the given object.

    +

    Obtains the network device name of the given object.

    @@ -5428,7 +5412,7 @@ describing all known networks.
    -

    Instantiates the given Protocol backend, +

    Instantiates the given Protocol back-end, optionally using the given network name.

    @@ -5487,7 +5471,7 @@ optionally using the given network name.

    -

    The protocol backend to use, e.g. static or dhcp.

    +

    The protocol back-end to use, e.g. static or dhcp.

    @@ -5594,7 +5578,7 @@ without the need for an existing interface.

    - Returns the instantiated protocol backend class or null if the given + Returns the instantiated protocol back-end class or null if the given protocol isn't known. @@ -5629,7 +5613,7 @@ protocol isn't known.

    Obtains instances of all known Protocol -backend classes.

    +back-end classes.

    @@ -6087,7 +6071,7 @@ the given wireless radio.

    -

    The configuration name of the wireless radio to lookup, e.g. radio0 +

    The configuration name of the wireless radio to look up, e.g. radio0 for the first mac80211 phy on the system.

    @@ -6339,7 +6323,7 @@ the given wireless network.

    -

    The name of the wireless network to lookup. This may be either an uci +

    The name of the wireless network to look up. This may be either an uci configuration section ID, a network ID in the form radio#.network# or a Linux network device name like wlan0 which is resolved to the corresponding configuration section through ubus runtime information.

    @@ -6753,7 +6737,7 @@ else returns false. -

    The netmask to convert into a bit count.

    +

    The netmask to convert into a bits count.

    @@ -7721,7 +7705,7 @@ rename could not be found.
    -

    Describes an swconfig switch topology by specifying the CPU +

    Describes a swconfig switch topology by specifying the CPU connections and external port labels of a switch.

    @@ -7800,7 +7784,7 @@ port is hardwired to.

    The ports property points to an array describing the populated ports of the switch in the external label order. Each array item is -an object containg the following keys:

    +an object containing the following keys:

    • num - the internal switch port number
    • label - the label of the port, e.g. LAN 1 or CPU (eth0)
    • @@ -8732,7 +8716,7 @@ the driver.

      -

      The powersafe mode for all non-peer neigbours, may be an empty +

      The powersafe mode for all non-peer neighbours, may be an empty string ('') or absent if not applicable or supported by the driver.

      The following modes are known:

        @@ -8996,7 +8980,7 @@ receiving rates.

        -

        The amount of failed tranmission attempts. Only applicable to +

        The amount of failed transmission attempts. Only applicable to transmit rates.

        @@ -9208,7 +9192,7 @@ HT or VHT rates.

        -

        Specifies whether the tranmission rate used 40MHz wide channel. +

        Specifies whether the transmission rate used 40MHz wide channel. Only applicable to HT or VHT rates.

        Note: this option exists for backwards compatibility only and its use is discouraged. The mhz field should be used instead to @@ -9418,7 +9402,7 @@ Only applicable to HE rates.

        A wireless scan result object describes a neighbouring wireless -network found in the vincinity.

        +network found in the vicinity.

        @@ -9682,7 +9666,7 @@ conjunction with quality to calculate a quality percentage.

        - Documentation generated by JSDoc 3.6.11 on Tue Nov 15 2022 18:54:13 GMT+0000 (Coordinated Universal Time) + Documentation generated by JSDoc 3.6.11 on Wed Mar 06 2024 05:14:50 GMT+0000 (Coordinated Universal Time) diff --git a/jsapi/LuCI.poll.html b/jsapi/LuCI.poll.html index a5f8a20e38..90571702a1 100644 --- a/jsapi/LuCI.poll.html +++ b/jsapi/LuCI.poll.html @@ -819,6 +819,10 @@
      • enabled
      • +
      • tooltip
      • + +
      • tooltipicon
      • +
      • datatype
      • default
      • @@ -935,10 +939,6 @@
      • tabbed
      • -
      • tooltip
      • - -
      • tooltipicon
      • -
      • uciconfig
      @@ -1545,12 +1545,6 @@ Members -
    • addbtntitle
    • - -
    • addremove
    • - -
    • anonymous
    • -
    • extedit
    • max_cols
    • @@ -1565,8 +1559,6 @@
    • sortable
    • -
    • uciconfig
    • -
    • addbtntitle
    • addremove
    • @@ -1577,10 +1569,6 @@
    • tabbed
    • -
    • tooltip
    • - -
    • tooltipicon
    • -
    • uciconfig
    @@ -1743,10 +1731,6 @@
  • tabbed
  • -
  • tooltip
  • - -
  • tooltipicon
  • -
  • uciconfig
  • parentoption
  • @@ -3759,7 +3743,7 @@ loop.

    Add a new operation to the polling loop. If the polling loop is not -already started at this point, it will be implicitely started.

    +already started at this point, it will be implicitly started.

    @@ -3955,8 +3939,8 @@ already is registered.
    -

    Remove an operation from the polling loop. If no further operatons -are registered, the polling loop is implicitely stopped.

    +

    Remove an operation from the polling loop. If no further operations +are registered, the polling loop is implicitly stopped.

    @@ -4299,7 +4283,7 @@ to the document object upon successful stop.

    - Returns true if polling has been stopped or false if it din't + Returns true if polling has been stopped or false if it didn't run to begin with. @@ -4330,7 +4314,7 @@ run to begin with.
    - Documentation generated by JSDoc 3.6.11 on Tue Nov 15 2022 18:54:13 GMT+0000 (Coordinated Universal Time) + Documentation generated by JSDoc 3.6.11 on Wed Mar 06 2024 05:14:50 GMT+0000 (Coordinated Universal Time)
    diff --git a/jsapi/LuCI.request.html b/jsapi/LuCI.request.html index 8a98f3389e..c086677a7a 100644 --- a/jsapi/LuCI.request.html +++ b/jsapi/LuCI.request.html @@ -819,6 +819,10 @@
  • enabled
  • +
  • tooltip
  • + +
  • tooltipicon
  • +
  • datatype
  • default
  • @@ -935,10 +939,6 @@
  • tabbed
  • -
  • tooltip
  • - -
  • tooltipicon
  • -
  • uciconfig
  • @@ -1545,12 +1545,6 @@ Members -
  • addbtntitle
  • - -
  • addremove
  • - -
  • anonymous
  • -
  • extedit
  • max_cols
  • @@ -1565,8 +1559,6 @@
  • sortable
  • -
  • uciconfig
  • -
  • addbtntitle
  • addremove
  • @@ -1577,10 +1569,6 @@
  • tabbed
  • -
  • tooltip
  • - -
  • tooltipicon
  • -
  • uciconfig
  • @@ -1743,10 +1731,6 @@
  • tabbed
  • -
  • tooltip
  • - -
  • tooltipicon
  • -
  • uciconfig
  • parentoption
  • @@ -3940,7 +3924,7 @@ if it already was absolute.

    - get(target, options){Promise.<LuCI.response>} + get(url, options){Promise.<LuCI.response>}

    @@ -3987,7 +3971,7 @@ if it already was absolute. - target + url @@ -4120,7 +4104,7 @@ if it already was absolute.

    - post(target, data, options){Promise.<LuCI.response>} + post(url, data, options){Promise.<LuCI.response>}

    @@ -4167,7 +4151,7 @@ if it already was absolute. - target + url @@ -5265,7 +5249,7 @@ instances as sole argument during the HTTP request transfer.

    - Documentation generated by JSDoc 3.6.11 on Tue Nov 15 2022 18:54:13 GMT+0000 (Coordinated Universal Time) + Documentation generated by JSDoc 3.6.11 on Wed Mar 06 2024 05:14:50 GMT+0000 (Coordinated Universal Time)
    diff --git a/jsapi/LuCI.request.poll.html b/jsapi/LuCI.request.poll.html index 8fbc283e93..ad43674b05 100644 --- a/jsapi/LuCI.request.poll.html +++ b/jsapi/LuCI.request.poll.html @@ -819,6 +819,10 @@
  • enabled
  • +
  • tooltip
  • + +
  • tooltipicon
  • +
  • datatype
  • default
  • @@ -935,10 +939,6 @@
  • tabbed
  • -
  • tooltip
  • - -
  • tooltipicon
  • -
  • uciconfig
  • @@ -1545,12 +1545,6 @@ Members -
  • addbtntitle
  • - -
  • addremove
  • - -
  • anonymous
  • -
  • extedit
  • max_cols
  • @@ -1565,8 +1559,6 @@
  • sortable
  • -
  • uciconfig
  • -
  • addbtntitle
  • addremove
  • @@ -1577,10 +1569,6 @@
  • tabbed
  • -
  • tooltip
  • - -
  • tooltipicon
  • -
  • uciconfig
  • @@ -1743,10 +1731,6 @@
  • tabbed
  • -
  • tooltip
  • - -
  • tooltipicon
  • -
  • uciconfig
  • parentoption
  • @@ -3539,7 +3523,7 @@ poll -

    The Request.poll class provides some convience wrappers around +

    The Request.poll class provides some convince wrappers around LuCI.poll mainly to simplify registering repeating HTTP request calls as polling functions.

    @@ -4449,7 +4433,7 @@ else null.

    - Documentation generated by JSDoc 3.6.11 on Tue Nov 15 2022 18:54:13 GMT+0000 (Coordinated Universal Time) + Documentation generated by JSDoc 3.6.11 on Wed Mar 06 2024 05:14:50 GMT+0000 (Coordinated Universal Time)
    diff --git a/jsapi/LuCI.response.html b/jsapi/LuCI.response.html index b37981ab63..434b5ac602 100644 --- a/jsapi/LuCI.response.html +++ b/jsapi/LuCI.response.html @@ -819,6 +819,10 @@
  • enabled
  • +
  • tooltip
  • + +
  • tooltipicon
  • +
  • datatype
  • default
  • @@ -935,10 +939,6 @@
  • tabbed
  • -
  • tooltip
  • - -
  • tooltipicon
  • -
  • uciconfig
  • @@ -1545,12 +1545,6 @@ Members -
  • addbtntitle
  • - -
  • addremove
  • - -
  • anonymous
  • -
  • extedit
  • max_cols
  • @@ -1565,8 +1559,6 @@
  • sortable
  • -
  • uciconfig
  • -
  • addbtntitle
  • addremove
  • @@ -1577,10 +1569,6 @@
  • tabbed
  • -
  • tooltip
  • - -
  • tooltipicon
  • -
  • uciconfig
  • @@ -1743,10 +1731,6 @@
  • tabbed
  • -
  • tooltip
  • - -
  • tooltipicon
  • -
  • uciconfig
  • parentoption
  • @@ -4407,7 +4391,7 @@ using String() and treated as response text.

    - Documentation generated by JSDoc 3.6.11 on Tue Nov 15 2022 18:54:13 GMT+0000 (Coordinated Universal Time) + Documentation generated by JSDoc 3.6.11 on Wed Mar 06 2024 05:14:50 GMT+0000 (Coordinated Universal Time)
    diff --git a/jsapi/LuCI.rpc.html b/jsapi/LuCI.rpc.html index a1496b6867..78749fd8bd 100644 --- a/jsapi/LuCI.rpc.html +++ b/jsapi/LuCI.rpc.html @@ -819,6 +819,10 @@
  • enabled
  • +
  • tooltip
  • + +
  • tooltipicon
  • +
  • datatype
  • default
  • @@ -935,10 +939,6 @@
  • tabbed
  • -
  • tooltip
  • - -
  • tooltipicon
  • -
  • uciconfig
  • @@ -1545,12 +1545,6 @@ Members -
  • addbtntitle
  • - -
  • addremove
  • - -
  • anonymous
  • -
  • extedit
  • max_cols
  • @@ -1565,8 +1559,6 @@
  • sortable
  • -
  • uciconfig
  • -
  • addbtntitle
  • addremove
  • @@ -1577,10 +1569,6 @@
  • tabbed
  • -
  • tooltip
  • - -
  • tooltipicon
  • -
  • uciconfig
  • @@ -1743,10 +1731,6 @@
  • tabbed
  • -
  • tooltip
  • - -
  • tooltipicon
  • -
  • uciconfig
  • parentoption
  • @@ -3702,7 +3686,7 @@ and means for listing and invoking remove RPC methods.

    -

    The inteceptor function to register.

    +

    The interceptor function to register.

    @@ -4509,7 +4493,7 @@ signatures of each requested ubus object name will be returned. -

    The inteceptor function to remove.

    +

    The interceptor function to remove.

    @@ -4592,7 +4576,7 @@ if it has not been found.

    - setBaseURL(sid) + setBaseURL(url)

    @@ -4639,7 +4623,7 @@ if it has not been found. - sid + url @@ -4979,7 +4963,7 @@ When the resulting call function is invoked with fn(true, false), the corresponding args object sent to the remote procedure will be { foo: true, bar: false }.
  • params: [ "test" ], filter: function(reply, args, extra) { ... } - -When the resultung generated function is invoked with +When the resulting generated function is invoked with fn("foo", "bar", "baz") then { "test": "foo" } will be sent as argument to the remote procedure and the filter function will be invoked with filterFn(reply, [ "foo" ], "bar", "baz")
  • @@ -5082,7 +5066,7 @@ be returned as default instead. -

    Specfies an optional filter function which is invoked to transform the +

    Specifies an optional filter function which is invoked to transform the received reply data before it is returned to the caller.

    @@ -5738,7 +5722,7 @@ to the expect and filter declarations.
    - Documentation generated by JSDoc 3.6.11 on Tue Nov 15 2022 18:54:13 GMT+0000 (Coordinated Universal Time) + Documentation generated by JSDoc 3.6.11 on Wed Mar 06 2024 05:14:50 GMT+0000 (Coordinated Universal Time)
    diff --git a/jsapi/LuCI.session.html b/jsapi/LuCI.session.html index bb56c4c22e..0befb56670 100644 --- a/jsapi/LuCI.session.html +++ b/jsapi/LuCI.session.html @@ -819,6 +819,10 @@
  • enabled
  • +
  • tooltip
  • + +
  • tooltipicon
  • +
  • datatype
  • default
  • @@ -935,10 +939,6 @@
  • tabbed
  • -
  • tooltip
  • - -
  • tooltipicon
  • -
  • uciconfig
  • @@ -1545,12 +1545,6 @@ Members -
  • addbtntitle
  • - -
  • addremove
  • - -
  • anonymous
  • -
  • extedit
  • max_cols
  • @@ -1565,8 +1559,6 @@
  • sortable
  • -
  • uciconfig
  • -
  • addbtntitle
  • addremove
  • @@ -1577,10 +1569,6 @@
  • tabbed
  • -
  • tooltip
  • - -
  • tooltipicon
  • -
  • uciconfig
  • @@ -1743,10 +1731,6 @@
  • tabbed
  • -
  • tooltip
  • - -
  • tooltipicon
  • -
  • uciconfig
  • parentoption
  • @@ -4177,7 +4161,7 @@ being put in the session store.

    - Documentation generated by JSDoc 3.6.11 on Tue Nov 15 2022 18:54:13 GMT+0000 (Coordinated Universal Time) + Documentation generated by JSDoc 3.6.11 on Wed Mar 06 2024 05:14:50 GMT+0000 (Coordinated Universal Time)
    diff --git a/jsapi/LuCI.uci.html b/jsapi/LuCI.uci.html index 3675730025..8ce16b8a9b 100644 --- a/jsapi/LuCI.uci.html +++ b/jsapi/LuCI.uci.html @@ -819,6 +819,10 @@
  • enabled
  • +
  • tooltip
  • + +
  • tooltipicon
  • +
  • datatype
  • default
  • @@ -935,10 +939,6 @@
  • tabbed
  • -
  • tooltip
  • - -
  • tooltipicon
  • -
  • uciconfig
  • @@ -1545,12 +1545,6 @@ Members -
  • addbtntitle
  • - -
  • addremove
  • - -
  • anonymous
  • -
  • extedit
  • max_cols
  • @@ -1565,8 +1559,6 @@
  • sortable
  • -
  • uciconfig
  • -
  • addbtntitle
  • addremove
  • @@ -1577,10 +1569,6 @@
  • tabbed
  • -
  • tooltip
  • - -
  • tooltipicon
  • -
  • uciconfig
  • @@ -1743,10 +1731,6 @@
  • tabbed
  • -
  • tooltip
  • - -
  • tooltipicon
  • -
  • uciconfig
  • parentoption
  • @@ -3541,7 +3525,7 @@

    The LuCI.uci class utilizes LuCI.rpc to declare low level remote UCI ubus procedures and implements a local caching and data -manipulation layer on top to allow for synchroneous operations on +manipulation layer on top to allow for synchronous operations on UCI configuration data.

    @@ -3641,7 +3625,7 @@ UCI configuration data.

    - add(config, type, name){string} + add(conf, type, name){string}

    @@ -3689,7 +3673,7 @@ optionally named according to the given name.

    - config + conf @@ -4115,7 +4099,7 @@ names as keys and arrays of related change records as values.

    - createSID(config){string} + createSID(conf){string}

    @@ -4165,7 +4149,7 @@ by the remote ubus UCI api.

    - config + conf @@ -4264,7 +4248,7 @@ where X denotes a hexadecimal digit.

    - get(config, sid, option){null|string|Array.<string>|LuCI.uci.SectionObject} + get(conf, sid, opt){null|string|Array.<string>|LuCI.uci.SectionObject}

    @@ -4313,7 +4297,7 @@ option name is omitted.

    - config + conf @@ -4369,7 +4353,7 @@ option name is omitted.

    - option + opt @@ -4493,7 +4477,7 @@ found or if the corresponding configuration is not loaded.

    - get_first(config, type, option){null|string|Array.<string>|LuCI.uci.SectionObject} + get_first(conf, type, opt){null|string|Array.<string>|LuCI.uci.SectionObject}

    @@ -4511,7 +4495,7 @@ found or if the corresponding configuration is not loaded.

    Gets the value of the given option or the entire section object of the first found section of the specified type or the first found -section of the entire configuration if no type is specfied.

    +section of the entire configuration if no type is specified.

    @@ -4542,7 +4526,7 @@ section of the entire configuration if no type is specfied.

    - config + conf @@ -4602,7 +4586,7 @@ matching the given type.

    - option + opt @@ -4726,7 +4710,7 @@ found or if the corresponding configuration is not loaded.

    - load(config){Promise.<Array.<string>>} + load(packages){Promise.<Array.<string>>}

    @@ -4778,7 +4762,7 @@ data.

    - config + packages @@ -4881,7 +4865,7 @@ that have been successfully loaded.

    - move(config, sid1, sid2, after){boolean} + move(conf, sid1, sid2, after){boolean}

    @@ -4931,7 +4915,7 @@ before or after the second specified section.

    - config + conf @@ -5150,7 +5134,7 @@ when either the section specified by sid1 or by sid2 i

    - remove(config, sid) + remove(conf, sid)

    @@ -5197,7 +5181,7 @@ when either the section specified by sid1 or by sid2 i - config + conf @@ -5289,7 +5273,7 @@ when either the section specified by sid1 or by sid2 i

    - resolveSID(config, sid){string|null} + resolveSID(conf, sid){string|null}

    @@ -5337,7 +5321,7 @@ section ID value.

    - config + conf @@ -5571,7 +5555,7 @@ have been reloaded by the save operation.

    - sections(config, type, cb){Array.<LuCI.uci.SectionObject>} + sections(conf, type, cb){Array.<LuCI.uci.SectionObject>}

    @@ -5619,7 +5603,7 @@ filtered by type.

    - config + conf @@ -5784,7 +5768,7 @@ configuration, filtered by type of a type has been specified.

    - set(config, sid, option, value) + set(conf, sid, opt, val)

    @@ -5834,7 +5818,7 @@ with a dot, the function will do nothing.

    - config + conf @@ -5880,7 +5864,7 @@ with a dot, the function will do nothing.

    - option + opt @@ -5903,7 +5887,7 @@ with a dot, the function will do nothing.

    - value + val @@ -5980,7 +5964,7 @@ with the given value.

    - set_first(config, type, option, value) + set_first(conf, type, opt, val)

    @@ -6031,7 +6015,7 @@ with a dot, the function will do nothing.

    - config + conf @@ -6091,7 +6075,7 @@ section matching the given type is used.

    - option + opt @@ -6119,7 +6103,7 @@ section matching the given type is used.

    - value + val @@ -6201,7 +6185,7 @@ with the given value.

    - unload(config) + unload(packages)

    @@ -6248,7 +6232,7 @@ with the given value.

    - config + packages @@ -6321,7 +6305,7 @@ names to unload.

    - unset(config, sid, option) + unset(conf, sid, opt)

    @@ -6371,7 +6355,7 @@ configuration.

    - config + conf @@ -6417,7 +6401,7 @@ configuration.

    - option + opt @@ -6486,7 +6470,7 @@ configuration.

    - unset_first(config, type, option) + unset_first(conf, type, opt)

    @@ -6537,7 +6521,7 @@ of the entire config when no type has is specified.

    - config + conf @@ -6597,7 +6581,7 @@ section matching the given type is used.

    - option + opt @@ -6879,7 +6863,7 @@ renamed.

    A section object represents the options and their corresponding values enclosed within a configuration section, as well as some additional meta data such as sort indexes and internal ID.

    -

    Any internal metadata fields are prefixed with a dot which is isn't +

    Any internal metadata fields are prefixed with a dot which isn't an allowed character for normal option names.

    @@ -6954,7 +6938,7 @@ anonymous (true) or named (false).

    -

    The .index property specifes the sort order of the section.

    +

    The .index property specifies the sort order of the section.

    @@ -7225,7 +7209,7 @@ associated name as arguments.

    - Documentation generated by JSDoc 3.6.11 on Tue Nov 15 2022 18:54:13 GMT+0000 (Coordinated Universal Time) + Documentation generated by JSDoc 3.6.11 on Wed Mar 06 2024 05:14:50 GMT+0000 (Coordinated Universal Time)
    diff --git a/jsapi/LuCI.ui.AbstractElement.html b/jsapi/LuCI.ui.AbstractElement.html index 19bfa46944..840c13f931 100644 --- a/jsapi/LuCI.ui.AbstractElement.html +++ b/jsapi/LuCI.ui.AbstractElement.html @@ -819,6 +819,10 @@
  • enabled
  • +
  • tooltip
  • + +
  • tooltipicon
  • +
  • datatype
  • default
  • @@ -935,10 +939,6 @@
  • tabbed
  • -
  • tooltip
  • - -
  • tooltipicon
  • -
  • uciconfig
  • @@ -1545,12 +1545,6 @@ Members -
  • addbtntitle
  • - -
  • addremove
  • - -
  • anonymous
  • -
  • extedit
  • max_cols
  • @@ -1565,8 +1559,6 @@
  • sortable
  • -
  • uciconfig
  • -
  • addbtntitle
  • addremove
  • @@ -1577,10 +1569,6 @@
  • tabbed
  • -
  • tooltip
  • - -
  • tooltipicon
  • -
  • uciconfig
  • @@ -1743,10 +1731,6 @@
  • tabbed
  • -
  • tooltip
  • - -
  • tooltipicon
  • -
  • uciconfig
  • parentoption
  • @@ -3544,7 +3528,7 @@ implemented by LuCI.ui. It provides the common logic for getting an setting values, for checking the validity state and for wiring up required events.

    UI widget instances are usually not supposed to be created by view code -directly, instead they're implicitely created by LuCI.form when +directly, instead they're implicitly created by LuCI.form when instantiating CBI forms.

    This class is automatically instantiated as part of LuCI.ui. To use it in views, use 'require ui' and refer to ui.AbstractElement. To import @@ -3941,7 +3925,7 @@ an array of strings or null for unset values. Returns true if the input value has been altered by the user or -false if it is unchaged. Note that if the user modifies the initial +false if it is unchanged. Note that if the user modifies the initial value and changes it back to the original state, it is still reported as changed. @@ -4247,7 +4231,7 @@ registered.

    -

    Render the widget, setup event listeners and return resulting markup.

    +

    Render the widget, set up event listeners and return resulting markup.

    @@ -4348,7 +4332,7 @@ widget markup.
    -

    Setup listeners for native DOM events that may change the widget value.

    +

    Set up listeners for native DOM events that may change the widget value.

    Sets up event handlers on the given target DOM node for the given event names which may cause the input value to change completely, such as change events in a select menu. In contrast to update events, such @@ -4628,7 +4612,7 @@ inputs, not to radio buttons, selects or similar.

    -

    Setup listeners for native DOM events that may update the widget value.

    +

    Set up listeners for native DOM events that may update the widget value.

    Sets up event handlers on the given target DOM node for the given event names which may cause the input value to update, such as keyup or onclick events. In contrast to change events, such update events will @@ -5281,7 +5265,7 @@ and are displayed in a slightly faded style.

    - Documentation generated by JSDoc 3.6.11 on Tue Nov 15 2022 18:54:13 GMT+0000 (Coordinated Universal Time) + Documentation generated by JSDoc 3.6.11 on Wed Mar 06 2024 05:14:50 GMT+0000 (Coordinated Universal Time)
    diff --git a/jsapi/LuCI.ui.Checkbox.html b/jsapi/LuCI.ui.Checkbox.html index b2683871df..5e4616cb01 100644 --- a/jsapi/LuCI.ui.Checkbox.html +++ b/jsapi/LuCI.ui.Checkbox.html @@ -819,6 +819,10 @@
  • enabled
  • +
  • tooltip
  • + +
  • tooltipicon
  • +
  • datatype
  • default
  • @@ -935,10 +939,6 @@
  • tabbed
  • -
  • tooltip
  • - -
  • tooltipicon
  • -
  • uciconfig
  • @@ -1545,12 +1545,6 @@ Members -
  • addbtntitle
  • - -
  • addremove
  • - -
  • anonymous
  • -
  • extedit
  • max_cols
  • @@ -1565,8 +1559,6 @@
  • sortable
  • -
  • uciconfig
  • -
  • addbtntitle
  • addremove
  • @@ -1577,10 +1569,6 @@
  • tabbed
  • -
  • tooltip
  • - -
  • tooltipicon
  • -
  • uciconfig
  • @@ -1743,10 +1731,6 @@
  • tabbed
  • -
  • tooltip
  • - -
  • tooltipicon
  • -
  • uciconfig
  • parentoption
  • @@ -3541,7 +3525,7 @@

    The Checkbox class implements a simple checkbox input field.

    UI widget instances are usually not supposed to be created by view code -directly, instead they're implicitely created by LuCI.form when +directly, instead they're implicitly created by LuCI.form when instantiating CBI forms.

    This class is automatically instantiated as part of LuCI.ui. To use it in views, use 'require ui' and refer to ui.Checkbox. To import it in @@ -3565,7 +3549,7 @@ external JavaScript, use L.require("ui").then(...) and ac

    @@ -3858,7 +3842,7 @@ external JavaScript, use L.require("ui").then(...) and ac
    @@ -4048,7 +4032,7 @@ an array of strings or null for unset values. Returns true if the input value has been altered by the user or -false if it is unchaged. Note that if the user modifies the initial +false if it is unchanged. Note that if the user modifies the initial value and changes it back to the original state, it is still reported as changed. @@ -4072,7 +4056,7 @@ as changed.
    @@ -4449,7 +4433,7 @@ registered.

    @@ -4460,7 +4444,7 @@ registered.

    -

    Render the widget, setup event listeners and return resulting markup.

    +

    Render the widget, set up event listeners and return resulting markup.

    @@ -4563,7 +4547,7 @@ widget markup.
    -

    Setup listeners for native DOM events that may change the widget value.

    +

    Set up listeners for native DOM events that may change the widget value.

    Sets up event handlers on the given target DOM node for the given event names which may cause the input value to change completely, such as change events in a select menu. In contrast to update events, such @@ -4847,7 +4831,7 @@ inputs, not to radio buttons, selects or similar.

    -

    Setup listeners for native DOM events that may update the widget value.

    +

    Set up listeners for native DOM events that may update the widget value.

    Sets up event handlers on the given target DOM node for the given event names which may cause the input value to update, such as keyup or onclick events. In contrast to change events, such update events will @@ -4993,7 +4977,7 @@ trigger input value validation.

    @@ -5395,7 +5379,7 @@ it is required for HTML based form submissions.

    - Documentation generated by JSDoc 3.6.11 on Tue Nov 15 2022 18:54:13 GMT+0000 (Coordinated Universal Time) + Documentation generated by JSDoc 3.6.11 on Wed Mar 06 2024 05:14:50 GMT+0000 (Coordinated Universal Time)
    diff --git a/jsapi/LuCI.ui.ComboButton.html b/jsapi/LuCI.ui.ComboButton.html index e00e8931ca..ff12530ccf 100644 --- a/jsapi/LuCI.ui.ComboButton.html +++ b/jsapi/LuCI.ui.ComboButton.html @@ -819,6 +819,10 @@
  • enabled
  • +
  • tooltip
  • + +
  • tooltipicon
  • +
  • datatype
  • default
  • @@ -935,10 +939,6 @@
  • tabbed
  • -
  • tooltip
  • - -
  • tooltipicon
  • -
  • uciconfig
  • @@ -1545,12 +1545,6 @@ Members -
  • addbtntitle
  • - -
  • addremove
  • - -
  • anonymous
  • -
  • extedit
  • max_cols
  • @@ -1565,8 +1559,6 @@
  • sortable
  • -
  • uciconfig
  • -
  • addbtntitle
  • addremove
  • @@ -1577,10 +1569,6 @@
  • tabbed
  • -
  • tooltip
  • - -
  • tooltipicon
  • -
  • uciconfig
  • @@ -1743,10 +1731,6 @@
  • tabbed
  • -
  • tooltip
  • - -
  • tooltipicon
  • -
  • uciconfig
  • parentoption
  • @@ -3542,7 +3526,7 @@

    The ComboButton class implements a button element which can be expanded into a dropdown to chose from a set of different action choices.

    UI widget instances are usually not supposed to be created by view code -directly, instead they're implicitely created by LuCI.form when +directly, instead they're implicitly created by LuCI.form when instantiating CBI forms.

    This class is automatically instantiated as part of LuCI.ui. To use it in views, use 'require ui' and refer to ui.ComboButton. To import it in @@ -3566,7 +3550,7 @@ external JavaScript, use L.require("ui").then(...) and ac

    @@ -3794,7 +3778,7 @@ choice labels.

    @@ -3940,7 +3924,7 @@ as label text. Choice labels may be any valid value accepted by
    @@ -4077,7 +4061,7 @@ of keeping them.

    @@ -4331,7 +4315,7 @@ of keeping them.

    Returns true if the input value has been altered by the user or -false if it is unchaged. Note that if the user modifies the initial +false if it is unchanged. Note that if the user modifies the initial value and changes it back to the original state, it is still reported as changed. @@ -4643,7 +4627,7 @@ registered.

    -

    Setup listeners for native DOM events that may change the widget value.

    +

    Set up listeners for native DOM events that may change the widget value.

    Sets up event handlers on the given target DOM node for the given event names which may cause the input value to change completely, such as change events in a select menu. In contrast to update events, such @@ -4927,7 +4911,7 @@ inputs, not to radio buttons, selects or similar.

    -

    Setup listeners for native DOM events that may update the widget value.

    +

    Set up listeners for native DOM events that may update the widget value.

    Sets up event handlers on the given target DOM node for the given event names which may cause the input value to update, such as keyup or onclick events. In contrast to change events, such update events will @@ -5156,7 +5140,7 @@ trigger validation runs, e.g. when programmatically altering values.

    ComboButtons support the same properties as Dropdown.InitOptions but enforce -specific values for some properties and add aditional button specific +specific values for some properties and add additional button specific properties.

    @@ -5425,7 +5409,7 @@ choice value as second argument.

    - Documentation generated by JSDoc 3.6.11 on Tue Nov 15 2022 18:54:13 GMT+0000 (Coordinated Universal Time) + Documentation generated by JSDoc 3.6.11 on Wed Mar 06 2024 05:14:50 GMT+0000 (Coordinated Universal Time)
    diff --git a/jsapi/LuCI.ui.Combobox.html b/jsapi/LuCI.ui.Combobox.html index 6ddcf6b6e6..78563a2601 100644 --- a/jsapi/LuCI.ui.Combobox.html +++ b/jsapi/LuCI.ui.Combobox.html @@ -819,6 +819,10 @@
  • enabled
  • +
  • tooltip
  • + +
  • tooltipicon
  • +
  • datatype
  • default
  • @@ -935,10 +939,6 @@
  • tabbed
  • -
  • tooltip
  • - -
  • tooltipicon
  • -
  • uciconfig
  • @@ -1545,12 +1545,6 @@ Members -
  • addbtntitle
  • - -
  • addremove
  • - -
  • anonymous
  • -
  • extedit
  • max_cols
  • @@ -1565,8 +1559,6 @@
  • sortable
  • -
  • uciconfig
  • -
  • addbtntitle
  • addremove
  • @@ -1577,10 +1569,6 @@
  • tabbed
  • -
  • tooltip
  • - -
  • tooltipicon
  • -
  • uciconfig
  • @@ -1743,10 +1731,6 @@
  • tabbed
  • -
  • tooltip
  • - -
  • tooltipicon
  • -
  • uciconfig
  • parentoption
  • @@ -3544,7 +3528,7 @@ to enter custom values. Historically, comboboxes used to be a dedicated widget type in LuCI but nowadays they are direct aliases of dropdown widgets with a set of enforced default properties for easier instantiation.

    UI widget instances are usually not supposed to be created by view code -directly, instead they're implicitely created by LuCI.form when +directly, instead they're implicitly created by LuCI.form when instantiating CBI forms.

    This class is automatically instantiated as part of LuCI.ui. To use it in views, use 'require ui' and refer to ui.Combobox. To import it in @@ -3568,7 +3552,7 @@ external JavaScript, use L.require("ui").then(...) and ac

    @@ -3796,7 +3780,7 @@ choice labels.

    @@ -3942,7 +3926,7 @@ as label text. Choice labels may be any valid value accepted by
    @@ -4079,7 +4063,7 @@ of keeping them.

    @@ -4333,7 +4317,7 @@ of keeping them.

    Returns true if the input value has been altered by the user or -false if it is unchaged. Note that if the user modifies the initial +false if it is unchanged. Note that if the user modifies the initial value and changes it back to the original state, it is still reported as changed. @@ -4645,7 +4629,7 @@ registered.

    -

    Setup listeners for native DOM events that may change the widget value.

    +

    Set up listeners for native DOM events that may change the widget value.

    Sets up event handlers on the given target DOM node for the given event names which may cause the input value to change completely, such as change events in a select menu. In contrast to update events, such @@ -4929,7 +4913,7 @@ inputs, not to radio buttons, selects or similar.

    -

    Setup listeners for native DOM events that may update the widget value.

    +

    Set up listeners for native DOM events that may update the widget value.

    Sets up event handlers on the given target DOM node for the given event names which may cause the input value to update, such as keyup or onclick events. In contrast to change events, such update events will @@ -5328,7 +5312,7 @@ forcibly set to true.

    - Documentation generated by JSDoc 3.6.11 on Tue Nov 15 2022 18:54:13 GMT+0000 (Coordinated Universal Time) + Documentation generated by JSDoc 3.6.11 on Wed Mar 06 2024 05:14:50 GMT+0000 (Coordinated Universal Time)
    diff --git a/jsapi/LuCI.ui.Dropdown.html b/jsapi/LuCI.ui.Dropdown.html index 2e07548b96..baafd54fca 100644 --- a/jsapi/LuCI.ui.Dropdown.html +++ b/jsapi/LuCI.ui.Dropdown.html @@ -819,6 +819,10 @@
  • enabled
  • +
  • tooltip
  • + +
  • tooltipicon
  • +
  • datatype
  • default
  • @@ -935,10 +939,6 @@
  • tabbed
  • -
  • tooltip
  • - -
  • tooltipicon
  • -
  • uciconfig
  • @@ -1545,12 +1545,6 @@ Members -
  • addbtntitle
  • - -
  • addremove
  • - -
  • anonymous
  • -
  • extedit
  • max_cols
  • @@ -1565,8 +1559,6 @@
  • sortable
  • -
  • uciconfig
  • -
  • addbtntitle
  • addremove
  • @@ -1577,10 +1569,6 @@
  • tabbed
  • -
  • tooltip
  • - -
  • tooltipicon
  • -
  • uciconfig
  • @@ -1743,10 +1731,6 @@
  • tabbed
  • -
  • tooltip
  • - -
  • tooltipicon
  • -
  • uciconfig
  • parentoption
  • @@ -3542,7 +3526,7 @@

    The Dropdown class implements a rich, stylable dropdown menu which supports non-text choice labels.

    UI widget instances are usually not supposed to be created by view code -directly, instead they're implicitely created by LuCI.form when +directly, instead they're implicitly created by LuCI.form when instantiating CBI forms.

    This class is automatically instantiated as part of LuCI.ui. To use it in views, use 'require ui' and refer to ui.Dropdown. To import it in @@ -3566,7 +3550,7 @@ external JavaScript, use L.require("ui").then(...) and ac

    @@ -3792,7 +3776,7 @@ choice labels.

    @@ -3936,7 +3920,7 @@ as label text. Choice labels may be any valid value accepted by @@ -4071,7 +4055,7 @@ of keeping them.

    @@ -4246,7 +4230,7 @@ of keeping them.

    @@ -4436,7 +4420,7 @@ an array of strings or null for unset values. Returns true if the input value has been altered by the user or -false if it is unchaged. Note that if the user modifies the initial +false if it is unchanged. Note that if the user modifies the initial value and changes it back to the original state, it is still reported as changed. @@ -4737,7 +4721,7 @@ registered.

    @@ -4748,7 +4732,7 @@ registered.

    -

    Render the widget, setup event listeners and return resulting markup.

    +

    Render the widget, set up event listeners and return resulting markup.

    @@ -4851,7 +4835,7 @@ widget markup.
    -

    Setup listeners for native DOM events that may change the widget value.

    +

    Set up listeners for native DOM events that may change the widget value.

    Sets up event handlers on the given target DOM node for the given event names which may cause the input value to change completely, such as change events in a select menu. In contrast to update events, such @@ -5135,7 +5119,7 @@ inputs, not to radio buttons, selects or similar.

    -

    Setup listeners for native DOM events that may update the widget value.

    +

    Set up listeners for native DOM events that may update the widget value.

    Sets up event handlers on the given target DOM node for the given event names which may cause the input value to update, such as keyup or onclick events. In contrast to change events, such update events will @@ -5281,7 +5265,7 @@ trigger input value validation.

    @@ -6126,7 +6110,7 @@ expression. Only applicable when create is true.

    - Documentation generated by JSDoc 3.6.11 on Tue Nov 15 2022 18:54:13 GMT+0000 (Coordinated Universal Time) + Documentation generated by JSDoc 3.6.11 on Wed Mar 06 2024 05:14:50 GMT+0000 (Coordinated Universal Time)
    diff --git a/jsapi/LuCI.ui.DynamicList.html b/jsapi/LuCI.ui.DynamicList.html index 42451123ce..51036250de 100644 --- a/jsapi/LuCI.ui.DynamicList.html +++ b/jsapi/LuCI.ui.DynamicList.html @@ -819,6 +819,10 @@
  • enabled
  • +
  • tooltip
  • + +
  • tooltipicon
  • +
  • datatype
  • default
  • @@ -935,10 +939,6 @@
  • tabbed
  • -
  • tooltip
  • - -
  • tooltipicon
  • -
  • uciconfig
  • @@ -1545,12 +1545,6 @@ Members -
  • addbtntitle
  • - -
  • addremove
  • - -
  • anonymous
  • -
  • extedit
  • max_cols
  • @@ -1565,8 +1559,6 @@
  • sortable
  • -
  • uciconfig
  • -
  • addbtntitle
  • addremove
  • @@ -1577,10 +1569,6 @@
  • tabbed
  • -
  • tooltip
  • - -
  • tooltipicon
  • -
  • uciconfig
  • @@ -1743,10 +1731,6 @@
  • tabbed
  • -
  • tooltip
  • - -
  • tooltipicon
  • -
  • uciconfig
  • parentoption
  • @@ -3543,7 +3527,7 @@ an arbitrary amount of input values, either from free formed text input or from a set of predefined choices.

    UI widget instances are usually not supposed to be created by view code -directly, instead they're implicitely created by LuCI.form when +directly, instead they're implicitly created by LuCI.form when instantiating CBI forms.

    This class is automatically instantiated as part of LuCI.ui. To use it in views, use 'require ui' and refer to ui.DynamicList. To import it in @@ -3567,7 +3551,7 @@ external JavaScript, use L.require("ui").then(...) and ac

    @@ -3797,7 +3781,7 @@ arbitrary values to the dynamic list.

    @@ -3941,7 +3925,7 @@ as label text. Choice labels may be any valid value accepted by @@ -4117,7 +4101,7 @@ as label text. Choice labels may be any valid value accepted by @@ -4307,7 +4291,7 @@ an array of strings or null for unset values. Returns true if the input value has been altered by the user or -false if it is unchaged. Note that if the user modifies the initial +false if it is unchanged. Note that if the user modifies the initial value and changes it back to the original state, it is still reported as changed. @@ -4608,7 +4592,7 @@ registered.

    @@ -4619,7 +4603,7 @@ registered.

    -

    Render the widget, setup event listeners and return resulting markup.

    +

    Render the widget, set up event listeners and return resulting markup.

    @@ -4722,7 +4706,7 @@ widget markup.
    -

    Setup listeners for native DOM events that may change the widget value.

    +

    Set up listeners for native DOM events that may change the widget value.

    Sets up event handlers on the given target DOM node for the given event names which may cause the input value to change completely, such as change events in a select menu. In contrast to update events, such @@ -5006,7 +4990,7 @@ inputs, not to radio buttons, selects or similar.

    -

    Setup listeners for native DOM events that may update the widget value.

    +

    Set up listeners for native DOM events that may update the widget value.

    Sets up event handlers on the given target DOM node for the given event names which may cause the input value to update, such as keyup or onclick events. In contrast to change events, such update events will @@ -5152,7 +5136,7 @@ trigger input value validation.

    @@ -5360,7 +5344,7 @@ trigger validation runs, e.g. when programmatically altering values.

    -

    In case choices are passed to the dynamic list contructor, the widget +

    In case choices are passed to the dynamic list constructor, the widget supports the same properties as Dropdown.InitOptions but enforces specific values for some dropdown properties.

    @@ -5503,7 +5487,7 @@ it to remain unselected.

    - Documentation generated by JSDoc 3.6.11 on Tue Nov 15 2022 18:54:13 GMT+0000 (Coordinated Universal Time) + Documentation generated by JSDoc 3.6.11 on Wed Mar 06 2024 05:14:50 GMT+0000 (Coordinated Universal Time)
    diff --git a/jsapi/LuCI.ui.FileUpload.html b/jsapi/LuCI.ui.FileUpload.html index fde12daa85..48fa014de4 100644 --- a/jsapi/LuCI.ui.FileUpload.html +++ b/jsapi/LuCI.ui.FileUpload.html @@ -819,6 +819,10 @@
  • enabled
  • +
  • tooltip
  • + +
  • tooltipicon
  • +
  • datatype
  • default
  • @@ -935,10 +939,6 @@
  • tabbed
  • -
  • tooltip
  • - -
  • tooltipicon
  • -
  • uciconfig
  • @@ -1545,12 +1545,6 @@ Members -
  • addbtntitle
  • - -
  • addremove
  • - -
  • anonymous
  • -
  • extedit
  • max_cols
  • @@ -1565,8 +1559,6 @@
  • sortable
  • -
  • uciconfig
  • -
  • addbtntitle
  • addremove
  • @@ -1577,10 +1569,6 @@
  • tabbed
  • -
  • tooltip
  • - -
  • tooltipicon
  • -
  • uciconfig
  • @@ -1743,10 +1731,6 @@
  • tabbed
  • -
  • tooltip
  • - -
  • tooltipicon
  • -
  • uciconfig
  • parentoption
  • @@ -3542,7 +3526,7 @@

    The FileUpload class implements a widget which allows the user to upload, browse, select and delete files beneath a predefined remote directory.

    UI widget instances are usually not supposed to be created by view code -directly, instead they're implicitely created by LuCI.form when +directly, instead they're implicitly created by LuCI.form when instantiating CBI forms.

    This class is automatically instantiated as part of LuCI.ui. To use it in views, use 'require ui' and refer to ui.FileUpload. To import it in @@ -3566,7 +3550,7 @@ external JavaScript, use L.require("ui").then(...) and ac

    @@ -3863,7 +3847,7 @@ upload control.

    @@ -4053,7 +4037,7 @@ an array of strings or null for unset values. Returns true if the input value has been altered by the user or -false if it is unchaged. Note that if the user modifies the initial +false if it is unchanged. Note that if the user modifies the initial value and changes it back to the original state, it is still reported as changed. @@ -4354,7 +4338,7 @@ registered.

    @@ -4365,7 +4349,7 @@ registered.

    -

    Render the widget, setup event listeners and return resulting markup.

    +

    Render the widget, set up event listeners and return resulting markup.

    @@ -4468,7 +4452,7 @@ widget markup.
    -

    Setup listeners for native DOM events that may change the widget value.

    +

    Set up listeners for native DOM events that may change the widget value.

    Sets up event handlers on the given target DOM node for the given event names which may cause the input value to change completely, such as change events in a select menu. In contrast to update events, such @@ -4752,7 +4736,7 @@ inputs, not to radio buttons, selects or similar.

    -

    Setup listeners for native DOM events that may update the widget value.

    +

    Set up listeners for native DOM events that may update the widget value.

    Sets up event handlers on the given target DOM node for the given event names which may cause the input value to update, such as keyup or onclick events. In contrast to change events, such update events will @@ -4898,7 +4882,7 @@ trigger input value validation.

    @@ -5298,9 +5282,9 @@ merely controls whether the file remove controls are rendered or not.

    Specifies the remote directory the upload and file browsing actions take -place in. Browsing to directories outside of the root directory is +place in. Browsing to directories outside the root directory is prevented by the widget. Note that this is not a security feature. -Whether remote directories are browseable or not solely depends on the +Whether remote directories are browsable or not solely depends on the ACL setup for the current session.

    @@ -5352,7 +5336,7 @@ ACL setup for the current session.

    - Documentation generated by JSDoc 3.6.11 on Tue Nov 15 2022 18:54:13 GMT+0000 (Coordinated Universal Time) + Documentation generated by JSDoc 3.6.11 on Wed Mar 06 2024 05:14:50 GMT+0000 (Coordinated Universal Time)
    diff --git a/jsapi/LuCI.ui.Hiddenfield.html b/jsapi/LuCI.ui.Hiddenfield.html index ea1757efe3..60ab6329cb 100644 --- a/jsapi/LuCI.ui.Hiddenfield.html +++ b/jsapi/LuCI.ui.Hiddenfield.html @@ -819,6 +819,10 @@
  • enabled
  • +
  • tooltip
  • + +
  • tooltipicon
  • +
  • datatype
  • default
  • @@ -935,10 +939,6 @@
  • tabbed
  • -
  • tooltip
  • - -
  • tooltipicon
  • -
  • uciconfig
  • @@ -1545,12 +1545,6 @@ Members -
  • addbtntitle
  • - -
  • addremove
  • - -
  • anonymous
  • -
  • extedit
  • max_cols
  • @@ -1565,8 +1559,6 @@
  • sortable
  • -
  • uciconfig
  • -
  • addbtntitle
  • addremove
  • @@ -1577,10 +1569,6 @@
  • tabbed
  • -
  • tooltip
  • - -
  • tooltipicon
  • -
  • uciconfig
  • @@ -1743,10 +1731,6 @@
  • tabbed
  • -
  • tooltip
  • - -
  • tooltipicon
  • -
  • uciconfig
  • parentoption
  • @@ -3542,7 +3526,7 @@

    The Hiddenfield class implements an HTML <input type="hidden"> field which allows to store form data without exposing it to the user.

    UI widget instances are usually not supposed to be created by view code -directly, instead they're implicitely created by LuCI.form when +directly, instead they're implicitly created by LuCI.form when instantiating CBI forms.

    This class is automatically instantiated as part of LuCI.ui. To use it in views, use 'require ui' and refer to ui.Hiddenfield. To import it in @@ -3566,7 +3550,7 @@ external JavaScript, use L.require("ui").then(...) and ac

    @@ -3862,7 +3846,7 @@ external JavaScript, use L.require("ui").then(...) and ac @@ -4052,7 +4036,7 @@ an array of strings or null for unset values. Returns true if the input value has been altered by the user or -false if it is unchaged. Note that if the user modifies the initial +false if it is unchanged. Note that if the user modifies the initial value and changes it back to the original state, it is still reported as changed. @@ -4353,7 +4337,7 @@ registered.

    @@ -4364,7 +4348,7 @@ registered.

    -

    Render the widget, setup event listeners and return resulting markup.

    +

    Render the widget, set up event listeners and return resulting markup.

    @@ -4467,7 +4451,7 @@ widget markup.
    -

    Setup listeners for native DOM events that may change the widget value.

    +

    Set up listeners for native DOM events that may change the widget value.

    Sets up event handlers on the given target DOM node for the given event names which may cause the input value to change completely, such as change events in a select menu. In contrast to update events, such @@ -4751,7 +4735,7 @@ inputs, not to radio buttons, selects or similar.

    -

    Setup listeners for native DOM events that may update the widget value.

    +

    Set up listeners for native DOM events that may update the widget value.

    Sets up event handlers on the given target DOM node for the given event names which may cause the input value to update, such as keyup or onclick events. In contrast to change events, such update events will @@ -4897,7 +4881,7 @@ trigger input value validation.

    @@ -5106,7 +5090,7 @@ trigger validation runs, e.g. when programmatically altering values.

    - Documentation generated by JSDoc 3.6.11 on Tue Nov 15 2022 18:54:13 GMT+0000 (Coordinated Universal Time) + Documentation generated by JSDoc 3.6.11 on Wed Mar 06 2024 05:14:50 GMT+0000 (Coordinated Universal Time)
    diff --git a/jsapi/LuCI.ui.Select.html b/jsapi/LuCI.ui.Select.html index e612f1a372..d2a42e2d08 100644 --- a/jsapi/LuCI.ui.Select.html +++ b/jsapi/LuCI.ui.Select.html @@ -819,6 +819,10 @@
  • enabled
  • +
  • tooltip
  • + +
  • tooltipicon
  • +
  • datatype
  • default
  • @@ -935,10 +939,6 @@
  • tabbed
  • -
  • tooltip
  • - -
  • tooltipicon
  • -
  • uciconfig
  • @@ -1545,12 +1545,6 @@ Members -
  • addbtntitle
  • - -
  • addremove
  • - -
  • anonymous
  • -
  • extedit
  • max_cols
  • @@ -1565,8 +1559,6 @@
  • sortable
  • -
  • uciconfig
  • -
  • addbtntitle
  • addremove
  • @@ -1577,10 +1569,6 @@
  • tabbed
  • -
  • tooltip
  • - -
  • tooltipicon
  • -
  • uciconfig
  • @@ -1743,10 +1731,6 @@
  • tabbed
  • -
  • tooltip
  • - -
  • tooltipicon
  • -
  • uciconfig
  • parentoption
  • @@ -3543,7 +3527,7 @@ or a group of checkboxes or radio buttons, depending on whether multiple values are enabled or not.

    UI widget instances are usually not supposed to be created by view code -directly, instead they're implicitely created by LuCI.form when +directly, instead they're implicitly created by LuCI.form when instantiating CBI forms.

    This class is automatically instantiated as part of LuCI.ui. To use it in views, use 'require ui' and refer to ui.Select. To import it in @@ -3567,7 +3551,7 @@ external JavaScript, use L.require("ui").then(...) and ac

    @@ -3897,7 +3881,7 @@ choice labels.

    @@ -4087,7 +4071,7 @@ an array of strings or null for unset values. Returns true if the input value has been altered by the user or -false if it is unchaged. Note that if the user modifies the initial +false if it is unchanged. Note that if the user modifies the initial value and changes it back to the original state, it is still reported as changed. @@ -4388,7 +4372,7 @@ registered.

    @@ -4399,7 +4383,7 @@ registered.

    -

    Render the widget, setup event listeners and return resulting markup.

    +

    Render the widget, set up event listeners and return resulting markup.

    @@ -4502,7 +4486,7 @@ widget markup.
    -

    Setup listeners for native DOM events that may change the widget value.

    +

    Set up listeners for native DOM events that may change the widget value.

    Sets up event handlers on the given target DOM node for the given event names which may cause the input value to change completely, such as change events in a select menu. In contrast to update events, such @@ -4786,7 +4770,7 @@ inputs, not to radio buttons, selects or similar.

    -

    Setup listeners for native DOM events that may update the widget value.

    +

    Set up listeners for native DOM events that may update the widget value.

    Sets up event handlers on the given target DOM node for the given event names which may cause the input value to update, such as keyup or onclick events. In contrast to change events, such update events will @@ -4932,7 +4916,7 @@ trigger input value validation.

    @@ -5222,7 +5206,10 @@ the following properties are recognized:

    -string +"select" +| + +"individual" @@ -5455,7 +5442,7 @@ selected yet. Only applicable to the select widget type.

    - Documentation generated by JSDoc 3.6.11 on Tue Nov 15 2022 18:54:14 GMT+0000 (Coordinated Universal Time) + Documentation generated by JSDoc 3.6.11 on Wed Mar 06 2024 05:14:50 GMT+0000 (Coordinated Universal Time)
    diff --git a/jsapi/LuCI.ui.Textarea.html b/jsapi/LuCI.ui.Textarea.html index 7bc8eeb280..3f342d85e9 100644 --- a/jsapi/LuCI.ui.Textarea.html +++ b/jsapi/LuCI.ui.Textarea.html @@ -819,6 +819,10 @@
  • enabled
  • +
  • tooltip
  • + +
  • tooltipicon
  • +
  • datatype
  • default
  • @@ -935,10 +939,6 @@
  • tabbed
  • -
  • tooltip
  • - -
  • tooltipicon
  • -
  • uciconfig
  • @@ -1545,12 +1545,6 @@ Members -
  • addbtntitle
  • - -
  • addremove
  • - -
  • anonymous
  • -
  • extedit
  • max_cols
  • @@ -1565,8 +1559,6 @@
  • sortable
  • -
  • uciconfig
  • -
  • addbtntitle
  • addremove
  • @@ -1577,10 +1569,6 @@
  • tabbed
  • -
  • tooltip
  • - -
  • tooltipicon
  • -
  • uciconfig
  • @@ -1743,10 +1731,6 @@
  • tabbed
  • -
  • tooltip
  • - -
  • tooltipicon
  • -
  • uciconfig
  • parentoption
  • @@ -3541,7 +3525,7 @@

    The Textarea class implements a multiline text area input field.

    UI widget instances are usually not supposed to be created by view code -directly, instead they're implicitely created by LuCI.form when +directly, instead they're implicitly created by LuCI.form when instantiating CBI forms.

    This class is automatically instantiated as part of LuCI.ui. To use it in views, use 'require ui' and refer to ui.Textarea. To import it in @@ -3565,7 +3549,7 @@ external JavaScript, use L.require("ui").then(...) and ac

    @@ -3858,7 +3842,7 @@ external JavaScript, use L.require("ui").then(...) and ac @@ -4048,7 +4032,7 @@ an array of strings or null for unset values. Returns true if the input value has been altered by the user or -false if it is unchaged. Note that if the user modifies the initial +false if it is unchanged. Note that if the user modifies the initial value and changes it back to the original state, it is still reported as changed. @@ -4349,7 +4333,7 @@ registered.

    @@ -4360,7 +4344,7 @@ registered.

    -

    Render the widget, setup event listeners and return resulting markup.

    +

    Render the widget, set up event listeners and return resulting markup.

    @@ -4463,7 +4447,7 @@ widget markup.
    -

    Setup listeners for native DOM events that may change the widget value.

    +

    Set up listeners for native DOM events that may change the widget value.

    Sets up event handlers on the given target DOM node for the given event names which may cause the input value to change completely, such as change events in a select menu. In contrast to update events, such @@ -4747,7 +4731,7 @@ inputs, not to radio buttons, selects or similar.

    -

    Setup listeners for native DOM events that may update the widget value.

    +

    Set up listeners for native DOM events that may update the widget value.

    Sets up event handlers on the given target DOM node for the given event names which may cause the input value to update, such as keyup or onclick events. In contrast to change events, such update events will @@ -4893,7 +4877,7 @@ trigger input value validation.

    @@ -5404,7 +5388,7 @@ contents.

    - Documentation generated by JSDoc 3.6.11 on Tue Nov 15 2022 18:54:14 GMT+0000 (Coordinated Universal Time) + Documentation generated by JSDoc 3.6.11 on Wed Mar 06 2024 05:14:50 GMT+0000 (Coordinated Universal Time)
    diff --git a/jsapi/LuCI.ui.Textfield.html b/jsapi/LuCI.ui.Textfield.html index 9bc196754c..8ff48e491b 100644 --- a/jsapi/LuCI.ui.Textfield.html +++ b/jsapi/LuCI.ui.Textfield.html @@ -819,6 +819,10 @@
  • enabled
  • +
  • tooltip
  • + +
  • tooltipicon
  • +
  • datatype
  • default
  • @@ -935,10 +939,6 @@
  • tabbed
  • -
  • tooltip
  • - -
  • tooltipicon
  • -
  • uciconfig
  • @@ -1545,12 +1545,6 @@ Members -
  • addbtntitle
  • - -
  • addremove
  • - -
  • anonymous
  • -
  • extedit
  • max_cols
  • @@ -1565,8 +1559,6 @@
  • sortable
  • -
  • uciconfig
  • -
  • addbtntitle
  • addremove
  • @@ -1577,10 +1569,6 @@
  • tabbed
  • -
  • tooltip
  • - -
  • tooltipicon
  • -
  • uciconfig
  • @@ -1743,10 +1731,6 @@
  • tabbed
  • -
  • tooltip
  • - -
  • tooltipicon
  • -
  • uciconfig
  • parentoption
  • @@ -3541,7 +3525,7 @@

    The Textfield class implements a standard single line text input field.

    UI widget instances are usually not supposed to be created by view code -directly, instead they're implicitely created by LuCI.form when +directly, instead they're implicitly created by LuCI.form when instantiating CBI forms.

    This class is automatically instantiated as part of LuCI.ui. To use it in views, use 'require ui' and refer to ui.Textfield. To import it in @@ -3858,7 +3842,7 @@ external JavaScript, use L.require("ui").then(...) and ac

    @@ -4048,7 +4032,7 @@ an array of strings or null for unset values. Returns true if the input value has been altered by the user or -false if it is unchaged. Note that if the user modifies the initial +false if it is unchanged. Note that if the user modifies the initial value and changes it back to the original state, it is still reported as changed. @@ -4360,7 +4344,7 @@ registered.

    -

    Render the widget, setup event listeners and return resulting markup.

    +

    Render the widget, set up event listeners and return resulting markup.

    @@ -4463,7 +4447,7 @@ widget markup.
    -

    Setup listeners for native DOM events that may change the widget value.

    +

    Set up listeners for native DOM events that may change the widget value.

    Sets up event handlers on the given target DOM node for the given event names which may cause the input value to change completely, such as change events in a select menu. In contrast to update events, such @@ -4747,7 +4731,7 @@ inputs, not to radio buttons, selects or similar.

    -

    Setup listeners for native DOM events that may update the widget value.

    +

    Set up listeners for native DOM events that may update the widget value.

    Sets up event handlers on the given target DOM node for the given event names which may cause the input value to update, such as keyup or onclick events. In contrast to change events, such update events will @@ -4893,7 +4877,7 @@ trigger input value validation.

    @@ -5332,7 +5316,7 @@ corresponding <input> element is empty.

    - Documentation generated by JSDoc 3.6.11 on Tue Nov 15 2022 18:54:14 GMT+0000 (Coordinated Universal Time) + Documentation generated by JSDoc 3.6.11 on Wed Mar 06 2024 05:14:50 GMT+0000 (Coordinated Universal Time)
    diff --git a/jsapi/LuCI.ui.changes.html b/jsapi/LuCI.ui.changes.html index 8bc997b6fe..30349dd9e3 100644 --- a/jsapi/LuCI.ui.changes.html +++ b/jsapi/LuCI.ui.changes.html @@ -819,6 +819,10 @@
  • enabled
  • +
  • tooltip
  • + +
  • tooltipicon
  • +
  • datatype
  • default
  • @@ -935,10 +939,6 @@
  • tabbed
  • -
  • tooltip
  • - -
  • tooltipicon
  • -
  • uciconfig
  • @@ -1545,12 +1545,6 @@ Members -
  • addbtntitle
  • - -
  • addremove
  • - -
  • anonymous
  • -
  • extedit
  • max_cols
  • @@ -1565,8 +1559,6 @@
  • sortable
  • -
  • uciconfig
  • -
  • addbtntitle
  • addremove
  • @@ -1577,10 +1569,6 @@
  • tabbed
  • -
  • tooltip
  • - -
  • tooltipicon
  • -
  • uciconfig
  • @@ -1743,10 +1731,6 @@
  • tabbed
  • -
  • tooltip
  • - -
  • tooltipicon
  • -
  • uciconfig
  • parentoption
  • @@ -3563,7 +3547,7 @@ external JavaScript, use L.require("ui").then(...) and ac @@ -3648,7 +3632,7 @@ external JavaScript, use L.require("ui").then(...) and ac @@ -3789,7 +3773,7 @@ settings.

    @@ -3862,7 +3846,7 @@ and offer options to revert or apply the shown changes.

    @@ -3980,7 +3964,7 @@ UCI changeset structure.

    @@ -4051,12 +4035,12 @@ complete.

    - setIndicator(numChanges) + setIndicator(n)

    @@ -4102,7 +4086,7 @@ is removed.

    - numChanges + n @@ -4184,7 +4168,7 @@ is removed.

    - Documentation generated by JSDoc 3.6.11 on Tue Nov 15 2022 18:54:13 GMT+0000 (Coordinated Universal Time) + Documentation generated by JSDoc 3.6.11 on Wed Mar 06 2024 05:14:50 GMT+0000 (Coordinated Universal Time)
    diff --git a/jsapi/LuCI.ui.html b/jsapi/LuCI.ui.html index a90197bf56..4b4dc8be6f 100644 --- a/jsapi/LuCI.ui.html +++ b/jsapi/LuCI.ui.html @@ -819,6 +819,10 @@
  • enabled
  • +
  • tooltip
  • + +
  • tooltipicon
  • +
  • datatype
  • default
  • @@ -935,10 +939,6 @@
  • tabbed
  • -
  • tooltip
  • - -
  • tooltipicon
  • -
  • uciconfig
  • @@ -1545,12 +1545,6 @@ Members -
  • addbtntitle
  • - -
  • addremove
  • - -
  • anonymous
  • -
  • extedit
  • max_cols
  • @@ -1565,8 +1559,6 @@
  • sortable
  • -
  • uciconfig
  • -
  • addbtntitle
  • addremove
  • @@ -1577,10 +1569,6 @@
  • tabbed
  • -
  • tooltip
  • - -
  • tooltipicon
  • -
  • uciconfig
  • @@ -1743,10 +1731,6 @@
  • tabbed
  • -
  • tooltip
  • - -
  • tooltipicon
  • -
  • uciconfig
  • parentoption
  • @@ -3560,7 +3544,7 @@ external JavaScript, use L.require("ui").then(...).

    - ui.js, line 3444 + ui.js, line 3481 @@ -3686,12 +3670,12 @@ external JavaScript, use L.require("ui").then(...).

    - addNotification(title, contents, classes){Node} + addNotification(title, children, classes){Node}

    @@ -3704,10 +3688,10 @@ external JavaScript, use L.require("ui").then(...).

    Add a notification banner at the top of the current view.

    A notification banner is an alert message usually displayed at the -top of the current view, spanning the entire availibe width. +top of the current view, spanning the entire available width. Notification banners will stay in place until dismissed by the user. Multiple banners may be shown at the same time.

    -

    Additional CSS class names may be passed to influence the appearence of +

    Additional CSS class names may be passed to influence the appearance of the banner. Valid values for the classes depend on the underlying theme.

    @@ -3770,7 +3754,7 @@ will be rendered.

    - contents + children @@ -3921,7 +3905,7 @@ banner element.

    @@ -4235,7 +4219,7 @@ trigger field validation or to bind it to further events. @@ -4372,7 +4356,7 @@ default.

    @@ -4598,7 +4582,7 @@ valid function value. @@ -4609,7 +4593,7 @@ valid function value.
    -

    Remove an header area indicator.

    +

    Remove a header area indicator.

    This function removes the given indicator label from the header indicator area. When the given indicator is not found, this function does nothing.

    @@ -4746,7 +4730,7 @@ requested indicator was not found. @@ -4761,7 +4745,7 @@ requested indicator was not found.

    This function will close an open modal dialog and restore the normal view behaviour. It has no effect if no modal dialog is currently open.

    Note that this function is stand-alone, it does not rely on this and -will not invoke other class functions so it suitable to be used as event +will not invoke other class functions so it is suitable to be used as event handler as-is without the need to bind it first.

    @@ -4822,7 +4806,7 @@ handler as-is without the need to bind it first.

    @@ -4840,7 +4824,7 @@ resulting class instance is a descendant of LuCI.view.

    By instantiating the view class, its corresponding contents are rendered and included into the view area. Any runtime errors are -catched and rendered using LuCI.error().

    +caught and rendered using LuCI.error().

    @@ -4974,7 +4958,7 @@ catched and rendered using LuCI.error() - ui.js, line 3797 + ui.js, line 3855 @@ -4993,7 +4977,7 @@ separators and appends the resulting nodes to the given parent DOM node.

    <strong> element and the value corresponding to the label are subsequently wrapped into a <span class="nowrap"> element.

    The resulting <span> element tuples are joined by the given separators -to form the final markup which is appened to the given parent DOM node.

    +to form the final markup which is appended to the given parent DOM node.

    @@ -5211,12 +5195,12 @@ accepted by LuCI.dom.content().

    - pingDevice(proto, host){Promise.<Event>} + pingDevice(proto, ipaddr){Promise.<Event>}

    @@ -5228,7 +5212,7 @@ accepted by LuCI.dom.content().

    Perform a device connectivity test.

    -

    Attempt to fetch a well known ressource from the remote device via HTTP +

    Attempt to fetch a well known resource from the remote device via HTTP in order to test connectivity. This function is mainly useful to wait for the router to come back online after a reboot or reconfiguration.

    @@ -5300,7 +5284,7 @@ for the router to come back online after a reboot or reconfiguration.

    - host + ipaddr @@ -5419,7 +5403,7 @@ or rejecting with null when the connectivity check timed out. @@ -5430,7 +5414,7 @@ or rejecting with null when the connectivity check timed out.
    -

    Display or update an header area indicator.

    +

    Display or update a header area indicator.

    An indicator is a small label displayed in the header area of the screen providing few amounts of status information such as item counts or state toggle indicators.

    @@ -5579,7 +5563,10 @@ existing labels it is ignored.

    -string +"active" +| + +"inactive" @@ -5685,12 +5672,12 @@ changes were made.

    - showModal(title, contents, classes){Node} + showModal(title, children, classes){Node}

    @@ -5706,7 +5693,7 @@ changes were made. with the underlying view contents. Only one modal dialog instance can be opened. Invoking showModal() while a modal dialog is already open will replace the open dialog with a new one having the specified contents.

    -

    Additional CSS class names may be passed to influence the appearence of +

    Additional CSS class names may be passed to influence the appearance of the dialog. Valid values for the classes depend on the underlying theme.

    @@ -5768,7 +5755,7 @@ the dialog. Valid values for the classes depend on the underlying theme.

    - contents + children @@ -5914,12 +5901,12 @@ element.

    - uploadFile(path, progessStatusNode){Promise.<LuCI.ui.FileUploadReply>} + uploadFile(path, progressStatusNode){Promise.<LuCI.ui.FileUploadReply>}

    @@ -5991,7 +5978,7 @@ upload a file to a predefined remote destination path.

    - progessStatusNode + progressStatusNode @@ -6277,7 +6264,7 @@ cancelled by the user.
    - Documentation generated by JSDoc 3.6.11 on Tue Nov 15 2022 18:54:13 GMT+0000 (Coordinated Universal Time) + Documentation generated by JSDoc 3.6.11 on Wed Mar 06 2024 05:14:50 GMT+0000 (Coordinated Universal Time)
    diff --git a/jsapi/LuCI.ui.menu.html b/jsapi/LuCI.ui.menu.html index 9d6aa5205a..323073b12c 100644 --- a/jsapi/LuCI.ui.menu.html +++ b/jsapi/LuCI.ui.menu.html @@ -819,6 +819,10 @@
  • enabled
  • +
  • tooltip
  • + +
  • tooltipicon
  • +
  • datatype
  • default
  • @@ -935,10 +939,6 @@
  • tabbed
  • -
  • tooltip
  • - -
  • tooltipicon
  • -
  • uciconfig
  • @@ -1545,12 +1545,6 @@ Members -
  • addbtntitle
  • - -
  • addremove
  • - -
  • anonymous
  • -
  • extedit
  • max_cols
  • @@ -1565,8 +1559,6 @@
  • sortable
  • -
  • uciconfig
  • -
  • addbtntitle
  • addremove
  • @@ -1577,10 +1569,6 @@
  • tabbed
  • -
  • tooltip
  • - -
  • tooltipicon
  • -
  • uciconfig
  • @@ -1743,10 +1731,6 @@
  • tabbed
  • -
  • tooltip
  • - -
  • tooltipicon
  • -
  • uciconfig
  • parentoption
  • @@ -3558,7 +3542,7 @@ @@ -3647,7 +3631,7 @@ @@ -3719,7 +3703,7 @@ next page load.

    @@ -3868,7 +3852,7 @@ internal root node if omitted.

    @@ -4102,7 +4086,7 @@ internal root node if omitted.

    -satisified +satisfied @@ -4118,7 +4102,7 @@ internal root node if omitted.

    -

    Boolean indicating whether the menu enries dependencies are satisfied

    +

    Boolean indicating whether the menu entries dependencies are satisfied

    @@ -4231,7 +4215,7 @@ internal root node if omitted.

    - Documentation generated by JSDoc 3.6.11 on Tue Nov 15 2022 18:54:13 GMT+0000 (Coordinated Universal Time) + Documentation generated by JSDoc 3.6.11 on Wed Mar 06 2024 05:14:50 GMT+0000 (Coordinated Universal Time)
    diff --git a/jsapi/LuCI.ui.tabs.html b/jsapi/LuCI.ui.tabs.html index 0ce9c32154..da963d71af 100644 --- a/jsapi/LuCI.ui.tabs.html +++ b/jsapi/LuCI.ui.tabs.html @@ -819,6 +819,10 @@
  • enabled
  • +
  • tooltip
  • + +
  • tooltipicon
  • +
  • datatype
  • default
  • @@ -935,10 +939,6 @@
  • tabbed
  • -
  • tooltip
  • - -
  • tooltipicon
  • -
  • uciconfig
  • @@ -1545,12 +1545,6 @@ Members -
  • addbtntitle
  • - -
  • addremove
  • - -
  • anonymous
  • -
  • extedit
  • max_cols
  • @@ -1565,8 +1559,6 @@
  • sortable
  • -
  • uciconfig
  • -
  • addbtntitle
  • addremove
  • @@ -1577,10 +1569,6 @@
  • tabbed
  • -
  • tooltip
  • - -
  • tooltipicon
  • -
  • uciconfig
  • @@ -1743,10 +1731,6 @@
  • tabbed
  • -
  • tooltip
  • - -
  • tooltipicon
  • -
  • uciconfig
  • parentoption
  • @@ -3564,7 +3548,7 @@ external JavaScript, use L.require("ui").then(...) and ac @@ -3649,7 +3633,7 @@ external JavaScript, use L.require("ui").then(...) and ac @@ -3778,7 +3762,7 @@ DOM node.

    @@ -3931,7 +3915,7 @@ DOM node.

    - Documentation generated by JSDoc 3.6.11 on Tue Nov 15 2022 18:54:14 GMT+0000 (Coordinated Universal Time) + Documentation generated by JSDoc 3.6.11 on Wed Mar 06 2024 05:14:50 GMT+0000 (Coordinated Universal Time)
    diff --git a/jsapi/LuCI.view.html b/jsapi/LuCI.view.html index 63e87affda..f33946dac8 100644 --- a/jsapi/LuCI.view.html +++ b/jsapi/LuCI.view.html @@ -819,6 +819,10 @@
  • enabled
  • +
  • tooltip
  • + +
  • tooltipicon
  • +
  • datatype
  • default
  • @@ -935,10 +939,6 @@
  • tabbed
  • -
  • tooltip
  • - -
  • tooltipicon
  • -
  • uciconfig
  • @@ -1545,12 +1545,6 @@ Members -
  • addbtntitle
  • - -
  • addremove
  • - -
  • anonymous
  • -
  • extedit
  • max_cols
  • @@ -1565,8 +1559,6 @@
  • sortable
  • -
  • uciconfig
  • -
  • addbtntitle
  • addremove
  • @@ -1577,10 +1569,6 @@
  • tabbed
  • -
  • tooltip
  • - -
  • tooltipicon
  • -
  • uciconfig
  • @@ -1743,10 +1731,6 @@
  • tabbed
  • -
  • tooltip
  • - -
  • tooltipicon
  • -
  • uciconfig
  • parentoption
  • @@ -3899,7 +3883,7 @@ with null.

    Any return values of this function are discarded, but passed through Promise.resolve() to ensure that any returned promise runs to completion before the button -is reenabled. +is re-enabled. @@ -4063,7 +4047,7 @@ with null.

    Any return values of this function are discarded, but passed through Promise.resolve() to ensure that any returned promise runs to completion before the button -is reenabled. +is re-enabled. @@ -4229,7 +4213,7 @@ extending this base class should overwrite the Any return values of this function are discarded, but passed through Promise.resolve() to ensure that any returned promise runs to completion before the button -is reenabled. +is re-enabled. @@ -4535,7 +4519,7 @@ to a Node value.
    - Documentation generated by JSDoc 3.6.11 on Tue Nov 15 2022 18:54:14 GMT+0000 (Coordinated Universal Time) + Documentation generated by JSDoc 3.6.11 on Wed Mar 06 2024 05:14:50 GMT+0000 (Coordinated Universal Time)
    diff --git a/jsapi/LuCI.xhr.html b/jsapi/LuCI.xhr.html index 2576ffa1c2..6be1e07333 100644 --- a/jsapi/LuCI.xhr.html +++ b/jsapi/LuCI.xhr.html @@ -819,6 +819,10 @@
  • enabled
  • +
  • tooltip
  • + +
  • tooltipicon
  • +
  • datatype
  • default
  • @@ -935,10 +939,6 @@
  • tabbed
  • -
  • tooltip
  • - -
  • tooltipicon
  • -
  • uciconfig
  • @@ -1545,12 +1545,6 @@ Members -
  • addbtntitle
  • - -
  • addremove
  • - -
  • anonymous
  • -
  • extedit
  • max_cols
  • @@ -1565,8 +1559,6 @@
  • sortable
  • -
  • uciconfig
  • -
  • addbtntitle
  • addremove
  • @@ -1577,10 +1569,6 @@
  • tabbed
  • -
  • tooltip
  • - -
  • tooltipicon
  • -
  • uciconfig
  • @@ -1743,10 +1731,6 @@
  • tabbed
  • -
  • tooltip
  • - -
  • tooltipicon
  • -
  • uciconfig
  • parentoption
  • @@ -4499,7 +4483,7 @@ when invoked.

    - Documentation generated by JSDoc 3.6.11 on Tue Nov 15 2022 18:54:14 GMT+0000 (Coordinated Universal Time) + Documentation generated by JSDoc 3.6.11 on Wed Mar 06 2024 05:14:50 GMT+0000 (Coordinated Universal Time)
    diff --git a/jsapi/form.js.html b/jsapi/form.js.html index 48cf7f8e86..fdc3874ae7 100644 --- a/jsapi/form.js.html +++ b/jsapi/form.js.html @@ -819,6 +819,10 @@
  • enabled
  • +
  • tooltip
  • + +
  • tooltipicon
  • +
  • datatype
  • default
  • @@ -935,10 +939,6 @@
  • tabbed
  • -
  • tooltip
  • - -
  • tooltipicon
  • -
  • uciconfig
  • @@ -1545,12 +1545,6 @@ Members -
  • addbtntitle
  • - -
  • addremove
  • - -
  • anonymous
  • -
  • extedit
  • max_cols
  • @@ -1565,8 +1559,6 @@
  • sortable
  • -
  • uciconfig
  • -
  • addbtntitle
  • addremove
  • @@ -1577,10 +1569,6 @@
  • tabbed
  • -
  • tooltip
  • - -
  • tooltipicon
  • -
  • uciconfig
  • @@ -1743,10 +1731,6 @@
  • tabbed
  • -
  • tooltip
  • - -
  • tooltipicon
  • -
  • uciconfig
  • parentoption
  • @@ -3738,7 +3722,7 @@ var CBIAbstractElement = baseclass.extend(/** @lends LuCI.form.AbstractElement.p /** * Add another form element as children to this element. * - * @param {AbstractElement} element + * @param {AbstractElement} obj * The form element to add. */ append: function(obj) { @@ -3751,7 +3735,7 @@ var CBIAbstractElement = baseclass.extend(/** @lends LuCI.form.AbstractElement.p * The `parse()` function recursively walks the form element tree and * triggers input value reading and validation for each encountered element. * - * Elements which are hidden due to unsatisified dependencies are skipped. + * Elements which are hidden due to unsatisfied dependencies are skipped. * * @returns {Promise<void>} * Returns a promise resolving once this element's value and the values of @@ -3811,11 +3795,11 @@ var CBIAbstractElement = baseclass.extend(/** @lends LuCI.form.AbstractElement.p /** * Strip any HTML tags from the given input string. * - * @param {string} input + * @param {string} s * The input string to clean. * * @returns {string} - * The cleaned input string with HTML removes removed. + * The cleaned input string with HTML tags removed. */ stripTags: function(s) { if (typeof(s) == 'string' && !s.match(/[<>]/)) @@ -3882,7 +3866,7 @@ var CBIAbstractElement = baseclass.extend(/** @lends LuCI.form.AbstractElement.p * @classdesc * * The `Map` class represents one complete form. A form usually maps one UCI - * configuraton file and is divided into multiple sections containing multiple + * configuration file and is divided into multiple sections containing multiple * fields each. * * It serves as main entry point into the `LuCI.form` for typical view code. @@ -3898,7 +3882,7 @@ var CBIAbstractElement = baseclass.extend(/** @lends LuCI.form.AbstractElement.p * * @param {string} [description] * The description text of the form which is usually rendered as text - * paragraph below the form title and before the actual form conents. + * paragraph below the form title and before the actual form contents. * If omitted, the corresponding paragraph element will not be rendered. */ var CBIMap = CBIAbstractElement.extend(/** @lends LuCI.form.Map.prototype */ { @@ -4036,11 +4020,11 @@ var CBIMap = CBIAbstractElement.extend(/** @lends LuCI.form.Map.prototype */ { * @param {LuCI.form.AbstractSection} sectionclass * The section class to use for rendering the configuration section. * Note that this value must be the class itself, not a class instance - * obtained from calling `new`. It must also be a class dervied from + * obtained from calling `new`. It must also be a class derived from * `LuCI.form.AbstractSection`. * * @param {...string} classargs - * Additional arguments which are passed as-is to the contructor of the + * Additional arguments which are passed as-is to the constructor of the * given section class. Refer to the class specific constructor * documentation for details. * @@ -4092,7 +4076,7 @@ var CBIMap = CBIAbstractElement.extend(/** @lends LuCI.form.Map.prototype */ { * The `parse()` function recursively walks the form element tree and * triggers input value reading and validation for each child element. * - * Elements which are hidden due to unsatisified dependencies are skipped. + * Elements which are hidden due to unsatisfied dependencies are skipped. * * @returns {Promise<void>} * Returns a promise resolving once the entire form completed parsing all @@ -4122,7 +4106,7 @@ var CBIMap = CBIAbstractElement.extend(/** @lends LuCI.form.Map.prototype */ { * * @param {boolean} [silent=false] * If set to `true`, trigger an alert message to the user in case saving - * the form data failes. Otherwise fail silently. + * the form data failures. Otherwise fail silently. * * @returns {Promise<void>} * Returns a promise resolving once the entire save operation is complete. @@ -4222,15 +4206,15 @@ var CBIMap = CBIAbstractElement.extend(/** @lends LuCI.form.Map.prototype */ { /** * Find a form option element instance. * - * @param {string} name_or_id + * @param {string} name * The name or the full ID of the option element to look up. * * @param {string} [section_id] * The ID of the UCI section containing the option to look up. May be * omitted if a full ID is passed as first argument. * - * @param {string} [config] - * The name of the UCI configuration the option instance is belonging to. + * @param {string} [config_name] + * The name of the UCI configuration the option instance belongs to. * Defaults to the main UCI configuration of the map if omitted. * * @returns {Array<LuCI.form.AbstractValue,string>|null} @@ -4331,7 +4315,7 @@ var CBIMap = CBIAbstractElement.extend(/** @lends LuCI.form.Map.prototype */ { * * @param {string} [description] * The description text of the form which is usually rendered as text - * paragraph below the form title and before the actual form conents. + * paragraph below the form title and before the actual form contents. * If omitted, the corresponding paragraph element will not be rendered. */ var CBIJSONMap = CBIMap.extend(/** @lends LuCI.form.JSONMap.prototype */ { @@ -4455,7 +4439,7 @@ var CBIAbstractSection = CBIAbstractElement.extend(/** @lends LuCI.form.Abstract * triggers input value reading and validation for each encountered child * option element. * - * Options which are hidden due to unsatisified dependencies are skipped. + * Options which are hidden due to unsatisfied dependencies are skipped. * * @returns {Promise<void>} * Returns a promise resolving once the values of all child elements have @@ -4501,7 +4485,7 @@ var CBIAbstractSection = CBIAbstractElement.extend(/** @lends LuCI.form.Abstract * contents. If omitted, no description will be rendered. * * @throws {Error} - * Throws an exeption if a tab with the same `name` already exists. + * Throws an exception if a tab with the same `name` already exists. */ tab: function(name, title, description) { if (this.tabs && this.tabs[name]) @@ -4531,11 +4515,11 @@ var CBIAbstractSection = CBIAbstractElement.extend(/** @lends LuCI.form.Abstract * @param {LuCI.form.AbstractValue} optionclass * The option class to use for rendering the configuration option. Note * that this value must be the class itself, not a class instance obtained - * from calling `new`. It must also be a class dervied from + * from calling `new`. It must also be a class derived from * [LuCI.form.AbstractSection]{@link LuCI.form.AbstractSection}. * * @param {...*} classargs - * Additional arguments which are passed as-is to the contructor of the + * Additional arguments which are passed as-is to the constructor of the * given option class. Refer to the class specific constructor * documentation for details. * @@ -4558,17 +4542,17 @@ var CBIAbstractSection = CBIAbstractElement.extend(/** @lends LuCI.form.Abstract /** * Add a configuration option widget to a tab of the section. * - * @param {string} tabname + * @param {string} tabName * The name of the section tab to add the option element to. * * @param {LuCI.form.AbstractValue} optionclass * The option class to use for rendering the configuration option. Note * that this value must be the class itself, not a class instance obtained - * from calling `new`. It must also be a class dervied from + * from calling `new`. It must also be a class derived from * [LuCI.form.AbstractSection]{@link LuCI.form.AbstractSection}. * * @param {...*} classargs - * Additional arguments which are passed as-is to the contructor of the + * Additional arguments which are passed as-is to the constructor of the * given option class. Refer to the class specific constructor * documentation for details. * @@ -4911,7 +4895,7 @@ var CBIAbstractValue = CBIAbstractElement.extend(/** @lends LuCI.form.AbstractVa /** * If set to `true`, the underlying ui input widget value is not cleared - * from the configuration on unsatisfied depedencies. The default behavior + * from the configuration on unsatisfied dependencies. The default behavior * is to remove the values of all options whose dependencies are not * fulfilled. * @@ -5073,10 +5057,10 @@ var CBIAbstractValue = CBIAbstractElement.extend(/** @lends LuCI.form.AbstractVa */ /** - * Add a dependency contraint to the option. + * Add a dependency constraint to the option. * * Dependency constraints allow making the presence of option elements - * dependant on the current values of certain other options within the + * dependent on the current values of certain other options within the * same form. An option element with unsatisfied dependencies will be * hidden from the view and its current value is omitted when saving. * @@ -5088,7 +5072,7 @@ var CBIAbstractValue = CBIAbstractElement.extend(/** @lends LuCI.form.AbstractVa * a logical "and" expression. * * Option names may be given in "dot notation" which allows to reference - * option elements outside of the current form section. If a name without + * option elements outside the current form section. If a name without * dot is specified, it refers to an option within the same configuration * section. If specified as <code>configname.sectionid.optionname</code>, * options anywhere within the same form may be specified. @@ -5154,11 +5138,11 @@ var CBIAbstractValue = CBIAbstractElement.extend(/** @lends LuCI.form.AbstractVa * </li> * </ul> * - * @param {string|Object<string, string|RegExp>} optionname_or_depends + * @param {string|Object<string, string|RegExp>} field * The name of the option to depend on or an object describing multiple - * dependencies which must be satified (a logical "and" expression). + * dependencies which must be satisfied (a logical "and" expression). * - * @param {string} optionvalue|RegExp + * @param {string|RegExp} value * When invoked with a plain option name as first argument, this parameter * specifies the expected value. In case an object is passed as first * argument, this parameter is ignored. @@ -5793,7 +5777,7 @@ var CBITypedSection = CBIAbstractSection.extend(/** @lends LuCI.form.TypedSectio if (this.map.readonly !== true) { ui.addValidator(nameEl, 'uciname', true, function(v) { - var button = document.querySelector('.cbi-section-create > .cbi-button-add'); + var button = createEl.querySelector('.cbi-section-create > .cbi-button-add'); if (v !== '') { button.disabled = null; return true; @@ -5909,39 +5893,6 @@ var CBITypedSection = CBIAbstractSection.extend(/** @lends LuCI.form.TypedSectio var CBITableSection = CBITypedSection.extend(/** @lends LuCI.form.TableSection.prototype */ { __name__: 'CBI.TableSection', - /** - * If set to `true`, the user may add or remove instances from the form - * section widget, otherwise only preexisting sections may be edited. - * The default is `false`. - * - * @name LuCI.form.TableSection.prototype#addremove - * @type boolean - * @default false - */ - - /** - * If set to `true`, mapped section instances are treated as anonymous - * UCI sections, which means that section instance elements will be - * rendered without title element and that no name is required when adding - * new sections. The default is `false`. - * - * @name LuCI.form.TableSection.prototype#anonymous - * @type boolean - * @default false - */ - - /** - * Override the caption used for the section add button at the bottom of - * the section form element. If set to a string, it will be used as-is, - * if set to a function, the function will be invoked and its return value - * is used as caption, after converting it to a string. If this property - * is not set, the default is `Add`. - * - * @name LuCI.form.TableSection.prototype#addbtntitle - * @type string|function - * @default null - */ - /** * Override the per-section instance title caption shown in the first * column of the table unless `anonymous` is set to true. If set to a @@ -5972,17 +5923,6 @@ var CBITableSection = CBITypedSection.extend(/** @lends LuCI.form.TableSection.p * @default null */ - /** - * Override the UCI configuration name to read the section IDs from. By - * default, the configuration name is inherited from the parent `Map`. - * By setting this property, a deviating configuration may be specified. - * The default is `null`, means inheriting from the parent form. - * - * @name LuCI.form.TableSection.prototype#uciconfig - * @type string - * @default null - */ - /** * Specify a maximum amount of columns to display. By default, one table * column is rendered for each child option of the form section element. @@ -6660,7 +6600,7 @@ var CBITableSection = CBITypedSection.extend(/** @lends LuCI.form.TableSection.p * @returns {*|Promise<*>} * Return values of this function are ignored but if a promise is returned, * it is run to completion before the rendering is continued, allowing - * custom logic to perform asynchroneous work before the modal dialog + * custom logic to perform asynchronous work before the modal dialog * is shown. */ addModalOptions: function(modalSection, section_id, ev) { @@ -6745,8 +6685,17 @@ var CBITableSection = CBITypedSection.extend(/** @lends LuCI.form.TableSection.p return (stackedMap ? activeMap.save(null, true) : Promise.resolve()).then(L.bind(function() { section_id = sref['.name']; - var m = new CBIMap(parent.config, null, null), - s = m.section(CBINamedSection, section_id, this.sectiontype); + var m; + + if (parent instanceof CBIJSONMap) { + m = new CBIJSONMap(null, null, null); + m.data = parent.data; + } + else { + m = new CBIMap(parent.config, null, null); + } + + var s = m.section(CBINamedSection, section_id, this.sectiontype); m.parent = parent; m.section = section_id; @@ -6823,7 +6772,7 @@ var CBITableSection = CBITypedSection.extend(/** @lends LuCI.form.TableSection.p * * Another important difference is that the table cells show a readonly text * preview of the corresponding option elements by default, unless the child - * option element is explicitely made writable by setting the `editable` + * option element is explicitly made writable by setting the `editable` * property to `true`. * * Additionally, the grid section honours a `modalonly` property of child @@ -6872,7 +6821,7 @@ var CBIGridSection = CBITableSection.extend(/** @lends LuCI.form.GridSection.pro * contents. If omitted, no description will be rendered. * * @throws {Error} - * Throws an exeption if a tab with the same `name` already exists. + * Throws an exception if a tab with the same `name` already exists. */ tab: function(name, title, description) { CBIAbstractSection.prototype.tab.call(this, name, title, description); @@ -7190,7 +7139,7 @@ var CBIValue = CBIAbstractValue.extend(/** @lends LuCI.form.Value.prototype */ { * @param {string} key * The choice value to add. * - * @param {Node|string} value + * @param {Node|string} val * The caption for the choice value. May be a DOM node, a document fragment * or a plain text string. If omitted, the `key` value is used as caption. */ @@ -7402,7 +7351,7 @@ var CBIDynamicList = CBIValue.extend(/** @lends LuCI.form.DynamicList.prototype * @classdesc * * The `ListValue` class implements a simple static HTML select element - * allowing the user to chose a single value from a set of predefined choices. + * allowing the user to choose a single value from a set of predefined choices. * It builds upon the {@link LuCI.ui.Select} widget. * * @param {LuCI.form.Map|LuCI.form.JSONMap} form @@ -7532,7 +7481,7 @@ var CBIFlagValue = CBIValue.extend(/** @lends LuCI.form.FlagValue.prototype */ { * Sets the input value to use for the checkbox checked state. * * @name LuCI.form.FlagValue.prototype#enabled - * @type number + * @type string * @default 1 */ @@ -7540,7 +7489,7 @@ var CBIFlagValue = CBIValue.extend(/** @lends LuCI.form.FlagValue.prototype */ { * Sets the input value to use for the checkbox unchecked state. * * @name LuCI.form.FlagValue.prototype#disabled - * @type number + * @type string * @default 0 */ @@ -7553,18 +7502,18 @@ var CBIFlagValue = CBIValue.extend(/** @lends LuCI.form.FlagValue.prototype */ { * value will be shown as a tooltip. If the return value of the function * is `null` no tooltip will be set. * - * @name LuCI.form.TypedSection.prototype#tooltip + * @name LuCI.form.FlagValue.prototype#tooltip * @type string|function * @default null */ /** - * Set a tooltip icon. + * Set a tooltip icon for the flag option. * * If set, this icon will be shown for the default one. * This could also be a png icon from the resources directory. * - * @name LuCI.form.TypedSection.prototype#tooltipicon + * @name LuCI.form.FlagValue.prototype#tooltipicon * @type string * @default 'ℹ️'; */ @@ -7851,7 +7800,7 @@ var CBIDummyValue = CBIValue.extend(/** @lends LuCI.form.DummyValue.prototype */ __name__: 'CBI.DummyValue', /** - * Set an URL which is opened when clicking on the dummy value text. + * Set a URL which is opened when clicking on the dummy value text. * * By setting this property, the dummy value text is wrapped in an `<a>` * element with the property value used as `href` attribute. @@ -8324,7 +8273,7 @@ var CBISectionValue = CBIValue.extend(/** @lends LuCI.form.SectionValue.prototyp * @hideconstructor * @classdesc * - * The LuCI form class provides high level abstractions for creating creating + * The LuCI form class provides high level abstractions for creating * UCI- or JSON backed configurations forms. * * To import the class in views, use `'require form'`, to import it in @@ -8396,7 +8345,7 @@ return baseclass.extend(/** @lends LuCI.form.prototype */ {
    - Documentation generated by JSDoc 3.6.11 on Tue Nov 15 2022 18:54:12 GMT+0000 (Coordinated Universal Time) + Documentation generated by JSDoc 3.6.11 on Wed Mar 06 2024 05:14:49 GMT+0000 (Coordinated Universal Time)
    diff --git a/jsapi/fs.js.html b/jsapi/fs.js.html index c66f0adebf..57ab5ad845 100644 --- a/jsapi/fs.js.html +++ b/jsapi/fs.js.html @@ -819,6 +819,10 @@
  • enabled
  • +
  • tooltip
  • + +
  • tooltipicon
  • +
  • datatype
  • default
  • @@ -935,10 +939,6 @@
  • tabbed
  • -
  • tooltip
  • - -
  • tooltipicon
  • -
  • uciconfig
  • @@ -1545,12 +1545,6 @@ Members -
  • addbtntitle
  • - -
  • addremove
  • - -
  • anonymous
  • -
  • extedit
  • max_cols
  • @@ -1565,8 +1559,6 @@
  • sortable
  • -
  • uciconfig
  • -
  • addbtntitle
  • addremove
  • @@ -1577,10 +1569,6 @@
  • tabbed
  • -
  • tooltip
  • - -
  • tooltipicon
  • -
  • uciconfig
  • @@ -1743,10 +1731,6 @@
  • tabbed
  • -
  • tooltip
  • - -
  • tooltipicon
  • -
  • uciconfig
  • parentoption
  • @@ -3763,7 +3747,7 @@ var FileSystem = baseclass.extend(/** @lends LuCI.fs.prototype */ { /** * Unlink the given file. * - * @param {string} + * @param {string} path * The file path to remove. * * @returns {Promise<number>} @@ -3879,7 +3863,7 @@ var FileSystem = baseclass.extend(/** @lends LuCI.fs.prototype */ { * @param {string} path * The file path to read. * - * @param {string} [type=text] + * @param {"blob"|"text"|"json"} [type=text] * The expected type of read file contents. Valid values are `text` to * interpret the contents as string, `json` to parse the contents as JSON * or `blob` to return the contents as Blob instance. @@ -3921,7 +3905,7 @@ var FileSystem = baseclass.extend(/** @lends LuCI.fs.prototype */ { * @param {string[]} [params] * The arguments to pass to the command. * - * @param {string} [type=text] + * @param {"blob"|"text"|"json"} [type=text] * The expected output type of the invoked program. Valid values are * `text` to interpret the output as string, `json` to parse the output * as JSON or `blob` to return the output as Blob instance. @@ -3973,7 +3957,7 @@ return FileSystem;
    - Documentation generated by JSDoc 3.6.11 on Tue Nov 15 2022 18:54:12 GMT+0000 (Coordinated Universal Time) + Documentation generated by JSDoc 3.6.11 on Wed Mar 06 2024 05:14:49 GMT+0000 (Coordinated Universal Time)
    diff --git a/jsapi/index.html b/jsapi/index.html index 445989269c..a441af7d26 100644 --- a/jsapi/index.html +++ b/jsapi/index.html @@ -819,6 +819,10 @@
  • enabled
  • +
  • tooltip
  • + +
  • tooltipicon
  • +
  • datatype
  • default
  • @@ -935,10 +939,6 @@
  • tabbed
  • -
  • tooltip
  • - -
  • tooltipicon
  • -
  • uciconfig
  • @@ -1545,12 +1545,6 @@ Members -
  • addbtntitle
  • - -
  • addremove
  • - -
  • anonymous
  • -
  • extedit
  • max_cols
  • @@ -1565,8 +1559,6 @@
  • sortable
  • -
  • uciconfig
  • -
  • addbtntitle
  • addremove
  • @@ -1577,10 +1569,6 @@
  • tabbed
  • -
  • tooltip
  • - -
  • tooltipicon
  • -
  • uciconfig
  • @@ -1743,10 +1731,6 @@
  • tabbed
  • -
  • tooltip
  • - -
  • tooltipicon
  • -
  • uciconfig
  • parentoption
  • @@ -3560,7 +3544,7 @@ is the central JSDoc 3.6.11 on Tue Nov 15 2022 18:54:12 GMT+0000 (Coordinated Universal Time) + Documentation generated by JSDoc 3.6.11 on Wed Mar 06 2024 05:14:49 GMT+0000 (Coordinated Universal Time) diff --git a/jsapi/luci.js.html b/jsapi/luci.js.html index 59186dd7b6..db45e7431c 100644 --- a/jsapi/luci.js.html +++ b/jsapi/luci.js.html @@ -819,6 +819,10 @@
  • enabled
  • +
  • tooltip
  • + +
  • tooltipicon
  • +
  • datatype
  • default
  • @@ -935,10 +939,6 @@
  • tabbed
  • -
  • tooltip
  • - -
  • tooltipicon
  • -
  • uciconfig
  • @@ -1545,12 +1545,6 @@ Members -
  • addbtntitle
  • - -
  • addremove
  • - -
  • anonymous
  • -
  • extedit
  • max_cols
  • @@ -1565,8 +1559,6 @@
  • sortable
  • -
  • uciconfig
  • -
  • addbtntitle
  • addremove
  • @@ -1577,10 +1569,6 @@
  • tabbed
  • -
  • tooltip
  • - -
  • tooltipicon
  • -
  • uciconfig
  • @@ -1743,10 +1731,6 @@
  • tabbed
  • -
  • tooltip
  • - -
  • tooltipicon
  • -
  • uciconfig
  • parentoption
  • @@ -3615,7 +3599,7 @@ * subclass. * * @returns {LuCI.baseclass} - * Returns a new LuCI.baseclass sublassed from this class, extended + * Returns a new LuCI.baseclass subclassed from this class, extended * by the given properties and with its prototype set to this base * class to enable inheritance. The resulting value represents a * class constructor and can be instantiated with `new`. @@ -3752,7 +3736,7 @@ * would copy all values till the end. * * @param {...*} [extra_args] - * Extra arguments to add to prepend to the resultung array. + * Extra arguments to add to prepend to the resulting array. * * @returns {Array<*>} * Returns a new array consisting of the optional extra arguments @@ -4370,7 +4354,7 @@ * * @instance * @memberof LuCI.request - * @param {string} target + * @param {string} url * The URL to request. * * @param {LuCI.request.RequestOptions} [options] @@ -4388,7 +4372,7 @@ * * @instance * @memberof LuCI.request - * @param {string} target + * @param {string} url * The URL to request. * * @param {*} [data] @@ -4459,7 +4443,7 @@ * @hideconstructor * @classdesc * - * The `Request.poll` class provides some convience wrappers around + * The `Request.poll` class provides some convince wrappers around * {@link LuCI.poll} mainly to simplify registering repeating HTTP * request calls as polling functions. */ @@ -4589,7 +4573,7 @@ /** * Add a new operation to the polling loop. If the polling loop is not - * already started at this point, it will be implicitely started. + * already started at this point, it will be implicitly started. * * @instance * @memberof LuCI.poll @@ -4632,8 +4616,8 @@ }, /** - * Remove an operation from the polling loop. If no further operatons - * are registered, the polling loop is implicitely stopped. + * Remove an operation from the polling loop. If no further operations + * are registered, the polling loop is implicitly stopped. * * @instance * @memberof LuCI.poll @@ -4695,7 +4679,7 @@ * @instance * @memberof LuCI.poll * @returns {boolean} - * Returns `true` if polling has been stopped or `false` if it din't + * Returns `true` if polling has been stopped or `false` if it didn't * run to begin with. */ stop: function() { @@ -4865,7 +4849,7 @@ * The `Node` argument to append the children to. * * @param {*} [children] - * The childrens to append to the given node. + * The children to append to the given node. * * When `children` is an array, then each item of the array * will be either appended as child element or text node, @@ -4880,11 +4864,11 @@ * as first and the return value of the `children` function as * second parameter. * - * When `children` is is a DOM `Node` instance, it will be + * When `children` is a DOM `Node` instance, it will be * appended to the given `node`. * * When `children` is any other non-`null` value, it will be - * converted to a string and appened to the `innerHTML` property + * converted to a string and appended to the `innerHTML` property * of the given `node`. * * @returns {Node|null} @@ -4923,7 +4907,7 @@ * Replaces the content of the given node with the given children. * * This function first removes any children of the given DOM - * `Node` and then adds the given given children following the + * `Node` and then adds the given children following the * rules outlined below. * * @instance @@ -4932,7 +4916,7 @@ * The `Node` argument to replace the children of. * * @param {*} [children] - * The childrens to replace into the given node. + * The children to replace into the given node. * * When `children` is an array, then each item of the array * will be either appended as child element or text node, @@ -4947,11 +4931,11 @@ * as first and the return value of the `children` function as * second parameter. * - * When `children` is is a DOM `Node` instance, it will be + * When `children` is a DOM `Node` instance, it will be * appended to the given `node`. * * When `children` is any other non-`null` value, it will be - * converted to a string and appened to the `innerHTML` property + * converted to a string and appended to the `innerHTML` property * of the given `node`. * * @returns {Node|null} @@ -5005,7 +4989,7 @@ * * When `val` is of any other type, it will be added as attribute * to the given `node` as-is, with the underlying `setAttribute()` - * call implicitely turning it into a string. + * call implicitly turning it into a string. */ attr: function(node, key, val) { if (!this.elem(node)) @@ -5568,7 +5552,7 @@ * Any return values of this function are discarded, but * passed through `Promise.resolve()` to ensure that any * returned promise runs to completion before the button - * is reenabled. + * is re-enabled. */ handleSave: function(ev) { var tasks = []; @@ -5612,7 +5596,7 @@ * Any return values of this function are discarded, but * passed through `Promise.resolve()` to ensure that any * returned promise runs to completion before the button - * is reenabled. + * is re-enabled. */ handleSaveApply: function(ev, mode) { return this.handleSave(ev).then(function() { @@ -5649,7 +5633,7 @@ * Any return values of this function are discarded, but * passed through `Promise.resolve()` to ensure that any * returned promise runs to completion before the button - * is reenabled. + * is re-enabled. */ handleReset: function(ev) { var tasks = []; @@ -5861,7 +5845,7 @@ /** * A wrapper around {@link LuCI#raise raise()} which also renders - * the error either as modal overlay when `ui.js` is already loaed + * the error either as modal overlay when `ui.js` is already loaded * or directly into the view body. * * @instance @@ -6205,7 +6189,7 @@ var loc = window.location; window.location = loc.protocol + '//' + loc.host + loc.pathname + loc.search; } - }, _('To login…'))) + }, _('Log in…'))) ]); LuCI.prototype.raise('SessionError', 'Login session is expired'); @@ -6336,7 +6320,7 @@ * omitted, it defaults to an empty string. * * @param {string[]} [parts] - * An array of parts to join into an URL path. Parts may contain + * An array of parts to join into a URL path. Parts may contain * slashes and any of the other characters mentioned above. * * @return {string} @@ -6356,7 +6340,7 @@ }, /** - * Construct an URL pathrelative to the script path of the server + * Construct a URL with path relative to the script path of the server * side LuCI application (usually `/cgi-bin/luci`). * * The resulting URL is guaranteed to only contain the characters @@ -6367,7 +6351,7 @@ * @memberof LuCI * * @param {string[]} [parts] - * An array of parts to join into an URL path. Parts may contain + * An array of parts to join into a URL path. Parts may contain * slashes and any of the other characters mentioned above. * * @return {string} @@ -6378,7 +6362,7 @@ }, /** - * Construct an URL path relative to the global static resource path + * 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 only contain the characters @@ -6389,7 +6373,7 @@ * @memberof LuCI * * @param {string[]} [parts] - * An array of parts to join into an URL path. Parts may contain + * An array of parts to join into a URL path. Parts may contain * slashes and any of the other characters mentioned above. * * @return {string} @@ -6400,7 +6384,7 @@ }, /** - * Construct an URL path relative to the media resource path of the + * 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 only contain the characters @@ -6411,7 +6395,7 @@ * @memberof LuCI * * @param {string[]} [parts] - * An array of parts to join into an URL path. Parts may contain + * An array of parts to join into a URL path. Parts may contain * slashes and any of the other characters mentioned above. * * @return {string} @@ -6465,14 +6449,14 @@ * The object to extract the keys from. If the given value is * not an object, the function will return an empty array. * - * @param {string} [key] + * @param {string|null} [key] * 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. * - * @param {string} [sortmode] - * May be either `addr` or `num` to override the natural + * @param {"addr"|"num"} [sortmode] + * Can be either `addr` or `num` to override the natural * lexicographic sorting with a sorting suitable for IP/MAC style * addresses or numeric values respectively. * @@ -6583,7 +6567,7 @@ }, /** - * Returns a promise resolving with either the given value or or with + * Returns a promise resolving with either the given value or with * the given default in case the input value is a rejecting promise. * * @instance @@ -7006,7 +6990,7 @@
    - Documentation generated by JSDoc 3.6.11 on Tue Nov 15 2022 18:54:12 GMT+0000 (Coordinated Universal Time) + Documentation generated by JSDoc 3.6.11 on Wed Mar 06 2024 05:14:49 GMT+0000 (Coordinated Universal Time)
    diff --git a/jsapi/network.js.html b/jsapi/network.js.html index b63a2c8a06..47235b02bb 100644 --- a/jsapi/network.js.html +++ b/jsapi/network.js.html @@ -819,6 +819,10 @@
  • enabled
  • +
  • tooltip
  • + +
  • tooltipicon
  • +
  • datatype
  • default
  • @@ -935,10 +939,6 @@
  • tabbed
  • -
  • tooltip
  • - -
  • tooltipicon
  • -
  • uciconfig
  • @@ -1545,12 +1545,6 @@ Members -
  • addbtntitle
  • - -
  • addremove
  • - -
  • anonymous
  • -
  • extedit
  • max_cols
  • @@ -1565,8 +1559,6 @@
  • sortable
  • -
  • uciconfig
  • -
  • addbtntitle
  • addremove
  • @@ -1577,10 +1569,6 @@
  • tabbed
  • -
  • tooltip
  • - -
  • tooltipicon
  • -
  • uciconfig
  • @@ -1743,10 +1731,6 @@
  • tabbed
  • -
  • tooltip
  • - -
  • tooltipicon
  • -
  • uciconfig
  • parentoption
  • @@ -3744,8 +3728,8 @@ function getWifiNetidBySid(sid) { var s = uci.get('wireless', sid); if (s != null && s['.type'] == 'wifi-iface') { var radioname = s.device; - if (typeof(s.device) == 'string') { - var i = 0, netid = null, sections = uci.sections('wireless', 'wifi-iface'); + if (typeof(radioname) == 'string') { + var sections = uci.sections('wireless', 'wifi-iface'); for (var i = 0, n = 0; i < sections.length; i++) { if (sections[i].device != s.device) continue; @@ -4181,7 +4165,7 @@ var Hosts, Network, Protocol, Device, WifiDevice, WifiNetwork; * @hideconstructor * @classdesc * - * The `LuCI.network` class combines data from multiple `ubus` apis to + * The `LuCI.network` class combines data from multiple `ubus` APIs to * provide an abstraction of the current network configuration state. * * It provides methods to enumerate interfaces and devices, to query @@ -4213,7 +4197,7 @@ Network = baseclass.extend(/** @lends LuCI.network.prototype */ { * @method * * @param {string} netmask - * The netmask to convert into a bit count. + * The netmask to convert into a bits count. * * @param {boolean} [v6=false] * Whether to parse the given netmask as IPv4 (`false`) or IPv6 (`true`) @@ -4293,11 +4277,11 @@ Network = baseclass.extend(/** @lends LuCI.network.prototype */ { }, /** - * Instantiates the given {@link LuCI.network.Protocol Protocol} backend, + * Instantiates the given {@link LuCI.network.Protocol Protocol} back-end, * optionally using the given network name. * * @param {string} protoname - * The protocol backend to use, e.g. `static` or `dhcp`. + * The protocol back-end to use, e.g. `static` or `dhcp`. * * @param {string} [netname=__dummy__] * The network name to use for the instantiated protocol. This should be @@ -4306,7 +4290,7 @@ Network = baseclass.extend(/** @lends LuCI.network.prototype */ { * without the need for an existing interface. * * @returns {null|LuCI.network.Protocol} - * Returns the instantiated protocol backend class or `null` if the given + * Returns the instantiated protocol back-end class or `null` if the given * protocol isn't known. */ getProtocol: function(protoname, netname) { @@ -4319,7 +4303,7 @@ Network = baseclass.extend(/** @lends LuCI.network.prototype */ { /** * Obtains instances of all known {@link LuCI.network.Protocol Protocol} - * backend classes. + * back-end classes. * * @returns {Array<LuCI.network.Protocol>} * Returns an array of protocol class instances. @@ -4879,7 +4863,7 @@ Network = baseclass.extend(/** @lends LuCI.network.prototype */ { * the given wireless radio. * * @param {string} devname - * The configuration name of the wireless radio to lookup, e.g. `radio0` + * The configuration name of the wireless radio to look up, e.g. `radio0` * for the first mac80211 phy on the system. * * @returns {Promise<null|LuCI.network.WifiDevice>} @@ -4926,7 +4910,7 @@ Network = baseclass.extend(/** @lends LuCI.network.prototype */ { * the given wireless network. * * @param {string} netname - * The name of the wireless network to lookup. This may be either an uci + * The name of the wireless network to look up. This may be either an uci * configuration section ID, a network ID in the form `radio#.network#` * or a Linux network device name like `wlan0` which is resolved to the * corresponding configuration section through `ubus` runtime information. @@ -5145,7 +5129,7 @@ Network = baseclass.extend(/** @lends LuCI.network.prototype */ { }, /** - * Describes an swconfig switch topology by specifying the CPU + * Describes a swconfig switch topology by specifying the CPU * connections and external port labels of a switch. * * @typedef {Object<string, Object|Array>} SwitchTopology @@ -5160,7 +5144,7 @@ Network = baseclass.extend(/** @lends LuCI.network.prototype */ { * @property {Array<Object<string, boolean|number|string>>} ports * The `ports` property points to an array describing the populated * ports of the switch in the external label order. Each array item is - * an object containg the following keys: + * an object containing the following keys: * - `num` - the internal switch port number * - `label` - the label of the port, e.g. `LAN 1` or `CPU (eth0)` * - `device` - the connected Linux network device name (CPU ports only) @@ -5264,7 +5248,7 @@ Network = baseclass.extend(/** @lends LuCI.network.prototype */ { }, /** - * Obtains the the network device name of the given object. + * Obtains the network device name of the given object. * * @param {LuCI.network.Protocol|LuCI.network.Device|LuCI.network.WifiDevice|LuCI.network.WifiNetwork|string} obj * The object to get the device name from. @@ -5324,10 +5308,10 @@ Hosts = baseclass.extend(/** @lends LuCI.network.Hosts.prototype */ { }, /** - * Lookup the hostname associated with the given MAC address. + * Look up the hostname associated with the given MAC address. * * @param {string} mac - * The MAC address to lookup. + * The MAC address to look up. * * @returns {null|string} * Returns the hostname associated with the given MAC or `null` if @@ -5341,10 +5325,10 @@ Hosts = baseclass.extend(/** @lends LuCI.network.Hosts.prototype */ { }, /** - * Lookup the IPv4 address associated with the given MAC address. + * Look up the IPv4 address associated with the given MAC address. * * @param {string} mac - * The MAC address to lookup. + * The MAC address to look up. * * @returns {null|string} * Returns the IPv4 address associated with the given MAC or `null` if @@ -5358,10 +5342,10 @@ Hosts = baseclass.extend(/** @lends LuCI.network.Hosts.prototype */ { }, /** - * Lookup the IPv6 address associated with the given MAC address. + * Look up the IPv6 address associated with the given MAC address. * * @param {string} mac - * The MAC address to lookup. + * The MAC address to look up. * * @returns {null|string} * Returns the IPv6 address associated with the given MAC or `null` if @@ -5375,10 +5359,10 @@ Hosts = baseclass.extend(/** @lends LuCI.network.Hosts.prototype */ { }, /** - * Lookup the hostname associated with the given IPv4 address. + * Look up the hostname associated with the given IPv4 address. * * @param {string} ipaddr - * The IPv4 address to lookup. + * The IPv4 address to look up. * * @returns {null|string} * Returns the hostname associated with the given IPv4 or `null` if @@ -5401,10 +5385,10 @@ Hosts = baseclass.extend(/** @lends LuCI.network.Hosts.prototype */ { }, /** - * Lookup the MAC address associated with the given IPv4 address. + * Look up the MAC address associated with the given IPv4 address. * * @param {string} ipaddr - * The IPv4 address to lookup. + * The IPv4 address to look up. * * @returns {null|string} * Returns the MAC address associated with the given IPv4 or `null` if @@ -5424,10 +5408,10 @@ Hosts = baseclass.extend(/** @lends LuCI.network.Hosts.prototype */ { }, /** - * Lookup the hostname associated with the given IPv6 address. + * Look up the hostname associated with the given IPv6 address. * * @param {string} ip6addr - * The IPv6 address to lookup. + * The IPv6 address to look up. * * @returns {null|string} * Returns the hostname associated with the given IPv6 or `null` if @@ -5450,10 +5434,10 @@ Hosts = baseclass.extend(/** @lends LuCI.network.Hosts.prototype */ { }, /** - * Lookup the MAC address associated with the given IPv6 address. + * Look up the MAC address associated with the given IPv6 address. * * @param {string} ip6addr - * The IPv6 address to lookup. + * The IPv6 address to look up. * * @returns {null|string} * Returns the MAC address associated with the given IPv6 or `null` if @@ -5572,7 +5556,7 @@ Protocol = baseclass.extend(/** @lends LuCI.network.Protocol.prototype */ { }, /** - * Get the associared Linux network device of this network. + * Get the associated Linux network device of this network. * * @returns {null|string} * Returns the name of the associated network device or `null` if @@ -5609,7 +5593,7 @@ Protocol = baseclass.extend(/** @lends LuCI.network.Protocol.prototype */ { }, /** - * Return a human readable description for the protcol, such as + * Return a human readable description for the protocol, such as * `Static address` or `DHCP client`. * * This function should be overwritten by subclasses. @@ -5788,7 +5772,7 @@ Protocol = baseclass.extend(/** @lends LuCI.network.Protocol.prototype */ { * * @returns {string[]} * Returns an array of IPv4 DNS servers registered by the remote - * protocol backend. + * protocol back-end. */ getDNSAddrs: function() { var addrs = this._ubus('dns-server'), @@ -5876,7 +5860,7 @@ Protocol = baseclass.extend(/** @lends LuCI.network.Protocol.prototype */ { * * @returns {string[]} * Returns an array of IPv6 DNS servers registered by the remote - * protocol backend. + * protocol back-end. */ getDNS6Addrs: function() { var addrs = this._ubus('dns-server'), @@ -5960,14 +5944,14 @@ Protocol = baseclass.extend(/** @lends LuCI.network.Protocol.prototype */ { * * @returns {string} * Returns the name of the opkg package required for the protocol to - * function, e.g. `odhcp6c` for the `dhcpv6` prototocol. + * function, e.g. `odhcp6c` for the `dhcpv6` protocol. */ getOpkgPackage: function() { return null; }, /** - * Check function for the protocol handler if a new interface is createable. + * Check function for the protocol handler if a new interface is creatable. * * This function should be overwritten by protocol specific subclasses. * @@ -5977,7 +5961,7 @@ Protocol = baseclass.extend(/** @lends LuCI.network.Protocol.prototype */ { * The name of the interface to be created. * * @returns {Promise<void>} - * Returns a promise resolving if new interface is createable, else + * Returns a promise resolving if new interface is creatable, else * rejects with an error message string. */ isCreateable: function(ifname) { @@ -6007,7 +5991,7 @@ Protocol = baseclass.extend(/** @lends LuCI.network.Protocol.prototype */ { * on demand instead of using existing physical interfaces. * * Examples for virtual protocols are `6in4` which `gre` spawn tunnel - * network device on startup, examples for non-virtual protcols are + * network device on startup, examples for non-virtual protocols are * `dhcp` or `static` which apply IP configuration to existing interfaces. * * This function should be overwritten by subclasses. @@ -6024,7 +6008,7 @@ Protocol = baseclass.extend(/** @lends LuCI.network.Protocol.prototype */ { * Checks whether this protocol is "floating". * * A "floating" protocol is a protocol which spawns its own interfaces - * on demand, like a virtual one but which relies on an existinf lower + * on demand, like a virtual one but which relies on an existing lower * level interface to initiate the connection. * * An example for such a protocol is "pppoe". @@ -6082,7 +6066,7 @@ Protocol = baseclass.extend(/** @lends LuCI.network.Protocol.prototype */ { }, /** - * Checks whether this logical interface is "empty", meaning that ut + * Checks whether this logical interface is "empty", where empty means that it * has no network devices attached. * * @returns {boolean} @@ -6207,7 +6191,7 @@ Protocol = baseclass.extend(/** @lends LuCI.network.Protocol.prototype */ { }, /** - * Returns the layer 2 linux network device currently associated + * Returns the layer 2 Linux network device currently associated * with this logical interface. * * @returns {LuCI.network.Device} @@ -6220,7 +6204,7 @@ Protocol = baseclass.extend(/** @lends LuCI.network.Protocol.prototype */ { }, /** - * Returns the layer 3 linux network device currently associated + * Returns the layer 3 Linux network device currently associated * with this logical interface. * * @returns {LuCI.network.Device} @@ -6237,7 +6221,7 @@ Protocol = baseclass.extend(/** @lends LuCI.network.Protocol.prototype */ { * interface. * * @returns {null|Array<LuCI.network.Device>} - * Returns an array of of `Network.Device` class instances representing + * Returns an array of `Network.Device` class instances representing * the sub-devices attached to this logical interface or `null` if the * logical interface does not support sub-devices, e.g. because it is * virtual and not a bridge. @@ -6405,7 +6389,7 @@ Device = baseclass.extend(/** @lends LuCI.network.Device.prototype */ { * * @returns {null|string} * Returns the MAC address of the device or `null` if not applicable, - * e.g. for non-ethernet tunnel devices. + * e.g. for non-Ethernet tunnel devices. */ getMAC: function() { var mac = this._devstate('macaddr'); @@ -6482,8 +6466,8 @@ Device = baseclass.extend(/** @lends LuCI.network.Device.prototype */ { * Get a short description string for the device. * * @returns {string} - * Returns the device name for non-wifi devices or a string containing - * the operation mode and SSID for wifi devices. + * Returns the device name for non-WiFi devices or a string containing + * the operation mode and SSID for WiFi devices. */ getShortName: function() { if (this.wif != null) @@ -6497,7 +6481,7 @@ Device = baseclass.extend(/** @lends LuCI.network.Device.prototype */ { * * @returns {string} * Returns a string containing the type description and device name - * for non-wifi devices or operation mode and ssid for wifi ones. + * for non-WiFi devices or operation mode and SSID for WiFi ones. */ getI18n: function() { if (this.wif != null) { @@ -6677,7 +6661,7 @@ Device = baseclass.extend(/** @lends LuCI.network.Device.prototype */ { * * @returns {boolean} * Returns true if the device has a carrier, e.g. when a cable is - * inserted into an ethernet port of false if there is none. + * inserted into an Ethernet port of false if there is none. */ getCarrier: function() { var link = this._devstate('link'); @@ -6689,8 +6673,8 @@ Device = baseclass.extend(/** @lends LuCI.network.Device.prototype */ { * * @returns {number|null} * Returns the current speed of the network device in Mbps. If the - * device supports no ethernet speed levels, null is returned. - * If the device supports ethernet speeds but has no carrier, -1 is + * device supports no Ethernet speed levels, null is returned. + * If the device supports Ethernet speeds but has no carrier, -1 is * returned. */ getSpeed: function() { @@ -6843,7 +6827,7 @@ WifiDevice = baseclass.extend(/** @lends LuCI.network.WifiDevice.prototype */ { * @param {string} opt * The name of the UCI option to set. * - * @param {null|string|string[]} val + * @param {null|string|string[]} value * The value to set or `null` to remove the given option from the * configuration. */ @@ -6930,19 +6914,20 @@ WifiDevice = baseclass.extend(/** @lends LuCI.network.WifiDevice.prototype */ { getI18n: function() { var hw = this.ubus('dev', 'iwinfo', 'hardware'), type = L.isObject(hw) ? hw.name : null; + var modes = this.ubus('dev', 'iwinfo', 'hwmodes_text'); if (this.ubus('dev', 'iwinfo', 'type') == 'wl') type = 'Broadcom'; - return '%s 802.11%s Wireless Controller (%s)'.format( + return '%s %s Wireless Controller (%s)'.format( type || 'Generic', - this.getHWModes().sort(L.naturalCompare).join(''), + modes ? '802.11' + modes : 'unknown', this.getName()); }, /** * A wireless scan result object describes a neighbouring wireless - * network found in the vincinity. + * network found in the vicinity. * * @typedef {Object<string, number|string|LuCI.network.WifiEncryption>} WifiScanResult * @memberof LuCI.network @@ -6980,7 +6965,7 @@ WifiDevice = baseclass.extend(/** @lends LuCI.network.WifiDevice.prototype */ { * * @returns {Promise<Array<LuCI.network.WifiScanResult>>} * Returns a promise resolving to an array of scan result objects - * describing the networks found in the vincinity. + * describing the networks found in the vicinity. */ getScanList: function() { return callIwinfoScan(this.sid); @@ -7004,7 +6989,7 @@ WifiDevice = baseclass.extend(/** @lends LuCI.network.WifiDevice.prototype */ { * Get the wifi network of the given name belonging to this radio device * * @param {string} network - * The name of the wireless network to lookup. This may be either an uci + * The name of the wireless network to look up. This may be either an uci * configuration section ID, a network ID in the form `radio#.network#` * or a Linux network device name like `wlan0` which is resolved to the * corresponding configuration section through `ubus` runtime information. @@ -7031,7 +7016,7 @@ WifiDevice = baseclass.extend(/** @lends LuCI.network.WifiDevice.prototype */ { * * @returns {Promise<Array<LuCI.network.WifiNetwork>>} * Returns a promise resolving to an array of `Network.WifiNetwork` - * instances respresenting the wireless networks associated with this + * instances representing the wireless networks associated with this * radio device. */ getWifiNetworks: function() { @@ -7072,7 +7057,7 @@ WifiDevice = baseclass.extend(/** @lends LuCI.network.WifiDevice.prototype */ { * radio device. * * @param {string} network - * The name of the wireless network to lookup. This may be either an uci + * The name of the wireless network to look up. This may be either an uci * configuration section ID, a network ID in the form `radio#.network#` * or a Linux network device name like `wlan0` which is resolved to the * corresponding configuration section through `ubus` runtime information. @@ -7160,7 +7145,7 @@ WifiNetwork = baseclass.extend(/** @lends LuCI.network.WifiNetwork.prototype */ * @param {string} opt * The name of the UCI option to set. * - * @param {null|string|string[]} val + * @param {null|string|string[]} value * The value to set or `null` to remove the given option from the * configuration. */ @@ -7247,7 +7232,7 @@ WifiNetwork = baseclass.extend(/** @lends LuCI.network.WifiNetwork.prototype */ /** * Get the internal network ID of this wireless network. * - * The network ID is a LuCI specific identifer in the form + * The network ID is a LuCI specific identifier in the form * `radio#.network#` to identify wireless networks by their corresponding * radio and network index numbers. * @@ -7304,7 +7289,7 @@ WifiNetwork = baseclass.extend(/** @lends LuCI.network.WifiNetwork.prototype */ }, /** - * Get the name of the corresponding wifi radio device. + * Get the name of the corresponding WiFi radio device. * * @returns {null|string} * Returns the name of the radio device this network is configured on @@ -7315,11 +7300,11 @@ WifiNetwork = baseclass.extend(/** @lends LuCI.network.WifiNetwork.prototype */ }, /** - * Get the corresponding wifi radio device. + * Get the corresponding WiFi radio device. * * @returns {null|LuCI.network.WifiDevice} * Returns a `Network.WifiDevice` instance representing the corresponding - * wifi radio device or `null` if the related radio device could not be + * WiFi radio device or `null` if the related radio device could not be * found. */ getWifiDevice: function() { @@ -7356,8 +7341,8 @@ WifiNetwork = baseclass.extend(/** @lends LuCI.network.WifiNetwork.prototype */ * Query the current operation mode from runtime information. * * @returns {string} - * Returns the human readable mode name as reported by `ubus` runtime - * state. Possible returned values are: + * Returns the human readable mode name as reported by iwinfo or uci mode. + * Possible returned values are: * - `Master` * - `Ad-Hoc` * - `Client` @@ -7370,13 +7355,13 @@ WifiNetwork = baseclass.extend(/** @lends LuCI.network.WifiNetwork.prototype */ * - `Unknown` */ getActiveMode: function() { - var mode = this.ubus('net', 'iwinfo', 'mode') || this.ubus('net', 'config', 'mode') || this.get('mode') || 'ap'; + var mode = this.ubus('net', 'iwinfo', 'mode') || this.getMode(); switch (mode) { case 'ap': return 'Master'; case 'sta': return 'Client'; case 'adhoc': return 'Ad-Hoc'; - case 'mesh': return 'Mesh'; + case 'mesh': return 'Mesh Point'; case 'monitor': return 'Monitor'; default: return mode; } @@ -7394,12 +7379,17 @@ WifiNetwork = baseclass.extend(/** @lends LuCI.network.WifiNetwork.prototype */ var mode = this.getActiveMode(); switch (mode) { - case 'Master': return _('Master'); - case 'Client': return _('Client'); - case 'Ad-Hoc': return _('Ad-Hoc'); - case 'Mash': return _('Mesh'); - case 'Monitor': return _('Monitor'); - default: return mode; + case 'Master': return _('Access Point'); + case 'Ad-Hoc': return _('Ad-Hoc'); + case 'Client': return _('Client'); + case 'Monitor': return _('Monitor'); + case 'Master(VLAN)': return _('Master (VLAN)'); + case 'WDS': return _('WDS'); + case 'Mesh Point': return _('Mesh Point'); + case 'P2P Client': return _('P2P Client'); + case 'P2P Go': return _('P2P Go'); + case 'Unknown': return _('Unknown'); + default: return mode; } }, @@ -7429,7 +7419,7 @@ WifiNetwork = baseclass.extend(/** @lends LuCI.network.WifiNetwork.prototype */ * Query the current encryption settings from runtime information. * * @returns {string} - * Returns a string describing the current encryption or `-` if the the + * Returns a string describing the current encryption or `-` if the * encryption state could not be found in `ubus` runtime information. */ getActiveEncryption: function() { @@ -7530,7 +7520,7 @@ WifiNetwork = baseclass.extend(/** @lends LuCI.network.WifiNetwork.prototype */ * - `UNKNOWN` * * @property {number} [mesh non-peer PS] - * The powersafe mode for all non-peer neigbours, may be an empty + * The powersafe mode for all non-peer neighbours, may be an empty * string (`''`) or absent if not applicable or supported by the driver. * * The following modes are known: @@ -7565,7 +7555,7 @@ WifiNetwork = baseclass.extend(/** @lends LuCI.network.WifiNetwork.prototype */ * The amount of bytes that have been received or sent. * * @property {number} [failed] - * The amount of failed tranmission attempts. Only applicable to + * The amount of failed transmission attempts. Only applicable to * transmit rates. * * @property {number} [retries] @@ -7589,7 +7579,7 @@ WifiNetwork = baseclass.extend(/** @lends LuCI.network.WifiNetwork.prototype */ * HT or VHT rates. * * @property {number} [40mhz] - * Specifies whether the tranmission rate used 40MHz wide channel. + * Specifies whether the transmission rate used 40MHz wide channel. * Only applicable to HT or VHT rates. * * Note: this option exists for backwards compatibility only and its @@ -7653,7 +7643,7 @@ WifiNetwork = baseclass.extend(/** @lends LuCI.network.WifiNetwork.prototype */ }, /** - * Query the current average bitrate of all peers associated to this + * Query the current average bit-rate of all peers associated to this * wireless network. * * @returns {null|number} @@ -7854,18 +7844,18 @@ WifiNetwork = baseclass.extend(/** @lends LuCI.network.WifiNetwork.prototype */ * * @returns {LuCI.network.Device} * Returns a `Network.Device` instance representing the Linux network - * device associted with this wireless network. + * device associated with this wireless network. */ getDevice: function() { return Network.prototype.instantiateDevice(this.getIfname()); }, /** - * Check whether this wifi network supports deauthenticating clients. + * Check whether this WiFi network supports de-authenticating clients. * * @returns {boolean} - * Returns `true` when this wifi network instance supports forcibly - * deauthenticating clients, otherwise `false`. + * Returns `true` when this WiFi network instance supports forcibly + * de-authenticating clients, otherwise `false`. */ isClientDisconnectSupported: function() { return L.isObject(this.ubus('hostapd', 'del_client')); @@ -7878,7 +7868,7 @@ WifiNetwork = baseclass.extend(/** @lends LuCI.network.WifiNetwork.prototype */ * The MAC address of the client to disconnect. * * @param {boolean} [deauth=false] - * Specifies whether to deauthenticate (`true`) or disassociate (`false`) + * Specifies whether to de-authenticate (`true`) or disassociate (`false`) * the client. * * @param {number} [reason=1] @@ -7888,7 +7878,7 @@ WifiNetwork = baseclass.extend(/** @lends LuCI.network.WifiNetwork.prototype */ * @param {number} [ban_time=0] * Specifies the amount of milliseconds to ban the client from * reconnecting. By default, no ban time is set which allows the client - * to reassociate / reauthenticate immediately. + * to re-associate / reauthenticate immediately. * * @returns {Promise<number>} * Returns a promise resolving to the underlying ubus call result code @@ -7924,7 +7914,7 @@ return Network;
    - Documentation generated by JSDoc 3.6.11 on Tue Nov 15 2022 18:54:12 GMT+0000 (Coordinated Universal Time) + Documentation generated by JSDoc 3.6.11 on Wed Mar 06 2024 05:14:49 GMT+0000 (Coordinated Universal Time)
    diff --git a/jsapi/rpc.js.html b/jsapi/rpc.js.html index 1f34d5c3c5..a9992b5d79 100644 --- a/jsapi/rpc.js.html +++ b/jsapi/rpc.js.html @@ -819,6 +819,10 @@
  • enabled
  • +
  • tooltip
  • + +
  • tooltipicon
  • +
  • datatype
  • default
  • @@ -935,10 +939,6 @@
  • tabbed
  • -
  • tooltip
  • - -
  • tooltipicon
  • -
  • uciconfig
  • @@ -1545,12 +1545,6 @@ Members -
  • addbtntitle
  • - -
  • addremove
  • - -
  • anonymous
  • -
  • extedit
  • max_cols
  • @@ -1565,8 +1559,6 @@
  • sortable
  • -
  • uciconfig
  • -
  • addbtntitle
  • addremove
  • @@ -1577,10 +1569,6 @@
  • tabbed
  • -
  • tooltip
  • - -
  • tooltipicon
  • -
  • uciconfig
  • @@ -1743,10 +1731,6 @@
  • tabbed
  • -
  • tooltip
  • - -
  • tooltipicon
  • -
  • uciconfig
  • parentoption
  • @@ -3720,7 +3704,7 @@ return baseclass.extend(/** @lends LuCI.rpc.prototype */ { * the corresponding args object sent to the remote procedure will be * `{ foo: true, bar: false }`. * - `params: [ "test" ], filter: function(reply, args, extra) { ... }` - - * When the resultung generated function is invoked with + * When the resulting generated function is invoked with * `fn("foo", "bar", "baz")` then `{ "test": "foo" }` will be sent as * argument to the remote procedure and the filter function will be * invoked with `filterFn(reply, [ "foo" ], "bar", "baz")` @@ -3760,7 +3744,7 @@ return baseclass.extend(/** @lends LuCI.rpc.prototype */ { * be returned as default instead. * * @property {LuCI.rpc~filterFn} [filter] - * Specfies an optional filter function which is invoked to transform the + * Specifies an optional filter function which is invoked to transform the * received reply data before it is returned to the caller. * * @property {boolean} [reject=false] @@ -3913,7 +3897,7 @@ return baseclass.extend(/** @lends LuCI.rpc.prototype */ { /** * Set the RPC base URL to use. * - * @param {string} sid + * @param {string} url * Sets the RPC URL endpoint to issue requests against. */ setBaseURL: function(url) { @@ -3988,7 +3972,7 @@ return baseclass.extend(/** @lends LuCI.rpc.prototype */ { * Registers a new interceptor function. * * @param {LuCI.rpc~interceptorFn} interceptorFn - * The inteceptor function to register. + * The interceptor function to register. * * @returns {LuCI.rpc~interceptorFn} * Returns the given function value. @@ -4003,7 +3987,7 @@ return baseclass.extend(/** @lends LuCI.rpc.prototype */ { * Removes a registered interceptor function. * * @param {LuCI.rpc~interceptorFn} interceptorFn - * The inteceptor function to remove. + * The interceptor function to remove. * * @returns {boolean} * Returns `true` if the given function has been removed or `false` @@ -4029,7 +4013,7 @@ return baseclass.extend(/** @lends LuCI.rpc.prototype */ {
    - Documentation generated by JSDoc 3.6.11 on Tue Nov 15 2022 18:54:12 GMT+0000 (Coordinated Universal Time) + Documentation generated by JSDoc 3.6.11 on Wed Mar 06 2024 05:14:49 GMT+0000 (Coordinated Universal Time)
    diff --git a/jsapi/uci.js.html b/jsapi/uci.js.html index 1033e80a47..0a40b4f65d 100644 --- a/jsapi/uci.js.html +++ b/jsapi/uci.js.html @@ -819,6 +819,10 @@
  • enabled
  • +
  • tooltip
  • + +
  • tooltipicon
  • +
  • datatype
  • default
  • @@ -935,10 +939,6 @@
  • tabbed
  • -
  • tooltip
  • - -
  • tooltipicon
  • -
  • uciconfig
  • @@ -1545,12 +1545,6 @@ Members -
  • addbtntitle
  • - -
  • addremove
  • - -
  • anonymous
  • -
  • extedit
  • max_cols
  • @@ -1565,8 +1559,6 @@
  • sortable
  • -
  • uciconfig
  • -
  • addbtntitle
  • addremove
  • @@ -1577,10 +1569,6 @@
  • tabbed
  • -
  • tooltip
  • - -
  • tooltipicon
  • -
  • uciconfig
  • @@ -1743,10 +1731,6 @@
  • tabbed
  • -
  • tooltip
  • - -
  • tooltipicon
  • -
  • uciconfig
  • parentoption
  • @@ -3552,7 +3536,7 @@ function isEmpty(object, ignore) { * * The `LuCI.uci` class utilizes {@link LuCI.rpc} to declare low level * remote UCI `ubus` procedures and implements a local caching and data - * manipulation layer on top to allow for synchroneous operations on + * manipulation layer on top to allow for synchronous operations on * UCI configuration data. */ return baseclass.extend(/** @lends LuCI.uci.prototype */ { @@ -3627,7 +3611,7 @@ return baseclass.extend(/** @lends LuCI.uci.prototype */ { * identifier in the form `cfgXXXXXX` once the configuration is saved * by the remote `ubus` UCI api. * - * @param {string} config + * @param {string} conf * The configuration to generate the new section ID for. * * @returns {string} @@ -3650,7 +3634,7 @@ return baseclass.extend(/** @lends LuCI.uci.prototype */ { * Resolves a given section ID in extended notation to the internal * section ID value. * - * @param {string} config + * @param {string} conf * The configuration to resolve the section ID for. * * @param {string} sid @@ -3743,7 +3727,7 @@ return baseclass.extend(/** @lends LuCI.uci.prototype */ { * To force reloading a configuration, it has to be unloaded with * {@link LuCI.uci#unload uci.unload()} first. * - * @param {string|string[]} config + * @param {string|string[]} packages * The name of the configuration or an array of configuration * names to load. * @@ -3779,7 +3763,7 @@ return baseclass.extend(/** @lends LuCI.uci.prototype */ { /** * Unloads the given UCI configurations from the local cache. * - * @param {string|string[]} config + * @param {string|string[]} packages * The name of the configuration or an array of configuration * names to unload. */ @@ -3801,7 +3785,7 @@ return baseclass.extend(/** @lends LuCI.uci.prototype */ { * Adds a new section of the given type to the given configuration, * optionally named according to the given name. * - * @param {string} config + * @param {string} conf * The name of the configuration to add the section to. * * @param {string} type @@ -3836,7 +3820,7 @@ return baseclass.extend(/** @lends LuCI.uci.prototype */ { /** * Removes the section with the given ID from the given configuration. * - * @param {string} config + * @param {string} conf * The name of the configuration to remove the section from. * * @param {string} sid @@ -3868,7 +3852,7 @@ return baseclass.extend(/** @lends LuCI.uci.prototype */ { * enclosed within a configuration section, as well as some additional * meta data such as sort indexes and internal ID. * - * Any internal metadata fields are prefixed with a dot which is isn't + * Any internal metadata fields are prefixed with a dot which isn't * an allowed character for normal option names. * * @typedef {Object<string, boolean|number|string|string[]>} SectionObject @@ -3879,7 +3863,7 @@ return baseclass.extend(/** @lends LuCI.uci.prototype */ { * anonymous (`true`) or named (`false`). * * @property {number} .index - * The `.index` property specifes the sort order of the section. + * The `.index` property specifies the sort order of the section. * * @property {string} .name * The `.name` property holds the name of the section object. It may be @@ -3917,7 +3901,7 @@ return baseclass.extend(/** @lends LuCI.uci.prototype */ { * Enumerates the sections of the given configuration, optionally * filtered by type. * - * @param {string} config + * @param {string} conf * The name of the configuration to enumerate the sections for. * * @param {string} [type] @@ -3970,13 +3954,13 @@ return baseclass.extend(/** @lends LuCI.uci.prototype */ { * of the given configuration or the entire section object if the * option name is omitted. * - * @param {string} config + * @param {string} conf * The name of the configuration to read the value from. * * @param {string} sid * The name or ID of the section to read. * - * @param {string} [option] + * @param {string} [opt] * The option name to read the value from. If the option name is * omitted or `null`, the entire section is returned instead. * @@ -4064,16 +4048,16 @@ return baseclass.extend(/** @lends LuCI.uci.prototype */ { * If either config, section or option is null, or if `option` begins * with a dot, the function will do nothing. * - * @param {string} config + * @param {string} conf * The name of the configuration to set the option value in. * * @param {string} sid * The name or ID of the section to set the option value in. * - * @param {string} option + * @param {string} opt * The option name to set the value for. * - * @param {null|string|string[]} value + * @param {null|string|string[]} val * The option value to set. If the value is `null` or an empty string, * the option will be removed, otherwise it will be set or overwritten * with the given value. @@ -4150,13 +4134,13 @@ return baseclass.extend(/** @lends LuCI.uci.prototype */ { * This function is a convenience wrapper around * `uci.set(config, section, option, null)`. * - * @param {string} config + * @param {string} conf * The name of the configuration to remove the option from. * * @param {string} sid * The name or ID of the section to remove the option from. * - * @param {string} option + * @param {string} opt * The name of the option to remove. */ unset: function(conf, sid, opt) { @@ -4166,9 +4150,9 @@ return baseclass.extend(/** @lends LuCI.uci.prototype */ { /** * Gets the value of the given option or the entire section object of * the first found section of the specified type or the first found - * section of the entire configuration if no type is specfied. + * section of the entire configuration if no type is specified. * - * @param {string} config + * @param {string} conf * The name of the configuration to read the value from. * * @param {string} [type] @@ -4176,7 +4160,7 @@ return baseclass.extend(/** @lends LuCI.uci.prototype */ { * section of the entire config is read, otherwise the first section * matching the given type. * - * @param {string} [option] + * @param {string} [opt] * The option name to read the value from. If the option name is * omitted or `null`, the entire section is returned instead. * @@ -4209,7 +4193,7 @@ return baseclass.extend(/** @lends LuCI.uci.prototype */ { * If either config, type or option is null, or if `option` begins * with a dot, the function will do nothing. * - * @param {string} config + * @param {string} conf * The name of the configuration to set the option value in. * * @param {string} [type] @@ -4217,10 +4201,10 @@ return baseclass.extend(/** @lends LuCI.uci.prototype */ { * section of the entire config is written to, otherwise the first * section matching the given type is used. * - * @param {string} option + * @param {string} opt * The option name to set the value for. * - * @param {null|string|string[]} value + * @param {null|string|string[]} val * The option value to set. If the value is `null` or an empty string, * the option will be removed, otherwise it will be set or overwritten * with the given value. @@ -4244,7 +4228,7 @@ return baseclass.extend(/** @lends LuCI.uci.prototype */ { * This function is a convenience wrapper around * `uci.set_first(config, type, option, null)`. * - * @param {string} config + * @param {string} conf * The name of the configuration to set the option value in. * * @param {string} [type] @@ -4252,7 +4236,7 @@ return baseclass.extend(/** @lends LuCI.uci.prototype */ { * section of the entire config is written to, otherwise the first * section matching the given type is used. * - * @param {string} option + * @param {string} opt * The option name to set the value for. */ unset_first: function(conf, type, opt) { @@ -4263,7 +4247,7 @@ return baseclass.extend(/** @lends LuCI.uci.prototype */ { * Move the first specified section within the given configuration * before or after the second specified section. * - * @param {string} config + * @param {string} conf * The configuration to move the section within. * * @param {string} sid1 @@ -4532,7 +4516,7 @@ return baseclass.extend(/** @lends LuCI.uci.prototype */ {
    - Documentation generated by JSDoc 3.6.11 on Tue Nov 15 2022 18:54:12 GMT+0000 (Coordinated Universal Time) + Documentation generated by JSDoc 3.6.11 on Wed Mar 06 2024 05:14:49 GMT+0000 (Coordinated Universal Time)
    diff --git a/jsapi/ui.js.html b/jsapi/ui.js.html index d3f929d125..41c1cce58b 100644 --- a/jsapi/ui.js.html +++ b/jsapi/ui.js.html @@ -819,6 +819,10 @@
  • enabled
  • +
  • tooltip
  • + +
  • tooltipicon
  • +
  • datatype
  • default
  • @@ -935,10 +939,6 @@
  • tabbed
  • -
  • tooltip
  • - -
  • tooltipicon
  • -
  • uciconfig
  • @@ -1545,12 +1545,6 @@ Members -
  • addbtntitle
  • - -
  • addremove
  • - -
  • anonymous
  • -
  • extedit
  • max_cols
  • @@ -1565,8 +1559,6 @@
  • sortable
  • -
  • uciconfig
  • -
  • addbtntitle
  • addremove
  • @@ -1577,10 +1569,6 @@
  • tabbed
  • -
  • tooltip
  • - -
  • tooltipicon
  • -
  • uciconfig
  • @@ -1743,10 +1731,6 @@
  • tabbed
  • -
  • tooltip
  • - -
  • tooltipicon
  • -
  • uciconfig
  • parentoption
  • @@ -3560,7 +3544,7 @@ var modalDiv = null, * events. * * UI widget instances are usually not supposed to be created by view code - * directly, instead they're implicitely created by `LuCI.form` when + * directly, instead they're implicitly created by `LuCI.form` when * instantiating CBI forms. * * This class is automatically instantiated as part of `LuCI.ui`. To use it @@ -3668,7 +3652,7 @@ var UIElement = baseclass.extend(/** @lends LuCI.ui.AbstractElement.prototype */ * @memberof LuCI.ui.AbstractElement * @returns {boolean} * Returns `true` if the input value has been altered by the user or - * `false` if it is unchaged. Note that if the user modifies the initial + * `false` if it is unchanged. Note that if the user modifies the initial * value and changes it back to the original state, it is still reported * as changed. */ @@ -3756,7 +3740,7 @@ var UIElement = baseclass.extend(/** @lends LuCI.ui.AbstractElement.prototype */ }, /** - * Setup listeners for native DOM events that may update the widget value. + * Set up listeners for native DOM events that may update the widget value. * * Sets up event handlers on the given target DOM node for the given event * names which may cause the input value to update, such as `keyup` or @@ -3799,7 +3783,7 @@ var UIElement = baseclass.extend(/** @lends LuCI.ui.AbstractElement.prototype */ }, /** - * Setup listeners for native DOM events that may change the widget value. + * Set up listeners for native DOM events that may change the widget value. * * Sets up event handlers on the given target DOM node for the given event * names which may cause the input value to change completely, such as @@ -3826,7 +3810,7 @@ var UIElement = baseclass.extend(/** @lends LuCI.ui.AbstractElement.prototype */ }, /** - * Render the widget, setup event listeners and return resulting markup. + * Render the widget, set up event listeners and return resulting markup. * * @instance * @memberof LuCI.ui.AbstractElement @@ -3850,7 +3834,7 @@ var UIElement = baseclass.extend(/** @lends LuCI.ui.AbstractElement.prototype */ * The `Textfield` class implements a standard single line text input field. * * UI widget instances are usually not supposed to be created by view code - * directly, instead they're implicitely created by `LuCI.form` when + * directly, instead they're implicitly created by `LuCI.form` when * instantiating CBI forms. * * This class is automatically instantiated as part of `LuCI.ui`. To use it @@ -3908,6 +3892,7 @@ var UITextfield = UIElement.extend(/** @lends LuCI.ui.Textfield.prototype */ { 'disabled': this.options.disabled ? '' : null, 'maxlength': this.options.maxlength, 'placeholder': this.options.placeholder, + 'autocomplete': this.options.password ? 'new-password' : null, 'value': this.value, }); @@ -3974,7 +3959,7 @@ var UITextfield = UIElement.extend(/** @lends LuCI.ui.Textfield.prototype */ { * The `Textarea` class implements a multiline text area input field. * * UI widget instances are usually not supposed to be created by view code - * directly, instead they're implicitely created by `LuCI.form` when + * directly, instead they're implicitly created by `LuCI.form` when * instantiating CBI forms. * * This class is automatically instantiated as part of `LuCI.ui`. To use it @@ -4090,7 +4075,7 @@ var UITextarea = UIElement.extend(/** @lends LuCI.ui.Textarea.prototype */ { * The `Checkbox` class implements a simple checkbox input field. * * UI widget instances are usually not supposed to be created by view code - * directly, instead they're implicitely created by `LuCI.form` when + * directly, instead they're implicitly created by `LuCI.form` when * instantiating CBI forms. * * This class is automatically instantiated as part of `LuCI.ui`. To use it @@ -4229,7 +4214,7 @@ var UICheckbox = UIElement.extend(/** @lends LuCI.ui.Checkbox.prototype */ { * values are enabled or not. * * UI widget instances are usually not supposed to be created by view code - * directly, instead they're implicitely created by `LuCI.form` when + * directly, instead they're implicitly created by `LuCI.form` when * instantiating CBI forms. * * This class is automatically instantiated as part of `LuCI.ui`. To use it @@ -4259,7 +4244,7 @@ var UISelect = UIElement.extend(/** @lends LuCI.ui.Select.prototype */ { * @property {boolean} [multiple=false] * Specifies whether multiple choice values may be selected. * - * @property {string} [widget=select] + * @property {"select"|"individual"} [widget=select] * Specifies the kind of widget to render. May be either `select` or * `individual`. When set to `select` an HTML `<select>` element will be * used, otherwise a group of checkbox or radio button elements is created, @@ -4437,7 +4422,7 @@ var UISelect = UIElement.extend(/** @lends LuCI.ui.Select.prototype */ { * supports non-text choice labels. * * UI widget instances are usually not supposed to be created by view code - * directly, instead they're implicitely created by `LuCI.form` when + * directly, instead they're implicitly created by `LuCI.form` when * instantiating CBI forms. * * This class is automatically instantiated as part of `LuCI.ui`. To use it @@ -4584,7 +4569,8 @@ var UIDropdown = UIElement.extend(/** @lends LuCI.ui.Dropdown.prototype */ { 'class': 'cbi-dropdown', 'multiple': this.options.multiple ? '' : null, 'optional': this.options.optional ? '' : null, - 'disabled': this.options.disabled ? '' : null + 'disabled': this.options.disabled ? '' : null, + 'tabindex': -1 }, E('ul')); var keys = Object.keys(this.choices); @@ -4719,12 +4705,10 @@ var UIDropdown = UIElement.extend(/** @lends LuCI.ui.Dropdown.prototype */ { window.addEventListener('touchstart', this.closeAllDropdowns); } else { - sb.addEventListener('mouseover', this.handleMouseover.bind(this)); sb.addEventListener('focus', this.handleFocus.bind(this)); canary.addEventListener('focus', this.handleCanaryFocus.bind(this)); - window.addEventListener('mouseover', this.setFocus); window.addEventListener('click', this.closeAllDropdowns); } @@ -4872,12 +4856,18 @@ var UIDropdown = UIElement.extend(/** @lends LuCI.ui.Dropdown.prototype */ { sb.insertBefore(pv, ul.nextElementSibling); li.forEach(function(l) { - l.setAttribute('tabindex', 0); + if (!l.hasAttribute('unselectable')) + l.setAttribute('tabindex', 0); }); sb.lastElementChild.setAttribute('tabindex', 0); - this.setFocus(sb, sel || li[0], true); + var focusFn = L.bind(function(el) { + this.setFocus(sb, el, true); + ul.removeEventListener('transitionend', focusFn); + }, this, sel || li[0]); + + ul.addEventListener('transitionend', focusFn); }, /** @private */ @@ -4986,7 +4976,7 @@ var UIDropdown = UIElement.extend(/** @lends LuCI.ui.Dropdown.prototype */ { li.setAttribute('display', 0); li.setAttribute('selected', ''); - this.closeDropdown(sb, true); + this.closeDropdown(sb); } this.saveValues(sb, ul); @@ -5093,26 +5083,19 @@ var UIDropdown = UIElement.extend(/** @lends LuCI.ui.Dropdown.prototype */ { /** @private */ setFocus: function(sb, elem, scroll) { - if (sb && sb.hasAttribute && sb.hasAttribute('locked-in')) + if (sb.hasAttribute('locked-in')) return; - if (sb.target && findParent(sb.target, 'ul.dropdown')) - return; - - document.querySelectorAll('.focus').forEach(function(e) { - if (!matchesElem(e, 'input')) { - e.classList.remove('focus'); - e.blur(); - } + sb.querySelectorAll('.focus').forEach(function(e) { + e.classList.remove('focus'); }); - if (elem) { - elem.focus(); - elem.classList.add('focus'); + elem.classList.add('focus'); - if (scroll) - elem.parentNode.scrollTop = elem.offsetTop - elem.parentNode.offsetTop; - } + if (scroll) + elem.parentNode.scrollTop = elem.offsetTop - elem.parentNode.offsetTop; + + elem.focus(); }, /** @private */ @@ -5121,7 +5104,7 @@ var UIDropdown = UIElement.extend(/** @lends LuCI.ui.Dropdown.prototype */ { markup = null; if (tpl) - markup = (tpl.textContent || tpl.innerHTML || tpl.firstChild.data).replace(/^<!--|-->$/, '').trim(); + markup = (tpl.textContent || tpl.innerHTML || tpl.firstChild.data).replace(/^<!--|--!?>$/, '').trim(); else markup = '<li data-value="{{value}}"><span data-label-placeholder="true" /></li>'; @@ -5140,6 +5123,9 @@ var UIDropdown = UIElement.extend(/** @lends LuCI.ui.Dropdown.prototype */ { if (this.options.multiple) this.transformItem(sb, new_item); + if (!new_item.hasAttribute('unselectable')) + new_item.setAttribute('tabindex', 0); + return new_item; }, @@ -5292,7 +5278,8 @@ var UIDropdown = UIElement.extend(/** @lends LuCI.ui.Dropdown.prototype */ { /** @private */ handleKeydown: function(ev) { - var sb = ev.currentTarget; + var sb = ev.currentTarget, + ul = sb.querySelector('ul.dropdown'); if (matchesElem(ev.target, 'input')) return; @@ -5313,6 +5300,7 @@ var UIDropdown = UIElement.extend(/** @lends LuCI.ui.Dropdown.prototype */ { switch (ev.keyCode) { case 27: this.closeDropdown(sb); + ev.stopPropagation(); break; case 13: @@ -5336,11 +5324,24 @@ var UIDropdown = UIElement.extend(/** @lends LuCI.ui.Dropdown.prototype */ { this.setFocus(sb, active.previousElementSibling); ev.preventDefault(); } + else if (document.activeElement === ul) { + this.setFocus(sb, ul.lastElementChild); + ev.preventDefault(); + } break; case 40: if (active && active.nextElementSibling) { - this.setFocus(sb, active.nextElementSibling); + var li = active.nextElementSibling; + this.setFocus(sb, li); + if (this.options.create && li == li.parentNode.lastElementChild) { + var input = li.querySelector('input:not([type="hidden"]):not([type="checkbox"]'); + if (input) input.focus(); + } + ev.preventDefault(); + } + else if (document.activeElement === ul) { + this.setFocus(sb, ul.firstElementChild); ev.preventDefault(); } break; @@ -5367,19 +5368,6 @@ var UIDropdown = UIElement.extend(/** @lends LuCI.ui.Dropdown.prototype */ { this.closeDropdown(sb, true); }, - /** @private */ - handleMouseover: function(ev) { - var sb = ev.currentTarget; - - if (!sb.hasAttribute('open')) - return; - - var li = findParent(ev.target, 'li'); - - if (li && li.parentNode.classList.contains('dropdown')) - this.setFocus(sb, li); - }, - /** @private */ handleFocus: function(ev) { var sb = ev.currentTarget; @@ -5398,7 +5386,8 @@ var UIDropdown = UIElement.extend(/** @lends LuCI.ui.Dropdown.prototype */ { /** @private */ handleCreateKeydown: function(ev) { var input = ev.currentTarget, - sb = findParent(input, '.cbi-dropdown'); + li = findParent(input, 'li'), + sb = findParent(li, '.cbi-dropdown'); switch (ev.keyCode) { case 13: @@ -5407,9 +5396,23 @@ var UIDropdown = UIElement.extend(/** @lends LuCI.ui.Dropdown.prototype */ { if (input.classList.contains('cbi-input-invalid')) return; + this.handleCreateBlur(ev); this.createItems(sb, input.value); input.value = ''; - input.blur(); + break; + + case 27: + this.handleCreateBlur(ev); + this.closeDropdown(sb); + ev.stopPropagation(); + input.value = ''; + break; + + case 38: + if (li.previousElementSibling) { + this.handleCreateBlur(ev); + this.setFocus(sb, li.previousElementSibling, true); + } break; } }, @@ -5417,13 +5420,15 @@ var UIDropdown = UIElement.extend(/** @lends LuCI.ui.Dropdown.prototype */ { /** @private */ handleCreateFocus: function(ev) { var input = ev.currentTarget, - cbox = findParent(input, 'li').querySelector('input[type="checkbox"]'), + li = findParent(input, 'li'), + cbox = li.querySelector('input[type="checkbox"]'), sb = findParent(input, '.cbi-dropdown'); if (cbox) cbox.checked = true; sb.setAttribute('locked-in', ''); + this.setFocus(sb, li, true); }, /** @private */ @@ -5498,7 +5503,7 @@ var UIDropdown = UIElement.extend(/** @lends LuCI.ui.Dropdown.prototype */ { * with a set of enforced default properties for easier instantiation. * * UI widget instances are usually not supposed to be created by view code - * directly, instead they're implicitely created by `LuCI.form` when + * directly, instead they're implicitly created by `LuCI.form` when * instantiating CBI forms. * * This class is automatically instantiated as part of `LuCI.ui`. To use it @@ -5565,7 +5570,7 @@ var UICombobox = UIDropdown.extend(/** @lends LuCI.ui.Combobox.prototype */ { * into a dropdown to chose from a set of different action choices. * * UI widget instances are usually not supposed to be created by view code - * directly, instead they're implicitely created by `LuCI.form` when + * directly, instead they're implicitly created by `LuCI.form` when * instantiating CBI forms. * * This class is automatically instantiated as part of `LuCI.ui`. To use it @@ -5588,7 +5593,7 @@ var UIComboButton = UIDropdown.extend(/** @lends LuCI.ui.ComboButton.prototype * /** * ComboButtons support the same properties as * [Dropdown.InitOptions]{@link LuCI.ui.Dropdown.InitOptions} but enforce - * specific values for some properties and add aditional button specific + * specific values for some properties and add additional button specific * properties. * * @typedef {LuCI.ui.Dropdown.InitOptions} InitOptions @@ -5682,7 +5687,7 @@ var UIComboButton = UIDropdown.extend(/** @lends LuCI.ui.ComboButton.prototype * * from a set of predefined choices. * * UI widget instances are usually not supposed to be created by view code - * directly, instead they're implicitely created by `LuCI.form` when + * directly, instead they're implicitly created by `LuCI.form` when * instantiating CBI forms. * * This class is automatically instantiated as part of `LuCI.ui`. To use it @@ -5705,7 +5710,7 @@ var UIComboButton = UIDropdown.extend(/** @lends LuCI.ui.ComboButton.prototype * */ var UIDynamicList = UIElement.extend(/** @lends LuCI.ui.DynamicList.prototype */ { /** - * In case choices are passed to the dynamic list contructor, the widget + * In case choices are passed to the dynamic list constructor, the widget * supports the same properties as [Dropdown.InitOptions]{@link LuCI.ui.Dropdown.InitOptions} * but enforces specific values for some dropdown properties. * @@ -6037,7 +6042,7 @@ var UIDynamicList = UIElement.extend(/** @lends LuCI.ui.DynamicList.prototype */ * which allows to store form data without exposing it to the user. * * UI widget instances are usually not supposed to be created by view code - * directly, instead they're implicitely created by `LuCI.form` when + * directly, instead they're implicitly created by `LuCI.form` when * instantiating CBI forms. * * This class is automatically instantiated as part of `LuCI.ui`. To use it @@ -6103,7 +6108,7 @@ var UIHiddenfield = UIElement.extend(/** @lends LuCI.ui.Hiddenfield.prototype */ * browse, select and delete files beneath a predefined remote directory. * * UI widget instances are usually not supposed to be created by view code - * directly, instead they're implicitely created by `LuCI.form` when + * directly, instead they're implicitly created by `LuCI.form` when * instantiating CBI forms. * * This class is automatically instantiated as part of `LuCI.ui`. To use it @@ -6148,9 +6153,9 @@ var UIFileUpload = UIElement.extend(/** @lends LuCI.ui.FileUpload.prototype */ { * * @property {string} [root_directory=/etc/luci-uploads] * Specifies the remote directory the upload and file browsing actions take - * place in. Browsing to directories outside of the root directory is + * place in. Browsing to directories outside the root directory is * prevented by the widget. Note that this is not a security feature. - * Whether remote directories are browseable or not solely depends on the + * Whether remote directories are browsable or not solely depends on the * ACL setup for the current session. */ __init__: function(value, options) { @@ -6595,7 +6600,7 @@ var UIMenu = baseclass.singleton(/** @lends LuCI.ui.menu.prototype */ { * @property {string} name - The internal name of the node, as used in the URL * @property {number} order - The sort index of the menu node * @property {string} [title] - The title of the menu node, `null` if the node should be hidden - * @property {satisified} boolean - Boolean indicating whether the menu enries dependencies are satisfied + * @property {satisfied} boolean - Boolean indicating whether the menu entries dependencies are satisfied * @property {readonly} [boolean] - Boolean indicating whether the menu entries underlying ACLs are readonly * @property {LuCI.ui.menu.MenuNode[]} [children] - Array of child menu nodes. */ @@ -6743,6 +6748,17 @@ var UITable = baseclass.extend(/** @lends LuCI.ui.table.prototype */ { if (!Array.isArray(data)) return; + this.data = data; + this.placeholder = placeholder; + + var n = 0, + rows = this.node.querySelectorAll('tr, .tr'), + trows = [], + headings = [].slice.call(this.node.firstElementChild.querySelectorAll('th, .th')), + captionClasses = this.options.captionClasses, + trTag = (rows[0] && rows[0].nodeName == 'DIV') ? 'div' : 'tr', + tdTag = (headings[0] && headings[0].nodeName == 'DIV') ? 'div' : 'td'; + if (sorting) { var list = data.map(L.bind(function(row) { return [ this.deriveSortKey(row[sorting[0]], sorting[0]), row ]; @@ -6759,26 +6775,27 @@ var UITable = baseclass.extend(/** @lends LuCI.ui.table.prototype */ { list.forEach(function(item) { data.push(item[1]); }); + + headings.forEach(function(th, i) { + if (i == sorting[0]) + th.setAttribute('data-sort-direction', sorting[1] ? 'desc' : 'asc'); + else + th.removeAttribute('data-sort-direction'); + }); } - this.data = data; - this.placeholder = placeholder; - - var n = 0, - rows = this.node.querySelectorAll('tr'), - trows = [], - headings = [].slice.call(this.node.firstElementChild.querySelectorAll('th')), - captionClasses = this.options.captionClasses; - data.forEach(function(row) { - trows[n] = E('tr', { 'class': 'tr' }); + trows[n] = E(trTag, { 'class': 'tr' }); for (var i = 0; i < headings.length; i++) { var text = (headings[i].innerText || '').trim(); - var td = trows[n].appendChild(E('td', { + var raw_val = Array.isArray(row[i]) ? row[i][0] : null; + var disp_val = Array.isArray(row[i]) ? row[i][1] : row[i]; + var td = trows[n].appendChild(E(tdTag, { 'class': 'td', - 'data-title': (text !== '') ? text : null - }, (row[i] != null) ? row[i] : '')); + 'data-title': (text !== '') ? text : null, + 'data-value': raw_val + }, (disp_val != null) ? ((disp_val instanceof DocumentFragment) ? disp_val.cloneNode(true) : disp_val) : '')); if (typeof(captionClasses) == 'object') DOMTokenList.prototype.add.apply(td.classList, L.toArray(captionClasses[i])); @@ -6801,8 +6818,8 @@ var UITable = baseclass.extend(/** @lends LuCI.ui.table.prototype */ { this.node.removeChild(rows[n]); if (placeholder && this.node.firstElementChild === this.node.lastElementChild) { - var trow = this.node.appendChild(E('tr', { 'class': 'tr placeholder' })), - td = trow.appendChild(E('td', { 'class': 'td' }, placeholder)); + var trow = this.node.appendChild(E(trTag, { 'class': 'tr placeholder' })), + td = trow.appendChild(E(tdTag, { 'class': 'td' }, placeholder)); if (typeof(captionClasses) == 'object') DOMTokenList.prototype.add.apply(td.classList, L.toArray(captionClasses[0])); @@ -6829,6 +6846,7 @@ var UITable = baseclass.extend(/** @lends LuCI.ui.table.prototype */ { if (!headrow) return; + options.id = node.id; options.classes = [].slice.call(node.classList).filter(function(c) { return c != 'table' }); options.sortable = []; options.captionClasses = []; @@ -6855,8 +6873,12 @@ var UITable = baseclass.extend(/** @lends LuCI.ui.table.prototype */ { else if (typeof( opts.sortable) == 'object') hint = opts.sortable[index]; - if (dom.elem(value)) - value = value.innerText.trim(); + if (dom.elem(value)) { + if (value.hasAttribute('data-value')) + value = value.getAttribute('data-value'); + else + value = (value.innerText || '').trim(); + } switch (hint || 'auto') { case true: @@ -6923,8 +6945,11 @@ var UITable = baseclass.extend(/** @lends LuCI.ui.table.prototype */ { if (this.sortState) return this.sortState; + if (!this.options.id) + return null; + var page = document.body.getAttribute('data-page'), - key = page + '.' + this.id, + key = page + '.' + this.options.id, state = session.getLocalData('tablesort'); if (L.isObject(state) && Array.isArray(state[key])) @@ -6941,7 +6966,7 @@ var UITable = baseclass.extend(/** @lends LuCI.ui.table.prototype */ { return; var page = document.body.getAttribute('data-page'), - key = page + '.' + this.id, + key = page + '.' + this.options.id, state = session.getLocalData('tablesort'); if (!L.isObject(state)) @@ -6957,19 +6982,15 @@ var UITable = baseclass.extend(/** @lends LuCI.ui.table.prototype */ { if (!ev.target.matches('th[data-sortable-row]')) return; - var th = ev.target, - direction = (th.getAttribute('data-sort-direction') == 'asc'), - index = 0; + var index, direction; - this.node.firstElementChild.querySelectorAll('th').forEach(function(other_th, i) { - if (other_th !== th) - other_th.removeAttribute('data-sort-direction'); - else + this.node.firstElementChild.querySelectorAll('th, .th').forEach(function(th, i) { + if (th === ev.target) { index = i; + direction = th.getAttribute('data-sort-direction') == 'asc'; + } }); - th.setAttribute('data-sort-direction', direction ? 'desc' : 'asc'); - this.setActiveSortState(index, direction); this.update(this.data, this.placeholder); } @@ -6988,13 +7009,22 @@ var UITable = baseclass.extend(/** @lends LuCI.ui.table.prototype */ { var UI = baseclass.extend(/** @lends LuCI.ui.prototype */ { __init__: function() { modalDiv = document.body.appendChild( - dom.create('div', { id: 'modal_overlay' }, - dom.create('div', { class: 'modal', role: 'dialog', 'aria-modal': true }))); + dom.create('div', { + id: 'modal_overlay', + tabindex: -1, + keydown: this.cancelModal + }, [ + dom.create('div', { + class: 'modal', + role: 'dialog', + 'aria-modal': true + }) + ])); tooltipDiv = document.body.appendChild( dom.create('div', { class: 'cbi-tooltip' })); - /* setup old aliases */ + /* set up old aliases */ L.showModal = this.showModal; L.hideModal = this.hideModal; L.showTooltip = this.showTooltip; @@ -7019,7 +7049,7 @@ var UI = baseclass.extend(/** @lends LuCI.ui.prototype */ { * be opened. Invoking showModal() while a modal dialog is already open will * replace the open dialog with a new one having the specified contents. * - * Additional CSS class names may be passed to influence the appearence of + * Additional CSS class names may be passed to influence the appearance of * the dialog. Valid values for the classes depend on the underlying theme. * * @see LuCI.dom.content @@ -7027,7 +7057,7 @@ var UI = baseclass.extend(/** @lends LuCI.ui.prototype */ { * @param {string} [title] * The title of the dialog. If `null`, no title element will be rendered. * - * @param {*} contents + * @param {*} children * The contents to add to the modal dialog. This should be a DOM node or * a document fragment in most cases. The value is passed as-is to the * `dom.content()` function - refer to its documentation for applicable @@ -7053,6 +7083,7 @@ var UI = baseclass.extend(/** @lends LuCI.ui.prototype */ { document.body.classList.add('modal-overlay-active'); modalDiv.scrollTop = 0; + modalDiv.focus(); return dlg; }, @@ -7064,11 +7095,22 @@ var UI = baseclass.extend(/** @lends LuCI.ui.prototype */ { * behaviour. It has no effect if no modal dialog is currently open. * * Note that this function is stand-alone, it does not rely on `this` and - * will not invoke other class functions so it suitable to be used as event + * will not invoke other class functions so it is suitable to be used as event * handler as-is without the need to bind it first. */ hideModal: function() { document.body.classList.remove('modal-overlay-active'); + modalDiv.blur(); + }, + + /** @private */ + cancelModal: function(ev) { + if (ev.key == 'Escape') { + var btn = modalDiv.querySelector('.right > button, .right > .btn'); + + if (btn) + btn.click(); + } }, /** @private */ @@ -7139,11 +7181,11 @@ var UI = baseclass.extend(/** @lends LuCI.ui.prototype */ { * Add a notification banner at the top of the current view. * * A notification banner is an alert message usually displayed at the - * top of the current view, spanning the entire availibe width. + * top of the current view, spanning the entire available width. * Notification banners will stay in place until dismissed by the user. * Multiple banners may be shown at the same time. * - * Additional CSS class names may be passed to influence the appearence of + * Additional CSS class names may be passed to influence the appearance of * the banner. Valid values for the classes depend on the underlying theme. * * @see LuCI.dom.content @@ -7152,7 +7194,7 @@ var UI = baseclass.extend(/** @lends LuCI.ui.prototype */ { * The title of the notification banner. If `null`, no title element * will be rendered. * - * @param {*} contents + * @param {*} children * The contents to add to the notification banner. This should be a DOM * node or a document fragment in most cases. The value is passed as-is * to the `dom.content()` function - refer to its documentation for @@ -7203,7 +7245,7 @@ var UI = baseclass.extend(/** @lends LuCI.ui.prototype */ { }, /** - * Display or update an header area indicator. + * Display or update a header area indicator. * * An indicator is a small label displayed in the header area of the screen * providing few amounts of status information such as item counts or state @@ -7230,7 +7272,7 @@ var UI = baseclass.extend(/** @lends LuCI.ui.prototype */ { * Note that this parameter only applies to new indicators, when updating * existing labels it is ignored. * - * @param {string} [style=active] + * @param {"active"|"inactive"} [style=active] * The indicator style to use. May be either `active` or `inactive`. * * @returns {boolean} @@ -7273,7 +7315,7 @@ var UI = baseclass.extend(/** @lends LuCI.ui.prototype */ { }, /** - * Remove an header area indicator. + * Remove a header area indicator. * * This function removes the given indicator label from the header indicator * area. When the given indicator is not found, this function does nothing. @@ -7307,7 +7349,7 @@ var UI = baseclass.extend(/** @lends LuCI.ui.prototype */ { * subsequently wrapped into a `<span class="nowrap">` element. * * The resulting `<span>` element tuples are joined by the given separators - * to form the final markup which is appened to the given parent DOM node. + * to form the final markup which is appended to the given parent DOM node. * * @param {Node} node * The parent DOM node to append the markup to. Any previous child elements @@ -7634,7 +7676,7 @@ var UI = baseclass.extend(/** @lends LuCI.ui.prototype */ { * @param {string} path * The remote file path to upload the local file to. * - * @param {Node} [progessStatusNode] + * @param {Node} [progressStatusNode] * An optional DOM text node whose content text is set to the progress * percentage value during file upload. * @@ -7684,7 +7726,7 @@ var UI = baseclass.extend(/** @lends LuCI.ui.prototype */ { 'class': 'btn', 'click': function() { UI.prototype.hideModal(); - rejectFn(new Error('Upload has been cancelled')); + rejectFn(new Error(_('Upload has been cancelled'))); } }, [ _('Cancel') ]), ' ', @@ -7748,7 +7790,7 @@ var UI = baseclass.extend(/** @lends LuCI.ui.prototype */ { /** * Perform a device connectivity test. * - * Attempt to fetch a well known ressource from the remote device via HTTP + * Attempt to fetch a well known resource from the remote device via HTTP * in order to test connectivity. This function is mainly useful to wait * for the router to come back online after a reboot or reconfiguration. * @@ -7756,7 +7798,7 @@ var UI = baseclass.extend(/** @lends LuCI.ui.prototype */ { * The protocol to use for fetching the resource. May be either `http` * (the default) or `https`. * - * @param {string} [host=window.location.host] + * @param {string} [ipaddr=window.location.host] * Override the host address to probe. By default the current host as seen * in the address bar is probed. * @@ -7845,7 +7887,7 @@ var UI = baseclass.extend(/** @lends LuCI.ui.prototype */ { * * @instance * @memberof LuCI.ui.changes - * @param {number} numChanges + * @param {number} n * The number of changes to indicate. */ setIndicator: function(n) { @@ -8012,7 +8054,8 @@ var UI = baseclass.extend(/** @lends LuCI.ui.prototype */ { for (var j = 0; this.changes && this.changes.network && j < this.changes.network.length; j++) { var chg = this.changes.network[j]; - if (chg[0] == 'set' && chg[1] == iif && (chg[2] == 'proto' || chg[2] == 'ipaddr' || chg[2] == 'netmask')) + if (chg[0] == 'set' && chg[1] == iif && + ((chg[2] == 'disabled' && chg[3] == '1') || chg[2] == 'proto' || chg[2] == 'ipaddr' || chg[2] == 'netmask')) return iif; } } @@ -8386,7 +8429,7 @@ var UI = baseclass.extend(/** @lends LuCI.ui.prototype */ { * * By instantiating the view class, its corresponding contents are * rendered and included into the view area. Any runtime errors are - * catched and rendered using [LuCI.error()]{@link LuCI#error}. + * caught and rendered using [LuCI.error()]{@link LuCI#error}. * * @param {string} path * The view path to render. @@ -8440,7 +8483,7 @@ return UI;