luci-app-travelmate: enhancements & fixes 1251/head
authorDirk Brenken <dev@brenken.org>
Tue, 25 Jul 2017 05:24:59 +0000 (07:24 +0200)
committerDirk Brenken <dev@brenken.org>
Tue, 25 Jul 2017 05:24:59 +0000 (07:24 +0200)
* add re-ordering buttons in Station Overview
* fix possible nil error during wifi scan

Signed-off-by: Dirk Brenken <dev@brenken.org>
applications/luci-app-travelmate/luasrc/controller/travelmate.lua
applications/luci-app-travelmate/luasrc/model/cbi/travelmate/wifi_order.lua [new file with mode: 0644]
applications/luci-app-travelmate/luasrc/view/travelmate/stations.htm
applications/luci-app-travelmate/luasrc/view/travelmate/wifi_scan.htm

index 71fb179..a418a8e 100644 (file)
@@ -26,6 +26,7 @@ function index()
        entry({"admin", "services", "travelmate", "wifiadd"}, cbi("travelmate/wifi_add", {hideresetbtn=true, hidesavebtn=true})).leaf = true
        entry({"admin", "services", "travelmate", "wifiedit"}, cbi("travelmate/wifi_edit", {hideresetbtn=true, hidesavebtn=true})).leaf = true
        entry({"admin", "services", "travelmate", "wifidelete"}, cbi("travelmate/wifi_delete", {hideresetbtn=true, hidesavebtn=true})).leaf = true
+       entry({"admin", "services", "travelmate", "wifiorder"}, cbi("travelmate/wifi_order", {hideresetbtn=true, hidesavebtn=true})).leaf = true
 end
 
 function logread()
diff --git a/applications/luci-app-travelmate/luasrc/model/cbi/travelmate/wifi_order.lua b/applications/luci-app-travelmate/luasrc/model/cbi/travelmate/wifi_order.lua
new file mode 100644 (file)
index 0000000..5734841
--- /dev/null
@@ -0,0 +1,22 @@
+-- Copyright 2017 Dirk Brenken (dev@brenken.org)
+-- This is free software, licensed under the Apache License, Version 2.0
+
+local uci = require("luci.model.uci").cursor()
+local http = require("luci.http")
+local cfg = http.formvalue("cfg")
+local pos = http.formvalue("pos")
+local dir = http.formvalue("dir")
+
+if cfg ~= nil then
+       if dir == "up" then
+               pos = pos - 1
+               uci:reorder("wireless", cfg, pos)
+       elseif dir == "down" then
+               pos = pos + 1
+               uci:reorder("wireless", cfg, pos)
+       end
+       uci:save("wireless")
+       uci:commit("wireless")
+end
+
+http.redirect(luci.dispatcher.build_url("admin/services/travelmate/stations"))
index ee58f52..bdb265f 100644 (file)
@@ -24,10 +24,12 @@ This is free software, licensed under the Apache License, Version 2.0
       <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>
+      <th class="cbi-section-table-cell" style="text-align:left" colspan="3"><%:Disabled%></th>
     </tr>
 <%
-  uci:foreach("wireless", "wifi-iface", function(s)
+    local pos = 1
+    uci:foreach("wireless", "wifi-iface", function(s)
+    pos = pos + 1
     local section = s['.name']
     local device = s.device or ""
     local mode = s.mode or ""
@@ -41,14 +43,18 @@ This is free software, licensed under the Apache License, Version 2.0
     end
     if iface == trmiface then
 %>
-    <tr class="cbi-section-table-row cbi-rowstyle-6" style="<%=style%>">
+    <tr class="cbi-section-table-row cbi-rowstyle-7" 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:200px;text-align:right">
+      <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>
+      <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>
index 44606da..2ce45c6 100644 (file)
@@ -47,7 +47,7 @@ This is free software, licensed under the Apache License, Version 2.0
                 <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) do%>
+            <% for i, net in ipairs(iw.scanlist or { }) do%>
             <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>