diff options
Diffstat (limited to 'modules/luci-base/htdocs/luci-static/resources/cbi.js')
-rw-r--r-- | modules/luci-base/htdocs/luci-static/resources/cbi.js | 46 |
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) |