* luci/modules/admin-{core,mini,full}: implement new zoneinfo in system models

This commit is contained in:
Jo-Philipp Wich 2008-11-06 18:59:15 +00:00
parent caf05a86f3
commit 4869b91bc3
3 changed files with 41 additions and 28 deletions

View file

@ -17,6 +17,11 @@ config variable
option datatype 'hostname' option datatype 'hostname'
option required true option required true
config variable
option name 'zonename'
option title 'Option zonename'
option section 'system.system'
config variable config variable
option name 'timezone' option name 'timezone'
option title 'Option timezone' option title 'Option timezone'

View file

@ -11,8 +11,9 @@ You may obtain a copy of the License at
$Id$ $Id$
]]-- ]]--
require("luci.http.protocol.date")
require("luci.sys") require("luci.sys")
require("luci.sys.zoneinfo")
require("luci.tools.webadmin") require("luci.tools.webadmin")
m = Map("system", translate("system"), translate("a_s_desc")) m = Map("system", translate("system"), translate("a_s_desc"))
@ -48,17 +49,22 @@ s:option(DummyValue, "_uptime", translate("m_i_uptime")).value =
s:option(Value, "hostname", translate("hostname")) s:option(Value, "hostname", translate("hostname"))
tz = s:option(Value, "timezone", translate("timezone")) tz = s:option(ListValue, "zonename", translate("timezone"))
for k, offset in luci.util.vspairs(luci.http.protocol.date.TZ) do tz:value("UTC")
local zone = k:upper()
local osgn = (offset >= 0 and "" or "+")
local ohrs = math.floor(-offset / 3600)
local omin = (offset % 3600) / 60
local ptz = zone .. osgn .. (ohrs ~= 0 and ohrs or "") .. (omin ~= 0 and ":" .. omin or "") for i, zone in ipairs(luci.sys.zoneinfo.TZ) do
local dtz = string.format("%+03d:%02d ", ohrs, omin) .. zone tz:value(zone[1])
end
tz:value(ptz, dtz) function tz.write(self, section, value)
local function lookup_zone(title)
for _, zone in ipairs(luci.sys.zoneinfo.TZ) do
if zone[1] == title then return zone[2] end
end
end
AbstractValue.write(self, section, value)
self.map.uci:set("system", section, "timezone", lookup_zone(value) or "GMT0")
end end
s:option(Value, "log_size", nil, "kiB").optional = true s:option(Value, "log_size", nil, "kiB").optional = true

View file

@ -11,8 +11,9 @@ You may obtain a copy of the License at
$Id$ $Id$
]]-- ]]--
require("luci.http.protocol.date")
require("luci.sys") require("luci.sys")
require("luci.sys.zoneinfo")
require("luci.tools.webadmin") require("luci.tools.webadmin")
@ -49,23 +50,24 @@ s:option(DummyValue, "_systime", translate("m_i_systemtime")).value =
s:option(DummyValue, "_uptime", translate("m_i_uptime")).value = s:option(DummyValue, "_uptime", translate("m_i_uptime")).value =
luci.tools.webadmin.date_format(tonumber(uptime)) luci.tools.webadmin.date_format(tonumber(uptime))
s:option(Value, "hostname", translate("hostname")) s:option(Value, "hostname", translate("hostname"))
tz = s:option(Value, "timezone", translate("timezone")) tz = s:option(ListValue, "zonename", translate("timezone"))
for k, offset in luci.util.vspairs(luci.http.protocol.date.TZ) do tz:value("UTC")
local zone = k:upper()
local osgn = (offset >= 0 and "" or "+")
local ohrs = math.floor(-offset / 3600)
local omin = (offset % 3600) / 60
local ptz = zone .. osgn .. (ohrs ~= 0 and ohrs or "") .. (omin ~= 0 and ":" .. omin or "") for i, zone in ipairs(luci.sys.zoneinfo.TZ) do
local dtz = string.format("%+03d:%02d ", ohrs, omin) .. zone tz:value(zone[1])
end
tz:value(ptz, dtz) function tz.write(self, section, value)
local function lookup_zone(title)
for _, zone in ipairs(luci.sys.zoneinfo.TZ) do
if zone[1] == title then return zone[2] end
end
end
AbstractValue.write(self, section, value)
self.map.uci:set("system", section, "timezone", lookup_zone(value) or "GMT0")
end end
return m return m