diff options
author | Jo-Philipp Wich <jow@openwrt.org> | 2011-09-26 00:24:34 +0000 |
---|---|---|
committer | Jo-Philipp Wich <jow@openwrt.org> | 2011-09-26 00:24:34 +0000 |
commit | fd052a6e648c309daacf0d0186f632f466e437d0 (patch) | |
tree | e68dd59b6a999d90f899c748263f8e6d7bcbe872 /modules/admin-full/luasrc/view/admin_network | |
parent | b2b3b181d830d4b10250c7a9a1d7014a314dc763 (diff) |
modules/admin-full: rework status javascript code to use XHR.poll()
Diffstat (limited to 'modules/admin-full/luasrc/view/admin_network')
5 files changed, 378 insertions, 417 deletions
diff --git a/modules/admin-full/luasrc/view/admin_network/iface_overview.htm b/modules/admin-full/luasrc/view/admin_network/iface_overview.htm index 6a94c2dfe8..8a91ca47ed 100644 --- a/modules/admin-full/luasrc/view/admin_network/iface_overview.htm +++ b/modules/admin-full/luasrc/view/admin_network/iface_overview.htm @@ -44,8 +44,7 @@ $Id$ s.innerHTML = '<%:Waiting for router...%>'; } - var rcxhr = new XHR(); - rcxhr.get('<%=luci.dispatcher.build_url("admin", "network")%>/iface_' + (reconnect ? 'reconnect' : 'shutdown') + '/' + id, null, + XHR.get('<%=luci.dispatcher.build_url("admin", "network")%>/iface_' + (reconnect ? 'reconnect' : 'shutdown') + '/' + id, null, function(x) { if (s) @@ -67,117 +66,112 @@ $Id$ var wifidevs = <%=luci.http.write_json(netdevs)%>; var arptable = <%=luci.http.write_json(arpcache)%>; - (function() { - var func = arguments.callee; - iwxhr.get('<%=luci.dispatcher.build_url("admin", "network", "iface_status", table.concat(netlist, ","))%>', null, - function(x, ifcs) + XHR.poll(5, '<%=luci.dispatcher.build_url("admin", "network", "iface_status", table.concat(netlist, ","))%>', null, + function(x, ifcs) + { + if (ifcs) { - if (ifcs) + for (var idx = 0; idx < ifcs.length; idx++) { - for (var idx = 0; idx < ifcs.length; idx++) + var ifc = ifcs[idx]; + var html = ''; + + var s = document.getElementById(ifc.id + '-ifc-devices'); + if (s) { - var ifc = ifcs[idx]; - var html = ''; + var stat = String.format( + '<img src="<%=resource%>/icons/%s%s.png" style="width:16px; height:16px; vertical-align:middle" />', + ifc.type, + ifc.is_up ? '' : '_disabled' + ); - var s = document.getElementById(ifc.id + '-ifc-devices'); - if (s) + if (ifc.subdevices && ifc.subdevices.length) { - var stat = String.format( - '<img src="<%=resource%>/icons/%s%s.png" style="width:16px; height:16px; vertical-align:middle" />', - ifc.type, - ifc.is_up ? '' : '_disabled' - ); + stat += ' <strong>('; - if (ifc.subdevices && ifc.subdevices.length) + for (var j = 0; j < ifc.subdevices.length; j++) { - stat += ' <strong>('; - - for (var j = 0; j < ifc.subdevices.length; j++) - { - var sif = ifc.subdevices[j]; + var sif = ifc.subdevices[j]; + + stat += String.format( + '<img src="<%=resource%>/icons/%s%s.png" style="width:16px; height:16px; vertical-align:middle" title="%q" />', + sif.type, + sif.is_up ? '' : '_disabled', + sif.name + ); + } - stat += String.format( - '<img src="<%=resource%>/icons/%s%s.png" style="width:16px; height:16px; vertical-align:middle" title="%q" />', - sif.type, - sif.is_up ? '' : '_disabled', - sif.name - ); - } + stat += ')</strong>'; + } - stat += ')</strong>'; - } + stat += String.format( + '<br /><small>%s</small>', + ifc.name + ); - stat += String.format( - '<br /><small>%s</small>', - ifc.name - ); + s.innerHTML = stat; + } - s.innerHTML = stat; + var d = document.getElementById(ifc.id + '-ifc-description'); + if (d && ifc.ifname) + { + if (ifc.is_up) + { + html += String.format('<strong><%:Uptime%>:</strong> %t<br />', ifc.uptime); } - var d = document.getElementById(ifc.id + '-ifc-description'); - if (d && ifc.ifname) + if (ifc.type != 'tunnel') { - if (ifc.is_up) - { - html += String.format('<strong><%:Uptime%>:</strong> %t<br />', ifc.uptime); - } - - if (ifc.type != 'tunnel') - { - html += String.format('<strong><%:MAC Address%>:</strong> %s<br />', ifc.macaddr); - } - - html += String.format( - '<strong><%:RX%></strong>: %.2mB (%d <%:Pkts.%>)<br />' + - '<strong><%:TX%></strong>: %.2mB (%d <%:Pkts.%>)<br />', - ifc.rx_bytes, ifc.rx_packets, - ifc.tx_bytes, ifc.tx_packets - ); + html += String.format('<strong><%:MAC Address%>:</strong> %s<br />', ifc.macaddr); + } - if (ifc.ipaddrs && ifc.ipaddrs.length) - { - html += '<strong><%:IPv4%>: </strong>'; + html += String.format( + '<strong><%:RX%></strong>: %.2mB (%d <%:Pkts.%>)<br />' + + '<strong><%:TX%></strong>: %.2mB (%d <%:Pkts.%>)<br />', + ifc.rx_bytes, ifc.rx_packets, + ifc.tx_bytes, ifc.tx_packets + ); - for (var i = 0; i < ifc.ipaddrs.length; i++) - html += String.format( - '%s%s/%d', - i ? ', ' : '', - ifc.ipaddrs[i].addr, - ifc.ipaddrs[i].prefix - ); + if (ifc.ipaddrs && ifc.ipaddrs.length) + { + html += '<strong><%:IPv4%>: </strong>'; - html += '<br />'; - } + for (var i = 0; i < ifc.ipaddrs.length; i++) + html += String.format( + '%s%s/%d', + i ? ', ' : '', + ifc.ipaddrs[i].addr, + ifc.ipaddrs[i].prefix + ); - if (ifc.ip6addrs && ifc.ip6addrs.length) - { - html += '<strong><%:IPv6%>: </strong>'; + html += '<br />'; + } - for (var i = 0; i < ifc.ip6addrs.length; i++) - html += String.format( - '%s%s/%d', - i ? ', ' : '', - ifc.ip6addrs[i].addr.toUpperCase(), - ifc.ip6addrs[i].prefix - ); + if (ifc.ip6addrs && ifc.ip6addrs.length) + { + html += '<strong><%:IPv6%>: </strong>'; - html += '<br />'; - } + for (var i = 0; i < ifc.ip6addrs.length; i++) + html += String.format( + '%s%s/%d', + i ? ', ' : '', + ifc.ip6addrs[i].addr.toUpperCase(), + ifc.ip6addrs[i].prefix + ); - d.innerHTML = html; - } - else if (d) - { - d.innerHTML = '<em><%:Interface not present or not connected yet.%></em>'; + html += '<br />'; } + + d.innerHTML = html; + } + else if (d) + { + d.innerHTML = '<em><%:Interface not present or not connected yet.%></em>'; } } - - window.setTimeout(func, 5000); } - ) - })(); + } + ); //]]></script> <fieldset class="cbi-section" style="display:none"> diff --git a/modules/admin-full/luasrc/view/admin_network/iface_status.htm b/modules/admin-full/luasrc/view/admin_network/iface_status.htm index 69ae052723..f80fb5e537 100644 --- a/modules/admin-full/luasrc/view/admin_network/iface_status.htm +++ b/modules/admin-full/luasrc/view/admin_network/iface_status.htm @@ -1,89 +1,81 @@ <%+cbi/valueheader%> <script type="text/javascript">//<![CDATA[ - var iwxhr = new XHR(); - - (function() { - var func = arguments.callee; - - iwxhr.get('<%=luci.dispatcher.build_url("admin", "network", "iface_status", self.network)%>', null, - function(x, ifc) + XHR.poll(5, '<%=luci.dispatcher.build_url("admin", "network", "iface_status", self.network)%>', null, + function(x, ifc) + { + if (ifc && (ifc = ifc[0])) { - if (ifc && (ifc = ifc[0])) + var html = ''; + + var s = document.getElementById('<%=self.option%>-ifc-signal'); + if (s) + s.innerHTML = String.format( + '<img src="<%=resource%>/icons/%s%s.png" style="width:16px; height:16px" />' + + '<br /><small>%s</small>', + ifc.type, ifc.is_up ? '' : '_disabled', + ifc.is_up ? ifc.ifname : '?' + ); + + var d = document.getElementById('<%=self.option%>-ifc-description'); + if (d && ifc.ifname && ifc.macaddr != '00:00:00:00:00:00') { - var html = ''; - - var s = document.getElementById('<%=self.option%>-ifc-signal'); - if (s) - s.innerHTML = String.format( - '<img src="<%=resource%>/icons/%s%s.png" style="width:16px; height:16px" />' + - '<br /><small>%s</small>', - ifc.type, ifc.is_up ? '' : '_disabled', - ifc.is_up ? ifc.ifname : '?' - ); - - var d = document.getElementById('<%=self.option%>-ifc-description'); - if (d && ifc.ifname && ifc.macaddr != '00:00:00:00:00:00') + if (ifc.is_up) { - if (ifc.is_up) - { - html += String.format('<strong><%:Uptime%>:</strong> %t<br />', ifc.uptime); - } - - if (ifc.type != 'tunnel') - { - html += String.format('<strong><%:MAC Address%>:</strong> %s<br />', ifc.macaddr); - } + html += String.format('<strong><%:Uptime%>:</strong> %t<br />', ifc.uptime); + } - html += String.format( - '<strong><%:RX%></strong>: %.2mB (%d <%:Pkts.%>)<br />' + - '<strong><%:TX%></strong>: %.2mB (%d <%:Pkts.%>)<br />', - ifc.rx_bytes, ifc.rx_packets, - ifc.tx_bytes, ifc.tx_packets - ); + if (ifc.type != 'tunnel') + { + html += String.format('<strong><%:MAC Address%>:</strong> %s<br />', ifc.macaddr); + } - if (ifc.ipaddrs && ifc.ipaddrs.length) - { - html += '<strong><%:IPv4%>: </strong>'; + html += String.format( + '<strong><%:RX%></strong>: %.2mB (%d <%:Pkts.%>)<br />' + + '<strong><%:TX%></strong>: %.2mB (%d <%:Pkts.%>)<br />', + ifc.rx_bytes, ifc.rx_packets, + ifc.tx_bytes, ifc.tx_packets + ); - for (var i = 0; i < ifc.ipaddrs.length; i++) - html += String.format( - '%s%s/%d', - i ? ', ' : '', - ifc.ipaddrs[i].addr, - ifc.ipaddrs[i].prefix - ); + if (ifc.ipaddrs && ifc.ipaddrs.length) + { + html += '<strong><%:IPv4%>: </strong>'; - html += '<br />'; - } + for (var i = 0; i < ifc.ipaddrs.length; i++) + html += String.format( + '%s%s/%d', + i ? ', ' : '', + ifc.ipaddrs[i].addr, + ifc.ipaddrs[i].prefix + ); - if (ifc.ip6addrs && ifc.ip6addrs.length) - { - html += '<strong><%:IPv6%>: </strong>'; + html += '<br />'; + } - for (var i = 0; i < ifc.ip6addrs.length; i++) - html += String.format( - '%s%s/%d', - i ? ', ' : '', - ifc.ip6addrs[i].addr.toUpperCase(), - ifc.ip6addrs[i].prefix - ); + if (ifc.ip6addrs && ifc.ip6addrs.length) + { + html += '<strong><%:IPv6%>: </strong>'; - html += '<br />'; - } + for (var i = 0; i < ifc.ip6addrs.length; i++) + html += String.format( + '%s%s/%d', + i ? ', ' : '', + ifc.ip6addrs[i].addr.toUpperCase(), + ifc.ip6addrs[i].prefix + ); - d.innerHTML = html; - } - else if (d) - { - d.innerHTML = '<em><%:Interface not present or not connected yet.%></em>'; + html += '<br />'; } - } - window.setTimeout(func, 5000); + d.innerHTML = html; + } + else if (d) + { + d.innerHTML = '<em><%:Interface not present or not connected yet.%></em>'; + } } - ) - })(); + } + ); //]]></script> <table> diff --git a/modules/admin-full/luasrc/view/admin_network/lease_status.htm b/modules/admin-full/luasrc/view/admin_network/lease_status.htm index 519b63e098..bf5a5c2677 100644 --- a/modules/admin-full/luasrc/view/admin_network/lease_status.htm +++ b/modules/admin-full/luasrc/view/admin_network/lease_status.htm @@ -1,56 +1,48 @@ <script type="text/javascript">//<![CDATA[ - var stxhr = new XHR(); - - (function() { - var func = arguments.callee; - - stxhr.get('<%=luci.dispatcher.build_url("admin", "network", "dhcplease_status")%>', null, - function(x, st) + XHR.poll(5, '<%=luci.dispatcher.build_url("admin", "network", "dhcplease_status")%>', null, + function(x, st) + { + var tb = document.getElementById('lease_status_table'); + if (st && tb) { - var tb = document.getElementById('lease_status_table'); - if (st && tb) + /* clear all rows */ + while( tb.rows.length > 1 ) + tb.deleteRow(1); + + for( var i = 0; i < st.length; i++ ) { - /* clear all rows */ - while( tb.rows.length > 1 ) - tb.deleteRow(1); + var timestr; - for( var i = 0; i < st.length; i++ ) + if (st[i].expires <= 0) { - var timestr; - - if (st[i].expires <= 0) - { - timestr = '<em><%:expired%></em>'; - } - else - { - timestr = String.format('%t', st[i].expires); - } - - var tr = tb.insertRow(-1); - tr.className = 'cbi-section-table-row cbi-rowstyle-' + ((i % 2) + 1); - - tr.insertCell(-1).innerHTML = st[i].hostname ? st[i].hostname : '?'; - tr.insertCell(-1).innerHTML = st[i].ipaddr; - tr.insertCell(-1).innerHTML = st[i].macaddr; - tr.insertCell(-1).innerHTML = timestr; + timestr = '<em><%:expired%></em>'; } - - if( tb.rows.length == 1 ) + else { - var tr = tb.insertRow(-1); - tr.className = 'cbi-section-table-row'; - - var td = tr.insertCell(-1); - td.colSpan = 4; - td.innerHTML = '<em><br /><%:There are no active leases.%></em>'; + timestr = String.format('%t', st[i].expires); } + + var tr = tb.insertRow(-1); + tr.className = 'cbi-section-table-row cbi-rowstyle-' + ((i % 2) + 1); + + tr.insertCell(-1).innerHTML = st[i].hostname ? st[i].hostname : '?'; + tr.insertCell(-1).innerHTML = st[i].ipaddr; + tr.insertCell(-1).innerHTML = st[i].macaddr; + tr.insertCell(-1).innerHTML = timestr; } - window.setTimeout(func, 5000); + if( tb.rows.length == 1 ) + { + var tr = tb.insertRow(-1); + tr.className = 'cbi-section-table-row'; + + var td = tr.insertCell(-1); + td.colSpan = 4; + td.innerHTML = '<em><br /><%:There are no active leases.%></em>'; + } } - ) - })(); + } + ); //]]></script> <fieldset class="cbi-section"> 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 06725c1b91..485ad4069d 100644 --- a/modules/admin-full/luasrc/view/admin_network/wifi_overview.htm +++ b/modules/admin-full/luasrc/view/admin_network/wifi_overview.htm @@ -119,7 +119,6 @@ $Id$ <script type="text/javascript" src="<%=resource%>/cbi.js"></script> <script type="text/javascript">//<![CDATA[ - var iwxhr = new XHR(); var wifidevs = <%=luci.http.write_json(netdevs)%>; var arptable = <%=luci.http.write_json(arpcache)%>; @@ -147,8 +146,7 @@ $Id$ st.innerHTML = '<em><%:Wireless is restarting...%></em>'; } - var rcxhr = new XHR(); - rcxhr.get('<%=luci.dispatcher.build_url("admin", "network")%>/wireless_' + (reconnect ? 'reconnect' : 'shutdown') + '/' + id, null, + XHR.get('<%=luci.dispatcher.build_url("admin", "network")%>/wireless_' + (reconnect ? 'reconnect' : 'shutdown') + '/' + id, null, function(x) { if (s) @@ -166,182 +164,175 @@ $Id$ ); } - (function() { - var func = arguments.callee; - - iwxhr.get('<%=luci.dispatcher.build_url("admin", "network", "wireless_status", table.concat(netlist, ","))%>', null, - function(x, st) + XHR.poll(5, '<%=luci.dispatcher.build_url("admin", "network", "wireless_status", table.concat(netlist, ","))%>', null, + function(x, st) + { + if (st) { - if (st) - { - var assoctable = document.getElementById('iw-assoclist'); - if (assoctable) - while (assoctable.rows.length > 1) - assoctable.rows[1].parentNode.removeChild(assoctable.rows[1]); + var assoctable = document.getElementById('iw-assoclist'); + if (assoctable) + while (assoctable.rows.length > 1) + assoctable.rows[1].parentNode.removeChild(assoctable.rows[1]); - var devup = { }; - var rowstyle = 1; + var devup = { }; + var rowstyle = 1; - for( var i = 0; i < st.length; i++ ) + for( var i = 0; i < st.length; i++ ) + { + var iw = st[i]; + var is_assoc = (iw.bssid && iw.bssid != '00:00:00:00:00:00' && iw.channel); + var p = iw.quality; + var q = is_assoc ? p : -1; + + var icon; + if (q < 0) + icon = "<%=resource%>/icons/signal-none.png"; + else if (q == 0) + icon = "<%=resource%>/icons/signal-0.png"; + else if (q < 25) + icon = "<%=resource%>/icons/signal-0-25.png"; + else if (q < 50) + icon = "<%=resource%>/icons/signal-25-50.png"; + else if (q < 75) + icon = "<%=resource%>/icons/signal-50-75.png"; + else + icon = "<%=resource%>/icons/signal-75-100.png"; + + if (!devup[wifidevs[iw.id]]) + devup[wifidevs[iw.id]] = is_assoc; + + var sig = document.getElementById(iw.id + '-iw-signal'); + if (sig) + sig.innerHTML = String.format( + '<img src="%s" title="<%:Signal%>: %d dBm / <%:Noise%>: %d dBm" /><br />' + + '<small>%d%%</small>', icon, iw.signal, iw.noise, p + ); + + var toggle = document.getElementById(iw.id + '-iw-toggle'); + if (toggle) { - var iw = st[i]; - var is_assoc = (iw.bssid && iw.bssid != '00:00:00:00:00:00' && iw.channel); - var p = iw.quality; - var q = is_assoc ? p : -1; - - var icon; - if (q < 0) - icon = "<%=resource%>/icons/signal-none.png"; - else if (q == 0) - icon = "<%=resource%>/icons/signal-0.png"; - else if (q < 25) - icon = "<%=resource%>/icons/signal-0-25.png"; - else if (q < 50) - icon = "<%=resource%>/icons/signal-25-50.png"; - else if (q < 75) - icon = "<%=resource%>/icons/signal-50-75.png"; + if (is_assoc) + { + toggle.style.backgroundImage = 'url(<%=resource%>/cbi/reset.gif)'; + toggle.value = '<%:Disable%>'; + toggle.title = '<%:Shutdown this network%>'; + } else - icon = "<%=resource%>/icons/signal-75-100.png"; + { + toggle.style.backgroundImage = 'url(<%=resource%>/cbi/reload.gif)'; + toggle.value = '<%:Enable%>'; + toggle.title = '<%:Activate this network%>'; + } - if (!devup[wifidevs[iw.id]]) - devup[wifidevs[iw.id]] = is_assoc; + toggle.setAttribute('active', is_assoc); + } - var sig = document.getElementById(iw.id + '-iw-signal'); - if (sig) - sig.innerHTML = String.format( - '<img src="%s" title="<%:Signal%>: %d dBm / <%:Noise%>: %d dBm" /><br />' + - '<small>%d%%</small>', icon, iw.signal, iw.noise, p + var info = document.getElementById(iw.id + '-iw-status'); + if (info) + { + if (is_assoc) + info.innerHTML = String.format( + '<strong><%:SSID%>:</strong> %h | ' + + '<strong><%:Mode%>:</strong> %s<br />' + + '<strong><%:BSSID%>:</strong> %s | ' + + '<strong><%:Encryption%>:</strong> %s', + iw.ssid, iw.mode, iw.bssid, + iw.encryption ? iw.encryption : '<%:None%>' ); + else + info.innerHTML = String.format( + '<strong><%:SSID%>:</strong> %h | ' + + '<strong><%:Mode%>:</strong> %s<br />' + + '<em>%s</em>', + iw.ssid || '?', iw.mode, + is_reconnecting + ? '<em><%:Wireless is restarting...%></em>' + : '<em><%:Wireless is disabled or not associated%></em>' + ); + } - var toggle = document.getElementById(iw.id + '-iw-toggle'); - if (toggle) - { - if (is_assoc) - { - toggle.style.backgroundImage = 'url(<%=resource%>/cbi/reset.gif)'; - toggle.value = '<%:Disable%>'; - toggle.title = '<%:Shutdown this network%>'; - } - else - { - toggle.style.backgroundImage = 'url(<%=resource%>/cbi/reload.gif)'; - toggle.value = '<%:Enable%>'; - toggle.title = '<%:Activate this network%>'; - - } - - toggle.setAttribute('active', is_assoc); - } + var dev = document.getElementById(wifidevs[iw.id] + '-iw-devinfo'); + if (dev) + { + if (is_assoc) + dev.innerHTML = String.format( + '<strong><%:Channel%>:</strong> %s (%s GHz) | ' + + '<strong><%:Bitrate%>:</strong> %s Mb/s', + iw.channel ? iw.channel : '?', + iw.frequency ? iw.frequency : '?', + iw.bitrate ? iw.bitrate : '?' + ); + else + dev.innerHTML = ''; + } - var info = document.getElementById(iw.id + '-iw-status'); - if (info) + if (assoctable) + { + var assoclist = [ ]; + for( var bssid in iw.assoclist ) { - if (is_assoc) - info.innerHTML = String.format( - '<strong><%:SSID%>:</strong> %h | ' + - '<strong><%:Mode%>:</strong> %s<br />' + - '<strong><%:BSSID%>:</strong> %s | ' + - '<strong><%:Encryption%>:</strong> %s', - iw.ssid, iw.mode, iw.bssid, - iw.encryption ? iw.encryption : '<%:None%>' - ); - else - info.innerHTML = String.format( - '<strong><%:SSID%>:</strong> %h | ' + - '<strong><%:Mode%>:</strong> %s<br />' + - '<em>%s</em>', - iw.ssid || '?', iw.mode, - is_reconnecting - ? '<em><%:Wireless is restarting...%></em>' - : '<em><%:Wireless is disabled or not associated%></em>' - ); + assoclist.push(iw.assoclist[bssid]); + assoclist[assoclist.length-1].bssid = bssid; } - var dev = document.getElementById(wifidevs[iw.id] + '-iw-devinfo'); - if (dev) + assoclist.sort(function(a, b) { a.bssid < b.bssid }); + + for( var j = 0; j < assoclist.length; j++ ) { - if (is_assoc) - dev.innerHTML = String.format( - '<strong><%:Channel%>:</strong> %s (%s GHz) | ' + - '<strong><%:Bitrate%>:</strong> %s Mb/s', - iw.channel ? iw.channel : '?', - iw.frequency ? iw.frequency : '?', - iw.bitrate ? iw.bitrate : '?' - ); + var tr = assoctable.insertRow(-1); + tr.className = 'cbi-section-table-row cbi-rowstyle-' + rowstyle; + + var icon; + var q = (-1 * (assoclist[j].noise - assoclist[j].signal)) / 5; + if (q < 1) + icon = "<%=resource%>/icons/signal-0.png"; + else if (q < 2) + icon = "<%=resource%>/icons/signal-0-25.png"; + else if (q < 3) + icon = "<%=resource%>/icons/signal-25-50.png"; + else if (q < 4) + icon = "<%=resource%>/icons/signal-50-75.png"; else - dev.innerHTML = ''; - } + icon = "<%=resource%>/icons/signal-75-100.png"; - if (assoctable) - { - var assoclist = [ ]; - for( var bssid in iw.assoclist ) - { - assoclist.push(iw.assoclist[bssid]); - assoclist[assoclist.length-1].bssid = bssid; - } - - assoclist.sort(function(a, b) { a.bssid < b.bssid }); - - for( var j = 0; j < assoclist.length; j++ ) - { - var tr = assoctable.insertRow(-1); - tr.className = 'cbi-section-table-row cbi-rowstyle-' + rowstyle; - - var icon; - var q = (-1 * (assoclist[j].noise - assoclist[j].signal)) / 5; - if (q < 1) - icon = "<%=resource%>/icons/signal-0.png"; - else if (q < 2) - icon = "<%=resource%>/icons/signal-0-25.png"; - else if (q < 3) - icon = "<%=resource%>/icons/signal-25-50.png"; - else if (q < 4) - icon = "<%=resource%>/icons/signal-50-75.png"; - else - icon = "<%=resource%>/icons/signal-75-100.png"; - - tr.insertCell(-1).innerHTML = String.format( - '<img src="%s" title="<%:Signal%>: %d dBm / <%:Noise%>: %d dBm" />', - icon, assoclist[j].signal, assoclist[j].noise - ); - - tr.insertCell(-1).innerHTML = iw.ssid ? iw.ssid : '?'; - tr.insertCell(-1).innerHTML = assoclist[j].bssid; - - tr.insertCell(-1).innerHTML = arptable[assoclist[j].bssid] - ? arptable[assoclist[j].bssid] : '?'; - - tr.insertCell(-1).innerHTML = String.format('%d dBm', assoclist[j].signal); - tr.insertCell(-1).innerHTML = String.format('%d dBm', assoclist[j].noise); - - rowstyle = (rowstyle == 1) ? 2 : 1; - } - } - } + tr.insertCell(-1).innerHTML = String.format( + '<img src="%s" title="<%:Signal%>: %d dBm / <%:Noise%>: %d dBm" />', + icon, assoclist[j].signal, assoclist[j].noise + ); - if (assoctable && assoctable.rows.length == 1) - { - var tr = assoctable.insertRow(-1); - tr.className = 'cbi-section-table-row'; + tr.insertCell(-1).innerHTML = iw.ssid ? iw.ssid : '?'; + tr.insertCell(-1).innerHTML = assoclist[j].bssid; - var td = tr.insertCell(-1); - td.colSpan = 6; - td.innerHTML = '<br /><em><%:No information available%></em>'; - } + tr.insertCell(-1).innerHTML = arptable[assoclist[j].bssid] + ? arptable[assoclist[j].bssid] : '?'; - for (var dev in devup) - { - var img = document.getElementById(dev + '-iw-upstate'); - if (img) - img.src = '<%=resource%>/icons/wifi_big' + (devup[dev] ? '' : '_disabled') + '.png'; + tr.insertCell(-1).innerHTML = String.format('%d dBm', assoclist[j].signal); + tr.insertCell(-1).innerHTML = String.format('%d dBm', assoclist[j].noise); + + rowstyle = (rowstyle == 1) ? 2 : 1; + } } } - window.setTimeout(func, 5000); + if (assoctable && assoctable.rows.length == 1) + { + var tr = assoctable.insertRow(-1); + tr.className = 'cbi-section-table-row'; + + var td = tr.insertCell(-1); + td.colSpan = 6; + td.innerHTML = '<br /><em><%:No information available%></em>'; + } + + for (var dev in devup) + { + var img = document.getElementById(dev + '-iw-upstate'); + if (img) + img.src = '<%=resource%>/icons/wifi_big' + (devup[dev] ? '' : '_disabled') + '.png'; + } } - ) - })(); + } + ); //]]></script> <h2><a id="content" name="content"><%:Wireless Overview%></a></h2> diff --git a/modules/admin-full/luasrc/view/admin_network/wifi_status.htm b/modules/admin-full/luasrc/view/admin_network/wifi_status.htm index 76635bf702..900071b898 100644 --- a/modules/admin-full/luasrc/view/admin_network/wifi_status.htm +++ b/modules/admin-full/luasrc/view/admin_network/wifi_status.htm @@ -1,73 +1,65 @@ <%+cbi/valueheader%> <script type="text/javascript">//<![CDATA[ - var iwxhr = new XHR(); - - (function() { - var func = arguments.callee; - - iwxhr.get('<%=luci.dispatcher.build_url("admin", "network", "wireless_status", self.ifname)%>', null, - function(x, iw) + XHR.poll(5, '<%=luci.dispatcher.build_url("admin", "network", "wireless_status", self.ifname)%>', null, + function(x, iw) + { + if (iw && (iw = iw[0])) { - if (iw && (iw = iw[0])) - { - var is_assoc = (iw.bssid && iw.bssid != '00:00:00:00:00:00' && iw.channel); - var p = iw.quality; - var q = is_assoc ? p : -1; - - var icon; - if (q < 0) - icon = "<%=resource%>/icons/signal-none.png"; - else if (q == 0) - icon = "<%=resource%>/icons/signal-0.png"; - else if (q < 25) - icon = "<%=resource%>/icons/signal-0-25.png"; - else if (q < 50) - icon = "<%=resource%>/icons/signal-25-50.png"; - else if (q < 75) - icon = "<%=resource%>/icons/signal-50-75.png"; - else - icon = "<%=resource%>/icons/signal-75-100.png"; + var is_assoc = (iw.bssid && iw.bssid != '00:00:00:00:00:00' && iw.channel); + var p = iw.quality; + var q = is_assoc ? p : -1; - var s = document.getElementById('<%=self.option%>-iw-signal'); - if (s) - s.innerHTML = String.format( - '<img src="%s" title="<%:Signal%>: %d dBm / <%:Noise%>: %d dBm" /><br />' + - '<small>%d%%</small>', icon, iw.signal, iw.noise, p - ); + var icon; + if (q < 0) + icon = "<%=resource%>/icons/signal-none.png"; + else if (q == 0) + icon = "<%=resource%>/icons/signal-0.png"; + else if (q < 25) + icon = "<%=resource%>/icons/signal-0-25.png"; + else if (q < 50) + icon = "<%=resource%>/icons/signal-25-50.png"; + else if (q < 75) + icon = "<%=resource%>/icons/signal-50-75.png"; + else + icon = "<%=resource%>/icons/signal-75-100.png"; - var d = document.getElementById('<%=self.option%>-iw-description'); - if (d && is_assoc) - d.innerHTML = String.format( - '<strong><%:Mode%>:</strong> %s | ' + - '<strong><%:SSID%>:</strong> %h<br />' + - '<strong><%:BSSID%>:</strong> %s | ' + - '<strong><%:Encryption%>:</strong> %s<br />' + - '<strong><%:Channel%>:</strong> %d (%.3f GHz) | ' + - '<strong><%:Tx-Power%>:</strong> %d dBm<br />' + - '<strong><%:Signal%>:</strong> %d dBm | ' + - '<strong><%:Noise%>:</strong> %d dBm<br />' + - '<strong><%:Bit Rate%>:</strong> %.1f MBit/s | ' + - '<strong><%:Country%>:</strong> %s', - iw.mode, iw.ssid, iw.bssid, - iw.encryption ? iw.encryption : '<%:None%>', - iw.channel, iw.frequency ? iw.frequency : 0, - iw.txpower, iw.signal, iw.noise, - iw.bitrate ? iw.bitrate : 0, iw.country - ); - else if (d) - d.innerHTML = String.format( - '<strong><%:SSID%>:</strong> %h | ' + - '<strong><%:Mode%>:</strong> %s<br />' + - '<em><%:Wireless is disabled or not associated%></em>', - iw.ssid || '?', iw.mode - ); - } + var s = document.getElementById('<%=self.option%>-iw-signal'); + if (s) + s.innerHTML = String.format( + '<img src="%s" title="<%:Signal%>: %d dBm / <%:Noise%>: %d dBm" /><br />' + + '<small>%d%%</small>', icon, iw.signal, iw.noise, p + ); - window.setTimeout(func, 5000); + var d = document.getElementById('<%=self.option%>-iw-description'); + if (d && is_assoc) + d.innerHTML = String.format( + '<strong><%:Mode%>:</strong> %s | ' + + '<strong><%:SSID%>:</strong> %h<br />' + + '<strong><%:BSSID%>:</strong> %s | ' + + '<strong><%:Encryption%>:</strong> %s<br />' + + '<strong><%:Channel%>:</strong> %d (%.3f GHz) | ' + + '<strong><%:Tx-Power%>:</strong> %d dBm<br />' + + '<strong><%:Signal%>:</strong> %d dBm | ' + + '<strong><%:Noise%>:</strong> %d dBm<br />' + + '<strong><%:Bit Rate%>:</strong> %.1f MBit/s | ' + + '<strong><%:Country%>:</strong> %s', + iw.mode, iw.ssid, iw.bssid, + iw.encryption ? iw.encryption : '<%:None%>', + iw.channel, iw.frequency ? iw.frequency : 0, + iw.txpower, iw.signal, iw.noise, + iw.bitrate ? iw.bitrate : 0, iw.country + ); + else if (d) + d.innerHTML = String.format( + '<strong><%:SSID%>:</strong> %h | ' + + '<strong><%:Mode%>:</strong> %s<br />' + + '<em><%:Wireless is disabled or not associated%></em>', + iw.ssid || '?', iw.mode + ); } - ) - })(); + } + ); //]]></script> <table> |