3 var m
= new L
.cbi
.Map('system', {
4 caption
: L
.tr('LED Configuration'),
5 description
: L
.tr('Customizes the behaviour of the device LEDs if possible.'),
8 L
.system
.listLEDs(function(leds
) {
9 delete m
.sections
[0].fields
.sysfs
.choices
;
10 delete m
.sections
[0].fields
.trigger
.choices
;
12 for (var i
= 0; i
< leds
.length
; i
++)
13 m
.sections
[0].fields
.sysfs
.value(leds
[i
].name
);
15 for (var i
= 0; i
< leds
[0].triggers
.length
; i
++)
16 m
.sections
[0].fields
.trigger
.value(leds
[0].triggers
[i
]);
18 L
.system
.listUSBDevices(function(devs
) {
19 delete m
.sections
[0].fields
._usb_dev
.choices
;
21 for (var i
= 0; i
< devs
.length
; i
++)
22 m
.sections
[0].fields
._usb_dev
.value(devs
[i
].name
,
23 '%04x:%04x (%s - %s)'.format(devs
[i
].vendor_id
, devs
[i
].product_id
,
24 devs
[i
].vendor_name
|| '?', devs
[i
].product_name
|| '?'));
26 L
.network
.getDeviceStatus(undefined, function(devs
) {
29 for (var device
in devs
)
35 delete m
.sections
[0].fields
._net_dev
.choices
;
37 for (var i
= 0; i
< devices
.length
; i
++)
38 m
.sections
[0].fields
._net_dev
.value(devices
[i
]);
44 var s
= m
.section(L
.cbi
.TypedSection
, 'led', {
45 caption: function(sid
) { return sid
? (this.fields
.name
.textvalue(sid
) || L
.tr('Unnamed LED')) : '' },
46 teasers
: [ 'sysfs', 'default', 'trigger', '_net_dev', 'mode', '_usb_dev', 'delayon', 'delayoff' ],
49 add_caption
: L
.tr('Add new LED defintion'),
50 remove_caption
: L
.tr('Remove LED definition'),
51 readonly
: !this.options
.acls
.leds
54 s
.option(L
.cbi
.InputValue
, 'name', {
58 s
.option(L
.cbi
.ListValue
, 'sysfs', {
59 caption
: L
.tr('LED Name')
62 s
.option(L
.cbi
.ListValue
, 'default', {
63 caption
: L
.tr('Default state'),
65 }).value('0', L
.trc('LED state', 'off')).value('1', L
.trc('LED state', 'on'));
67 s
.option(L
.cbi
.ListValue
, 'trigger', {
68 caption
: L
.tr('Trigger')
72 s
.option(L
.cbi
.InputValue
, 'delayon', {
73 caption
: L
.trc('LED timer trigger', 'On-State Delay'),
74 description
: L
.trc('LED timer trigger', 'Time in milliseconds the LED stays on'),
76 }).depends('trigger', 'timer');
78 s
.option(L
.cbi
.InputValue
, 'delayoff', {
79 caption
: L
.trc('LED timer trigger', 'Off-State Delay'),
80 description
: L
.trc('LED timer trigger', 'Time in milliseconds the LED stays off'),
82 }).depends('trigger', 'timer');
85 s
.option(L
.cbi
.ListValue
, '_net_dev', {
86 caption
: L
.trc('LED netdev trigger', 'Device'),
89 }).depends('trigger', 'netdev');
91 s
.option(L
.cbi
.MultiValue
, 'mode', {
92 caption
: L
.trc('LED netdev trigger', 'Trigger Mode')
93 }).depends('trigger', 'netdev')
94 .value('link', L
.trc('LED netdev trigger mode', 'Link On'))
95 .value('tx', L
.trc('LED netdev trigger mode', 'Transmit'))
96 .value('rx', L
.trc('LED netdev trigger mode', 'Receive'));
99 s
.option(L
.cbi
.ListValue
, '_usb_dev', {
100 caption
: L
.trc('LED usbdev trigger', 'Device'),
103 }).depends('trigger', 'usbdev');
105 return m
.insertInto('#map');