summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorJo-Philipp Wich <jo@mein.io>2019-10-22 15:51:08 +0200
committerJo-Philipp Wich <jo@mein.io>2019-10-22 15:51:51 +0200
commit2b7ca79118fbfc7b8ada627a11ee63e6ec95bccb (patch)
treecfa117b4ded38915a72daeacd8472c0947bd9dcf
parent982ba6cf2f3205a74dc07f9dae975614fe0f7550 (diff)
luci-base: ui.js: prevent race condition in tab initialization
Fixes: #3150 Signed-off-by: Jo-Philipp Wich <jo@mein.io>
-rw-r--r--modules/luci-base/htdocs/luci-static/resources/ui.js7
1 files changed, 7 insertions, 0 deletions
diff --git a/modules/luci-base/htdocs/luci-static/resources/ui.js b/modules/luci-base/htdocs/luci-static/resources/ui.js
index caae81281..c1389a8fd 100644
--- a/modules/luci-base/htdocs/luci-static/resources/ui.js
+++ b/modules/luci-base/htdocs/luci-static/resources/ui.js
@@ -2021,6 +2021,9 @@ return L.Class.extend({
document.querySelectorAll('[data-tab]').forEach(function(tab) {
var parent = tab.parentNode;
+ if (L.dom.matches(tab, 'li') && L.dom.matches(parent, 'ul.cbi-tabmenu'))
+ return;
+
if (!parent.hasAttribute('data-tab-group'))
parent.setAttribute('data-tab-group', groups.length);
@@ -2053,6 +2056,9 @@ return L.Class.extend({
groupId = +group.getAttribute('data-tab-group'),
selected = null;
+ if (group.getAttribute('data-initialized') === 'true')
+ return;
+
for (var i = 0, pane; pane = panes[i]; i++) {
var name = pane.getAttribute('data-tab'),
title = pane.getAttribute('data-tab-title'),
@@ -2072,6 +2078,7 @@ return L.Class.extend({
}
group.parentNode.insertBefore(menu, group);
+ group.setAttribute('data-initialized', true);
if (selected === null) {
selected = this.getActiveTabId(panes[0]);