<footer>
- Documentation generated by <a target="_blank" href="https://github.com/jsdoc3/jsdoc">JSDoc 3.6.11</a> on Mon Jun 02 2025 19:03:24 GMT+0000 (Coordinated Universal Time)
+ Documentation generated by <a target="_blank" href="https://github.com/jsdoc3/jsdoc">JSDoc 3.6.11</a> on Mon Jun 09 2025 22:45:27 GMT+0000 (Coordinated Universal Time)
</footer>
</div>
</div>
<footer>
- Documentation generated by <a target="_blank" href="https://github.com/jsdoc3/jsdoc">JSDoc 3.6.11</a> on Mon Jun 02 2025 19:03:24 GMT+0000 (Coordinated Universal Time)
+ Documentation generated by <a target="_blank" href="https://github.com/jsdoc3/jsdoc">JSDoc 3.6.11</a> on Mon Jun 09 2025 22:45:27 GMT+0000 (Coordinated Universal Time)
</footer>
</div>
</div>
<div class="description">
- <p>Parse this elements form input.</p>
+ <p>Parse this element's form input.</p>
<p>The <code>parse()</code> function recursively walks the form element tree and
triggers input value reading and validation for each encountered element.</p>
<p>Elements which are hidden due to unsatisfied dependencies are skipped.</p>
</td>
<td class="description last">Returns a promise resolving once this element's value and the values of
all child elements have been parsed. The returned promise is rejected
-if any parsed values are not meeting the validation constraints of their
+if any parsed values do not meet the validation constraints of their
respective elements.</td>
</tr>
<footer>
- Documentation generated by <a target="_blank" href="https://github.com/jsdoc3/jsdoc">JSDoc 3.6.11</a> on Mon Jun 02 2025 19:03:24 GMT+0000 (Coordinated Universal Time)
+ Documentation generated by <a target="_blank" href="https://github.com/jsdoc3/jsdoc">JSDoc 3.6.11</a> on Mon Jun 09 2025 22:45:27 GMT+0000 (Coordinated Universal Time)
</footer>
</div>
</div>
AbstractSection
</h2>
- <div class="class-description"><p>The <code>AbstractSection</code> class serves as abstract base for the different form
+ <div class="class-description"><p>The <code>AbstractSection</code> class serves as an abstract base for the different form
section styles implemented by <code>LuCI.form</code>. It provides the common logic for
enumerating underlying configuration section instances, for registering
-form options and for handling tabs to segment child options.</p>
+form options and for handling tabs in order to segment child options.</p>
<p>This class is private and not directly accessible by user code.</p></div>
</header>
<p>Query underlying option configuration values.</p>
<p>This function is sensitive to the amount of arguments passed to it;
if only one argument is specified, the configuration values of all
-options within this section are returned as dictionary.</p>
+options within this section are returned as a dictionary.</p>
<p>If both the section ID and an option name are supplied, this function
returns the configuration value of the specified option only.</p>
</div>
and controls whether the given UCI section is rendered or ignored by
the form section element.</p>
<p>The default implementation always returns <code>true</code>. User code or
-classes extending <code>AbstractSection</code> may overwrite this function with
+classes extending <code>AbstractSection</code> may override this function with
custom implementations.</p>
</div>
<p>Query underlying option widget input values.</p>
<p>This function is sensitive to the amount of arguments passed to it;
if only one argument is specified, the widget input values of all
-options within this section are returned as dictionary.</p>
+options within this section are returned as a dictionary.</p>
<p>If both the section ID and an option name are supplied, this function
returns the widget input value of the specified option only.</p>
</div>
<p>Obtain underlying option objects.</p>
<p>This function is sensitive to the amount of arguments passed to it;
if no option name is specified, all options within this section are
-returned as dictionary.</p>
+returned as a dictionary.</p>
<p>If an option name is supplied, this function returns the matching
LuCI.form.AbstractValue instance only.</p>
</div>
<p>Obtain underlying option LuCI.ui widget instances.</p>
<p>This function is sensitive to the amount of arguments passed to it;
if only one argument is specified, the LuCI.ui widget instances of all
-options within this section are returned as dictionary.</p>
+options within this section are returned as a dictionary.</p>
<p>If both the section ID and an option name are supplied, this function
returns the LuCI.ui widget instance value of the specified option only.</p>
</div>
</td>
<td class="description last">Returns a promise resolving once the values of all child elements have
been loaded. The promise may reject with an error if any of the child
-elements load functions rejected with an error.</td>
+elements' load functions rejected with an error.</td>
</tr>
</tbody>
</td>
<td class="description last">Returns a promise resolving once the values of all child elements have
-been parsed. The returned promise is rejected if any parsed values are
-not meeting the validation constraints of their respective elements.</td>
+been parsed. The returned promise is rejected if any parsed values do
+not meet the validation constraints of their respective elements.</td>
</tr>
</tbody>
<footer>
- Documentation generated by <a target="_blank" href="https://github.com/jsdoc3/jsdoc">JSDoc 3.6.11</a> on Mon Jun 02 2025 19:03:24 GMT+0000 (Coordinated Universal Time)
+ Documentation generated by <a target="_blank" href="https://github.com/jsdoc3/jsdoc">JSDoc 3.6.11</a> on Mon Jun 09 2025 22:45:27 GMT+0000 (Coordinated Universal Time)
</footer>
</div>
</div>
<p>Options which are displayed in the table portion of a <code>GridSection</code>
instance are rendered as readonly text by default. By setting the
<code>editable</code> property of a child option element to <code>true</code>, that element
-is rendered as full input widget within its cell instead of a text only
+is rendered as a full input widget within its cell instead of a text only
preview.</p>
<p>This property has no effect on options that are not children of grid
section elements.</p>
<div class="description">
<p>Register a custom value change handler.</p>
-<p>If this property is set to a function value, the function is invoked
-whenever the value of the underlying UI input element is changing.</p>
+<p>If this property is set to a function, it is invoked
+whenever the value of the underlying UI input element changes.</p>
<p>The invoked handler function will receive the DOM click element as
first and the underlying configuration section ID as well as the input
value as second and third argument respectively.</p>
<p>Make option element readonly.</p>
<p>This property defaults to the readonly state of the parent form element.
When set to <code>true</code>, the underlying widget is rendered in disabled state,
-means its contents cannot be changed and the widget cannot be interacted
-with.</p>
+meaning its contents cannot be changed and the widget cannot be
+interacted with.</p>
</div>
<p>Override the UCI configuration name to read the option value from.</p>
<p>By default, the configuration name is inherited from the parent Map.
By setting this property, a deviating configuration may be specified.</p>
-<p>The default is null, means inheriting from the parent form.</p>
+<p>The default of null means inherit from the parent form.</p>
</div>
<p>By default, the elements name, which is passed as third argument to
the constructor, is used as UCI option name. By setting this property,
a deviating UCI option may be specified.</p>
-<p>The default is null, means using the option element name.</p>
+<p>The default of null means use the option element name.</p>
</div>
<p>Override the UCI section name to read the option value from.</p>
<p>By default, the section ID is inherited from the parent section element.
By setting this property, a deviating section may be specified.</p>
-<p>The default is null, means inheriting from the parent section.</p>
+<p>The default of null means inherit from the parent section.</p>
</div>
<p>Query the underlying configuration value.</p>
<p>The default implementation of this method returns the cached return
value of <a href="LuCI.form.AbstractValue.html#load"><code>load()</code></a>. It may be
-overwritten by user code to obtain the configuration value in a
+overridden by user code to obtain the configuration value in a
different way.</p>
</div>
<p>Dependency constraints allow making the presence of option elements
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.</p>
+hidden from the view and its current value omitted when saving.</p>
<p>Multiple constraints (that is, multiple calls to <code>depends()</code>) are
treated as alternatives, forming a logical "or" expression.</p>
<p>By passing an object of name => value pairs as first argument, it is
-possible to depend on multiple options simultaneously, allowing to form
+possible to depend on multiple options simultaneously, forming
a logical "and" expression.</p>
<p>Option names may be given in "dot notation" which allows to reference
option elements outside the current form section. If a name without
<p>Query the current form input value.</p>
<p>The default implementation of this method returns the current input
value of the underlying <a href="LuCI.ui.AbstractElement.html"><code>LuCI.ui</code></a> widget.
-It may be overwritten by user code to handle input values differently.</p>
+It may be overridden by user code to handle input values differently.</p>
</div>
<p>Load the underlying configuration value.</p>
<p>The default implementation of this method reads and returns the
underlying UCI option value (or the related JavaScript property for
-<code>JSONMap</code> instances). It may be overwritten by user code to load data
-from nonstandard sources.</p>
+<code>JSONMap</code> instances). It may be overridden by user code to load data
+from non-standard sources.</p>
</div>
user cleared the input value and the option is marked optional.</p>
<p>The default implementation simply removes the associated option from the
UCI configuration (or the associated JavaScript object property in
-case of <code>JSONMap</code> forms). It may be overwritten by user code to
+case of <code>JSONMap</code> forms). It may be overridden by user code to
implement alternative removal logic, e.g. to retain the original value.</p>
</div>
<div class="description">
<p>Obtain a textual input representation.</p>
-<p>The default implementation of this method returns the HTML escaped
+<p>The default implementation of this method returns the HTML-escaped
current input value of the underlying
<a href="LuCI.ui.AbstractElement.html"><code>LuCI.ui</code></a> widget. User code or specific
-option element implementations may overwrite this function to apply a
+option element implementations may override this function to apply a
different logic, e.g. to return <code>Yes</code> or <code>No</code> depending on the checked
state of checkbox elements.</p>
</div>
<p>This method is invoked whenever incremental validation is performed on
the user input, e.g. on keyup or blur events.</p>
<p>The default implementation of this method does nothing and always
-returns <code>true</code>. User code may overwrite this method to provide
+returns <code>true</code>. User code may override this method to provide
additional validation logic which is not covered by data type
constraints.</p>
</div>
<a href="LuCI.form.AbstractValue.html#cfgvalue"><code>cfgvalue()</code></a>.</p>
<p>The default implementation simply sets the given input value in the
UCI configuration (or the associated JavaScript object property in
-case of <code>JSONMap</code> forms). It may be overwritten by user code to
+case of <code>JSONMap</code> forms). It may be overridden by user code to
implement alternative save logic, e.g. to transform the input value
before it is written.</p>
</div>
<footer>
- Documentation generated by <a target="_blank" href="https://github.com/jsdoc3/jsdoc">JSDoc 3.6.11</a> on Mon Jun 02 2025 19:03:24 GMT+0000 (Coordinated Universal Time)
+ Documentation generated by <a target="_blank" href="https://github.com/jsdoc3/jsdoc">JSDoc 3.6.11</a> on Mon Jun 09 2025 22:45:27 GMT+0000 (Coordinated Universal Time)
</footer>
</div>
</div>
ButtonValue
</h2>
- <div class="class-description"><p>The <code>DummyValue</code> element wraps an <a href="LuCI.ui.Hiddenfield.html"><code>LuCI.ui.Hiddenfield</code></a> widget and
+ <div class="class-description"><p>The <code>ButtonValue</code> element wraps a <a href="LuCI.ui.Hiddenfield.html"><code>LuCI.ui.Hiddenfield</code></a> widget and
renders the underlying UCI option or default value as readonly text.</p></div>
</header>
<div class="tag-source">
- <a href="form.js.html">form.js</a>, <a href="form.js.html#line4554">line 4554</a>
+ <a href="form.js.html">form.js</a>, <a href="form.js.html#line4556">line 4556</a>
</div>
</div>
selected to influence the style of the resulting button.</p>
<p>Suitable values which are implemented by most themes are <code>positive</code>,
<code>negative</code> and <code>primary</code>.</p>
-<p>The default is <code>null</code>, means a neutral button styling is used.</p>
+<p>The default of <code>null</code> means a neutral button styling is used.</p>
</div>
<p>Override the rendered button caption.</p>
<p>By default, the option title - which is passed as fourth argument to the
constructor - is used as caption for the button element. When setting
-this property to a string, it is used as <code>String.format()</code> pattern with
+this property to a string, it is used as a <code>String.format()</code> pattern with
the underlying UCI section name passed as first format argument. When
set to a function, it is invoked passing the section ID as sole argument
and the resulting return value is converted to a string before being
used as button caption.</p>
-<p>The default is <code>null</code>, means the option title is used as caption.</p>
+<p>The default of <code>null</code> means the option title is used as caption.</p>
</div>
<p>Options which are displayed in the table portion of a <code>GridSection</code>
instance are rendered as readonly text by default. By setting the
<code>editable</code> property of a child option element to <code>true</code>, that element
-is rendered as full input widget within its cell instead of a text only
+is rendered as a full input widget within its cell instead of a text only
preview.</p>
<p>This property has no effect on options that are not children of grid
section elements.</p>
<div class="description">
<p>Register a custom value change handler.</p>
-<p>If this property is set to a function value, the function is invoked
-whenever the value of the underlying UI input element is changing.</p>
+<p>If this property is set to a function, it is invoked
+whenever the value of the underlying UI input element changes.</p>
<p>The invoked handler function will receive the DOM click element as
first and the underlying configuration section ID as well as the input
value as second and third argument respectively.</p>
<dd>
<div class="description">
- <p>If set to <code>true</code>, the field is rendered as password input, otherwise
-as plain text input.</p>
+ <p>If set to <code>true</code>, the field is rendered as a password input, otherwise
+as a plain text input.</p>
</div>
<p>Make option element readonly.</p>
<p>This property defaults to the readonly state of the parent form element.
When set to <code>true</code>, the underlying widget is rendered in disabled state,
-means its contents cannot be changed and the widget cannot be interacted
-with.</p>
+meaning its contents cannot be changed and the widget cannot be
+interacted with.</p>
</div>
<p>Override the UCI configuration name to read the option value from.</p>
<p>By default, the configuration name is inherited from the parent Map.
By setting this property, a deviating configuration may be specified.</p>
-<p>The default is null, means inheriting from the parent form.</p>
+<p>The default of null means inherit from the parent form.</p>
</div>
<p>By default, the elements name, which is passed as third argument to
the constructor, is used as UCI option name. By setting this property,
a deviating UCI option may be specified.</p>
-<p>The default is null, means using the option element name.</p>
+<p>The default of null means use the option element name.</p>
</div>
<p>Override the UCI section name to read the option value from.</p>
<p>By default, the section ID is inherited from the parent section element.
By setting this property, a deviating section may be specified.</p>
-<p>The default is null, means inheriting from the parent section.</p>
+<p>The default of null means inherit from the parent section.</p>
</div>
<p>Query the underlying configuration value.</p>
<p>The default implementation of this method returns the cached return
value of <a href="LuCI.form.AbstractValue.html#load"><code>load()</code></a>. It may be
-overwritten by user code to obtain the configuration value in a
+overridden by user code to obtain the configuration value in a
different way.</p>
</div>
<p>Dependency constraints allow making the presence of option elements
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.</p>
+hidden from the view and its current value omitted when saving.</p>
<p>Multiple constraints (that is, multiple calls to <code>depends()</code>) are
treated as alternatives, forming a logical "or" expression.</p>
<p>By passing an object of name => value pairs as first argument, it is
-possible to depend on multiple options simultaneously, allowing to form
+possible to depend on multiple options simultaneously, forming
a logical "and" expression.</p>
<p>Option names may be given in "dot notation" which allows to reference
option elements outside the current form section. If a name without
<p>Query the current form input value.</p>
<p>The default implementation of this method returns the current input
value of the underlying <a href="LuCI.ui.AbstractElement.html"><code>LuCI.ui</code></a> widget.
-It may be overwritten by user code to handle input values differently.</p>
+It may be overridden by user code to handle input values differently.</p>
</div>
<p>Load the underlying configuration value.</p>
<p>The default implementation of this method reads and returns the
underlying UCI option value (or the related JavaScript property for
-<code>JSONMap</code> instances). It may be overwritten by user code to load data
-from nonstandard sources.</p>
+<code>JSONMap</code> instances). It may be overridden by user code to load data
+from non-standard sources.</p>
</div>
user cleared the input value and the option is marked optional.</p>
<p>The default implementation simply removes the associated option from the
UCI configuration (or the associated JavaScript object property in
-case of <code>JSONMap</code> forms). It may be overwritten by user code to
+case of <code>JSONMap</code> forms). It may be overridden by user code to
implement alternative removal logic, e.g. to retain the original value.</p>
</div>
<div class="description">
<p>Obtain a textual input representation.</p>
-<p>The default implementation of this method returns the HTML escaped
+<p>The default implementation of this method returns the HTML-escaped
current input value of the underlying
<a href="LuCI.ui.AbstractElement.html"><code>LuCI.ui</code></a> widget. User code or specific
-option element implementations may overwrite this function to apply a
+option element implementations may override this function to apply a
different logic, e.g. to return <code>Yes</code> or <code>No</code> depending on the checked
state of checkbox elements.</p>
</div>
<a href="LuCI.form.AbstractValue.html#cfgvalue"><code>cfgvalue()</code></a>.</p>
<p>The default implementation simply sets the given input value in the
UCI configuration (or the associated JavaScript object property in
-case of <code>JSONMap</code> forms). It may be overwritten by user code to
+case of <code>JSONMap</code> forms). It may be overridden by user code to
implement alternative save logic, e.g. to transform the input value
before it is written.</p>
</div>
<footer>
- Documentation generated by <a target="_blank" href="https://github.com/jsdoc3/jsdoc">JSDoc 3.6.11</a> on Mon Jun 02 2025 19:03:24 GMT+0000 (Coordinated Universal Time)
+ Documentation generated by <a target="_blank" href="https://github.com/jsdoc3/jsdoc">JSDoc 3.6.11</a> on Mon Jun 09 2025 22:45:27 GMT+0000 (Coordinated Universal Time)
</footer>
</div>
</div>
DummyValue
</h2>
- <div class="class-description"><p>The <code>DummyValue</code> element wraps an <a href="LuCI.ui.Hiddenfield.html"><code>LuCI.ui.Hiddenfield</code></a> widget and
+ <div class="class-description"><p>The <code>DummyValue</code> element wraps a <a href="LuCI.ui.Hiddenfield.html"><code>LuCI.ui.Hiddenfield</code></a> widget and
renders the underlying UCI option or default value as readonly text.</p></div>
</header>
<dd>
<div class="description">
- <p>Render the UCI option value as hidden using the HTML display: none style property.</p>
-<p>By default, the value is displayed</p>
+ <p>Render the UCI option value as hidden using the HTML 'display: none'
+style property.</p>
+<p>By default, the value is displayed.</p>
</div>
<p>Options which are displayed in the table portion of a <code>GridSection</code>
instance are rendered as readonly text by default. By setting the
<code>editable</code> property of a child option element to <code>true</code>, that element
-is rendered as full input widget within its cell instead of a text only
+is rendered as a full input widget within its cell instead of a text only
preview.</p>
<p>This property has no effect on options that are not children of grid
section elements.</p>
<div class="description">
<p>Register a custom value change handler.</p>
-<p>If this property is set to a function value, the function is invoked
-whenever the value of the underlying UI input element is changing.</p>
+<p>If this property is set to a function, it is invoked
+whenever the value of the underlying UI input element changes.</p>
<p>The invoked handler function will receive the DOM click element as
first and the underlying configuration section ID as well as the input
value as second and third argument respectively.</p>
<dd>
<div class="description">
- <p>If set to <code>true</code>, the field is rendered as password input, otherwise
-as plain text input.</p>
+ <p>If set to <code>true</code>, the field is rendered as a password input, otherwise
+as a plain text input.</p>
</div>
<p>Make option element readonly.</p>
<p>This property defaults to the readonly state of the parent form element.
When set to <code>true</code>, the underlying widget is rendered in disabled state,
-means its contents cannot be changed and the widget cannot be interacted
-with.</p>
+meaning its contents cannot be changed and the widget cannot be
+interacted with.</p>
</div>
<p>Override the UCI configuration name to read the option value from.</p>
<p>By default, the configuration name is inherited from the parent Map.
By setting this property, a deviating configuration may be specified.</p>
-<p>The default is null, means inheriting from the parent form.</p>
+<p>The default of null means inherit from the parent form.</p>
</div>
<p>By default, the elements name, which is passed as third argument to
the constructor, is used as UCI option name. By setting this property,
a deviating UCI option may be specified.</p>
-<p>The default is null, means using the option element name.</p>
+<p>The default of null means use the option element name.</p>
</div>
<p>Override the UCI section name to read the option value from.</p>
<p>By default, the section ID is inherited from the parent section element.
By setting this property, a deviating section may be specified.</p>
-<p>The default is null, means inheriting from the parent section.</p>
+<p>The default of null means inherit from the parent section.</p>
</div>
<p>Query the underlying configuration value.</p>
<p>The default implementation of this method returns the cached return
value of <a href="LuCI.form.AbstractValue.html#load"><code>load()</code></a>. It may be
-overwritten by user code to obtain the configuration value in a
+overridden by user code to obtain the configuration value in a
different way.</p>
</div>
<p>Dependency constraints allow making the presence of option elements
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.</p>
+hidden from the view and its current value omitted when saving.</p>
<p>Multiple constraints (that is, multiple calls to <code>depends()</code>) are
treated as alternatives, forming a logical "or" expression.</p>
<p>By passing an object of name => value pairs as first argument, it is
-possible to depend on multiple options simultaneously, allowing to form
+possible to depend on multiple options simultaneously, forming
a logical "and" expression.</p>
<p>Option names may be given in "dot notation" which allows to reference
option elements outside the current form section. If a name without
<p>Query the current form input value.</p>
<p>The default implementation of this method returns the current input
value of the underlying <a href="LuCI.ui.AbstractElement.html"><code>LuCI.ui</code></a> widget.
-It may be overwritten by user code to handle input values differently.</p>
+It may be overridden by user code to handle input values differently.</p>
</div>
<p>Load the underlying configuration value.</p>
<p>The default implementation of this method reads and returns the
underlying UCI option value (or the related JavaScript property for
-<code>JSONMap</code> instances). It may be overwritten by user code to load data
-from nonstandard sources.</p>
+<code>JSONMap</code> instances). It may be overridden by user code to load data
+from non-standard sources.</p>
</div>
<div class="tag-source">
- <a href="form.js.html">form.js</a>, <a href="form.js.html#line4548">line 4548</a>
+ <a href="form.js.html">form.js</a>, <a href="form.js.html#line4550">line 4550</a>
</div>
</div>
user cleared the input value and the option is marked optional.</p>
<p>The default implementation simply removes the associated option from the
UCI configuration (or the associated JavaScript object property in
-case of <code>JSONMap</code> forms). It may be overwritten by user code to
+case of <code>JSONMap</code> forms). It may be overridden by user code to
implement alternative removal logic, e.g. to retain the original value.</p>
</div>
<div class="description">
<p>Obtain a textual input representation.</p>
-<p>The default implementation of this method returns the HTML escaped
+<p>The default implementation of this method returns the HTML-escaped
current input value of the underlying
<a href="LuCI.ui.AbstractElement.html"><code>LuCI.ui</code></a> widget. User code or specific
-option element implementations may overwrite this function to apply a
+option element implementations may override this function to apply a
different logic, e.g. to return <code>Yes</code> or <code>No</code> depending on the checked
state of checkbox elements.</p>
</div>
<div class="tag-source">
- <a href="form.js.html">form.js</a>, <a href="form.js.html#line4551">line 4551</a>
+ <a href="form.js.html">form.js</a>, <a href="form.js.html#line4553">line 4553</a>
</div>
</div>
<a href="LuCI.form.AbstractValue.html#cfgvalue"><code>cfgvalue()</code></a>.</p>
<p>The default implementation simply sets the given input value in the
UCI configuration (or the associated JavaScript object property in
-case of <code>JSONMap</code> forms). It may be overwritten by user code to
+case of <code>JSONMap</code> forms). It may be overridden by user code to
implement alternative save logic, e.g. to transform the input value
before it is written.</p>
</div>
<footer>
- Documentation generated by <a target="_blank" href="https://github.com/jsdoc3/jsdoc">JSDoc 3.6.11</a> on Mon Jun 02 2025 19:03:24 GMT+0000 (Coordinated Universal Time)
+ Documentation generated by <a target="_blank" href="https://github.com/jsdoc3/jsdoc">JSDoc 3.6.11</a> on Mon Jun 09 2025 22:45:27 GMT+0000 (Coordinated Universal Time)
</footer>
</div>
</div>
DynamicList
</h2>
- <div class="class-description"><p>The <code>DynamicList</code> class represents a multi value widget allowing the user
+ <div class="class-description"><p>The <code>DynamicList</code> class represents a multi-value widget allowing the user
to enter multiple unique values, optionally selected from a set of
predefined choices. It builds upon the <a href="LuCI.ui.DynamicList.html"><code>LuCI.ui.DynamicList</code></a> widget.</p></div>
<p>Options which are displayed in the table portion of a <code>GridSection</code>
instance are rendered as readonly text by default. By setting the
<code>editable</code> property of a child option element to <code>true</code>, that element
-is rendered as full input widget within its cell instead of a text only
+is rendered as a full input widget within its cell instead of a text only
preview.</p>
<p>This property has no effect on options that are not children of grid
section elements.</p>
<div class="description">
<p>Register a custom value change handler.</p>
-<p>If this property is set to a function value, the function is invoked
-whenever the value of the underlying UI input element is changing.</p>
+<p>If this property is set to a function, it is invoked
+whenever the value of the underlying UI input element changes.</p>
<p>The invoked handler function will receive the DOM click element as
first and the underlying configuration section ID as well as the input
value as second and third argument respectively.</p>
<dd>
<div class="description">
- <p>If set to <code>true</code>, the field is rendered as password input, otherwise
-as plain text input.</p>
+ <p>If set to <code>true</code>, the field is rendered as a password input, otherwise
+as a plain text input.</p>
</div>
<p>Make option element readonly.</p>
<p>This property defaults to the readonly state of the parent form element.
When set to <code>true</code>, the underlying widget is rendered in disabled state,
-means its contents cannot be changed and the widget cannot be interacted
-with.</p>
+meaning its contents cannot be changed and the widget cannot be
+interacted with.</p>
</div>
<p>Override the UCI configuration name to read the option value from.</p>
<p>By default, the configuration name is inherited from the parent Map.
By setting this property, a deviating configuration may be specified.</p>
-<p>The default is null, means inheriting from the parent form.</p>
+<p>The default of null means inherit from the parent form.</p>
</div>
<p>By default, the elements name, which is passed as third argument to
the constructor, is used as UCI option name. By setting this property,
a deviating UCI option may be specified.</p>
-<p>The default is null, means using the option element name.</p>
+<p>The default of null means use the option element name.</p>
</div>
<p>Override the UCI section name to read the option value from.</p>
<p>By default, the section ID is inherited from the parent section element.
By setting this property, a deviating section may be specified.</p>
-<p>The default is null, means inheriting from the parent section.</p>
+<p>The default of null means inherit from the parent section.</p>
</div>
<p>Query the underlying configuration value.</p>
<p>The default implementation of this method returns the cached return
value of <a href="LuCI.form.AbstractValue.html#load"><code>load()</code></a>. It may be
-overwritten by user code to obtain the configuration value in a
+overridden by user code to obtain the configuration value in a
different way.</p>
</div>
<p>Dependency constraints allow making the presence of option elements
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.</p>
+hidden from the view and its current value omitted when saving.</p>
<p>Multiple constraints (that is, multiple calls to <code>depends()</code>) are
treated as alternatives, forming a logical "or" expression.</p>
<p>By passing an object of name => value pairs as first argument, it is
-possible to depend on multiple options simultaneously, allowing to form
+possible to depend on multiple options simultaneously, forming
a logical "and" expression.</p>
<p>Option names may be given in "dot notation" which allows to reference
option elements outside the current form section. If a name without
<p>Query the current form input value.</p>
<p>The default implementation of this method returns the current input
value of the underlying <a href="LuCI.ui.AbstractElement.html"><code>LuCI.ui</code></a> widget.
-It may be overwritten by user code to handle input values differently.</p>
+It may be overridden by user code to handle input values differently.</p>
</div>
<p>Load the underlying configuration value.</p>
<p>The default implementation of this method reads and returns the
underlying UCI option value (or the related JavaScript property for
-<code>JSONMap</code> instances). It may be overwritten by user code to load data
-from nonstandard sources.</p>
+<code>JSONMap</code> instances). It may be overridden by user code to load data
+from non-standard sources.</p>
</div>
user cleared the input value and the option is marked optional.</p>
<p>The default implementation simply removes the associated option from the
UCI configuration (or the associated JavaScript object property in
-case of <code>JSONMap</code> forms). It may be overwritten by user code to
+case of <code>JSONMap</code> forms). It may be overridden by user code to
implement alternative removal logic, e.g. to retain the original value.</p>
</div>
<div class="description">
<p>Obtain a textual input representation.</p>
-<p>The default implementation of this method returns the HTML escaped
+<p>The default implementation of this method returns the HTML-escaped
current input value of the underlying
<a href="LuCI.ui.AbstractElement.html"><code>LuCI.ui</code></a> widget. User code or specific
-option element implementations may overwrite this function to apply a
+option element implementations may override this function to apply a
different logic, e.g. to return <code>Yes</code> or <code>No</code> depending on the checked
state of checkbox elements.</p>
</div>
<a href="LuCI.form.AbstractValue.html#cfgvalue"><code>cfgvalue()</code></a>.</p>
<p>The default implementation simply sets the given input value in the
UCI configuration (or the associated JavaScript object property in
-case of <code>JSONMap</code> forms). It may be overwritten by user code to
+case of <code>JSONMap</code> forms). It may be overridden by user code to
implement alternative save logic, e.g. to transform the input value
before it is written.</p>
</div>
<footer>
- Documentation generated by <a target="_blank" href="https://github.com/jsdoc3/jsdoc">JSDoc 3.6.11</a> on Mon Jun 02 2025 19:03:24 GMT+0000 (Coordinated Universal Time)
+ Documentation generated by <a target="_blank" href="https://github.com/jsdoc3/jsdoc">JSDoc 3.6.11</a> on Mon Jun 09 2025 22:45:27 GMT+0000 (Coordinated Universal Time)
</footer>
</div>
</div>
FileUpload
</h2>
- <div class="class-description"><p>The <code>FileUpload</code> element wraps an <a href="LuCI.ui.FileUpload.html"><code>LuCI.ui.FileUpload</code></a> widget and
+ <div class="class-description"><p>The <code>FileUpload</code> element wraps a <a href="LuCI.ui.FileUpload.html"><code>LuCI.ui.FileUpload</code></a> widget and
offers the ability to browse, upload and select remote files.</p></div>
</header>
<div class="tag-source">
- <a href="form.js.html">form.js</a>, <a href="form.js.html#line4721">line 4721</a>
+ <a href="form.js.html">form.js</a>, <a href="form.js.html#line4723">line 4723</a>
</div>
</div>
<p>Toggle remote file delete functionality.</p>
<p>When set to <code>true</code>, the underlying widget provides a buttons which let
the user delete files from remote directories. Note that this is merely
-a cosmetic feature, remote delete permissions are controlled by the
+a cosmetic feature: remote delete permissions are controlled by the
session ACL rules.</p>
<p>The default is <code>true</code>, means file removal buttons are displayed.</p>
</div>
<p>Toggle file upload functionality.</p>
<p>When set to <code>true</code>, the underlying widget provides a button which lets
the user select and upload local files to the remote system.
-Note that this is merely a cosmetic feature, remote upload access is
+Note that this is merely a cosmetic feature: remote upload access is
controlled by the session ACL rules.</p>
-<p>The default is <code>true</code>, means file upload functionality is displayed.</p>
+<p>The default of <code>true</code> means file upload functionality is displayed.</p>
</div>
<div class="description">
<p>Specify the root directory for file browsing.</p>
<p>This property defines the topmost directory the file browser widget may
-navigate to, the UI will not allow browsing directories outside this
-prefix. Note that this is merely a cosmetic feature, remote file access
+navigate to. The UI will not allow browsing directories outside this
+prefix. Note that this is merely a cosmetic feature: remote file access
and directory listing permissions are controlled by the session ACL
rules.</p>
<p>The default is <code>/etc/luci-uploads</code>.</p>
<div class="description">
<p>Toggle display of hidden files.</p>
<p>Display hidden files when rendering the remote directory listing.
-Note that this is merely a cosmetic feature, hidden files are always
+Note that this is merely a cosmetic feature: hidden files are always
included in received remote file listings.</p>
-<p>The default is <code>false</code>, means hidden files are not displayed.</p>
+<p>The default of <code>false</code> means hidden files are not displayed.</p>
</div>
<p>Options which are displayed in the table portion of a <code>GridSection</code>
instance are rendered as readonly text by default. By setting the
<code>editable</code> property of a child option element to <code>true</code>, that element
-is rendered as full input widget within its cell instead of a text only
+is rendered as a full input widget within its cell instead of a text only
preview.</p>
<p>This property has no effect on options that are not children of grid
section elements.</p>
<div class="description">
<p>Register a custom value change handler.</p>
-<p>If this property is set to a function value, the function is invoked
-whenever the value of the underlying UI input element is changing.</p>
+<p>If this property is set to a function, it is invoked
+whenever the value of the underlying UI input element changes.</p>
<p>The invoked handler function will receive the DOM click element as
first and the underlying configuration section ID as well as the input
value as second and third argument respectively.</p>
<dd>
<div class="description">
- <p>If set to <code>true</code>, the field is rendered as password input, otherwise
-as plain text input.</p>
+ <p>If set to <code>true</code>, the field is rendered as a password input, otherwise
+as a plain text input.</p>
</div>
<p>Make option element readonly.</p>
<p>This property defaults to the readonly state of the parent form element.
When set to <code>true</code>, the underlying widget is rendered in disabled state,
-means its contents cannot be changed and the widget cannot be interacted
-with.</p>
+meaning its contents cannot be changed and the widget cannot be
+interacted with.</p>
</div>
<p>Override the UCI configuration name to read the option value from.</p>
<p>By default, the configuration name is inherited from the parent Map.
By setting this property, a deviating configuration may be specified.</p>
-<p>The default is null, means inheriting from the parent form.</p>
+<p>The default of null means inherit from the parent form.</p>
</div>
<p>By default, the elements name, which is passed as third argument to
the constructor, is used as UCI option name. By setting this property,
a deviating UCI option may be specified.</p>
-<p>The default is null, means using the option element name.</p>
+<p>The default of null means use the option element name.</p>
</div>
<p>Override the UCI section name to read the option value from.</p>
<p>By default, the section ID is inherited from the parent section element.
By setting this property, a deviating section may be specified.</p>
-<p>The default is null, means inheriting from the parent section.</p>
+<p>The default of null means inherit from the parent section.</p>
</div>
<p>Query the underlying configuration value.</p>
<p>The default implementation of this method returns the cached return
value of <a href="LuCI.form.AbstractValue.html#load"><code>load()</code></a>. It may be
-overwritten by user code to obtain the configuration value in a
+overridden by user code to obtain the configuration value in a
different way.</p>
</div>
<p>Dependency constraints allow making the presence of option elements
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.</p>
+hidden from the view and its current value omitted when saving.</p>
<p>Multiple constraints (that is, multiple calls to <code>depends()</code>) are
treated as alternatives, forming a logical "or" expression.</p>
<p>By passing an object of name => value pairs as first argument, it is
-possible to depend on multiple options simultaneously, allowing to form
+possible to depend on multiple options simultaneously, forming
a logical "and" expression.</p>
<p>Option names may be given in "dot notation" which allows to reference
option elements outside the current form section. If a name without
<p>Query the current form input value.</p>
<p>The default implementation of this method returns the current input
value of the underlying <a href="LuCI.ui.AbstractElement.html"><code>LuCI.ui</code></a> widget.
-It may be overwritten by user code to handle input values differently.</p>
+It may be overridden by user code to handle input values differently.</p>
</div>
<p>Load the underlying configuration value.</p>
<p>The default implementation of this method reads and returns the
underlying UCI option value (or the related JavaScript property for
-<code>JSONMap</code> instances). It may be overwritten by user code to load data
-from nonstandard sources.</p>
+<code>JSONMap</code> instances). It may be overridden by user code to load data
+from non-standard sources.</p>
</div>
user cleared the input value and the option is marked optional.</p>
<p>The default implementation simply removes the associated option from the
UCI configuration (or the associated JavaScript object property in
-case of <code>JSONMap</code> forms). It may be overwritten by user code to
+case of <code>JSONMap</code> forms). It may be overridden by user code to
implement alternative removal logic, e.g. to retain the original value.</p>
</div>
<div class="description">
<p>Obtain a textual input representation.</p>
-<p>The default implementation of this method returns the HTML escaped
+<p>The default implementation of this method returns the HTML-escaped
current input value of the underlying
<a href="LuCI.ui.AbstractElement.html"><code>LuCI.ui</code></a> widget. User code or specific
-option element implementations may overwrite this function to apply a
+option element implementations may override this function to apply a
different logic, e.g. to return <code>Yes</code> or <code>No</code> depending on the checked
state of checkbox elements.</p>
</div>
<a href="LuCI.form.AbstractValue.html#cfgvalue"><code>cfgvalue()</code></a>.</p>
<p>The default implementation simply sets the given input value in the
UCI configuration (or the associated JavaScript object property in
-case of <code>JSONMap</code> forms). It may be overwritten by user code to
+case of <code>JSONMap</code> forms). It may be overridden by user code to
implement alternative save logic, e.g. to transform the input value
before it is written.</p>
</div>
<footer>
- Documentation generated by <a target="_blank" href="https://github.com/jsdoc3/jsdoc">JSDoc 3.6.11</a> on Mon Jun 02 2025 19:03:24 GMT+0000 (Coordinated Universal Time)
+ Documentation generated by <a target="_blank" href="https://github.com/jsdoc3/jsdoc">JSDoc 3.6.11</a> on Mon Jun 09 2025 22:45:27 GMT+0000 (Coordinated Universal Time)
</footer>
</div>
</div>
<div class="description">
<p>Set a tooltip for the flag option.</p>
-<p>If set to a string, it will be used as-is as a tooltip.</p>
-<p>If set to a function, the function will be invoked and the return
+<p>Set to a string, it will be used as-is as a tooltip.</p>
+<p>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 <code>null</code> no tooltip will be set.</p>
</div>
<p>Options which are displayed in the table portion of a <code>GridSection</code>
instance are rendered as readonly text by default. By setting the
<code>editable</code> property of a child option element to <code>true</code>, that element
-is rendered as full input widget within its cell instead of a text only
+is rendered as a full input widget within its cell instead of a text only
preview.</p>
<p>This property has no effect on options that are not children of grid
section elements.</p>
<div class="description">
<p>Register a custom value change handler.</p>
-<p>If this property is set to a function value, the function is invoked
-whenever the value of the underlying UI input element is changing.</p>
+<p>If this property is set to a function, it is invoked
+whenever the value of the underlying UI input element changes.</p>
<p>The invoked handler function will receive the DOM click element as
first and the underlying configuration section ID as well as the input
value as second and third argument respectively.</p>
<dd>
<div class="description">
- <p>If set to <code>true</code>, the field is rendered as password input, otherwise
-as plain text input.</p>
+ <p>If set to <code>true</code>, the field is rendered as a password input, otherwise
+as a plain text input.</p>
</div>
<p>Make option element readonly.</p>
<p>This property defaults to the readonly state of the parent form element.
When set to <code>true</code>, the underlying widget is rendered in disabled state,
-means its contents cannot be changed and the widget cannot be interacted
-with.</p>
+meaning its contents cannot be changed and the widget cannot be
+interacted with.</p>
</div>
<p>Override the UCI configuration name to read the option value from.</p>
<p>By default, the configuration name is inherited from the parent Map.
By setting this property, a deviating configuration may be specified.</p>
-<p>The default is null, means inheriting from the parent form.</p>
+<p>The default of null means inherit from the parent form.</p>
</div>
<p>By default, the elements name, which is passed as third argument to
the constructor, is used as UCI option name. By setting this property,
a deviating UCI option may be specified.</p>
-<p>The default is null, means using the option element name.</p>
+<p>The default of null means use the option element name.</p>
</div>
<p>Override the UCI section name to read the option value from.</p>
<p>By default, the section ID is inherited from the parent section element.
By setting this property, a deviating section may be specified.</p>
-<p>The default is null, means inheriting from the parent section.</p>
+<p>The default of null means inherit from the parent section.</p>
</div>
<p>Query the underlying configuration value.</p>
<p>The default implementation of this method returns the cached return
value of <a href="LuCI.form.AbstractValue.html#load"><code>load()</code></a>. It may be
-overwritten by user code to obtain the configuration value in a
+overridden by user code to obtain the configuration value in a
different way.</p>
</div>
<p>Dependency constraints allow making the presence of option elements
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.</p>
+hidden from the view and its current value omitted when saving.</p>
<p>Multiple constraints (that is, multiple calls to <code>depends()</code>) are
treated as alternatives, forming a logical "or" expression.</p>
<p>By passing an object of name => value pairs as first argument, it is
-possible to depend on multiple options simultaneously, allowing to form
+possible to depend on multiple options simultaneously, forming
a logical "and" expression.</p>
<p>Option names may be given in "dot notation" which allows to reference
option elements outside the current form section. If a name without
<p>Load the underlying configuration value.</p>
<p>The default implementation of this method reads and returns the
underlying UCI option value (or the related JavaScript property for
-<code>JSONMap</code> instances). It may be overwritten by user code to load data
-from nonstandard sources.</p>
+<code>JSONMap</code> instances). It may be overridden by user code to load data
+from non-standard sources.</p>
</div>
user cleared the input value and the option is marked optional.</p>
<p>The default implementation simply removes the associated option from the
UCI configuration (or the associated JavaScript object property in
-case of <code>JSONMap</code> forms). It may be overwritten by user code to
+case of <code>JSONMap</code> forms). It may be overridden by user code to
implement alternative removal logic, e.g. to retain the original value.</p>
</div>
<a href="LuCI.form.AbstractValue.html#cfgvalue"><code>cfgvalue()</code></a>.</p>
<p>The default implementation simply sets the given input value in the
UCI configuration (or the associated JavaScript object property in
-case of <code>JSONMap</code> forms). It may be overwritten by user code to
+case of <code>JSONMap</code> forms). It may be overridden by user code to
implement alternative save logic, e.g. to transform the input value
before it is written.</p>
</div>
<footer>
- Documentation generated by <a target="_blank" href="https://github.com/jsdoc3/jsdoc">JSDoc 3.6.11</a> on Mon Jun 02 2025 19:03:24 GMT+0000 (Coordinated Universal Time)
+ Documentation generated by <a target="_blank" href="https://github.com/jsdoc3/jsdoc">JSDoc 3.6.11</a> on Mon Jun 09 2025 22:45:27 GMT+0000 (Coordinated Universal Time)
</footer>
</div>
</div>
GridSection
</h2>
- <div class="class-description"><p>The <code>GridSection</code> class maps all or - if <code>filter()</code> is overwritten - a
+ <div class="class-description"><p>The <code>GridSection</code> class maps all or - if <code>filter()</code> is overridden - a
subset of the underlying UCI configuration sections of a given type.</p>
<p>A grid section functions similar to a <a href="LuCI.form.TableSection.html"><code>LuCI.form.TableSection</code></a> but
supports tabbing in the modal overlay. Option elements added with
are displayed in the modal popup.</p>
<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 explicitly made writable by setting the <code>editable</code>
+option element is explicitly made writeable by setting the <code>editable</code>
property to <code>true</code>.</p>
<p>Additionally, the grid section honours a <code>modalonly</code> property of child
option elements. Refer to the <a href="LuCI.form.AbstractValue.html"><code>AbstractValue</code></a>
<div class="description">
<p>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
+the section form element. Set to a string, it will be used as-is.
+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 <code>Add</code>.</p>
</div>
<div class="description">
<p>If set to <code>true</code>, the user may add or remove instances from the form
-section widget, otherwise only preexisting sections may be edited.
+section widget, otherwise only pre-existing sections may be edited.
The default is <code>false</code>.</p>
</div>
<div class="description">
<p>Enables a per-section instance row <code>Edit</code> button which triggers a certain
-action when clicked. If set to a string, the string value is used
-as <code>String.format()</code> pattern with the name of the underlying UCI section
-as first format argument. The result is then interpreted as URL which
+action when clicked. Set to a string, the string value is used
+as a <code>String.format()</code> pattern with the name of the underlying UCI section
+as first format argument. The result is then interpreted as a URL which
LuCI will navigate to when the user clicks the edit button.</p>
<p>If set to a function, this function will be registered as click event
handler on the rendered edit button, receiving the section instance
<div class="description">
<p>Override the per-section instance modal popup title caption shown when
-clicking the <code>More…</code> button in a section specifying <code>max_cols</code>. If set
-to a string, it will be used as <code>String.format()</code> pattern with the name
-of the underlying UCI section as first argument, if set to a function,
+clicking the <code>More…</code> button in a section specifying <code>max_cols</code>. Set
+to a string, it will be used as a <code>String.format()</code> pattern with the name
+of the underlying UCI section as first argument. Set to a function,
the function will be invoked with the section name as first argument and
its return value is used as caption, after converting it to a string.
If this property is not set, the default is the name of the underlying
<dd>
<div class="description">
- <p>If set to <code>true</code>, the header row with the options descriptions will
+ <p>Set to <code>true</code>, the header row with the options descriptions will
not be displayed. By default, descriptions row is automatically displayed
when at least one option has a description.</p>
</div>
<dd>
<div class="description">
- <p>If set to <code>true</code>, alternating <code>cbi-rowstyle-1</code> and <code>cbi-rowstyle-2</code> CSS
+ <p>Set to <code>true</code>, alternating <code>cbi-rowstyle-1</code> and <code>cbi-rowstyle-2</code> CSS
classes are added to the table row elements. Not all LuCI themes
implement these row style classes. The default is <code>false</code>.</p>
</div>
<div class="description">
<p>Override the per-section instance title caption shown in the first
-column of the table unless <code>anonymous</code> is set to true. If set to a
-string, it will be used as <code>String.format()</code> pattern with the name of
-the underlying UCI section as first argument, if set to a function, the
+column of the table unless <code>anonymous</code> is set to true. Set to a
+string, it will be used as a <code>String.format()</code> pattern with the name of
+the underlying UCI section as first argument. Set to a function, the
function will be invoked with the section name as first argument and
-its return value is used as caption, after converting it to a string.
+its return value used as caption, after converting it to a string.
If this property is not set, the default is the name of the underlying
UCI configuration section.</p>
</div>
<dd>
<div class="description">
- <p>If set to <code>true</code>, a sort button is added to the last column, allowing
+ <p>Set to <code>true</code>, a sort button is added to the last column, allowing
the user to reorder the section instances mapped by the section form
element.</p>
</div>
<p>Override the UCI configuration name to read the section IDs from. By
default, the configuration name is inherited from the parent <code>Map</code>.
By setting this property, a deviating configuration may be specified.
-The default is <code>null</code>, means inheriting from the parent form.</p>
+The default of <code>null</code> means inherit from the parent form.</p>
</div>
<div class="description">
<p>Add further options to the per-section instanced modal popup.</p>
-<p>This function may be overwritten by user code to perform additional
+<p>This function may be overridden by user code to perform additional
setup steps before displaying the more options modal which is useful to
e.g. query additional data or to inject further option elements.</p>
<p>The default implementation of this function does nothing.</p>
<p>Query underlying option configuration values.</p>
<p>This function is sensitive to the amount of arguments passed to it;
if only one argument is specified, the configuration values of all
-options within this section are returned as dictionary.</p>
+options within this section are returned as a dictionary.</p>
<p>If both the section ID and an option name are supplied, this function
returns the configuration value of the specified option only.</p>
</div>
and controls whether the given UCI section is rendered or ignored by
the form section element.</p>
<p>The default implementation always returns <code>true</code>. User code or
-classes extending <code>AbstractSection</code> may overwrite this function with
+classes extending <code>AbstractSection</code> may override this function with
custom implementations.</p>
</div>
<p>Query underlying option widget input values.</p>
<p>This function is sensitive to the amount of arguments passed to it;
if only one argument is specified, the widget input values of all
-options within this section are returned as dictionary.</p>
+options within this section are returned as a dictionary.</p>
<p>If both the section ID and an option name are supplied, this function
returns the widget input value of the specified option only.</p>
</div>
<p>Obtain underlying option objects.</p>
<p>This function is sensitive to the amount of arguments passed to it;
if no option name is specified, all options within this section are
-returned as dictionary.</p>
+returned as a dictionary.</p>
<p>If an option name is supplied, this function returns the matching
LuCI.form.AbstractValue instance only.</p>
</div>
<p>Obtain underlying option LuCI.ui widget instances.</p>
<p>This function is sensitive to the amount of arguments passed to it;
if only one argument is specified, the LuCI.ui widget instances of all
-options within this section are returned as dictionary.</p>
+options within this section are returned as a dictionary.</p>
<p>If both the section ID and an option name are supplied, this function
returns the LuCI.ui widget instance value of the specified option only.</p>
</div>
</td>
<td class="description last">Returns a promise resolving once the values of all child elements have
been loaded. The promise may reject with an error if any of the child
-elements load functions rejected with an error.</td>
+elements' load functions rejected with an error.</td>
</tr>
</tbody>
</td>
<td class="description last">Returns a promise resolving once the values of all child elements have
-been parsed. The returned promise is rejected if any parsed values are
-not meeting the validation constraints of their respective elements.</td>
+been parsed. The returned promise is rejected if any parsed values do
+not meet the validation constraints of their respective elements.</td>
</tr>
</tbody>
tabs to provide a better overview to the user.</p>
<p>Before options can be moved into a tab pane, the corresponding tab
has to be defined first, which is done by calling this function.</p>
-<p>Note that tabs are only effective in modal popups, options added with
+<p>Note that tabs are only effective in modal popups. Options added with
<code>option()</code> will not be assigned to a specific tab and are rendered in
the table view only.</p>
</div>
<footer>
- Documentation generated by <a target="_blank" href="https://github.com/jsdoc3/jsdoc">JSDoc 3.6.11</a> on Mon Jun 02 2025 19:03:24 GMT+0000 (Coordinated Universal Time)
+ Documentation generated by <a target="_blank" href="https://github.com/jsdoc3/jsdoc">JSDoc 3.6.11</a> on Mon Jun 09 2025 22:45:27 GMT+0000 (Coordinated Universal Time)
</footer>
</div>
</div>
HiddenValue
</h2>
- <div class="class-description"><p>The <code>HiddenValue</code> element wraps an <a href="LuCI.ui.Hiddenfield.html"><code>LuCI.ui.Hiddenfield</code></a> widget.</p>
+ <div class="class-description"><p>The <code>HiddenValue</code> element wraps a <a href="LuCI.ui.Hiddenfield.html"><code>LuCI.ui.Hiddenfield</code></a> widget.</p>
<p>Hidden value widgets used to be necessary in legacy code which actually
submitted the underlying HTML form the server. With client side handling of
forms, there are more efficient ways to store hidden state data.</p>
<div class="tag-source">
- <a href="form.js.html">form.js</a>, <a href="form.js.html#line4670">line 4670</a>
+ <a href="form.js.html">form.js</a>, <a href="form.js.html#line4672">line 4672</a>
</div>
</div>
<p>Options which are displayed in the table portion of a <code>GridSection</code>
instance are rendered as readonly text by default. By setting the
<code>editable</code> property of a child option element to <code>true</code>, that element
-is rendered as full input widget within its cell instead of a text only
+is rendered as a full input widget within its cell instead of a text only
preview.</p>
<p>This property has no effect on options that are not children of grid
section elements.</p>
<div class="description">
<p>Register a custom value change handler.</p>
-<p>If this property is set to a function value, the function is invoked
-whenever the value of the underlying UI input element is changing.</p>
+<p>If this property is set to a function, it is invoked
+whenever the value of the underlying UI input element changes.</p>
<p>The invoked handler function will receive the DOM click element as
first and the underlying configuration section ID as well as the input
value as second and third argument respectively.</p>
<dd>
<div class="description">
- <p>If set to <code>true</code>, the field is rendered as password input, otherwise
-as plain text input.</p>
+ <p>If set to <code>true</code>, the field is rendered as a password input, otherwise
+as a plain text input.</p>
</div>
<p>Make option element readonly.</p>
<p>This property defaults to the readonly state of the parent form element.
When set to <code>true</code>, the underlying widget is rendered in disabled state,
-means its contents cannot be changed and the widget cannot be interacted
-with.</p>
+meaning its contents cannot be changed and the widget cannot be
+interacted with.</p>
</div>
<p>Override the UCI configuration name to read the option value from.</p>
<p>By default, the configuration name is inherited from the parent Map.
By setting this property, a deviating configuration may be specified.</p>
-<p>The default is null, means inheriting from the parent form.</p>
+<p>The default of null means inherit from the parent form.</p>
</div>
<p>By default, the elements name, which is passed as third argument to
the constructor, is used as UCI option name. By setting this property,
a deviating UCI option may be specified.</p>
-<p>The default is null, means using the option element name.</p>
+<p>The default of null means use the option element name.</p>
</div>
<p>Override the UCI section name to read the option value from.</p>
<p>By default, the section ID is inherited from the parent section element.
By setting this property, a deviating section may be specified.</p>
-<p>The default is null, means inheriting from the parent section.</p>
+<p>The default of null means inherit from the parent section.</p>
</div>
<p>Query the underlying configuration value.</p>
<p>The default implementation of this method returns the cached return
value of <a href="LuCI.form.AbstractValue.html#load"><code>load()</code></a>. It may be
-overwritten by user code to obtain the configuration value in a
+overridden by user code to obtain the configuration value in a
different way.</p>
</div>
<p>Dependency constraints allow making the presence of option elements
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.</p>
+hidden from the view and its current value omitted when saving.</p>
<p>Multiple constraints (that is, multiple calls to <code>depends()</code>) are
treated as alternatives, forming a logical "or" expression.</p>
<p>By passing an object of name => value pairs as first argument, it is
-possible to depend on multiple options simultaneously, allowing to form
+possible to depend on multiple options simultaneously, forming
a logical "and" expression.</p>
<p>Option names may be given in "dot notation" which allows to reference
option elements outside the current form section. If a name without
<p>Query the current form input value.</p>
<p>The default implementation of this method returns the current input
value of the underlying <a href="LuCI.ui.AbstractElement.html"><code>LuCI.ui</code></a> widget.
-It may be overwritten by user code to handle input values differently.</p>
+It may be overridden by user code to handle input values differently.</p>
</div>
<p>Load the underlying configuration value.</p>
<p>The default implementation of this method reads and returns the
underlying UCI option value (or the related JavaScript property for
-<code>JSONMap</code> instances). It may be overwritten by user code to load data
-from nonstandard sources.</p>
+<code>JSONMap</code> instances). It may be overridden by user code to load data
+from non-standard sources.</p>
</div>
user cleared the input value and the option is marked optional.</p>
<p>The default implementation simply removes the associated option from the
UCI configuration (or the associated JavaScript object property in
-case of <code>JSONMap</code> forms). It may be overwritten by user code to
+case of <code>JSONMap</code> forms). It may be overridden by user code to
implement alternative removal logic, e.g. to retain the original value.</p>
</div>
<div class="description">
<p>Obtain a textual input representation.</p>
-<p>The default implementation of this method returns the HTML escaped
+<p>The default implementation of this method returns the HTML-escaped
current input value of the underlying
<a href="LuCI.ui.AbstractElement.html"><code>LuCI.ui</code></a> widget. User code or specific
-option element implementations may overwrite this function to apply a
+option element implementations may override this function to apply a
different logic, e.g. to return <code>Yes</code> or <code>No</code> depending on the checked
state of checkbox elements.</p>
</div>
<a href="LuCI.form.AbstractValue.html#cfgvalue"><code>cfgvalue()</code></a>.</p>
<p>The default implementation simply sets the given input value in the
UCI configuration (or the associated JavaScript object property in
-case of <code>JSONMap</code> forms). It may be overwritten by user code to
+case of <code>JSONMap</code> forms). It may be overridden by user code to
implement alternative save logic, e.g. to transform the input value
before it is written.</p>
</div>
<footer>
- Documentation generated by <a target="_blank" href="https://github.com/jsdoc3/jsdoc">JSDoc 3.6.11</a> on Mon Jun 02 2025 19:03:24 GMT+0000 (Coordinated Universal Time)
+ Documentation generated by <a target="_blank" href="https://github.com/jsdoc3/jsdoc">JSDoc 3.6.11</a> on Mon Jun 09 2025 22:45:28 GMT+0000 (Coordinated Universal Time)
</footer>
</div>
</div>
<p>The JavaScript object to use as data source. Internally, the object is
-converted into an UCI-like format. Its toplevel keys are treated like UCI
+converted into an UCI-like format. Its top-level keys are treated like UCI
section types while the object or array-of-object values are treated as
section contents.</p></td>
</tr>
- <p>The title caption of the form. A form title is usually rendered as separate
+ <p>The title caption of the form. A form title is usually rendered as a separate
headline element before the actual form contents. If omitted, the
corresponding headline element will not be rendered.</p></td>
</tr>
<td class="description last">
<p>The additional UCI configuration file to tie to the map. If the given
-config already is in the list of required files, it will be ignored.</p></td>
+config is in the list of required files already, it will be ignored.</p></td>
</tr>
<div class="description">
- <p>Find the first DOM node within this Map which matches the given search
+ <p>Return the first DOM node within this Map which matches the given search
parameters. This function is essentially a convenience wrapper around
<code>findElements()</code> which only returns the first found node.</p>
<p>This function is sensitive to the amount of arguments passed to it;
<div class="description">
- <p>Find all DOM nodes within this Map which match the given search
+ <p>Return all DOM nodes within this Map which match the given search
parameters. This function is essentially a convenience wrapper around
<code>querySelectorAll()</code>.</p>
<p>This function is sensitive to the amount of arguments passed to it;
</td>
<td class="description last">Returns a promise resolving once the entire form completed loading all
data. The promise may reject with an error if any configuration failed
-to load or if any of the child elements load functions rejected with
+to load or if any of the child elements' load functions rejected with
an error.</td>
</tr>
</td>
<td class="description last">Returns a promise resolving once the entire form completed parsing all
-input values. The returned promise is rejected if any parsed values are
-not meeting the validation constraints of their respective elements.</td>
+input values. The returned promise is rejected if any parsed values do
+not meet the validation constraints of their respective elements.</td>
</tr>
</tbody>
</td>
- <td class="description last">Returns a promise resolving to the toplevel form DOM node once the
+ <td class="description last">Returns a promise resolving to the top-level form DOM node once the
rendering is complete.</td>
</tr>
</td>
- <td class="description last">Returns a promise resolving to the toplevel form DOM node once the
+ <td class="description last">Returns a promise resolving to the top-level form DOM node once the
re-rendering is complete.</td>
</tr>
<p>If set to <code>true</code>, trigger an alert message to the user in case saving
-the form data failures. Otherwise fail silently.</p></td>
+the form data fails. Otherwise fail silently.</p></td>
</tr>
<div class="description">
<p>Add a configuration section to the map.</p>
-<p>LuCI forms follow the structure of the underlying UCI configurations,
-means that a map, which represents a single UCI configuration, is
+<p>LuCI forms follow the structure of the underlying UCI configurations.
+This means that a map, which represents a single UCI configuration, is
divided into multiple sections which in turn contain an arbitrary
number of options.</p>
<p>While UCI itself only knows two kinds of sections - named and anonymous
<footer>
- Documentation generated by <a target="_blank" href="https://github.com/jsdoc3/jsdoc">JSDoc 3.6.11</a> on Mon Jun 02 2025 19:03:24 GMT+0000 (Coordinated Universal Time)
+ Documentation generated by <a target="_blank" href="https://github.com/jsdoc3/jsdoc">JSDoc 3.6.11</a> on Mon Jun 09 2025 22:45:28 GMT+0000 (Coordinated Universal Time)
</footer>
</div>
</div>
<p>Options which are displayed in the table portion of a <code>GridSection</code>
instance are rendered as readonly text by default. By setting the
<code>editable</code> property of a child option element to <code>true</code>, that element
-is rendered as full input widget within its cell instead of a text only
+is rendered as a full input widget within its cell instead of a text only
preview.</p>
<p>This property has no effect on options that are not children of grid
section elements.</p>
<div class="description">
<p>Register a custom value change handler.</p>
-<p>If this property is set to a function value, the function is invoked
-whenever the value of the underlying UI input element is changing.</p>
+<p>If this property is set to a function, it is invoked
+whenever the value of the underlying UI input element changes.</p>
<p>The invoked handler function will receive the DOM click element as
first and the underlying configuration section ID as well as the input
value as second and third argument respectively.</p>
<dd>
<div class="description">
- <p>If set to <code>true</code>, the field is rendered as password input, otherwise
-as plain text input.</p>
+ <p>If set to <code>true</code>, the field is rendered as a password input, otherwise
+as a plain text input.</p>
</div>
<p>Make option element readonly.</p>
<p>This property defaults to the readonly state of the parent form element.
When set to <code>true</code>, the underlying widget is rendered in disabled state,
-means its contents cannot be changed and the widget cannot be interacted
-with.</p>
+meaning its contents cannot be changed and the widget cannot be
+interacted with.</p>
</div>
<p>Override the UCI configuration name to read the option value from.</p>
<p>By default, the configuration name is inherited from the parent Map.
By setting this property, a deviating configuration may be specified.</p>
-<p>The default is null, means inheriting from the parent form.</p>
+<p>The default of null means inherit from the parent form.</p>
</div>
<p>By default, the elements name, which is passed as third argument to
the constructor, is used as UCI option name. By setting this property,
a deviating UCI option may be specified.</p>
-<p>The default is null, means using the option element name.</p>
+<p>The default of null means use the option element name.</p>
</div>
<p>Override the UCI section name to read the option value from.</p>
<p>By default, the section ID is inherited from the parent section element.
By setting this property, a deviating section may be specified.</p>
-<p>The default is null, means inheriting from the parent section.</p>
+<p>The default of null means inherit from the parent section.</p>
</div>
<p>Query the underlying configuration value.</p>
<p>The default implementation of this method returns the cached return
value of <a href="LuCI.form.AbstractValue.html#load"><code>load()</code></a>. It may be
-overwritten by user code to obtain the configuration value in a
+overridden by user code to obtain the configuration value in a
different way.</p>
</div>
<p>Dependency constraints allow making the presence of option elements
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.</p>
+hidden from the view and its current value omitted when saving.</p>
<p>Multiple constraints (that is, multiple calls to <code>depends()</code>) are
treated as alternatives, forming a logical "or" expression.</p>
<p>By passing an object of name => value pairs as first argument, it is
-possible to depend on multiple options simultaneously, allowing to form
+possible to depend on multiple options simultaneously, forming
a logical "and" expression.</p>
<p>Option names may be given in "dot notation" which allows to reference
option elements outside the current form section. If a name without
<p>Query the current form input value.</p>
<p>The default implementation of this method returns the current input
value of the underlying <a href="LuCI.ui.AbstractElement.html"><code>LuCI.ui</code></a> widget.
-It may be overwritten by user code to handle input values differently.</p>
+It may be overridden by user code to handle input values differently.</p>
</div>
<p>Load the underlying configuration value.</p>
<p>The default implementation of this method reads and returns the
underlying UCI option value (or the related JavaScript property for
-<code>JSONMap</code> instances). It may be overwritten by user code to load data
-from nonstandard sources.</p>
+<code>JSONMap</code> instances). It may be overridden by user code to load data
+from non-standard sources.</p>
</div>
user cleared the input value and the option is marked optional.</p>
<p>The default implementation simply removes the associated option from the
UCI configuration (or the associated JavaScript object property in
-case of <code>JSONMap</code> forms). It may be overwritten by user code to
+case of <code>JSONMap</code> forms). It may be overridden by user code to
implement alternative removal logic, e.g. to retain the original value.</p>
</div>
<div class="description">
<p>Obtain a textual input representation.</p>
-<p>The default implementation of this method returns the HTML escaped
+<p>The default implementation of this method returns the HTML-escaped
current input value of the underlying
<a href="LuCI.ui.AbstractElement.html"><code>LuCI.ui</code></a> widget. User code or specific
-option element implementations may overwrite this function to apply a
+option element implementations may override this function to apply a
different logic, e.g. to return <code>Yes</code> or <code>No</code> depending on the checked
state of checkbox elements.</p>
</div>
<a href="LuCI.form.AbstractValue.html#cfgvalue"><code>cfgvalue()</code></a>.</p>
<p>The default implementation simply sets the given input value in the
UCI configuration (or the associated JavaScript object property in
-case of <code>JSONMap</code> forms). It may be overwritten by user code to
+case of <code>JSONMap</code> forms). It may be overridden by user code to
implement alternative save logic, e.g. to transform the input value
before it is written.</p>
</div>
<footer>
- Documentation generated by <a target="_blank" href="https://github.com/jsdoc3/jsdoc">JSDoc 3.6.11</a> on Mon Jun 02 2025 19:03:24 GMT+0000 (Coordinated Universal Time)
+ Documentation generated by <a target="_blank" href="https://github.com/jsdoc3/jsdoc">JSDoc 3.6.11</a> on Mon Jun 09 2025 22:45:28 GMT+0000 (Coordinated Universal Time)
</footer>
</div>
</div>
<div class="class-description"><p>The <code>Map</code> class represents one complete form. A form usually maps one UCI
configuration file and is divided into multiple sections containing multiple
fields each.</p>
-<p>It serves as main entry point into the <code>LuCI.form</code> for typical view code.</p></div>
+<p>It serves as the main entry point into the <code>LuCI.form</code> for typical view code.</p></div>
</header>
- <p>The UCI configuration to map. It is automatically loaded along when the
+ <p>The UCI configuration to map. It is automatically loaded along with the
resulting map instance.</p></td>
</tr>
- <p>The title caption of the form. A form title is usually rendered as separate
+ <p>The title caption of the form. A form title is usually rendered as a separate
headline element before the actual form contents. If omitted, the
corresponding headline element will not be rendered.</p></td>
</tr>
- <p>The description text of the form which is usually rendered as text
+ <p>The description text of the form which is usually rendered as a text
paragraph below the form title and before the actual form contents.
If omitted, the corresponding paragraph element will not be rendered.</p></td>
</tr>
<td class="description last">
<p>The additional UCI configuration file to tie to the map. If the given
-config already is in the list of required files, it will be ignored.</p></td>
+config is in the list of required files already, it will be ignored.</p></td>
</tr>
<div class="description">
- <p>Find the first DOM node within this Map which matches the given search
+ <p>Return the first DOM node within this Map which matches the given search
parameters. This function is essentially a convenience wrapper around
<code>findElements()</code> which only returns the first found node.</p>
<p>This function is sensitive to the amount of arguments passed to it;
<div class="description">
- <p>Find all DOM nodes within this Map which match the given search
+ <p>Return all DOM nodes within this Map which match the given search
parameters. This function is essentially a convenience wrapper around
<code>querySelectorAll()</code>.</p>
<p>This function is sensitive to the amount of arguments passed to it;
</td>
<td class="description last">Returns a promise resolving once the entire form completed loading all
data. The promise may reject with an error if any configuration failed
-to load or if any of the child elements load functions rejected with
+to load or if any of the child elements' load functions rejected with
an error.</td>
</tr>
</td>
<td class="description last">Returns a promise resolving once the entire form completed parsing all
-input values. The returned promise is rejected if any parsed values are
-not meeting the validation constraints of their respective elements.</td>
+input values. The returned promise is rejected if any parsed values do
+not meet the validation constraints of their respective elements.</td>
</tr>
</tbody>
</td>
- <td class="description last">Returns a promise resolving to the toplevel form DOM node once the
+ <td class="description last">Returns a promise resolving to the top-level form DOM node once the
rendering is complete.</td>
</tr>
</td>
- <td class="description last">Returns a promise resolving to the toplevel form DOM node once the
+ <td class="description last">Returns a promise resolving to the top-level form DOM node once the
re-rendering is complete.</td>
</tr>
<p>If set to <code>true</code>, trigger an alert message to the user in case saving
-the form data failures. Otherwise fail silently.</p></td>
+the form data fails. Otherwise fail silently.</p></td>
</tr>
<div class="description">
<p>Add a configuration section to the map.</p>
-<p>LuCI forms follow the structure of the underlying UCI configurations,
-means that a map, which represents a single UCI configuration, is
+<p>LuCI forms follow the structure of the underlying UCI configurations.
+This means that a map, which represents a single UCI configuration, is
divided into multiple sections which in turn contain an arbitrary
number of options.</p>
<p>While UCI itself only knows two kinds of sections - named and anonymous
<footer>
- Documentation generated by <a target="_blank" href="https://github.com/jsdoc3/jsdoc">JSDoc 3.6.11</a> on Mon Jun 02 2025 19:03:24 GMT+0000 (Coordinated Universal Time)
+ Documentation generated by <a target="_blank" href="https://github.com/jsdoc3/jsdoc">JSDoc 3.6.11</a> on Mon Jun 09 2025 22:45:28 GMT+0000 (Coordinated Universal Time)
</footer>
</div>
</div>
<div class="description">
<p>Allows to specify the <a href="LuCI.ui.Dropdown.html#.InitOptions"><code>display_items</code></a>
property of the underlying dropdown widget. If omitted, the value of
-the <code>size</code> property is used or <code>3</code> when <code>size</code> is unspecified as well.</p>
+the <code>size</code> property is used or <code>3</code> when <code>size</code> is also unspecified.</p>
</div>
<div class="description">
<p>Allows to specify the <a href="LuCI.ui.Dropdown.html#.InitOptions"><code>dropdown_items</code></a>
property of the underlying dropdown widget. If omitted, the value of
-the <code>size</code> property is used or <code>-1</code> when <code>size</code> is unspecified as well.</p>
+the <code>size</code> property is used or <code>-1</code> when <code>size</code> is also unspecified.</p>
</div>
<p>Options which are displayed in the table portion of a <code>GridSection</code>
instance are rendered as readonly text by default. By setting the
<code>editable</code> property of a child option element to <code>true</code>, that element
-is rendered as full input widget within its cell instead of a text only
+is rendered as a full input widget within its cell instead of a text only
preview.</p>
<p>This property has no effect on options that are not children of grid
section elements.</p>
<div class="description">
<p>Register a custom value change handler.</p>
-<p>If this property is set to a function value, the function is invoked
-whenever the value of the underlying UI input element is changing.</p>
+<p>If this property is set to a function, it is invoked
+whenever the value of the underlying UI input element changes.</p>
<p>The invoked handler function will receive the DOM click element as
first and the underlying configuration section ID as well as the input
value as second and third argument respectively.</p>
<dd>
<div class="description">
- <p>If set to <code>true</code>, the field is rendered as password input, otherwise
-as plain text input.</p>
+ <p>If set to <code>true</code>, the field is rendered as a password input, otherwise
+as a plain text input.</p>
</div>
<p>Make option element readonly.</p>
<p>This property defaults to the readonly state of the parent form element.
When set to <code>true</code>, the underlying widget is rendered in disabled state,
-means its contents cannot be changed and the widget cannot be interacted
-with.</p>
+meaning its contents cannot be changed and the widget cannot be
+interacted with.</p>
</div>
<p>Override the UCI configuration name to read the option value from.</p>
<p>By default, the configuration name is inherited from the parent Map.
By setting this property, a deviating configuration may be specified.</p>
-<p>The default is null, means inheriting from the parent form.</p>
+<p>The default of null means inherit from the parent form.</p>
</div>
<p>By default, the elements name, which is passed as third argument to
the constructor, is used as UCI option name. By setting this property,
a deviating UCI option may be specified.</p>
-<p>The default is null, means using the option element name.</p>
+<p>The default of null means use the option element name.</p>
</div>
<p>Override the UCI section name to read the option value from.</p>
<p>By default, the section ID is inherited from the parent section element.
By setting this property, a deviating section may be specified.</p>
-<p>The default is null, means inheriting from the parent section.</p>
+<p>The default of null means inherit from the parent section.</p>
</div>
<p>Query the underlying configuration value.</p>
<p>The default implementation of this method returns the cached return
value of <a href="LuCI.form.AbstractValue.html#load"><code>load()</code></a>. It may be
-overwritten by user code to obtain the configuration value in a
+overridden by user code to obtain the configuration value in a
different way.</p>
</div>
<p>Dependency constraints allow making the presence of option elements
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.</p>
+hidden from the view and its current value omitted when saving.</p>
<p>Multiple constraints (that is, multiple calls to <code>depends()</code>) are
treated as alternatives, forming a logical "or" expression.</p>
<p>By passing an object of name => value pairs as first argument, it is
-possible to depend on multiple options simultaneously, allowing to form
+possible to depend on multiple options simultaneously, forming
a logical "and" expression.</p>
<p>Option names may be given in "dot notation" which allows to reference
option elements outside the current form section. If a name without
<p>Query the current form input value.</p>
<p>The default implementation of this method returns the current input
value of the underlying <a href="LuCI.ui.AbstractElement.html"><code>LuCI.ui</code></a> widget.
-It may be overwritten by user code to handle input values differently.</p>
+It may be overridden by user code to handle input values differently.</p>
</div>
<p>Load the underlying configuration value.</p>
<p>The default implementation of this method reads and returns the
underlying UCI option value (or the related JavaScript property for
-<code>JSONMap</code> instances). It may be overwritten by user code to load data
-from nonstandard sources.</p>
+<code>JSONMap</code> instances). It may be overridden by user code to load data
+from non-standard sources.</p>
</div>
user cleared the input value and the option is marked optional.</p>
<p>The default implementation simply removes the associated option from the
UCI configuration (or the associated JavaScript object property in
-case of <code>JSONMap</code> forms). It may be overwritten by user code to
+case of <code>JSONMap</code> forms). It may be overridden by user code to
implement alternative removal logic, e.g. to retain the original value.</p>
</div>
<div class="description">
<p>Obtain a textual input representation.</p>
-<p>The default implementation of this method returns the HTML escaped
+<p>The default implementation of this method returns the HTML-escaped
current input value of the underlying
<a href="LuCI.ui.AbstractElement.html"><code>LuCI.ui</code></a> widget. User code or specific
-option element implementations may overwrite this function to apply a
+option element implementations may override this function to apply a
different logic, e.g. to return <code>Yes</code> or <code>No</code> depending on the checked
state of checkbox elements.</p>
</div>
<a href="LuCI.form.AbstractValue.html#cfgvalue"><code>cfgvalue()</code></a>.</p>
<p>The default implementation simply sets the given input value in the
UCI configuration (or the associated JavaScript object property in
-case of <code>JSONMap</code> forms). It may be overwritten by user code to
+case of <code>JSONMap</code> forms). It may be overridden by user code to
implement alternative save logic, e.g. to transform the input value
before it is written.</p>
</div>
<footer>
- Documentation generated by <a target="_blank" href="https://github.com/jsdoc3/jsdoc">JSDoc 3.6.11</a> on Mon Jun 02 2025 19:03:24 GMT+0000 (Coordinated Universal Time)
+ Documentation generated by <a target="_blank" href="https://github.com/jsdoc3/jsdoc">JSDoc 3.6.11</a> on Mon Jun 09 2025 22:45:28 GMT+0000 (Coordinated Universal Time)
</footer>
</div>
</div>
<dd>
<div class="description">
- <p>If set to <code>true</code>, the user may remove or recreate the sole mapped
+ <p>Set to <code>true</code>, the user may remove or recreate the sole mapped
configuration instance from the form section widget, otherwise only a
-preexisting section may be edited. The default is <code>false</code>.</p>
+pre-existing section may be edited. The default is <code>false</code>.</p>
</div>
<p>Override the UCI configuration name to read the section IDs from. By
default, the configuration name is inherited from the parent <code>Map</code>.
By setting this property, a deviating configuration may be specified.
-The default is <code>null</code>, means inheriting from the parent form.</p>
+The default of <code>null</code> means inherit from the parent form.</p>
</div>
<div class="description">
- <p>The <code>NamedSection</code> class overwrites the generic <code>cfgsections()</code>
+ <p>The <code>NamedSection</code> class overrides the generic <code>cfgsections()</code>
implementation to return a one-element array containing the mapped
section ID as sole element. User code should not normally change this.</p>
</div>
<p>Query underlying option configuration values.</p>
<p>This function is sensitive to the amount of arguments passed to it;
if only one argument is specified, the configuration values of all
-options within this section are returned as dictionary.</p>
+options within this section are returned as a dictionary.</p>
<p>If both the section ID and an option name are supplied, this function
returns the configuration value of the specified option only.</p>
</div>
and controls whether the given UCI section is rendered or ignored by
the form section element.</p>
<p>The default implementation always returns <code>true</code>. User code or
-classes extending <code>AbstractSection</code> may overwrite this function with
+classes extending <code>AbstractSection</code> may override this function with
custom implementations.</p>
</div>
<p>Query underlying option widget input values.</p>
<p>This function is sensitive to the amount of arguments passed to it;
if only one argument is specified, the widget input values of all
-options within this section are returned as dictionary.</p>
+options within this section are returned as a dictionary.</p>
<p>If both the section ID and an option name are supplied, this function
returns the widget input value of the specified option only.</p>
</div>
<p>Obtain underlying option objects.</p>
<p>This function is sensitive to the amount of arguments passed to it;
if no option name is specified, all options within this section are
-returned as dictionary.</p>
+returned as a dictionary.</p>
<p>If an option name is supplied, this function returns the matching
LuCI.form.AbstractValue instance only.</p>
</div>
<p>Obtain underlying option LuCI.ui widget instances.</p>
<p>This function is sensitive to the amount of arguments passed to it;
if only one argument is specified, the LuCI.ui widget instances of all
-options within this section are returned as dictionary.</p>
+options within this section are returned as a dictionary.</p>
<p>If both the section ID and an option name are supplied, this function
returns the LuCI.ui widget instance value of the specified option only.</p>
</div>
</td>
<td class="description last">Returns a promise resolving once the values of all child elements have
been loaded. The promise may reject with an error if any of the child
-elements load functions rejected with an error.</td>
+elements' load functions rejected with an error.</td>
</tr>
</tbody>
</td>
<td class="description last">Returns a promise resolving once the values of all child elements have
-been parsed. The returned promise is rejected if any parsed values are
-not meeting the validation constraints of their respective elements.</td>
+been parsed. The returned promise is rejected if any parsed values do
+not meet the validation constraints of their respective elements.</td>
</tr>
</tbody>
<footer>
- Documentation generated by <a target="_blank" href="https://github.com/jsdoc3/jsdoc">JSDoc 3.6.11</a> on Mon Jun 02 2025 19:03:24 GMT+0000 (Coordinated Universal Time)
+ Documentation generated by <a target="_blank" href="https://github.com/jsdoc3/jsdoc">JSDoc 3.6.11</a> on Mon Jun 09 2025 22:45:28 GMT+0000 (Coordinated Universal Time)
</footer>
</div>
</div>
<p>Options which are displayed in the table portion of a <code>GridSection</code>
instance are rendered as readonly text by default. By setting the
<code>editable</code> property of a child option element to <code>true</code>, that element
-is rendered as full input widget within its cell instead of a text only
+is rendered as a full input widget within its cell instead of a text only
preview.</p>
<p>This property has no effect on options that are not children of grid
section elements.</p>
<div class="description">
<p>Register a custom value change handler.</p>
-<p>If this property is set to a function value, the function is invoked
-whenever the value of the underlying UI input element is changing.</p>
+<p>If this property is set to a function, it is invoked
+whenever the value of the underlying UI input element changes.</p>
<p>The invoked handler function will receive the DOM click element as
first and the underlying configuration section ID as well as the input
value as second and third argument respectively.</p>
<dd>
<div class="description">
- <p>If set to <code>true</code>, the field is rendered as password input, otherwise
-as plain text input.</p>
+ <p>If set to <code>true</code>, the field is rendered as a password input, otherwise
+as a plain text input.</p>
</div>
<p>Make option element readonly.</p>
<p>This property defaults to the readonly state of the parent form element.
When set to <code>true</code>, the underlying widget is rendered in disabled state,
-means its contents cannot be changed and the widget cannot be interacted
-with.</p>
+meaning its contents cannot be changed and the widget cannot be
+interacted with.</p>
</div>
<p>Override the UCI configuration name to read the option value from.</p>
<p>By default, the configuration name is inherited from the parent Map.
By setting this property, a deviating configuration may be specified.</p>
-<p>The default is null, means inheriting from the parent form.</p>
+<p>The default of null means inherit from the parent form.</p>
</div>
<p>By default, the elements name, which is passed as third argument to
the constructor, is used as UCI option name. By setting this property,
a deviating UCI option may be specified.</p>
-<p>The default is null, means using the option element name.</p>
+<p>The default of null means use the option element name.</p>
</div>
<p>Override the UCI section name to read the option value from.</p>
<p>By default, the section ID is inherited from the parent section element.
By setting this property, a deviating section may be specified.</p>
-<p>The default is null, means inheriting from the parent section.</p>
+<p>The default of null means inherit from the parent section.</p>
</div>
<p>Query the underlying configuration value.</p>
<p>The default implementation of this method returns the cached return
value of <a href="LuCI.form.AbstractValue.html#load"><code>load()</code></a>. It may be
-overwritten by user code to obtain the configuration value in a
+overridden by user code to obtain the configuration value in a
different way.</p>
</div>
<p>Dependency constraints allow making the presence of option elements
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.</p>
+hidden from the view and its current value omitted when saving.</p>
<p>Multiple constraints (that is, multiple calls to <code>depends()</code>) are
treated as alternatives, forming a logical "or" expression.</p>
<p>By passing an object of name => value pairs as first argument, it is
-possible to depend on multiple options simultaneously, allowing to form
+possible to depend on multiple options simultaneously, forming
a logical "and" expression.</p>
<p>Option names may be given in "dot notation" which allows to reference
option elements outside the current form section. If a name without
<p>Query the current form input value.</p>
<p>The default implementation of this method returns the current input
value of the underlying <a href="LuCI.ui.AbstractElement.html"><code>LuCI.ui</code></a> widget.
-It may be overwritten by user code to handle input values differently.</p>
+It may be overridden by user code to handle input values differently.</p>
</div>
<p>Load the underlying configuration value.</p>
<p>The default implementation of this method reads and returns the
underlying UCI option value (or the related JavaScript property for
-<code>JSONMap</code> instances). It may be overwritten by user code to load data
-from nonstandard sources.</p>
+<code>JSONMap</code> instances). It may be overridden by user code to load data
+from non-standard sources.</p>
</div>
user cleared the input value and the option is marked optional.</p>
<p>The default implementation simply removes the associated option from the
UCI configuration (or the associated JavaScript object property in
-case of <code>JSONMap</code> forms). It may be overwritten by user code to
+case of <code>JSONMap</code> forms). It may be overridden by user code to
implement alternative removal logic, e.g. to retain the original value.</p>
</div>
<div class="description">
<p>Obtain a textual input representation.</p>
-<p>The default implementation of this method returns the HTML escaped
+<p>The default implementation of this method returns the HTML-escaped
current input value of the underlying
<a href="LuCI.ui.AbstractElement.html"><code>LuCI.ui</code></a> widget. User code or specific
-option element implementations may overwrite this function to apply a
+option element implementations may override this function to apply a
different logic, e.g. to return <code>Yes</code> or <code>No</code> depending on the checked
state of checkbox elements.</p>
</div>
<a href="LuCI.form.AbstractValue.html#cfgvalue"><code>cfgvalue()</code></a>.</p>
<p>The default implementation simply sets the given input value in the
UCI configuration (or the associated JavaScript object property in
-case of <code>JSONMap</code> forms). It may be overwritten by user code to
+case of <code>JSONMap</code> forms). It may be overridden by user code to
implement alternative save logic, e.g. to transform the input value
before it is written.</p>
</div>
<footer>
- Documentation generated by <a target="_blank" href="https://github.com/jsdoc3/jsdoc">JSDoc 3.6.11</a> on Mon Jun 02 2025 19:03:24 GMT+0000 (Coordinated Universal Time)
+ Documentation generated by <a target="_blank" href="https://github.com/jsdoc3/jsdoc">JSDoc 3.6.11</a> on Mon Jun 09 2025 22:45:28 GMT+0000 (Coordinated Universal Time)
</footer>
</div>
</div>
<div class="tag-source">
- <a href="form.js.html">form.js</a>, <a href="form.js.html#line4861">line 4861</a>
+ <a href="form.js.html">form.js</a>, <a href="form.js.html#line4863">line 4863</a>
</div>
</div>
<p>Options which are displayed in the table portion of a <code>GridSection</code>
instance are rendered as readonly text by default. By setting the
<code>editable</code> property of a child option element to <code>true</code>, that element
-is rendered as full input widget within its cell instead of a text only
+is rendered as a full input widget within its cell instead of a text only
preview.</p>
<p>This property has no effect on options that are not children of grid
section elements.</p>
<div class="description">
<p>Register a custom value change handler.</p>
-<p>If this property is set to a function value, the function is invoked
-whenever the value of the underlying UI input element is changing.</p>
+<p>If this property is set to a function, it is invoked
+whenever the value of the underlying UI input element changes.</p>
<p>The invoked handler function will receive the DOM click element as
first and the underlying configuration section ID as well as the input
value as second and third argument respectively.</p>
<dd>
<div class="description">
- <p>If set to <code>true</code>, the field is rendered as password input, otherwise
-as plain text input.</p>
+ <p>If set to <code>true</code>, the field is rendered as a password input, otherwise
+as a plain text input.</p>
</div>
<p>Make option element readonly.</p>
<p>This property defaults to the readonly state of the parent form element.
When set to <code>true</code>, the underlying widget is rendered in disabled state,
-means its contents cannot be changed and the widget cannot be interacted
-with.</p>
+meaning its contents cannot be changed and the widget cannot be
+interacted with.</p>
</div>
<p>Override the UCI configuration name to read the option value from.</p>
<p>By default, the configuration name is inherited from the parent Map.
By setting this property, a deviating configuration may be specified.</p>
-<p>The default is null, means inheriting from the parent form.</p>
+<p>The default of null means inherit from the parent form.</p>
</div>
<p>By default, the elements name, which is passed as third argument to
the constructor, is used as UCI option name. By setting this property,
a deviating UCI option may be specified.</p>
-<p>The default is null, means using the option element name.</p>
+<p>The default of null means use the option element name.</p>
</div>
<p>Override the UCI section name to read the option value from.</p>
<p>By default, the section ID is inherited from the parent section element.
By setting this property, a deviating section may be specified.</p>
-<p>The default is null, means inheriting from the parent section.</p>
+<p>The default of null means inherit from the parent section.</p>
</div>
<div class="tag-source">
- <a href="form.js.html">form.js</a>, <a href="form.js.html#line4973">line 4973</a>
+ <a href="form.js.html">form.js</a>, <a href="form.js.html#line4975">line 4975</a>
</div>
</div>
<p>Dependency constraints allow making the presence of option elements
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.</p>
+hidden from the view and its current value omitted when saving.</p>
<p>Multiple constraints (that is, multiple calls to <code>depends()</code>) are
treated as alternatives, forming a logical "or" expression.</p>
<p>By passing an object of name => value pairs as first argument, it is
-possible to depend on multiple options simultaneously, allowing to form
+possible to depend on multiple options simultaneously, forming
a logical "and" expression.</p>
<p>Option names may be given in "dot notation" which allows to reference
option elements outside the current form section. If a name without
<div class="tag-source">
- <a href="form.js.html">form.js</a>, <a href="form.js.html#line4982">line 4982</a>
+ <a href="form.js.html">form.js</a>, <a href="form.js.html#line4984">line 4984</a>
</div>
</div>
<div class="tag-source">
- <a href="form.js.html">form.js</a>, <a href="form.js.html#line4922">line 4922</a>
+ <a href="form.js.html">form.js</a>, <a href="form.js.html#line4924">line 4924</a>
</div>
</div>
<p>Load the underlying configuration value.</p>
<p>The default implementation of this method reads and returns the
underlying UCI option value (or the related JavaScript property for
-<code>JSONMap</code> instances). It may be overwritten by user code to load data
-from nonstandard sources.</p>
+<code>JSONMap</code> instances). It may be overridden by user code to load data
+from non-standard sources.</p>
</div>
<div class="tag-source">
- <a href="form.js.html">form.js</a>, <a href="form.js.html#line4927">line 4927</a>
+ <a href="form.js.html">form.js</a>, <a href="form.js.html#line4929">line 4929</a>
</div>
</div>
<div class="tag-source">
- <a href="form.js.html">form.js</a>, <a href="form.js.html#line4964">line 4964</a>
+ <a href="form.js.html">form.js</a>, <a href="form.js.html#line4966">line 4966</a>
</div>
</div>
<div class="description">
<p>Obtain a textual input representation.</p>
-<p>The default implementation of this method returns the HTML escaped
+<p>The default implementation of this method returns the HTML-escaped
current input value of the underlying
<a href="LuCI.ui.AbstractElement.html"><code>LuCI.ui</code></a> widget. User code or specific
-option element implementations may overwrite this function to apply a
+option element implementations may override this function to apply a
different logic, e.g. to return <code>Yes</code> or <code>No</code> depending on the checked
state of checkbox elements.</p>
</div>
<div class="tag-source">
- <a href="form.js.html">form.js</a>, <a href="form.js.html#line4948">line 4948</a>
+ <a href="form.js.html">form.js</a>, <a href="form.js.html#line4950">line 4950</a>
</div>
</div>
<div class="tag-source">
- <a href="form.js.html">form.js</a>, <a href="form.js.html#line4956">line 4956</a>
+ <a href="form.js.html">form.js</a>, <a href="form.js.html#line4958">line 4958</a>
</div>
</div>
<footer>
- Documentation generated by <a target="_blank" href="https://github.com/jsdoc3/jsdoc">JSDoc 3.6.11</a> on Mon Jun 02 2025 19:03:24 GMT+0000 (Coordinated Universal Time)
+ Documentation generated by <a target="_blank" href="https://github.com/jsdoc3/jsdoc">JSDoc 3.6.11</a> on Mon Jun 09 2025 22:45:28 GMT+0000 (Coordinated Universal Time)
</footer>
</div>
</div>
TableSection
</h2>
- <div class="class-description"><p>The <code>TableSection</code> class maps all or - if <code>filter()</code> is overwritten - a
+ <div class="class-description"><p>The <code>TableSection</code> class maps all or - if <code>filter()</code> is overridden - a
subset of the underlying UCI configuration sections of a given type.</p>
<p>Layout wise, the configuration section instances mapped by the section
element (sometimes referred to as "section nodes") are rendered as rows
<div class="description">
<p>Enables a per-section instance row <code>Edit</code> button which triggers a certain
-action when clicked. If set to a string, the string value is used
-as <code>String.format()</code> pattern with the name of the underlying UCI section
-as first format argument. The result is then interpreted as URL which
+action when clicked. Set to a string, the string value is used
+as a <code>String.format()</code> pattern with the name of the underlying UCI section
+as first format argument. The result is then interpreted as a URL which
LuCI will navigate to when the user clicks the edit button.</p>
<p>If set to a function, this function will be registered as click event
handler on the rendered edit button, receiving the section instance
<div class="description">
<p>Override the per-section instance modal popup title caption shown when
-clicking the <code>More…</code> button in a section specifying <code>max_cols</code>. If set
-to a string, it will be used as <code>String.format()</code> pattern with the name
-of the underlying UCI section as first argument, if set to a function,
+clicking the <code>More…</code> button in a section specifying <code>max_cols</code>. Set
+to a string, it will be used as a <code>String.format()</code> pattern with the name
+of the underlying UCI section as first argument. Set to a function,
the function will be invoked with the section name as first argument and
its return value is used as caption, after converting it to a string.
If this property is not set, the default is the name of the underlying
<dd>
<div class="description">
- <p>If set to <code>true</code>, the header row with the options descriptions will
+ <p>Set to <code>true</code>, the header row with the options descriptions will
not be displayed. By default, descriptions row is automatically displayed
when at least one option has a description.</p>
</div>
<dd>
<div class="description">
- <p>If set to <code>true</code>, alternating <code>cbi-rowstyle-1</code> and <code>cbi-rowstyle-2</code> CSS
+ <p>Set to <code>true</code>, alternating <code>cbi-rowstyle-1</code> and <code>cbi-rowstyle-2</code> CSS
classes are added to the table row elements. Not all LuCI themes
implement these row style classes. The default is <code>false</code>.</p>
</div>
<div class="description">
<p>Override the per-section instance title caption shown in the first
-column of the table unless <code>anonymous</code> is set to true. If set to a
-string, it will be used as <code>String.format()</code> pattern with the name of
-the underlying UCI section as first argument, if set to a function, the
+column of the table unless <code>anonymous</code> is set to true. Set to a
+string, it will be used as a <code>String.format()</code> pattern with the name of
+the underlying UCI section as first argument. Set to a function, the
function will be invoked with the section name as first argument and
-its return value is used as caption, after converting it to a string.
+its return value used as caption, after converting it to a string.
If this property is not set, the default is the name of the underlying
UCI configuration section.</p>
</div>
<dd>
<div class="description">
- <p>If set to <code>true</code>, a sort button is added to the last column, allowing
+ <p>Set to <code>true</code>, a sort button is added to the last column, allowing
the user to reorder the section instances mapped by the section form
element.</p>
</div>
<div class="description">
<p>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
+the section form element. Set to a string, it will be used as-is.
+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 <code>Add</code>.</p>
</div>
<div class="description">
<p>If set to <code>true</code>, the user may add or remove instances from the form
-section widget, otherwise only preexisting sections may be edited.
+section widget, otherwise only pre-existing sections may be edited.
The default is <code>false</code>.</p>
</div>
<p>Override the UCI configuration name to read the section IDs from. By
default, the configuration name is inherited from the parent <code>Map</code>.
By setting this property, a deviating configuration may be specified.
-The default is <code>null</code>, means inheriting from the parent form.</p>
+The default of <code>null</code> means inherit from the parent form.</p>
</div>
<div class="description">
<p>Add further options to the per-section instanced modal popup.</p>
-<p>This function may be overwritten by user code to perform additional
+<p>This function may be overridden by user code to perform additional
setup steps before displaying the more options modal which is useful to
e.g. query additional data or to inject further option elements.</p>
<p>The default implementation of this function does nothing.</p>
<p>Query underlying option configuration values.</p>
<p>This function is sensitive to the amount of arguments passed to it;
if only one argument is specified, the configuration values of all
-options within this section are returned as dictionary.</p>
+options within this section are returned as a dictionary.</p>
<p>If both the section ID and an option name are supplied, this function
returns the configuration value of the specified option only.</p>
</div>
and controls whether the given UCI section is rendered or ignored by
the form section element.</p>
<p>The default implementation always returns <code>true</code>. User code or
-classes extending <code>AbstractSection</code> may overwrite this function with
+classes extending <code>AbstractSection</code> may override this function with
custom implementations.</p>
</div>
<p>Query underlying option widget input values.</p>
<p>This function is sensitive to the amount of arguments passed to it;
if only one argument is specified, the widget input values of all
-options within this section are returned as dictionary.</p>
+options within this section are returned as a dictionary.</p>
<p>If both the section ID and an option name are supplied, this function
returns the widget input value of the specified option only.</p>
</div>
<p>Obtain underlying option objects.</p>
<p>This function is sensitive to the amount of arguments passed to it;
if no option name is specified, all options within this section are
-returned as dictionary.</p>
+returned as a dictionary.</p>
<p>If an option name is supplied, this function returns the matching
LuCI.form.AbstractValue instance only.</p>
</div>
<p>Obtain underlying option LuCI.ui widget instances.</p>
<p>This function is sensitive to the amount of arguments passed to it;
if only one argument is specified, the LuCI.ui widget instances of all
-options within this section are returned as dictionary.</p>
+options within this section are returned as a dictionary.</p>
<p>If both the section ID and an option name are supplied, this function
returns the LuCI.ui widget instance value of the specified option only.</p>
</div>
</td>
<td class="description last">Returns a promise resolving once the values of all child elements have
been loaded. The promise may reject with an error if any of the child
-elements load functions rejected with an error.</td>
+elements' load functions rejected with an error.</td>
</tr>
</tbody>
</td>
<td class="description last">Returns a promise resolving once the values of all child elements have
-been parsed. The returned promise is rejected if any parsed values are
-not meeting the validation constraints of their respective elements.</td>
+been parsed. The returned promise is rejected if any parsed values do
+not meet the validation constraints of their respective elements.</td>
</tr>
</tbody>
<footer>
- Documentation generated by <a target="_blank" href="https://github.com/jsdoc3/jsdoc">JSDoc 3.6.11</a> on Mon Jun 02 2025 19:03:24 GMT+0000 (Coordinated Universal Time)
+ Documentation generated by <a target="_blank" href="https://github.com/jsdoc3/jsdoc">JSDoc 3.6.11</a> on Mon Jun 09 2025 22:45:28 GMT+0000 (Coordinated Universal Time)
</footer>
</div>
</div>
<p>Options which are displayed in the table portion of a <code>GridSection</code>
instance are rendered as readonly text by default. By setting the
<code>editable</code> property of a child option element to <code>true</code>, that element
-is rendered as full input widget within its cell instead of a text only
+is rendered as a full input widget within its cell instead of a text only
preview.</p>
<p>This property has no effect on options that are not children of grid
section elements.</p>
<div class="description">
<p>Register a custom value change handler.</p>
-<p>If this property is set to a function value, the function is invoked
-whenever the value of the underlying UI input element is changing.</p>
+<p>If this property is set to a function, it is invoked
+whenever the value of the underlying UI input element changes.</p>
<p>The invoked handler function will receive the DOM click element as
first and the underlying configuration section ID as well as the input
value as second and third argument respectively.</p>
<dd>
<div class="description">
- <p>If set to <code>true</code>, the field is rendered as password input, otherwise
-as plain text input.</p>
+ <p>If set to <code>true</code>, the field is rendered as a password input, otherwise
+as a plain text input.</p>
</div>
<p>Make option element readonly.</p>
<p>This property defaults to the readonly state of the parent form element.
When set to <code>true</code>, the underlying widget is rendered in disabled state,
-means its contents cannot be changed and the widget cannot be interacted
-with.</p>
+meaning its contents cannot be changed and the widget cannot be
+interacted with.</p>
</div>
<p>Override the UCI configuration name to read the option value from.</p>
<p>By default, the configuration name is inherited from the parent Map.
By setting this property, a deviating configuration may be specified.</p>
-<p>The default is null, means inheriting from the parent form.</p>
+<p>The default of null means inherit from the parent form.</p>
</div>
<p>By default, the elements name, which is passed as third argument to
the constructor, is used as UCI option name. By setting this property,
a deviating UCI option may be specified.</p>
-<p>The default is null, means using the option element name.</p>
+<p>The default of null means use the option element name.</p>
</div>
<p>Override the UCI section name to read the option value from.</p>
<p>By default, the section ID is inherited from the parent section element.
By setting this property, a deviating section may be specified.</p>
-<p>The default is null, means inheriting from the parent section.</p>
+<p>The default of null means inherit from the parent section.</p>
</div>
<p>Query the underlying configuration value.</p>
<p>The default implementation of this method returns the cached return
value of <a href="LuCI.form.AbstractValue.html#load"><code>load()</code></a>. It may be
-overwritten by user code to obtain the configuration value in a
+overridden by user code to obtain the configuration value in a
different way.</p>
</div>
<p>Dependency constraints allow making the presence of option elements
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.</p>
+hidden from the view and its current value omitted when saving.</p>
<p>Multiple constraints (that is, multiple calls to <code>depends()</code>) are
treated as alternatives, forming a logical "or" expression.</p>
<p>By passing an object of name => value pairs as first argument, it is
-possible to depend on multiple options simultaneously, allowing to form
+possible to depend on multiple options simultaneously, forming
a logical "and" expression.</p>
<p>Option names may be given in "dot notation" which allows to reference
option elements outside the current form section. If a name without
<p>Query the current form input value.</p>
<p>The default implementation of this method returns the current input
value of the underlying <a href="LuCI.ui.AbstractElement.html"><code>LuCI.ui</code></a> widget.
-It may be overwritten by user code to handle input values differently.</p>
+It may be overridden by user code to handle input values differently.</p>
</div>
<p>Load the underlying configuration value.</p>
<p>The default implementation of this method reads and returns the
underlying UCI option value (or the related JavaScript property for
-<code>JSONMap</code> instances). It may be overwritten by user code to load data
-from nonstandard sources.</p>
+<code>JSONMap</code> instances). It may be overridden by user code to load data
+from non-standard sources.</p>
</div>
user cleared the input value and the option is marked optional.</p>
<p>The default implementation simply removes the associated option from the
UCI configuration (or the associated JavaScript object property in
-case of <code>JSONMap</code> forms). It may be overwritten by user code to
+case of <code>JSONMap</code> forms). It may be overridden by user code to
implement alternative removal logic, e.g. to retain the original value.</p>
</div>
<div class="description">
<p>Obtain a textual input representation.</p>
-<p>The default implementation of this method returns the HTML escaped
+<p>The default implementation of this method returns the HTML-escaped
current input value of the underlying
<a href="LuCI.ui.AbstractElement.html"><code>LuCI.ui</code></a> widget. User code or specific
-option element implementations may overwrite this function to apply a
+option element implementations may override this function to apply a
different logic, e.g. to return <code>Yes</code> or <code>No</code> depending on the checked
state of checkbox elements.</p>
</div>
<a href="LuCI.form.AbstractValue.html#cfgvalue"><code>cfgvalue()</code></a>.</p>
<p>The default implementation simply sets the given input value in the
UCI configuration (or the associated JavaScript object property in
-case of <code>JSONMap</code> forms). It may be overwritten by user code to
+case of <code>JSONMap</code> forms). It may be overridden by user code to
implement alternative save logic, e.g. to transform the input value
before it is written.</p>
</div>
<footer>
- Documentation generated by <a target="_blank" href="https://github.com/jsdoc3/jsdoc">JSDoc 3.6.11</a> on Mon Jun 02 2025 19:03:24 GMT+0000 (Coordinated Universal Time)
+ Documentation generated by <a target="_blank" href="https://github.com/jsdoc3/jsdoc">JSDoc 3.6.11</a> on Mon Jun 09 2025 22:45:28 GMT+0000 (Coordinated Universal Time)
</footer>
</div>
</div>
TypedSection
</h2>
- <div class="class-description"><p>The <code>TypedSection</code> class maps all or - if <code>filter()</code> is overwritten - a
+ <div class="class-description"><p>The <code>TypedSection</code> class maps all or - if <code>filter()</code> is overridden - a
subset of the underlying UCI configuration sections of a given type.</p>
<p>Layout wise, the configuration section instances mapped by the section
element (sometimes referred to as "section nodes") are stacked beneath
<div class="description">
<p>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
+the section form element. Set to a string, it will be used as-is.
+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 <code>Add</code>.</p>
</div>
<div class="description">
<p>If set to <code>true</code>, the user may add or remove instances from the form
-section widget, otherwise only preexisting sections may be edited.
+section widget, otherwise only pre-existing sections may be edited.
The default is <code>false</code>.</p>
</div>
<p>Override the UCI configuration name to read the section IDs from. By
default, the configuration name is inherited from the parent <code>Map</code>.
By setting this property, a deviating configuration may be specified.
-The default is <code>null</code>, means inheriting from the parent form.</p>
+The default of <code>null</code> means inherit from the parent form.</p>
</div>
<p>Query underlying option configuration values.</p>
<p>This function is sensitive to the amount of arguments passed to it;
if only one argument is specified, the configuration values of all
-options within this section are returned as dictionary.</p>
+options within this section are returned as a dictionary.</p>
<p>If both the section ID and an option name are supplied, this function
returns the configuration value of the specified option only.</p>
</div>
and controls whether the given UCI section is rendered or ignored by
the form section element.</p>
<p>The default implementation always returns <code>true</code>. User code or
-classes extending <code>AbstractSection</code> may overwrite this function with
+classes extending <code>AbstractSection</code> may override this function with
custom implementations.</p>
</div>
<p>Query underlying option widget input values.</p>
<p>This function is sensitive to the amount of arguments passed to it;
if only one argument is specified, the widget input values of all
-options within this section are returned as dictionary.</p>
+options within this section are returned as a dictionary.</p>
<p>If both the section ID and an option name are supplied, this function
returns the widget input value of the specified option only.</p>
</div>
<p>Obtain underlying option objects.</p>
<p>This function is sensitive to the amount of arguments passed to it;
if no option name is specified, all options within this section are
-returned as dictionary.</p>
+returned as a dictionary.</p>
<p>If an option name is supplied, this function returns the matching
LuCI.form.AbstractValue instance only.</p>
</div>
<p>Obtain underlying option LuCI.ui widget instances.</p>
<p>This function is sensitive to the amount of arguments passed to it;
if only one argument is specified, the LuCI.ui widget instances of all
-options within this section are returned as dictionary.</p>
+options within this section are returned as a dictionary.</p>
<p>If both the section ID and an option name are supplied, this function
returns the LuCI.ui widget instance value of the specified option only.</p>
</div>
</td>
<td class="description last">Returns a promise resolving once the values of all child elements have
been loaded. The promise may reject with an error if any of the child
-elements load functions rejected with an error.</td>
+elements' load functions rejected with an error.</td>
</tr>
</tbody>
</td>
<td class="description last">Returns a promise resolving once the values of all child elements have
-been parsed. The returned promise is rejected if any parsed values are
-not meeting the validation constraints of their respective elements.</td>
+been parsed. The returned promise is rejected if any parsed values do
+not meet the validation constraints of their respective elements.</td>
</tr>
</tbody>
<footer>
- Documentation generated by <a target="_blank" href="https://github.com/jsdoc3/jsdoc">JSDoc 3.6.11</a> on Mon Jun 02 2025 19:03:24 GMT+0000 (Coordinated Universal Time)
+ Documentation generated by <a target="_blank" href="https://github.com/jsdoc3/jsdoc">JSDoc 3.6.11</a> on Mon Jun 09 2025 22:45:28 GMT+0000 (Coordinated Universal Time)
</footer>
</div>
</div>
<dd>
<div class="description">
- <p>If set to <code>true</code>, the field is rendered as password input, otherwise
-as plain text input.</p>
+ <p>If set to <code>true</code>, the field is rendered as a password input, otherwise
+as a plain text input.</p>
</div>
<p>Options which are displayed in the table portion of a <code>GridSection</code>
instance are rendered as readonly text by default. By setting the
<code>editable</code> property of a child option element to <code>true</code>, that element
-is rendered as full input widget within its cell instead of a text only
+is rendered as a full input widget within its cell instead of a text only
preview.</p>
<p>This property has no effect on options that are not children of grid
section elements.</p>
<div class="description">
<p>Register a custom value change handler.</p>
-<p>If this property is set to a function value, the function is invoked
-whenever the value of the underlying UI input element is changing.</p>
+<p>If this property is set to a function, it is invoked
+whenever the value of the underlying UI input element changes.</p>
<p>The invoked handler function will receive the DOM click element as
first and the underlying configuration section ID as well as the input
value as second and third argument respectively.</p>
<p>Make option element readonly.</p>
<p>This property defaults to the readonly state of the parent form element.
When set to <code>true</code>, the underlying widget is rendered in disabled state,
-means its contents cannot be changed and the widget cannot be interacted
-with.</p>
+meaning its contents cannot be changed and the widget cannot be
+interacted with.</p>
</div>
<p>Override the UCI configuration name to read the option value from.</p>
<p>By default, the configuration name is inherited from the parent Map.
By setting this property, a deviating configuration may be specified.</p>
-<p>The default is null, means inheriting from the parent form.</p>
+<p>The default of null means inherit from the parent form.</p>
</div>
<p>By default, the elements name, which is passed as third argument to
the constructor, is used as UCI option name. By setting this property,
a deviating UCI option may be specified.</p>
-<p>The default is null, means using the option element name.</p>
+<p>The default of null means use the option element name.</p>
</div>
<p>Override the UCI section name to read the option value from.</p>
<p>By default, the section ID is inherited from the parent section element.
By setting this property, a deviating section may be specified.</p>
-<p>The default is null, means inheriting from the parent section.</p>
+<p>The default of null means inherit from the parent section.</p>
</div>
<p>Query the underlying configuration value.</p>
<p>The default implementation of this method returns the cached return
value of <a href="LuCI.form.AbstractValue.html#load"><code>load()</code></a>. It may be
-overwritten by user code to obtain the configuration value in a
+overridden by user code to obtain the configuration value in a
different way.</p>
</div>
<p>Dependency constraints allow making the presence of option elements
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.</p>
+hidden from the view and its current value omitted when saving.</p>
<p>Multiple constraints (that is, multiple calls to <code>depends()</code>) are
treated as alternatives, forming a logical "or" expression.</p>
<p>By passing an object of name => value pairs as first argument, it is
-possible to depend on multiple options simultaneously, allowing to form
+possible to depend on multiple options simultaneously, forming
a logical "and" expression.</p>
<p>Option names may be given in "dot notation" which allows to reference
option elements outside the current form section. If a name without
<p>Query the current form input value.</p>
<p>The default implementation of this method returns the current input
value of the underlying <a href="LuCI.ui.AbstractElement.html"><code>LuCI.ui</code></a> widget.
-It may be overwritten by user code to handle input values differently.</p>
+It may be overridden by user code to handle input values differently.</p>
</div>
<p>Load the underlying configuration value.</p>
<p>The default implementation of this method reads and returns the
underlying UCI option value (or the related JavaScript property for
-<code>JSONMap</code> instances). It may be overwritten by user code to load data
-from nonstandard sources.</p>
+<code>JSONMap</code> instances). It may be overridden by user code to load data
+from non-standard sources.</p>
</div>
user cleared the input value and the option is marked optional.</p>
<p>The default implementation simply removes the associated option from the
UCI configuration (or the associated JavaScript object property in
-case of <code>JSONMap</code> forms). It may be overwritten by user code to
+case of <code>JSONMap</code> forms). It may be overridden by user code to
implement alternative removal logic, e.g. to retain the original value.</p>
</div>
<div class="description">
<p>Obtain a textual input representation.</p>
-<p>The default implementation of this method returns the HTML escaped
+<p>The default implementation of this method returns the HTML-escaped
current input value of the underlying
<a href="LuCI.ui.AbstractElement.html"><code>LuCI.ui</code></a> widget. User code or specific
-option element implementations may overwrite this function to apply a
+option element implementations may override this function to apply a
different logic, e.g. to return <code>Yes</code> or <code>No</code> depending on the checked
state of checkbox elements.</p>
</div>
<a href="LuCI.form.AbstractValue.html#cfgvalue"><code>cfgvalue()</code></a>.</p>
<p>The default implementation simply sets the given input value in the
UCI configuration (or the associated JavaScript object property in
-case of <code>JSONMap</code> forms). It may be overwritten by user code to
+case of <code>JSONMap</code> forms). It may be overridden by user code to
implement alternative save logic, e.g. to transform the input value
before it is written.</p>
</div>
<footer>
- Documentation generated by <a target="_blank" href="https://github.com/jsdoc3/jsdoc">JSDoc 3.6.11</a> on Mon Jun 02 2025 19:03:24 GMT+0000 (Coordinated Universal Time)
+ Documentation generated by <a target="_blank" href="https://github.com/jsdoc3/jsdoc">JSDoc 3.6.11</a> on Mon Jun 09 2025 22:45:28 GMT+0000 (Coordinated Universal Time)
</footer>
</div>
</div>
<div class="tag-source">
- <a href="form.js.html">form.js</a>, <a href="form.js.html#line4985">line 4985</a>
+ <a href="form.js.html">form.js</a>, <a href="form.js.html#line4987">line 4987</a>
</div>
</div>
<footer>
- Documentation generated by <a target="_blank" href="https://github.com/jsdoc3/jsdoc">JSDoc 3.6.11</a> on Mon Jun 02 2025 19:03:24 GMT+0000 (Coordinated Universal Time)
+ Documentation generated by <a target="_blank" href="https://github.com/jsdoc3/jsdoc">JSDoc 3.6.11</a> on Mon Jun 09 2025 22:45:27 GMT+0000 (Coordinated Universal Time)
</footer>
</div>
</div>
<footer>
- Documentation generated by <a target="_blank" href="https://github.com/jsdoc3/jsdoc">JSDoc 3.6.11</a> on Mon Jun 02 2025 19:03:24 GMT+0000 (Coordinated Universal Time)
+ Documentation generated by <a target="_blank" href="https://github.com/jsdoc3/jsdoc">JSDoc 3.6.11</a> on Mon Jun 09 2025 22:45:28 GMT+0000 (Coordinated Universal Time)
</footer>
</div>
</div>
<footer>
- Documentation generated by <a target="_blank" href="https://github.com/jsdoc3/jsdoc">JSDoc 3.6.11</a> on Mon Jun 02 2025 19:03:24 GMT+0000 (Coordinated Universal Time)
+ Documentation generated by <a target="_blank" href="https://github.com/jsdoc3/jsdoc">JSDoc 3.6.11</a> on Mon Jun 09 2025 22:45:28 GMT+0000 (Coordinated Universal Time)
</footer>
</div>
</div>
<footer>
- Documentation generated by <a target="_blank" href="https://github.com/jsdoc3/jsdoc">JSDoc 3.6.11</a> on Mon Jun 02 2025 19:03:24 GMT+0000 (Coordinated Universal Time)
+ Documentation generated by <a target="_blank" href="https://github.com/jsdoc3/jsdoc">JSDoc 3.6.11</a> on Mon Jun 09 2025 22:45:27 GMT+0000 (Coordinated Universal Time)
</footer>
</div>
</div>
<footer>
- Documentation generated by <a target="_blank" href="https://github.com/jsdoc3/jsdoc">JSDoc 3.6.11</a> on Mon Jun 02 2025 19:03:24 GMT+0000 (Coordinated Universal Time)
+ Documentation generated by <a target="_blank" href="https://github.com/jsdoc3/jsdoc">JSDoc 3.6.11</a> on Mon Jun 09 2025 22:45:28 GMT+0000 (Coordinated Universal Time)
</footer>
</div>
</div>
<footer>
- Documentation generated by <a target="_blank" href="https://github.com/jsdoc3/jsdoc">JSDoc 3.6.11</a> on Mon Jun 02 2025 19:03:24 GMT+0000 (Coordinated Universal Time)
+ Documentation generated by <a target="_blank" href="https://github.com/jsdoc3/jsdoc">JSDoc 3.6.11</a> on Mon Jun 09 2025 22:45:28 GMT+0000 (Coordinated Universal Time)
</footer>
</div>
</div>
<footer>
- Documentation generated by <a target="_blank" href="https://github.com/jsdoc3/jsdoc">JSDoc 3.6.11</a> on Mon Jun 02 2025 19:03:24 GMT+0000 (Coordinated Universal Time)
+ Documentation generated by <a target="_blank" href="https://github.com/jsdoc3/jsdoc">JSDoc 3.6.11</a> on Mon Jun 09 2025 22:45:28 GMT+0000 (Coordinated Universal Time)
</footer>
</div>
</div>
<footer>
- Documentation generated by <a target="_blank" href="https://github.com/jsdoc3/jsdoc">JSDoc 3.6.11</a> on Mon Jun 02 2025 19:03:24 GMT+0000 (Coordinated Universal Time)
+ Documentation generated by <a target="_blank" href="https://github.com/jsdoc3/jsdoc">JSDoc 3.6.11</a> on Mon Jun 09 2025 22:45:28 GMT+0000 (Coordinated Universal Time)
</footer>
</div>
</div>
<footer>
- Documentation generated by <a target="_blank" href="https://github.com/jsdoc3/jsdoc">JSDoc 3.6.11</a> on Mon Jun 02 2025 19:03:24 GMT+0000 (Coordinated Universal Time)
+ Documentation generated by <a target="_blank" href="https://github.com/jsdoc3/jsdoc">JSDoc 3.6.11</a> on Mon Jun 09 2025 22:45:28 GMT+0000 (Coordinated Universal Time)
</footer>
</div>
</div>
<footer>
- Documentation generated by <a target="_blank" href="https://github.com/jsdoc3/jsdoc">JSDoc 3.6.11</a> on Mon Jun 02 2025 19:03:24 GMT+0000 (Coordinated Universal Time)
+ Documentation generated by <a target="_blank" href="https://github.com/jsdoc3/jsdoc">JSDoc 3.6.11</a> on Mon Jun 09 2025 22:45:28 GMT+0000 (Coordinated Universal Time)
</footer>
</div>
</div>
<footer>
- Documentation generated by <a target="_blank" href="https://github.com/jsdoc3/jsdoc">JSDoc 3.6.11</a> on Mon Jun 02 2025 19:03:24 GMT+0000 (Coordinated Universal Time)
+ Documentation generated by <a target="_blank" href="https://github.com/jsdoc3/jsdoc">JSDoc 3.6.11</a> on Mon Jun 09 2025 22:45:28 GMT+0000 (Coordinated Universal Time)
</footer>
</div>
</div>
<footer>
- Documentation generated by <a target="_blank" href="https://github.com/jsdoc3/jsdoc">JSDoc 3.6.11</a> on Mon Jun 02 2025 19:03:24 GMT+0000 (Coordinated Universal Time)
+ Documentation generated by <a target="_blank" href="https://github.com/jsdoc3/jsdoc">JSDoc 3.6.11</a> on Mon Jun 09 2025 22:45:28 GMT+0000 (Coordinated Universal Time)
</footer>
</div>
</div>
<footer>
- Documentation generated by <a target="_blank" href="https://github.com/jsdoc3/jsdoc">JSDoc 3.6.11</a> on Mon Jun 02 2025 19:03:24 GMT+0000 (Coordinated Universal Time)
+ Documentation generated by <a target="_blank" href="https://github.com/jsdoc3/jsdoc">JSDoc 3.6.11</a> on Mon Jun 09 2025 22:45:28 GMT+0000 (Coordinated Universal Time)
</footer>
</div>
</div>
<footer>
- Documentation generated by <a target="_blank" href="https://github.com/jsdoc3/jsdoc">JSDoc 3.6.11</a> on Mon Jun 02 2025 19:03:24 GMT+0000 (Coordinated Universal Time)
+ Documentation generated by <a target="_blank" href="https://github.com/jsdoc3/jsdoc">JSDoc 3.6.11</a> on Mon Jun 09 2025 22:45:28 GMT+0000 (Coordinated Universal Time)
</footer>
</div>
</div>
<footer>
- Documentation generated by <a target="_blank" href="https://github.com/jsdoc3/jsdoc">JSDoc 3.6.11</a> on Mon Jun 02 2025 19:03:24 GMT+0000 (Coordinated Universal Time)
+ Documentation generated by <a target="_blank" href="https://github.com/jsdoc3/jsdoc">JSDoc 3.6.11</a> on Mon Jun 09 2025 22:45:28 GMT+0000 (Coordinated Universal Time)
</footer>
</div>
</div>
<footer>
- Documentation generated by <a target="_blank" href="https://github.com/jsdoc3/jsdoc">JSDoc 3.6.11</a> on Mon Jun 02 2025 19:03:24 GMT+0000 (Coordinated Universal Time)
+ Documentation generated by <a target="_blank" href="https://github.com/jsdoc3/jsdoc">JSDoc 3.6.11</a> on Mon Jun 09 2025 22:45:28 GMT+0000 (Coordinated Universal Time)
</footer>
</div>
</div>
<footer>
- Documentation generated by <a target="_blank" href="https://github.com/jsdoc3/jsdoc">JSDoc 3.6.11</a> on Mon Jun 02 2025 19:03:24 GMT+0000 (Coordinated Universal Time)
+ Documentation generated by <a target="_blank" href="https://github.com/jsdoc3/jsdoc">JSDoc 3.6.11</a> on Mon Jun 09 2025 22:45:28 GMT+0000 (Coordinated Universal Time)
</footer>
</div>
</div>
<footer>
- Documentation generated by <a target="_blank" href="https://github.com/jsdoc3/jsdoc">JSDoc 3.6.11</a> on Mon Jun 02 2025 19:03:24 GMT+0000 (Coordinated Universal Time)
+ Documentation generated by <a target="_blank" href="https://github.com/jsdoc3/jsdoc">JSDoc 3.6.11</a> on Mon Jun 09 2025 22:45:28 GMT+0000 (Coordinated Universal Time)
</footer>
</div>
</div>
<footer>
- Documentation generated by <a target="_blank" href="https://github.com/jsdoc3/jsdoc">JSDoc 3.6.11</a> on Mon Jun 02 2025 19:03:24 GMT+0000 (Coordinated Universal Time)
+ Documentation generated by <a target="_blank" href="https://github.com/jsdoc3/jsdoc">JSDoc 3.6.11</a> on Mon Jun 09 2025 22:45:28 GMT+0000 (Coordinated Universal Time)
</footer>
</div>
</div>
<footer>
- Documentation generated by <a target="_blank" href="https://github.com/jsdoc3/jsdoc">JSDoc 3.6.11</a> on Mon Jun 02 2025 19:03:24 GMT+0000 (Coordinated Universal Time)
+ Documentation generated by <a target="_blank" href="https://github.com/jsdoc3/jsdoc">JSDoc 3.6.11</a> on Mon Jun 09 2025 22:45:28 GMT+0000 (Coordinated Universal Time)
</footer>
</div>
</div>
<footer>
- Documentation generated by <a target="_blank" href="https://github.com/jsdoc3/jsdoc">JSDoc 3.6.11</a> on Mon Jun 02 2025 19:03:24 GMT+0000 (Coordinated Universal Time)
+ Documentation generated by <a target="_blank" href="https://github.com/jsdoc3/jsdoc">JSDoc 3.6.11</a> on Mon Jun 09 2025 22:45:28 GMT+0000 (Coordinated Universal Time)
</footer>
</div>
</div>
<footer>
- Documentation generated by <a target="_blank" href="https://github.com/jsdoc3/jsdoc">JSDoc 3.6.11</a> on Mon Jun 02 2025 19:03:24 GMT+0000 (Coordinated Universal Time)
+ Documentation generated by <a target="_blank" href="https://github.com/jsdoc3/jsdoc">JSDoc 3.6.11</a> on Mon Jun 09 2025 22:45:28 GMT+0000 (Coordinated Universal Time)
</footer>
</div>
</div>
<footer>
- Documentation generated by <a target="_blank" href="https://github.com/jsdoc3/jsdoc">JSDoc 3.6.11</a> on Mon Jun 02 2025 19:03:24 GMT+0000 (Coordinated Universal Time)
+ Documentation generated by <a target="_blank" href="https://github.com/jsdoc3/jsdoc">JSDoc 3.6.11</a> on Mon Jun 09 2025 22:45:28 GMT+0000 (Coordinated Universal Time)
</footer>
</div>
</div>
<footer>
- Documentation generated by <a target="_blank" href="https://github.com/jsdoc3/jsdoc">JSDoc 3.6.11</a> on Mon Jun 02 2025 19:03:24 GMT+0000 (Coordinated Universal Time)
+ Documentation generated by <a target="_blank" href="https://github.com/jsdoc3/jsdoc">JSDoc 3.6.11</a> on Mon Jun 09 2025 22:45:28 GMT+0000 (Coordinated Universal Time)
</footer>
</div>
</div>
<footer>
- Documentation generated by <a target="_blank" href="https://github.com/jsdoc3/jsdoc">JSDoc 3.6.11</a> on Mon Jun 02 2025 19:03:24 GMT+0000 (Coordinated Universal Time)
+ Documentation generated by <a target="_blank" href="https://github.com/jsdoc3/jsdoc">JSDoc 3.6.11</a> on Mon Jun 09 2025 22:45:28 GMT+0000 (Coordinated Universal Time)
</footer>
</div>
</div>
<footer>
- Documentation generated by <a target="_blank" href="https://github.com/jsdoc3/jsdoc">JSDoc 3.6.11</a> on Mon Jun 02 2025 19:03:24 GMT+0000 (Coordinated Universal Time)
+ Documentation generated by <a target="_blank" href="https://github.com/jsdoc3/jsdoc">JSDoc 3.6.11</a> on Mon Jun 09 2025 22:45:28 GMT+0000 (Coordinated Universal Time)
</footer>
</div>
</div>
<footer>
- Documentation generated by <a target="_blank" href="https://github.com/jsdoc3/jsdoc">JSDoc 3.6.11</a> on Mon Jun 02 2025 19:03:25 GMT+0000 (Coordinated Universal Time)
+ Documentation generated by <a target="_blank" href="https://github.com/jsdoc3/jsdoc">JSDoc 3.6.11</a> on Mon Jun 09 2025 22:45:28 GMT+0000 (Coordinated Universal Time)
</footer>
</div>
</div>
<footer>
- Documentation generated by <a target="_blank" href="https://github.com/jsdoc3/jsdoc">JSDoc 3.6.11</a> on Mon Jun 02 2025 19:03:25 GMT+0000 (Coordinated Universal Time)
+ Documentation generated by <a target="_blank" href="https://github.com/jsdoc3/jsdoc">JSDoc 3.6.11</a> on Mon Jun 09 2025 22:45:28 GMT+0000 (Coordinated Universal Time)
</footer>
</div>
</div>
<footer>
- Documentation generated by <a target="_blank" href="https://github.com/jsdoc3/jsdoc">JSDoc 3.6.11</a> on Mon Jun 02 2025 19:03:25 GMT+0000 (Coordinated Universal Time)
+ Documentation generated by <a target="_blank" href="https://github.com/jsdoc3/jsdoc">JSDoc 3.6.11</a> on Mon Jun 09 2025 22:45:28 GMT+0000 (Coordinated Universal Time)
</footer>
</div>
</div>
<footer>
- Documentation generated by <a target="_blank" href="https://github.com/jsdoc3/jsdoc">JSDoc 3.6.11</a> on Mon Jun 02 2025 19:03:24 GMT+0000 (Coordinated Universal Time)
+ Documentation generated by <a target="_blank" href="https://github.com/jsdoc3/jsdoc">JSDoc 3.6.11</a> on Mon Jun 09 2025 22:45:28 GMT+0000 (Coordinated Universal Time)
</footer>
</div>
</div>
<footer>
- Documentation generated by <a target="_blank" href="https://github.com/jsdoc3/jsdoc">JSDoc 3.6.11</a> on Mon Jun 02 2025 19:03:24 GMT+0000 (Coordinated Universal Time)
+ Documentation generated by <a target="_blank" href="https://github.com/jsdoc3/jsdoc">JSDoc 3.6.11</a> on Mon Jun 09 2025 22:45:28 GMT+0000 (Coordinated Universal Time)
</footer>
</div>
</div>
<footer>
- Documentation generated by <a target="_blank" href="https://github.com/jsdoc3/jsdoc">JSDoc 3.6.11</a> on Mon Jun 02 2025 19:03:25 GMT+0000 (Coordinated Universal Time)
+ Documentation generated by <a target="_blank" href="https://github.com/jsdoc3/jsdoc">JSDoc 3.6.11</a> on Mon Jun 09 2025 22:45:28 GMT+0000 (Coordinated Universal Time)
</footer>
</div>
</div>
<footer>
- Documentation generated by <a target="_blank" href="https://github.com/jsdoc3/jsdoc">JSDoc 3.6.11</a> on Mon Jun 02 2025 19:03:25 GMT+0000 (Coordinated Universal Time)
+ Documentation generated by <a target="_blank" href="https://github.com/jsdoc3/jsdoc">JSDoc 3.6.11</a> on Mon Jun 09 2025 22:45:28 GMT+0000 (Coordinated Universal Time)
</footer>
</div>
</div>
<footer>
- Documentation generated by <a target="_blank" href="https://github.com/jsdoc3/jsdoc">JSDoc 3.6.11</a> on Mon Jun 02 2025 19:03:25 GMT+0000 (Coordinated Universal Time)
+ Documentation generated by <a target="_blank" href="https://github.com/jsdoc3/jsdoc">JSDoc 3.6.11</a> on Mon Jun 09 2025 22:45:28 GMT+0000 (Coordinated Universal Time)
</footer>
</div>
</div>
<footer>
- Documentation generated by <a target="_blank" href="https://github.com/jsdoc3/jsdoc">JSDoc 3.6.11</a> on Mon Jun 02 2025 19:03:25 GMT+0000 (Coordinated Universal Time)
+ Documentation generated by <a target="_blank" href="https://github.com/jsdoc3/jsdoc">JSDoc 3.6.11</a> on Mon Jun 09 2025 22:45:28 GMT+0000 (Coordinated Universal Time)
</footer>
</div>
</div>
},
/**
- * Parse this elements form input.
+ * Parse this element's form input.
*
* The `parse()` function recursively walks the form element tree and
* triggers input value reading and validation for each encountered element.
* @returns {Promise<void>}
* Returns a promise resolving once this element's value and the values of
* all child elements have been parsed. The returned promise is rejected
- * if any parsed values are not meeting the validation constraints of their
+ * if any parsed values do not meet the validation constraints of their
* respective elements.
*/
parse() {
* 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.
+ * It serves as the main entry point into the `LuCI.form` for typical view code.
*
* @param {string} config
- * The UCI configuration to map. It is automatically loaded along when the
+ * The UCI configuration to map. It is automatically loaded along with the
* resulting map instance.
*
* @param {string} [title]
- * The title caption of the form. A form title is usually rendered as separate
+ * The title caption of the form. A form title is usually rendered as a separate
* headline element before the actual form contents. If omitted, the
* corresponding headline element will not be rendered.
*
* @param {string} [description]
- * The description text of the form which is usually rendered as text
+ * The description text of the form which is usually rendered as a text
* paragraph below the form title and before the actual form contents.
* If omitted, the corresponding paragraph element will not be rendered.
*/
*/
/**
- * Find all DOM nodes within this Map which match the given search
+ * Return all DOM nodes within this Map which match the given search
* parameters. This function is essentially a convenience wrapper around
* `querySelectorAll()`.
*
},
/**
- * Find the first DOM node within this Map which matches the given search
+ * Return the first DOM node within this Map which matches the given search
* parameters. This function is essentially a convenience wrapper around
* `findElements()` which only returns the first found node.
*
*
* @param {string} config
* The additional UCI configuration file to tie to the map. If the given
- * config already is in the list of required files, it will be ignored.
+ * config is in the list of required files already, it will be ignored.
*/
chain(config) {
if (this.parsechain.indexOf(config) == -1)
/**
* Add a configuration section to the map.
*
- * LuCI forms follow the structure of the underlying UCI configurations,
- * means that a map, which represents a single UCI configuration, is
+ * LuCI forms follow the structure of the underlying UCI configurations.
+ * This means that a map, which represents a single UCI configuration, is
* divided into multiple sections which in turn contain an arbitrary
* number of options.
*
* @returns {Promise<void>}
* Returns a promise resolving once the entire form completed loading all
* data. The promise may reject with an error if any configuration failed
- * to load or if any of the child elements load functions rejected with
+ * to load or if any of the child elements' load functions rejected with
* an error.
*/
load() {
*
* @returns {Promise<void>}
* Returns a promise resolving once the entire form completed parsing all
- * input values. The returned promise is rejected if any parsed values are
- * not meeting the validation constraints of their respective elements.
+ * input values. The returned promise is rejected if any parsed values do
+ * not meet the validation constraints of their respective elements.
*/
parse() {
const tasks = [];
*
* @param {boolean} [silent=false]
* If set to `true`, trigger an alert message to the user in case saving
- * the form data failures. Otherwise fail silently.
+ * the form data fails. Otherwise fail silently.
*
* @returns {Promise<void>}
* Returns a promise resolving once the entire save operation is complete.
* unsaved user inputs to their initial form state.
*
* @returns {Promise<Node>}
- * Returns a promise resolving to the toplevel form DOM node once the
+ * Returns a promise resolving to the top-level form DOM node once the
* re-rendering is complete.
*/
reset() {
* Render the form markup.
*
* @returns {Promise<Node>}
- * Returns a promise resolving to the toplevel form DOM node once the
+ * Returns a promise resolving to the top-level form DOM node once the
* rendering is complete.
*/
render() {
*
* @param {Object<string, Object<string, *>|Array<Object<string, *>>>} data
* The JavaScript object to use as data source. Internally, the object is
- * converted into an UCI-like format. Its toplevel keys are treated like UCI
+ * converted into an UCI-like format. Its top-level keys are treated like UCI
* section types while the object or array-of-object values are treated as
* section contents.
*
* @param {string} [title]
- * The title caption of the form. A form title is usually rendered as separate
+ * The title caption of the form. A form title is usually rendered as a separate
* headline element before the actual form contents. If omitted, the
* corresponding headline element will not be rendered.
*
* @hideconstructor
* @classdesc
*
- * The `AbstractSection` class serves as abstract base for the different form
+ * The `AbstractSection` class serves as an abstract base for the different form
* section styles implemented by `LuCI.form`. It provides the common logic for
* enumerating underlying configuration section instances, for registering
- * form options and for handling tabs to segment child options.
+ * form options and for handling tabs in order to segment child options.
*
* This class is private and not directly accessible by user code.
*/
* the form section element.
*
* The default implementation always returns `true`. User code or
- * classes extending `AbstractSection` may overwrite this function with
+ * classes extending `AbstractSection` may override this function with
* custom implementations.
*
* @abstract
* @returns {Promise<void>}
* Returns a promise resolving once the values of all child elements have
* been loaded. The promise may reject with an error if any of the child
- * elements load functions rejected with an error.
+ * elements' load functions rejected with an error.
*/
load() {
const section_ids = this.cfgsections();
*
* @returns {Promise<void>}
* Returns a promise resolving once the values of all child elements have
- * been parsed. The returned promise is rejected if any parsed values are
- * not meeting the validation constraints of their respective elements.
+ * been parsed. The returned promise is rejected if any parsed values do
+ * not meet the validation constraints of their respective elements.
*/
parse() {
const section_ids = this.cfgsections();
*
* This function is sensitive to the amount of arguments passed to it;
* if only one argument is specified, the configuration values of all
- * options within this section are returned as dictionary.
+ * options within this section are returned as a dictionary.
*
* If both the section ID and an option name are supplied, this function
* returns the configuration value of the specified option only.
*
* This function is sensitive to the amount of arguments passed to it;
* if only one argument is specified, the widget input values of all
- * options within this section are returned as dictionary.
+ * options within this section are returned as a dictionary.
*
* If both the section ID and an option name are supplied, this function
* returns the widget input value of the specified option only.
*
* This function is sensitive to the amount of arguments passed to it;
* if only one argument is specified, the LuCI.ui widget instances of all
- * options within this section are returned as dictionary.
+ * options within this section are returned as a dictionary.
*
* If both the section ID and an option name are supplied, this function
* returns the LuCI.ui widget instance value of the specified option only.
*
* This function is sensitive to the amount of arguments passed to it;
* if no option name is specified, all options within this section are
- * returned as dictionary.
+ * returned as a dictionary.
*
* If an option name is supplied, this function returns the matching
* LuCI.form.AbstractValue instance only.
* 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.
+ * The default of null means inherit from the parent form.
*
* @name LuCI.form.AbstractValue.prototype#uciconfig
* @type string
* By default, the section ID is inherited from the parent section element.
* By setting this property, a deviating section may be specified.
*
- * The default is null, means inheriting from the parent section.
+ * The default of null means inherit from the parent section.
*
* @name LuCI.form.AbstractValue.prototype#ucisection
* @type string
* the constructor, is used as UCI option name. By setting this property,
* a deviating UCI option may be specified.
*
- * The default is null, means using the option element name.
+ * The default of null means use the option element name.
*
* @name LuCI.form.AbstractValue.prototype#ucioption
* @type string
* Options which are displayed in the table portion of a `GridSection`
* instance are rendered as readonly text by default. By setting the
* `editable` property of a child option element to `true`, that element
- * is rendered as full input widget within its cell instead of a text only
+ * is rendered as a full input widget within its cell instead of a text only
* preview.
*
* This property has no effect on options that are not children of grid
*
* This property defaults to the readonly state of the parent form element.
* When set to `true`, the underlying widget is rendered in disabled state,
- * means its contents cannot be changed and the widget cannot be interacted
- * with.
+ * meaning its contents cannot be changed and the widget cannot be
+ * interacted with.
*
* @name LuCI.form.AbstractValue.prototype#readonly
* @type boolean
/**
* Register a custom value change handler.
*
- * If this property is set to a function value, the function is invoked
- * whenever the value of the underlying UI input element is changing.
+ * If this property is set to a function, it is invoked
+ * whenever the value of the underlying UI input element changes.
*
* The invoked handler function will receive the DOM click element as
* first and the underlying configuration section ID as well as the input
* Dependency constraints allow making the presence of option elements
* 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.
+ * hidden from the view and its current value omitted when saving.
*
* Multiple constraints (that is, multiple calls to `depends()`) are
* treated as alternatives, forming a logical "or" expression.
*
* By passing an object of name => value pairs as first argument, it is
- * possible to depend on multiple options simultaneously, allowing to form
+ * possible to depend on multiple options simultaneously, forming
* a logical "and" expression.
*
* Option names may be given in "dot notation" which allows to reference
*
* The default implementation of this method reads and returns the
* underlying UCI option value (or the related JavaScript property for
- * `JSONMap` instances). It may be overwritten by user code to load data
- * from nonstandard sources.
+ * `JSONMap` instances). It may be overridden by user code to load data
+ * from non-standard sources.
*
* @param {string} section_id
* The configuration section ID
*
* The default implementation of this method returns the cached return
* value of [load()]{@link LuCI.form.AbstractValue#load}. It may be
- * overwritten by user code to obtain the configuration value in a
+ * overridden by user code to obtain the configuration value in a
* different way.
*
* @param {string} section_id
*
* The default implementation of this method returns the current input
* value of the underlying [LuCI.ui]{@link LuCI.ui.AbstractElement} widget.
- * It may be overwritten by user code to handle input values differently.
+ * It may be overridden by user code to handle input values differently.
*
* @param {string} section_id
* The configuration section ID
/**
* Obtain a textual input representation.
*
- * The default implementation of this method returns the HTML escaped
+ * The default implementation of this method returns the HTML-escaped
* current input value of the underlying
* [LuCI.ui]{@link LuCI.ui.AbstractElement} widget. User code or specific
- * option element implementations may overwrite this function to apply a
+ * option element implementations may override this function to apply a
* different logic, e.g. to return `Yes` or `No` depending on the checked
* state of checkbox elements.
*
* the user input, e.g. on keyup or blur events.
*
* The default implementation of this method does nothing and always
- * returns `true`. User code may overwrite this method to provide
+ * returns `true`. User code may override this method to provide
* additional validation logic which is not covered by data type
* constraints.
*
*
* The default implementation simply sets the given input value in the
* UCI configuration (or the associated JavaScript object property in
- * case of `JSONMap` forms). It may be overwritten by user code to
+ * case of `JSONMap` forms). It may be overridden by user code to
* implement alternative save logic, e.g. to transform the input value
* before it is written.
*
*
* The default implementation simply removes the associated option from the
* UCI configuration (or the associated JavaScript object property in
- * case of `JSONMap` forms). It may be overwritten by user code to
+ * case of `JSONMap` forms). It may be overridden by user code to
* implement alternative removal logic, e.g. to retain the original value.
*
* @param {string} section_id
* @hideconstructor
* @classdesc
*
- * The `TypedSection` class maps all or - if `filter()` is overwritten - a
+ * The `TypedSection` class maps all or - if `filter()` is overridden - a
* subset of the underlying UCI configuration sections of a given type.
*
* Layout wise, the configuration section instances mapped by the section
/**
* If set to `true`, the user may add or remove instances from the form
- * section widget, otherwise only preexisting sections may be edited.
+ * section widget, otherwise only pre-existing sections may be edited.
* The default is `false`.
*
* @name LuCI.form.TypedSection.prototype#addremove
/**
* 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
+ * the section form element. Set to a string, it will be used as-is.
+ * 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`.
*
* 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.
+ * The default of `null` means inherit from the parent form.
*
* @name LuCI.form.TypedSection.prototype#uciconfig
* @type string
* @hideconstructor
* @classdesc
*
- * The `TableSection` class maps all or - if `filter()` is overwritten - a
+ * The `TableSection` class maps all or - if `filter()` is overridden - a
* subset of the underlying UCI configuration sections of a given type.
*
* Layout wise, the configuration section instances mapped by the section
/**
* 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
- * string, it will be used as `String.format()` pattern with the name of
- * the underlying UCI section as first argument, if set to a function, the
+ * column of the table unless `anonymous` is set to true. Set to a
+ * string, it will be used as a `String.format()` pattern with the name of
+ * the underlying UCI section as first argument. Set to a function, the
* function will be invoked with the section name as first argument and
- * its return value is used as caption, after converting it to a string.
+ * its return value used as caption, after converting it to a string.
* If this property is not set, the default is the name of the underlying
* UCI configuration section.
*
/**
* Override the per-section instance modal popup title caption shown when
- * clicking the `More…` button in a section specifying `max_cols`. If set
- * to a string, it will be used as `String.format()` pattern with the name
- * of the underlying UCI section as first argument, if set to a function,
+ * clicking the `More…` button in a section specifying `max_cols`. Set
+ * to a string, it will be used as a `String.format()` pattern with the name
+ * of the underlying UCI section as first argument. Set to a function,
* the function will be invoked with the section name as first argument and
* its return value is used as caption, after converting it to a string.
* If this property is not set, the default is the name of the underlying
*/
/**
- * If set to `true`, alternating `cbi-rowstyle-1` and `cbi-rowstyle-2` CSS
+ * Set to `true`, alternating `cbi-rowstyle-1` and `cbi-rowstyle-2` CSS
* classes are added to the table row elements. Not all LuCI themes
* implement these row style classes. The default is `false`.
*
/**
* Enables a per-section instance row `Edit` button which triggers a certain
- * action when clicked. If set to a string, the string value is used
- * as `String.format()` pattern with the name of the underlying UCI section
- * as first format argument. The result is then interpreted as URL which
+ * action when clicked. Set to a string, the string value is used
+ * as a `String.format()` pattern with the name of the underlying UCI section
+ * as first format argument. The result is then interpreted as a URL which
* LuCI will navigate to when the user clicks the edit button.
*
* If set to a function, this function will be registered as click event
*/
/**
- * If set to `true`, a sort button is added to the last column, allowing
+ * Set to `true`, a sort button is added to the last column, allowing
* the user to reorder the section instances mapped by the section form
* element.
*
*/
/**
- * If set to `true`, the header row with the options descriptions will
+ * Set to `true`, the header row with the options descriptions will
* not be displayed. By default, descriptions row is automatically displayed
* when at least one option has a description.
*
/**
* Add further options to the per-section instanced modal popup.
*
- * This function may be overwritten by user code to perform additional
+ * This function may be overridden by user code to perform additional
* setup steps before displaying the more options modal which is useful to
* e.g. query additional data or to inject further option elements.
*
* @hideconstructor
* @classdesc
*
- * The `GridSection` class maps all or - if `filter()` is overwritten - a
+ * The `GridSection` class maps all or - if `filter()` is overridden - a
* subset of the underlying UCI configuration sections of a given type.
*
* A grid section functions similar to a {@link LuCI.form.TableSection} but
*
* 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 explicitly made writable by setting the `editable`
+ * option element is explicitly made writeable by setting the `editable`
* property to `true`.
*
* Additionally, the grid section honours a `modalonly` property of child
* Before options can be moved into a tab pane, the corresponding tab
* has to be defined first, which is done by calling this function.
*
- * Note that tabs are only effective in modal popups, options added with
+ * Note that tabs are only effective in modal popups. Options added with
* `option()` will not be assigned to a specific tab and are rendered in
* the table view only.
*
},
/**
- * If set to `true`, the user may remove or recreate the sole mapped
+ * Set to `true`, the user may remove or recreate the sole mapped
* configuration instance from the form section widget, otherwise only a
- * preexisting section may be edited. The default is `false`.
+ * pre-existing section may be edited. The default is `false`.
*
* @name LuCI.form.NamedSection.prototype#addremove
* @type boolean
* 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.
+ * The default of `null` means inherit from the parent form.
*
* @name LuCI.form.NamedSection.prototype#uciconfig
* @type string
*/
/**
- * The `NamedSection` class overwrites the generic `cfgsections()`
+ * The `NamedSection` class overrides the generic `cfgsections()`
* implementation to return a one-element array containing the mapped
* section ID as sole element. User code should not normally change this.
*
__name__: 'CBI.Value',
/**
- * If set to `true`, the field is rendered as password input, otherwise
- * as plain text input.
+ * If set to `true`, the field is rendered as a password input, otherwise
+ * as a plain text input.
*
* @name LuCI.form.Value.prototype#password
* @type boolean
* @hideconstructor
* @classdesc
*
- * The `DynamicList` class represents a multi value widget allowing the user
+ * The `DynamicList` class represents a multi-value widget allowing the user
* to enter multiple unique values, optionally selected from a set of
* predefined choices. It builds upon the {@link LuCI.ui.DynamicList} widget.
*
/**
* Set a tooltip for the flag option.
*
- * If set to a string, it will be used as-is as a tooltip.
+ * 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
+ * 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.
*
/**
* Allows to specify the [display_items]{@link LuCI.ui.Dropdown.InitOptions}
* property of the underlying dropdown widget. If omitted, the value of
- * the `size` property is used or `3` when `size` is unspecified as well.
+ * the `size` property is used or `3` when `size` is also unspecified.
*
* @name LuCI.form.MultiValue.prototype#display_size
* @type number
/**
* Allows to specify the [dropdown_items]{@link LuCI.ui.Dropdown.InitOptions}
* property of the underlying dropdown widget. If omitted, the value of
- * the `size` property is used or `-1` when `size` is unspecified as well.
+ * the `size` property is used or `-1` when `size` is also unspecified.
*
* @name LuCI.form.MultiValue.prototype#dropdown_size
* @type number
* @hideconstructor
* @classdesc
*
- * The `DummyValue` element wraps an {@link LuCI.ui.Hiddenfield} widget and
+ * The `DummyValue` element wraps a {@link LuCI.ui.Hiddenfield} widget and
* renders the underlying UCI option or default value as readonly text.
*
* @param {LuCI.form.Map|LuCI.form.JSONMap} form
*/
/**
- * Render the UCI option value as hidden using the HTML display: none style property.
+ * Render the UCI option value as hidden using the HTML 'display: none'
+ * style property.
*
- * By default, the value is displayed
+ * By default, the value is displayed.
*
* @name LuCI.form.DummyValue.prototype#hidden
* @type boolean
renderWidget(section_id, option_index, cfgvalue) {
const value = (cfgvalue != null) ? cfgvalue : this.default;
const hiddenEl = new ui.Hiddenfield(value, { id: this.cbid(section_id) });
- const outputEl = E('div', { 'style': this.hidden ? 'display:none' : null });
+ const outputEl = E('output', { 'style': this.hidden ? 'display:none' : null,
+ 'for': this.cbid(section_id)});
if (this.href && !((this.readonly != null) ? this.readonly : this.map.readonly))
outputEl.appendChild(E('a', { 'href': this.href }));
* @hideconstructor
* @classdesc
*
- * The `DummyValue` element wraps an {@link LuCI.ui.Hiddenfield} widget and
+ * The `ButtonValue` element wraps a {@link LuCI.ui.Hiddenfield} widget and
* renders the underlying UCI option or default value as readonly text.
*
* @param {LuCI.form.Map|LuCI.form.JSONMap} form
*
* By default, the option title - which is passed as fourth argument to the
* constructor - is used as caption for the button element. When setting
- * this property to a string, it is used as `String.format()` pattern with
+ * this property to a string, it is used as a `String.format()` pattern with
* the underlying UCI section name passed as first format argument. When
* set to a function, it is invoked passing the section ID as sole argument
* and the resulting return value is converted to a string before being
* used as button caption.
*
- * The default is `null`, means the option title is used as caption.
+ * The default of `null` means the option title is used as caption.
*
* @name LuCI.form.ButtonValue.prototype#inputtitle
* @type string|function
* Suitable values which are implemented by most themes are `positive`,
* `negative` and `primary`.
*
- * The default is `null`, means a neutral button styling is used.
+ * The default of `null` means a neutral button styling is used.
*
* @name LuCI.form.ButtonValue.prototype#inputstyle
* @type string
renderWidget(section_id, option_index, cfgvalue) {
const value = (cfgvalue != null) ? cfgvalue : this.default;
const hiddenEl = new ui.Hiddenfield(value, { id: this.cbid(section_id) });
- const outputEl = E('div');
+ const outputEl = E('output', {'for': this.cbid(section_id)});
const btn_title = this.titleFn('inputtitle', section_id) ?? this.titleFn('title', section_id);
if (value !== false)
* @hideconstructor
* @classdesc
*
- * The `HiddenValue` element wraps an {@link LuCI.ui.Hiddenfield} widget.
+ * The `HiddenValue` element wraps a {@link LuCI.ui.Hiddenfield} widget.
*
* Hidden value widgets used to be necessary in legacy code which actually
* submitted the underlying HTML form the server. With client side handling of
* @hideconstructor
* @classdesc
*
- * The `FileUpload` element wraps an {@link LuCI.ui.FileUpload} widget and
+ * The `FileUpload` element wraps a {@link LuCI.ui.FileUpload} widget and
* offers the ability to browse, upload and select remote files.
*
* @param {LuCI.form.Map|LuCI.form.JSONMap} form
* Toggle display of hidden files.
*
* Display hidden files when rendering the remote directory listing.
- * Note that this is merely a cosmetic feature, hidden files are always
+ * Note that this is merely a cosmetic feature: hidden files are always
* included in received remote file listings.
*
- * The default is `false`, means hidden files are not displayed.
+ * The default of `false` means hidden files are not displayed.
*
* @name LuCI.form.FileUpload.prototype#show_hidden
* @type boolean
*
* When set to `true`, the underlying widget provides a button which lets
* the user select and upload local files to the remote system.
- * Note that this is merely a cosmetic feature, remote upload access is
+ * Note that this is merely a cosmetic feature: remote upload access is
* controlled by the session ACL rules.
*
- * The default is `true`, means file upload functionality is displayed.
+ * The default of `true` means file upload functionality is displayed.
*
* @name LuCI.form.FileUpload.prototype#enable_upload
* @type boolean
*
* When set to `true`, the underlying widget provides a buttons which let
* the user delete files from remote directories. Note that this is merely
- * a cosmetic feature, remote delete permissions are controlled by the
+ * a cosmetic feature: remote delete permissions are controlled by the
* session ACL rules.
*
* The default is `true`, means file removal buttons are displayed.
* Specify the root directory for file browsing.
*
* This property defines the topmost directory the file browser widget may
- * navigate to, the UI will not allow browsing directories outside this
- * prefix. Note that this is merely a cosmetic feature, remote file access
+ * navigate to. The UI will not allow browsing directories outside this
+ * prefix. Note that this is merely a cosmetic feature: remote file access
* and directory listing permissions are controlled by the session ACL
* rules.
*
<footer>
- Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.6.11</a> on Mon Jun 02 2025 19:03:24 GMT+0000 (Coordinated Universal Time)
+ Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.6.11</a> on Mon Jun 09 2025 22:45:27 GMT+0000 (Coordinated Universal Time)
</footer>
</div>
</div>
<footer>
- Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.6.11</a> on Mon Jun 02 2025 19:03:24 GMT+0000 (Coordinated Universal Time)
+ Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.6.11</a> on Mon Jun 09 2025 22:45:27 GMT+0000 (Coordinated Universal Time)
</footer>
</div>
</div>
<footer>
- Documentation generated by <a target="_blank" href="https://github.com/jsdoc3/jsdoc">JSDoc 3.6.11</a> on Mon Jun 02 2025 19:03:24 GMT+0000 (Coordinated Universal Time)
+ Documentation generated by <a target="_blank" href="https://github.com/jsdoc3/jsdoc">JSDoc 3.6.11</a> on Mon Jun 09 2025 22:45:27 GMT+0000 (Coordinated Universal Time)
</footer>
</div>
</div>
<footer>
- Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.6.11</a> on Mon Jun 02 2025 19:03:24 GMT+0000 (Coordinated Universal Time)
+ Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.6.11</a> on Mon Jun 09 2025 22:45:27 GMT+0000 (Coordinated Universal Time)
</footer>
</div>
</div>
<footer>
- Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.6.11</a> on Mon Jun 02 2025 19:03:24 GMT+0000 (Coordinated Universal Time)
+ Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.6.11</a> on Mon Jun 09 2025 22:45:27 GMT+0000 (Coordinated Universal Time)
</footer>
</div>
</div>
<footer>
- Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.6.11</a> on Mon Jun 02 2025 19:03:24 GMT+0000 (Coordinated Universal Time)
+ Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.6.11</a> on Mon Jun 09 2025 22:45:27 GMT+0000 (Coordinated Universal Time)
</footer>
</div>
</div>
<footer>
- Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.6.11</a> on Mon Jun 02 2025 19:03:24 GMT+0000 (Coordinated Universal Time)
+ Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.6.11</a> on Mon Jun 09 2025 22:45:27 GMT+0000 (Coordinated Universal Time)
</footer>
</div>
</div>
<footer>
- Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.6.11</a> on Mon Jun 02 2025 19:03:24 GMT+0000 (Coordinated Universal Time)
+ Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.6.11</a> on Mon Jun 09 2025 22:45:27 GMT+0000 (Coordinated Universal Time)
</footer>
</div>
</div>