2 Copyright
2008-
2009 Steven Barth
<steven@midlink.org
>
3 Copyright
2008-
2018 Jo-Philipp Wich
<jo@mein.io
>
4 Licensed to the public under the Apache License
2.0.
7 <script type=
"text/javascript">//<![CDATA[
8 function wifi_delete(ev) {
9 if (!confirm(<%=luci.http.write_json(translate('Really delete this wireless network? The deletion cannot be undone! You might lose access to this device if you are connected via this network.'))%
>)) {
14 ev.target.previousElementSibling.value = '
1';
18 function wifi_restart(ev) {
21 findParent(ev.target, '.table').querySelectorAll('[
data-disabled=
"false"]').forEach(function(s) {
22 s.innerHTML = '
<em><%:Wireless is restarting...%
></em>';
25 (new XHR()).post('<%=url('admin/network/wireless_reconnect')%
>/' + ev.target.getAttribute('data-radio'),
26 { token: '<%=token%
>' }, XHR.run);
29 function wifi_action(ev, action) {
31 e = i.getAttribute('data-radio');
33 i.parentNode.appendChild(E('input', { type: 'hidden', name: 'device', value: e }));
34 i.form.action = '<%=url('admin/network/wireless_')%
>' + action;
39 document.querySelectorAll('[data-network]').forEach(function(n) {
40 networks.push(n.getAttribute('data-network'));
43 XHR.poll(
5, '<%=url('admin/network/wireless_status')%
>/' + networks.join(','), null,
51 st.forEach(function(s) {
52 var r = radiostate[s.device.device] || (radiostate[s.device.device] = {});
54 s.is_assoc = (s.bssid && s.bssid != '
00:
00:
00:
00:
00:
00' && s.channel && s.mode != 'Unknown' && !s.disabled);
56 r.up = r.up || s.is_assoc;
57 r.channel = r.channel || s.channel;
58 r.bitrate = r.bitrate || s.bitrate;
59 r.frequency = r.frequency || s.frequency;
62 for( var i =
0; i < st.length; i++ )
65 sig = document.getElementById(iw.id + '-iw-signal'),
66 info = document.getElementById(iw.id + '-iw-status'),
67 disabled = (info && info.getAttribute('data-disabled') === 'true');
70 var q = disabled ? -
1 : p;
74 icon =
"<%=resource%>/icons/signal-none.png";
76 icon =
"<%=resource%>/icons/signal-0.png";
78 icon =
"<%=resource%>/icons/signal-0-25.png";
80 icon =
"<%=resource%>/icons/signal-25-50.png";
82 icon =
"<%=resource%>/icons/signal-50-75.png";
84 icon =
"<%=resource%>/icons/signal-75-100.png";
88 sig.innerHTML = String.format(
89 '
<span class=
"ifacebadge" title=
"<%:Signal%>: %d <%:dBm%> / <%:Noise%>: %d <%:dBm%>"><img src=
"%s" /> %d%%
</span>',
90 iw.signal, iw.noise, icon, p
96 info.innerHTML = String.format(
97 '
<strong><%:SSID%
>:
</strong> %h | ' +
98 '
<strong><%:Mode%
>:
</strong> %s
<br />' +
99 '
<strong><%:BSSID%
>:
</strong> %s | ' +
100 '
<strong><%:Encryption%
>:
</strong> %s',
101 iw.ssid, iw.mode, iw.bssid,
102 iw.encryption ? iw.encryption : '<%:None%
>'
105 info.innerHTML = String.format(
106 '
<strong><%:SSID%
>:
</strong> %h | ' +
107 '
<strong><%:Mode%
>:
</strong> %s
<br />' +
109 iw.ssid || '?', iw.mode,
110 disabled ? '
<em><%:Wireless is disabled%
></em>'
111 : '
<em><%:Wireless is not associated%
></em>'
116 for (var dev in radiostate)
118 var img = document.getElementById(dev + '-iw-upstate');
120 img.src = '<%=resource%
>/icons/wifi' + (radiostate[dev].up ? '' : '_disabled') + '.png';
122 var stat = document.getElementById(dev + '-iw-devinfo');
124 stat.innerHTML = String.format(
125 '
<strong><%:Channel%
>:
</strong> %s (%s <%:GHz%
>) | ' +
126 '
<strong><%:Bitrate%
>:
</strong> %s <%:Mbit/s%
>',
127 radiostate[dev].channel ? radiostate[dev].channel : '?',
128 radiostate[dev].frequency ? radiostate[dev].frequency : '?',
129 radiostate[dev].bitrate ? radiostate[dev].bitrate : '?'