X-Git-Url: https://git.archive.openwrt.org/?p=project%2Fluci.git;a=blobdiff_plain;f=modules%2Fadmin-full%2Fluasrc%2Fview%2Fadmin_network%2Fwifi_overview.htm;h=d52887645ca5d6eadfff82b59d870404a912c8be;hp=f9526ac1840b6e2f0533e9fcf70108dd15a5c199;hb=6f8daab6eb8eb2f1a8014afeee22793e39980db6;hpb=913ab50e2be49011b5cea03ee0efe67765325ad3 diff --git a/modules/admin-full/luasrc/view/admin_network/wifi_overview.htm b/modules/admin-full/luasrc/view/admin_network/wifi_overview.htm index f9526ac18..d52887645 100644 --- a/modules/admin-full/luasrc/view/admin_network/wifi_overview.htm +++ b/modules/admin-full/luasrc/view/admin_network/wifi_overview.htm @@ -1,7 +1,7 @@ <%# LuCI - Lua Configuration Interface Copyright 2008-2009 Steven Barth -Copyright 2008-2009 Jo-Philipp Wich +Copyright 2008-2013 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. @@ -9,26 +9,44 @@ You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 -$Id$ - -%> <%- local sys = require "luci.sys" + local fs = require "luci.fs" local utl = require "luci.util" local uci = require "luci.model.uci".cursor() - local wlm = require "luci.model.wireless" + local ntm = require "luci.model.network" + + local has_iwinfo = pcall(require, "iwinfo") - wlm.init(uci) + ntm.init(uci) - function guess_wifi_hw(ifname) + function guess_wifi_hw(dev) + local bands = "" + local ifname = dev:name() local name, idx = ifname:match("^([a-z]+)(%d+)") idx = tonumber(idx) + if has_iwinfo then + local bl = dev.iwinfo.hwmodelist + if bl and next(bl) then + if bl.a then bands = bands .. "a" end + if bl.b then bands = bands .. "b" end + if bl.g then bands = bands .. "g" end + if bl.n then bands = bands .. "n" end + end + + local hw = dev.iwinfo.hardware_name + if hw then + return "%s 802.11%s" %{ hw, bands } + end + end + -- wl.o if name == "wl" then - local name = "Broadcom 802.11 Wireless Controller" + local name = translatef("Broadcom 802.11%s Wireless Controller", bands) local nm = 0 local fd = nixio.open("/proc/bus/pci/devices", "r") @@ -38,7 +56,7 @@ $Id$ if ln:match("wl$") then if nm == idx then local version = ln:match("^%S+%s+%S%S%S%S([0-9a-f]+)") - name = string.format( + name = translatef( "Broadcom BCM%04x 802.11 Wireless Controller", tonumber(version, 16) ) @@ -56,70 +74,308 @@ $Id$ -- madwifi elseif name == "ath" or name == "wifi" then - return "Atheros 802.11 Wireless Controller" + return translatef("Atheros 802.11%s Wireless Controller", bands) -- ralink elseif name == "ra" then - return "RaLink 802.11 Wireless Controller" + return translatef("RaLink 802.11%s Wireless Controller", bands) - -- prism? + -- hermes elseif name == "eth" then - return "Prism 802.11 Wireless Controller" + return translate("Hermes 802.11b Wireless Controller") + + -- hostap + elseif name == "wlan" and fs.isdirectory("/proc/net/hostap/" .. ifname) then + return translate("Prism2/2.5/3 802.11b Wireless Controller") -- dunno yet else - return "Generic 802.11 Wireless Controller" + return translatef("Generic 802.11%s Wireless Controller", bands) end end - function guess_wifi_signal(scale) - local icon - - if scale < 0 then - icon = resource .. "/icons/signal-none.png" - elseif scale < 1 then - icon = resource .. "/icons/signal-0.png" - elseif scale < 2 then - icon = resource .. "/icons/signal-0-25.png" - elseif scale < 3 then - icon = resource .. "/icons/signal-25-50.png" - elseif scale < 4 then - icon = resource .. "/icons/signal-50-75.png" - else - icon = resource .. "/icons/signal-75-100.png" - end + local devices = ntm:get_wifidevs() + local arpcache = { } + sys.net.arptable(function(e) arpcache[e["HW address"]:upper()] = e["IP address"] end) - return icon - end + local netlist = { } + local netdevs = { } - local devices = wlm:get_devices() - local arpcache = { } - sys.net.arptable(function(e) arpcache[e["HW address"]] = e["IP address"] end) + local dev + for _, dev in ipairs(devices) do + local net + for _, net in ipairs(dev:get_wifinets()) do + netlist[#netlist+1] = net:id() + netdevs[net:id()] = dev:name() + end + end -%> <%+header%> +<% if not has_iwinfo then %> +
+ <%:Package libiwinfo required!%>
+ <%_The libiwinfo-lua package is not installed. You must install this component for working wireless configuration!%> +
+<% end %> + + + +

<%:Wireless Overview%>

+ +
- <% for _, dev in ipairs(devices) do local nets = dev:get_networks() %> + <% for _, dev in ipairs(devices) do local nets = dev:get_wifinets() %>
- + - @@ -129,19 +385,17 @@ $Id$ <% for i, net in ipairs(nets) do %> - - - <% end %> @@ -149,7 +403,7 @@ $Id$ <% end %> @@ -160,43 +414,25 @@ $Id$ <% end %> - -

<%:Associated Stations%>

-
.png" style="float:left; margin-right:10px" /> - <%=guess_wifi_hw(dev:name())%> (<%=dev:name()%>)
- <% if nets[1] then %> - Channel: <%=nets[1]:channel() or "?"%> (<%=nets[1]:frequency() or "?"%> GHz) | - Bitrate: <%=nets[1]:bitrate() or "?"%> Mb/s - <% end %> + <%=guess_wifi_hw(dev)%> (<%=dev:name()%>)
+
- Find and join network - Provide new network + + ?device=<%=dev:name()%>'" title="<%:Find and join network%>" value="<%:Scan%>" /> + ?device=<%=dev:name()%>'" title="<%:Provide new network%>" value="<%:Add%>" />
-
- <%=net:signal_percent()%>% +
+
+ 0%
- SSID: <%=utl.pcdata(net:active_ssid())%> | - Mode: <%=net:active_mode_i18n()%>
- BSSID: <%=net:active_bssid()%> | - Encryption: <%=net:active_encryption()%> +
+ <%:Collecting data...%> - Edit this network - ">Delete this network + + + + '" title="<%:Delete this network%>" value="<%:Remove%>" />
- (No network configured on this device) + <%:No network configured on this device%>
+
- - - - - + + + + + + + - - <% local count = -1 %> - <% for _, dev in ipairs(devices) do local nets = dev:get_networks() %> - <% for _, net in ipairs(nets) do %> - <% for mac, info in utl.kspairs(net:assoclist()) do count = count + 1 %> - - - - - - - - - <% end %> - <% end %> - <% end %> - <% if count <= 0 then %> - - <% end %>
SSIDMACAddressSignalNoise<%:SSID%><%:MAC-Address%><%:IPv4-Address%><%:Signal%><%:Noise%><%:RX Rate%><%:TX Rate%>
<%=net:active_ssid()%><%=mac%><%=arpcache[mac] or "n/a"%><%=info.signal%> dBm<%=info.noise%> dBm
- No information available + + <%:Collecting data...%>