User interface improvements part #2

This commit is contained in:
Steven Barth 2008-08-13 16:18:39 +00:00
parent 40d6a3c57e
commit 36f1dac36f
7 changed files with 69 additions and 35 deletions

View file

@ -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

View file

@ -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

View file

@ -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"

View file

@ -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"

View file

@ -63,18 +63,20 @@ 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 (!values[obj.value]) {
if (obj.value == "") { if (obj.value == "") {
var optdef = document.createElement("option"); var optdef = document.createElement("option");
optdef.value = ""; optdef.value = "";
optdef.appendChild(document.createTextNode(def)); optdef.appendChild(document.createTextNode(def));
sel.appendChild(optdef); sel.appendChild(optdef);
} else if (!values[obj.value]) { } else {
var opt = document.createElement("option"); var opt = document.createElement("option");
opt.value = obj.value; opt.value = obj.value;
opt.selected = "selected"; opt.selected = "selected";
opt.appendChild(document.createTextNode(obj.value)); opt.appendChild(document.createTextNode(obj.value));
sel.appendChild(opt); sel.appendChild(opt);
} }
}
for (var i in values) { for (var i in values) {
var opt = document.createElement("option"); var opt = document.createElement("option");
@ -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);
} }

View file

@ -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"}
@ -36,3 +37,9 @@ function cbi_add_networks(field)
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

View file

@ -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;
} }