diff options
Diffstat (limited to 'applications/luci-app-travelmate/luasrc/view')
5 files changed, 219 insertions, 0 deletions
diff --git a/applications/luci-app-travelmate/luasrc/view/travelmate/config_css.htm b/applications/luci-app-travelmate/luasrc/view/travelmate/config_css.htm new file mode 100644 index 000000000..2233a15e3 --- /dev/null +++ b/applications/luci-app-travelmate/luasrc/view/travelmate/config_css.htm @@ -0,0 +1,13 @@ +<style type="text/css"> + textarea + { + border: 1px solid #cccccc; + padding: 5px; + font-size: 12px; + font-family: monospace; + resize: none; + white-space: pre; + overflow-wrap: normal; + overflow-x: scroll; + } +</style> diff --git a/applications/luci-app-travelmate/luasrc/view/travelmate/logread.htm b/applications/luci-app-travelmate/luasrc/view/travelmate/logread.htm new file mode 100644 index 000000000..6cbeaffde --- /dev/null +++ b/applications/luci-app-travelmate/luasrc/view/travelmate/logread.htm @@ -0,0 +1,20 @@ +<%# +Copyright 2017-2018 Dirk Brenken (dev@brenken.org) +This is free software, licensed under the Apache License, Version 2.0 +-%> + +<%+header%> + +<div class="cbi-map"> + <fieldset class="cbi-section"> + <div class="cbi-section-descr"><%:This form shows the syslog output, pre-filtered for travelmate related messages only.%></div> + <textarea id="logread_id" style="width: 100%; height: 450px; border: 1px solid #cccccc; padding: 5px; font-size: 12px; font-family: monospace; resize: none;" readonly="readonly" wrap="off" rows="<%=content:cmatch("\n")+2%>"><%=content:pcdata()%></textarea> + </fieldset> +</div> + +<script type="text/javascript"> + var textarea = document.getElementById('logread_id'); + textarea.scrollTop = textarea.scrollHeight; +</script> + +<%+footer%> diff --git a/applications/luci-app-travelmate/luasrc/view/travelmate/runtime.htm b/applications/luci-app-travelmate/luasrc/view/travelmate/runtime.htm new file mode 100644 index 000000000..e7827b5c3 --- /dev/null +++ b/applications/luci-app-travelmate/luasrc/view/travelmate/runtime.htm @@ -0,0 +1,10 @@ +<%# +Copyright 2017-2018 Dirk Brenken (dev@brenken.org) +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="outline:none;border:none;box-shadow:none;background:transparent;color:#0069d6;font-weight:bold;line-height:30px;height:30px;" 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..ae1ea797a --- /dev/null +++ b/applications/luci-app-travelmate/luasrc/view/travelmate/stations.htm @@ -0,0 +1,80 @@ +<%# +Copyright 2017-2018 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"> + <%=translatef("Provides an overview of all configured uplinks for the travelmate interface (%s). You can edit, delete or re-order existing uplinks or scan for a new one. The currently used uplink is emphasized in blue.", trmiface)%> +</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"><%:SSID%></th> + <th class="cbi-section-table-cell" style="text-align:left"><%:BSSID%></th> + <th class="cbi-section-table-cell" style="text-align:left"><%:Encryption%></th> + <th class="cbi-section-table-cell" style="text-align:center" colspan="2"><%:Actions%></th> + </tr> +<% + uci:foreach("wireless", "wifi-iface", function(s) + local iface = s.network or "" + if iface == trmiface then + local section = s['.name'] or "" + local device = s.device or "-" + local ssid = s.ssid or "-" + local bssid = s.bssid or "-" + local encryption = s.encryption or "-" + local disabled = s.disabled or "" + local style = "text-align:left;color:#000000" + if disabled == "0" then + style = "text-align:left;color:#0069d6;font-weight:bold" + end +%> + <tr class="cbi-section-table-row cbi-rowstyle-1" style="<%=style%>"> + <td style="<%=style%>"><%=device%></td> + <td style="<%=style%>"><%=ssid%></td> + <td style="<%=style%>"><%=bssid%></td> + <td style="<%=style%>"><%=encryption%></td> + <td class="cbi-value-field" style="width:80px"> + <input class="cbi-button cbi-button-up" type="button" value="" onclick="location.href='<%=luci.dispatcher.build_url('admin/services/travelmate/wifiorder')%>?cfg=<%=section%>;dir=up'" alt="<%:Move up%>" title="<%:Move up%>"/> + <input class="cbi-button cbi-button-down" type="button" value="" onclick="location.href='<%=luci.dispatcher.build_url('admin/services/travelmate/wifiorder')%>?cfg=<%=section%>;dir=down'" alt="<%:Move down%>" title="<%:Move down%>"/> + </td> + <td class="cbi-value-field" style="width:150px"> + <input type="button" class="cbi-button cbi-button-edit" onclick="location.href='<%=luci.dispatcher.build_url('admin/services/travelmate/wifiedit')%>?cfg=<%=section%>'" title="<%:Edit this Uplink%>" value="<%:Edit%>"/> + <input type="button" class="cbi-button cbi-button-remove" onclick="location.href='<%=luci.dispatcher.build_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="<%=luci.dispatcher.build_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" title="<%:Find and join network on %><%=device%>" value="<%:Scan %><%=device%>"/> + </form> +<% + end) +%> +</div> +</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..a8f63a17e --- /dev/null +++ b/applications/luci-app-travelmate/luasrc/view/travelmate/wifi_scan.htm @@ -0,0 +1,96 @@ +<%# +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) + local wpa_label = {translate("WPA"), translate("WPA2"), translate("WPA/WPA2")} + + 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 "%s (%s/%s)" %{wpa_label[info.wpa], table.concat(info.auth_suites), table.concat(info.group_ciphers)} + 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 +-%> + +<%+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"><%:Uplink BSSID%></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(iw.scanlist or { }) do %> + <tr class="cbi-section-table-row cbi-rowstyle-1"> + <td class="cbi-value-field" style="text-align:left"> + <%=net.ssid and utl.pcdata(net.ssid) or "<em>%s</em>" % translate("hidden")%> + </td> + <td class="cbi-value-field" style="text-align:left"> + <%=net.bssid and utl.pcdata(net.bssid)%> + </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:100px;text-align:right"> + <form class="inline" action="<%=luci.dispatcher.build_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="bssid" value="<%=utl.pcdata(net.bssid)%>"/> + <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 %> + <% end %> + <input class="cbi-button cbi-button-apply" type="submit" value="<%:Add Uplink%>"/> + </form> + </td> + </tr> + <% end %> + </table> + </fieldset> +<div class="cbi-page-actions right"> + <form class="inline" action="<%=luci.dispatcher.build_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> + <form class="inline" action="<%=luci.dispatcher.build_url('admin/services/travelmate/stations')%>" method="post"> + <input class="cbi-button cbi-button-reset" type="submit" value="<%:Back to overview%>"/> + </form> +</div> +</div> + +<%+footer%> |