6 var callInitAction
, callLeds
, callUSB
, callNetdevs
;
8 callInitAction
= rpc
.declare({
11 params
: [ 'name', 'action' ],
12 expect
: { result
: false }
15 callLeds
= rpc
.declare({
20 callUSB
= rpc
.declare({
25 callNetdevs
= rpc
.declare({
28 expect
: { result
: [] },
29 filter: function(res
) {
31 for (var i
= 0; i
< res
.length
; i
++)
32 devs
[res
[i
].name
] = true;
33 return Object
.keys(devs
).sort();
37 return L
.view
.extend({
46 render: function(results
) {
47 var leds
= results
[0],
54 for (var i
= 0; i
< leds
[k
].triggers
.length
; i
++)
55 triggers
[leds
[k
].triggers
[i
]] = true;
57 m
= new form
.Map('system',
58 _('<abbr title="Light Emitting Diode">LED</abbr> Configuration'),
59 _('Customizes the behaviour of the device <abbr title="Light Emitting Diode">LED</abbr>s if possible.'));
61 s
= m
.section(form
.TypedSection
, 'led', '');
65 s
.option(form
.Value
, 'name', _('Name'));
67 o
= s
.option(form
.ListValue
, 'sysfs', _('<abbr title="Light Emitting Diode">LED</abbr> Name'));
68 Object
.keys(leds
).sort().forEach(function(name
) { o
.value(name
) });
70 o
= s
.option(form
.Flag
, 'default', _('Default state'));
73 trigger
= s
.option(form
.ListValue
, 'trigger', _('Trigger'));
74 Object
.keys(triggers
).sort().forEach(function(t
) { trigger
.value(t
, t
.replace(/-/g
, '')) });
75 trigger
.value('usbdev');
76 trigger
.value('usbport');
78 o
= s
.option(form
.Value
, 'delayon', _('On-State Delay'));
79 o
.depends('trigger', 'timer');
81 o
= s
.option(form
.Value
, 'delayoff', _('Off-State Delay'));
82 o
.depends('trigger', 'timer');
84 o
= s
.option(form
.ListValue
, '_net_dev', _('Device'));
87 o
.depends('trigger', 'netdev');
88 o
.remove = function(section_id
) {
89 var t
= trigger
.formvalue(section_id
);
90 if (t
!= 'netdev' && t
!= 'usbdev')
91 uci
.unset('system', section_id
, 'dev');
94 netdevs
.sort().forEach(function(dev
) { o
.value(dev
) });
96 o
= s
.option(form
.MultiValue
, 'mode', _('Trigger Mode'));
98 o
.depends('trigger', 'netdev');
99 o
.value('link', _('Link On'));
100 o
.value('tx', _('Transmit'));
101 o
.value('rx', _('Receive'));
103 o
= s
.option(form
.ListValue
, '_usb_dev', _('USB Device'));
104 o
.depends('trigger', 'usbdev');
107 o
.remove = function(section_id
) {
108 var t
= trigger
.formvalue(section_id
);
109 if (t
!= 'netdev' && t
!= 'usbdev')
110 uci
.unset('system', section_id
, 'dev');
113 (usb
.devices
|| []).forEach(function(usbdev
) {
114 o
.value(usbdev
.id
, '%s (%s - %s)'.format(usbdev
.id
, usbdev
.vendor
|| '?', usbdev
.product
|| '?'));
117 o
= s
.option(form
.MultiValue
, 'port', _('USB Ports'));
118 o
.depends('trigger', 'usbport');
120 o
.cfgvalue = function(section_id
) {
122 value
= uci
.get('system', section_id
, 'port');
124 if (!Array
.isArray(value
))
125 value
= String(value
|| '').split(/\s+/);
127 for (var i
= 0; i
< value
.length
; i
++)
128 if (value
[i
].match(/^usb(\d+)-port(\d+)$/))
129 ports
.push(value
[i
]);
130 else if (value
[i
].match(/^(\d+)-(\d+)$/))
131 ports
.push('usb%d-port%d'.format(Regexp
.$1, Regexp
.$2));
135 (usb
.ports
|| []).forEach(function(usbport
) {
136 o
.value('usb%d-port%d'.format(usbport
.hub
, usbport
.port
),
137 'Hub %d, Port %d'.format(usbport
.hub
, usbport
.port
));
140 o
= s
.option(form
.Value
, 'port_mask', _('Switch Port Mask'));
141 o
.depends('trigger', 'switch0');
142 o
.depends('trigger', 'switch1');