libs/web: rework unspecified/create logic for checkboxes in network_netlist widget
[project/luci.git] / libs / web / luasrc / view / cbi / network_netlist.htm
index 8840c3d..8013f2c 100644 (file)
@@ -1,16 +1,3 @@
-<%#
-LuCI - Lua Configuration Interface
-Copyright 2009 Jo-Philipp Wich <xm@subsignal.org>
-
-Licensed under the Apache License, Version 2.0 (the "License");
-you may not use this file except in compliance with the License.
-You may obtain a copy of the License at
-
-       http://www.apache.org/licenses/LICENSE-2.0
-
-$Id$
-
--%>
 <%+cbi/valueheader%>
 
 <%-
@@ -33,7 +20,10 @@ $Id$
 
 <ul style="margin:0; list-style-type:none; text-align:left">
        <% for _, net in ipairs(networks) do
-              if net:name() ~= "loopback" and net:name() ~= self.exclude then %>
+              if (net:name() ~= "loopback") and
+                     (net:name() ~= self.exclude) and
+                     (not self.novirtual or not net:is_virtual())
+                  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") ..
@@ -42,10 +32,10 @@ $Id$
                        ifattr(checked[net:name()], "checked", "checked")
                %> /> &#160;
                <label<%=attr("for", cbid .. "." .. net:name())%>>
-                       &#160;<span style="background-color:#FFFFFF; border:1px solid #CCCCCC; padding:2px"><%=net:name()%>:
+                       <span class="ifacebadge"><%=net:name()%>:
                                <%
                                        local empty = true
-                                       for _, iface in ipairs(net:get_interfaces()) do
+                                       for _, iface in ipairs(net:is_bridge() and net:get_interfaces() or { net:get_interface() }) do
                                                if not iface:is_bridge() then
                                                        empty = false
                                 %>
@@ -57,11 +47,16 @@ $Id$
        </li>
        <% end end %>
 
-       <% if self.widget ~= "checkbox" and not self.nocreate then %>
+       <% if not self.nocreate 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)" type="radio"<%=attr("id", cbid .. "_new") .. attr("name", cbid) .. attr("value", "-") .. ifattr(not value, "checked", "checked")%> /> &#160;
+               <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 .. "_new") .. attr("name", cbid) .. attr("value", "-") .. ifattr(not value and self.widget ~= "checkbox", "checked", "checked")%> /> &#160;
                <div style="padding:0.5em; display:inline">
-                       <label<%=attr("for", cbid .. "_new")%>><em><%:unspecified -or- create:%>&#160;</em></label>
+                       <label<%=attr("for", cbid .. "_new")%>><em>
+                               <%- if self.widget == "checkbox" then -%>
+                                       <%:create:%>
+                               <%- else -%>
+                                       <%:unspecified -or- create:%>
+                               <%- end -%>&#160;</em></label>
                        <input style="width:6em" type="text"<%=attr("name", cbid .. ".newnet")%> onfocus="document.getElementById('<%=cbid%>_new').checked=true" />
                </div>
        </li>