modules/admin-full: reimplement conntrack page as template

This commit is contained in:
Jo-Philipp Wich 2009-07-10 22:02:30 +00:00
parent 07c0f405f3
commit 75e8d0bf4b
3 changed files with 80 additions and 50 deletions

View file

@ -20,7 +20,7 @@ function index()
entry({"admin", "status"}, template("admin_status/index"), i18n("status", "Status"), 20).index = true
entry({"admin", "status", "interfaces"}, template("admin_status/interfaces"), i18n("interfaces", "Interfaces"), 1)
entry({"admin", "status", "iptables"}, call("action_iptables"), i18n("a_s_ipt", "Firewall"), 2)
entry({"admin", "status", "conntrack"}, form("admin_status/conntrack"), i18n("a_n_conntrack"), 3)
entry({"admin", "status", "conntrack"}, template("admin_status/conntrack"), i18n("a_n_conntrack"), 3)
entry({"admin", "status", "routes"}, template("admin_status/routes"), i18n("a_n_routes"), 4)
entry({"admin", "status", "syslog"}, call("action_syslog"), i18n("syslog", "System Log"), 5)
entry({"admin", "status", "dmesg"}, call("action_dmesg"), i18n("dmesg", "Kernel Log"), 6)

View file

@ -1,49 +0,0 @@
--[[
LuCI - Lua Configuration Interface
Copyright 2008 Steven Barth <steven@midlink.org>
Copyright 2008 Jo-Philipp Wich <xm@leipzig.freifunk.net>
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$
]]--
f = SimpleForm("conntrack", translate("a_n_conntrack"), translate("a_n_conntrack_desc"))
f.reset = false
f.submit = false
t = f:section(Table, luci.sys.net.arptable(), "ARP")
t:option(DummyValue, "IP address", translate("ipaddress"))
t:option(DummyValue, "HW address", translate("macaddress"))
t:option(DummyValue, "Device", translate("interface"))
t = f:section(Table, luci.sys.net.conntrack() or {}, translate("a_n_conntrack"))
l3 = t:option(DummyValue, "layer3", translate("network"))
function l3.cfgvalue(self, ...)
return DummyValue.cfgvalue(self, ...):upper()
end
l4 = t:option(DummyValue, "layer4", translate("protocol"))
function l4.cfgvalue(self, ...)
return DummyValue.cfgvalue(self, ...):upper()
end
s = t:option(DummyValue, "src", translate("source"))
function s.cfgvalue(self, section)
return "%s:%s" % { self.map:get(section, "src"),
self.map:get(section, "sport") or "*" }
end
d = t:option(DummyValue, "dst", translate("destination"))
function d.cfgvalue(self, section)
return "%s:%s" % { self.map:get(section, "dst"),
self.map:get(section, "dport") or "*" }
end
return f

View file

@ -0,0 +1,79 @@
<%#
LuCI - Lua Configuration Interface
Copyright 2008-2009 Steven Barth <steven@midlink.org>
Copyright 2008-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$
-%>
<%-
require "bit"
require "luci.fs"
require "luci.sys"
require "luci.tools.webadmin"
local style = true
-%>
<%+header%>
<div class="cbi-map" id="cbi-conntrack">
<h2><a id="content" name="content"><%:a_n_conntrack%></a></h2>
<div class="cbi-map-descr"><%:a_n_conntrack_desc%></div>
<fieldset class="cbi-section" id="cbi-table-table">
<legend>ARP</legend>
<div class="cbi-section-node">
<table class="cbi-section-table">
<tr class="cbi-section-table-titles">
<th class="cbi-section-table-cell"><%:ipaddress%></th>
<th class="cbi-section-table-cell"><%:macaddress%></th>
<th class="cbi-section-table-cell"><%:interface%></th>
</tr>
<% luci.sys.net.arptable(function(e) %>
<tr class="cbi-section-table-row cbi-rowstyle-<%=(style and 1 or 2)%>">
<td class="cbi-value-field"><%=e["IP address"]%></td>
<td class="cbi-value-field"><%=e["HW address"]%></td>
<td class="cbi-value-field"><%=e["Device"]%></td>
</tr>
<% style = not style; end) %>
</table>
</div>
</fieldset>
<br />
<fieldset class="cbi-section" id="cbi-table-table">
<legend><%:a_n_conntrack%></legend>
<div class="cbi-section-node">
<table class="cbi-section-table">
<tr class="cbi-section-table-titles">
<th class="cbi-section-table-cell"><%:network%></th>
<th class="cbi-section-table-cell"><%:protocol%></th>
<th class="cbi-section-table-cell"><%:source%></th>
<th class="cbi-section-table-cell"><%:destination%></th>
</tr>
<% style = true; luci.sys.net.conntrack(function(c) %>
<tr class="cbi-section-table-row cbi-rowstyle-<%=(style and 1 or 2)%>">
<td class="cbi-value-field"><%=c.layer3:upper()%></td>
<td class="cbi-value-field"><%=c.layer4:upper()%></td>
<td class="cbi-value-field"><%=c.src%></td>
<td class="cbi-value-field"><%=c.dst%></td>
</tr>
<% style = not style; end) %>
</table>
</div>
</fieldset>
<br />
</div>
<%+footer%>