diff options
author | Steven Barth <steven@midlink.org> | 2008-08-14 20:33:30 +0000 |
---|---|---|
committer | Steven Barth <steven@midlink.org> | 2008-08-14 20:33:30 +0000 |
commit | 68d499edb91de2d73f14d5dcc4d6328fff2e23ea (patch) | |
tree | 771e508072c738b8d4e21fcd5de28227a2e6b9ed /modules | |
parent | 7726e737252026683d10f5d85a32798f975ef437 (diff) |
modules/admin-full: Rewrote route configuration page
Diffstat (limited to 'modules')
6 files changed, 78 insertions, 52 deletions
diff --git a/modules/admin-core/luasrc/tools/webadmin.lua b/modules/admin-core/luasrc/tools/webadmin.lua index d6d952117..57941c966 100644 --- a/modules/admin-core/luasrc/tools/webadmin.lua +++ b/modules/admin-core/luasrc/tools/webadmin.lua @@ -116,4 +116,22 @@ function firewall_find_zone(name) ) return find +end + +function iface_get_network(iface) + local net + + luci.model.uci.foreach("network", "interface", + function (section) + local ifname = luci.model.uci.get_statevalue( + "network", section[".name"], "ifname" + ) + + if iface == ifname then + net = section[".name"] + end + end + ) + + return net end
\ No newline at end of file diff --git a/modules/admin-full/luasrc/controller/admin/network.lua b/modules/admin-full/luasrc/controller/admin/network.lua index cc79e57a5..76145294c 100644 --- a/modules/admin-full/luasrc/controller/admin/network.lua +++ b/modules/admin-full/luasrc/controller/admin/network.lua @@ -54,6 +54,14 @@ function index() local page = node("admin", "network", "routes") page.target = cbi("admin_network/routes") - page.title = i18n("a_n_routes", "Routen") + page.title = i18n("a_n_routes") page.order = 40 + page.leaf = true + + entry( + {"admin", "network", "routes", "static"}, + function() end, + i18n("a_n_routes_static") + ) + end
\ No newline at end of file diff --git a/modules/admin-full/luasrc/controller/admin/status.lua b/modules/admin-full/luasrc/controller/admin/status.lua index ea7ad1b03..81686d906 100644 --- a/modules/admin-full/luasrc/controller/admin/status.lua +++ b/modules/admin-full/luasrc/controller/admin/status.lua @@ -19,7 +19,6 @@ function index() entry({"admin", "status"}, template("admin_status/index"), i18n("status", "Status"), 20) entry({"admin", "status", "syslog"}, call("action_syslog"), i18n("syslog", "Systemprotokoll")) - entry({"admin", "status", "routes"}, template("admin_status/routes"), i18n("routingtable"), 10) entry({"admin", "status", "iwscan"}, template("admin_status/iwscan"), i18n("wlanscan"), 20) end diff --git a/modules/admin-full/luasrc/model/cbi/admin_network/routes.lua b/modules/admin-full/luasrc/model/cbi/admin_network/routes.lua index 15f994c16..ec659a521 100644 --- a/modules/admin-full/luasrc/model/cbi/admin_network/routes.lua +++ b/modules/admin-full/luasrc/model/cbi/admin_network/routes.lua @@ -11,20 +11,64 @@ You may obtain a copy of the License at $Id$ ]]-- +require("luci.tools.webadmin") m = Map("network", translate("a_n_routes"), translate("a_n_routes1")) -s = m:section(TypedSection, "route", "") +if not arg or not arg[1] then + local routes = luci.sys.net.routes() + + v = m:section(TypedSection, "_virtual", translate("a_n_routes_kernel4")) + v.anonymous = true + v.rowcolors = true + v.template = "cbi/tblsection" + + function v.cfgsections(self) + local sections = {} + for i=1,#routes do + table.insert(sections, i) + end + return sections + end + + net = v:option(DummyValue, "iface", translate("network")) + function net.cfgvalue(self, section) + return luci.tools.webadmin.iface_get_network(routes[section].Iface) + or routes[section].Iface + end + + target = v:option(DummyValue, "target", translate("target")) + function target.cfgvalue(self, section) + return luci.ip.Hex(routes[section].Destination, 32):string() + end + + netmask = v:option(DummyValue, "netmask", translate("netmask")) + function netmask.cfgvalue(self, section) + return luci.ip.Hex(routes[section].Mask, 32):string() + end + + gateway = v:option(DummyValue, "gateway", translate("gateway")) + function gateway.cfgvalue(self, section) + return luci.ip.Hex(routes[section].Gateway, 32):string() + end + + metric = v:option(DummyValue, "metric", translate("metric")) + function metric.cfgvalue(self, section) + return routes[section].Metric + end +end + + +s = m:section(TypedSection, "route", translate("a_n_routes_static")) s.addremove = true s.anonymous = true s.template = "cbi/tblsection" iface = s:option(ListValue, "interface", translate("interface")) -luci.model.uci.foreach("network", "interface", - function (section) - if section[".name"] ~= "loopback" then - iface:value(section[".name"]) - end - end) +luci.tools.webadmin.cbi_add_networks(iface) + +if not arg or not arg[1] then + net.titleref = iface.titleref +end s:option(Value, "target", translate("target"), translate("a_n_r_target1")) diff --git a/modules/admin-full/luasrc/view/admin_status/routes.htm b/modules/admin-full/luasrc/view/admin_status/routes.htm deleted file mode 100644 index bfee6227e..000000000 --- a/modules/admin-full/luasrc/view/admin_status/routes.htm +++ /dev/null @@ -1,42 +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$ - --%> -<%+header%> -<h1><%:routes%></h1> - -<br /> -<table cellspacing="0" cellpadding="6" class="smalltext"> -<tr> -<th><%:target%></th> -<th><%:routes_netmask%></th> -<th><%:routes_gateway%></th> -<th><%:routes_metric%></th> -<th><%:interface%></th> -</tr> -<% -local routes = luci.sys.net.routes() - -for i, r in pairs(routes) do -%> -<tr> -<td><%=luci.ip.Hex(r.Destination, 32):string()%></td> -<td><%=luci.ip.Hex(r.Mask, 32):string()%></td> -<td><%=luci.ip.Hex(r.Gateway, 32):string()%></td> -<td><%=r.Metric%></td> -<td><%=r.Iface%></td> -</tr> -<% end %> -</table> -<br /> -<%+footer%>
\ No newline at end of file diff --git a/modules/freifunk/luasrc/controller/freifunk/freifunk.lua b/modules/freifunk/luasrc/controller/freifunk/freifunk.lua index e4ab2bba4..717972636 100644 --- a/modules/freifunk/luasrc/controller/freifunk/freifunk.lua +++ b/modules/freifunk/luasrc/controller/freifunk/freifunk.lua @@ -45,7 +45,6 @@ function index() page.setuser = false page.setgroup = false - assign({"freifunk", "status", "routes"}, {"admin", "status", "routes"}, "Routingtabelle", 10) assign({"freifunk", "status", "iwscan"}, {"admin", "status", "iwscan"}, "WLAN-Scan", 20) assign({"freifunk", "olsr"}, {"admin", "status", "olsr"}, "OLSR", 30) |