From 36f1dac36f14cbc53ece4d208d366e3203fd4a8c Mon Sep 17 00:00:00 2001 From: Steven Barth Date: Wed, 13 Aug 2008 16:18:39 +0000 Subject: [PATCH] User interface improvements part #2 --- .../luci-qos/luasrc/model/cbi/qos/qos.lua | 31 ++++++++++++------- .../luci-qos/luasrc/model/cbi/qos/qosmini.lua | 30 ++++++++++++------ i18n/english/luasrc/i18n/default.en.lua | 2 ++ i18n/german/luasrc/i18n/default.de.lua | 2 ++ libs/cbi/htdocs/luci-static/resources/cbi.js | 30 +++++++++--------- modules/admin-core/luasrc/tools/webadmin.lua | 7 +++++ .../luci-static/openwrt.org/cascade.css | 2 ++ 7 files changed, 69 insertions(+), 35 deletions(-) diff --git a/applications/luci-qos/luasrc/model/cbi/qos/qos.lua b/applications/luci-qos/luasrc/model/cbi/qos/qos.lua index 0bb559edeb..c1cfdb7acf 100644 --- a/applications/luci-qos/luasrc/model/cbi/qos/qos.lua +++ b/applications/luci-qos/luasrc/model/cbi/qos/qos.lua @@ -11,6 +11,7 @@ You may obtain a copy of the License at $Id$ ]]-- +require("luci.tools.webadmin") m = Map("qos") 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 = m:section(TypedSection, "classify") - +s.template = "cbi/tblsection" s.anonymous = true s.addremove = true @@ -40,12 +41,19 @@ t:value("Normal", translate("qos_normal")) t:value("Bulk", translate("qos_bulk")) t.default = "Normal" -s:option(Value, "srchost").optional = true -s:option(Value, "dsthost").optional = true +srch = s:option(Value, "srchost") +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.optional = true -l7:value("") +l7.rmempty = true +l7:value("", translate("all")) local pats = luci.fs.dir("/etc/l7-protocols") if pats then for i,f in ipairs(pats) do @@ -56,23 +64,24 @@ if pats then end p2p = s:option(ListValue, "ipp2p", "P2P") -p2p:value("") +p2p:value("", "-") p2p:value("all", translate("all")) p2p:value("bit", "BitTorrent") p2p:value("dc", "DirectConnect") p2p:value("edk", "eDonkey") p2p:value("gnu", "Gnutella") p2p:value("kazaa", "Kazaa") -p2p.optional = true +p2p.rmempty = true p = s:option(ListValue, "proto", translate("protocol")) -p:value("") +p:value("", translate("all")) p:value("tcp", "TCP") p:value("udp", "UDP") p:value("icmp", "ICMP") -p.optional = true +p.rmempty = true -s:option(Value, "ports", translate("port")).optional = true -s:option(Value, "portrange").optional = true +ports = s:option(Value, "ports", translate("ports")) +ports.rmempty = true +ports:value("", translate("all")) return m \ No newline at end of file diff --git a/applications/luci-qos/luasrc/model/cbi/qos/qosmini.lua b/applications/luci-qos/luasrc/model/cbi/qos/qosmini.lua index db6fa9c6b1..f8a6bb5888 100644 --- a/applications/luci-qos/luasrc/model/cbi/qos/qosmini.lua +++ b/applications/luci-qos/luasrc/model/cbi/qos/qosmini.lua @@ -12,6 +12,7 @@ You may obtain a copy of the License at $Id$ ]]-- +require("luci.tools.webadmin") m = Map("qos") 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 = m:section(TypedSection, "classify") +s.template = "cbi/tblsection" s.anonymous = true s.addremove = true @@ -32,12 +34,19 @@ t:value("Normal", translate("qos_normal")) t:value("Bulk", translate("qos_bulk")) t.default = "Normal" -s:option(Value, "srchost").optional = true -s:option(Value, "dsthost").optional = true +srch = s:option(Value, "srchost") +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.optional = true -l7:value("") +l7.rmempty = true +l7:value("", translate("all")) local pats = luci.fs.dir("/etc/l7-protocols") if pats then for i,f in ipairs(pats) do @@ -48,23 +57,24 @@ if pats then end p2p = s:option(ListValue, "ipp2p", "P2P") -p2p:value("") +p2p:value("", "-") p2p:value("all", translate("all")) p2p:value("bit", "BitTorrent") p2p:value("dc", "DirectConnect") p2p:value("edk", "eDonkey") p2p:value("gnu", "Gnutella") p2p:value("kazaa", "Kazaa") -p2p.optional = true +p2p.rmempty = true p = s:option(ListValue, "proto", translate("protocol")) -p:value("") +p:value("", translate("all")) p:value("tcp", "TCP") p:value("udp", "UDP") p:value("icmp", "ICMP") -p.optional = true +p.rmempty = true -s:option(Value, "ports", translate("port")).optional = true -s:option(Value, "portrange").optional = true +ports = s:option(Value, "ports", translate("ports")) +ports.rmempty = true +ports:value("", translate("all")) return m \ No newline at end of file diff --git a/i18n/english/luasrc/i18n/default.en.lua b/i18n/english/luasrc/i18n/default.en.lua index a3d1d601f6..faa7b87703 100644 --- a/i18n/english/luasrc/i18n/default.en.lua +++ b/i18n/english/luasrc/i18n/default.en.lua @@ -1,5 +1,6 @@ about = "About" add = "Add" +addresses = "Addresses" aliases = "Aliases" all = "all" administration = "Administration" @@ -76,6 +77,7 @@ packagemanager = "Package Manager" password = "Password" path = "Path" port = "Port" +ports = "Ports" protocol = "Protocol" reboot = "Reboot" diff --git a/i18n/german/luasrc/i18n/default.de.lua b/i18n/german/luasrc/i18n/default.de.lua index 5ef48de603..64633e60e8 100644 --- a/i18n/german/luasrc/i18n/default.de.lua +++ b/i18n/german/luasrc/i18n/default.de.lua @@ -1,5 +1,6 @@ about = "Über" add = "Hinzufügen" +addresses = "Adressen" aliases = "Aliasse" all = "alle" administration = "Administration" @@ -77,6 +78,7 @@ packagemanager = "Packet-Manager" password = "Passwort" path = "Pfad" port = "Port" +ports = "Ports" protocol = "Protokoll" reboot = "Neu Starten" diff --git a/libs/cbi/htdocs/luci-static/resources/cbi.js b/libs/cbi/htdocs/luci-static/resources/cbi.js index 01653e6e59..18ef42068b 100644 --- a/libs/cbi/htdocs/luci-static/resources/cbi.js +++ b/libs/cbi/htdocs/luci-static/resources/cbi.js @@ -63,17 +63,19 @@ function cbi_combobox(id, values, def, man) { var sel = document.createElement("select"); obj.parentNode.appendChild(sel); - if (obj.value == "") { - var optdef = document.createElement("option"); - optdef.value = ""; - optdef.appendChild(document.createTextNode(def)); - sel.appendChild(optdef); - } else if (!values[obj.value]) { - var opt = document.createElement("option"); - opt.value = obj.value; - opt.selected = "selected"; - opt.appendChild(document.createTextNode(obj.value)); - sel.appendChild(opt); + if (!values[obj.value]) { + if (obj.value == "") { + var optdef = document.createElement("option"); + optdef.value = ""; + optdef.appendChild(document.createTextNode(def)); + sel.appendChild(optdef); + } else { + var opt = document.createElement("option"); + opt.value = obj.value; + opt.selected = "selected"; + opt.appendChild(document.createTextNode(obj.value)); + sel.appendChild(opt); + } } for (var i in values) { @@ -107,9 +109,9 @@ function cbi_combobox(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_combobox(id, values, def, man) - }) - cbi_combobox(id, values, def, man) + }); + cbi_combobox(id, values, def, man); } \ No newline at end of file diff --git a/modules/admin-core/luasrc/tools/webadmin.lua b/modules/admin-core/luasrc/tools/webadmin.lua index b9f18ac40d..3664997a5d 100644 --- a/modules/admin-core/luasrc/tools/webadmin.lua +++ b/modules/admin-core/luasrc/tools/webadmin.lua @@ -15,6 +15,7 @@ $Id$ module("luci.tools.webadmin", package.seeall) require("luci.model.uci") +require("luci.sys") function byte_format(byte) local suff = {"B", "KB", "MB", "GB", "TB"} @@ -35,4 +36,10 @@ function cbi_add_networks(field) 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 \ No newline at end of file diff --git a/themes/openwrt.org/htdocs/luci-static/openwrt.org/cascade.css b/themes/openwrt.org/htdocs/luci-static/openwrt.org/cascade.css index 8e6eba07b4..bf14b9ce45 100644 --- a/themes/openwrt.org/htdocs/luci-static/openwrt.org/cascade.css +++ b/themes/openwrt.org/htdocs/luci-static/openwrt.org/cascade.css @@ -258,6 +258,7 @@ td input[type=password] { input.cbi-button { padding-left: 17px; + padding-right: 1px; } input.cbi-button-add { @@ -283,6 +284,7 @@ input.cbi-button-apply { div.cbi-section-remove input { background: transparent url('../resources/cbi/remove.gif') no-repeat scroll 1px center; padding-left: 17px; + padding-right: 1px; border-bottom: none; } -- 2.30.2