luci: initial 802.11ac support
[project/luci.git] / modules / admin-full / luasrc / view / admin_network / wifi_status.htm
index 63bd261..2484fd3 100644 (file)
@@ -1,67 +1,66 @@
 <%+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">