2 Copyright
2017-
2020 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 ifn = utl.trim(sys.exec(
"/bin/ubus -S call network.wireless status 2>/dev/null | jsonfilter -l1 -e '@." .. dev ..
".interfaces[@.config.mode=\"sta\
"].ifname' 2>/dev/null"))
14 iw = sys.wifi.getiwinfo(ifn)
16 iw = sys.wifi.getiwinfo(dev)
20 luci.http.redirect(luci.dispatcher.build_url(
"admin/services/travelmate/stations"))
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)
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>
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")%
>
52 <div class=
"td left" style=
"text-align: left !important">
53 <%=net.bssid and utl.pcdata(net.bssid)%
>
55 <div class=
"td left" style=
"text-align: left !important">
56 <%=net.encryption.description%
>
58 <div class=
"td left" style=
"text-align: left !important">
59 <%=percent_wifi_signal(net)%
> %
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%>"/>
75 <input class=
"cbi-button cbi-button-apply" type=
"submit" value=
"<%:Add Uplink%>"/>
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%>"/>
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%>"/>