luci-app-travelmate: sync with travelmate 1.5.4
[oweals/luci.git] / applications / luci-app-travelmate / luasrc / view / travelmate / wifi_scan.htm
1 <%#
2 Copyright 2017-2020 Dirk Brenken (dev@brenken.org)
3 This is free software, licensed under the Apache License, Version 2.0
4 -%>
5
6 <%-
7         local sys = require("luci.sys")
8         local utl = require("luci.util")
9         local dev = luci.http.formvalue("device")
10         local ifn = utl.trim(sys.exec("/bin/ubus -S call network.wireless status 2>/dev/null | jsonfilter -l1 -e \"@." .. dev .. ".interfaces.*.ifname\" 2>/dev/null"))
11         local iw
12
13         if ifn ~= "" then
14                 iw = sys.wifi.getiwinfo(ifn)
15         else
16                 iw = sys.wifi.getiwinfo(dev)
17         end
18
19         if not iw then
20                 luci.http.redirect(luci.dispatcher.build_url("admin/services/travelmate/stations"))
21         end
22
23         function percent_wifi_signal(info)
24                 local qc = info.quality or 0
25                 local qm = info.quality_max or 0
26                 if info.bssid and qc > 0 and qm > 0 then
27                         return math.floor((100 / qm) * qc)
28                 else
29                         return 0
30                 end
31         end
32 -%>
33
34 <%+header%>
35
36 <div class="cbi-map">
37         <h3><%:Wireless Scan%></h3>
38         <div class="cbi-section">
39                 <div class="table cbi-section-table">
40                         <div class="tr cbi-section-table-titles">
41                                 <div class="th left"><%:Uplink SSID%></div>
42                                 <div class="th left"><%:Uplink BSSID%></div>
43                                 <div class="th left"><%:Encryption%></div>
44                                 <div class="th left"><%:Signal strength%></div>
45                                 <div class="th center"><%:Action%></div>
46                         </div>
47                         <%- for i, net in ipairs(iw.scanlist or { }) do -%>
48                         <div class="tr cbi-section-table-row cbi-rowstyle-1">
49                                 <div class="td left" style="text-align: left !important">
50                                         <%=net.ssid and utl.pcdata(net.ssid) or "<em>%s</em>" % translate("hidden")%>
51                                 </div>
52                                 <div class="td left" style="text-align: left !important">
53                                         <%=net.bssid and utl.pcdata(net.bssid)%>
54                                 </div>
55                                 <div class="td left" style="text-align: left !important">
56                                         <%=net.encryption.description%>
57                                 </div>
58                                 <div class="td left" style="text-align: left !important">
59                                         <%=percent_wifi_signal(net)%> %
60                                 </div>
61                                 <div class="td cbi-section-actions">
62                                         <form class="inline" action="<%=luci.dispatcher.build_url('admin/services/travelmate/wifiadd')%>" method="post">
63                                                 <input type="hidden" name="token" value="<%=token%>"/>
64                                                 <input type="hidden" name="device" value="<%=utl.pcdata(dev)%>"/>
65                                                 <input type="hidden" name="ssid" value="<%=utl.pcdata(net.ssid)%>"/>
66                                                 <input type="hidden" name="bssid" value="<%=utl.pcdata(net.bssid)%>"/>
67                                                 <input type="hidden" name="description" value="<%=net.encryption.description%>"/>
68                                                 <input type="hidden" name="wep" value="<%=net.encryption.wep and 1 or 0%>"/>
69                                                 <%- if net.encryption.wpa then -%>
70                                                         <input type="hidden" name="wpa_version" value="<%=net.encryption.wpa%>"/>
71                                                         <%- for _, v in ipairs(net.encryption.auth_suites) do -%>
72                                                                 <input type="hidden" name="wpa_suites" value="<%=v%>"/>
73                                                         <%- end -%>
74                                                 <%- end -%>
75                                                 <input class="cbi-button cbi-button-apply" type="submit" value="<%:Add Uplink%>"/>
76                                         </form>
77                                 </div>
78                         </div>
79                         <%- end -%>
80                 </div>
81         </div>
82         <div class="cbi-page-actions right">
83                 <form class="inline" action="<%=luci.dispatcher.build_url('admin/services/travelmate/stations')%>" method="get">
84                         <input class="cbi-button cbi-button-reset" type="submit" value="<%:Back to overview%>"/>
85                 </form>
86                 <form class="inline" action="<%=luci.dispatcher.build_url('admin/services/travelmate/wifiscan')%>" method="post">
87                         <input type="hidden" name="token" value="<%=token%>"/>
88                         <input type="hidden" name="device" value="<%=utl.pcdata(dev)%>"/>
89                         <input class="cbi-button cbi-input-find" type="submit" value="<%:Repeat scan%>"/>
90                 </form>
91         </div>
92 </div>
93
94 <%+footer%>