state = true;
}
+
+ // hide optionals widget if no choices remaining
+ if (parent.parentNode && parent.getAttribute('data-optionals'))
+ parent.parentNode.style.display = (parent.options.length <= 1) ? 'none' : '';
}
if (entry && entry.parent) {
}
}
- nodes = document.querySelectorAll('[data-change]');
+ nodes = document.querySelectorAll('[data-update]');
for (var i = 0, node; (node = nodes[i]) !== undefined; i++) {
- var events = node.getAttribute('data-change').split(' ');
+ var events = node.getAttribute('data-update').split(' ');
for (var j = 0, event; (event = events[j]) !== undefined; j++) {
cbi_bind(node, event, cbi_d_update);
}
return obj;
}
-function cbi_combobox(id, values, def, man) {
+function cbi_combobox(id, values, def, man, focus) {
var selid = "cbi.combobox." + id;
if (document.getElementById(selid)) {
return
cbi_bind(sel, "change", function() {
if (sel.selectedIndex == sel.options.length - 1) {
obj.style.display = "inline";
+ sel.blur();
sel.parentNode.removeChild(sel);
obj.focus();
} else {
})
// Retrigger validation in select
- sel.focus();
- sel.blur();
+ if (focus) {
+ sel.focus();
+ sel.blur();
+ }
}
function cbi_combobox_init(id, values, def, man) {
var obj = document.getElementById(id);
cbi_bind(obj, "blur", function() {
- cbi_combobox(id, values, def, man)
+ cbi_combobox(id, values, def, man, true);
});
- cbi_combobox(id, values, def, man);
+ cbi_combobox(id, values, def, man, false);
}
function cbi_filebrowser(id, url, defpath) {
{
var t = cbi_t[sid][tid].tab;
var c = cbi_t[sid][tid].container;
- var n = c.getElementsByTagName('div');
- if (n.length === 0) {
+ if (!c.firstElementChild) {
t.style.display = 'none';
}
else if (t.style.display == 'none') {