Fixed DHCP-Options and some CBI stuff
authorSteven Barth <steven@midlink.org>
Sun, 7 Sep 2008 23:50:58 +0000 (23:50 +0000)
committerSteven Barth <steven@midlink.org>
Sun, 7 Sep 2008 23:50:58 +0000 (23:50 +0000)
i18n/english/luasrc/i18n/admin-core.en.lua
i18n/english/luasrc/i18n/admin-core.en.xml
i18n/german/luasrc/i18n/admin-core.de.lua
i18n/german/luasrc/i18n/admin-core.de.xml
libs/cbi/luasrc/cbi.lua
libs/cbi/luasrc/view/cbi/dynlist.htm
libs/cbi/luasrc/view/cbi/mvalue.htm
modules/admin-full/luasrc/model/cbi/admin_network/dhcp.lua

index b3422645941cf14b17a8cc5da787558ab6f7ffeb..88d6249c6a08795f0bf9df1e016aaa1353aa6918 100644 (file)
@@ -182,6 +182,8 @@ dhcp_dhcp_ignore_desc = 'disable <abbr title="Dynamic Host Configuration Protoco
 dhcp_dhcp_force = 'Force'
 dhcp_dhcp_start_desc = 'first address (last octet)'
 dhcp_dhcp_limit_desc = 'number of leased addresses -1'
+dhcp_dhcp_dhcpoption = 'DHCP-Options'
+dhcp_dhcp_dhcpoption_desc = 'See &quot;dnsmasq --help dhcp&quot; for a list of available options.'
 dhcp_leases = 'Leases'
 luci_ethers = 'Static Leases'
 dhcp_timeremain = 'Leasetime remaining'
index 5ffd01a266f67432ee58382903a5ec329868fc3a..c161a948ccaed0db9d6777a2e38768b4ff8ffc85 100644 (file)
 <i18n:msg xml:id="dhcp_dhcp_force">Force</i18n:msg>
 <i18n:msg xml:id="dhcp_dhcp_start_desc">first address (last octet)</i18n:msg>
 <i18n:msg xml:id="dhcp_dhcp_limit_desc">number of leased addresses -1</i18n:msg>
+<i18n:msg xml:id="dhcp_dhcp_dhcpoption">DHCP-Options</i18n:msg>
+<i18n:msg xml:id="dhcp_dhcp_dhcpoption_desc">See "dnsmasq --help dhcp" for a list of available options.</i18n:msg>
 <i18n:msg xml:id="dhcp_leases">Leases</i18n:msg>
 <i18n:msg xml:id="luci_ethers">Static Leases</i18n:msg>
 <i18n:msg xml:id="dhcp_timeremain">Leasetime remaining</i18n:msg>
index 8bc4f1cd66c45491b2d344104fbf8c00f837a4f8..30258fbffe5b548cad4c52308f2c146d9a189f0d 100644 (file)
@@ -141,6 +141,8 @@ dhcp_dhcp_force = 'Start erzwingen'
 dhcp_dhcp_ignore = 'Schnittstelle ignorieren'
 dhcp_dhcp_ignore_desc = 'DHCP für dieses Netzwerk deaktivieren'
 dhcp_dhcp_leasetime = 'Laufzeit'
+dhcp_dhcp_dhcpoption = 'DHCP-Optionen'
+dhcp_dhcp_dhcpoption_desc = 'Siehe &quot;dnsmasq --help dhcp&quot; für eine Liste verfügbarer Optionen.'
 dhcp_dhcp_limit_desc = 'Anzahl zu vergebender Adressen -1'
 dhcp_dhcp_start_desc = 'Erste vergebene Adresse (letztes Oktett)'
 dhcp_dnsmasq_addnhosts = 'Zusätzliche Hostdatei'
