2018-03-12 16:02:30 +00:00
|
|
|
local net = require "luci.model.network".init()
|
|
|
|
local sys = require "luci.sys"
|
|
|
|
local ifaces = sys.net:devices()
|
2018-02-28 15:05:10 +00:00
|
|
|
local m, s, o
|
|
|
|
|
2018-03-06 14:09:20 +00:00
|
|
|
m = Map("omr-tracker", translate("OMR-Tracker"), translate("OMR-Tracker detect when a connection is down and execute needed scripts"))
|
2018-02-28 15:05:10 +00:00
|
|
|
|
|
|
|
s = m:section(TypedSection, "defaults", translate("Defaults Settings"))
|
|
|
|
s.anonymous = true
|
|
|
|
|
2018-02-28 16:12:20 +00:00
|
|
|
o = s:option(Value, "timeout", translate("Timeout (s)"))
|
2018-02-28 15:05:10 +00:00
|
|
|
o.placeholder = "1"
|
|
|
|
o.default = "1"
|
|
|
|
o.datatype = "range(1, 100)"
|
|
|
|
o.rmempty = false
|
|
|
|
|
|
|
|
o = s:option(Value, "tries", translate("Tries"))
|
|
|
|
o.placeholder = "4"
|
|
|
|
o.default = "4"
|
|
|
|
o.datatype = "range(1, 10)"
|
|
|
|
o.rmempty = false
|
|
|
|
|
2018-02-28 16:12:20 +00:00
|
|
|
o = s:option(Value, "interval", translate("Retry interval (s)"))
|
2018-02-28 15:05:10 +00:00
|
|
|
o.placeholder = "2"
|
|
|
|
o.default = "2"
|
|
|
|
o.datatype = "range(1, 100)"
|
|
|
|
o.rmempty = false
|
|
|
|
|
2018-03-02 18:59:46 +00:00
|
|
|
o = s:option(ListValue, "type", translate("Type"), translate("Always ping gateway, then test connection by ping or dns. None mode only ping gateway."))
|
2018-03-01 13:56:02 +00:00
|
|
|
o:value("ping","ping")
|
|
|
|
o:value("dns","dns")
|
2018-03-02 06:46:56 +00:00
|
|
|
o:value("none","none")
|
2018-02-28 15:05:10 +00:00
|
|
|
|
|
|
|
o = s:option(DynamicList, "hosts", translate("Hosts"))
|
|
|
|
o.placeholder = "4.2.2.1"
|
2018-03-13 13:23:54 +00:00
|
|
|
o.default = { "4.2.2.1", "8.8.8.8" }
|
2018-02-28 15:05:10 +00:00
|
|
|
o.rmempty = false
|
|
|
|
|
2018-03-12 16:02:30 +00:00
|
|
|
s = m:section(TypedSection, "interface", translate("Interfaces"))
|
|
|
|
s.template_addremove = "omr-tracker/cbi-select-add"
|
|
|
|
s.addremove = true
|
|
|
|
s.add_select_options = { }
|
2018-03-12 16:19:43 +00:00
|
|
|
s.add_select_options[''] = ''
|
2018-03-12 16:02:30 +00:00
|
|
|
for _, iface in ipairs(ifaces) do
|
|
|
|
if not (iface == "lo" or iface:match("^ifb.*")) then
|
|
|
|
s.add_select_options[iface] = iface
|
|
|
|
end
|
|
|
|
end
|
|
|
|
|
|
|
|
o = s:option(Value, "timeout", translate("Timeout (s)"))
|
|
|
|
o.placeholder = "1"
|
|
|
|
o.default = "1"
|
|
|
|
o.datatype = "range(1, 100)"
|
|
|
|
o.rmempty = false
|
|
|
|
|
|
|
|
o = s:option(Value, "tries", translate("Tries"))
|
|
|
|
o.placeholder = "4"
|
|
|
|
o.default = "4"
|
|
|
|
o.datatype = "range(1, 10)"
|
|
|
|
o.rmempty = false
|
|
|
|
|
|
|
|
o = s:option(Value, "interval", translate("Retry interval (s)"))
|
|
|
|
o.placeholder = "2"
|
|
|
|
o.default = "2"
|
|
|
|
o.datatype = "range(1, 100)"
|
|
|
|
o.rmempty = false
|
|
|
|
|
|
|
|
o = s:option(ListValue, "type", translate("Type"), translate("Always ping gateway, then test connection by ping or dns. None mode only ping gateway."))
|
|
|
|
o:value("ping","ping")
|
|
|
|
o:value("dns","dns")
|
|
|
|
o:value("none","none")
|
|
|
|
|
|
|
|
o = s:option(DynamicList, "hosts", translate("Hosts"))
|
|
|
|
o.placeholder = "4.2.2.1"
|
2018-03-13 13:23:54 +00:00
|
|
|
o.default = { "4.2.2.1", "8.8.8.8" }
|
2018-03-12 16:02:30 +00:00
|
|
|
o.rmempty = false
|
|
|
|
|
|
|
|
|
2018-02-28 15:05:10 +00:00
|
|
|
return m
|