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 ""
.. "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
-- 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.write(self, section, value)
- iface = o:formvalue(section)
- 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
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
translate("Options for further tweaking in case the defaults are not suitable for you."))
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
e2 = e:option(Value, "trm_maxretry", translate("Connection Limit"),
- translate("How many times should travelmate try to connect to an Uplink"))
+ translate("How many times should travelmate try to connect to an Uplink. ")
+ .. translate("To disable this feature set it to '0' which means unlimited retries."))
e2.default = 3
-e2.datatype = "range(1,10)"
+e2.datatype = "range(0,30)"
e2.rmempty = false
e3 = e:option(Value, "trm_maxwait", translate("Interface Timeout"),
- translate("How long should travelmate wait for a successful wlan interface reload"))
+ translate("How long should travelmate wait for a successful wlan interface reload."))
e3.default = 30
e3.datatype = "range(5,60)"
e3.rmempty = false
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.datatype = "range(5,300)"
+e4.datatype = "range(60,300)"
e4.rmempty = false
return m