index 9b7281972473047b64ec2645cc41ad62e49252e5..3a821c3fdbc3982001245ad1630c8d76c4f688b1 100644 (file)
 <i18n:msg xml:id="dhcp_dhcp_ignore">Schnittstelle ignorieren</i18n:msg>
 <i18n:msg xml:id="dhcp_dhcp_ignore_desc">DHCP für dieses Netzwerk deaktivieren</i18n:msg>
 <i18n:msg xml:id="dhcp_dhcp_leasetime">Laufzeit</i18n:msg>
+<i18n:msg xml:id="dhcp_dhcp_dhcpoption">DHCP-Optionen</i18n:msg>
+<i18n:msg xml:id="dhcp_dhcp_dhcpoption_desc">Siehe "dnsmasq --help dhcp" für eine Liste verfügbarer Optionen.</i18n:msg>
 <i18n:msg xml:id="dhcp_dhcp_limit_desc">Anzahl zu vergebender Adressen -1</i18n:msg>
 <i18n:msg xml:id="dhcp_dhcp_start_desc">Erste vergebene Adresse (letztes Oktett)</i18n:msg>
 <i18n:msg xml:id="dhcp_dnsmasq_addnhosts">Zusätzliche Hostdatei</i18n:msg>
index 30727cef22e9e4547984109926af0c77db93c98b..df7f292522acd94704efb6a9a40cf45ed9bfa04d 100644 (file)
@@ -933,7 +933,7 @@ function AbstractValue.parse(self, section)
        local fvalue = self:formvalue(section)
        local cvalue = self:cfgvalue(section)
 
-       if fvalue and fvalue ~= "" then -- If we have a form value, write it to UCI
+       if fvalue and #fvalue > 0 then -- If we have a form value, write it to UCI
                fvalue = self:transform(self:validate(fvalue, section))
                if not fvalue then
                        self.tag_invalid[section] = true
@@ -983,7 +983,9 @@ end
 -- Return the UCI value of this object
 function AbstractValue.cfgvalue(self, section)
        local value = self.map:get(section, self.option)
-       if not self.cast or self.cast == type(value) then
+       if not value then
+               return nil
+       elseif not self.cast or self.cast == type(value) then
                return value
        elseif self.cast == "string" then
                if type(value) == "table" then
@@ -1251,7 +1253,8 @@ function DynamicList.value(self, key, val)
        table.insert(self.vallist, tostring(val))
 end
 
-function DynamicList.validate(self, value, section)
+function DynamicList.formvalue(self, section)
+       local value = AbstractValue.formvalue(self, section)
        value = (type(value) == "table") and value or {value}
 
        local valid = {}
index 1d28f95d9b5d71f4e621017b6cb56b3e988f81f9..1cfd6f03e5295a1dbe1e623608906aa166693e7a 100644 (file)
@@ -14,7 +14,7 @@ $Id$
 -%>
 <%+cbi/valueheader%>
 <%
-       local vals = self:cfgvalue(section)
+       local vals = self:cfgvalue(section) or {}
        for i=1, #vals + 1 do
                local val = vals[i]
 %>
index 4b69708ecd4f3d82aa035816cc122aa657e47a51..414089fb2ed47f784c6ae3291591baac9af47ebe 100644 (file)
@@ -13,7 +13,7 @@ $Id$
 
 -%>
 <%
-local v = self:valuelist(section)
+local v = self:valuelist(section) or {}
 %>
 <%+cbi/valueheader%>
 <% if self.widget == "select" then %>
index 42b93b59947e493fcaf650e91a2e03cb0d0990b4..17dcdb8f0071c4a07b26681957517210e27f7be7 100644 (file)
@@ -56,10 +56,7 @@ s:option(Value, "netmask", translate("netmask")).optional = true
 
 s:option(Flag, "force").optional = true
 
-for i, line in pairs(luci.util.execl("dnsmasq --help dhcp")) do
-       k, v = line:match("([^ ]+) +([^ ]+)")
-       s:option(Value, "dhcp"..k, v).optional = true
-end
+s:option(DynamicList, "dhcp_option").optional = true
 
 
 for i, n in ipairs(s.children) do