1 <!DOCTYPE HTML PUBLIC '-//W3C//DTD HTML
4.0//EN'
>
4 Copyright (C) 2006-2010 Jonathan Zarate
5 http://www.polarcloud.com/tomato/
8 Copyright (C) 2011 Augusto Bott
9 http://code.google.com/p/tomato-sdhc-vlan/
11 For use with Tomato Firmware only.
12 No part of this file may be used without permission.
16 <meta http-equiv='content-type' content='text/html;charset=utf-
8'
>
17 <meta name='robots' content='noindex,nofollow'
>
18 <title>[<%
ident(); %>] Status: Overview
</title>
19 <link rel='stylesheet' type='text/css' href='tomato.css'
>
21 <script type='text/javascript' src='tomato.js'
></script>
22 <script type='text/javascript' src='interfaces.js'
></script>
26 <style type='text/css'
>
34 <script type='text/javascript' src='debug.js'
></script>
36 <script type='text/javascript'
>
39 // <% etherstates(); %>
40 // <% anonupdate(); %>
42 wmo
= {'ap':'Access Point','sta':'Wireless Client','wet':'Wireless Ethernet Bridge','wds':'WDS'};
43 auth
= {'disabled':'-','wep':'WEP','wpa_personal':'WPA Personal (PSK)','wpa_enterprise':'WPA Enterprise','wpa2_personal':'WPA2 Personal (PSK)','wpa2_enterprise':'WPA2 Enterprise','wpaX_personal':'WPA / WPA2 Personal','wpaX_enterprise':'WPA / WPA2 Enterprise','radius':'Radius'};
44 enc
= {'tkip':'TKIP','aes':'AES','tkip+aes':'TKIP / AES'};
45 bgmo
= {'disabled':'-','mixed':'Auto','b-only':'B Only','g-only':'G Only','bg-mixed':'B/G Mixed','lrs':'LRS','n-only':'N Only'};
48 <script type='text/javascript' src='wireless.jsx?_http_id=<%
nv(http_id
); %>'
></script>
49 <script type='text/javascript' src='status-data.jsx?_http_id=<%
nv(http_id
); %>'
></script>
51 <script type='text/javascript'
>
52 show_dhcpc
= ((nvram
.wan_proto
== 'dhcp') || (nvram
.wan_proto
== 'lte') || (((nvram
.wan_proto
== 'l2tp') || (nvram
.wan_proto
== 'pptp')) && (nvram
.pptp_dhcp
== '1')));
53 show_codi
= ((nvram
.wan_proto
== 'pppoe') || (nvram
.wan_proto
== 'l2tp') || (nvram
.wan_proto
== 'pptp') || (nvram
.wan_proto
== 'ppp3g'));
56 for (var uidx
= 0; uidx
< wl_ifaces
.length
; ++uidx
) {
58 // show_radio.push((nvram['wl'+wl_unit(uidx)+'_radio'] == '1'));
61 show_radio
.push((nvram
['wl'+wl_fface(uidx
)+'_radio'] == '1'));
64 nphy
= features('11n');
68 form
.submitHidden('dhcpc.cgi', { exec
: what
, _redirect
: 'status-overview.asp' });
71 function serv(service
, sleep
)
73 form
.submitHidden('service.cgi', { _service
: service
, _redirect
: 'status-overview.asp', _sleep
: sleep
});
76 function wan_connect()
78 serv('wan-restart', 5);
81 function wan_disconnect()
86 function wlenable(uidx
, n
)
88 form
.submitHidden('wlradio.cgi', { enable
: '' + n
, _nextpage
: 'status-overview.asp', _nextwait
: n
? 6 : 3, _wl_unit
: wl_unit(uidx
) });
91 var ref
= new TomatoRefresh('status-data.jsx', '', 0, 'status_overview_refresh');
93 ref
.refresh = function(text
)
108 E(id
).cells
[1].innerHTML
= htm
;
113 port
= etherstates
.port0
;
114 if (port
== "disabled") { return 0; }
116 var state
, state1
, state2
;
117 var code
= '<div class="section-title">Ethernet Ports State</div>';
118 code
+= '<table class="fields"><tr><td class="title indent2"><center><b>WAN</b></center></td><td class="title indent2"><!-- empty space --></td><td class="title indent2"><center><b>LAN 1</b></center></td><td class="title indent2"><center><b>LAN 2</b></center></td><td class="title indent2"><center><b>LAN 3</b></center></td><td class="title indent2"><center><b>LAN 4</b></center></td><tr>';
120 if (port
== "DOWN") {
121 state
= '<img id="eth_off" src="eth_off.png"><br>';
122 state2
= port
.replace("DOWN","Unplugged");
123 } else if ((port
== "1000FD") || (port
== "1000HD")) {
124 state
= '<img id="eth_1000" src="eth_1000.gif"><br>';
125 state1
= port
.replace("HD","M Half");
126 state2
= state1
.replace("FD","M Full");
128 state
= '<img id="eth_100" src="eth_100.gif"><br>';
129 state1
= port
.replace("HD","M Half");
130 state2
= state1
.replace("FD","M Full");
132 if (stats
.lan_desc
== '1') {
133 code
+= '<td class="title indent2"><center>' + state
+ state2
+ '</center></td>';
135 code
+= '<td class="title indent2"><center>' + state
+ '</center></td>';
138 code
+= '<td class="title indent2"><!-- empty space --></td>';
140 port
= etherstates
.port1
;
141 if (port
== "DOWN") {
142 state
= '<img id="eth_off" src="eth_off.png"><br>';
143 state2
= port
.replace("DOWN","Unplugged");
144 } else if ((port
== "1000FD") || (port
== "1000HD")) {
145 state
= '<img id="eth_1000" src="eth_1000.gif"><br>';
146 state1
= port
.replace("HD","M Half");
147 state2
= state1
.replace("FD","M Full");
149 state
= '<img id="eth_100" src="eth_100.gif"><br>';
150 state1
= port
.replace("HD","M Half");
151 state2
= state1
.replace("FD","M Full");
153 if (stats
.lan_desc
== '1') {
154 code
+= '<td class="title indent2"><center>' + state
+ state2
+ '</center></td>';
156 code
+= '<td class="title indent2"><center>' + state
+ '</center></td>';
159 port
= etherstates
.port2
;
160 if (port
== "DOWN") {
161 state
= '<img id="eth_off" src="eth_off.png"><br>';
162 state2
= port
.replace("DOWN","Unplugged");
163 } else if ((port
== "1000FD") || (port
== "1000HD")) {
164 state
= '<img id="eth_1000" src="eth_1000.gif"><br>';
165 state1
= port
.replace("HD","M Half");
166 state2
= state1
.replace("FD","M Full");
168 state
= '<img id="eth_100" src="eth_100.gif"><br>';
169 state1
= port
.replace("HD","M Half");
170 state2
= state1
.replace("FD","M Full");
172 if (stats
.lan_desc
== '1') {
173 code
+= '<td class="title indent2"><center>' + state
+ state2
+ '</center></td>';
175 code
+= '<td class="title indent2"><center>' + state
+ '</center></td>';
178 port
= etherstates
.port3
;
179 if (port
== "DOWN") {
180 state
= '<img id="eth_off" src="eth_off.png"><br>';
181 state2
= port
.replace("DOWN","Unplugged");
182 } else if ((port
== "1000FD") || (port
== "1000HD")) {
183 state
= '<img id="eth_1000" src="eth_1000.gif"><br>';
184 state1
= port
.replace("HD","M Half");
185 state2
= state1
.replace("FD","M Full");
187 state
= '<img id="eth_100" src="eth_100.gif"><br>';
188 state1
= port
.replace("HD","M Half");
189 state2
= state1
.replace("FD","M Full");
191 if (stats
.lan_desc
== '1') {
192 code
+= '<td class="title indent2"><center>' + state
+ state2
+ '</center></td>';
194 code
+= '<td class="title indent2"><center>' + state
+ '</center></td>';
197 port
= etherstates
.port4
;
198 if (port
== "DOWN") {
199 state
= '<img id="eth_off" src="eth_off.png"><br>';
200 state2
= port
.replace("DOWN","Unplugged");
201 } else if ((port
== "1000FD") || (port
== "1000HD")) {
202 state
= '<img id="eth_1000" src="eth_1000.gif"><br>';
203 state1
= port
.replace("HD","M Half");
204 state2
= state1
.replace("FD","M Full");
206 state
= '<img id="eth_100" src="eth_100.gif"><br>';
207 state1
= port
.replace("HD","M Half");
208 state2
= state1
.replace("FD","M Full");
210 if (stats
.lan_desc
== '1') {
211 code
+= '<td class="title indent2"><center>' + state
+ state2
+ '</center></td>';
213 code
+= '<td class="title indent2"><center>' + state
+ '</center></td>';
216 code
+= '<td class="content"> </td></tr>';
217 code
+= '<tr><td class="title indent1" colspan="7" align="right">» <a href="basic-network.asp">Configure</a></td></tr></table></div>';
218 E("ports").innerHTML
= code
;
221 function anon_update()
223 update
= anonupdate
.update
;
224 if (update
== "no") { return 0; }
226 var code
= '<div class="section-title"><center>!! Attention !!</center></div>';
227 code
+= '<div class="fields"><center>Tomato by Shibby ' + update
+ ' is now available. <a target="_blank" href="http://tomato.groov.pl/">Click here to read more</a>.</center></div>';
228 code
+= '<br></div>';
229 E("nversion").innerHTML
= code
;
234 c('cpu', stats
.cpuload
);
235 c('uptime', stats
.uptime
);
236 c('time', stats
.time
);
237 c('wanip', stats
.wanip
);
238 c('wanprebuf',stats
.wanprebuf
); //Victek
239 c('wannetmask', stats
.wannetmask
);
240 c('wangateway', stats
.wangateway
);
242 c('memory', stats
.memory
);
243 c('swap', stats
.swap
);
244 elem
.display('swap', stats
.swap
!= '');
247 c('ip6_wan', stats
.ip6_wan
);
248 elem
.display('ip6_wan', stats
.ip6_wan
!= '');
249 c('ip6_lan', stats
.ip6_lan
);
250 elem
.display('ip6_lan', stats
.ip6_lan
!= '');
251 c('ip6_lan_ll', stats
.ip6_lan_ll
);
252 elem
.display('ip6_lan_ll', stats
.ip6_lan_ll
!= '');
255 c('wanstatus', stats
.wanstatus
);
256 c('wanuptime', stats
.wanuptime
);
257 if (show_dhcpc
) c('wanlease', stats
.wanlease
);
259 E('b_connect').disabled
= stats
.wanup
;
260 E('b_disconnect').disabled
= !stats
.wanup
;
263 for (var uidx
= 0; uidx
< wl_ifaces
.length
; ++uidx
) {
264 if (wl_sunit(uidx
)<0) {
265 c('radio'+uidx
, wlstats
[uidx
].radio
? 'Enabled' : '<b>Disabled</b>');
266 c('rate'+uidx
, wlstats
[uidx
].rate
);
267 if (show_radio
[uidx
]) {
268 E('b_wl'+uidx
+'_enable').disabled
= wlstats
[uidx
].radio
;
269 E('b_wl'+uidx
+'_disable').disabled
= !wlstats
[uidx
].radio
;
271 c('channel'+uidx
, stats
.channel
[uidx
]);
273 c('nbw'+uidx
, wlstats
[uidx
].nbw
);
275 c('interference'+uidx
, stats
.interference
[uidx
]);
276 elem
.display('interference'+uidx
, stats
.interference
[uidx
] != '');
278 if (wlstats
[uidx
].client
) {
279 c('rssi'+uidx
, wlstats
[uidx
].rssi
|| '');
280 c('noise'+uidx
, wlstats
[uidx
].noise
|| '');
281 c('qual'+uidx
, stats
.qual
[uidx
] || '');
284 c('ifstatus'+uidx
, wlstats
[uidx
].ifstatus
|| '');
290 if ((stats
.anon_enable
== '-1') || (stats
.anon_answer
== '0'))
291 E('att1').style
.display
= '';
293 elem
.display('b_dhcpc', show_dhcpc
);
294 elem
.display('b_connect', 'b_disconnect', show_codi
);
295 if (nvram
.wan_proto
== 'disabled')
296 elem
.display('wan-title', 'sesdiv_wan', 0);
297 for (var uidx
= 0; uidx
< wl_ifaces
.length
; ++uidx
) {
298 if (wl_sunit(uidx
)<0)
299 elem
.display('b_wl'+uidx
+'_enable', 'b_wl'+uidx
+'_disable', show_radio
[uidx
]);
312 if (((c
= cookie
.get('status_overview_system_vis')) != null) && (c
!= '1')) toggleVisibility("system");
313 if (((c
= cookie
.get('status_overview_wan_vis')) != null) && (c
!= '1')) toggleVisibility("wan");
314 if (((c
= cookie
.get('status_overview_lan_vis')) != null) && (c
!= '1')) toggleVisibility("lan");
315 for (var uidx
= 0; uidx
< wl_ifaces
.length
; ++uidx
) {
317 if (((c
= cookie
.get('status_overview_wl_'+u
+'_vis')) != null) && (c
!= '1')) toggleVisibility("wl_"+u
);
319 ref
.initPage(3000, 3);
322 function toggleVisibility(whichone
) {
323 if (E('sesdiv_' + whichone
).style
.display
== '') {
324 E('sesdiv_' + whichone
).style
.display
= 'none';
325 E('sesdiv_' + whichone
+ '_showhide').innerHTML
= '(show)';
326 cookie
.set('status_overview_' + whichone
+ '_vis', 0);
328 E('sesdiv_' + whichone
).style
.display
='';
329 E('sesdiv_' + whichone
+ '_showhide').innerHTML
= '(hide)';
330 cookie
.set('status_overview_' + whichone
+ '_vis', 1);
337 <body onload='init()'
>
339 <table id='container' cellspacing=
0>
340 <tr><td colspan=
2 id='header'
>
341 <div class='title'
>Tomato
</div>
342 <div class='version'
>Version <%
version(); %></div>
344 <tr id='body'
><td id='navi'
><script type='text/javascript'
>navi()</script></td>
346 <div id='ident'
><%
ident(); %></div>
349 <div class='section' id='nversion'
>
352 <div style='display:none' id='att1'
>
353 <div class='section-title'
><center>!! Attention !!
</center></div>
354 <div class='fields'
><center>You did not configure
<b>TomatoAnon project
</b> setting.
355 <br>Please go to
<a href='admin-tomatoanon.asp'
>TomatoAnon configuration page
</a> and make a choice.
</center></div>
359 <div class='section-title'
>System
<small><i><a href='javascript:toggleVisibility(
"system");'
><span id='sesdiv_system_showhide'
>(hide)
</span></a></i></small></div>
360 <div class='section' id='sesdiv_system'
>
361 <script type='text/javascript'
>
362 var a
= nvstat
.free
/ nvstat
.size
* 100.0;
363 createFieldTable('', [
364 { title
: 'Name', text
: nvram
.router_name
},
365 { title
: 'Model', text
: nvram
.t_model_name
},
366 { title
: 'Chipset', text
: stats
.systemtype
},
367 { title
: 'CPU Freq', text
: stats
.cpumhz
},
368 { title
: 'Flash Size', text
: stats
.flashsize
},
370 { title
: 'Time', rid
: 'time', text
: stats
.time
},
371 { title
: 'Uptime', rid
: 'uptime', text
: stats
.uptime
},
372 { title
: 'CPU Load <small>(1 / 5 / 15 mins)</small>', rid
: 'cpu', text
: stats
.cpuload
},
373 { title
: 'Total / Free Memory', rid
: 'memory', text
: stats
.memory
},
374 { title
: 'Total / Free Swap', rid
: 'swap', text
: stats
.swap
, hidden
: (stats
.swap
== '') },
375 { title
: 'Total / Free NVRAM', text
: scaleSize(nvstat
.size
) + ' / ' + scaleSize(nvstat
.free
) + ' <small>(' + (a
).toFixed(2) + '%)</small>' }
380 <div class='section' id='ports'
>
383 <div class='section-title' id='wan-title'
>WAN
<small><i><a href='javascript:toggleVisibility(
"wan");'
><span id='sesdiv_wan_showhide'
>(hide)
</span></a></i></small></div>
384 <div class='section' id='sesdiv_wan'
>
385 <script type='text/javascript'
>
386 createFieldTable('', [
387 { title
: 'MAC Address', text
: nvram
.wan_hwaddr
},
388 { title
: 'Connection Type', text
: { 'dhcp':'DHCP', 'static':'Static IP', 'pppoe':'PPPoE', 'pptp':'PPTP', 'l2tp':'L2TP', 'ppp3g':'3G Modem', 'lte':'4G/LTE' }[nvram
.wan_proto
] || '-' },
389 { title
: 'IP Address', rid
: 'wanip', text
: stats
.wanip
},
390 { title
: 'Previous WAN IP', rid
: 'wanprebuf', text
: stats
.wanprebuf
, hidden
: ((nvram
.wan_proto
!= 'pppoe') && (nvram
.wan_proto
!= 'pptp') && (nvram
.wan_proto
!= 'l2tp') && (nvram
.wan_proto
!= 'ppp3g')) }, //Victek
391 { title
: 'Subnet Mask', rid
: 'wannetmask', text
: stats
.wannetmask
},
392 { title
: 'Gateway', rid
: 'wangateway', text
: stats
.wangateway
},
394 { title
: 'IPv6 Address', rid
: 'ip6_wan', text
: stats
.ip6_wan
, hidden
: (stats
.ip6_wan
== '') },
396 { title
: 'DNS', rid
: 'dns', text
: stats
.dns
},
397 { title
: 'MTU', text
: nvram
.wan_run_mtu
},
399 { title
: 'Status', rid
: 'wanstatus', text
: stats
.wanstatus
},
400 { title
: 'Connection Uptime', rid
: 'wanuptime', text
: stats
.wanuptime
},
401 { title
: 'Remaining Lease Time', rid
: 'wanlease', text
: stats
.wanlease
, ignore
: !show_dhcpc
}
404 <span id='b_dhcpc' style='display:none'
>
405 <input type='button' class='controls' onclick='dhcpc(
"renew")' value='Renew'
>
406 <input type='button' class='controls' onclick='dhcpc(
"release")' value='Release'
>
408 <input type='button' class='controls' onclick='wan_connect()' value='Connect' id='b_connect' style='display:none'
>
409 <input type='button' class='controls' onclick='wan_disconnect()' value='Disconnect' id='b_disconnect' style='display:none'
>
413 <div class='section-title'
>LAN
<small><i><a href='javascript:toggleVisibility(
"lan");'
><span id='sesdiv_lan_showhide'
>(hide)
</span></a></i></small></div>
414 <div class='section' id='sesdiv_lan'
>
415 <script type='text/javascript'
>
417 function h_countbitsfromleft(num
) {
424 if (num
== (bitpat
& 0xff)){
433 function numberOfBitsOnNetMask(netmask
) {
435 var t
= netmask
.split('.');
436 for (var i
= 0; i
<= 3 ; i
++) {
437 total
+= h_countbitsfromleft(t
[i
]);
444 for (var i
= 0 ; i
<= MAX_BRIDGE_ID
; i
++) {
445 var j
= (i
== 0) ? '' : i
.toString();
446 if (nvram
['lan' + j
+ '_ifname'].length
> 0) {
447 if (nvram
['lan' + j
+ '_proto'] == 'dhcp') {
448 if ((!fixIP(nvram
.dhcpd_startip
)) || (!fixIP(nvram
.dhcpd_endip
))) {
449 var x
= nvram
['lan' + j
+ '_ipaddr'].split('.').splice(0, 3).join('.') + '.';
450 nvram
['dhcpd' + j
+ '_startip'] = x
+ nvram
['dhcp' + j
+ '_start'];
451 nvram
['dhcpd' + j
+ '_endip'] = x
+ ((nvram
['dhcp' + j
+ '_start'] * 1) + (nvram
['dhcp' + j
+ '_num'] * 1) - 1);
453 s
+= ((s
.length
>0)&&(s
.charAt(s
.length
-1) != ' ')) ? '<br>' : '';
454 s
+= '<b>br' + i
+ '</b> (LAN' + j
+ ') - ' + nvram
['dhcpd' + j
+ '_startip'] + ' - ' + nvram
['dhcpd' + j
+ '_endip'];
456 s
+= ((s
.length
>0)&&(s
.charAt(s
.length
-1) != ' ')) ? '<br>' : '';
457 s
+= '<b>br' + i
+ '</b> (LAN' + j
+ ') - Disabled';
459 t
+= ((t
.length
>0)&&(t
.charAt(t
.length
-1) != ' ')) ? '<br>' : '';
460 t
+= '<b>br' + i
+ '</b> (LAN' + j
+ ') - ' + nvram
['lan' + j
+ '_ipaddr'] + '/' + numberOfBitsOnNetMask(nvram
['lan' + j
+ '_netmask']);
465 createFieldTable('', [
466 { title
: 'Router MAC Address', text
: nvram
.et0macaddr
},
467 { title
: 'Router IP Addresses', text
: t
},
468 { title
: 'Gateway', text
: nvram
.lan_gateway
, ignore
: nvram
.wan_proto
!= 'disabled' },
470 { title
: 'Router IPv6 Address', rid
: 'ip6_lan', text
: stats
.ip6_lan
, hidden
: (stats
.ip6_lan
== '') },
471 { title
: 'IPv6 Link-local Address', rid
: 'ip6_lan_ll', text
: stats
.ip6_lan_ll
, hidden
: (stats
.ip6_lan_ll
== '') },
473 { title
: 'DNS', rid
: 'dns', text
: stats
.dns
, ignore
: nvram
.wan_proto
!= 'disabled' },
474 { title
: 'DHCP', text
: s
}
480 <script type='text/javascript'
>
481 for (var uidx
= 0; uidx
< wl_ifaces
.length
; ++uidx
) {
483 // u = wl_unit(uidx);
486 W('<div class=\'section-title\' id=\'wl'+u
+'-title\'>Wireless');
487 if (wl_ifaces
.length
> 0)
488 W(' (' + wl_display_ifname(uidx
) + ')');
489 W(' <small><i><a href=\'javascript:toggleVisibility("wl_' + u
+ '");\'><span id=\'sesdiv_wl_' +u
+ '_showhide\'>(hide)</span></a></i></small>');
491 W('<div class=\'section\' id=\'sesdiv_wl_'+u
+'\'>');
492 sec
= auth
[nvram
['wl'+u
+'_security_mode']] + '';
493 if (sec
.indexOf('WPA') != -1) sec
+= ' + ' + enc
[nvram
['wl'+u
+'_crypto']];
495 wmode
= wmo
[nvram
['wl'+u
+'_mode']] + '';
496 if ((nvram
['wl'+u
+'_mode'] == 'ap') && (nvram
['wl'+u
+'_wds_enable'] * 1)) wmode
+= ' + WDS';
498 createFieldTable('', [
499 { title
: 'MAC Address', text
: nvram
['wl'+u
+'_hwaddr'] },
500 { title
: 'Wireless Mode', text
: wmode
},
501 { title
: 'Wireless Network Mode', text
: bgmo
[nvram
['wl'+u
+'_net_mode']], ignore
: (wl_sunit(uidx
)>=0) },
502 { title
: 'Interface Status', rid
: 'ifstatus'+uidx
, text
: wlstats
[uidx
].ifstatus
},
503 { title
: 'Radio', rid
: 'radio'+uidx
, text
: (wlstats
[uidx
].radio
== 0) ? '<b>Disabled</b>' : 'Enabled', ignore
: (wl_sunit(uidx
)>=0) },
505 // { title: 'SSID', text: (nvram['wl'+u+'_ssid'] + ' <small><i>' + ((nvram['wl'+u+'_mode'] != 'ap') ? '' : ((nvram['wl'+u+'_closed'] == 0) ? '(Broadcast Enabled)' : '(Broadcast Disabled)')) + '</i></small>') },
507 { title
: 'SSID', text
: nvram
['wl'+u
+'_ssid'] },
508 { title
: 'Broadcast', text
: (nvram
['wl'+u
+'_closed'] == 0) ? 'Enabled' : '<b>Disabled</b>', ignore
: (nvram
['wl'+u
+'_mode'] != 'ap') },
509 { title
: 'Security', text
: sec
},
510 { title
: 'Channel', rid
: 'channel'+uidx
, text
: stats
.channel
[uidx
], ignore
: (wl_sunit(uidx
)>=0) },
511 { title
: 'Channel Width', rid
: 'nbw'+uidx
, text
: wlstats
[uidx
].nbw
, ignore
: ((!nphy
) || (wl_sunit(uidx
)>=0)) },
512 { title
: 'Interference Level', rid
: 'interference'+uidx
, text
: stats
.interference
[uidx
], hidden
: ((stats
.interference
[uidx
] == '') || (wl_sunit(uidx
)>=0)) },
513 { title
: 'Rate', rid
: 'rate'+uidx
, text
: wlstats
[uidx
].rate
, ignore
: (wl_sunit(uidx
)>=0) },
514 { title
: 'RSSI', rid
: 'rssi'+uidx
, text
: wlstats
[uidx
].rssi
|| '', ignore
: ((!wlstats
[uidx
].client
) || (wl_sunit(uidx
)>=0)) },
515 { title
: 'Noise', rid
: 'noise'+uidx
, text
: wlstats
[uidx
].noise
|| '', ignore
: ((!wlstats
[uidx
].client
) || (wl_sunit(uidx
)>=0)) },
516 { title
: 'Signal Quality', rid
: 'qual'+uidx
, text
: stats
.qual
[uidx
] || '', ignore
: ((!wlstats
[uidx
].client
) || (wl_sunit(uidx
)>=0)) }
519 W('<input type=\'button\' class=\'controls\' onclick=\'wlenable('+uidx
+', 1)\' id=\'b_wl'+uidx
+'_enable\' value=\'Enable\' style=\'display:none\'>');
520 W('<input type=\'button\' class=\'controls\' onclick=\'wlenable('+uidx
+', 0)\' id=\'b_wl'+uidx
+'_disable\' value=\'Disable\' style=\'display:none\'>');
529 <tr><td id='footer' colspan=
2>
530 <script type='text/javascript'
>genStdRefresh(1,0,'ref.toggle()');</script>
534 <script type='text/javascript'
>earlyInit()</script>