diff --git a/package/gluon-web-wifi-config/i18n/de.po b/package/gluon-web-wifi-config/i18n/de.po index 65fe1cb8..76a5479b 100644 --- a/package/gluon-web-wifi-config/i18n/de.po +++ b/package/gluon-web-wifi-config/i18n/de.po @@ -71,3 +71,6 @@ msgstr "" msgid "HT Mode" msgstr "HT-Modus" + +msgid "Channel" +msgstr "Kanal" diff --git a/package/gluon-web-wifi-config/i18n/gluon-web-wifi-config.pot b/package/gluon-web-wifi-config/i18n/gluon-web-wifi-config.pot index fa8f1c0c..e342e805 100644 --- a/package/gluon-web-wifi-config/i18n/gluon-web-wifi-config.pot +++ b/package/gluon-web-wifi-config/i18n/gluon-web-wifi-config.pot @@ -50,3 +50,6 @@ msgstr "" msgid "HT Mode" msgstr "" + +msgid "Channel" +msgstr "" diff --git a/package/gluon-web-wifi-config/luasrc/lib/gluon/config-mode/model/admin/wifi-config.lua b/package/gluon-web-wifi-config/luasrc/lib/gluon/config-mode/model/admin/wifi-config.lua index c55e9015..7429e40d 100644 --- a/package/gluon-web-wifi-config/luasrc/lib/gluon/config-mode/model/admin/wifi-config.lua +++ b/package/gluon-web-wifi-config/luasrc/lib/gluon/config-mode/model/admin/wifi-config.lua @@ -128,6 +128,32 @@ uci:foreach('wireless', 'wifi-device', function(config) end uci:set('wireless', radio, 'txpower', data) end + + local conf + + if is_5ghz then + conf = site.wifi5 + else + conf = site.wifi24 + end + + if conf.channel_adjustable(false) then + local ch = p:option(ListValue, radio .. '_channel', translate("Channel")) + ch.default = uci:get('wireless', radio, 'channel') + + local defaultChannel = conf.channel() + + local phy = wireless.find_phy(uci:get_all('wireless', radio)) + local channels = iwinfo.nl80211.freqlist(phy) + + for _, entry in ipairs(channels) do + ch:value(entry.channel, string.format(entry.channel == defaultChannel and "%i " .. translate("(default)") or "%i", entry.channel)) + end + + function ch:write(data) + uci:set('wireless', radio, 'channel', data) + end + end end)