123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101 |
- <%#
- Copyright 2010 Jo-Philipp Wich <jow@openwrt.org>
- Licensed to the public under the Apache License 2.0.
- -%>
- <%-
- local fs = require "nixio.fs"
- local sys = require "luci.sys"
- local utl = require "luci.util"
- local param = luci.http.formvalue
- local iface = param("iface")
- local style = param("style")
- style = (style and #style > 0) and style or "s"
- --
- -- render image
- --
- if iface then
- style = style:gsub("[^%w]", "")
- iface = iface:gsub("[^%w%.%-%_]", "")
- luci.http.prepare_content("image/png")
- local png = io.popen("vnstati -i '%s' '-%s' -o -" % { iface, style })
- luci.http.write(png:read("*a"))
- png:close()
- return
- --
- -- update database
- --
- else
- sys.call("vnstat -u >/dev/null 2>/dev/null")
- end
- --
- -- find databases
- --
- local dbdir, line
- for line in io.lines("/etc/vnstat.conf") do
- dbdir = line:match("^%s*DatabaseDir%s+[\"'](%S-)[\"']")
- if dbdir then break end
- end
- dbdir = dbdir or "/var/lib/vnstat"
- -%>
- <%+header%>
- <h2><a id="content" name="content"><%:VnStat Graphs%></a></h2>
- <form action="" method="get">
- <select name="style">
- <option value="s"<%=(style == "s") and ' selected="selected"' or ''%>><%:Summary display%></option>
- <option value="t"<%=(style == "t") and ' selected="selected"' or ''%>><%:Top 10 display%></option>
- <option value="h"<%=(style == "h") and ' selected="selected"' or ''%>><%:Hourly traffic%></option>
- <option value="d"<%=(style == "d") and ' selected="selected"' or ''%>><%:Daily traffic%></option>
- <option value="m"<%=(style == "m") and ' selected="selected"' or ''%>><%:Monthly traffic%></option>
- </select>
- <input type="submit" value="<%:Update »%>" />
- </form>
- <br /><hr /><br />
- <div style="text-align:center">
- <%
- empty = true
- ifdir = fs.dir(dbdir)
- if ifdir then
- for iface in ifdir do
- if iface:sub(1,1) ~= "." then
- empty = false
- %>
- <img src="<%=REQUEST_URI%>?iface=<%=iface%>&style=<%=param('style')%>" alt="" />
- <br /><br />
- <%
- end
- end
- end
- %>
- <% if empty then %>
- <p><em><%:No database has been set up yet. Go to the VnStat configuration and enable monitoring for one or more interfaces.%></em></p>
- <% end %>
- </div>
- <%+footer%>
|