User interface improvements part #2
This commit is contained in:
parent
40d6a3c57e
commit
36f1dac36f
7 changed files with 69 additions and 35 deletions
|
@ -11,6 +11,7 @@ You may obtain a copy of the License at
|
||||||
|
|
||||||
$Id$
|
$Id$
|
||||||
]]--
|
]]--
|
||||||
|
require("luci.tools.webadmin")
|
||||||
m = Map("qos")
|
m = Map("qos")
|
||||||
|
|
||||||
s = m:section(TypedSection, "interface", translate("interfaces"))
|
s = m:section(TypedSection, "interface", translate("interfaces"))
|
||||||
|
@ -29,7 +30,7 @@ s:option(Value, "download", nil, "kb/s")
|
||||||
s:option(Value, "upload", nil, "kb/s")
|
s:option(Value, "upload", nil, "kb/s")
|
||||||
|
|
||||||
s = m:section(TypedSection, "classify")
|
s = m:section(TypedSection, "classify")
|
||||||
|
s.template = "cbi/tblsection"
|
||||||
s.anonymous = true
|
s.anonymous = true
|
||||||
s.addremove = true
|
s.addremove = true
|
||||||
|
|
||||||
|
@ -40,12 +41,19 @@ t:value("Normal", translate("qos_normal"))
|
||||||
t:value("Bulk", translate("qos_bulk"))
|
t:value("Bulk", translate("qos_bulk"))
|
||||||
t.default = "Normal"
|
t.default = "Normal"
|
||||||
|
|
||||||
s:option(Value, "srchost").optional = true
|
srch = s:option(Value, "srchost")
|
||||||
s:option(Value, "dsthost").optional = true
|
srch.rmempty = true
|
||||||
|
srch:value("", translate("all"))
|
||||||
|
luci.tools.webadmin.cbi_add_knownips(srch)
|
||||||
|
|
||||||
|
dsth = s:option(Value, "dsthost")
|
||||||
|
dsth.rmempty = true
|
||||||
|
dsth:value("", translate("all"))
|
||||||
|
luci.tools.webadmin.cbi_add_knownips(dsth)
|
||||||
|
|
||||||
l7 = s:option(ListValue, "layer7", translate("service"))
|
l7 = s:option(ListValue, "layer7", translate("service"))
|
||||||
l7.optional = true
|
l7.rmempty = true
|
||||||
l7:value("")
|
l7:value("", translate("all"))
|
||||||
local pats = luci.fs.dir("/etc/l7-protocols")
|
local pats = luci.fs.dir("/etc/l7-protocols")
|
||||||
if pats then
|
if pats then
|
||||||
for i,f in ipairs(pats) do
|
for i,f in ipairs(pats) do
|
||||||
|
@ -56,23 +64,24 @@ if pats then
|
||||||
end
|
end
|
||||||
|
|
||||||
p2p = s:option(ListValue, "ipp2p", "P2P")
|
p2p = s:option(ListValue, "ipp2p", "P2P")
|
||||||
p2p:value("")
|
p2p:value("", "-")
|
||||||
p2p:value("all", translate("all"))
|
p2p:value("all", translate("all"))
|
||||||
p2p:value("bit", "BitTorrent")
|
p2p:value("bit", "BitTorrent")
|
||||||
p2p:value("dc", "DirectConnect")
|
p2p:value("dc", "DirectConnect")
|
||||||
p2p:value("edk", "eDonkey")
|
p2p:value("edk", "eDonkey")
|
||||||
p2p:value("gnu", "Gnutella")
|
p2p:value("gnu", "Gnutella")
|
||||||
p2p:value("kazaa", "Kazaa")
|
p2p:value("kazaa", "Kazaa")
|
||||||
p2p.optional = true
|
p2p.rmempty = true
|
||||||
|
|
||||||
p = s:option(ListValue, "proto", translate("protocol"))
|
p = s:option(ListValue, "proto", translate("protocol"))
|
||||||
p:value("")
|
p:value("", translate("all"))
|
||||||
p:value("tcp", "TCP")
|
p:value("tcp", "TCP")
|
||||||
p:value("udp", "UDP")
|
p:value("udp", "UDP")
|
||||||
p:value("icmp", "ICMP")
|
p:value("icmp", "ICMP")
|
||||||
p.optional = true
|
p.rmempty = true
|
||||||
|
|
||||||
s:option(Value, "ports", translate("port")).optional = true
|
ports = s:option(Value, "ports", translate("ports"))
|
||||||
s:option(Value, "portrange").optional = true
|
ports.rmempty = true
|
||||||
|
ports:value("", translate("all"))
|
||||||
|
|
||||||
return m
|
return m
|
|
@ -12,6 +12,7 @@ You may obtain a copy of the License at
|
||||||
|
|
||||||
$Id$
|
$Id$
|
||||||
]]--
|
]]--
|
||||||
|
require("luci.tools.webadmin")
|
||||||
m = Map("qos")
|
m = Map("qos")
|
||||||
|
|
||||||
s = m:section(NamedSection, "wan", "interface", translate("m_n_inet"))
|
s = m:section(NamedSection, "wan", "interface", translate("m_n_inet"))
|
||||||
|
@ -21,6 +22,7 @@ s:option(Value, "download", translate("qos_interface_download"), "kb/s")
|
||||||
s:option(Value, "upload", translate("qos_interface_upload"), "kb/s")
|
s:option(Value, "upload", translate("qos_interface_upload"), "kb/s")
|
||||||
|
|
||||||
s = m:section(TypedSection, "classify")
|
s = m:section(TypedSection, "classify")
|
||||||
|
s.template = "cbi/tblsection"
|
||||||
|
|
||||||
s.anonymous = true
|
s.anonymous = true
|
||||||
s.addremove = true
|
s.addremove = true
|
||||||
|
@ -32,12 +34,19 @@ t:value("Normal", translate("qos_normal"))
|
||||||
t:value("Bulk", translate("qos_bulk"))
|
t:value("Bulk", translate("qos_bulk"))
|
||||||
t.default = "Normal"
|
t.default = "Normal"
|
||||||
|
|
||||||
s:option(Value, "srchost").optional = true
|
srch = s:option(Value, "srchost")
|
||||||
s:option(Value, "dsthost").optional = true
|
srch.rmempty = true
|
||||||
|
srch:value("", translate("all"))
|
||||||
|
luci.tools.webadmin.cbi_add_knownips(srch)
|
||||||
|
|
||||||
|
dsth = s:option(Value, "dsthost")
|
||||||
|
dsth.rmempty = true
|
||||||
|
dsth:value("", translate("all"))
|
||||||
|
luci.tools.webadmin.cbi_add_knownips(dsth)
|
||||||
|
|
||||||
l7 = s:option(ListValue, "layer7", translate("service"))
|
l7 = s:option(ListValue, "layer7", translate("service"))
|
||||||
l7.optional = true
|
l7.rmempty = true
|
||||||
l7:value("")
|
l7:value("", translate("all"))
|
||||||
local pats = luci.fs.dir("/etc/l7-protocols")
|
local pats = luci.fs.dir("/etc/l7-protocols")
|
||||||
if pats then
|
if pats then
|
||||||
for i,f in ipairs(pats) do
|
for i,f in ipairs(pats) do
|
||||||
|
@ -48,23 +57,24 @@ if pats then
|
||||||
end
|
end
|
||||||
|
|
||||||
p2p = s:option(ListValue, "ipp2p", "P2P")
|
p2p = s:option(ListValue, "ipp2p", "P2P")
|
||||||
p2p:value("")
|
p2p:value("", "-")
|
||||||
p2p:value("all", translate("all"))
|
p2p:value("all", translate("all"))
|
||||||
p2p:value("bit", "BitTorrent")
|
p2p:value("bit", "BitTorrent")
|
||||||
p2p:value("dc", "DirectConnect")
|
p2p:value("dc", "DirectConnect")
|
||||||
p2p:value("edk", "eDonkey")
|
p2p:value("edk", "eDonkey")
|
||||||
p2p:value("gnu", "Gnutella")
|
p2p:value("gnu", "Gnutella")
|
||||||
p2p:value("kazaa", "Kazaa")
|
p2p:value("kazaa", "Kazaa")
|
||||||
p2p.optional = true
|
p2p.rmempty = true
|
||||||
|
|
||||||
p = s:option(ListValue, "proto", translate("protocol"))
|
p = s:option(ListValue, "proto", translate("protocol"))
|
||||||
p:value("")
|
p:value("", translate("all"))
|
||||||
p:value("tcp", "TCP")
|
p:value("tcp", "TCP")
|
||||||
p:value("udp", "UDP")
|
p:value("udp", "UDP")
|
||||||
p:value("icmp", "ICMP")
|
p:value("icmp", "ICMP")
|
||||||
p.optional = true
|
p.rmempty = true
|
||||||
|
|
||||||
s:option(Value, "ports", translate("port")).optional = true
|
ports = s:option(Value, "ports", translate("ports"))
|
||||||
s:option(Value, "portrange").optional = true
|
ports.rmempty = true
|
||||||
|
ports:value("", translate("all"))
|
||||||
|
|
||||||
return m
|
return m
|
|
@ -1,5 +1,6 @@
|
||||||
about = "About"
|
about = "About"
|
||||||
add = "Add"
|
add = "Add"
|
||||||
|
addresses = "Addresses"
|
||||||
aliases = "Aliases"
|
aliases = "Aliases"
|
||||||
all = "all"
|
all = "all"
|
||||||
administration = "Administration"
|
administration = "Administration"
|
||||||
|
@ -76,6 +77,7 @@ packagemanager = "Package Manager"
|
||||||
password = "Password"
|
password = "Password"
|
||||||
path = "Path"
|
path = "Path"
|
||||||
port = "Port"
|
port = "Port"
|
||||||
|
ports = "Ports"
|
||||||
protocol = "Protocol"
|
protocol = "Protocol"
|
||||||
|
|
||||||
reboot = "Reboot"
|
reboot = "Reboot"
|
||||||
|
|
|
@ -1,5 +1,6 @@
|
||||||
about = "Über"
|
about = "Über"
|
||||||
add = "Hinzufügen"
|
add = "Hinzufügen"
|
||||||
|
addresses = "Adressen"
|
||||||
aliases = "Aliasse"
|
aliases = "Aliasse"
|
||||||
all = "alle"
|
all = "alle"
|
||||||
administration = "Administration"
|
administration = "Administration"
|
||||||
|
@ -77,6 +78,7 @@ packagemanager = "Packet-Manager"
|
||||||
password = "Passwort"
|
password = "Passwort"
|
||||||
path = "Pfad"
|
path = "Pfad"
|
||||||
port = "Port"
|
port = "Port"
|
||||||
|
ports = "Ports"
|
||||||
protocol = "Protokoll"
|
protocol = "Protokoll"
|
||||||
|
|
||||||
reboot = "Neu Starten"
|
reboot = "Neu Starten"
|
||||||
|
|
|
@ -63,17 +63,19 @@ function cbi_combobox(id, values, def, man) {
|
||||||
var sel = document.createElement("select");
|
var sel = document.createElement("select");
|
||||||
obj.parentNode.appendChild(sel);
|
obj.parentNode.appendChild(sel);
|
||||||
|
|
||||||
if (obj.value == "") {
|
if (!values[obj.value]) {
|
||||||
var optdef = document.createElement("option");
|
if (obj.value == "") {
|
||||||
optdef.value = "";
|
var optdef = document.createElement("option");
|
||||||
optdef.appendChild(document.createTextNode(def));
|
optdef.value = "";
|
||||||
sel.appendChild(optdef);
|
optdef.appendChild(document.createTextNode(def));
|
||||||
} else if (!values[obj.value]) {
|
sel.appendChild(optdef);
|
||||||
var opt = document.createElement("option");
|
} else {
|
||||||
opt.value = obj.value;
|
var opt = document.createElement("option");
|
||||||
opt.selected = "selected";
|
opt.value = obj.value;
|
||||||
opt.appendChild(document.createTextNode(obj.value));
|
opt.selected = "selected";
|
||||||
sel.appendChild(opt);
|
opt.appendChild(document.createTextNode(obj.value));
|
||||||
|
sel.appendChild(opt);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
for (var i in values) {
|
for (var i in values) {
|
||||||
|
@ -107,9 +109,9 @@ function cbi_combobox(id, values, def, man) {
|
||||||
}
|
}
|
||||||
|
|
||||||
function cbi_combobox_init(id, values, def, man) {
|
function cbi_combobox_init(id, values, def, man) {
|
||||||
var obj = document.getElementById(id)
|
var obj = document.getElementById(id);
|
||||||
cbi_bind(obj, "blur", function() {
|
cbi_bind(obj, "blur", function() {
|
||||||
cbi_combobox(id, values, def, man)
|
cbi_combobox(id, values, def, man)
|
||||||
})
|
});
|
||||||
cbi_combobox(id, values, def, man)
|
cbi_combobox(id, values, def, man);
|
||||||
}
|
}
|
|
@ -15,6 +15,7 @@ $Id$
|
||||||
|
|
||||||
module("luci.tools.webadmin", package.seeall)
|
module("luci.tools.webadmin", package.seeall)
|
||||||
require("luci.model.uci")
|
require("luci.model.uci")
|
||||||
|
require("luci.sys")
|
||||||
|
|
||||||
function byte_format(byte)
|
function byte_format(byte)
|
||||||
local suff = {"B", "KB", "MB", "GB", "TB"}
|
local suff = {"B", "KB", "MB", "GB", "TB"}
|
||||||
|
@ -35,4 +36,10 @@ function cbi_add_networks(field)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
)
|
)
|
||||||
|
end
|
||||||
|
|
||||||
|
function cbi_add_knownips(field)
|
||||||
|
for i, dataset in ipairs(luci.sys.net.arptable()) do
|
||||||
|
field:value(dataset["IP address"])
|
||||||
|
end
|
||||||
end
|
end
|
|
@ -258,6 +258,7 @@ td input[type=password] {
|
||||||
|
|
||||||
input.cbi-button {
|
input.cbi-button {
|
||||||
padding-left: 17px;
|
padding-left: 17px;
|
||||||
|
padding-right: 1px;
|
||||||
}
|
}
|
||||||
|
|
||||||
input.cbi-button-add {
|
input.cbi-button-add {
|
||||||
|
@ -283,6 +284,7 @@ input.cbi-button-apply {
|
||||||
div.cbi-section-remove input {
|
div.cbi-section-remove input {
|
||||||
background: transparent url('../resources/cbi/remove.gif') no-repeat scroll 1px center;
|
background: transparent url('../resources/cbi/remove.gif') no-repeat scroll 1px center;
|
||||||
padding-left: 17px;
|
padding-left: 17px;
|
||||||
|
padding-right: 1px;
|
||||||
border-bottom: none;
|
border-bottom: none;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue