luci-app-noddos: improve table header
[project/luci.git] / applications / luci-app-noddos / luasrc / view / noddos / clients.htm
1 <%#
2 Copyright (C) 2017 Steven Hessing <steven.hessing@gmail.com>
3 This is free software, licensed under the GNU General Public License v3.
4 /usr/lib/lua/luci/view/clients.htm
5 -%>
6
7 <%-
8
9 require "nixio.fs"
10 require "os"
11
12 local last_modified = "<boottime>"
13 local style = true
14 local v
15 local devdump
16
17 if nixio.fs.access("/var/lib/noddos/DeviceDump.json") then
18 last_modified = os.date("%c", nixio.fs.stat("/var/lib/noddos/DeviceDump.json")['mtime'])
19 io.input("/var/lib/noddos/DeviceDump.json")
20 t = io.read("*all")
21 devdump = luci.jsonc.parse(t)
22 io.input("/var/lib/noddos/DeviceProfiles.json")
23 t = io.read("*all")
24 temp = luci.jsonc.parse(t)
25 devicevalues = {}
26 for i, v in ipairs(temp) do
27 devicevalues[v.DeviceProfileUuid] = v
28 end
29 end
30 -%>
31
32 <%+header%>
33
34 <div class="cbi-map" id="cbi-network">
35 <h2 name="content"><%:Clients%></h2>
36 <div class="cbi-map-descr"><%:The following clients have been discovered on the network. The last discovery was completed at %><%=last_modified%></div>
37
38 <fieldset class="cbi-section">
39 <legend><%:Recognized Clients%></legend>
40 <div class="cbi-section-node">
41 <div class="table cbi-section-table">
42 <div class="tr cbi-section-table-titles">
43 <div class="th cbi-section-table-cell"><%:Hostname%></div>
44 <div class="th cbi-section-table-cell"><%:IPv4%></div>
45 <div class="th cbi-section-table-cell"><%:MAC%></div>
46 <div class="th cbi-section-table-cell"><%:Manufacturer%></div>
47 <div class="th cbi-section-table-cell"><%:Model%></div>
48 <div class="th cbi-section-table-cell"><%:Class%></div>
49 </div>
50
51 <%
52 for i,v in ipairs(devdump) do
53 if v.DeviceProfileUuid ~= "" then
54 %>
55 <div class="tr cbi-section-table-row cbi-rowstyle-<%=(style and 1 or 2)%>">
56 <div class="td cbi-value-field"><%=v.Hostname%></div>
57 <div class="td cbi-value-field"><%=v.Ipv4Address%></div>
58 <div class="td cbi-value-field"><a href="/cgi-bin/clientdetails?mac=<%=v.MacAddress%>"><%=v.MacAddress%></a></div>
59 <div class="td cbi-value-field"><%=devicevalues[v.DeviceProfileUuid].Manufacturer%></div>
60 <div class="td cbi-value-field"><%=devicevalues[v.DeviceProfileUuid].Model%></div>
61 <div class="td cbi-value-field"><%=devicevalues[v.DeviceProfileUuid].ThingClass%></div>
62 </div>
63 <%
64 style=false
65 end
66 end
67 %>
68 </div>
69 </div>
70 </fieldset>
71 <br />
72 <fieldset class="cbi-section">
73 <legend><%:Unrecognized Clients%></legend>
74 <div class="cbi-section-node">
75 <div class="table cbi-section-table">
76 <div class="tr cbi-section-table-titles">
77 <div class="th cbi-section-table-cell"><%:Hostname%></div>
78 <div class="th cbi-section-table-cell"><%:IPv4%></div>
79 <div class="th cbi-section-table-cell"><%:MAC%></div>
80 <div class="th cbi-section-table-cell"><%:Manufacturer%></div>
81 <div class="th cbi-section-table-cell"><%:Model%></div>
82 <div class="th cbi-section-table-cell"><%:DHCP Vendor%></div>
83 <div class="th cbi-section-table-cell"><%:DHCP Hostname%></div>
84 </div>
85
86 <%
87 for i,v in ipairs(devdump) do
88 if v.DeviceProfileUuid == "" then
89 %>
90 <div class="tr cbi-section-table-row cbi-rowstyle-<%=(style and 1 or 2)%>">
91 <div class="td cbi-value-field"><%=v.Hostname%></div>
92 <div class="td cbi-value-field"><%=v.Ipv4Address%></div>
93 <div class="td cbi-value-field"><a href="/cgi-bin/clientdetails?mac=<%=v.MacAddress%>"><%=v.MacAddress%></a></div>
94 <div class="td cbi-value-field"><%=v.SsdpManufacturer%></div>
95 <div class="td cbi-value-field"><%=v.SsdpModelName%></div>
96 <div class="td cbi-value-field"><%=v.DhcpVendor1%></div>
97 <div class="td cbi-value-field"><%=v.DhcpHostname%></div>
98 </div>
99 <%
100 style=false
101 end
102 end
103 %>
104 </div>
105 </div>
106 </fieldset>
107
108 </div>
109
110 <%+footer%>
111