diff options
author | Dirk Brenken <dev@brenken.org> | 2017-07-19 22:36:47 +0200 |
---|---|---|
committer | Dirk Brenken <dev@brenken.org> | 2017-07-20 07:44:15 +0200 |
commit | e900b892e871fcd0939df883e9586febe665c252 (patch) | |
tree | 50109c8e420961c8a019b6fc6702a63dd9b1e251 /applications/luci-app-travelmate/luasrc/view | |
parent | 76b3af64c038905ddcc1c511b99c65e3c4879bbc (diff) |
luci-app-travelmate: sync with travelmate 0.9.0
* add a wireless station manager to edit and delete existing
interfaces or scan for new uplinks
Signed-off-by: Dirk Brenken <dev@brenken.org>
Diffstat (limited to 'applications/luci-app-travelmate/luasrc/view')
3 files changed, 182 insertions, 1 deletions
diff --git a/applications/luci-app-travelmate/luasrc/view/travelmate/runtime.htm b/applications/luci-app-travelmate/luasrc/view/travelmate/runtime.htm index ee3a4553a..2b9885567 100644 --- a/applications/luci-app-travelmate/luasrc/view/travelmate/runtime.htm +++ b/applications/luci-app-travelmate/luasrc/view/travelmate/runtime.htm @@ -5,6 +5,6 @@ This is free software, licensed under the Apache License, Version 2.0 <%+cbi/valueheader%> -<input name="runtime" id="runtime" type="text" class="cbi-input-text" style="border: none; box-shadow: none; background-color: #ffffff; color: #0069d6;" value="<%=self:cfgvalue(section)%>" disabled="disabled" /> +<input name="runtime" id="runtime" type="text" class="cbi-input-text" style="border:none; box-shadow:none; background-color:#ffffff; color:#0069d6;" value="<%=self:cfgvalue(section)%>" disabled="disabled" /> <%+cbi/valuefooter%> diff --git a/applications/luci-app-travelmate/luasrc/view/travelmate/stations.htm b/applications/luci-app-travelmate/luasrc/view/travelmate/stations.htm new file mode 100644 index 000000000..e79fb0c95 --- /dev/null +++ b/applications/luci-app-travelmate/luasrc/view/travelmate/stations.htm @@ -0,0 +1,73 @@ +<%# +Copyright 2017 Dirk Brenken (dev@brenken.org) +This is free software, licensed under the Apache License, Version 2.0 +-%> + + +<%- + local write = io.write + local uci = require "luci.model.uci".cursor() + local trmiface = uci:get("travelmate", "global", "trm_iface") or "trm_wwan" +-%> + +<%+header%> + +<div class="cbi-map"> +<h2 name="content"><%:Wireless Stations%></h2> +<div class="cbi-map-descr"><%:Provides an overview of all configured uplink interfaces for travelmate. You can edit and delete existing interfaces or scan for new uplinks.%></div> + +<fieldset class="cbi-section"> + <table class="cbi-section-table" style="empty-cells:hide"> + <tr class="cbi-section-table-titles"> + <th class="cbi-section-table-cell" style="text-align:left"><%:Device%></th> + <th class="cbi-section-table-cell" style="text-align:left"><%:Mode%></th> + <th class="cbi-section-table-cell" style="text-align:left"><%:Uplink Interface%></th> + <th class="cbi-section-table-cell" style="text-align:left"><%:SSID%></th> + <th class="cbi-section-table-cell" style="text-align:left"><%:Encryption%></th> + <th class="cbi-section-table-cell" style="text-align:left" colspan="2"><%:Disabled%></th> + </tr> +<% + uci:foreach("wireless", "wifi-iface", function(s) + local section = s['.name'] + local device = s.device or "" + local mode = s.mode or "" + local iface = s.network or "" + local ssid = s.ssid or "" + local encryption = s.encryption or "" + local disabled = s.disabled or "" + if iface == trmiface then +%> + <tr class="cbi-section-table-row cbi-rowstyle-6"> + <td style="text-align:left"><%=device%></td> + <td style="text-align:left"><%=mode%></td> + <td style="text-align:left"><%=iface%></td> + <td style="text-align:left"><%=ssid%></td> + <td style="text-align:left"><%=encryption%></td> + <td style="text-align:left"><%=disabled%></td> + <td class="cbi-value-field" style="width:200px;text-align:right"> + <input type="button" class="cbi-button cbi-button-edit" style="width:85px" onclick="location.href='<%=url('admin/services/travelmate/wifiedit')%>?cfg=<%=section%>'" title="<%:Edit this Uplink%>" value="<%:Edit%>" /> + <input type="button" class="cbi-button cbi-button-remove" style="width:85px" onclick="location.href='<%=url('admin/services/travelmate/wifidelete')%>?cfg=<%=section%>'" title="<%:Delete this Uplink%>" value="<%:Delete%>"/> + </td> + </tr> +<% + end + end) +%> + </table> +</fieldset> +<div class="cbi-page-actions right"> +<% + uci:foreach("wireless", "wifi-device", function(s) + local device = s[".name"] +%> + <form class="inline" action="<%=url('admin/services/travelmate/wifiscan')%>" method="post"> + <input type="hidden" name="device" value="<%=device%>" /> + <input type="hidden" name="token" value="<%=token%>" /> + <input type="submit" class="cbi-button cbi-button-find" style="width:110px" title="<%:Find and join network on %><%=device%>" value="<%:Scan %><%=device%>" /> + </form> +<% + end) +%> +</div> + +<%+footer%> diff --git a/applications/luci-app-travelmate/luasrc/view/travelmate/wifi_scan.htm b/applications/luci-app-travelmate/luasrc/view/travelmate/wifi_scan.htm new file mode 100644 index 000000000..e1818a06f --- /dev/null +++ b/applications/luci-app-travelmate/luasrc/view/travelmate/wifi_scan.htm @@ -0,0 +1,108 @@ +<%# +Copyright 2017 Dirk Brenken (dev@brenken.org) +This is free software, licensed under the Apache License, Version 2.0 +-%> + +<%- + local sys = require "luci.sys" + local utl = require "luci.util" + local dev = luci.http.formvalue("device") + local iw = luci.sys.wifi.getiwinfo(dev) + + if not iw then + luci.http.redirect(luci.dispatcher.build_url("admin/services/travelmate/stations")) + end + + function format_wifi_encryption(info) + if info.wep == true then + return translate("WEP") + elseif info.wpa > 0 then + return translate("WPA / WPA2") + elseif info.enabled then + return translate("Unknown") + else + return translate("Open") + end + end + + function percent_wifi_signal(info) + local qc = info.quality or 0 + local qm = info.quality_max or 0 + if info.bssid and qc > 0 and qm > 0 then + return math.floor((100 / qm) * qc) + else + return 0 + end + end + + function scanlist(times) + local i, k, v + local l = { } + local s = { } + + for i = 1, times do + for k, v in ipairs(iw.scanlist or { }) do + if not s[v.bssid] then + l[#l+1] = v + s[v.bssid] = true + end + end + end + return l + end +-%> + +<%+header%> + +<div class="cbi-map"> +<h2 name="content"><%:Wireless Scan%></h2> + + <fieldset class="cbi-section"> + <table class="cbi-section-table" style="empty-cells:hide"> + <tr class="cbi-section-table-titles"> + <th class="cbi-section-table-cell" style="text-align:left"><%:Uplink SSID%></th> + <th class="cbi-section-table-cell" style="text-align:left"><%:Encryption%></th> + <th class="cbi-section-table-cell" style="text-align:left" colspan="2"><%:Signal strength%></th> + </tr> + <% for i, net in ipairs(scanlist(3)) do net.encryption = net.encryption or { } %> + <tr class="cbi-section-table-row cbi-rowstyle-4"> + <td class="cbi-value-field" style="text-align:left"> + <strong><%=net.ssid and utl.pcdata(net.ssid) or "<em>%s</em>" % translate("hidden")%></strong> + </td> + <td class="cbi-value-field" style="text-align:left"> + <%=format_wifi_encryption(net.encryption)%> + </td> + <td class="cbi-value-field" style="text-align:left"> + <%=percent_wifi_signal(net)%> % + </td> + <td class="cbi-value-field" style="width:120px; text-align:right"> + <form class="inline" action="<%=url('admin/services/travelmate/wifiadd')%>" method="post"> + <input type="hidden" name="token" value="<%=token%>" /> + <input type="hidden" name="device" value="<%=utl.pcdata(dev)%>" /> + <input type="hidden" name="ssid" value="<%=utl.pcdata(net.ssid)%>" /> + <input type="hidden" name="wep" value="<%=net.encryption.wep and 1 or 0%>" /> + <% if net.encryption.wpa then %> + <input type="hidden" name="wpa_version" value="<%=net.encryption.wpa%>" /> + <% for _, v in ipairs(net.encryption.auth_suites) do %><input type="hidden" name="wpa_suites" value="<%=v%>" /> + <% end; for _, v in ipairs(net.encryption.group_ciphers) do %><input type="hidden" name="wpa_group" value="<%=v%>" /> + <% end; for _, v in ipairs(net.encryption.pair_ciphers) do %><input type="hidden" name="wpa_pairwise" value="<%=v%>" /> + <% end; end %> + <input class="cbi-button cbi-button-apply" style="width:110px" type="submit" value="<%:Add Uplink%>" /> + </form> + </td> + </tr> + <% end %> + </table> + </fieldset> +<div class="cbi-page-actions right"> + <form class="inline" action="<%=url('admin/services/travelmate/stations')%>" method="post"> + <input class="cbi-button cbi-button-reset" type="submit" value="<%:Back to overview%>" /> + </form> + <form class="inline" action="<%=url('admin/services/travelmate/wifiscan')%>" method="post"> + <input type="hidden" name="token" value="<%=token%>" /> + <input type="hidden" name="device" value="<%=utl.pcdata(dev)%>" /> + <input class="cbi-button cbi-input-find" type="submit" value="<%:Repeat scan%>" /> + </form> +</div> + +<%+footer%> |