summaryrefslogtreecommitdiffhomepage
path: root/libs/web/htdocs
diff options
context:
space:
mode:
Diffstat (limited to 'libs/web/htdocs')
-rw-r--r--libs/web/htdocs/luci-static/resources/cbi.js31
1 files changed, 30 insertions, 1 deletions
diff --git a/libs/web/htdocs/luci-static/resources/cbi.js b/libs/web/htdocs/luci-static/resources/cbi.js
index 1e751d47e6..5eee59c347 100644
--- a/libs/web/htdocs/luci-static/resources/cbi.js
+++ b/libs/web/htdocs/luci-static/resources/cbi.js
@@ -332,7 +332,8 @@ function cbi_d_update() {
}
if (entry && entry.parent) {
- cbi_t_update();
+ if (!cbi_t_update())
+ cbi_tag_last(parent);
}
if (state) {
@@ -719,9 +720,11 @@ function cbi_t_switch(section, tab) {
function cbi_t_update() {
var hl_tabs = [ ];
+ var updated = false;
for( var sid in cbi_t )
for( var tid in cbi_t[sid] )
+ {
if( cbi_c[cbi_t[sid][tid].cid] == 0 ) {
cbi_t[sid][tid].tab.style.display = 'none';
}
@@ -733,11 +736,17 @@ function cbi_t_update() {
hl_tabs.push(t);
}
+ cbi_tag_last(cbi_t[sid][tid].container);
+ updated = true;
+ }
+
if( hl_tabs.length > 0 )
window.setTimeout(function() {
for( var i = 0; i < hl_tabs.length; i++ )
hl_tabs[i].className = hl_tabs[i].className.replace(/ cbi-tab-highlighted/g, '');
}, 750);
+
+ return updated;
}
@@ -885,6 +894,26 @@ function cbi_row_swap(elem, up, store)
return false;
}
+function cbi_tag_last(container)
+{
+ var last;
+
+ for (var i = 0; i < container.childNodes.length; i++)
+ {
+ var c = container.childNodes[i];
+ if (c.nodeType == 1 && c.nodeName.toLowerCase() == 'div')
+ {
+ c.className = c.className.replace(/ cbi-value-last$/, '');
+ last = c;
+ }
+ }
+
+ if (last)
+ {
+ last.className += ' cbi-value-last';
+ }
+}
+
if( ! String.serialize )
String.serialize = function(o)
{