* luci-0.8: merge translation fixes, theme changes, selective port handling and others
authorJo-Philipp Wich <jow@openwrt.org>
Wed, 29 Oct 2008 05:34:34 +0000 (05:34 +0000)
committerJo-Philipp Wich <jow@openwrt.org>
Wed, 29 Oct 2008 05:34:34 +0000 (05:34 +0000)
27 files changed:
applications/luci-ddns/luasrc/model/cbi/ddns/ddns.lua
applications/luci-ddns/luasrc/model/cbi/ddns/ddnsmini.lua
applications/luci-statistics/luasrc/i18n/statistics.en.lua
applications/luci-statistics/luasrc/i18n/statistics.en.xml
applications/luci-statistics/luasrc/i18n/statistics.pt-br.lua
applications/luci-statistics/luasrc/i18n/statistics.pt-br.xml
applications/luci-uvc_streamer/luasrc/i18n/uvc_streamer.pt-br.lua
applications/luci-uvc_streamer/luasrc/i18n/uvc_streamer.pt-br.xml
i18n/english/luasrc/i18n/admin-core.en.lua
i18n/english/luasrc/i18n/admin-core.en.xml
i18n/german/luasrc/i18n/admin-core.de.lua
i18n/german/luasrc/i18n/admin-core.de.xml
i18n/portuguese_brazilian/luasrc/i18n/admin-core.pt-br.lua
i18n/portuguese_brazilian/luasrc/i18n/admin-core.pt-br.xml
libs/core/luasrc/util.lua
libs/web/root/etc/config/luci
modules/admin-full/luasrc/model/cbi/admin_network/ifaces.lua
modules/admin-full/luasrc/view/admin_status/syslog.htm
modules/admin-mini/luasrc/model/cbi/mini/network.lua
themes/openwrt-light/htdocs/luci-static/openwrt-light/cascade.css
themes/openwrt-light/htdocs/luci-static/openwrt-light/ie6.css
themes/openwrt-light/htdocs/luci-static/openwrt-light/ie7.css
themes/openwrt-light/root/etc/uci-defaults/luci-theme-openwrtlight
themes/openwrt.org/htdocs/luci-static/openwrt.org/cascade.css
themes/openwrt.org/htdocs/luci-static/openwrt.org/ie6.css [new file with mode: 0644]
themes/openwrt.org/htdocs/luci-static/openwrt.org/ie7.css [new file with mode: 0644]
themes/openwrt.org/root/etc/uci-defaults/luci-theme-openwrt

index a8ba0c73c5cfd221b9fa1200243cb6615eb7de7f..45a8a3965c3747d1662c0297c4dc89c2ff5786bf 100644 (file)
@@ -31,7 +31,9 @@ svc:value("freedns.afraid.org")
 
 s:option(Value, "domain", translate("hostname")).rmempty = true
 s:option(Value, "username", translate("username")).rmempty = true
-s:option(Value, "password", translate("password")).rmempty = true
+pw = s:option(Value, "password", translate("password"))
+pw.rmempty = true
+pw.password = true
 
 src = s:option(ListValue, "ip_source")
 src:value("network", translate("network"))
@@ -69,4 +71,4 @@ unit:value("minutes", "min")
 unit:value("hours", "h")
 
 
-return m
\ No newline at end of file
+return m
index 51bebb6e6649fc024a30155002d318f262ce84ec..2a91eda824c14e5362d0c7981b56cfad565c2022 100644 (file)
@@ -29,7 +29,9 @@ svc:value("freedns.afraid.org")
 
 s:option(Value, "domain", translate("hostname")).rmempty = true
 s:option(Value, "username", translate("username")).rmempty = true
-s:option(Value, "password", translate("password")).rmempty = true
+pw = s:option(Value, "password", translate("password"))
+pw.rmempty = true
+pw.password = true
 
 s.defaults.ip_source = "network"
 s.defaults.ip_network = "wan"
@@ -47,4 +49,4 @@ unit:value("minutes", "min")
 unit:value("hours", "h")
 
 
-return m
\ No newline at end of file
+return m
index d4e7eeac887cfb89b4d7f8cc0c247eacf5ccc54d..aecdba9f4ec170f82943cdd8d08723c022f17c52 100644 (file)
@@ -1,4 +1,5 @@
 stat_statistics = 'Statistics'
+stat_desc = 'The statistics package is based on <a href="http://collectd.org/index.shtml">Collectd</a> and uses <a href="http://oss.oetiker.ch/rrdtool/">RRD Tool</a> to render diagram images from collected data.'
 stat_systemplugins = 'System plugins'
 stat_networkplugins = 'Network plugins'
 stat_outputplugins = 'Output plugins'
