2009-10-08 00:17:40 +00:00
< %#
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%>
< %-
local utl = require "luci.util"
2010-10-30 17:57:49 +00:00
local fwm = require "luci.model.firewall".init()
local nwm = require "luci.model.network".init()
2009-10-08 00:17:40 +00:00
2009-10-10 14:47:37 +00:00
local zone, net, iface
2009-10-08 01:26:09 +00:00
local zones = fwm:get_zones()
2009-10-27 21:42:40 +00:00
local value = self:formvalue(section)
if not value or value == "-" then value = self:cfgvalue(section) or self.default end
2009-10-10 14:47:37 +00:00
local selected = false
2009-10-27 21:42:40 +00:00
local checked = { }
2009-10-08 00:17:40 +00:00
2009-10-27 21:42:40 +00:00
if value and #value == 0 then
value = nil
elseif type(value) == "table" then
for _, value in ipairs(value) do
checked[value] = true
end
elseif value then
2010-10-30 17:57:49 +00:00
checked[value] = true
2009-10-27 21:42:40 +00:00
end
2009-10-08 00:17:40 +00:00
-%>
2009-10-27 21:42:40 +00:00
< ul style = "margin:0; list-style-type:none; text-align:left" >
2009-10-10 14:47:37 +00:00
< %
for _, zone in utl.spairs(zones, function(a,b) return (zones[a]:name() < zones [ b ] :name ( ) ) end ) do
2009-10-27 21:42:40 +00:00
if zone:name() ~= self.exclude then
selected = selected or (value == zone:name())
2009-10-10 14:47:37 +00:00
%>
2009-10-08 00:17:40 +00:00
< li style = "padding:0.5em" >
2009-10-27 21:42:40 +00:00
< 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 . . " . " . . zone:name ( ) ) . . attr ( " name " , cbid ) . . attr ( " value " , zone:name ( ) ) . . ifattr ( checked [ zone:name ( ) ] , " checked " , " checked " ) % > />
2009-10-08 00:17:40 +00:00
< label < % = attr ( " for " , cbid . . " . " . . zone:name ( ) ) % > style="background-color:< %=zone:get_color()%>; padding:0.5em">
< strong > < %=zone:name()%>:< / strong >
< %
2009-11-01 19:49:07 +00:00
local zempty = true
2009-10-10 14:47:37 +00:00
for _, net in ipairs(zone:get_networks()) do
net = nwm:get_network(net)
2009-10-27 21:42:40 +00:00
if net then
2009-11-09 00:32:36 +00:00
zempty = false
2009-10-27 21:42:40 +00:00
%>
< %- if net:name() == self.network then -%>
< span style = "background-color:#FFFFFF; border:1px solid #000000; padding:2px; font-weight:bold" > < %=net:name()%>:
< %- else -%>
< span style = "background-color:#FFFFFF; border:1px solid #CCCCCC; padding:2px" > < %=net:name()%>:
< %- end -%>
< %
2009-11-09 00:32:36 +00:00
local nempty = true
2009-10-10 14:47:37 +00:00
for _, iface in ipairs(net and net:get_interfaces() or {}) do
2009-12-26 00:09:47 +00:00
nempty = false
2009-10-27 21:42:40 +00:00
%>
< 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" />
2009-12-26 00:09:47 +00:00
< % end %>
2009-11-01 19:49:07 +00:00
< % if nempty then %>< em > < %:(no interfaces attached)%>< / em > < % end %>
2009-10-27 21:42:40 +00:00
< / span >
< % end end %>
2009-11-01 19:49:07 +00:00
< % if zempty then %>< em > < %:(no interfaces attached)%>< / em > < % end %>
2009-10-08 00:17:40 +00:00
< / label >
< / li >
2009-10-27 21:42:40 +00:00
< % end end %>
2009-10-08 00:17:40 +00:00
2009-10-27 21:42:40 +00:00
< % if self.widget ~= "checkbox" and not self.nocreate then %>
2009-10-08 00:17:40 +00:00
< li style = "padding:0.5em" >
2009-10-10 14:47:37 +00:00
< 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 selected , " checked " , " checked " ) % > />
2009-10-08 00:17:40 +00:00
< div style = "background-color:<%=fwm.zone.get_color()%>; padding:0.5em; display:inline" >
2009-10-31 15:54:11 +00:00
< label < % = attr ( " for " , cbid . . " _new " ) % > >< em > < %:unspecified -or- create:%> < / em > < / label >
2009-11-08 02:31:19 +00:00
< input style = "width:6em" type = "text" < % = attr ( " name " , cbid . . " . newzone " ) . . ifattr ( not selected , " value " , luci . http . formvalue ( cbid . . " . newzone " ) or self . default ) % > onfocus="document.getElementById('< %=cbid%>_new').checked=true" />
2009-10-08 00:17:40 +00:00
< / div >
< / li >
2009-10-10 14:47:37 +00:00
< % end %>
2009-10-08 00:17:40 +00:00
< / ul >
< %+cbi/valuefooter%>