From: Jo-Philipp Wich Date: Mon, 8 Mar 2010 02:09:46 +0000 (+0000) Subject: luci-0.9: combine dhcp and lease page X-Git-Tag: 0.9.0~63 X-Git-Url: https://git.librecmc.org/?a=commitdiff_plain;h=2c4ff11f58deb9d3bf6e58d451c837e084132237;p=oweals%2Fluci.git luci-0.9: combine dhcp and lease page --- diff --git a/modules/admin-full/luasrc/controller/admin/network.lua b/modules/admin-full/luasrc/controller/admin/network.lua index 8ce44e74e..a6670cb0a 100644 --- a/modules/admin-full/luasrc/controller/admin/network.lua +++ b/modules/admin-full/luasrc/controller/admin/network.lua @@ -82,13 +82,6 @@ function index() page.target = cbi("admin_network/dhcp") page.title = "DHCP" page.order = 30 - page.subindex = true - - entry( - {"admin", "network", "dhcp", "leases"}, - cbi("admin_network/dhcpleases"), - i18n("dhcp_leases") - ) local page = node("admin", "network", "hosts") page.target = cbi("admin_network/hosts") diff --git a/modules/admin-full/luasrc/model/cbi/admin_network/dhcp.lua b/modules/admin-full/luasrc/model/cbi/admin_network/dhcp.lua index 872e6444d..e310491ed 100644 --- a/modules/admin-full/luasrc/model/cbi/admin_network/dhcp.lua +++ b/modules/admin-full/luasrc/model/cbi/admin_network/dhcp.lua @@ -11,9 +11,12 @@ You may obtain a copy of the License at $Id$ ]]-- -require("luci.tools.webadmin") -require("luci.model.uci") -require("luci.util") + +local uci = require "luci.model.uci".cursor() +local wa = require "luci.tools.webadmin" +local sys = require "luci.sys" +local utl = require "luci.util" +local fs = require "nixio.fs" m = Map("dhcp", "DHCP") @@ -22,9 +25,8 @@ s.addremove = true s.anonymous = true iface = s:option(ListValue, "interface", translate("interface")) -luci.tools.webadmin.cbi_add_networks(iface) +wa.cbi_add_networks(iface) -local uci = luci.model.uci.cursor() uci:foreach("network", "interface", function (section) if section[".name"] ~= "loopback" then @@ -69,4 +71,52 @@ for i, n in ipairs(s.children) do end end -return m + +m2 = Map("dhcp", translate("dhcp_leases"), "") + +local leasefn, leasefp, leases +uci:foreach("dhcp", "dnsmasq", + function(section) + leasefn = section.leasefile + end +) +local leasefp = leasefn and fs.access(leasefn) and io.lines(leasefn) +if leasefp then + leases = {} + for lease in leasefp do + table.insert(leases, luci.util.split(lease, " ")) + end +end + +if leases then + v = m2:section(Table, leases, translate("dhcp_leases_active")) + ip = v:option(DummyValue, 3, translate("ipaddress")) + + mac = v:option(DummyValue, 2, translate("macaddress")) + + ltime = v:option(DummyValue, 1, translate("dhcp_timeremain")) + function ltime.cfgvalue(self, ...) + local value = DummyValue.cfgvalue(self, ...) + return wa.date_format(os.difftime(tonumber(value), os.time())) + end +end + +s = m2:section(TypedSection, "host", translate("luci_ethers")) +s.addremove = true +s.anonymous = true +s.template = "cbi/tblsection" + +name = s:option(Value, "name", translate("hostname")) +mac = s:option(Value, "mac", translate("macaddress")) +ip = s:option(Value, "ip", translate("ipaddress")) +sys.net.arptable(function(entry) + ip:value(entry["IP address"]) + mac:value( + entry["HW address"], + entry["HW address"] .. " (" .. entry["IP address"] .. ")" + ) +end) + + +return m, m2 + diff --git a/modules/admin-full/luasrc/model/cbi/admin_network/dhcpleases.lua b/modules/admin-full/luasrc/model/cbi/admin_network/dhcpleases.lua deleted file mode 100644 index db470824c..000000000 --- a/modules/admin-full/luasrc/model/cbi/admin_network/dhcpleases.lua +++ /dev/null @@ -1,67 +0,0 @@ ---[[ -LuCI - Lua Configuration Interface - -Copyright 2008 Steven Barth -Copyright 2010 Jo-Philipp Wich - -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$ -]]-- - -local uci = require "luci.model.uci".cursor() -local sys = require "luci.sys" -local wa = require "luci.tools.webadmin" -local fs = require "nixio.fs" - -m2 = Map("dhcp", translate("dhcp_leases")) - -local leasefn, leasefp, leases -uci:foreach("dhcp", "dnsmasq", - function(section) - leasefn = section.leasefile - end -) -local leasefp = leasefn and fs.access(leasefn) and io.lines(leasefn) -if leasefp then - leases = {} - for lease in leasefp do - table.insert(leases, luci.util.split(lease, " ")) - end -end - -if leases then - v = m2:section(Table, leases, translate("dhcp_leases_active")) - ip = v:option(DummyValue, 3, translate("ipaddress")) - - mac = v:option(DummyValue, 2, translate("macaddress")) - - ltime = v:option(DummyValue, 1, translate("dhcp_timeremain")) - function ltime.cfgvalue(self, ...) - local value = DummyValue.cfgvalue(self, ...) - return wa.date_format(os.difftime(tonumber(value), os.time())) - end -end - -s = m2:section(TypedSection, "host", translate("luci_ethers")) -s.addremove = true -s.anonymous = true -s.template = "cbi/tblsection" - -name = s:option(Value, "name", translate("hostname")) -mac = s:option(Value, "mac", translate("macaddress")) -ip = s:option(Value, "ip", translate("ipaddress")) -sys.net.arptable(function(entry) - ip:value(entry["IP address"]) - mac:value( - entry["HW address"], - entry["HW address"] .. " (" .. entry["IP address"] .. ")" - ) -end) - - -return m2