<%+cbi/valueheader%>
-<script type="text/javascript"><![CDATA[
- var iwxhr = new XHR();
- (function() {
- iwxhr.get('<%=luci.dispatcher.build_url("admin", "network", "wireless_status", self.ifname)%>', null,
- function(x)
+<script type="text/javascript">//<![CDATA[
+ XHR.poll(5, '<%=luci.dispatcher.build_url("admin", "network", "wireless_status", self.ifname)%>', null,
+ function(x, iw)
+ {
+ if (iw && (iw = iw[0]))
{
- var iw = x.responseText ? eval('(' + x.responseText + ')') : null;
- if (iw && (iw = iw[0]))
- {
- var is_assoc = (iw.bssid && iw.channel);
- var p = (100 / iw.quality_max * iw.quality);
- var q = is_assoc ? p : -1;
+ 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 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 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 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 d = document.getElementById('<%=self.option%>-iw-description');
- if (d && is_assoc)
- d.innerHTML = String.format(
- '<strong><%:Mode%>:</strong> %s | ' +
- '<strong><%:SSID%>:</strong> %s<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.description : '<%:None%>',
- iw.channel, iw.frequency ? (iw.frequency / 1000) : 0,
- iw.txpower, iw.signal, iw.noise,
- iw.bitrate ? (iw.bitrate / 1000) : 0, iw.country
- );
- else if (d)
- d.innerHTML = '<%:Wireless is disabled or not associated%>';
- }
+ 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><%:Bitrate%>:</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
+ );
}
- )
-
- window.setTimeout(arguments.callee, 5000);
- })();
-]]></script>
+ }
+ );
+//]]></script>
<table>
<tr class="cbi-section-table">