From: systemcrash args
array beginning with
diff --git a/jsapi/LuCI.dom.html b/jsapi/LuCI.dom.html
index 3ac938f6e7..64b3d5e45a 100644
--- a/jsapi/LuCI.dom.html
+++ b/jsapi/LuCI.dom.html
@@ -925,6 +925,8 @@
key
value is used as captio
@@ -7685,7 +7693,7 @@ before it is written.
diff --git a/jsapi/LuCI.form.DynamicList.html b/jsapi/LuCI.form.DynamicList.html
index cce2fe905e..ecf2d339c0 100644
--- a/jsapi/LuCI.form.DynamicList.html
+++ b/jsapi/LuCI.form.DynamicList.html
@@ -925,6 +925,8 @@
@@ -7229,7 +7237,7 @@ was neither a string nor a function.
@@ -7536,7 +7544,7 @@ before it is written.
diff --git a/jsapi/LuCI.form.FileUpload.html b/jsapi/LuCI.form.FileUpload.html
index fae4fc9746..38f10b6d40 100644
--- a/jsapi/LuCI.form.FileUpload.html
+++ b/jsapi/LuCI.form.FileUpload.html
@@ -925,6 +925,8 @@
anonymous
+ cloneable
+
extedit
max_cols
@@ -1675,6 +1677,8 @@
anonymous
+ cloneable
+
parentoption
tabbed
@@ -1839,6 +1843,8 @@
anonymous
+ cloneable
+
tabbed
uciconfig
@@ -2806,6 +2812,8 @@
changes
+ clone
+
createSID
get
@@ -3655,7 +3663,7 @@ offers the ability to browse, upload and select remote files.
@@ -7536,7 +7544,7 @@ was neither a string nor a function.
@@ -7843,7 +7851,7 @@ before it is written.
diff --git a/jsapi/LuCI.form.FlagValue.html b/jsapi/LuCI.form.FlagValue.html
index fa332d6662..e3a5f28ed7 100644
--- a/jsapi/LuCI.form.FlagValue.html
+++ b/jsapi/LuCI.form.FlagValue.html
@@ -925,6 +925,8 @@
anonymous
+ cloneable
+
extedit
max_cols
@@ -1675,6 +1677,8 @@
anonymous
+ cloneable
+
parentoption
tabbed
@@ -1839,6 +1843,8 @@
anonymous
+ cloneable
+
tabbed
uciconfig
@@ -2806,6 +2812,8 @@
changes
+ clone
+
createSID
get
@@ -3655,7 +3663,7 @@ implement a simple checkbox element.
@@ -5643,7 +5651,7 @@ argument, this parameter is ignored.
@@ -6625,7 +6633,7 @@ so it may return promises if overridden by user code.
@@ -7050,7 +7058,7 @@ entities decoded.
@@ -7420,7 +7428,7 @@ was neither a string nor a function.
@@ -7727,7 +7735,7 @@ before it is written.
diff --git a/jsapi/LuCI.form.GridSection.html b/jsapi/LuCI.form.GridSection.html
index 8d78d945c7..11e7e3c895 100644
--- a/jsapi/LuCI.form.GridSection.html
+++ b/jsapi/LuCI.form.GridSection.html
@@ -925,6 +925,8 @@
anonymous
+ cloneable
+
extedit
max_cols
@@ -1675,6 +1677,8 @@
anonymous
+ cloneable
+
parentoption
tabbed
@@ -1839,6 +1843,8 @@
anonymous
+ cloneable
+
tabbed
uciconfig
@@ -2806,6 +2812,8 @@
changes
+ clone
+
createSID
get
@@ -3668,7 +3676,7 @@ documentation for details.
@@ -4026,6 +4034,56 @@ new sections. The default is false
.
+ Default Value:
+ - false
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ cloneableboolean
+
+
+
+
+
+
+
+ Set to true
, a clone button is added to the button column, allowing
+the user to clone section instances mapped by the section form element.
+The default is false
.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
- Default Value:
- false
@@ -4579,7 +4637,7 @@ The default is null
, means inheriting from the parent form.
@@ -6135,7 +6193,7 @@ descendant of AbstractValue
.
@@ -6390,7 +6448,7 @@ entities decoded.
@@ -7078,7 +7136,7 @@ was neither a string nor a function.
diff --git a/jsapi/LuCI.form.HiddenValue.html b/jsapi/LuCI.form.HiddenValue.html
index 8c1da3a599..692e198dd4 100644
--- a/jsapi/LuCI.form.HiddenValue.html
+++ b/jsapi/LuCI.form.HiddenValue.html
@@ -925,6 +925,8 @@
anonymous
+ cloneable
+
extedit
max_cols
@@ -1675,6 +1677,8 @@
anonymous
+ cloneable
+
parentoption
tabbed
@@ -1839,6 +1843,8 @@
anonymous
+ cloneable
+
tabbed
uciconfig
@@ -2806,6 +2812,8 @@
changes
+ clone
+
createSID
get
@@ -3660,7 +3668,7 @@ distorted form layout when rendering the option element.
@@ -7233,7 +7241,7 @@ was neither a string nor a function.
@@ -7540,7 +7548,7 @@ before it is written.
diff --git a/jsapi/LuCI.form.JSONMap.html b/jsapi/LuCI.form.JSONMap.html
index bc531d9caa..2fc122b5e5 100644
--- a/jsapi/LuCI.form.JSONMap.html
+++ b/jsapi/LuCI.form.JSONMap.html
@@ -925,6 +925,8 @@
anonymous
+ cloneable
+
extedit
max_cols
@@ -1675,6 +1677,8 @@
anonymous
+ cloneable
+
parentoption
tabbed
@@ -1839,6 +1843,8 @@
anonymous
+ cloneable
+
tabbed
uciconfig
@@ -2806,6 +2812,8 @@
changes
+ clone
+
createSID
get
@@ -5998,7 +6006,7 @@ was neither a string nor a function.
diff --git a/jsapi/LuCI.form.ListValue.html b/jsapi/LuCI.form.ListValue.html
index 9037142233..d238dbbbc9 100644
--- a/jsapi/LuCI.form.ListValue.html
+++ b/jsapi/LuCI.form.ListValue.html
@@ -925,6 +925,8 @@
anonymous
+ cloneable
+
extedit
max_cols
@@ -1675,6 +1677,8 @@
anonymous
+ cloneable
+
parentoption
tabbed
@@ -1839,6 +1843,8 @@
anonymous
+ cloneable
+
tabbed
uciconfig
@@ -2806,6 +2812,8 @@
changes
+ clone
+
createSID
get
@@ -3656,7 +3664,7 @@ It builds upon the LuCI.ui.Select
@@ -7376,7 +7384,7 @@ was neither a string nor a function.
@@ -7711,7 +7719,7 @@ before it is written.
diff --git a/jsapi/LuCI.form.Map.html b/jsapi/LuCI.form.Map.html
index b1a289c445..d59bf66c0c 100644
--- a/jsapi/LuCI.form.Map.html
+++ b/jsapi/LuCI.form.Map.html
@@ -925,6 +925,8 @@
anonymous
+ cloneable
+
extedit
max_cols
@@ -1675,6 +1677,8 @@
anonymous
+ cloneable
+
parentoption
tabbed
@@ -1839,6 +1843,8 @@
anonymous
+ cloneable
+
tabbed
uciconfig
@@ -2806,6 +2812,8 @@
changes
+ clone
+
createSID
get
@@ -5977,7 +5985,7 @@ was neither a string nor a function.
diff --git a/jsapi/LuCI.form.MultiValue.html b/jsapi/LuCI.form.MultiValue.html
index 3b2e27ed3d..4b67d5a9c9 100644
--- a/jsapi/LuCI.form.MultiValue.html
+++ b/jsapi/LuCI.form.MultiValue.html
@@ -925,6 +925,8 @@
anonymous
+ cloneable
+
extedit
max_cols
@@ -1675,6 +1677,8 @@
anonymous
+ cloneable
+
parentoption
tabbed
@@ -1839,6 +1843,8 @@
anonymous
+ cloneable
+
tabbed
uciconfig
@@ -2806,6 +2812,8 @@
changes
+ clone
+
createSID
get
@@ -3656,7 +3664,7 @@ select dropdown element.
@@ -7377,7 +7385,7 @@ was neither a string nor a function.
@@ -7684,7 +7692,7 @@ before it is written.
diff --git a/jsapi/LuCI.form.NamedSection.html b/jsapi/LuCI.form.NamedSection.html
index 9793455eda..48a77eac38 100644
--- a/jsapi/LuCI.form.NamedSection.html
+++ b/jsapi/LuCI.form.NamedSection.html
@@ -925,6 +925,8 @@
anonymous
+ cloneable
+
extedit
max_cols
@@ -1675,6 +1677,8 @@
anonymous
+ cloneable
+
parentoption
tabbed
@@ -1839,6 +1843,8 @@
anonymous
+ cloneable
+
tabbed
uciconfig
@@ -2806,6 +2812,8 @@
changes
+ clone
+
createSID
get
@@ -3657,7 +3665,7 @@ specified when constructing the class instance.
@@ -4189,7 +4197,7 @@ this property will hold a reference to the parent option instance.
@@ -5636,7 +5644,7 @@ not meeting the validation constraints of their respective elements.
@@ -6582,7 +6590,7 @@ was neither a string nor a function.
diff --git a/jsapi/LuCI.form.RichListValue.html b/jsapi/LuCI.form.RichListValue.html
index f034084f1e..fc4b7c4785 100644
--- a/jsapi/LuCI.form.RichListValue.html
+++ b/jsapi/LuCI.form.RichListValue.html
@@ -925,6 +925,8 @@
anonymous
+ cloneable
+
extedit
max_cols
@@ -1675,6 +1677,8 @@
anonymous
+ cloneable
+
parentoption
tabbed
@@ -1839,6 +1843,8 @@
anonymous
+ cloneable
+
tabbed
uciconfig
@@ -2806,6 +2812,8 @@
changes
+ clone
+
createSID
get
@@ -3657,7 +3665,7 @@ It builds upon the LuCI.form.ListValue<
@@ -7528,7 +7536,7 @@ was neither a string nor a function.
@@ -7863,7 +7871,7 @@ before it is written.
diff --git a/jsapi/LuCI.form.SectionValue.html b/jsapi/LuCI.form.SectionValue.html
index c31da9e3dc..3ae54c167d 100644
--- a/jsapi/LuCI.form.SectionValue.html
+++ b/jsapi/LuCI.form.SectionValue.html
@@ -925,6 +925,8 @@
anonymous
+ cloneable
+
extedit
max_cols
@@ -1675,6 +1677,8 @@
anonymous
+ cloneable
+
parentoption
tabbed
@@ -1839,6 +1843,8 @@
anonymous
+ cloneable
+
tabbed
uciconfig
@@ -2806,6 +2812,8 @@
changes
+ clone
+
createSID
get
@@ -3655,7 +3663,7 @@ element container, allowing to nest form sections into other sections.
@@ -5099,7 +5107,7 @@ within the given specific section.
@@ -5495,7 +5503,7 @@ argument, this parameter is ignored.
@@ -6293,7 +6301,7 @@ returns false
.
@@ -6476,7 +6484,7 @@ so it may return promises if overridden by user code.
@@ -6627,7 +6635,7 @@ validation constraints.
@@ -7270,7 +7278,7 @@ was neither a string nor a function.
@@ -7416,7 +7424,7 @@ or a plain text string. If omitted, the key
value is used as captio
@@ -7567,7 +7575,7 @@ its write()
implementation is a no-op.
diff --git a/jsapi/LuCI.form.TableSection.html b/jsapi/LuCI.form.TableSection.html
index 01af1350b2..555b3b9fa2 100644
--- a/jsapi/LuCI.form.TableSection.html
+++ b/jsapi/LuCI.form.TableSection.html
@@ -925,6 +925,8 @@
anonymous
+ cloneable
+
extedit
max_cols
@@ -1675,6 +1677,8 @@
anonymous
+ cloneable
+
parentoption
tabbed
@@ -1839,6 +1843,8 @@
anonymous
+ cloneable
+
tabbed
uciconfig
@@ -2806,6 +2812,8 @@
changes
+ clone
+
createSID
get
@@ -4387,6 +4395,56 @@ new sections. The default is false
.
+ Default Value:
+ - false
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ cloneableboolean
+
+
+
+
+
+
+
+ Set to true
, a clone button is added to the button column, allowing
+the user to clone section instances mapped by the section form element.
+The default is false
.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
- Default Value:
- false
@@ -4569,7 +4627,7 @@ The default is null
, means inheriting from the parent form.
@@ -6382,7 +6440,7 @@ entities decoded.
@@ -7050,7 +7108,7 @@ was neither a string nor a function.
diff --git a/jsapi/LuCI.form.TextValue.html b/jsapi/LuCI.form.TextValue.html
index 61a1c79f87..a9b773709d 100644
--- a/jsapi/LuCI.form.TextValue.html
+++ b/jsapi/LuCI.form.TextValue.html
@@ -925,6 +925,8 @@
anonymous
+ cloneable
+
extedit
max_cols
@@ -1675,6 +1677,8 @@
anonymous
+ cloneable
+
parentoption
tabbed
@@ -1839,6 +1843,8 @@
anonymous
+ cloneable
+
tabbed
uciconfig
@@ -2806,6 +2812,8 @@
changes
+ clone
+
createSID
get
@@ -3655,7 +3663,7 @@
@@ -7583,7 +7591,7 @@ before it is written.
diff --git a/jsapi/LuCI.form.TypedSection.html b/jsapi/LuCI.form.TypedSection.html
index 6dea1647bd..c62bfa2548 100644
--- a/jsapi/LuCI.form.TypedSection.html
+++ b/jsapi/LuCI.form.TypedSection.html
@@ -925,6 +925,8 @@
anonymous
+ cloneable
+
extedit
max_cols
@@ -1675,6 +1677,8 @@
anonymous
+ cloneable
+
parentoption
tabbed
@@ -1839,6 +1843,8 @@
anonymous
+ cloneable
+
tabbed
uciconfig
@@ -2806,6 +2812,8 @@
changes
+ clone
+
createSID
get
@@ -4018,6 +4026,56 @@ new sections. The default is false
.
+ Default Value:
+ - false
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ cloneableboolean
+
+
+
+
+
+
+
+ Set to true
, a clone button is added to the button column, allowing
+the user to clone section instances mapped by the section form element.
+The default is false
.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
- Default Value:
- false
@@ -6739,7 +6797,7 @@ was neither a string nor a function.
diff --git a/jsapi/LuCI.form.Value.html b/jsapi/LuCI.form.Value.html
index b317c034f1..7d594f7207 100644
--- a/jsapi/LuCI.form.Value.html
+++ b/jsapi/LuCI.form.Value.html
@@ -925,6 +925,8 @@
anonymous
+ cloneable
+
extedit
max_cols
@@ -1675,6 +1677,8 @@
anonymous
+ cloneable
+
parentoption
tabbed
@@ -1839,6 +1843,8 @@
anonymous
+ cloneable
+
tabbed
uciconfig
@@ -2806,6 +2812,8 @@
changes
+ clone
+
createSID
get
@@ -3656,7 +3664,7 @@
@@ -6705,7 +6713,7 @@ implement alternative removal logic, e.g. to retain the original value.
@@ -7335,7 +7343,7 @@ was neither a string nor a function.
@@ -7642,7 +7650,7 @@ before it is written.
diff --git a/jsapi/LuCI.form.html b/jsapi/LuCI.form.html
index 6fdd1a33e0..778437812f 100644
--- a/jsapi/LuCI.form.html
+++ b/jsapi/LuCI.form.html
@@ -925,6 +925,8 @@
anonymous
+ cloneable
+
extedit
max_cols
@@ -1675,6 +1677,8 @@
anonymous
+ cloneable
+
parentoption
tabbed
@@ -1839,6 +1843,8 @@
anonymous
+ cloneable
+
tabbed
uciconfig
@@ -2806,6 +2812,8 @@
changes
+ clone
+
createSID
get
@@ -3685,7 +3693,7 @@ m.render().then(function(node) {
@@ -3841,7 +3849,7 @@ m.render().then(function(node) {
diff --git a/jsapi/LuCI.fs.html b/jsapi/LuCI.fs.html
index 93fbb2982d..7eddc4fc4a 100644
--- a/jsapi/LuCI.fs.html
+++ b/jsapi/LuCI.fs.html
@@ -925,6 +925,8 @@
anonymous
+ cloneable
+
extedit
max_cols
@@ -1675,6 +1677,8 @@
anonymous
+ cloneable
+
parentoption
tabbed
@@ -1839,6 +1843,8 @@
anonymous
+ cloneable
+
tabbed
uciconfig
@@ -2806,6 +2812,8 @@
changes
+ clone
+
createSID
get
@@ -6027,7 +6035,7 @@ the failure reason.
diff --git a/jsapi/LuCI.headers.html b/jsapi/LuCI.headers.html
index 874dbcf264..555a225fb6 100644
--- a/jsapi/LuCI.headers.html
+++ b/jsapi/LuCI.headers.html
@@ -925,6 +925,8 @@
anonymous
+ cloneable
+
extedit
max_cols
@@ -1675,6 +1677,8 @@
anonymous
+ cloneable
+
parentoption
tabbed
@@ -1839,6 +1843,8 @@
anonymous
+ cloneable
+
tabbed
uciconfig
@@ -2806,6 +2812,8 @@
changes
+ clone
+
createSID
get
@@ -4043,7 +4051,7 @@ Note: Header-Names are case-insensitive.
diff --git a/jsapi/LuCI.html b/jsapi/LuCI.html
index 6e01992787..559c845b41 100644
--- a/jsapi/LuCI.html
+++ b/jsapi/LuCI.html
@@ -925,6 +925,8 @@
anonymous
+ cloneable
+
extedit
max_cols
@@ -1675,6 +1677,8 @@
anonymous
+ cloneable
+
parentoption
tabbed
@@ -1839,6 +1843,8 @@
anonymous
+ cloneable
+
tabbed
uciconfig
@@ -2806,6 +2812,8 @@
changes
+ clone
+
createSID
get
@@ -8450,7 +8458,7 @@ else null
.
diff --git a/jsapi/LuCI.network.Device.html b/jsapi/LuCI.network.Device.html
index c70b04ff6d..41572b54dd 100644
--- a/jsapi/LuCI.network.Device.html
+++ b/jsapi/LuCI.network.Device.html
@@ -925,6 +925,8 @@
anonymous
+ cloneable
+
extedit
max_cols
@@ -1675,6 +1677,8 @@
anonymous
+ cloneable
+
parentoption
tabbed
@@ -1839,6 +1843,8 @@
anonymous
+ cloneable
+
tabbed
uciconfig
@@ -2806,6 +2812,8 @@
changes
+ clone
+
createSID
get
@@ -6408,7 +6416,7 @@ when it is down or absent.
diff --git a/jsapi/LuCI.network.Hosts.html b/jsapi/LuCI.network.Hosts.html
index 223e70a84b..e0a8e916ea 100644
--- a/jsapi/LuCI.network.Hosts.html
+++ b/jsapi/LuCI.network.Hosts.html
@@ -925,6 +925,8 @@
anonymous
+ cloneable
+
extedit
max_cols
@@ -1675,6 +1677,8 @@
anonymous
+ cloneable
+
parentoption
tabbed
@@ -1839,6 +1843,8 @@
anonymous
+ cloneable
+
tabbed
uciconfig
@@ -2806,6 +2812,8 @@
changes
+ clone
+
createSID
get
@@ -4969,7 +4977,7 @@ is used as hint.
diff --git a/jsapi/LuCI.network.Protocol.html b/jsapi/LuCI.network.Protocol.html
index 527c5431f2..6387dcff55 100644
--- a/jsapi/LuCI.network.Protocol.html
+++ b/jsapi/LuCI.network.Protocol.html
@@ -925,6 +925,8 @@
anonymous
+ cloneable
+
extedit
max_cols
@@ -1675,6 +1677,8 @@
anonymous
+ cloneable
+
parentoption
tabbed
@@ -1839,6 +1843,8 @@
anonymous
+ cloneable
+
tabbed
uciconfig
@@ -2806,6 +2812,8 @@
changes
+ clone
+
createSID
get
@@ -8303,7 +8311,7 @@ configuration.
diff --git a/jsapi/LuCI.network.WifiDevice.html b/jsapi/LuCI.network.WifiDevice.html
index e0494993a7..d8a36c33ca 100644
--- a/jsapi/LuCI.network.WifiDevice.html
+++ b/jsapi/LuCI.network.WifiDevice.html
@@ -925,6 +925,8 @@
anonymous
+ cloneable
+
extedit
max_cols
@@ -1675,6 +1677,8 @@
anonymous
+ cloneable
+
parentoption
tabbed
@@ -1839,6 +1843,8 @@
anonymous
+ cloneable
+
tabbed
uciconfig
@@ -2806,6 +2812,8 @@
changes
+ clone
+
createSID
get
@@ -5346,7 +5354,7 @@ configuration.
diff --git a/jsapi/LuCI.network.WifiNetwork.html b/jsapi/LuCI.network.WifiNetwork.html
index 69df35ad00..7bd44ea8d7 100644
--- a/jsapi/LuCI.network.WifiNetwork.html
+++ b/jsapi/LuCI.network.WifiNetwork.html
@@ -925,6 +925,8 @@
anonymous
+ cloneable
+
extedit
max_cols
@@ -1675,6 +1677,8 @@
anonymous
+ cloneable
+
parentoption
tabbed
@@ -1839,6 +1843,8 @@
anonymous
+ cloneable
+
tabbed
uciconfig
@@ -2806,6 +2812,8 @@
changes
+ clone
+
createSID
get
@@ -7930,7 +7938,7 @@ configuration.
diff --git a/jsapi/LuCI.network.html b/jsapi/LuCI.network.html
index e56857adbe..fcb7f8412f 100644
--- a/jsapi/LuCI.network.html
+++ b/jsapi/LuCI.network.html
@@ -925,6 +925,8 @@
anonymous
+ cloneable
+
extedit
max_cols
@@ -1675,6 +1677,8 @@
anonymous
+ cloneable
+
parentoption
tabbed
@@ -1839,6 +1843,8 @@
anonymous
+ cloneable
+
tabbed
uciconfig
@@ -2806,6 +2812,8 @@
changes
+ clone
+
createSID
get
@@ -9873,7 +9881,7 @@ conjunction with quality
to calculate a quality percentage.
- Documentation generated by JSDoc 3.6.11 on Fri Nov 22 2024 21:40:08 GMT+0000 (Coordinated Universal Time)
+ Documentation generated by JSDoc 3.6.11 on Mon Nov 25 2024 15:33:54 GMT+0000 (Coordinated Universal Time)
diff --git a/jsapi/LuCI.poll.html b/jsapi/LuCI.poll.html
index 75fa55e20f..2fe99e4a6c 100644
--- a/jsapi/LuCI.poll.html
+++ b/jsapi/LuCI.poll.html
@@ -925,6 +925,8 @@
anonymous
+ cloneable
+
extedit
max_cols
@@ -1675,6 +1677,8 @@
anonymous
+ cloneable
+
parentoption
tabbed
@@ -1839,6 +1843,8 @@
anonymous
+ cloneable
+
tabbed
uciconfig
@@ -2806,6 +2812,8 @@
changes
+ clone
+
createSID
get
@@ -4426,7 +4434,7 @@ run to begin with.
diff --git a/jsapi/LuCI.request.html b/jsapi/LuCI.request.html
index a93edbdfd5..ad78866c33 100644
--- a/jsapi/LuCI.request.html
+++ b/jsapi/LuCI.request.html
@@ -925,6 +925,8 @@
anonymous
+ cloneable
+
extedit
max_cols
@@ -1675,6 +1677,8 @@
anonymous
+ cloneable
+
parentoption
tabbed
@@ -1839,6 +1843,8 @@
anonymous
+ cloneable
+
tabbed
uciconfig
@@ -2806,6 +2812,8 @@
changes
+ clone
+
createSID
get
@@ -5361,7 +5369,7 @@ instances as sole argument during the HTTP request transfer.
diff --git a/jsapi/LuCI.request.poll.html b/jsapi/LuCI.request.poll.html
index 46c163bc56..ce3eeaeacc 100644
--- a/jsapi/LuCI.request.poll.html
+++ b/jsapi/LuCI.request.poll.html
@@ -925,6 +925,8 @@
anonymous
+ cloneable
+
extedit
max_cols
@@ -1675,6 +1677,8 @@
anonymous
+ cloneable
+
parentoption
tabbed
@@ -1839,6 +1843,8 @@
anonymous
+ cloneable
+
tabbed
uciconfig
@@ -2806,6 +2812,8 @@
changes
+ clone
+
createSID
get
@@ -4545,7 +4553,7 @@ else null
.
diff --git a/jsapi/LuCI.response.html b/jsapi/LuCI.response.html
index 7ca1398b02..7b7ff19a34 100644
--- a/jsapi/LuCI.response.html
+++ b/jsapi/LuCI.response.html
@@ -925,6 +925,8 @@
anonymous
+ cloneable
+
extedit
max_cols
@@ -1675,6 +1677,8 @@
anonymous
+ cloneable
+
parentoption
tabbed
@@ -1839,6 +1843,8 @@
anonymous
+ cloneable
+
tabbed
uciconfig
@@ -2806,6 +2812,8 @@
changes
+ clone
+
createSID
get
@@ -4503,7 +4511,7 @@ using String()
and treated as response text.
diff --git a/jsapi/LuCI.rpc.html b/jsapi/LuCI.rpc.html
index effa7353f6..0ac9fb3c03 100644
--- a/jsapi/LuCI.rpc.html
+++ b/jsapi/LuCI.rpc.html
@@ -925,6 +925,8 @@
anonymous
+ cloneable
+
extedit
max_cols
@@ -1675,6 +1677,8 @@
anonymous
+ cloneable
+
parentoption
tabbed
@@ -1839,6 +1843,8 @@
anonymous
+ cloneable
+
tabbed
uciconfig
@@ -2806,6 +2812,8 @@
changes
+ clone
+
createSID
get
@@ -5834,7 +5842,7 @@ to the expect
and filter
declarations.
diff --git a/jsapi/LuCI.session.html b/jsapi/LuCI.session.html
index ca06ab1c6a..9364598340 100644
--- a/jsapi/LuCI.session.html
+++ b/jsapi/LuCI.session.html
@@ -925,6 +925,8 @@
anonymous
+ cloneable
+
extedit
max_cols
@@ -1675,6 +1677,8 @@
anonymous
+ cloneable
+
parentoption
tabbed
@@ -1839,6 +1843,8 @@
anonymous
+ cloneable
+
tabbed
uciconfig
@@ -2806,6 +2812,8 @@
changes
+ clone
+
createSID
get
@@ -4273,7 +4281,7 @@ being put in the session store.
diff --git a/jsapi/LuCI.uci.html b/jsapi/LuCI.uci.html
index 08745db6e8..0e9e8feceb 100644
--- a/jsapi/LuCI.uci.html
+++ b/jsapi/LuCI.uci.html
@@ -925,6 +925,8 @@
anonymous
+ cloneable
+
extedit
max_cols
@@ -1675,6 +1677,8 @@
anonymous
+ cloneable
+
parentoption
tabbed
@@ -1839,6 +1843,8 @@
anonymous
+ cloneable
+
tabbed
uciconfig
@@ -2806,6 +2812,8 @@
changes
+ clone
+
createSID
get
@@ -3953,7 +3961,7 @@ to the given name for non-anonymous sections.
@@ -4115,7 +4123,7 @@ operation to cancel the rollback timer.
@@ -4203,6 +4211,275 @@ names as keys and arrays of related change records as values.
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Clones an existing section of the given type to the given configuration,
+optionally named according to the given name.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Name
+
+
+ Type
+
+
+
+ Description
+
+
+
+
+
+
+
+
+ conf
+
+
+
+
+
+string
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ The name of the configuration into which to clone the section.
+
+
+
+
+
+
+ type
+
+
+
+
+
+string
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ The type of the section to clone.
+
+
+
+
+
+
+ srcsid
+
+
+
+
+
+string
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ The source section id to clone.
+
+
+
+
+
+
+ put_next
+
+
+
+
+
+boolean
+
+
+
+
+
+
+
+
+
+
+ optional
+
+
+
+
+
+ Whether to put the cloned item next (true) or last (false: default).
+
+
+
+
+
+
+ name
+
+
+
+
+
+string
+
+
+
+
+
+
+
+
+
+
+ optional
+
+
+
+
+
+ The name of the new cloned section. If the name is omitted, an anonymous
+section will be created instead.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Returns:
+
+
+
+
+
+
+
+ Type
+ Description
+
+
+
+
+
+
+
+
+ string
+
+
+
+ Returns the section ID of the newly cloned section which is equivalent
+to the given name for non-anonymous sections.
+
+
+
+
+
+
+
+
@@ -4365,7 +4642,7 @@ where X
denotes a hexadecimal digit.
@@ -4594,7 +4871,7 @@ found or if the corresponding configuration is not loaded.
@@ -4982,7 +5259,7 @@ that have been successfully loaded.
@@ -5251,7 +5528,7 @@ when either the section specified by sid1
or by sid2
i
@@ -5568,7 +5845,7 @@ not be resolved to existing section ID.
@@ -5672,7 +5949,7 @@ have been reloaded by the save operation.
@@ -5885,7 +6162,7 @@ configuration, filtered by type of a type has been specified.
@@ -6081,7 +6358,7 @@ with the given value.
@@ -6422,7 +6699,7 @@ names to unload.
@@ -6587,7 +6864,7 @@ configuration.
@@ -7174,7 +7451,7 @@ underlying option is an UCI list.
@@ -7321,7 +7598,7 @@ associated name as arguments.
diff --git a/jsapi/LuCI.ui.AbstractElement.html b/jsapi/LuCI.ui.AbstractElement.html
index 49bbe82cf8..41712ecb9f 100644
--- a/jsapi/LuCI.ui.AbstractElement.html
+++ b/jsapi/LuCI.ui.AbstractElement.html
@@ -925,6 +925,8 @@
anonymous
+ cloneable
+
extedit
max_cols
@@ -1675,6 +1677,8 @@
anonymous
+ cloneable
+
parentoption
tabbed
@@ -1839,6 +1843,8 @@
anonymous
+ cloneable
+
tabbed
uciconfig
@@ -2806,6 +2812,8 @@
changes
+ clone
+
createSID
get
@@ -5377,7 +5385,7 @@ and are displayed in a slightly faded style.
diff --git a/jsapi/LuCI.ui.Checkbox.html b/jsapi/LuCI.ui.Checkbox.html
index dc90e68f12..1d8d24822e 100644
--- a/jsapi/LuCI.ui.Checkbox.html
+++ b/jsapi/LuCI.ui.Checkbox.html
@@ -925,6 +925,8 @@
anonymous
+ cloneable
+
extedit
max_cols
@@ -1675,6 +1677,8 @@
anonymous
+ cloneable
+
parentoption
tabbed
@@ -1839,6 +1843,8 @@
anonymous
+ cloneable
+
tabbed
uciconfig
@@ -2806,6 +2812,8 @@
changes
+ clone
+
createSID
get
@@ -5491,7 +5499,7 @@ it is required for HTML based form submissions.
diff --git a/jsapi/LuCI.ui.ComboButton.html b/jsapi/LuCI.ui.ComboButton.html
index 9ba659937c..78780c153f 100644
--- a/jsapi/LuCI.ui.ComboButton.html
+++ b/jsapi/LuCI.ui.ComboButton.html
@@ -925,6 +925,8 @@
anonymous
+ cloneable
+
extedit
max_cols
@@ -1675,6 +1677,8 @@
anonymous
+ cloneable
+
parentoption
tabbed
@@ -1839,6 +1843,8 @@
anonymous
+ cloneable
+
tabbed
uciconfig
@@ -2806,6 +2812,8 @@
changes
+ clone
+
createSID
get
@@ -5521,7 +5529,7 @@ choice value as second argument.
diff --git a/jsapi/LuCI.ui.Combobox.html b/jsapi/LuCI.ui.Combobox.html
index 7a10fe3a14..2a3dfeab70 100644
--- a/jsapi/LuCI.ui.Combobox.html
+++ b/jsapi/LuCI.ui.Combobox.html
@@ -925,6 +925,8 @@
anonymous
+ cloneable
+
extedit
max_cols
@@ -1675,6 +1677,8 @@
anonymous
+ cloneable
+
parentoption
tabbed
@@ -1839,6 +1843,8 @@
anonymous
+ cloneable
+
tabbed
uciconfig
@@ -2806,6 +2812,8 @@
changes
+ clone
+
createSID
get
@@ -5424,7 +5432,7 @@ forcibly set to true
.
diff --git a/jsapi/LuCI.ui.Dropdown.html b/jsapi/LuCI.ui.Dropdown.html
index 1a53655490..5ce5c85730 100644
--- a/jsapi/LuCI.ui.Dropdown.html
+++ b/jsapi/LuCI.ui.Dropdown.html
@@ -925,6 +925,8 @@
anonymous
+ cloneable
+
extedit
max_cols
@@ -1675,6 +1677,8 @@
anonymous
+ cloneable
+
parentoption
tabbed
@@ -1839,6 +1843,8 @@
anonymous
+ cloneable
+
tabbed
uciconfig
@@ -2806,6 +2812,8 @@
changes
+ clone
+
createSID
get
@@ -6222,7 +6230,7 @@ expression. Only applicable when create
is true
.
diff --git a/jsapi/LuCI.ui.DynamicList.html b/jsapi/LuCI.ui.DynamicList.html
index 521cfa3153..61f81db638 100644
--- a/jsapi/LuCI.ui.DynamicList.html
+++ b/jsapi/LuCI.ui.DynamicList.html
@@ -925,6 +925,8 @@
anonymous
+ cloneable
+
extedit
max_cols
@@ -1675,6 +1677,8 @@
anonymous
+ cloneable
+
parentoption
tabbed
@@ -1839,6 +1843,8 @@
anonymous
+ cloneable
+
tabbed
uciconfig
@@ -2806,6 +2812,8 @@
changes
+ clone
+
createSID
get
@@ -5599,7 +5607,7 @@ it to remain unselected.
diff --git a/jsapi/LuCI.ui.FileUpload.html b/jsapi/LuCI.ui.FileUpload.html
index a69d24561a..2ffbdd5cf5 100644
--- a/jsapi/LuCI.ui.FileUpload.html
+++ b/jsapi/LuCI.ui.FileUpload.html
@@ -925,6 +925,8 @@
anonymous
+ cloneable
+
extedit
max_cols
@@ -1675,6 +1677,8 @@
anonymous
+ cloneable
+
parentoption
tabbed
@@ -1839,6 +1843,8 @@
anonymous
+ cloneable
+
tabbed
uciconfig
@@ -2806,6 +2812,8 @@
changes
+ clone
+
createSID
get
@@ -5522,7 +5530,7 @@ ACL setup for the current session.
diff --git a/jsapi/LuCI.ui.Hiddenfield.html b/jsapi/LuCI.ui.Hiddenfield.html
index 4df5fd3edd..e63aa0c393 100644
--- a/jsapi/LuCI.ui.Hiddenfield.html
+++ b/jsapi/LuCI.ui.Hiddenfield.html
@@ -925,6 +925,8 @@
anonymous
+ cloneable
+
extedit
max_cols
@@ -1675,6 +1677,8 @@
anonymous
+ cloneable
+
parentoption
tabbed
@@ -1839,6 +1843,8 @@
anonymous
+ cloneable
+
tabbed
uciconfig
@@ -2806,6 +2812,8 @@
changes
+ clone
+
createSID
get
@@ -5202,7 +5210,7 @@ trigger validation runs, e.g. when programmatically altering values.
diff --git a/jsapi/LuCI.ui.Select.html b/jsapi/LuCI.ui.Select.html
index 5a4d211450..c02675bab6 100644
--- a/jsapi/LuCI.ui.Select.html
+++ b/jsapi/LuCI.ui.Select.html
@@ -925,6 +925,8 @@
anonymous
+ cloneable
+
extedit
max_cols
@@ -1675,6 +1677,8 @@
anonymous
+ cloneable
+
parentoption
tabbed
@@ -1839,6 +1843,8 @@
anonymous
+ cloneable
+
tabbed
uciconfig
@@ -2806,6 +2812,8 @@
changes
+ clone
+
createSID
get
@@ -5554,7 +5562,7 @@ selected yet. Only applicable to the select
widget type.
diff --git a/jsapi/LuCI.ui.Textarea.html b/jsapi/LuCI.ui.Textarea.html
index 44e5748d69..f2b7f7ed0d 100644
--- a/jsapi/LuCI.ui.Textarea.html
+++ b/jsapi/LuCI.ui.Textarea.html
@@ -925,6 +925,8 @@
anonymous
+ cloneable
+
extedit
max_cols
@@ -1675,6 +1677,8 @@
anonymous
+ cloneable
+
parentoption
tabbed
@@ -1839,6 +1843,8 @@
anonymous
+ cloneable
+
tabbed
uciconfig
@@ -2806,6 +2812,8 @@
changes
+ clone
+
createSID
get
@@ -5500,7 +5508,7 @@ contents.
diff --git a/jsapi/LuCI.ui.Textfield.html b/jsapi/LuCI.ui.Textfield.html
index 354a4fedb6..f1a3d892f9 100644
--- a/jsapi/LuCI.ui.Textfield.html
+++ b/jsapi/LuCI.ui.Textfield.html
@@ -925,6 +925,8 @@
anonymous
+ cloneable
+
extedit
max_cols
@@ -1675,6 +1677,8 @@
anonymous
+ cloneable
+
parentoption
tabbed
@@ -1839,6 +1843,8 @@
anonymous
+ cloneable
+
tabbed
uciconfig
@@ -2806,6 +2812,8 @@
changes
+ clone
+
createSID
get
@@ -5428,7 +5436,7 @@ corresponding <input>
element is empty.
diff --git a/jsapi/LuCI.ui.changes.html b/jsapi/LuCI.ui.changes.html
index 0739aa76e0..47e72f597f 100644
--- a/jsapi/LuCI.ui.changes.html
+++ b/jsapi/LuCI.ui.changes.html
@@ -925,6 +925,8 @@
anonymous
+ cloneable
+
extedit
max_cols
@@ -1675,6 +1677,8 @@
anonymous
+ cloneable
+
parentoption
tabbed
@@ -1839,6 +1843,8 @@
anonymous
+ cloneable
+
tabbed
uciconfig
@@ -2806,6 +2812,8 @@
changes
+ clone
+
createSID
get
@@ -4280,7 +4288,7 @@ is removed.
diff --git a/jsapi/LuCI.ui.html b/jsapi/LuCI.ui.html
index e5435bac8c..965616701f 100644
--- a/jsapi/LuCI.ui.html
+++ b/jsapi/LuCI.ui.html
@@ -925,6 +925,8 @@
anonymous
+ cloneable
+
extedit
max_cols
@@ -1675,6 +1677,8 @@
anonymous
+ cloneable
+
parentoption
tabbed
@@ -1839,6 +1843,8 @@
anonymous
+ cloneable
+
tabbed
uciconfig
@@ -2806,6 +2812,8 @@
changes
+ clone
+
createSID
get
@@ -6408,7 +6416,7 @@ cancelled by the user.
diff --git a/jsapi/LuCI.ui.menu.html b/jsapi/LuCI.ui.menu.html
index 320a31bc76..87930272ed 100644
--- a/jsapi/LuCI.ui.menu.html
+++ b/jsapi/LuCI.ui.menu.html
@@ -925,6 +925,8 @@
anonymous
+ cloneable
+
extedit
max_cols
@@ -1675,6 +1677,8 @@
anonymous
+ cloneable
+
parentoption
tabbed
@@ -1839,6 +1843,8 @@
anonymous
+ cloneable
+
tabbed
uciconfig
@@ -2806,6 +2812,8 @@
changes
+ clone
+
createSID
get
@@ -4327,7 +4335,7 @@ internal root node if omitted.
diff --git a/jsapi/LuCI.ui.tabs.html b/jsapi/LuCI.ui.tabs.html
index 1a11b6ed05..3f71135094 100644
--- a/jsapi/LuCI.ui.tabs.html
+++ b/jsapi/LuCI.ui.tabs.html
@@ -925,6 +925,8 @@
anonymous
+ cloneable
+
extedit
max_cols
@@ -1675,6 +1677,8 @@
anonymous
+ cloneable
+
parentoption
tabbed
@@ -1839,6 +1843,8 @@
anonymous
+ cloneable
+
tabbed
uciconfig
@@ -2806,6 +2812,8 @@
changes
+ clone
+
createSID
get
@@ -4027,7 +4035,7 @@ DOM node.
diff --git a/jsapi/LuCI.view.html b/jsapi/LuCI.view.html
index 040407cd06..6225cc2a4c 100644
--- a/jsapi/LuCI.view.html
+++ b/jsapi/LuCI.view.html
@@ -925,6 +925,8 @@
anonymous
+ cloneable
+
extedit
max_cols
@@ -1675,6 +1677,8 @@
anonymous
+ cloneable
+
parentoption
tabbed
@@ -1839,6 +1843,8 @@
anonymous
+ cloneable
+
tabbed
uciconfig
@@ -2806,6 +2812,8 @@
changes
+ clone
+
createSID
get
@@ -4631,7 +4639,7 @@ to a Node
value.
diff --git a/jsapi/LuCI.xhr.html b/jsapi/LuCI.xhr.html
index 6e971214d6..2ee55375d1 100644
--- a/jsapi/LuCI.xhr.html
+++ b/jsapi/LuCI.xhr.html
@@ -925,6 +925,8 @@
anonymous
+ cloneable
+
extedit
max_cols
@@ -1675,6 +1677,8 @@
anonymous
+ cloneable
+
parentoption
tabbed
@@ -1839,6 +1843,8 @@
anonymous
+ cloneable
+
tabbed
uciconfig
@@ -2806,6 +2812,8 @@
changes
+ clone
+
createSID
get
@@ -4595,7 +4603,7 @@ when invoked.
diff --git a/jsapi/form.js.html b/jsapi/form.js.html
index 6d8e8667a6..eeaf142150 100644
--- a/jsapi/form.js.html
+++ b/jsapi/form.js.html
@@ -925,6 +925,8 @@
anonymous
+ cloneable
+
extedit
max_cols
@@ -1675,6 +1677,8 @@
anonymous
+ cloneable
+
parentoption
tabbed
@@ -1839,6 +1843,8 @@
anonymous
+ cloneable
+
tabbed
uciconfig
@@ -2806,6 +2812,8 @@
changes
+ clone
+
createSID
get
@@ -6061,6 +6069,16 @@ var CBITableSection = CBITypedSection.extend(/** @lends LuCI.form.TableSection.p
* @default false
*/
+ /**
+ * Set to `true`, a clone button is added to the button column, allowing
+ * the user to clone section instances mapped by the section form element.
+ * The default is `false`.
+ *
+ * @name LuCI.form.TypedSection.prototype#cloneable
+ * @type boolean
+ * @default 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
@@ -6109,11 +6127,25 @@ var CBITableSection = CBITypedSection.extend(/** @lends LuCI.form.TableSection.p
throw 'Tabs are not supported by TableSection';
},
+
+ /**
+ * Clone the section_id, putting the clone immediately after if put_next
+ * is true. Optionally supply a name for the new section_id.
+ */
+ /** @private */
+ handleClone: function(section_id, put_next, name) {
+ let config_name = this.uciconfig || this.map.config;
+
+ this.map.data.clone(config_name, this.sectiontype, section_id, put_next, name);
+ return this.map.save(null, true);
+ },
+
/** @private */
renderContents: function(cfgsections, nodes) {
var section_id = null,
config_name = this.uciconfig || this.map.config,
max_cols = isNaN(this.max_cols) ? this.children.length : this.max_cols,
+ cloneable = this.cloneable,
has_more = max_cols < this.children.length,
drag_sort = this.sortable && !('ontouchstart' in window),
touch_sort = this.sortable && ('ontouchstart' in window),
@@ -6231,7 +6263,7 @@ var CBITableSection = CBITypedSection.extend(/** @lends LuCI.form.TableSection.p
dom.content(trEl.lastElementChild, opt.title);
}
- if (this.sortable || this.extedit || this.addremove || has_more || has_action)
+ if (this.sortable || this.extedit || this.addremove || has_more || has_action || this.cloneable)
trEl.appendChild(E('th', {
'class': 'th cbi-section-table-cell cbi-section-actions'
}));
@@ -6258,7 +6290,7 @@ var CBITableSection = CBITypedSection.extend(/** @lends LuCI.form.TableSection.p
(typeof(opt.width) == 'number') ? opt.width+'px' : opt.width;
}
- if (this.sortable || this.extedit || this.addremove || has_more || has_action)
+ if (this.sortable || this.extedit || this.addremove || has_more || has_action || this.cloneable)
trEl.appendChild(E('th', {
'class': 'th cbi-section-table-cell cbi-section-actions'
}));
@@ -6273,7 +6305,7 @@ var CBITableSection = CBITypedSection.extend(/** @lends LuCI.form.TableSection.p
renderRowActions: function(section_id, more_label) {
var config_name = this.uciconfig || this.map.config;
- if (!this.sortable && !this.extedit && !this.addremove && !more_label)
+ if (!this.sortable && !this.extedit && !this.addremove && !more_label && !this.cloneable)
return E([]);
var tdEl = E('td', {
@@ -6320,6 +6352,19 @@ var CBITableSection = CBITypedSection.extend(/** @lends LuCI.form.TableSection.p
);
}
+ if (this.cloneable) {
+ var btn_title = this.titleFn('clonebtntitle', section_id);
+
+ dom.append(tdEl.lastElementChild,
+ E('button', {
+ 'title': btn_title || _('Clone') + 'â¿»',
+ 'class': 'btn cbi-button cbi-button-neutral',
+ 'click': ui.createHandlerFn(this, 'handleClone', section_id, true),
+ 'disabled': this.map.readonly || null
+ }, [ btn_title || _('Clone') + 'â¿»' ])
+ );
+ }
+
if (this.addremove) {
var btn_title = this.titleFn('removebtntitle', section_id);
@@ -8619,7 +8664,7 @@ return baseclass.extend(/** @lends LuCI.form.prototype */ {
diff --git a/jsapi/fs.js.html b/jsapi/fs.js.html
index a3e3f9efaa..d2d7955261 100644
--- a/jsapi/fs.js.html
+++ b/jsapi/fs.js.html
@@ -925,6 +925,8 @@
anonymous
+ cloneable
+
extedit
max_cols
@@ -1675,6 +1677,8 @@
anonymous
+ cloneable
+
parentoption
tabbed
@@ -1839,6 +1843,8 @@
anonymous
+ cloneable
+
tabbed
uciconfig
@@ -2806,6 +2812,8 @@
changes
+ clone
+
createSID
get
@@ -4069,7 +4077,7 @@ return FileSystem;
diff --git a/jsapi/index.html b/jsapi/index.html
index 8c39330866..7b71c18953 100644
--- a/jsapi/index.html
+++ b/jsapi/index.html
@@ -925,6 +925,8 @@
anonymous
+ cloneable
+
extedit
max_cols
@@ -1675,6 +1677,8 @@
anonymous
+ cloneable
+
parentoption
tabbed
@@ -1839,6 +1843,8 @@
anonymous
+ cloneable
+
tabbed
uciconfig
@@ -2806,6 +2812,8 @@
changes
+ clone
+
createSID
get
@@ -3656,7 +3664,7 @@ is the central JSDoc 3.6.11 on Fri Nov 22 2024 21:40:08 GMT+0000 (Coordinated Universal Time)
+ Documentation generated by JSDoc 3.6.11 on Mon Nov 25 2024 15:33:54 GMT+0000 (Coordinated Universal Time)
diff --git a/jsapi/luci.js.html b/jsapi/luci.js.html
index 9e8da42c69..fc07f9eef8 100644
--- a/jsapi/luci.js.html
+++ b/jsapi/luci.js.html
@@ -925,6 +925,8 @@
anonymous
+ cloneable
+
extedit
max_cols
@@ -1675,6 +1677,8 @@
anonymous
+ cloneable
+
parentoption
tabbed
@@ -1839,6 +1843,8 @@
anonymous
+ cloneable
+
tabbed
uciconfig
@@ -2806,6 +2812,8 @@
changes
+ clone
+
createSID
get
@@ -7102,7 +7110,7 @@
diff --git a/jsapi/network.js.html b/jsapi/network.js.html
index f2e67b5009..404c6ef1c1 100644
--- a/jsapi/network.js.html
+++ b/jsapi/network.js.html
@@ -925,6 +925,8 @@
anonymous
+ cloneable
+
extedit
max_cols
@@ -1675,6 +1677,8 @@
anonymous
+ cloneable
+
parentoption
tabbed
@@ -1839,6 +1843,8 @@
anonymous
+ cloneable
+
tabbed
uciconfig
@@ -2806,6 +2812,8 @@
changes
+ clone
+
createSID
get
@@ -8077,7 +8085,7 @@ return Network;
diff --git a/jsapi/rpc.js.html b/jsapi/rpc.js.html
index 552a932be5..ac702bee57 100644
--- a/jsapi/rpc.js.html
+++ b/jsapi/rpc.js.html
@@ -925,6 +925,8 @@
anonymous
+ cloneable
+
extedit
max_cols
@@ -1675,6 +1677,8 @@
anonymous
+ cloneable
+
parentoption
tabbed
@@ -1839,6 +1843,8 @@
anonymous
+ cloneable
+
tabbed
uciconfig
@@ -2806,6 +2812,8 @@
changes
+ clone
+
createSID
get
@@ -4125,7 +4133,7 @@ return baseclass.extend(/** @lends LuCI.rpc.prototype */ {
diff --git a/jsapi/uci.js.html b/jsapi/uci.js.html
index 10bbbf64bd..96b63cbc06 100644
--- a/jsapi/uci.js.html
+++ b/jsapi/uci.js.html
@@ -925,6 +925,8 @@
anonymous
+ cloneable
+
extedit
max_cols
@@ -1675,6 +1677,8 @@
anonymous
+ cloneable
+
parentoption
tabbed
@@ -1839,6 +1843,8 @@
anonymous
+ cloneable
+
tabbed
uciconfig
@@ -2806,6 +2812,8 @@
changes
+ clone
+
createSID
get
@@ -3929,6 +3937,53 @@ return baseclass.extend(/** @lends LuCI.uci.prototype */ {
return sid;
},
+ /**
+ * Clones an existing section of the given type to the given configuration,
+ * optionally named according to the given name.
+ *
+ * @param {string} conf
+ * The name of the configuration into which to clone the section.
+ *
+ * @param {string} type
+ * The type of the section to clone.
+ *
+ * @param {string} srcsid
+ * The source section id to clone.
+ *
+ * @param {boolean} [put_next]
+ * Whether to put the cloned item next (true) or last (false: default).
+ *
+ * @param {string} [name]
+ * The name of the new cloned section. If the name is omitted, an anonymous
+ * section will be created instead.
+ *
+ * @returns {string}
+ * Returns the section ID of the newly cloned section which is equivalent
+ * to the given name for non-anonymous sections.
+ */
+ clone: function(conf, type, srcsid, put_next, name) {
+ let n = this.state.creates;
+ let sid = this.createSID(conf);
+ let v = this.state.values;
+ put_next = put_next || false;
+
+ if (!n[conf])
+ n[conf] = { };
+
+ n[conf][sid] = {
+ ...v[conf][srcsid],
+ '.type': type,
+ '.name': sid,
+ '.create': name,
+ '.anonymous': !name,
+ '.index': 1000 + this.state.newidx++
+ };
+
+ if (put_next)
+ this.move(conf, sid, srcsid, put_next);
+ return sid;
+ },
+
/**
* Removes the section with the given ID from the given configuration.
*
@@ -4628,7 +4683,7 @@ return baseclass.extend(/** @lends LuCI.uci.prototype */ {
diff --git a/jsapi/ui.js.html b/jsapi/ui.js.html
index 0371ad8d4b..12ad3b0eeb 100644
--- a/jsapi/ui.js.html
+++ b/jsapi/ui.js.html
@@ -925,6 +925,8 @@
anonymous
+ cloneable
+
extedit
max_cols
@@ -1675,6 +1677,8 @@
anonymous
+ cloneable
+
parentoption
tabbed
@@ -1839,6 +1843,8 @@
anonymous
+ cloneable
+
tabbed
uciconfig
@@ -2806,6 +2812,8 @@
changes
+ clone
+
createSID
get
@@ -8655,7 +8663,7 @@ return UI;