diff options
Diffstat (limited to 'applications/luci-app-travelmate/luasrc')
11 files changed, 133 insertions, 107 deletions
diff --git a/applications/luci-app-travelmate/luasrc/model/cbi/travelmate/cfg_firewall_tab.lua b/applications/luci-app-travelmate/luasrc/model/cbi/travelmate/cfg_firewall_tab.lua index 009ed805db..e5a048fa88 100644 --- a/applications/luci-app-travelmate/luasrc/model/cbi/travelmate/cfg_firewall_tab.lua +++ b/applications/luci-app-travelmate/luasrc/model/cbi/travelmate/cfg_firewall_tab.lua @@ -12,6 +12,7 @@ end m = SimpleForm("input", nil) m:append(Template("travelmate/config_css")) +m.submit = translate("Save") m.reset = false s = m:section(SimpleSection, nil, diff --git a/applications/luci-app-travelmate/luasrc/model/cbi/travelmate/cfg_network_tab.lua b/applications/luci-app-travelmate/luasrc/model/cbi/travelmate/cfg_network_tab.lua index 4d43637d9c..0096d6a8c2 100644 --- a/applications/luci-app-travelmate/luasrc/model/cbi/travelmate/cfg_network_tab.lua +++ b/applications/luci-app-travelmate/luasrc/model/cbi/travelmate/cfg_network_tab.lua @@ -12,6 +12,7 @@ end m = SimpleForm("input", nil) m:append(Template("travelmate/config_css")) +m.submit = translate("Save") m.reset = false s = m:section(SimpleSection, nil, diff --git a/applications/luci-app-travelmate/luasrc/model/cbi/travelmate/cfg_wireless_tab.lua b/applications/luci-app-travelmate/luasrc/model/cbi/travelmate/cfg_wireless_tab.lua index a025c1379f..7ef9920a08 100644 --- a/applications/luci-app-travelmate/luasrc/model/cbi/travelmate/cfg_wireless_tab.lua +++ b/applications/luci-app-travelmate/luasrc/model/cbi/travelmate/cfg_wireless_tab.lua @@ -12,6 +12,7 @@ end m = SimpleForm("input", nil) m:append(Template("travelmate/config_css")) +m.submit = translate("Save") m.reset = false s = m:section(SimpleSection, nil, diff --git a/applications/luci-app-travelmate/luasrc/model/cbi/travelmate/configuration_tab.lua b/applications/luci-app-travelmate/luasrc/model/cbi/travelmate/configuration_tab.lua index 4233da6ac7..8a20ab9cce 100644 --- a/applications/luci-app-travelmate/luasrc/model/cbi/travelmate/configuration_tab.lua +++ b/applications/luci-app-travelmate/luasrc/model/cbi/travelmate/configuration_tab.lua @@ -14,6 +14,7 @@ end m = SimpleForm("input", nil) m:append(Template("travelmate/config_css")) +m.submit = translate("Save") m.reset = false s = m:section(SimpleSection, nil, diff --git a/applications/luci-app-travelmate/luasrc/model/cbi/travelmate/overview_tab.lua b/applications/luci-app-travelmate/luasrc/model/cbi/travelmate/overview_tab.lua index 64ab880c4d..add52317b4 100644 --- a/applications/luci-app-travelmate/luasrc/model/cbi/travelmate/overview_tab.lua +++ b/applications/luci-app-travelmate/luasrc/model/cbi/travelmate/overview_tab.lua @@ -4,8 +4,8 @@ local fs = require("nixio.fs") local uci = require("luci.model.uci").cursor() local json = require("luci.jsonc") -local nw = require("luci.model.network").init() -local fw = require("luci.model.firewall").init() +local nw = require("luci.model.network").init() +local fw = require("luci.model.firewall").init() local trmiface = uci.get("travelmate", "global", "trm_iface") or "trm_wwan" local trminput = uci.get("travelmate", "global", "trm_rtfile") or "/tmp/trm_runtime.json" local uplink = uci.get("network", trmiface) or "" @@ -18,7 +18,7 @@ m = Map("travelmate", translate("Travelmate"), .. "see online documentation</a>", "https://github.com/openwrt/packages/blob/master/net/travelmate/files/README.md")) function m.on_after_commit(self) - luci.sys.call("/etc/init.d/travelmate restart >/dev/null 2>&1") + luci.sys.call("env -i /etc/init.d/travelmate restart >/dev/null 2>&1") luci.http.redirect(luci.dispatcher.build_url("admin", "services", "travelmate")) end @@ -27,43 +27,38 @@ s = m:section(NamedSection, "global", "travelmate") -- Interface Wizard if uplink == "" then - dv = s:option(DummyValue, "nil", translate("Interface Wizard")) + dv = s:option(DummyValue, "", translate("Interface Wizard")) dv.template = "cbi/nullsection" - o = s:option(Value, "trm_iface", translate("Uplink interface")) + o = s:option(Value, "", translate("Uplink interface")) o.datatype = "and(uciname,rangelength(3,15))" - o.default = "trm_wwan" + o.default = trmiface o.rmempty = false - function o.validate(self, value) - iface = value - return iface - end - - function o.write(self, section, value) - uci:set("travelmate", section, "trm_iface", iface) - uci:save("travelmate") - uci:commit("travelmate") - end - - btn = s:option(Button, "", translate("Create Uplink Interface"), + btn = s:option(Button, "trm_iface", translate("Create Uplink Interface"), translate("Create a new wireless wan uplink interface, configure it to use dhcp and ") .. translate("add it to the wan zone of the firewall. This step has only to be done once.")) btn.inputtitle = translate("Add Interface") btn.inputstyle = "apply" btn.disabled = false - function btn.write() - local net = nw:add_network(iface, { proto = "dhcp" }) - if net then - nw:save("network") - nw:commit("network") - local zone = fw:get_zone_by_network("wan") - if zone then - zone:add_network(iface) - fw:save("firewall") - fw:commit("firewall") - luci.sys.call("env -i /bin/ubus call network reload >/dev/null 2>&1") + function btn.write(self, section, value) + local iface = o:formvalue(section) + if iface then + uci:set("travelmate", section, "trm_iface", iface) + uci:save("travelmate") + uci:commit("travelmate") + local net = nw:add_network(iface, { proto = "dhcp" }) + if net then + nw:save("network") + nw:commit("network") + local zone = fw:get_zone_by_network("wan") + if zone then + zone:add_network(iface) + fw:save("firewall") + fw:commit("firewall") + end end + luci.sys.call("env -i /bin/ubus call network reload >/dev/null 2>&1") end luci.http.redirect(luci.dispatcher.build_url("admin", "services", "travelmate")) end @@ -77,14 +72,24 @@ 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("env -i /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.default = trmiface o3.rmempty = false o4 = s:option(Value, "trm_triggerdelay", translate("Trigger delay"), @@ -159,6 +164,7 @@ translate("Options for further tweaking in case the defaults are not suitable fo e1 = e:option(Value, "trm_radio", translate("Radio selection"), translate("Restrict travelmate to a dedicated radio, e.g. 'radio0'")) +e1.datatype = "and(uciname,rangelength(6,6))" e1.rmempty = true e2 = e:option(Value, "trm_maxretry", translate("Connection Limit"), @@ -176,7 +182,7 @@ e3.rmempty = false e4 = e:option(Value, "trm_timeout", translate("Overall Timeout"), translate("Timeout in seconds between retries in 'automatic' mode")) e4.default = 60 -e4.datatype = "range(5,300)" +e4.datatype = "range(60,300)" e4.rmempty = false return m diff --git a/applications/luci-app-travelmate/luasrc/model/cbi/travelmate/wifi_add.lua b/applications/luci-app-travelmate/luasrc/model/cbi/travelmate/wifi_add.lua index 979307e001..dcfa17c8b5 100644 --- a/applications/luci-app-travelmate/luasrc/model/cbi/travelmate/wifi_add.lua +++ b/applications/luci-app-travelmate/luasrc/model/cbi/travelmate/wifi_add.lua @@ -7,6 +7,7 @@ local http = require("luci.http") local trmiface = uci.get("travelmate", "global", "trm_iface") or "trm_wwan" m = SimpleForm("add", translate("Add Wireless Uplink Configuration")) +m.submit = translate("Save") m.cancel = translate("Back to overview") m.reset = false @@ -18,7 +19,7 @@ m.hidden = { device = http.formvalue("device"), ssid = http.formvalue("ssid"), wep = http.formvalue("wep"), - wpa_suites = http.formvalue("wpa_suites"), + wpa_suites = http.formvalue("wpa_suites"), wpa_version = http.formvalue("wpa_version") } @@ -45,11 +46,11 @@ end function wssid.write(self, section, value) newsection = uci:section("wireless", "wifi-iface", nil, { - mode = "sta", - network = trmiface, - device = m.hidden.device, - ssid = wssid:formvalue(section), - disabled = "1" + mode = "sta", + network = trmiface, + device = m.hidden.device, + ssid = wssid:formvalue(section), + disabled = "1" }) if (tonumber(m.hidden.wep) or 0) == 1 then uci:set("wireless", newsection, "encryption", "wep-open") diff --git a/applications/luci-app-travelmate/luasrc/model/cbi/travelmate/wifi_delete.lua b/applications/luci-app-travelmate/luasrc/model/cbi/travelmate/wifi_delete.lua index 97ec1ca3ca..0c3cc1865b 100644 --- a/applications/luci-app-travelmate/luasrc/model/cbi/travelmate/wifi_delete.lua +++ b/applications/luci-app-travelmate/luasrc/model/cbi/travelmate/wifi_delete.lua @@ -10,5 +10,4 @@ if cfg ~= nil then uci:save("wireless") uci:commit("wireless") end - http.redirect(luci.dispatcher.build_url("admin/services/travelmate/stations")) diff --git a/applications/luci-app-travelmate/luasrc/model/cbi/travelmate/wifi_edit.lua b/applications/luci-app-travelmate/luasrc/model/cbi/travelmate/wifi_edit.lua index 0bae98460f..c60ff22c4d 100644 --- a/applications/luci-app-travelmate/luasrc/model/cbi/travelmate/wifi_edit.lua +++ b/applications/luci-app-travelmate/luasrc/model/cbi/travelmate/wifi_edit.lua @@ -6,6 +6,7 @@ local uci = require("luci.model.uci").cursor() local http = require("luci.http") m = SimpleForm("edit", translate("Edit Wireless Uplink Configuration")) +m.submit = translate("Save") m.cancel = translate("Back to overview") m.reset = false @@ -21,11 +22,15 @@ local s = uci:get_all("wireless", m.hidden.cfg) if s ~= nil then wssid = m:field(Value, "ssid", translate("SSID")) wssid.default = s.ssid - + wssid.datatype = "rangelength(1,32)" if s.encryption and s.key then wkey = m:field(Value, "key", translatef("Passphrase (%s)", s.encryption)) + elseif s.encryption and s.password then + wkey = m:field(Value, "password", translatef("Passphrase (%s)", s.encryption)) + end + if s.encryption and (s.key or s.password) then wkey.password = true - wkey.default = s.key + wkey.default = s.key or s.password if s.encryption == "wep" then wkey.datatype = "wepkey" else @@ -33,17 +38,19 @@ if s ~= nil then end end else - http.redirect(luci.dispatcher.build_url("admin/services/travelmate/stations")) + m.on_cancel() end function wssid.write(self, section, value) uci:set("wireless", m.hidden.cfg, "ssid", wssid:formvalue(section)) if s.encryption and s.key then uci:set("wireless", m.hidden.cfg, "key", wkey:formvalue(section)) + elseif s.encryption and s.password then + uci:set("wireless", m.hidden.cfg, "password", wkey:formvalue(section)) end uci:save("wireless") uci:commit("wireless") - http.redirect(luci.dispatcher.build_url("admin/services/travelmate/stations")) + m.on_cancel() end return m 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 index 5734841030..6eb4c72063 100644 --- a/applications/luci-app-travelmate/luasrc/model/cbi/travelmate/wifi_order.lua +++ b/applications/luci-app-travelmate/luasrc/model/cbi/travelmate/wifi_order.lua @@ -1,22 +1,36 @@ -- 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") +local uci = require("luci.model.uci").cursor() +local trmiface = uci:get("travelmate", "global", "trm_iface") or "trm_wwan" 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) + local section = "" + local idx = "" + local idx_change = "" + local changed = "" + uci:foreach("wireless", "wifi-iface", function(s) + local iface = s.network or "" + if iface == trmiface then + section = s['.name'] + if cfg == section then + idx = s['.index'] + else + idx_change = s['.index'] + end + if (dir == "up" and idx ~= "" and idx_change ~= "" and idx_change < idx) or + (dir == "down" and idx ~= "" and idx_change ~= "" and idx_change > idx) then + changed = uci:reorder("wireless", cfg, idx_change) + idx = "" + end + end + end) + if changed ~= "" then + uci:save("wireless") + uci:commit("wireless") end - uci:save("wireless") - uci:commit("wireless") end - http.redirect(luci.dispatcher.build_url("admin/services/travelmate/stations")) diff --git a/applications/luci-app-travelmate/luasrc/view/travelmate/stations.htm b/applications/luci-app-travelmate/luasrc/view/travelmate/stations.htm index bdb265f195..cbb6c189b8 100644 --- a/applications/luci-app-travelmate/luasrc/view/travelmate/stations.htm +++ b/applications/luci-app-travelmate/luasrc/view/travelmate/stations.htm @@ -3,10 +3,9 @@ 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 uci = require("luci.model.uci").cursor() local trmiface = uci:get("travelmate", "global", "trm_iface") or "trm_wwan" -%> @@ -14,52 +13,46 @@ 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"> + <%=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"><%: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 - uci:foreach("wireless", "wifi-iface", function(s) - pos = pos + 1 - local section = s['.name'] - local device = s.device or "" - local mode = s.mode or "" + uci:foreach("wireless", "wifi-iface", function(s) local iface = s.network or "" - local ssid = s.ssid or "" - local encryption = s.encryption or "" - local disabled = s.disabled or "" - local style = "color:#000000" - if disabled == "0" then - style = "color:#0069d6" - end if iface == trmiface then + local section = s['.name'] or "" + local device = s.device or "" + local ssid = s.ssid or "" + local encryption = s.encryption or "" + local disabled = s.disabled or "" + local style = "color:#000000" + if disabled == "0" then + style = "color:#0069d6;font-weight:bold" + end %> - <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%>;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%>;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> -<% +<% end end) %> @@ -71,13 +64,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%> diff --git a/applications/luci-app-travelmate/luasrc/view/travelmate/wifi_scan.htm b/applications/luci-app-travelmate/luasrc/view/travelmate/wifi_scan.htm index 2ce45c63cb..af90c18d23 100644 --- a/applications/luci-app-travelmate/luasrc/view/travelmate/wifi_scan.htm +++ b/applications/luci-app-travelmate/luasrc/view/travelmate/wifi_scan.htm @@ -4,8 +4,8 @@ This is free software, licensed under the Apache License, Version 2.0 -%> <%- - local sys = require "luci.sys" - local utl = require "luci.util" + local sys = require("luci.sys") + local utl = require("luci.util") local dev = luci.http.formvalue("device") local iw = luci.sys.wifi.getiwinfo(dev) @@ -28,7 +28,7 @@ This is free software, licensed under the Apache License, Version 2.0 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 + if info.ssid and qc > 0 and qm > 0 then return math.floor((100 / qm) * qc) else return 0 @@ -47,8 +47,8 @@ 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 or { }) do%> - <tr class="cbi-section-table-row cbi-rowstyle-4"> + <% 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"> <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> @@ -76,14 +76,15 @@ This is free software, licensed under the Apache License, Version 2.0 </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%>" /> + <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="<%=url('admin/services/travelmate/stations')%>" method="post"> + <input class="cbi-button cbi-button-reset" type="submit" value="<%:Back to overview%>"/> + </form> +</div> </div> <%+footer%> |