build: introduce luci-base
[project/luci.git] / modules / base / luasrc / luasrc / view / cbi / firewall_zoneforwards.htm
diff --git a/modules/base/luasrc/luasrc/view/cbi/firewall_zoneforwards.htm b/modules/base/luasrc/luasrc/view/cbi/firewall_zoneforwards.htm
new file mode 100644 (file)
index 0000000..2a433b5
--- /dev/null
@@ -0,0 +1,59 @@
+<%+cbi/valueheader%>
+
+<%-
+       local utl = require "luci.util"
+       local fwm = require "luci.model.firewall".init()
+       local nwm = require "luci.model.network".init()
+
+       local zone, fwd, fz
+       local value = self:formvalue(section)
+       if not value or value == "-" then
+               value = self:cfgvalue(section) or self.default
+       end
+
+       local def  = fwm:get_defaults()
+       local zone = fwm:get_zone(value)
+       local empty = true
+-%>
+
+<% if zone then %>
+<div style="white-space:nowrap">
+       <label class="zonebadge" style="background-color:<%=zone:get_color()%>">
+               <strong><%=zone:name()%>:</strong>
+               <%-
+                       local zempty = true
+                       for _, net in ipairs(zone:get_networks()) do
+                               net = nwm:get_network(net)
+                               if net then
+                                       zempty = false
+               -%>
+                       <span class="ifacebadge<% if net:name() == self.network then %> ifacebadge-active<% end %>"><%=net:name()%>:
+                       <%
+                               local nempty = true
+                               for _, iface in ipairs(net:is_bridge() and net:get_interfaces() or { net:get_interface() }) do
+                                       nempty = false
+                        %>
+                               <img<%=attr("title", iface:get_i18n())%> style="width:16px; height:16px; vertical-align:middle" src="<%=resource%>/icons/<%=iface:type()%><%=iface:is_up() and "" or "_disabled"%>.png" />
+                       <% end %>
+                       <% if nempty then %><em><%:(empty)%></em><% end %>
+                       </span>
+               <%- end end -%>
+               <%- if zempty then %><em><%:(empty)%></em><% end -%>
+       </label>
+       &#160;&#8658;&#160;
+       <% for _, fwd in ipairs(zone:get_forwardings_by("src")) do
+               fz = fwd:dest_zone()
+               empty = false %>
+               <label class="zonebadge" style="background-color:<%=fz:get_color()%>">
+                       <strong><%=fz:name()%></strong>
+               </label>&#160;
+       <% end %>
+       <% if empty then %>
+               <label class="zonebadge zonebadge-empty">
+                       <strong><%=zone:forward():upper()%></strong>
+               </label>
+       <% end %>
+</div>
+<% end %>
+
+<%+cbi/valuefooter%>