+<%-
+ local fw = require "luci.model.firewall".init()
+ local izl = { }
+ local ezl = { }
+ local _, z
+ for _, z in ipairs(fw:get_zones()) do
+ if z:name() ~= "wan" then
+ izl[#izl+1] = z
+ elseif z:name() ~= "lan" then
+ ezl[#ezl+1] = z
+ end
+ end
+-%>
<div class="cbi-section-create cbi-tblsection-create">
<br />
- <table class="cbi-section-table" style="width:700px; margin-left:5px">
+ <table class="cbi-section-table" style="width:810px; margin-left:5px">
<tr class="cbi-section-table-titles">
- <th class="cbi-section-table-cell" colspan="6"><%:New port forward%>:</th>
+ <th class="cbi-section-table-cell" colspan="8"><%:New port forward%>:</th>
</tr>
<tr class="cbi-section-table-descr">
<th class="cbi-section-table-cell"><%:Name%></th>
<th class="cbi-section-table-cell"><%:Protocol%></th>
+ <th class="cbi-section-table-cell"><%:External zone%></th>
<th class="cbi-section-table-cell"><%:External port%></th>
+ <th class="cbi-section-table-cell"><%:Internal zone%></th>
<th class="cbi-section-table-cell"><%:Internal IP address%></th>
<th class="cbi-section-table-cell"><%:Internal port%></th>
<th class="cbi-section-table-cell"></th>
<option value="other"><%:Other...%></option>
</select>
</td>
+ <td class="cbi-section-table-cell" style="width:55px">
+ <select class="cbi-input-select" id="_newfwd.extzone" name="_newfwd.extzone">
+ <% for _, z in ipairs(ezl) do -%><option value="<%=z:name()%>"><%=z:name()%></option><%- end %>
+ </select>
+ </td>
<td class="cbi-section-table-cell" style="width:110px">
<input type="text" class="cbi-input-text" id="_newfwd.extport" name="_newfwd.extport" />
</td>
+ <td class="cbi-section-table-cell" style="width:55px">
+ <select class="cbi-input-select" id="_newfwd.intzone" name="_newfwd.intzone">
+ <% for _, z in ipairs(izl) do -%><option value="<%=z:name()%>"><%=z:name()%></option><%- end %>
+ </select>
+ </td>
<td class="cbi-section-table-cell" style="width:110px">
<input type="text" class="cbi-input-text" id="_newfwd.intaddr" name="_newfwd.intaddr" />
</td>
cbi_validate_field('_newfwd.intport', true, 'portrange');
cbi_combobox_init('_newfwd.intaddr', {
- <% local i, e; for i, e in ipairs(luci.sys.net.arptable()) do -%>
- <%- if i > 1 then %>,<% end -%>'<%=e["IP address"]%>': '<%=e["IP address"]%>'
- <%- end %> }, '', '<%: -- custom -- %>');
+ <% first = true; luci.sys.net.ipv4_hints(function(ip, name) %>
+ <%- if first then first = false else %>,<% end -%>'<%=ip%>': '<%=ip%> (<%=name%>)'
+ <%- end) %> }, '', '<%: -- custom -- %>');
cbi_bind(document.getElementById('_newfwd.extport'), 'blur',
function() {