* 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 required true
config variable
option name 'zonename'
option title 'Option zonename'
option section 'system.system'
config variable
option name 'timezone'
option title 'Option timezone'

View file

@ -11,8 +11,9 @@ You may obtain a copy of the License at
$Id$
]]--
require("luci.http.protocol.date")
require("luci.sys")
require("luci.sys.zoneinfo")
require("luci.tools.webadmin")
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"))
tz = s:option(Value, "timezone", translate("timezone"))
for k, offset in luci.util.vspairs(luci.http.protocol.date.TZ) do
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 "")
local dtz = string.format("%+03d:%02d ", ohrs, omin) .. zone
tz:value(ptz, dtz)
tz = s:option(ListValue, "zonename", translate("timezone"))
tz:value("UTC")
for i, zone in ipairs(luci.sys.zoneinfo.TZ) do
tz:value(zone[1])
end
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
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$
]]--
require("luci.http.protocol.date")
require("luci.sys")
require("luci.sys.zoneinfo")
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 =
luci.tools.webadmin.date_format(tonumber(uptime))
s:option(Value, "hostname", translate("hostname"))
tz = s:option(Value, "timezone", translate("timezone"))
for k, offset in luci.util.vspairs(luci.http.protocol.date.TZ) do
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 "")
local dtz = string.format("%+03d:%02d ", ohrs, omin) .. zone
tz:value(ptz, dtz)
tz = s:option(ListValue, "zonename", translate("timezone"))
tz:value("UTC")
for i, zone in ipairs(luci.sys.zoneinfo.TZ) do
tz:value(zone[1])
end
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
return m