index 927a330216ac1d29c8c762658f438a5edf686311..0f84ff8e62ad3da70c6849996cd1da9d761003d3 100644 (file)
@@ -3,6 +3,7 @@
 <i18n:msgs xmlns:i18n="http://luci.freifunk-halle.net/2008/i18n#" xmlns="http://www.w3.org/1999/xhtml">
 
 <i18n:msg xml:id="stat_statistics">Statistics</i18n:msg>
+<i18n:msg xml:id="stat_desc">The statistics package is based on <a href="http://collectd.org/index.shtml">Collectd</a> and uses <a href="http://oss.oetiker.ch/rrdtool/">RRD Tool</a> to render diagram images from collected data.</i18n:msg>
 <i18n:msg xml:id="stat_systemplugins">System plugins</i18n:msg>
 <i18n:msg xml:id="stat_networkplugins">Network plugins</i18n:msg>
 <i18n:msg xml:id="stat_outputplugins">Output plugins</i18n:msg>
index 9aca2020fb79d8977b451295e33d5f363d2c237e..e2b5cacf1b38c78d46337a6e69454db7990d1796 100644 (file)
@@ -1,4 +1,5 @@
 stat_statistics = 'Estatísticas'
+stat_desc = 'As estatísticas são baseadas no <a href="http://collectd.org/index.shtml">Collectd</a> e é utilizado o <a href="http://oss.oetiker.ch/rrdtool/">RRD Tool</a> para renderização das imagens à partir dos dados coletados.'
 stat_systemplugins = 'Plugis de Sistema'
 stat_networkplugins = 'Plugins de rede'
 stat_outputplugins = 'Plugins de saída'
@@ -26,7 +27,7 @@ stat_email = 'Email'
 stat_unixsock = 'UnixSock'
 lucistatistics = 'Estatísticas'
 lucistatistics_collectd = 'Configurações do Collectd'
-lucistatistics_collectd_desc = 'Collectd é um pequeno daemon que coleta dados de várias fontes através de diferentes plugins. Nesta página você pode alterar as configurações gerais do daemon collectdn.'
+lucistatistics_collectd_desc = 'Collectd é um pequeno daemon que coleta dados de várias fontes através de diferentes plugins. Nesta página você pode alterar as configurações gerais do daemon collectd.'
 lucistatistics_collectd_hostname = 'Hostname'
 lucistatistics_collectd_basedir = 'Diretório Base'
 lucistatistics_collectd_include = 'Diretório para sub-configurações'
index ed51ebfe26f6d1532bec3119f553421bda1be5d1..d619f83a15970d5854f91f297b9a8aa070757252 100644 (file)
@@ -3,6 +3,7 @@
 <i18n:msgs xmlns:i18n="http://luci.freifunk-halle.net/2008/i18n#" xmlns="http://www.w3.org/1999/xhtml">
 
 <i18n:msg xml:id="stat_statistics">Estatísticas</i18n:msg>
+<i18n:msg xml:id="stat_desc">As estatísticas são baseadas no <a href="http://collectd.org/index.shtml">Collectd</a> e é utilizado o <a href="http://oss.oetiker.ch/rrdtool/">RRD Tool</a> para renderização das imagens à partir dos dados coletados.</i18n:msg>
 <i18n:msg xml:id="stat_systemplugins">Plugis de Sistema</i18n:msg>
 <i18n:msg xml:id="stat_networkplugins">Plugins de rede</i18n:msg>
 <i18n:msg xml:id="stat_outputplugins">Plugins de saída</i18n:msg>
@@ -33,7 +34,7 @@
 <i18n:msg xml:id="lucistatistics">Estatísticas</i18n:msg>
 
 <i18n:msg xml:id="lucistatistics_collectd">Configurações do Collectd</i18n:msg>
-<i18n:msg xml:id="lucistatistics_collectd_desc">Collectd é um pequeno daemon que coleta dados de várias fontes através de diferentes plugins. Nesta página você pode alterar as configurações gerais do daemon collectdn.</i18n:msg>
+<i18n:msg xml:id="lucistatistics_collectd_desc">Collectd é um pequeno daemon que coleta dados de várias fontes através de diferentes plugins. Nesta página você pode alterar as configurações gerais do daemon collectd.</i18n:msg>
 
 <i18n:msg xml:id="lucistatistics_collectd_hostname">Hostname</i18n:msg>
 <i18n:msg xml:id="lucistatistics_collectd_basedir">Diretório Base</i18n:msg>
index f07765d19288ec805950d843f8ab17b98b4ce574..624a88530196f165faeb21d95853c27af61c9b42 100644 (file)
@@ -2,4 +2,4 @@ framespersecond = 'Frames por segundo'
 resolution = 'Resolução'
 settings = 'Configurações'
 uvc_streamer = 'Webcam streaming'
