mirror of
https://github.com/openwrt/luci.git
synced 2025-04-27 13:50:31 +00:00
* HTML Cleanup: Meta tags. * Converted charset to shorthand. * Removed meta tags with `Content-Script-Type` attribute. (Invalid in HTML5 spec.) * HTML Cleanup: CSS tags. * Removed `type` attribute with CSS files from link tags. (HTML5 spec recommends omitting it.) * Removed `type` attribute from style tags. (Deprecated in HTML5 spec.) https://html.spec.whatwg.org/#attr-link-type https://developer.mozilla.org/en-US/docs/Web/HTML/Element/style * HTML Cleanup: Convert from XHTML to HTML5 * Removed XML declaration. * Removed XML namespace. * Changed doctype to HTML5. * HTML Cleanup: CDATA tags. * CDATA sections should not be used within HTML they are considered as comments and not displayed. https://developer.mozilla.org/en-US/docs/Web/API/CDATASection * HTML Cleanup: Script tags. * Removed `language` attribute from script tags. (No longer valid in HTML5) * Removed `type` attribute with JavaScript MIME type from script tags. (HTML5 spec recommends omitting it.) https://html.spec.whatwg.org/multipage/scripting.html#attr-script-type https://mimesniff.spec.whatwg.org/#javascript-mime-type Signed-off-by: Mustafa Can Elmacı <mustafacan@elmaci.net>
202 lines
5.1 KiB
HTML
202 lines
5.1 KiB
HTML
<%+cbi/valueheader%>
|
|
|
|
<script>
|
|
var freqlist = <%= luci.http.write_json(self.iwinfo.freqlist) %>;
|
|
var hwmodes = <%= luci.http.write_json(self.iwinfo.hwmodelist or {}) %>;
|
|
var htmodes = <%= luci.http.write_json(self.iwinfo.htmodelist) %>;
|
|
var acs = <%= luci.http.write_json(self.hostapd_acs or 0) %>;
|
|
|
|
var channels = {
|
|
'11g': [
|
|
'auto', 'auto', true
|
|
],
|
|
'11a': [
|
|
'auto', 'auto', true
|
|
]
|
|
};
|
|
|
|
if (acs < 1) {
|
|
channels[(freqlist[freqlist.length - 1].mhz > 2484) ? '11a' : '11g'].length = 0;
|
|
}
|
|
|
|
for (var i = 0; i < freqlist.length; i++)
|
|
channels[(freqlist[i].mhz > 2484) ? '11a' : '11g'].push(
|
|
freqlist[i].channel,
|
|
'%d (%d MHz)'.format(freqlist[i].channel, freqlist[i].mhz),
|
|
!freqlist[i].restricted
|
|
);
|
|
|
|
var modes = [
|
|
'', 'Legacy', true,
|
|
'n', 'N', hwmodes.n,
|
|
'ac', 'AC', hwmodes.ac,
|
|
'ax', 'AX', hwmodes.ax,
|
|
'be', 'BE', hwmodes.be
|
|
];
|
|
|
|
var htmodes = {
|
|
'': [
|
|
'', '-', true
|
|
],
|
|
'n': [
|
|
'HT20', '20 MHz', htmodes.HT20,
|
|
'HT40', '40 MHz', htmodes.HT40
|
|
],
|
|
'ac': [
|
|
'VHT20', '20 MHz', htmodes.VHT20,
|
|
'VHT40', '40 MHz', htmodes.VHT40,
|
|
'VHT80', '80 MHz', htmodes.VHT80,
|
|
'VHT160', '160 MHz', htmodes.VHT160
|
|
],
|
|
'ax': [
|
|
'HE20', '20 MHz', htmodes.HE20,
|
|
'HE40', '40 MHz', htmodes.HE40,
|
|
'HE80', '80 MHz', htmodes.HE80,
|
|
'HE160', '160 MHz', htmodes.HE160
|
|
],
|
|
'be': [
|
|
'EHT20', '20 MHz', htmodes.EHT20,
|
|
'EHT40', '40 MHz', htmodes.EHT40,
|
|
'EHT80', '80 MHz', htmodes.EHT80,
|
|
'EHT160', '160 MHz', htmodes.EHT160,
|
|
'EHT320', '320 MHz', htmodes.EHT320
|
|
]
|
|
};
|
|
|
|
var bands = {
|
|
'': [
|
|
'11g', '2.4 GHz', (channels['11g'].length > 3),
|
|
'11a', '5 GHz', (channels['11a'].length > 3)
|
|
],
|
|
'n': [
|
|
'11g', '2.4 GHz', (channels['11g'].length > 3),
|
|
'11a', '5 GHz', (channels['11a'].length > 3)
|
|
],
|
|
'ac': [
|
|
'11a', '5 GHz', true
|
|
],
|
|
'ax': [
|
|
'11a', '2 GHz', true,
|
|
'11a', '5 GHz', true
|
|
],
|
|
'be': [
|
|
'11a', '2 GHz', true,
|
|
'11a', '5 GHz', true,
|
|
'11a', '6 GHz', true
|
|
]
|
|
};
|
|
|
|
function cbi_set_values(sel, vals)
|
|
{
|
|
if (sel.vals)
|
|
sel.vals.selected = sel.selectedIndex;
|
|
|
|
while (sel.options[0])
|
|
sel.remove(0);
|
|
|
|
for (var i = 0; vals && i < vals.length; i += 3)
|
|
{
|
|
if (!vals[i+2])
|
|
continue;
|
|
|
|
var opt = document.createElement('option');
|
|
opt.value = vals[i+0];
|
|
opt.text = vals[i+1];
|
|
|
|
sel.add(opt);
|
|
}
|
|
|
|
if (!isNaN(vals.selected))
|
|
sel.selectedIndex = vals.selected;
|
|
|
|
sel.parentNode.style.display = (sel.options.length <= 1) ? 'none' : '';
|
|
sel.vals = vals;
|
|
}
|
|
|
|
function cbi_toggle_wifi_mode(id)
|
|
{
|
|
cbi_toggle_wifi_htmode(id);
|
|
cbi_toggle_wifi_band(id);
|
|
}
|
|
|
|
function cbi_toggle_wifi_htmode(id)
|
|
{
|
|
var mode = document.getElementById(id + '.mode');
|
|
var bwdt = document.getElementById(id + '.htmode');
|
|
|
|
cbi_set_values(bwdt, htmodes[mode.value]);
|
|
}
|
|
|
|
function cbi_toggle_wifi_band(id)
|
|
{
|
|
var mode = document.getElementById(id + '.mode');
|
|
var band = document.getElementById(id + '.band');
|
|
|
|
cbi_set_values(band, bands[mode.value]);
|
|
cbi_toggle_wifi_channel(id);
|
|
}
|
|
|
|
function cbi_toggle_wifi_channel(id)
|
|
{
|
|
var band = document.getElementById(id + '.band');
|
|
var chan = document.getElementById(id + '.channel');
|
|
|
|
cbi_set_values(chan, channels[band.value]);
|
|
}
|
|
|
|
function cbi_init_wifi(id)
|
|
{
|
|
var mode = document.getElementById(id + '.mode');
|
|
var band = document.getElementById(id + '.band');
|
|
var chan = document.getElementById(id + '.channel');
|
|
var bwdt = document.getElementById(id + '.htmode');
|
|
|
|
cbi_set_values(mode, modes);
|
|
|
|
if (/EHT20|EHT40|EHT80|EHT160|EHT320/.test(<%= luci.http.write_json(self.map:get(section, "htmode")) %>))
|
|
mode.value = 'be';
|
|
else if (/HE20|HE40|HE80|HE160/.test(<%= luci.http.write_json(self.map:get(section, "htmode")) %>))
|
|
mode.value = 'ax';
|
|
else if (/VHT20|VHT40|VHT80|VHT160/.test(<%= luci.http.write_json(self.map:get(section, "htmode")) %>))
|
|
mode.value = 'ac';
|
|
else if (/HT20|HT40/.test(<%= luci.http.write_json(self.map:get(section, "htmode")) %>))
|
|
mode.value = 'n';
|
|
else
|
|
mode.value = '';
|
|
|
|
cbi_toggle_wifi_mode(id);
|
|
|
|
if (/a/.test(<%= luci.http.write_json(self.map:get(section, "hwmode")) %>))
|
|
band.value = '11a';
|
|
else
|
|
band.value = '11g';
|
|
|
|
cbi_toggle_wifi_band(id);
|
|
|
|
bwdt.value = <%= luci.http.write_json(self.map:get(section, "htmode")) %>;
|
|
chan.value = <%= luci.http.write_json(self.map:get(section, "channel")) %>;
|
|
}
|
|
</script>
|
|
|
|
<label style="float:left; margin-right:3px">
|
|
<%:Mode%><br />
|
|
<select style="width:auto" id="<%= cbid %>.mode" name="<%= cbid %>.mode" onchange="cbi_toggle_wifi_mode('<%= cbid %>')"></select>
|
|
</label>
|
|
<label style="float:left; margin-right:3px">
|
|
<%:Band%><br />
|
|
<select style="width:auto" id="<%= cbid %>.band" name="<%= cbid %>.band" onchange="cbi_toggle_wifi_band('<%= cbid %>')"></select>
|
|
</label>
|
|
<label style="float:left; margin-right:3px">
|
|
<%:Channel%><br />
|
|
<select style="width:auto" id="<%= cbid %>.channel" name="<%= cbid %>.channel"></select>
|
|
</label>
|
|
<label style="float:left; margin-right:3px">
|
|
<%:Width%><br />
|
|
<select style="width:auto" id="<%= cbid %>.htmode" name="<%= cbid %>.htmode"></select>
|
|
</label>
|
|
<br style="clear:left" />
|
|
|
|
<script>cbi_init_wifi('<%= cbid %>');</script>
|
|
|
|
<%+cbi/valuefooter%>
|