summaryrefslogtreecommitdiffhomepage
path: root/modules/luci-base/htdocs/luci-static/resources
diff options
context:
space:
mode:
authorJo-Philipp Wich <jo@mein.io>2019-08-11 21:01:12 +0200
committerJo-Philipp Wich <jo@mein.io>2019-08-14 22:58:15 +0200
commitb391387ce7fc8a89c82aa3537b5fc1c31ed9b7f0 (patch)
tree36370e3636464b2596c5f84a2f92310034dc7ba6 /modules/luci-base/htdocs/luci-static/resources
parentc2eba00a10da484ff034a12cb2985edd091448f7 (diff)
luci-base: form.js: improve ui tab interaction
- Delay initialization of tab groups - Tag section nodes with IDs to store per-section tab state Signed-off-by: Jo-Philipp Wich <jo@mein.io>
Diffstat (limited to 'modules/luci-base/htdocs/luci-static/resources')
-rw-r--r--modules/luci-base/htdocs/luci-static/resources/form.js20
1 files changed, 11 insertions, 9 deletions
diff --git a/modules/luci-base/htdocs/luci-static/resources/form.js b/modules/luci-base/htdocs/luci-static/resources/form.js
index 4cdef2e692..31867162ed 100644
--- a/modules/luci-base/htdocs/luci-static/resources/form.js
+++ b/modules/luci-base/htdocs/luci-static/resources/form.js
@@ -185,6 +185,11 @@ var CBIMap = CBINode.extend({
this.checkDepends();
+ var tabGroups = mapEl.querySelectorAll('.cbi-section-node-tabbed');
+
+ for (var i = 0; i < tabGroups.length; i++)
+ ui.tabs.initTabGroup(tabGroups[i].childNodes);
+
return mapEl;
}, this));
},
@@ -748,11 +753,9 @@ var CBITypedSection = CBIAbstractSection.extend({
sectionEl.appendChild(E('div', {
'id': 'cbi-%s-%s'.format(config_name, cfgsections[i]),
'class': this.tabs
- ? 'cbi-section-node cbi-section-node-tabbed' : 'cbi-section-node'
+ ? 'cbi-section-node cbi-section-node-tabbed' : 'cbi-section-node',
+ 'data-section-id': cfgsections[i]
}, nodes[i]));
-
- if (this.tabs)
- ui.tabs.initTabGroup(sectionEl.lastChild.childNodes);
}
if (nodes.length == 0)
@@ -819,7 +822,8 @@ var CBITableSection = CBITypedSection.extend({
'dragleave': this.sortable ? L.bind(this.handleDragLeave, this) : null,
'dragend': this.sortable ? L.bind(this.handleDragEnd, this) : null,
'drop': this.sortable ? L.bind(this.handleDrop, this) : null,
- 'data-title': (sectionname && (!this.anonymous || this.sectiontitle)) ? sectionname : null
+ 'data-title': (sectionname && (!this.anonymous || this.sectiontitle)) ? sectionname : null,
+ 'data-section-id': cfgsections[i]
});
if (this.extedit || this.rowcolors)
@@ -1312,11 +1316,9 @@ var CBINamedSection = CBIAbstractSection.extend({
sectionEl.appendChild(E('div', {
'id': 'cbi-%s-%s'.format(config_name, section_id),
'class': this.tabs
- ? 'cbi-section-node cbi-section-node-tabbed' : 'cbi-section-node'
+ ? 'cbi-section-node cbi-section-node-tabbed' : 'cbi-section-node',
+ 'data-section-id': section_id
}, nodes));
-
- if (this.tabs)
- ui.tabs.initTabGroup(sectionEl.lastChild.childNodes);
}
else if (this.addremove) {
sectionEl.appendChild(