luci-app-travelmate: enhancements & fixes 1261/head
authorDirk Brenken <dev@brenken.org>
Sat, 29 Jul 2017 08:02:21 +0000 (10:02 +0200)
committerDirk Brenken <dev@brenken.org>
Sat, 29 Jul 2017 15:36:48 +0000 (17:36 +0200)
* Further optimized Station Overview & Scan page,
  especially for mobile devices
* add a "Rescan" button in manual mode on overview page
* XHTML fixes

Signed-off-by: Dirk Brenken <dev@brenken.org>
applications/luci-app-travelmate/luasrc/model/cbi/travelmate/overview_tab.lua
applications/luci-app-travelmate/luasrc/view/travelmate/stations.htm
applications/luci-app-travelmate/luasrc/view/travelmate/wifi_scan.htm

index 64ab880c4d8a4ca7ad8cb6e22ff18deecd126d38..aa508f521472f68a52978dcca6e7889cb6f00f01 100644 (file)
@@ -35,12 +35,8 @@ if uplink == "" then
        o.default = "trm_wwan"
        o.rmempty = false
 
-       function o.validate(self, value)
-               iface = value
-               return iface
-       end
-
        function o.write(self, section, value)
+               iface = o:formvalue(section)
                uci:set("travelmate", section, "trm_iface", iface)
                uci:save("travelmate")
                uci:commit("travelmate")
@@ -77,12 +73,22 @@ o1.default = o1.disabled
 o1.rmempty = false
 
 o2 = s:option(Flag, "trm_automatic", translate("Enable 'automatic' mode"),
-       translate("Keep travelmate in an active state."))
+       translate("Keep travelmate in an active state. Check every n seconds the connection status, i.e. the uplink availability."))
 o2.default = o2.enabled
 o2.rmempty = false
 
+btn = s:option(Button, "", translate("Manual Rescan"))
+btn:depends("trm_automatic", "")
+btn.inputtitle = translate("Rescan")
+btn.inputstyle = "find"
+btn.disabled = false
+function btn.write()
+       luci.sys.call("/etc/init.d/travelmate start >/dev/null 2>&1")
+       luci.http.redirect(luci.dispatcher.build_url("admin", "services", "travelmate"))
+end
+
 o3 = s:option(Value, "trm_iface", translate("Uplink / Trigger interface"),
-       translate("Name of the uplink interface that triggers travelmate processing."))
+       translate("Name of the uplink interface that triggers travelmate processing in 'manual' mode."))
 o3.datatype = "and(uciname,rangelength(3,15))"
 o3.default = "trm_wwan"
 o3.rmempty = false
index bdb265f195242d3998201b5a42568b9869e80fdc..f1c6be162878a311c15a6db6869c3b2e7ed816ed 100644 (file)
@@ -3,7 +3,6 @@ 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()
@@ -14,17 +13,17 @@ This is free software, licensed under the Apache License, Version 2.0
 
 <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>
+<div class="cbi-map-descr">
+  <%:Provides an overview of all configured uplinks for the travelmate interface (%><%=trmiface%><%:). You can edit, delete or re-order existing uplinks or scan for a new one. The currently used uplink is emphasized in blue.%>
+</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="3"><%:Disabled%></th>
+      <th class="cbi-section-table-cell" style="text-align:center" colspan="2"><%:Actions%></th>
     </tr>
 <%
     local pos = 1
@@ -39,24 +38,21 @@ This is free software, licensed under the Apache License, Version 2.0
     local disabled = s.disabled or ""
     local style = "color:#000000"
     if disabled == "0" then
-      style = "color:#0069d6"
+      style = "color:#0069d6;font-weight:bold"
     end
     if iface == trmiface then
 %>
-    <tr class="cbi-section-table-row cbi-rowstyle-7" style="<%=style%>">
+    <tr class="cbi-section-table-row cbi-rowstyle-1" style="<%=style%>">
       <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:100px;text-align:right">
-        <input class="cbi-button cbi-button-up" type="button" value="" onclick="location.href='<%=url('admin/services/travelmate/wifiorder')%>?cfg=<%=section%>&pos=<%=pos%>&dir=up'" alt="<%:Move up%>" title="<%:Move up%>" />
-        <input class="cbi-button cbi-button-down" type="button" value="" onclick="location.href='<%=url('admin/services/travelmate/wifiorder')%>?cfg=<%=section%>&pos=<%=pos%>&dir=down'" alt="<%:Move down%>" title="<%:Move down%>" />
+      <td class="cbi-value-field" style="width:70px;text-align:right">
+        <input class="cbi-button cbi-button-up" type="button" value="" onclick="location.href='<%=url('admin/services/travelmate/wifiorder')%>?cfg=<%=section%>;pos=<%=pos%>;dir=up'" alt="<%:Move up%>" title="<%:Move up%>"/>
+        <input class="cbi-button cbi-button-down" type="button" value="" onclick="location.href='<%=url('admin/services/travelmate/wifiorder')%>?cfg=<%=section%>;pos=<%=pos%>;dir=down'" alt="<%:Move down%>" title="<%:Move down%>"/>
       </td>
-      <td class="cbi-value-field" style="width:180px;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 class="cbi-value-field" style="width:150px;text-align:right">
+        <input type="button" class="cbi-button cbi-button-edit" 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" onclick="location.href='<%=url('admin/services/travelmate/wifidelete')%>?cfg=<%=section%>'" title="<%:Delete this Uplink%>" value="<%:Delete%>"/>
       </td>
     </tr>
 <% 
@@ -71,13 +67,14 @@ This is free software, licensed under the Apache License, Version 2.0
     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%>" />
+    <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%>
index 2ce45c63cb5d07db1c961c37c9cebccd7a1467e5..dea107eef4d1a9c097f729510f308a4ba955df69 100644 (file)
@@ -48,7 +48,7 @@ This is free software, licensed under the Apache License, Version 2.0
                 <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-4">
+            <tr class="cbi-section-table-row cbi-rowstyle-1">
                 <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>
@@ -58,17 +58,17 @@ This is free software, licensed under the Apache License, Version 2.0
                 <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">
+                <td class="cbi-value-field" style="width:100px;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%>" />
+                        <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%>" />
+                        <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" style="width:110px" type="submit" value="<%:Add Uplink%>" />
+                        <input class="cbi-button cbi-button-apply" type="submit" value="<%:Add Uplink%>"/>
                     </form>
                 </td>
             </tr>
@@ -77,13 +77,14 @@ This is free software, licensed under the Apache License, Version 2.0
     </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%>" />
+        <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%>" />
+        <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>
+</div>
 
 <%+footer%>