* luci/libs/cbi: implement commit hooks in cbi maps
authorJo-Philipp Wich <jow@openwrt.org>
Sat, 20 Sep 2008 22:11:41 +0000 (22:11 +0000)
committerJo-Philipp Wich <jow@openwrt.org>
Sat, 20 Sep 2008 22:11:41 +0000 (22:11 +0000)
* 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
modules/admin-full/luasrc/model/cbi/admin_index/luci.lua
modules/admin-mini/luasrc/model/cbi/mini/luci.lua

index d2de868..97c453c 100644 (file)
@@ -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
 
index 3fdccbf..6e58a54 100644 (file)
@@ -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
index 1b0f3b1..8d4e705 100644 (file)
@@ -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