From: Florian Eckert Date: Tue, 6 Oct 2020 09:15:45 +0000 (+0200) Subject: luci-mod-system: fix uci led option remove callback X-Git-Url: http://git.lede-project.org./?a=commitdiff_plain;h=a75ae38b6b36fec76c259c8313857003f5b23841;p=project%2Fluci.git luci-mod-system: fix uci led option remove callback fixes #4478 Signed-off-by: Florian Eckert --- diff --git a/modules/luci-mod-system/htdocs/luci-static/resources/view/system/leds.js b/modules/luci-mod-system/htdocs/luci-static/resources/view/system/leds.js index 9fe1bff55e..23feebc005 100644 --- a/modules/luci-mod-system/htdocs/luci-static/resources/view/system/leds.js +++ b/modules/luci-mod-system/htdocs/luci-static/resources/view/system/leds.js @@ -88,6 +88,32 @@ return view.extend({ 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();