-uvc_streamer_desc = 'Configure seu Linux-UVC compatível com uma webcam. Coloque no seu browser por ex. <a href="http://%s:%i/">http://%s:%i/</a>'
+uvc_streamer_desc = 'Configure a sua webcam compatível com o Linux-UVC. Coloque no seu browser por ex. <a href="http://%s:%i/">http://%s:%i/</a>'
index 14fa4fdcc73e784a10e21be283bb56177bfea65f..8594cc1980dcf42f6148ae96c135cc394642435c 100644 (file)
@@ -6,6 +6,6 @@
 <i18n:msg xml:id="resolution">Resolução</i18n:msg>
 <i18n:msg xml:id="settings">Configurações</i18n:msg>
 <i18n:msg xml:id="uvc_streamer">Webcam streaming</i18n:msg>
-<i18n:msg xml:id="uvc_streamer_desc">Configure seu Linux-UVC compatível com uma webcam. Coloque no seu browser por ex. <a href="http://%s:%i/">http://%s:%i/</a></i18n:msg>
+<i18n:msg xml:id="uvc_streamer_desc">Configure a sua webcam compatível com o Linux-UVC. Coloque no seu browser por ex. <a href="http://%s:%i/">http://%s:%i/</a></i18n:msg>
 
 </i18n:msgs>
index ffd15a4fce8c2c87bd3a26e5cbb632b92492550f..a9dab7e4b1ebf7c61a31a9b02f8bf9e6ed6c61db 100644 (file)
@@ -195,6 +195,8 @@ dhcp_timeremain = 'Leasetime remaining'
 dhcp_leases_active = 'Active Leases'
 a_n_ptp = 'Point-to-Point Connections'
 a_n_ptp1 = 'Point-to-Point connections with <abbr title="Point-to-Point Protocol over Ethernet">PPPoE</abbr> or <abbr title="Point-to-Point Tunneling Protocol">PPTP</abbr> are often used to connect a device over <abbr title="Digital Subscriber Line">DSL</abbr> or similar technologies to an internet access point.'
+network_interface_prereq = 'You need to install &quot;comgt&quot; for UMTS/GPRS, &quot;ppp-mod-pppoe&quot; for PPPoE, &quot;ppp-mod-pppoa&quot; for PPPoA or &quot;pptp&quot; for PPtP support'
+network_interface_prereq_mini = 'You need to install &quot;ppp-mod-pppoe&quot; for PPPoE or &quot;pptp&quot; for PPtP support'
 network_interface_server = '<abbr title="Point-to-Point Tunneling Protocol">PPTP</abbr>-Server'
 network_interface_demand = 'Automatic Disconnect'
 network_interface_demand_desc = 'Time (in seconds) after which an unused connection will be closed'
index 266f36258561e9c8b2cab9621ad3b4e695ea6041..9e07e80f05f6062ef6eba6e8a23e50e41a77c347 100644 (file)
 <i18n:msg xml:id="dhcp_leases_active">Active Leases</i18n:msg>
 <i18n:msg xml:id="a_n_ptp">Point-to-Point Connections</i18n:msg>
 <i18n:msg xml:id="a_n_ptp1">Point-to-Point connections with <abbr title="Point-to-Point Protocol over Ethernet">PPPoE</abbr> or <abbr title="Point-to-Point Tunneling Protocol">PPTP</abbr> are often used to connect a device over <abbr title="Digital Subscriber Line">DSL</abbr> or similar technologies to an internet access point.</i18n:msg>
+<i18n:msg xml:id="network_interface_prereq">You need to install "comgt" for UMTS/GPRS, "ppp-mod-pppoe" for PPPoE, "ppp-mod-pppoa" for PPPoA or "pptp" for PPtP support</i18n:msg>
+<i18n:msg xml:id="network_interface_prereq_mini">You need to install "ppp-mod-pppoe" for PPPoE or "pptp" for PPtP support</i18n:msg>
 <i18n:msg xml:id="network_interface_server"><abbr title="Point-to-Point Tunneling Protocol">PPTP</abbr>-Server</i18n:msg>
 <i18n:msg xml:id="network_interface_demand">Automatic Disconnect</i18n:msg>
 <i18n:msg xml:id="network_interface_demand_desc">Time (in seconds) after which an unused connection will be closed</i18n:msg>
index 234cddd09c2ca474701578c7c4e5a2cf60158259..245aed1ddf00ff9025fbdc8d7a6f93127e0cbb78 100644 (file)
@@ -199,6 +199,8 @@ dhcp_leases = 'Zuweisungen'
 luci_ethers = 'Statische Einträge'
 dhcp_timeremain = 'Verbleibende Gültigkeit'
 dhcp_leases_active = 'Aktive Zuweisungen'
+network_interface_prereq = 'Für die Unterstützung von UMTS/GPRS muss &quot;comgt&quot;, für PPPoE &quot;ppp-mod-pppoe&quot;, für PPPoA &quot;ppp-mod-pppoa&quot; und für PPtP &quot;pptp&quot; installiert sein'
+network_interface_prereq_mini = 'Für die Unterstützung von PPPoE muss &quot;ppp-mod-pppoe&quot; und für PPtP &quot;pptp&quot; installiert sein'
 network_interface_demand = 'Automatische Trennung'
 network_interface_demand_desc = 'Zeit (in s) nach der die Verbindung bei Inaktivität getrennt wird'
 network_interface_keepalive = 'Keep-Alive'
index d2ffe000cd014365ba0a2c008b2d99bc196e4cbe..8d72c081927abc78da868466cccf82d7eee8793a 100644 (file)
 <i18n:msg xml:id="dhcp_timeremain">Verbleibende Gültigkeit</i18n:msg>
 <i18n:msg xml:id="dhcp_leases_active">Aktive Zuweisungen</i18n:msg>
 
+<i18n:msg xml:id="network_interface_prereq">Für die Unterstützung von UMTS/GPRS muss "comgt", für PPPoE "ppp-mod-pppoe", für PPPoA "ppp-mod-pppoa" und für PPtP "pptp" installiert sein</i18n:msg>
+<i18n:msg xml:id="network_interface_prereq_mini">Für die Unterstützung von PPPoE muss "ppp-mod-pppoe" und für PPtP "pptp" installiert sein</i18n:msg>
 <i18n:msg xml:id="network_interface_demand">Automatische Trennung</i18n:msg>
 <i18n:msg xml:id="network_interface_demand_desc">Zeit (in s) nach der die Verbindung bei Inaktivität getrennt wird</i18n:msg>
 <i18n:msg xml:id="network_interface_keepalive">Keep-Alive</i18n:msg>
index 7d914860b5702cb3607723fc7d44378884bc7800..f9c1867cb13886f65ca63a27a436020ae0059570 100644 (file)
@@ -195,6 +195,8 @@ dhcp_timeremain = 'Tempo de lease restante'
 dhcp_leases_active = 'Leases Ativos'
 a_n_ptp = 'Conexões Ponto-a-Ponto'
 a_n_ptp1 = 'Conexões Ponto-a-Ponto com <abbr title="Protocolo Ponto-a-Ponto sobre Ethernet">PPPoE</abbr> ou <abbr title="Protocolo de Tunelamento Ponto-a-Ponto">PPTP</abbr> muitas vezes são usados para conectar um dispositivo sobre <abbr title="Linha Digital de Assinante">DSL</abbr> ou tecnologia similar para um ponto de acesso à internet.'
+network_interface_prereq = 'Você precisa instalar os pacotes &quot;comgt&quot; para UMTS/GPRS, &quot;ppp-mod-pppoe&quot; para PPPoE, &quot;ppp-mod-pppoa&quot; para PPPoA ou &quot;pptp&quot; para o suporte PPtP'
+network_interface_prereq_mini = 'Você precisa instalar os pacotes &quot;ppp-mod-pppoe&quot; para PPPoE ou &quot;pptp&quot; para o suporte PPtP'
 network_interface_server = 'Servidor-<abbr title="Protocolo de Tunelamento Ponto-a-Ponto">PPTP</abbr>'
 network_interface_demand = 'Desconexão Automática'
 network_interface_demand_desc = 'Tempo (em segundos) para desconexão de uma conexão não mais utilizada'
index 672b2815b9d2af2d65ebd8aa8864b9f27d547628..923b45b53e05179a38b441447d204f6039774b86 100644 (file)
 <i18n:msg xml:id="dhcp_dnsmasq_noresolv">Ignorar arquivo resolv</i18n:msg>
 <i18n:msg xml:id="dhcp_dnsmasq_dnsforwardmax">Consultas simultâneas</i18n:msg>
 <i18n:msg xml:id="dhcp_dnsmasq_port">Porta do <abbr title="Sistema de Nomes de Domínios">DNS</abbr></i18n:msg>
-<i18n:msg xml:id="dhcp_dnsmasq_ednspacket_max">tamanho <abbr title="máximo">max.</abbr> <abbr title="Mecanismos de Extensão do Sistema de Nomes de Domínios">EDNS0</abbr> do pacote</i18n:msg>
-<i18n:msg xml:id="dhcp_dnsmasq_dhcpleasemax"><abbr title="máximo">max.</abbr> <abbr title="Protocolo de Configuração Dinâmica de Hosts">DHCP</abbr>-Leases</i18n:msg>
+<i18n:msg xml:id="dhcp_dnsmasq_ednspacket_max">tamanho <abbr title="máximo">max.</abbr> do pacote <abbr title="Mecanismos de Extensão do Sistema de Nomes de Domínios">EDNS0</abbr></i18n:msg>
+<i18n:msg xml:id="dhcp_dnsmasq_dhcpleasemax"><abbr title="máximo">max.</abbr> de <abbr title="Protocolo de Configuração Dinâmica de Hosts">DHCP</abbr>-Leases</i18n:msg>
 <i18n:msg xml:id="dhcp_dnsmasq_addnhosts">arquivo host adicional</i18n:msg>
-<i18n:msg xml:id="dhcp_dnsmasq_queryport">porta da consulta</i18n:msg>
+<i18n:msg xml:id="dhcp_dnsmasq_queryport">porta para consulta</i18n:msg>
+<i18n:msg xml:id="dhcp_dnsmasq_enabletftp">Ativar servidor TFTP</i18n:msg>
+<i18n:msg xml:id="dhcp_dnsmasq_tftproot">Diretório raiz do servidor TFTP</i18n:msg>
+<i18n:msg xml:id="dhcp_dnsmasq_dhcpboot">Imagem para o boot remoto</i18n:msg>
 <i18n:msg xml:id="a_n_switch">Switch</i18n:msg>
 <i18n:msg xml:id="a_n_conntrack">Conexões Ativas</i18n:msg>
 <i18n:msg xml:id="a_n_conntrack_desc">Esta página fornece informações sobre as conexões de rede ativas.</i18n:msg>
 <i18n:msg xml:id="dhcp_leases_active">Leases Ativos</i18n:msg>
 <i18n:msg xml:id="a_n_ptp">Conexões Ponto-a-Ponto</i18n:msg>
 <i18n:msg xml:id="a_n_ptp1">Conexões Ponto-a-Ponto com <abbr title="Protocolo Ponto-a-Ponto sobre Ethernet">PPPoE</abbr> ou <abbr title="Protocolo de Tunelamento Ponto-a-Ponto">PPTP</abbr> muitas vezes são usados para conectar um dispositivo sobre <abbr title="Linha Digital de Assinante">DSL</abbr> ou tecnologia similar para um ponto de acesso à internet.</i18n:msg>
+<i18n:msg xml:id="network_interface_prereq">Você precisa instalar os pacotes "comgt" para UMTS/GPRS, "ppp-mod-pppoe" para PPPoE, "ppp-mod-pppoa" para PPPoA ou "pptp" para o suporte PPtP</i18n:msg>
+<i18n:msg xml:id="network_interface_prereq_mini">Você precisa instalar os pacotes "ppp-mod-pppoe" para PPPoE ou "pptp" para o suporte PPtP</i18n:msg>
 <i18n:msg xml:id="network_interface_server">Servidor-<abbr title="Protocolo de Tunelamento Ponto-a-Ponto">PPTP</abbr></i18n:msg>
 <i18n:msg xml:id="network_interface_demand">Desconexão Automática</i18n:msg>
 <i18n:msg xml:id="network_interface_demand_desc">Tempo (em segundos) para desconexão de uma conexão não mais utilizada</i18n:msg>
index 678e36e4110d00e7f533f3cd20653edcf6808f31..51f6224093cff264741c7e221741c879e0774e63 100644 (file)
@@ -35,7 +35,7 @@ local coroutine = require "coroutine"
 local getmetatable, setmetatable = getmetatable, setmetatable
 local getfenv, setfenv = getfenv, setfenv
 local rawget, rawset, unpack = rawget, rawset, unpack
-local tostring, type, assert = tostring, type, assert 
+local tostring, type, assert = tostring, type, assert
 local ipairs, pairs, loadstring = ipairs, pairs, loadstring
 local require, pcall, xpcall = require, pcall, xpcall
 
@@ -163,7 +163,7 @@ end
 function dumptable(t, maxdepth, i, seen)
        i = i or 0
        seen = seen or setmetatable({}, {__mode="k"})
-       
+
        for k,v in pairs(t) do
                perror(string.rep("\t", i) .. tostring(k) .. "\t" .. tostring(v))
                if type(v) == "table" and (not maxdepth or i < maxdepth) then
@@ -196,11 +196,11 @@ end
 -- @return             String value containing the escaped data
 function pcdata(value)
        return value and tostring(value):gsub("[&\"'<>]", {
-               ["&"] = "&amp;",
-               ['"'] = "&quot;",
-               ["'"] = "&apos;",
-               ["<"] = "&lt;",
-               [">"] = "&gt;"
+               ["&"] = "&#38;",
+               ['"'] = "&#34;",
+               ["'"] = "&#39;",
+               ["<"] = "&#60;",
+               [">"] = "&#62;"
        })
 end
 
@@ -407,7 +407,7 @@ end
 function _serialize_table(t, seen)
        assert(not seen[t], "Recursion detected.")
        seen[t] = true
-       
+
        local data  = ""
        local idata = ""
        local ilen  = 0
