<%-
local utl = require "luci.util"
- local nwm = require "luci.model.network"
+ local nwm = require "luci.model.network".init()
local net, iface
local networks = nwm:get_networks()
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
-%>
<ul style="margin:0; list-style-type:none; text-align:left">
- <% for _, net in utl.spairs(networks, function(a,b) return (networks[a]:name() < networks[b]:name()) end) do
- if net:name() ~= "loopback" then %>
+ <% for _, net in ipairs(networks) do
+ if net:name() ~= "loopback" and net:name() ~= self.exclude then %>
<li style="padding:0.25em 0">
- <input class="cbi-input-radio" onclick="cbi_d_update(this.id)" onchange="cbi_d_update(this.id)"<%=attr("type", self.widget or "radio") .. attr("id", cbid .. "." .. net:name()) .. attr("name", cbid) .. attr("value", net:name()) .. ifattr(value == net:name(), "checked", "checked")%> />
+ <input class="cbi-input-<%=self.widget or "radio"%>" onclick="cbi_d_update(this.id)" onchange="cbi_d_update(this.id)"<%=
+ attr("type", self.widget or "radio") ..
+ attr("id", cbid .. "." .. net:name()) ..
+ attr("name", cbid) .. attr("value", net:name()) ..
+ ifattr(checked[net:name()], "checked", "checked")
+ %> />
<label<%=attr("for", cbid .. "." .. net:name())%>>
<span style="background-color:#FFFFFF; border:1px solid #CCCCCC; padding:2px"><%=net:name()%>:
<%
<% if self.widget ~= "checkbox" and not self.nocreate then %>
<li style="padding:0.25em 0">
- <input class="cbi-input-radio" onclick="cbi_d_update(this.id)" onchange="cbi_d_update(this.id)" type="radio"<%=attr("id", cbid .. "_new") .. attr("name", cbid) .. attr("value", "-") .. ifattr(not value, "checked", "checked")%> />
+ <input class="cbi-input-<%=self.widget or "radio"%>" onclick="cbi_d_update(this.id)" onchange="cbi_d_update(this.id)" type="radio"<%=attr("id", cbid .. "_new") .. attr("name", cbid) .. attr("value", "-") .. ifattr(not value, "checked", "checked")%> />
<div style="padding:0.5em; display:inline">
<label<%=attr("for", cbid .. "_new")%>><em><%:unspecified -or- create:%> </em></label>
<input style="width:6em" type="text"<%=attr("name", cbid .. ".newnet")%> onfocus="document.getElementById('<%=cbid%>_new').checked=true" />
</div>
</li>
+ <% elseif self.widget ~= "checkbox" and self.unspecified then %>
+ <li style="padding:0.25em 0">
+ <input class="cbi-input-<%=self.widget or "radio"%>" onclick="cbi_d_update(this.id)" onchange="cbi_d_update(this.id)"<%=
+ attr("type", self.widget or "radio") ..
+ attr("id", cbid .. "_uns") ..
+ attr("name", cbid) ..
+ attr("value", "") ..
+ ifattr(not value or #value == 0, "checked", "checked")
+ %> />
+ <div style="padding:0.5em; display:inline">
+ <label<%=attr("for", cbid .. "_uns")%>><em><%:unspecified%></em></label>
+ </div>
+ </li>
<% end %>
</ul>