X-Git-Url: https://git.archive.openwrt.org/?a=blobdiff_plain;f=modules%2Fadmin-full%2Fluasrc%2Fview%2Fadmin_network%2Fwifi_overview.htm;h=d476baa5f91aa577eb536a8cec49cd778904d483;hb=34ee1629766969e514dc878ebc53208926bdaf16;hp=72fe39ea3ee833baced7732f466a6c9a6068efa4;hpb=eed55531107c6642efc0dc93211325d9b7318022;p=project%2Fluci.git 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 72fe39ea3..d476baa5f 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-2010 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. @@ -17,7 +17,10 @@ $Id$ local sys = require "luci.sys" local utl = require "luci.util" - local uci = require "luci.model.uci".cursor_state() + local uci = require "luci.model.uci".cursor() + local ntm = require "luci.model.network" + + ntm.init(uci) function guess_wifi_hw(ifname) local name, idx = ifname:match("^([a-z]+)(%d+)") @@ -69,127 +72,221 @@ $Id$ end end - function guess_wifi_signal(info) - local snr = -1 * ((info.noise or 0) - (info.signal or 0)) - local scale = math.floor(snr / 5) - local icon - - if not info.bssid or info.bssid == "00:00:00:00:00:00" 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 - - return icon - end + local devices = ntm:get_wifidevs() + local arpcache = { } + sys.net.arptable(function(e) arpcache[e["HW address"]:upper()] = e["IP address"] end) - function percent_wifi_signal(info) - local qc = info.quality or 0 - local qm = info.quality_max or 0 + local netlist = { } + local netdevs = { } - if info.bssid and qc > 0 and qm > 0 then - return math.floor((100 / qm) * qc) - else - return 0 + local dev + for _, dev in ipairs(devices) do + local net + for _, net in ipairs(dev:get_wifinets()) do + netlist[#netlist+1] = net:ifname() + netdevs[net:ifname()] = dev:name() end end +-%> + +<%+header%> - function find_wifi_devices() - local devs = { } - uci:foreach("wireless", "wifi-device", - function(s) - local dev = s['.name'] - local act = 0 - devs[dev] = { active = 0, networks = { } } - - uci:foreach("wireless", "wifi-iface", - function(s) - if s.device == dev then - if s.up == "1" then act = act + 1 end - devs[dev].networks[#devs[dev].networks+1] = { - active = (s.up == "1"), - ifname = s.ifname, - info = sys.wifi.getiwinfo(s.ifname or s.device) + + -

<%:a_s_iw_overview Wireless Overview%>

+

<%:Wireless Overview%>

- <% for dev, state in utl.kspairs(devices) do %> - + <% for _, dev in ipairs(devices) do local nets = dev:get_wifinets() %> +
- + - <% if #state.networks > 0 then %> - <% for i, net in ipairs(state.networks) do %> + <% if #nets > 0 then %> + <% for i, net in ipairs(nets) do %> - - <% end %> @@ -197,54 +294,34 @@ $Id$ <% end %>
.png" style="float:left; margin-right:10px" /> - <%=state.hwname%> (<%=dev%>)
- <% if state.networks[1] and state.networks[1].info then %> - Channel: <%=find_wifi_frequency(state)%> | - Bitrate: <%=state.networks[1].info.bitrate and (state.networks[1].info.bitrate / 1000) .. " Mb/s" or "n/a"%> - <% end %> + <%=guess_wifi_hw(dev:name())%> (<%=dev:name()%>)
+
- Find and join network - Provide new network + ?device=<%=dev:name()%>"><%:Find and join network%> + ?device=<%=dev:name()%>"><%:Provide new network%>
-
- <%=percent_wifi_signal(net.info)%>% +
+
+ 0%
- SSID: <%=utl.pcdata(net.info.ssid)%> | - Mode: <%=net.info.mode%>
- BSSID: <%=net.info.bssid%> | - Encryption: <%=net.info.enctype or "None"%> +
+ <%:Collecting data...%> - Edit this network - Delete this network + <%:Edit this network%> + " onclick="return confirm('<%:Really delete this wireless network? The deletion cannot be undone!\nYou might loose access to this router if you are connected via this network.%>')"><%:Delete this network%>
- (No network configured on this device) + <%:No network configured on this device%>
- + <% end %> - - -

<%:a_s_iw_overview2 Associated Stations%>

+

<%:Associated Stations%>

- +
- - - - - + + + + + - - <% local count = -1 %> - <% for dev, state in utl.kspairs(devices) do %> - <% for _, net in ipairs(state.networks) do %> - <% for mac, info in utl.kspairs(net.info.assoclist) do info.bssid = mac; count = count + 1 %> - - - - - - - - - <% end %> - <% end %> - <% end %> - <% if count <= 0 then %> - <% end %>
SSIDMACAddressSignalNoise<%:SSID%><%:MAC%><%:Address%><%:Signal%><%:Noise%>
<%=net.info.ssid%><%=mac%><%=arpcache[mac] or "n/a"%><%=info.signal%> dBm<%=info.noise%> dBm
- No information available + <%:Collecting data...%>