@@ -426,7 +426,7 @@ function _serialize_table(t, seen)
        for i = 1, ilen do
                local v = serialize_data(t[i], seen)
                idata = idata .. ( #idata > 0 and ", " or "" ) .. v
-       end             
+       end
 
        return idata .. ( #data > 0 and #idata > 0 and ", " or "" ) .. data
 end
@@ -439,7 +439,7 @@ end
 -- @see                        get_bytecode
 function serialize_data(val, seen)
        seen = seen or setmetatable({}, {__mode="k"})
-       
+
        if val == nil then
                return "nil"
        elseif type(val) == "number" then
@@ -634,11 +634,11 @@ function execi(command)
 
        return pp and function()
                local line = pp:read()
-               
+
                if not line then
                        pp:close()
                end
-               
+
                return line
        end
 end
index d21ddc4add274071a91a0d604e642bb18f53efe4..1499015684ade89c6a23eef5d3a1f08e2280dc86 100644 (file)
@@ -4,9 +4,9 @@ config core main
        option resourcebase /luci-static/resources
        
 config core brand
-       option title    "OpenWRT Kamikaze"
+       option title    "OpenWrt Kamikaze"
        option subtitle "Lua Configuration Interface"
-       option firmware "OpenWRT Kamikaze"
+       option firmware "OpenWrt Kamikaze"
        option distro   ""
                
 config extern flash_keep
index ce9c6ff5069f06d2e2dd20db8460f471aa48e675..acecee0cadf78fa8795cb1322d34aa1c91ac2389 100644 (file)
@@ -12,8 +12,16 @@ You may obtain a copy of the License at
 
 $Id$
 ]]--
+
 require("luci.tools.webadmin")
 arg[1] = arg[1] or ""
+
+local has_3g    = luci.fs.mtime("/usr/bin/gcom")
+local has_pptp  = luci.fs.mtime("/usr/sbin/pptp")
+local has_pppd  = luci.fs.mtime("/usr/sbin/pppd")
+local has_pppoe = luci.fs.glob("/usr/lib/pppd/*/rp-pppoe.so")
+local has_pppoa = luci.fs.glob("/usr/lib/pppd/*/pppoatm.so")
+
 m = Map("network", translate("interfaces"), translate("a_n_ifaces1"))
 
 s = m:section(NamedSection, arg[1], "interface")
@@ -24,13 +32,19 @@ back.value = ""
 back.titleref = luci.dispatcher.build_url("admin", "network", "network")
 
 p = s:option(ListValue, "proto", translate("protocol"))
+p.override_scheme = true
+p.default = "static"
 p:value("static", translate("static"))
 p:value("dhcp", "DHCP")
-p:value("pppoe", "PPPoE")
-p:value("ppp", "PPP")
-p:value("3g", "UMTS/3G")
-p:value("pptp", "PPTP")
-p.default = "static"
+if has_pppd  then p:value("ppp",   "PPP")     end
+if has_pppoe then p:value("pppoe", "PPPoE")   end
+if has_pppoa then p:value("pppoa", "PPPoA")   end
+if has_3g    then p:value("3g",    "UMTS/3G") end
+if has_pptp  then p:value("pptp",  "PPTP")    end
+
+if not ( has_pppd and has_pppoe and has_pppoa and has_3g and has_pptp ) then
+       p.description = translate("network_interface_prereq")
+end
 
 br = s:option(Flag, "type", translate("a_n_i_bridge"), translate("a_n_i_bridge1"))
 br.enabled = "bridge"
@@ -155,6 +169,7 @@ user:depends("proto", "3g")
 
 pass = s:option(Value, "password", translate("password"))
 pass.rmempty = true
+pass.password = true
 pass:depends("proto", "pptp")
 pass:depends("proto", "pppoe")
 pass:depends("proto", "ppp")
index bda7b3ed558915e1ec3a71c814627f1bda1f269d..f4873bedd69f64ada047e356d295850ec1fa7c68 100644 (file)
@@ -15,5 +15,7 @@ $Id$
 <%+header%>
 <h1><%:status%></h1>
 <h2><%:syslog%></h2>
-<code><%=luci.util.pcdata(syslog)%></code>
+<div id="content_syslog">
+<textarea readonly="readonly" wrap="off" id="syslog"><%=luci.util.pcdata(syslog)%></textarea>
+</div>
 <%+footer%>
index ccb5dac8987d490ed68bb351c5025e43c45da8a2..d03e6a77732e25a4b754b07b2568d36523d1eea5 100644 (file)
@@ -12,8 +12,13 @@ You may obtain a copy of the License at
 
 $Id$
 ]]--
+
 require("luci.tools.webadmin")
 require("luci.sys")
+require("luci.fs")
+
+local has_pptp  = luci.fs.mtime("/usr/sbin/pptp")
+local has_pppoe = luci.fs.glob("/usr/lib/pppd/*/rp-pppoe.so")
 
 local network = luci.model.uci.cursor_state():get_all("network")
 
