2011-12-19 21:16:31 +00:00
< %
local fw = require "luci.model.firewall".init()
local nw = require "luci.model.network".init()
local wz = fw:get_zone("wan")
local lz = fw:get_zone("lan")
2016-02-10 17:13:53 +00:00
local keys, vals, a, k, v = {}, {}
for k, v in ipairs(nw:get_interfaces()) do
for k, a in ipairs(v:ipaddrs()) do
keys[#keys+1] = a:host():string()
vals[#vals+1] = '%s (%s)' %{ a:host(), v:shortname() }
end
end
2011-12-19 21:16:31 +00:00
%>
< div class = "cbi-section-create cbi-tblsection-create" >
< % if wz and lz then %>
< br / >
< table class = "cbi-section-table" style = "width:700px; margin-left:5px" >
< tr class = "cbi-section-table-titles" >
< th class = "cbi-section-table-cell left" colspan = "6" > < %:New source NAT%>:< / th >
< / tr >
< tr class = "cbi-section-table-descr" >
< th class = "cbi-section-table-cell" > < %:Name%>< / th >
< th class = "cbi-section-table-cell" > < %:Source zone%>< / th >
< th class = "cbi-section-table-cell" > < %:Destination zone%>< / th >
< th class = "cbi-section-table-cell" > < %:To source IP%>< / th >
< th class = "cbi-section-table-cell" > < %:To source port%>< / th >
< th class = "cbi-section-table-cell" > < / th >
< / tr >
< tr class = "cbi-section-table-row" >
< td class = "cbi-section-table-cell" >
< input type = "text" class = "cbi-input-text" id = "_newsnat.name" name = "_newsnat.name" placeholder = "<%:New SNAT rule%>" / >
< / td >
< td class = "cbi-section-table-cell" style = "width:110px" >
< select class = "cbi-input-text" id = "_newsnat.src" name = "_newsnat.src" >
< % local k, v; for k, v in ipairs(fw:get_zones()) do -%>
< option < % = ifattr ( v:name ( ) = = " lan " , " selected " , " selected " ) % > value="< %=v:name()%>">< %=v:name()%>< / option >
< %- end %>
< / select >
< / td >
< td class = "cbi-section-table-cell" style = "width:110px" >
< select class = "cbi-input-text" id = "_newsnat.dest" name = "_newsnat.dest" >
< % local k, v; for k, v in ipairs(fw:get_zones()) do -%>
< option < % = ifattr ( v:name ( ) = = " wan " , " selected " , " selected " ) % > value="< %=v:name()%>">< %=v:name()%>< / option >
< %- end %>
< / select >
< / td >
< td class = "cbi-section-table-cell" style = "width:110px" >
2016-02-10 17:13:53 +00:00
< input type = "text" class = "cbi-input-text" id = "_newsnat.dip" name = "_newsnat.dip" placeholder = "<%:Do not rewrite%>" data-type = "ip4addr" data-optional = "true" < % =
ifattr(#keys > 0, "data-choices", luci.util.serialize_json({ keys, vals }))
%> />
2011-12-19 21:16:31 +00:00
< / td >
< td class = "cbi-section-table-cell" style = "width:110px" >
2016-02-10 17:13:53 +00:00
< input type = "text" class = "cbi-input-text" id = "_newsnat.dport" name = "_newsnat.dport" placeholder = "<%:Do not rewrite%>" data-type = "portrange" data-optional = "true" / >
2011-12-19 21:16:31 +00:00
< / td >
< td class = "cbi-section-table-cell" >
< input type = "submit" class = "cbi-button cbi-button-link" name = "_newsnat.submit" value = "<%:Add and edit...%>" / >
< / td >
< / tr >
< / table >
< % else %>
< input type = "submit" class = "cbi-button cbi-button-add" name = "cbi.cts.<%=self.config%>.<%=self.sectiontype%>.<%=section%>" value = "<%:Add%>" / >
< % end %>
< / div >