8 var callLeds = rpc.declare({
18 L.resolveDefault(fs.list('/www' + L.resource('view/system/led-trigger')), [])
19 ]).then(function(data) {
20 var plugins = data[1];
23 for (var i = 0; i < plugins.length; i++) {
24 var m = plugins[i].name.match(/^(.+)\.js$/);
26 if (plugins[i].type != 'file' || m == null)
29 tasks.push(L.require('view.system.led-trigger.' + m[1]).then(L.bind(function(name){
30 return L.resolveDefault(L.require('view.system.led-trigger.' + name)).then(function(form) {
39 return Promise.all(tasks).then(function(plugins) {
48 render: function(data) {
49 var m, s, o, triggers = [];
51 var plugins = data[1];
54 for (var i = 0; i < leds[k].triggers.length; i++)
55 triggers[i] = leds[k].triggers[i];
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.GridSection, 'led', '');
65 s.addbtntitle = _('Add LED action');
67 s.option(form.Value, 'name', _('Name'));
69 o = s.option(form.ListValue, 'sysfs', _('<abbr title="Light Emitting Diode">LED</abbr> Name'));
70 Object.keys(leds).sort().forEach(function(name) {
74 o = s.option(form.ListValue, 'trigger', _('Trigger'));
75 for (var i = 0; i < plugins.length; i++) {
76 var plugin = plugins[i];
78 if ( plugin.form.kernel == false )
79 o.value(plugin.name, plugin.form.trigger);
81 for (var k = 0; k < triggers.length; k++)
82 if ( plugin.name == triggers[k] )
83 o.value(plugin.name, plugin.form.trigger);
86 s.addModalOptions = function(s) {
87 for (var i = 0; i < plugins.length; i++) {
88 var plugin = plugins[i];
89 plugin.form.addFormOptions(s);