Fix toggle_theme when visiting preferences with JS disabled
This commit is contained in:
parent
d6ec441c8e
commit
352e409a6e
|
@ -1487,7 +1487,7 @@ end
|
|||
|
||||
get "/toggle_theme" do |env|
|
||||
locale = LOCALES[env.get("preferences").as(Preferences).locale]?
|
||||
referer = get_referer(env)
|
||||
referer = get_referer(env, unroll: false)
|
||||
|
||||
redirect = env.params.query["redirect"]?
|
||||
redirect ||= "true"
|
||||
|
|
|
@ -243,7 +243,7 @@ def make_host_url(config, kemal_config)
|
|||
return "#{scheme}#{host}#{port}"
|
||||
end
|
||||
|
||||
def get_referer(env, fallback = "/")
|
||||
def get_referer(env, fallback = "/", unroll = true)
|
||||
referer = env.params.query["referer"]?
|
||||
referer ||= env.request.headers["referer"]?
|
||||
referer ||= fallback
|
||||
|
@ -251,6 +251,7 @@ def get_referer(env, fallback = "/")
|
|||
referer = URI.parse(referer)
|
||||
|
||||
# "Unroll" nested referrers
|
||||
if unroll
|
||||
loop do
|
||||
if referer.query
|
||||
params = HTTP::Params.parse(referer.query.not_nil!)
|
||||
|
@ -263,6 +264,7 @@ def get_referer(env, fallback = "/")
|
|||
break
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
referer = referer.full_path
|
||||
referer = "/" + referer.lstrip("\/\\")
|
||||
|
|
Loading…
Reference in a new issue