mirror of
https://github.com/Ysurac/openmptcprouter-feeds.git
synced 2025-03-09 15:40:03 +00:00
Better quota and tracker interface
This commit is contained in:
parent
116dae3c40
commit
82e83780eb
5 changed files with 70 additions and 10 deletions
|
@ -9,20 +9,18 @@ local ifaces = sys.net:devices()
|
||||||
m = Map("omr-quota", translate("Quota"), translate("Set quota, when quota is reached interface state is set to down"))
|
m = Map("omr-quota", translate("Quota"), translate("Set quota, when quota is reached interface state is set to down"))
|
||||||
|
|
||||||
s = m:section(TypedSection, "interface", translate("Interfaces"))
|
s = m:section(TypedSection, "interface", translate("Interfaces"))
|
||||||
|
s.template_addremove = "omr-quota/cbi-select-add"
|
||||||
s.addremove = true
|
s.addremove = true
|
||||||
s.anonymous = false
|
s.add_select_options = { }
|
||||||
|
for _, iface in ipairs(ifaces) do
|
||||||
|
if not (iface == "lo" or iface:match("^ifb.*")) then
|
||||||
|
s.add_select_options[iface] = iface
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
e = s:option(Flag, "enabled", translate("Enable"))
|
e = s:option(Flag, "enabled", translate("Enable"))
|
||||||
e.rmempty = false
|
e.rmempty = false
|
||||||
|
|
||||||
intf = s:option(ListValue, "interface", translate("Interface name"))
|
|
||||||
for _, iface in ipairs(ifaces) do
|
|
||||||
if not (iface == "lo" or iface:match("^ifb.*")) then
|
|
||||||
intf:value(iface)
|
|
||||||
end
|
|
||||||
end
|
|
||||||
intf.rmempty = false
|
|
||||||
|
|
||||||
tx = s:option(Value, "txquota", translate("TX quota (kbit)"))
|
tx = s:option(Value, "txquota", translate("TX quota (kbit)"))
|
||||||
tx.datatype = "uinteger"
|
tx.datatype = "uinteger"
|
||||||
|
|
||||||
|
|
10
luci-app-omr-quota/luasrc/view/omr-quota/cbi-select-add.htm
Normal file
10
luci-app-omr-quota/luasrc/view/omr-quota/cbi-select-add.htm
Normal file
|
@ -0,0 +1,10 @@
|
||||||
|
<div class="cbi-section-create">
|
||||||
|
<% if self.invalid_cts then -%><div class="cbi-section-error"><% end %>
|
||||||
|
<select class="cbi-section-create-name" name="cbi.cts.<%=self.config%>.<%=self.sectiontype%>.select">
|
||||||
|
<%- for k, v in luci.util.kspairs(self.add_select_options) do %>
|
||||||
|
<option value="<%=k%>"><%=luci.util.pcdata(v)%></option>
|
||||||
|
<% end -%>
|
||||||
|
</select>
|
||||||
|
<input class="cbi-button cbi-button-add" type="submit" value="<%:Add%>" title="<%:Add%>" />
|
||||||
|
<% if self.invalid_cts then %><br /><%:Invalid%></div><% end %>
|
||||||
|
</div>
|
|
@ -1,3 +1,6 @@
|
||||||
|
local net = require "luci.model.network".init()
|
||||||
|
local sys = require "luci.sys"
|
||||||
|
local ifaces = sys.net:devices()
|
||||||
local m, s, o
|
local m, s, o
|
||||||
|
|
||||||
m = Map("omr-tracker", translate("OMR-Tracker"), translate("OMR-Tracker detect when a connection is down and execute needed scripts"))
|
m = Map("omr-tracker", translate("OMR-Tracker"), translate("OMR-Tracker detect when a connection is down and execute needed scripts"))
|
||||||
|
@ -33,4 +36,43 @@ o.placeholder = "4.2.2.1"
|
||||||
o.default = "4.2.2.1"
|
o.default = "4.2.2.1"
|
||||||
o.rmempty = false
|
o.rmempty = false
|
||||||
|
|
||||||
|
s = m:section(TypedSection, "interface", translate("Interfaces"))
|
||||||
|
s.template_addremove = "omr-tracker/cbi-select-add"
|
||||||
|
s.addremove = true
|
||||||
|
s.add_select_options = { }
|
||||||
|
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"
|
||||||
|
o.default = "4.2.2.1"
|
||||||
|
o.rmempty = false
|
||||||
|
|
||||||
|
|
||||||
return m
|
return m
|
||||||
|
|
|
@ -0,0 +1,10 @@
|
||||||
|
<div class="cbi-section-create">
|
||||||
|
<% if self.invalid_cts then -%><div class="cbi-section-error"><% end %>
|
||||||
|
<select class="cbi-section-create-name" name="cbi.cts.<%=self.config%>.<%=self.sectiontype%>.select">
|
||||||
|
<%- for k, v in luci.util.kspairs(self.add_select_options) do %>
|
||||||
|
<option value="<%=k%>"><%=luci.util.pcdata(v)%></option>
|
||||||
|
<% end -%>
|
||||||
|
</select>
|
||||||
|
<input class="cbi-button cbi-button-add" type="submit" value="<%:Add%>" title="<%:Add%>" />
|
||||||
|
<% if self.invalid_cts then %><br /><%:Invalid%></div><% end %>
|
||||||
|
</div>
|
|
@ -12,13 +12,13 @@ _validate_section() {
|
||||||
'rxquota:uinteger' \
|
'rxquota:uinteger' \
|
||||||
'ttquota:uinteger' \
|
'ttquota:uinteger' \
|
||||||
'interval:uinteger' \
|
'interval:uinteger' \
|
||||||
'interface:string' \
|
|
||||||
'enabled:bool:0'
|
'enabled:bool:0'
|
||||||
}
|
}
|
||||||
|
|
||||||
_launch_quota() {
|
_launch_quota() {
|
||||||
local txquota rxquota ttquota interval enabled interface
|
local txquota rxquota ttquota interval enabled interface
|
||||||
_validate_section "interface" "$1"
|
_validate_section "interface" "$1"
|
||||||
|
interface=$1
|
||||||
|
|
||||||
[ -z "$txquota" ] && [ -z "$rxquota" ] && [ -z "$ttquota" ] && return
|
[ -z "$txquota" ] && [ -z "$rxquota" ] && [ -z "$ttquota" ] && return
|
||||||
[ $enabled = 0 ] && return
|
[ $enabled = 0 ] && return
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue