User interface improvements part #2
authorSteven Barth <steven@midlink.org>
Wed, 13 Aug 2008 16:18:39 +0000 (16:18 +0000)
committerSteven Barth <steven@midlink.org>
Wed, 13 Aug 2008 16:18:39 +0000 (16:18 +0000)
applications/luci-qos/luasrc/model/cbi/qos/qos.lua
applications/luci-qos/luasrc/model/cbi/qos/qosmini.lua
i18n/english/luasrc/i18n/default.en.lua
i18n/german/luasrc/i18n/default.de.lua
libs/cbi/htdocs/luci-static/resources/cbi.js
modules/admin-core/luasrc/tools/webadmin.lua
themes/openwrt.org/htdocs/luci-static/openwrt.org/cascade.css

index 0bb559e..c1cfdb7 100644 (file)
@@ -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
index db6fa9c..f8a6bb5 100644 (file)
@@ -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
index a3d1d60..faa7b87 100644 (file)
@@ -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"
index 5ef48de..64633e6 100644 (file)
@@ -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"
index 01653e6..18ef420 100644 (file)
@@ -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
index b9f18ac..3664997 100644 (file)
@@ -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
index 8e6eba0..bf14b9c 100644 (file)
@@ -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;
 }