@@ -52,13 +57,13 @@ txrx = s:option(DummyValue, "_txrx",
 
 function txrx.cfgvalue(self, section)
        local ix = self.map:get(section, "ifname")
-       
+
        local rx = netstat and netstat[ix] and netstat[ix][1]
        rx = rx and luci.tools.webadmin.byte_format(tonumber(rx)) or "-"
-       
+
        local tx = netstat and netstat[ix] and netstat[ix][9]
        tx = tx and luci.tools.webadmin.byte_format(tonumber(tx)) or "-"
-       
+
        return string.format("%s / %s", tx, rx)
 end
 
@@ -67,13 +72,13 @@ errors = s:option(DummyValue, "_err",
 
 function errors.cfgvalue(self, section)
        local ix = self.map:get(section, "ifname")
-       
+
        local rx = netstat and netstat[ix] and netstat[ix][3]
        local tx = netstat and netstat[ix] and netstat[ix][11]
-       
+
        rx = rx and tostring(rx) or "-"
        tx = tx and tostring(tx) or "-"
-       
+
        return string.format("%s / %s", tx, rx)
 end
 
@@ -97,11 +102,17 @@ dns.rmempty = true
 s = m:section(NamedSection, "wan", "interface", translate("m_n_inet"))
 s.addremove = false
 p = s:option(ListValue, "proto", translate("protocol"))
+p.override_values = true
 p:value("none", "disabled")
 p:value("static", translate("manual", "manual"))
 p:value("dhcp", translate("automatic", "automatic"))
-p:value("pppoe", "PPPoE")
-p:value("pptp", "PPTP")
+if has_pppoe then p:value("pppoe", "PPPoE") end
+if has_pptp  then p:value("pptp",  "PPTP")  end
+
+if not ( has_pppoe and has_pptp ) then
+       p.description = translate("network_interface_prereq_mini")
+end
+
 
 ip = s:option(Value, "ipaddr", translate("ipaddress"))
 ip:depends("proto", "static")
@@ -122,6 +133,7 @@ usr:depends("proto", "pppoe")
 usr:depends("proto", "pptp")
 
 pwd = s:option(Value, "password", translate("password"))
+pwd.password = true
 pwd:depends("proto", "pppoe")
 pwd:depends("proto", "pptp")
 
@@ -143,4 +155,4 @@ srv.rmempty = true
 
 
 
-return m
\ No newline at end of file
+return m
index 93b0a32eaf215ab512ff8b89655483490dc4120e..6c0e282c5f933069a6bf74145e89e7ee56510c6a 100644 (file)
@@ -448,14 +448,14 @@ input.cbi-input-user {
        background: url('../resources/cbi/user.gif') no-repeat scroll 1px center;
        background-color: inherit;
        color: #000000;
-       padding-left: 17px;
+       text-indent: 17px;
 }
 
 input.cbi-input-password {
        background: url('../resources/cbi/key.gif') no-repeat scroll 1px center;
        background-color: inherit;
        color: #000000;
-       padding-left: 17px;
+       text-indent: 17px;
 }
 
 input.cbi-input-find {
index d65da4a19d9861f953ea051c1672be269631de0c..1c951854b58c72ab479dd455b743d121a7cea5a3 100644 (file)
        width: 50% !important;
 }
 
+* html .cbi-input-user,
+* html .cbi-input-password {
+       text-indent: 0 !important;
+       padding-left: 1.5em !important;
+}
+
 * html .cbi-section legend {
        background-color: #ffffff;
        color: #555555;
index c410f11ff6fba4ab93850a6d5e6f4a5fca9e6f01..67ed9fb8168a5b53e3afa7b02d443dedc5cfa5c7 100644 (file)
@@ -11,3 +11,10 @@ table.cbi-section-table td .cbi-input-text,
 table.cbi-section-table td .cbi-input-select {
        width: 95% !important;
 }
+
+.cbi-input-user,
+.cbi-input-password {
+       text-indent: 0 !important;
+       padding-left: 1.5em !important;
+       width: 18.5em !important;
+}
index b797a0073aab719654124e6b60aaf7db4bbfcaaa..c2322a4b469f3102e72da02c58af83acad7ff7ff 100755 (executable)
@@ -1,6 +1,6 @@
 #!/bin/sh
 uci batch <<-EOF
-       set luci.themes.OpenWRT_Light=/luci-static/openwrt-light
+       set luci.themes.OpenWrt_Light=/luci-static/openwrt-light
         commit luci
 EOF
        
index d83733ff307b2354c21fd50472185901d102e763..2c0004cbb6981a13efe9a03c4901ce58b1c1d59d 100644 (file)
@@ -333,6 +333,15 @@ html #menubar a:visited.warning {
        width: 11.5em;
 }
 
+textarea#syslog {
+       width: 98%;
+       height: 450px;
+       border: 3px solid #cccccc;
+       padding: 5px;
+       font-family: monospace;
+       overflow: auto;
+}
+
 #maincontent {
        clear: both;
        width: 80%;
@@ -347,16 +356,22 @@ html #menubar a:visited.warning {
 }
 
 #maincontent h2 {
