Add luci
[librecmc/librecmc.git] / package / luci / 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"><%:DhcpVendor%></div>
83                     <div class="th cbi-section-table-cell"><%:DhcpHostname%></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