luci-mod-system: leds.js: fix crash when no usb devices or ports are present
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
This commit is contained in:
parent
bd441898fa
commit
fd35e9a226
1 changed files with 39 additions and 33 deletions
|
@ -72,8 +72,10 @@ return L.view.extend({
|
||||||
|
|
||||||
trigger = s.option(form.ListValue, 'trigger', _('Trigger'));
|
trigger = s.option(form.ListValue, 'trigger', _('Trigger'));
|
||||||
Object.keys(triggers).sort().forEach(function(t) { trigger.value(t, t.replace(/-/g, '')) });
|
Object.keys(triggers).sort().forEach(function(t) { trigger.value(t, t.replace(/-/g, '')) });
|
||||||
trigger.value('usbdev');
|
if (usb.devices && usb.devices.length)
|
||||||
trigger.value('usbport');
|
trigger.value('usbdev');
|
||||||
|
if (usb.ports && usb.ports.length)
|
||||||
|
trigger.value('usbport');
|
||||||
|
|
||||||
o = s.option(form.Value, 'delayon', _('On-State Delay'));
|
o = s.option(form.Value, 'delayon', _('On-State Delay'));
|
||||||
o.depends('trigger', 'timer');
|
o.depends('trigger', 'timer');
|
||||||
|
@ -100,42 +102,46 @@ return L.view.extend({
|
||||||
o.value('tx', _('Transmit'));
|
o.value('tx', _('Transmit'));
|
||||||
o.value('rx', _('Receive'));
|
o.value('rx', _('Receive'));
|
||||||
|
|
||||||
o = s.option(form.ListValue, '_usb_dev', _('USB Device'));
|
if (usb.devices && usb.devices.length) {
|
||||||
o.depends('trigger', 'usbdev');
|
o = s.option(form.ListValue, '_usb_dev', _('USB Device'));
|
||||||
o.rmempty = true;
|
o.depends('trigger', 'usbdev');
|
||||||
o.ucioption = 'dev';
|
o.rmempty = true;
|
||||||
o.remove = function(section_id) {
|
o.ucioption = 'dev';
|
||||||
var t = trigger.formvalue(section_id);
|
o.remove = function(section_id) {
|
||||||
if (t != 'netdev' && t != 'usbdev')
|
var t = trigger.formvalue(section_id);
|
||||||
uci.unset('system', section_id, 'dev');
|
if (t != 'netdev' && t != 'usbdev')
|
||||||
|
uci.unset('system', section_id, 'dev');
|
||||||
|
}
|
||||||
|
o.value('');
|
||||||
|
usb.devices.forEach(function(usbdev) {
|
||||||
|
o.value(usbdev.id, '%s (%s - %s)'.format(usbdev.id, usbdev.vendor || '?', usbdev.product || '?'));
|
||||||
|
});
|
||||||
}
|
}
|
||||||
o.value('');
|
|
||||||
(usb.devices || []).forEach(function(usbdev) {
|
|
||||||
o.value(usbdev.id, '%s (%s - %s)'.format(usbdev.id, usbdev.vendor || '?', usbdev.product || '?'));
|
|
||||||
});
|
|
||||||
|
|
||||||
o = s.option(form.MultiValue, 'port', _('USB Ports'));
|
if (usb.ports && usb.ports.length) {
|
||||||
o.depends('trigger', 'usbport');
|
o = s.option(form.MultiValue, 'port', _('USB Ports'));
|
||||||
o.rmempty = true;
|
o.depends('trigger', 'usbport');
|
||||||
o.cfgvalue = function(section_id) {
|
o.rmempty = true;
|
||||||
var ports = [],
|
o.cfgvalue = function(section_id) {
|
||||||
value = uci.get('system', section_id, 'port');
|
var ports = [],
|
||||||
|
value = uci.get('system', section_id, 'port');
|
||||||
|
|
||||||
if (!Array.isArray(value))
|
if (!Array.isArray(value))
|
||||||
value = String(value || '').split(/\s+/);
|
value = String(value || '').split(/\s+/);
|
||||||
|
|
||||||
for (var i = 0; i < value.length; i++)
|
for (var i = 0; i < value.length; i++)
|
||||||
if (value[i].match(/^usb(\d+)-port(\d+)$/))
|
if (value[i].match(/^usb(\d+)-port(\d+)$/))
|
||||||
ports.push(value[i]);
|
ports.push(value[i]);
|
||||||
else if (value[i].match(/^(\d+)-(\d+)$/))
|
else if (value[i].match(/^(\d+)-(\d+)$/))
|
||||||
ports.push('usb%d-port%d'.format(Regexp.$1, Regexp.$2));
|
ports.push('usb%d-port%d'.format(Regexp.$1, Regexp.$2));
|
||||||
|
|
||||||
return ports;
|
return ports;
|
||||||
};
|
};
|
||||||
(usb.ports || []).forEach(function(usbport) {
|
usb.ports.forEach(function(usbport) {
|
||||||
o.value('usb%d-port%d'.format(usbport.hub, usbport.port),
|
o.value('usb%d-port%d'.format(usbport.hub, usbport.port),
|
||||||
'Hub %d, Port %d'.format(usbport.hub, usbport.port));
|
'Hub %d, Port %d'.format(usbport.hub, usbport.port));
|
||||||
});
|
});
|
||||||
|
}
|
||||||
|
|
||||||
o = s.option(form.Value, 'port_mask', _('Switch Port Mask'));
|
o = s.option(form.Value, 'port_mask', _('Switch Port Mask'));
|
||||||
o.depends('trigger', 'switch0');
|
o.depends('trigger', 'switch0');
|
||||||
|
|
Loading…
Reference in a new issue