summaryrefslogtreecommitdiffhomepage
path: root/applications/luci-livestats/luasrc/view/livestats/traffic.htm
blob: f0c194dac5a98e738c89851498b24a7a519b7ee2 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
<%+header%>

<!--[if IE]><script type="text/javascript" src="<%=resource%>/livestats/ExCanvas.js"></script><![endif]-->
<script type="text/javascript" src="<%=resource%>/livestats/MochiKit.js"></script>
<script type="text/javascript" src="<%=resource%>/livestats/JsonRpc.js"></script>
<script type="text/javascript" src="<%=resource%>/livestats/PlotKit.js"></script>
<script type="text/javascript" src="<%=resource%>/livestats/GraphRPC.js"></script>
<script type="text/javascript" src="<%=resource%>/livestats/Legend.js"></script>

<%
	local interfaces = { }
	local ifnames = {}
	local uci = luci.model.uci.cursor_state()

	uci:foreach("network", "interface",
		function(s)
			if s.ifname ~= "lo" then
				table.insert( interfaces,
					"'" .. ( s.ifname or s['.name'] ) .. "'"
				)
				ifnames[s.ifname or s['.name']] = s['.name']
			end
		end
	)
-%>

<script type="text/javascript">
	function initGraphs() {
		var rpc = new GraphRPC(
			document.getElementById('live_graphs'),
			'<%=luci.dispatcher.build_url('rpc', 'sys')%>', 'net.deviceinfo',
			2000,

			// Data sources
			[ "0", "<%:livestats_incoming%> (kiB/s)", "8", "<%:livestats_outgoing%> (kiB/s)" ],

			// Graph layout options
			{ 
			shouldFill: false, 
			drawBackground: false, 
			strokeColor: null,
			title: '<%:livestats_traffic%> %s',
			strokeWidth: 2.5, height: 140,
			padding: { left: 70, right: 10, top: 10, bottom: 20 },
			instances: [ <%=table.concat(interfaces, ", ") %> ],
			instanceNames: {
				<%- for iface, network in pairs(ifnames) do %>
					<%-="%q:%q," % {iface, network}-%>
				<% end %>
				"0": ""
			}},

			// transform function
			function (cur, last) {
				return (cur - last) / 2048;
			},
			'live_graphs'
		);
	}

	MochiKit.DOM.addLoadEvent(initGraphs);
</script>

<div id="live_graphs"></div>

<%+footer%>