From: Jo-Philipp Wich Date: Tue, 22 Oct 2019 13:51:08 +0000 (+0200) Subject: luci-base: ui.js: prevent race condition in tab initialization X-Git-Url: https://git.librecmc.org/?a=commitdiff_plain;h=2b7ca79118fbfc7b8ada627a11ee63e6ec95bccb;p=oweals%2Fluci.git luci-base: ui.js: prevent race condition in tab initialization Fixes: #3150 Signed-off-by: Jo-Philipp Wich --- 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]);