treewide: Sync translations - i18n
[project/luci.git] / modules / luci-mod-system / htdocs / luci-static / resources / view / system / leds.js
index 9fe1bff55ef7ba632fdc05a9046ba9f85c5c6aec..f34a9360c3f83d09b3e6ce37e19f246036658908 100644 (file)
@@ -63,6 +63,7 @@ return view.extend({
                s.addremove = true;
                s.sortable = true;
                s.addbtntitle = _('Add LED action');
+               s.nodescriptions = true;
 
                s.option(form.Value, 'name', _('Name'));
 
@@ -75,19 +76,63 @@ return view.extend({
                for (var i = 0; i < plugins.length; i++) {
                        var plugin = plugins[i];
 
-                       if ( plugin.form.kernel == false )
+                       if ( plugin.form.kernel == false ) {
                                o.value(plugin.name, plugin.form.trigger);
-                       else
-                               for (var k = 0; k < triggers.length; k++)
-                                       if ( plugin.name == triggers[k] )
-                                               o.value(plugin.name, plugin.form.trigger);
+                       }
+                       else {
+                               if (triggers.indexOf(plugin.name) >= 0)
+                                       o.value(plugin.name, plugin.form.trigger);
+                       }
+               }
+               o.onchange = function(ev, section, value) {
+                       for (var i = 0; i < plugins.length; i++) {
+                               var plugin = plugins[i];
+                               if ( plugin.name === value )
+                                       this.map.findElement('id', 'cbid.system.%s.trigger'.format(section))
+                                               .nextElementSibling.innerHTML = plugin.form.description || '';
+                       }
                }
+               o.load = function(section_id) {
+                       var trigger = uci.get('system', section_id, 'trigger');
+                       for (var i = 0; i < plugins.length; i++) {
+                               var plugin = plugins[i];
+                               if ( plugin.name === trigger)
+                                       this.description = plugin.form.description || ' ';
+                       }
+                       return trigger;
+               };
 
                s.addModalOptions = function(s) {
                        for (var i = 0; i < plugins.length; i++) {
                                var plugin = plugins[i];
                                plugin.form.addFormOptions(s);
                        }
+
+                       var opts = s.getOption();
+
+                       var removeIfNoneActive = function(original_remove_fn, section_id) {
+                               var isAnyActive = false;
+
+                               for (var optname in opts) {
+                                       if (opts[optname].ucioption != this.ucioption)
+                                               continue;
+
+                                       if (!opts[optname].isActive(section_id))
+                                               continue;
+
+                                       isAnyActive = true;
+                                       break;
+                               }
+
+                               if (!isAnyActive)
+                                       original_remove_fn.call(this, section_id);
+                       };
+
+                       for (var optname in opts) {
+                               if (!opts[optname].ucioption || optname == opts[optname].ucioption)
+                                       continue;
+                               opts[optname].remove = removeIfNoneActive.bind(opts[optname], opts[optname].remove);
+                       }
                };
 
                return m.render();