55 lines
1.3 KiB
HTML
55 lines
1.3 KiB
HTML
<%#
|
|
This is free software, licensed under the Apache License, Version 2.0
|
|
-%>
|
|
|
|
<%-
|
|
|
|
local util = require "luci.util"
|
|
local json = require "luci.jsonc"
|
|
|
|
|
|
local ifaces = {}
|
|
|
|
local data = util.exec("vnstat --json f 1 2>/dev/null")
|
|
local content = json.parse(data)
|
|
if type(content) == "table" then
|
|
for _, iface in pairs(content["interfaces"]) do
|
|
table.insert(ifaces, iface["name"])
|
|
end
|
|
end
|
|
|
|
|
|
local function render_section(style, title)
|
|
%><div class="cbi-section" data-tab="<%=style%>" data-tab-title="<%=title%>"><%
|
|
|
|
for _, iface in ipairs(ifaces) do
|
|
%><p><img src="<%=url("admin/status/vnstat2/graph")%>?iface=<%=iface%>&style=<%=style%>" alt="" style="max-width:100%" /></p><%
|
|
end
|
|
|
|
%></div><%
|
|
end
|
|
|
|
|
|
-%>
|
|
|
|
<%+header%>
|
|
|
|
<h2 name="content"><%:vnStat Graphs%></h2>
|
|
|
|
<div>
|
|
<%
|
|
if #ifaces == 0 then
|
|
%><p><em><%:No monitored interfaces have been found. Go to the configuration to enable monitoring for one or more interfaces.%></em></p><%
|
|
else
|
|
render_section("s", translate("Summary"))
|
|
render_section("t", translate("Top"))
|
|
render_section("5", translate("5 Minute"))
|
|
render_section("h", translate("Hourly"))
|
|
render_section("d", translate("Daily"))
|
|
render_section("m", translate("Monthly"))
|
|
render_section("y", translate("Yearly"))
|
|
end
|
|
%>
|
|
</div>
|
|
|
|
<%+footer%>
|