- if (usb.devices && usb.devices.length)
- triggers['usbdev'] = true;
- if (usb.ports && usb.ports.length)
- triggers['usbport'] = true;
- Object.keys(triggers).sort().forEach(function(t) { o.value(t, t.replace(/-/g, '')) });
-
- o = s.option(form.Value, 'delayon', _('On-State Delay'));
- o.modalonly = true;
- o.depends('trigger', 'timer');
-
- o = s.option(form.Value, 'delayoff', _('Off-State Delay'));
- o.modalonly = true;
- o.depends('trigger', 'timer');
-
- o = s.option(widgets.DeviceSelect, '_net_dev', _('Device'));
- o.rmempty = true;
- o.ucioption = 'dev';
- o.modalonly = true;
- o.noaliases = true;
- o.depends('trigger', 'netdev');
- o.remove = function(section_id) {
- var topt = this.map.lookupOption('trigger', section_id),
- tval = topt ? topt[0].formvalue(section_id) : null;
-
- if (tval != 'netdev' && tval != 'usbdev')
- uci.unset('system', section_id, 'dev');
- };
-
- o = s.option(form.MultiValue, 'mode', _('Trigger Mode'));
- o.rmempty = true;
- o.modalonly = true;
- o.depends('trigger', 'netdev');
- o.value('link', _('Link On'));
- o.value('tx', _('Transmit'));
- o.value('rx', _('Receive'));
-
- if (usb.devices && usb.devices.length) {
- o = s.option(form.ListValue, '_usb_dev', _('USB Device'));
- o.depends('trigger', 'usbdev');
- o.rmempty = true;
- o.ucioption = 'dev';
- o.modalonly = true;
- o.remove = function(section_id) {
- var topt = this.map.lookupOption('trigger', section_id),
- tval = topt ? topt[0].formvalue(section_id) : null;
-
- if (tval != 'netdev' && tval != '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 || '?'));
- });
- }
-
- if (usb.ports && usb.ports.length) {
- o = s.option(form.MultiValue, 'port', _('USB Ports'));
- o.depends('trigger', 'usbport');
- o.rmempty = true;
- o.modalonly = true;
- o.cfgvalue = function(section_id) {
- var ports = [],
- value = uci.get('system', section_id, 'port');
-
- if (!Array.isArray(value))
- value = String(value || '').split(/\s+/);
-
- for (var i = 0; i < value.length; i++)
- if (value[i].match(/^(\d+)-(\d+)$/))
- ports.push('usb%d-port%d'.format(Regexp.$1, Regexp.$2));
- else
- ports.push(value[i]);
-
- return ports;
- };
- usb.ports.forEach(function(usbport) {
- var dev = (usbport.device && Array.isArray(usb.devices))
- ? usb.devices.filter(function(d) { return d.id == usbport.device })[0] : null;
-
- var label = _('Port %s').format(usbport.port);
-
- if (dev)
- label += ' (%s - %s)'.format(dev.vendor || '?', dev.product || '?');
-
- o.value(usbport.port, label);
- });