Merge pull request #1299 from dibdot/travelmate

luci-app-travelmate: sync with 0.9.2
This commit is contained in:
Hannu Nyman 2017-08-12 09:23:29 +03:00 committed by GitHub
commit 2697ef81a1
5 changed files with 41 additions and 33 deletions

View file

@ -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")) .. "see online documentation</a>", "https://github.com/openwrt/packages/blob/master/net/travelmate/files/README.md"))
function m.on_after_commit(self) 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")) luci.http.redirect(luci.dispatcher.build_url("admin", "services", "travelmate"))
end end
@ -27,22 +27,23 @@ s = m:section(NamedSection, "global", "travelmate")
-- Interface Wizard -- Interface Wizard
if uplink == "" then if uplink == "" then
dv = s:option(DummyValue, "nil", translate("Interface Wizard")) dv = s:option(DummyValue, "", translate("Interface Wizard"))
dv.template = "cbi/nullsection" 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.datatype = "and(uciname,rangelength(3,15))"
o.default = "trm_wwan" o.default = trmiface
o.rmempty = false 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("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.")) .. translate("add it to the wan zone of the firewall. This step has only to be done once."))
btn.inputtitle = translate("Add Interface") btn.inputtitle = translate("Add Interface")
btn.inputstyle = "apply" btn.inputstyle = "apply"
btn.disabled = false btn.disabled = false
function btn.write(self, section, value) function btn.write(self, section, value)
iface = o:formvalue(section) local iface = o:formvalue(section)
if iface then
uci:set("travelmate", section, "trm_iface", iface) uci:set("travelmate", section, "trm_iface", iface)
uci:save("travelmate") uci:save("travelmate")
uci:commit("travelmate") uci:commit("travelmate")
@ -55,9 +56,10 @@ if uplink == "" then
zone:add_network(iface) zone:add_network(iface)
fw:save("firewall") fw:save("firewall")
fw:commit("firewall") fw:commit("firewall")
luci.sys.call("env -i /bin/ubus call network reload >/dev/null 2>&1")
end end
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")) luci.http.redirect(luci.dispatcher.build_url("admin", "services", "travelmate"))
end end
return m return m
@ -80,7 +82,7 @@ btn.inputtitle = translate("Rescan")
btn.inputstyle = "find" btn.inputstyle = "find"
btn.disabled = false btn.disabled = false
function btn.write() 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")) luci.http.redirect(luci.dispatcher.build_url("admin", "services", "travelmate"))
end 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"), e1 = e:option(Value, "trm_radio", translate("Radio selection"),
translate("Restrict travelmate to a dedicated radio, e.g. 'radio0'")) translate("Restrict travelmate to a dedicated radio, e.g. 'radio0'"))
e1.datatype = "and(uciname,rangelength(6,6))"
e1.rmempty = true e1.rmempty = true
e2 = e:option(Value, "trm_maxretry", translate("Connection Limit"), 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"), e4 = e:option(Value, "trm_timeout", translate("Overall Timeout"),
translate("Timeout in seconds between retries in 'automatic' mode")) translate("Timeout in seconds between retries in 'automatic' mode"))
e4.default = 60 e4.default = 60
e4.datatype = "range(5,300)" e4.datatype = "range(60,300)"
e4.rmempty = false e4.rmempty = false
return m return m

View file

@ -22,10 +22,15 @@ local s = uci:get_all("wireless", m.hidden.cfg)
if s ~= nil then if s ~= nil then
wssid = m:field(Value, "ssid", translate("SSID")) wssid = m:field(Value, "ssid", translate("SSID"))
wssid.default = s.ssid wssid.default = s.ssid
wssid.datatype = "rangelength(1,32)"
if s.encryption and s.key then if s.encryption and s.key then
wkey = m:field(Value, "key", translatef("Passphrase (%s)", s.encryption)) 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.password = true
wkey.default = s.key wkey.default = s.key or s.password
if s.encryption == "wep" then if s.encryption == "wep" then
wkey.datatype = "wepkey" wkey.datatype = "wepkey"
else else
@ -40,6 +45,8 @@ function wssid.write(self, section, value)
uci:set("wireless", m.hidden.cfg, "ssid", wssid:formvalue(section)) uci:set("wireless", m.hidden.cfg, "ssid", wssid:formvalue(section))
if s.encryption and s.key then if s.encryption and s.key then
uci:set("wireless", m.hidden.cfg, "key", wkey:formvalue(section)) 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 end
uci:save("wireless") uci:save("wireless")
uci:commit("wireless") uci:commit("wireless")

View file

@ -8,13 +8,12 @@ local uci = require("luci.model.uci").cursor()
local trmiface = uci:get("travelmate", "global", "trm_iface") or "trm_wwan" local trmiface = uci:get("travelmate", "global", "trm_iface") or "trm_wwan"
if cfg ~= nil then if cfg ~= nil then
local iface = ""
local section = "" local section = ""
local idx = "" local idx = ""
local idx_change = "" local idx_change = ""
local changed = "" local changed = ""
uci:foreach("wireless", "wifi-iface", function(s) uci:foreach("wireless", "wifi-iface", function(s)
iface = s.network local iface = s.network or ""
if iface == trmiface then if iface == trmiface then
section = s['.name'] section = s['.name']
if cfg == section then if cfg == section then

View file

@ -5,7 +5,7 @@ This is free software, licensed under the Apache License, Version 2.0
<%- <%-
local write = io.write 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" 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) uci:foreach("wireless", "wifi-iface", function(s)
local iface = s.network or "" local iface = s.network or ""
if iface == trmiface then if iface == trmiface then
local section = s['.name'] local section = s['.name'] or ""
local device = s.device or "" local device = s.device or ""
local mode = s.mode or ""
local ssid = s.ssid or "" local ssid = s.ssid or ""
local encryption = s.encryption or "" local encryption = s.encryption or ""
local disabled = s.disabled or "" local disabled = s.disabled or ""

View file

@ -4,8 +4,8 @@ This is free software, licensed under the Apache License, Version 2.0
-%> -%>
<%- <%-
local sys = require "luci.sys" local sys = require("luci.sys")
local utl = require "luci.util" local utl = require("luci.util")
local dev = luci.http.formvalue("device") local dev = luci.http.formvalue("device")
local iw = luci.sys.wifi.getiwinfo(dev) 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) function percent_wifi_signal(info)
local qc = info.quality or 0 local qc = info.quality or 0
local qm = info.quality_max 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) return math.floor((100 / qm) * qc)
else else
return 0 return 0