2 Copyright
2017 Dirk Brenken (dev@brenken.org)
3 This is free software, licensed under the Apache License, Version
2.0
7 local sys = require(
"luci.sys")
8 local utl = require(
"luci.util")
9 local dev = luci.http.formvalue(
"device")
10 local iw = luci.sys.wifi.getiwinfo(dev)
11 local wpa_label = {translate(
"WPA"), translate(
"WPA2"), translate(
"WPA/WPA2")}
14 luci.http.redirect(luci.dispatcher.build_url(
"admin/services/travelmate/stations"))
17 function format_wifi_encryption(info)
18 if info.wep == true then
19 return translate(
"WEP")
20 elseif info.wpa
> 0 then
21 return
"%s (%s/%s)" %{wpa_label[info.wpa], table.concat(info.auth_suites), table.concat(info.group_ciphers)}
22 elseif info.enabled then
23 return translate(
"Unknown")
25 return translate(
"Open")
29 function percent_wifi_signal(info)
30 local qc = info.quality or
0
31 local qm = info.quality_max or
0
32 if info.bssid and qc
> 0 and qm
> 0 then
33 return math.floor((
100 / qm) * qc)
43 <h2 name=
"content"><%:Wireless Scan%
></h2>
44 <fieldset class=
"cbi-section">
45 <table class=
"cbi-section-table" style=
"empty-cells:hide">
46 <tr class=
"cbi-section-table-titles">
47 <th class=
"cbi-section-table-cell" style=
"text-align:left"><%:Uplink SSID%
></th>
48 <th class=
"cbi-section-table-cell" style=
"text-align:left"><%:Uplink BSSID%
></th>
49 <th class=
"cbi-section-table-cell" style=
"text-align:left"><%:Encryption%
></th>
50 <th class=
"cbi-section-table-cell" style=
"text-align:left" colspan=
"2"><%:Signal strength%
></th>
52 <% for i, net in ipairs(iw.scanlist or { }) do %
>
53 <tr class=
"cbi-section-table-row cbi-rowstyle-1">
54 <td class=
"cbi-value-field" style=
"text-align:left">
55 <%=net.ssid and utl.pcdata(net.ssid) or
"<em>%s</em>" % translate(
"hidden")%
>
57 <td class=
"cbi-value-field" style=
"text-align:left">
58 <%=net.bssid and utl.pcdata(net.bssid)%
>
60 <td class=
"cbi-value-field" style=
"text-align:left">
61 <%=format_wifi_encryption(net.encryption)%
>
63 <td class=
"cbi-value-field" style=
"text-align:left">
64 <%=percent_wifi_signal(net)%
> %
66 <td class=
"cbi-value-field" style=
"width:100px;text-align:right">
67 <form class=
"inline" action=
"<%=luci.dispatcher.build_url('admin/services/travelmate/wifiadd')%>" method=
"post">
68 <input type=
"hidden" name=
"token" value=
"<%=token%>"/>
69 <input type=
"hidden" name=
"device" value=
"<%=utl.pcdata(dev)%>"/>
70 <input type=
"hidden" name=
"ssid" value=
"<%=utl.pcdata(net.ssid)%>"/>
71 <input type=
"hidden" name=
"bssid" value=
"<%=utl.pcdata(net.bssid)%>"/>
72 <input type=
"hidden" name=
"wep" value=
"<%=net.encryption.wep and 1 or 0%>"/>
73 <% if net.encryption.wpa then %
>
74 <input type=
"hidden" name=
"wpa_version" value=
"<%=net.encryption.wpa%>"/>
75 <% for _, v in ipairs(net.encryption.auth_suites) do %
><input type=
"hidden" name=
"wpa_suites" value=
"<%=v%>"/><% end %
>
77 <input class=
"cbi-button cbi-button-apply" type=
"submit" value=
"<%:Add Uplink%>"/>
84 <div class=
"cbi-page-actions right">
85 <form class=
"inline" action=
"<%=luci.dispatcher.build_url('admin/services/travelmate/wifiscan')%>" method=
"post">
86 <input type=
"hidden" name=
"token" value=
"<%=token%>"/>
87 <input type=
"hidden" name=
"device" value=
"<%=utl.pcdata(dev)%>"/>
88 <input class=
"cbi-button cbi-input-find" type=
"submit" value=
"<%:Repeat scan%>"/>
90 <form class=
"inline" action=
"<%=luci.dispatcher.build_url('admin/services/travelmate/stations')%>" method=
"post">
91 <input class=
"cbi-button cbi-button-reset" type=
"submit" value=
"<%:Back to overview%>"/>