luci-mod-admin-full: reload wifi settings page after changing countey code

Reloading the page ensures that the allowed tx power values and channel select
lists are properly populated with the new effective values.

Signed-off-by: Jo-Philipp Wich <jo@mein.io>
This commit is contained in:
Jo-Philipp Wich 2017-01-25 23:37:40 +01:00
parent dbbb3c7497
commit b5db545077

View file

@ -42,6 +42,9 @@ end
-- wireless toggle was requested, commit and reload page -- wireless toggle was requested, commit and reload page
function m.parse(map) function m.parse(map)
local new_cc = m:formvalue("cbid.wireless.%s.country" % wdev:name())
local old_cc = m:get(wdev:name(), "country")
if m:formvalue("cbid.wireless.%s.__toggle" % wdev:name()) then if m:formvalue("cbid.wireless.%s.__toggle" % wdev:name()) then
if wdev:get("disabled") == "1" or wnet:get("disabled") == "1" then if wdev:get("disabled") == "1" or wnet:get("disabled") == "1" then
wnet:set("disabled", nil) wnet:set("disabled", nil)
@ -56,7 +59,14 @@ function m.parse(map)
luci.http.redirect(luci.dispatcher.build_url("admin/network/wireless", arg[1])) luci.http.redirect(luci.dispatcher.build_url("admin/network/wireless", arg[1]))
return return
end end
Map.parse(map) Map.parse(map)
if m:get(wdev:name(), "type") == "mac80211" and new_cc and new_cc ~= old_cc then
luci.sys.call("iw reg set %q" % new_cc)
luci.http.redirect(luci.dispatcher.build_url("admin/network/wireless", arg[1]))
return
end
end end
m.title = luci.util.pcdata(wnet:get_i18n()) m.title = luci.util.pcdata(wnet:get_i18n())