diff options
-rw-r--r-- | modules/luci-base/htdocs/luci-static/resources/uci.js | 2 | ||||
-rw-r--r-- | modules/luci-base/htdocs/luci-static/resources/ui.js | 4 | ||||
-rw-r--r-- | modules/luci-base/ucode/dispatcher.uc | 2 |
3 files changed, 7 insertions, 1 deletions
diff --git a/modules/luci-base/htdocs/luci-static/resources/uci.js b/modules/luci-base/htdocs/luci-static/resources/uci.js index 76b274470b..c56ce4016a 100644 --- a/modules/luci-base/htdocs/luci-static/resources/uci.js +++ b/modules/luci-base/htdocs/luci-static/resources/uci.js @@ -919,6 +919,8 @@ return baseclass.extend(/** @lends LuCI.uci.prototype */ { window.setTimeout(try_confirm, 250); else return Promise.reject(rv); + } else { + document.dispatchEvent(new CustomEvent('uci-applied')); } return rv; diff --git a/modules/luci-base/htdocs/luci-static/resources/ui.js b/modules/luci-base/htdocs/luci-static/resources/ui.js index afb590d8f8..b17fdc45fe 100644 --- a/modules/luci-base/htdocs/luci-static/resources/ui.js +++ b/modules/luci-base/htdocs/luci-static/resources/ui.js @@ -3478,6 +3478,10 @@ var UITable = baseclass.extend(/** @lends LuCI.ui.table.prototype */ { } }); +// Because the menu can depend on uci values, we need to flush the cache +// after uci mutations. +document.addEventListener('uci-applied', () => UIMenu.flushCache()); + /** * @class ui * @memberof LuCI diff --git a/modules/luci-base/ucode/dispatcher.uc b/modules/luci-base/ucode/dispatcher.uc index 8717385be2..694891a90e 100644 --- a/modules/luci-base/ucode/dispatcher.uc +++ b/modules/luci-base/ucode/dispatcher.uc @@ -358,7 +358,7 @@ function build_pagetree() { firstchild_ineligible: 'bool' }; - let files = glob('/usr/share/luci/menu.d/*.json', '/usr/lib/lua/luci/controller/*.lua', '/usr/lib/lua/luci/controller/*/*.lua'); + let files = glob('/usr/share/luci/menu.d/*.json', '/etc/config/*', '/usr/lib/lua/luci/controller/*.lua', '/usr/lib/lua/luci/controller/*/*.lua'); let cachefile; if (indexcache) { |