summaryrefslogtreecommitdiffhomepage
path: root/applications/luci-app-travelmate/luasrc
diff options
context:
space:
mode:
authorDirk Brenken <dev@brenken.org>2017-08-12 08:03:48 +0200
committerDirk Brenken <dev@brenken.org>2017-08-12 08:03:48 +0200
commit3317104647c6e189094464d045d9ec76ee8530e9 (patch)
tree160ca0cb5b117d26df68db5a98e9e5162954e51f /applications/luci-app-travelmate/luasrc
parent4e80499a023fb195c7c897841473f526ffd0c7fa (diff)
luci-app-travelmate: sync with 0.9.2
* frontend: add/modify input datatypes in 'extra' section * frontend: add support to edit/change wpa enterprise key phrases * frontend: various small fixes Signed-off-by: Dirk Brenken <dev@brenken.org>
Diffstat (limited to 'applications/luci-app-travelmate/luasrc')
-rw-r--r--applications/luci-app-travelmate/luasrc/model/cbi/travelmate/overview_tab.lua49
-rw-r--r--applications/luci-app-travelmate/luasrc/model/cbi/travelmate/wifi_edit.lua9
-rw-r--r--applications/luci-app-travelmate/luasrc/model/cbi/travelmate/wifi_order.lua3
-rw-r--r--applications/luci-app-travelmate/luasrc/view/travelmate/stations.htm5
-rw-r--r--applications/luci-app-travelmate/luasrc/view/travelmate/wifi_scan.htm8
5 files changed, 41 insertions, 33 deletions
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 b16fb4161..add52317b 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,36 +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
- 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(self, section, value)
- iface = o:formvalue(section)
- 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")
- luci.sys.call("env -i /bin/ubus call network reload >/dev/null 2>&1")
+ 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
@@ -80,7 +82,7 @@ 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.sys.call("env -i /etc/init.d/travelmate start >/dev/null 2>&1")
luci.http.redirect(luci.dispatcher.build_url("admin", "services", "travelmate"))
end
@@ -162,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"),
@@ -179,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_edit.lua b/applications/luci-app-travelmate/luasrc/model/cbi/travelmate/wifi_edit.lua
index 6d6bdcff4..c60ff22c4 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
@@ -22,10 +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
@@ -40,6 +45,8 @@ 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")
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 5b6141e52..6eb4c7206 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
@@ -8,13 +8,12 @@ local uci = require("luci.model.uci").cursor()
local trmiface = uci:get("travelmate", "global", "trm_iface") or "trm_wwan"
if cfg ~= nil then
- local iface = ""
local section = ""
local idx = ""
local idx_change = ""
local changed = ""
uci:foreach("wireless", "wifi-iface", function(s)
- iface = s.network
+ local iface = s.network or ""
if iface == trmiface then
section = s['.name']
if cfg == section then
diff --git a/applications/luci-app-travelmate/luasrc/view/travelmate/stations.htm b/applications/luci-app-travelmate/luasrc/view/travelmate/stations.htm
index 41c9f5267..cbb6c189b 100644
--- a/applications/luci-app-travelmate/luasrc/view/travelmate/stations.htm
+++ b/applications/luci-app-travelmate/luasrc/view/travelmate/stations.htm
@@ -5,7 +5,7 @@ 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"
-%>
@@ -29,9 +29,8 @@ This is free software, licensed under the Apache License, Version 2.0
uci:foreach("wireless", "wifi-iface", function(s)
local iface = s.network or ""
if iface == trmiface then
- local section = s['.name']
+ local section = s['.name'] or ""
local device = s.device or ""
- local mode = s.mode or ""
local ssid = s.ssid or ""
local encryption = s.encryption or ""
local disabled = s.disabled or ""
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 b3907e864..af90c18d2 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,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 or { }) do%>
+ <% 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>