mirror of
https://github.com/openwrt/luci.git
synced 2025-12-24 10:38:24 +04:00
luci-base: prevent tools.widgets.ZoneSelect tracebacks
follow-up fix for 0be4ad51a0
It seems to have been this way for a while, for zone selections
involving the 'any' ('*') choice. firewall forwards.js has no
'this.allowany;' property on the widgets, so the any choice is absent,
leading to a traceback, caused by the 'src' widget, even though
this code block operates on the 'dst' value. Certain combinations of
'src' and 'dst' also triggered tracebacks.
This might not be the correct behaviour for this widget, but it does
prevent tracebacks caused by null values.
Signed-off-by: Paul Donald <newtwen+github@gmail.com>
This commit is contained in:
@@ -189,26 +189,27 @@ var CBIZoneSelect = form.ListValue.extend({
|
||||
emptyval.parentNode.removeChild(emptyval);
|
||||
}
|
||||
else {
|
||||
var anyval = node.querySelector('[data-value="*"]'),
|
||||
emptyval = node.querySelector('[data-value=""]');
|
||||
const anyval = node.querySelector('[data-value="*"]') || '';
|
||||
const emptyval = node.querySelector('[data-value=""]') || '';
|
||||
|
||||
if (emptyval == null) {
|
||||
if (emptyval == null && anyval) {
|
||||
emptyval = anyval.cloneNode(true);
|
||||
emptyval.removeAttribute('display');
|
||||
emptyval.removeAttribute('selected');
|
||||
emptyval.setAttribute('data-value', '');
|
||||
}
|
||||
|
||||
if (opt[0].allowlocal)
|
||||
if (opt[0]?.allowlocal && emptyval)
|
||||
L.dom.content(emptyval.querySelector('span'), [
|
||||
E('strong', _('Device')), E('span', ' (%s)'.format(_('input')))
|
||||
]);
|
||||
if (opt[0]?.allowany && anyval && emptyval) {
|
||||
L.dom.content(anyval.querySelector('span'), [
|
||||
E('strong', _('Any zone')), E('span', ' (%s)'.format(_('forward')))
|
||||
]);
|
||||
|
||||
L.dom.content(anyval.querySelector('span'), [
|
||||
E('strong', _('Any zone')), E('span', ' (%s)'.format(_('forward')))
|
||||
]);
|
||||
|
||||
anyval.parentNode.insertBefore(emptyval, anyval);
|
||||
anyval.parentNode.insertBefore(emptyval, anyval);
|
||||
}
|
||||
}
|
||||
|
||||
}, this));
|
||||
|
||||
Reference in New Issue
Block a user