From 8d1aff78b17d6f7437d776bdf53a6aa2112f31db Mon Sep 17 00:00:00 2001 From: Steven Barth Date: Wed, 16 Jul 2008 18:54:10 +0000 Subject: [PATCH] modules/admin-mini: Added Wifi configuration several smaller bugfixes and enhancements --- i18n/english/luasrc/i18n/admin-core.en.lua | 5 +- i18n/german/luasrc/i18n/admin-core.de.lua | 3 + libs/cbi/luasrc/cbi.lua | 11 +-- libs/http/luasrc/http/protocol.lua | 2 +- .../admin-mini/luasrc/controller/mini/network.lua | 4 +- modules/admin-mini/luasrc/controller/mini/wifi.lua | 22 +++++ .../model/cbi/{mini-network => mini}/dhcp.lua | 0 .../{mini-network/basic.lua => mini/network.lua} | 11 +-- modules/admin-mini/luasrc/model/cbi/mini/wifi.lua | 103 +++++++++++++++++++++ 9 files changed, 140 insertions(+), 21 deletions(-) create mode 100644 modules/admin-mini/luasrc/controller/mini/wifi.lua rename modules/admin-mini/luasrc/model/cbi/{mini-network => mini}/dhcp.lua (100%) rename modules/admin-mini/luasrc/model/cbi/{mini-network/basic.lua => mini/network.lua} (84%) create mode 100644 modules/admin-mini/luasrc/model/cbi/mini/wifi.lua diff --git a/i18n/english/luasrc/i18n/admin-core.en.lua b/i18n/english/luasrc/i18n/admin-core.en.lua index 165210fa1..6ea99fe14 100644 --- a/i18n/english/luasrc/i18n/admin-core.en.lua +++ b/i18n/english/luasrc/i18n/admin-core.en.lua @@ -230,4 +230,7 @@ a_n_routes = "Static Routes" a_n_routes1 = [[With Static Routes you can specify through which interface and gateway a certain host or network can be reached.]] a_n_r_target1 = "host-IP or network" -a_n_r_netmask1 = "if target is a network" \ No newline at end of file +a_n_r_netmask1 = "if target is a network" + +m_n_local = "Local Network" +m_n_inet = "Internet Connection" \ No newline at end of file diff --git a/i18n/german/luasrc/i18n/admin-core.de.lua b/i18n/german/luasrc/i18n/admin-core.de.lua index 0bfad2af3..b29c4be58 100644 --- a/i18n/german/luasrc/i18n/admin-core.de.lua +++ b/i18n/german/luasrc/i18n/admin-core.de.lua @@ -113,6 +113,7 @@ a_st_i_status1 = [[Hier finden sich Informationen über den aktuellen Status des Prozessortakt, Speicherauslastung und Netzwerkschnittstellen.]] a_st_i_status2 = [[Zusätzlich können hier Protokolldaten, des Kernels und diverser Systemdienste eingesehen werden, um deren Zustand zu kontrollieren.]] +a_w_devices1 = "An dieser Stelle können eingebaute WLAN-Geräte konfiguriert werden." a_w_apisolation = [[AP-Isolation]] a_w_apisolation1 = [[Unterbindet Client-Client-Verkehr]] a_w_athburst = [[Atheros-Frameburst]] @@ -244,3 +245,5 @@ texteditor = [[Texteditor]] uci_applied = [[Die folgenden Änderungen wurden übernommen]] uci_reverted = [[Die folgenden Änderungen wurden verworfen]] +m_n_local = "Lokales Netz" +m_n_inet = "Internetverbindung" \ No newline at end of file diff --git a/libs/cbi/luasrc/cbi.lua b/libs/cbi/luasrc/cbi.lua index b9383a3ec..6aec2fbbb 100644 --- a/libs/cbi/luasrc/cbi.lua +++ b/libs/cbi/luasrc/cbi.lua @@ -356,10 +356,9 @@ function NamedSection.parse(self) return end else -- Create and apply default values - if luci.http.formvalue("cbi.cns."..path) and self:create(s) then - for k,v in pairs(self.children) do - v:write(s, v.default) - end + if luci.http.formvalue("cbi.cns."..path) then + self:create(s) + return end end end @@ -643,10 +642,6 @@ function DummyValue.parse(self) end -function DummyValue.render(self, s) - luci.template.render(self.template, {self=self, section=s}) -end - --[[ Flag - A flag being enabled or disabled diff --git a/libs/http/luasrc/http/protocol.lua b/libs/http/luasrc/http/protocol.lua index ccf40bd2e..542c3147e 100644 --- a/libs/http/luasrc/http/protocol.lua +++ b/libs/http/luasrc/http/protocol.lua @@ -661,7 +661,7 @@ function urldecode_message_body( source, msg ) -- Create a throttling LTN12 source -- See explaination in mimedecode_message_body(). local tsrc = function() - if msg._urldecbuffer ~= nil and #msg._urldecbuffer > TSRC_BLOCKSIZE then + if msg._urldecbuffer ~= nil and #msg._urldecbuffer > 0 then return "" else return source() diff --git a/modules/admin-mini/luasrc/controller/mini/network.lua b/modules/admin-mini/luasrc/controller/mini/network.lua index 3de052644..d59dbe7e4 100644 --- a/modules/admin-mini/luasrc/controller/mini/network.lua +++ b/modules/admin-mini/luasrc/controller/mini/network.lua @@ -20,6 +20,6 @@ function index() local i18n = luci.i18n.translate entry({"mini", "network"}, alias("mini", "network", "basic"), i18n("network"), 20) - entry({"mini", "network", "basic"}, cbi("mini-network/basic"), i18n("basicsettings"), 10) - entry({"mini", "network", "dhcp"}, cbi("mini-network/dhcp"), "DHCP", 20) + entry({"mini", "network", "basic"}, cbi("mini/network"), i18n("basicsettings"), 10) + entry({"mini", "network", "dhcp"}, cbi("mini/dhcp"), "DHCP", 20) end \ No newline at end of file diff --git a/modules/admin-mini/luasrc/controller/mini/wifi.lua b/modules/admin-mini/luasrc/controller/mini/wifi.lua new file mode 100644 index 000000000..91183199b --- /dev/null +++ b/modules/admin-mini/luasrc/controller/mini/wifi.lua @@ -0,0 +1,22 @@ +--[[ +LuCI - Lua Configuration Interface + +Copyright 2008 Steven Barth +Copyright 2008 Jo-Philipp Wich + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +$Id$ +]]-- +module("luci.controller.mini.wifi", package.seeall) + +function index() + luci.i18n.loadc("admin-core") + local i18n = luci.i18n.translate + + entry({"mini", "wifi"}, cbi("mini/wifi"), i18n("wifi", "Drahtlos"), 30) +end \ No newline at end of file diff --git a/modules/admin-mini/luasrc/model/cbi/mini-network/dhcp.lua b/modules/admin-mini/luasrc/model/cbi/mini/dhcp.lua similarity index 100% rename from modules/admin-mini/luasrc/model/cbi/mini-network/dhcp.lua rename to modules/admin-mini/luasrc/model/cbi/mini/dhcp.lua diff --git a/modules/admin-mini/luasrc/model/cbi/mini-network/basic.lua b/modules/admin-mini/luasrc/model/cbi/mini/network.lua similarity index 84% rename from modules/admin-mini/luasrc/model/cbi/mini-network/basic.lua rename to modules/admin-mini/luasrc/model/cbi/mini/network.lua index d7c1ce84b..dcd93a307 100644 --- a/modules/admin-mini/luasrc/model/cbi/mini-network/basic.lua +++ b/modules/admin-mini/luasrc/model/cbi/mini/network.lua @@ -14,7 +14,7 @@ $Id$ ]]-- m = Map("network", "Network") -s = m:section(NamedSection, "lan", "interface", "Local Network") +s = m:section(NamedSection, "lan", "interface", translate("m_n_local")) s:option(Value, "ipaddr", translate("ipaddress")) s:option(Value, "netmask", translate("netmask")) gw = s:option(Value, "gateway", translate("gateway") .. translate("cbi_optional")) @@ -23,7 +23,7 @@ dns = s:option(Value, "dns", translate("dnsserver") .. translate("cbi_optional") dns.rmempty = true -s = m:section(NamedSection, "wan", "interface", "Internet Connection") +s = m:section(NamedSection, "wan", "interface", translate("m_n_inet")) p = s:option(ListValue, "proto", translate("protocol")) p:value("none", "disabled") p:value("static", translate("manual", "manual")) @@ -68,13 +68,6 @@ srv = s:option(Value, "server", "PPTP-Server") srv:depends("proto", "pptp") srv.rmempty = true -mtu = s:option(Value, "mtu", "MTU" .. translate("cbi_optional")) -mtu:depends("proto", "static") -mtu:depends("proto", "dhcp") -mtu:depends("proto", "pppoe") -mtu:depends("proto", "pptp") -mtu.rmempty = true - return m \ No newline at end of file diff --git a/modules/admin-mini/luasrc/model/cbi/mini/wifi.lua b/modules/admin-mini/luasrc/model/cbi/mini/wifi.lua new file mode 100644 index 000000000..d75ead282 --- /dev/null +++ b/modules/admin-mini/luasrc/model/cbi/mini/wifi.lua @@ -0,0 +1,103 @@ +--[[ +LuCI - Lua Configuration Interface + +Copyright 2008 Steven Barth +Copyright 2008 Jo-Philipp Wich + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +$Id$ +]]-- +m = Map("wireless", translate("wifi"), translate("a_w_devices1")) + +s = m:section(TypedSection, "wifi-device", translate("devices")) + +en = s:option(Flag, "disabled", translate("enable")) +en.enabled = "0" +en.disabled = "1" + +mode = s:option(ListValue, "mode", translate("mode")) +mode:value("", "standard") +mode:value("11b", "802.11b") +mode:value("11g", "802.11g") +mode:value("11a", "802.11a") +mode:value("11bg", "802.11b+g") +mode.rmempty = true + +s:option(Value, "channel", translate("a_w_channel")) + + + +s = m:section(TypedSection, "wifi-iface", translate("m_n_local")) +s.anonymous = true + +s:option(Value, "ssid", translate("a_w_netid")).maxlength = 32 + +local devs = {} +luci.model.uci.foreach("wireless", "wifi-device", + function (section) + table.insert(devs, section[".name"]) + end) + +if #devs > 1 then + device = s:option(DummyValue, "device", translate("device")) +else + s.defaults.device = devs[1] +end + +mode = s:option(ListValue, "mode", translate("mode")) +mode:value("ap", "Access Point") +mode:value("adhoc", "Ad-Hoc") +mode:value("sta", "Client") + +function mode.write(self, section, value) + if value == "sta" then + luci.model.uci.set("network", "wan", "type", "bridge") + luci.model.uci.set("wireless", section, "network", "wan") + else + luci.model.uci.delete("network", "wan", "type") + luci.model.uci.set("wireless", section, "network", "lan") + end + luci.model.uci.save("network") + return ListValue.write(self, section, value) +end + +encr = s:option(ListValue, "encryption", translate("encryption")) +encr:value("none", "keine") +encr:value("wep", "WEP") +encr:value("psk", "WPA-PSK") +encr:value("wpa", "WPA-Radius") +encr:value("psk2", "WPA2-PSK") +encr:value("wpa2", "WPA2-Radius") + +key = s:option(Value, "key", translate("key")) +key:depends("encryption", "wep") +key:depends("encryption", "psk") +key:depends("encryption", "wpa") +key:depends("encryption", "psk2") +key:depends("encryption", "wpa2") +key.rmempty = true + +server = s:option(Value, "server", translate("a_w_radiussrv")) +server:depends("encryption", "wpa") +server:depends("encryption", "wpa2") +server.rmempty = true + +port = s:option(Value, "port", translate("a_w_radiusport")) +port:depends("encryption", "wpa") +port:depends("encryption", "wpa2") +port.rmempty = true + +iso = s:option(Flag, "isolate", translate("a_w_apisolation"), translate("a_w_apisolation1")) +iso.rmempty = true +iso:depends("mode", "ap") + +hide = s:option(Flag, "hidden", translate("a_w_hideessid")) +hide.rmempty = true +hide:depends("mode", "ap") + +return m \ No newline at end of file -- 2.11.0