From fc5b9e27f0bdc9483f88f368bf3a3090c63bbd39 Mon Sep 17 00:00:00 2001 From: Jo-Philipp Wich Date: Sat, 30 Oct 2010 17:57:49 +0000 Subject: [PATCH] libs/web: use imatch() in model related widgets, support multivalues in netlist widget --- libs/web/luasrc/view/cbi/firewall_zonelist.htm | 6 +++--- libs/web/luasrc/view/cbi/network_ifacelist.htm | 17 +++++++++++------ libs/web/luasrc/view/cbi/network_netlist.htm | 15 +++++++++++++-- 3 files changed, 27 insertions(+), 11 deletions(-) diff --git a/libs/web/luasrc/view/cbi/firewall_zonelist.htm b/libs/web/luasrc/view/cbi/firewall_zonelist.htm index 4f4106b87..891c70e77 100644 --- a/libs/web/luasrc/view/cbi/firewall_zonelist.htm +++ b/libs/web/luasrc/view/cbi/firewall_zonelist.htm @@ -15,8 +15,8 @@ $Id$ <%- local utl = require "luci.util" - local fwm = require "luci.model.firewall" - local nwm = require "luci.model.network" + local fwm = require "luci.model.firewall".init() + local nwm = require "luci.model.network".init() local zone, net, iface local zones = fwm:get_zones() @@ -33,7 +33,7 @@ $Id$ checked[value] = true end elseif value then - checked[value] = true + checked[value] = true end -%> diff --git a/libs/web/luasrc/view/cbi/network_ifacelist.htm b/libs/web/luasrc/view/cbi/network_ifacelist.htm index 53a50e962..a69bd3284 100644 --- a/libs/web/luasrc/view/cbi/network_ifacelist.htm +++ b/libs/web/luasrc/view/cbi/network_ifacelist.htm @@ -14,16 +14,16 @@ $Id$ <%+cbi/valueheader%> <%- - local net = require "luci.model.network" + local utl = require "luci.util" + local net = require "luci.model.network".init() local iface local ifaces = net:get_interfaces() - local value = (self:formvalue(section) or self.default or "") + local value = (self:formvalue(section) or self.default) local checked = { } - if value and #value > 0 then - if type(value) == "table" then value = table.concat(value, " ") end - for value in value:gmatch("%S+") do + if value then + for value in utl.imatch(value) do checked[value] = true end else @@ -42,7 +42,12 @@ $Id$ local link = iface:adminlink() if not self.nobridges or not iface:is_bridge() then %>
  • - " onclick="cbi_d_update(this.id)" onchange="cbi_d_update(this.id)"<%=attr("type", self.widget or "radio") .. attr("id", cbid .. "." .. iface:name()) .. attr("name", cbid) .. attr("value", iface:name()) .. ifattr(checked[iface:name()], "checked", "checked")%> />   + " onclick="cbi_d_update(this.id)" onchange="cbi_d_update(this.id)"<%= + attr("type", self.widget or "radio") .. + attr("id", cbid .. "." .. iface:name()) .. + attr("name", cbid) .. attr("value", iface:name()) .. + ifattr(checked[iface:name()], "checked", "checked") + %> />   > <% if link then -%><% end -%> .png" /> diff --git a/libs/web/luasrc/view/cbi/network_netlist.htm b/libs/web/luasrc/view/cbi/network_netlist.htm index f5a6ce443..2d464cc87 100644 --- a/libs/web/luasrc/view/cbi/network_netlist.htm +++ b/libs/web/luasrc/view/cbi/network_netlist.htm @@ -14,7 +14,8 @@ $Id$ <%+cbi/valueheader%> <%- - local nwm = require "luci.model.network" + local utl = require "luci.util" + local nwm = require "luci.model.network".init() local net, iface local networks = nwm:get_networks() @@ -23,13 +24,23 @@ $Id$ if not value or value == "-" then value = self:cfgvalue(section) or self.default end + + local checked = { } + for value in utl.imatch(value) do + checked[value] = true + end -%>
      <% for _, net in ipairs(networks) do if net:name() ~= "loopback" then %>
    • - />   + />   >  <%=net:name()%>: <% -- 2.11.0