-       margin: 0.25em 0 0.5em 0;
        font-size: 150%;
-       font-weight: normal;
+       font-family: Trebuchet MS, Verdana, sans-serif;
+       font-weight: bold;
+       margin: 0.25em 0 0.7em 0;
+       border-bottom: 1px solid;
+       padding-top: 10px;
+       padding-bottom: 4px;
 }
 
 #maincontent h3 {
-       margin: 0.5em 0;
-       font-size: 120%;
-       font-weight: normal;
-       text-decoration: underline;
+       margin: 0.5em 0 1.1em 0;
+       font-size: 125%;
+       font-weight: bold;
+       font-style: italic;
+       font-family: Trebuchet MS, Verdana, sans-serif;
+       color: #27408B;
 }
 
 #maincontent p {
@@ -455,14 +470,14 @@ input.cbi-input-user {
        background: url('../resources/cbi/user.gif') no-repeat scroll 1px center;
        background-color: inherit;
        color: #000000;
-       padding-left: 17px;
+       text-indent: 17px;
 }
 
 input.cbi-input-password {
        background: url('../resources/cbi/key.gif') no-repeat scroll 1px center;
        background-color: inherit;
        color: #000000;
-       padding-left: 17px;
+       text-indent: 17px;
 }
 
 input.cbi-input-find {
diff --git a/themes/openwrt.org/htdocs/luci-static/openwrt.org/ie6.css b/themes/openwrt.org/htdocs/luci-static/openwrt.org/ie6.css
new file mode 100644 (file)
index 0000000..1c95185
--- /dev/null
@@ -0,0 +1,77 @@
+/* obligatory IE6 Voodoo Code */
+
+* html body {
+       padding-left: 50% !important;
+}
+
+* html div#header {
+       margin-left: -100% !important;
+}
+
+* html div#menubar {
+       margin-left: -100% !important;
+       width: 200% !important;
+}
+
+* html ul.dropdowns li ul {
+       width: 10em;
+}
+
+* html ul.dropdowns li li {
+       clear: both;
+       float: left;
+}
+
+* html ul.dropdowns li li {
+       width: 100%;
+}
+
+* html ul.dropdowns li li a {
+       height: 1%;
+}
+
+* html div#maincontent {
+       margin-left: -80% !important;
+       width: 160% !important;
+}
+
+* html div.cbi-value-description {
+       width: auto !important;
+}
+
+* html div.cbi-value-field {
+       margin-left: 0 !important;
+       width: 100% !important;
+}
+
+* html .cbi-input-text,
+* html .cbi-input-user,
+* html .cbi-input-select,
+* html .cbi-input-password {
+       width: 50% !important;
+}
+
+* html .cbi-input-user,
+* html .cbi-input-password {
+       text-indent: 0 !important;
+       padding-left: 1.5em !important;
+}
+
+* html .cbi-section legend {
+       background-color: #ffffff;
+       color: #555555;
+}
+
+* html table.cbi-section-table td .cbi-input-text,
+* html table.cbi-section-table td .cbi-input-select {
+       width: 100% !important;
+}
+
+* html div.cbi-page-actions {
+       text-align: right !important;
+}
+
+* html div.cbi-value-field input,
+* html div.cbi-value-field select {
+       font-size: 90% !important;
+}
diff --git a/themes/openwrt.org/htdocs/luci-static/openwrt.org/ie7.css b/themes/openwrt.org/htdocs/luci-static/openwrt.org/ie7.css
new file mode 100644 (file)
index 0000000..67ed9fb
--- /dev/null
@@ -0,0 +1,20 @@
+div.cbi-value-field {
+       margin-left: 0 !important;
+}
+
+.cbi-section legend {
+       background-color: #ffffff;
+       color: #555555;
+}
+
+table.cbi-section-table td .cbi-input-text,
+table.cbi-section-table td .cbi-input-select {
+       width: 95% !important;
+}
+
+.cbi-input-user,
+.cbi-input-password {
+       text-indent: 0 !important;
+       padding-left: 1.5em !important;
+       width: 18.5em !important;
+}
index a8bef6c92d53a580f59efac5e5bff3c3c0807637..d8dea0467e4866856127f8866e58ef5de6f7c0b8 100755 (executable)
@@ -1,6 +1,6 @@
 #!/bin/sh
 uci batch <<-EOF
-       set luci.themes.OpenWRT=/luci-static/openwrt.org
+       set luci.themes.OpenWrt=/luci-static/openwrt.org
         commit luci
 EOF