c626a3d0c0733fd8993ffe3517a232faffa58210
[project/luci.git] / applications / luci-app-dawn / luasrc / model / cbi / dawn / dawn_network.lua
1 m = Map("dawn", "Network Overview", translate("Network Overview"))
2 m.pageaction = false
3
4 s = m:section(NamedSection, "__networkoverview__")
5
6 function s.render(self, sid)
7 local tpl = require "luci.template"
8 local json = require "luci.json"
9 local utl = require "luci.util"
10 tpl.render_string([[
11 <%
12 local status = require "luci.tools.ieee80211"
13 local utl = require "luci.util"
14 local sys = require "luci.sys"
15 local hosts = sys.net.host_hints()
16 local stat = utl.ubus("dawn", "get_network", { })
17 local name, macs
18 for name, macs in pairs(stat) do
19 %>
20
21 <div class="cbi-section-node">
22 <h3>SSID: <%= name %></h3>
23 <div class="table" id=network_overview_main">
24 <div class="tr table-titles">
25 <div class="th">AP</div>
26 <div class="th">Clients</div>
27 </div>
28 <%
29 local mac, data
30 for mac, data in pairs(macs) do
31 %>
32 <div class="tr">
33 <div class="td" style="vertical-align: top;">
34 <div class="table" id="ap-<%= mac %>">
35 <div class="tr table-titles">
36 <div class="th">MAC</div>
37 <div class="th">Utilization</div>
38 <div class="th">Frequency</div>
39 <div class="th">Stations</div>
40 <div class="th">HT Sup</div>
41 <div class="th">VHT Sup</div>
42 </div>
43 <div class="tr">
44 <div class="td"><%= mac %></div>
45 <div class="td"><%= "%.2f" %(data.channel_utilization / 2.55) %> %</div>
46 <div class="td"><%= "%.3f" %( data.freq / 1000 ) %> GHz (Channel: <%= "%d" %( status.frequency_to_channel(data.freq) ) %>)</div>
47 <div class="td"><%= "%d" %data.num_sta %></div>
48 <div class="td"><%= (data.ht_support == true) and "available" or "not available" %></div>
49 <div class="td"><%= (data.vht_support == true) and "available" or "not available" %></div>
50 </div>
51 </div>
52 </div>
53 <div class="td" style="vertical-align: top;">
54 <div class="table" id="clients-<%= mac %>">
55 <div class="tr table-titles">
56 <div class="th">MAC</div>
57 <div class="th">HT</div>
58 <div class="th">VHT</div>
59 <div class="th">Signal</div>
60 </div>
61 <%
62 local mac2, data2
63 for clientmac, clientvals in pairs(data) do
64 if (type(clientvals) == "table") then
65 %>
66 <div class="tr">
67 <div class="td"><%= clientmac %></div>
68 <div class="td"><%= (clientvals.ht == true) and "available" or "not available" %></div>
69 <div class="td"><%= (clientvals.vht == true) and "available" or "not available" %></div>
70 <div class="td"><%= "%d" %clientvals.signal %></div>
71 </div>
72 <%
73 end
74 %>
75 <%
76 end
77 %>
78 </div>
79 </div>
80 </div>
81 <%
82 end
83 %>
84 </div>
85 </div>
86 <%
87 end
88 %>
89 ]])
90 end
91
92 return m