summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorJo-Philipp Wich <jow@openwrt.org>2008-09-20 22:11:41 +0000
committerJo-Philipp Wich <jow@openwrt.org>2008-09-20 22:11:41 +0000
commitdc253f4af41caab2430fe1fbc69ff092d6fb2d04 (patch)
treeecb6503f8cd6d4ec0fa731c5946f2e58ed2d0deb
parent71adba8a50570257892b60dd9872191c54dd7041 (diff)
* 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)
-rw-r--r--libs/cbi/luasrc/cbi.lua3
-rw-r--r--modules/admin-full/luasrc/model/cbi/admin_index/luci.lua11
-rw-r--r--modules/admin-mini/luasrc/model/cbi/mini/luci.lua9
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