libs/web: cbi: dynamically update css class of last field after dependency update

This commit is contained in:
Jo-Philipp Wich 2011-09-22 17:05:14 +00:00
parent 688eb421cc
commit 737daee3e1

View file

@ -332,7 +332,8 @@ function cbi_d_update() {
} }
if (entry && entry.parent) { if (entry && entry.parent) {
cbi_t_update(); if (!cbi_t_update())
cbi_tag_last(parent);
} }
if (state) { if (state) {
@ -719,9 +720,11 @@ function cbi_t_switch(section, tab) {
function cbi_t_update() { function cbi_t_update() {
var hl_tabs = [ ]; var hl_tabs = [ ];
var updated = false;
for( var sid in cbi_t ) for( var sid in cbi_t )
for( var tid in cbi_t[sid] ) for( var tid in cbi_t[sid] )
{
if( cbi_c[cbi_t[sid][tid].cid] == 0 ) { if( cbi_c[cbi_t[sid][tid].cid] == 0 ) {
cbi_t[sid][tid].tab.style.display = 'none'; cbi_t[sid][tid].tab.style.display = 'none';
} }
@ -733,11 +736,17 @@ function cbi_t_update() {
hl_tabs.push(t); hl_tabs.push(t);
} }
cbi_tag_last(cbi_t[sid][tid].container);
updated = true;
}
if( hl_tabs.length > 0 ) if( hl_tabs.length > 0 )
window.setTimeout(function() { window.setTimeout(function() {
for( var i = 0; i < hl_tabs.length; i++ ) for( var i = 0; i < hl_tabs.length; i++ )
hl_tabs[i].className = hl_tabs[i].className.replace(/ cbi-tab-highlighted/g, ''); hl_tabs[i].className = hl_tabs[i].className.replace(/ cbi-tab-highlighted/g, '');
}, 750); }, 750);
return updated;
} }
@ -885,6 +894,26 @@ function cbi_row_swap(elem, up, store)
return false; 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 ) if( ! String.serialize )
String.serialize = function(o) String.serialize = function(o)
{ {