summaryrefslogtreecommitdiffhomepage
path: root/modules/luci-base/htdocs/luci-static/resources/cbi.js
diff options
context:
space:
mode:
Diffstat (limited to 'modules/luci-base/htdocs/luci-static/resources/cbi.js')
-rw-r--r--modules/luci-base/htdocs/luci-static/resources/cbi.js46
1 files changed, 39 insertions, 7 deletions
diff --git a/modules/luci-base/htdocs/luci-static/resources/cbi.js b/modules/luci-base/htdocs/luci-static/resources/cbi.js
index ddbff83418..fcfc506942 100644
--- a/modules/luci-base/htdocs/luci-static/resources/cbi.js
+++ b/modules/luci-base/htdocs/luci-static/resources/cbi.js
@@ -627,6 +627,18 @@ function cbi_init() {
s.parentNode.classList.add('cbi-tooltip-container');
});
+ document.querySelectorAll('.cbi-section-remove > input[name^="cbi.rts"]').forEach(function(i) {
+ var handler = function(ev) {
+ var bits = this.name.split(/\./),
+ section = document.getElementById('cbi-' + bits[2] + '-' + bits[3]);
+
+ section.style.opacity = (ev.type === 'mouseover') ? 0.5 : '';
+ };
+
+ i.addEventListener('mouseover', handler);
+ i.addEventListener('mouseout', handler);
+ });
+
cbi_d_update();
}
@@ -818,9 +830,9 @@ function cbi_dynlist_init(parent, datatype, optional, choices)
t.placeholder = holder;
}
- var b = document.createElement('img');
- b.src = cbi_strings.path.resource + ((i+1) < values.length ? '/cbi/remove.gif' : '/cbi/add.gif');
- b.className = 'cbi-image-button';
+ var b = E('div', {
+ class: 'cbi-button cbi-button-' + ((i+1) < values.length ? 'remove' : 'add')
+ }, (i+1) < values.length ? '×' : '+');
parent.appendChild(t);
parent.appendChild(b);
@@ -986,8 +998,7 @@ function cbi_dynlist_init(parent, datatype, optional, choices)
input = input.previousSibling;
}
- if (se.src.indexOf('remove') > -1)
- {
+ if (se.classList.contains('cbi-button-remove')) {
input.value = '';
cbi_dynlist_keydown({
@@ -995,8 +1006,7 @@ function cbi_dynlist_init(parent, datatype, optional, choices)
keyCode: 8
});
}
- else
- {
+ else {
cbi_dynlist_keydown({
target: input,
keyCode: 13
@@ -1306,6 +1316,28 @@ function cbi_tag_last(container)
}
}
+function cbi_submit(elem, name, value, action)
+{
+ var form = elem.form || findParent(elem, 'form');
+
+ if (!form)
+ return false;
+
+ if (action)
+ form.action = action;
+
+ if (name) {
+ var hidden = form.querySelector('input[type="hidden"][name="%s"]'.format(name)) ||
+ E('input', { type: 'hidden', name: name });
+
+ hidden.value = value || '1';
+ form.appendChild(hidden);
+ }
+
+ form.submit();
+ return true;
+}
+
String.prototype.format = function()
{
if (!RegExp)