From dc253f4af41caab2430fe1fbc69ff092d6fb2d04 Mon Sep 17 00:00:00 2001 From: Jo-Philipp Wich Date: Sat, 20 Sep 2008 22:11:41 +0000 Subject: [PATCH] * luci/libs/cbi: implement commit hooks in cbi maps * luci/moules/admin-mini: reload global config namespace when change theme or language (for persistent environments) * luci/moules/admin-full: reload global config namespace when change theme or language (for persistent environments) --- libs/cbi/luasrc/cbi.lua | 3 +++ .../admin-full/luasrc/model/cbi/admin_index/luci.lua | 11 +++++++++-- modules/admin-mini/luasrc/model/cbi/mini/luci.lua | 9 ++++++++- 3 files changed, 20 insertions(+), 3 deletions(-) diff --git a/libs/cbi/luasrc/cbi.lua b/libs/cbi/luasrc/cbi.lua index d2de8685b..97c453cf2 100644 --- a/libs/cbi/luasrc/cbi.lua +++ b/libs/cbi/luasrc/cbi.lua @@ -288,6 +288,9 @@ function Map.parse(self) for i, config in ipairs(self.parsechain) do self.uci:unload(config) end + if type(self.commit_handler) == "function" then + self:commit_handler() + end end end diff --git a/modules/admin-full/luasrc/model/cbi/admin_index/luci.lua b/modules/admin-full/luasrc/model/cbi/admin_index/luci.lua index 3fdccbf80..6e58a5474 100644 --- a/modules/admin-full/luasrc/model/cbi/admin_index/luci.lua +++ b/modules/admin-full/luasrc/model/cbi/admin_index/luci.lua @@ -12,9 +12,16 @@ You may obtain a copy of the License at $Id$ ]]-- require("luci.config") -m = Map("luci", translate("webui"), translate("a_i_luci1", +m = Map("luci", translate("webui"), translate("a_i_luci1", "Hier können Eigenschaften und die Funktionalität der Oberfläche angepasst werden.")) +-- force reload of global luci config namespace to reflect the changes +function m.commit_handler(self) + package.loaded["luci.config"] = nil + require("luci.config") +end + + c = m:section(NamedSection, "main", "core", translate("general")) l = c:option(ListValue, "lang", translate("language")) @@ -41,4 +48,4 @@ f = m:section(NamedSection, "flash_keep", "extern", translate("a_i_keepflash"), translate("a_i_keepflash1")) f.dynamic = true -return m \ No newline at end of file +return m diff --git a/modules/admin-mini/luasrc/model/cbi/mini/luci.lua b/modules/admin-mini/luasrc/model/cbi/mini/luci.lua index 1b0f3b102..8d4e7053d 100644 --- a/modules/admin-mini/luasrc/model/cbi/mini/luci.lua +++ b/modules/admin-mini/luasrc/model/cbi/mini/luci.lua @@ -15,6 +15,13 @@ $Id$ require("luci.config") m = Map("luci", translate("webui"), translate("a_i_luci1")) +-- force reload of global luci config namespace to reflect the changes +function m.commit_handler(self) + package.loaded["luci.config"] = nil + require("luci.config") +end + + c = m:section(NamedSection, "main", "core", translate("general")) l = c:option(ListValue, "lang", translate("language")) @@ -33,4 +40,4 @@ for k, v in pairs(luci.config.themes) do end end -return m \ No newline at end of file +return m -- 2.25.1