UX: Improve safe-mode usability (#17929)

- `no_custom` -> `no_themes` (history: before themes existed, we had a similar tool called 'customizations')
- `only_official` -> `no_unofficial_plugins` (matches format of `no_themes` and `no_plugins`, and makes it clear that this doesn't affect themes)
- `?safe_mode=no_themes%2C%no_plugins` -> `?safe_mode=no_themes,no_plugins` (the query portion of a URL does not require commas to be encoded. This is much nicer to read)
- If `no_plugins` is chosen from `/safe-mode` the URL generated will omit the superfluous `no_unofficial_plugins` flag
- Some tweaks to copy on `/safe-mode`
This commit is contained in:
David Taylor
2022-08-15 15:15:15 +01:00
committed by GitHub
parent a9e9adf253
commit 64a66cf82b
6 changed files with 33 additions and 24 deletions

View File

@ -12,12 +12,17 @@ class SafeModeController < ApplicationController
def enter
safe_mode = []
safe_mode << "no_custom" if params["no_customizations"] == "true"
safe_mode << "no_plugins" if params["no_plugins"] == "true"
safe_mode << "only_official" if params["only_official"] == "true"
safe_mode << "no_themes" if params["no_themes"] == "true"
if params["no_plugins"] == "true"
safe_mode << "no_plugins"
elsif params["no_unofficial_plugins"] == "true"
safe_mode << "no_unofficial_plugins"
end
if safe_mode.length > 0
redirect_to path("/?safe_mode=#{safe_mode.join("%2C")}")
redirect_to path("/?safe_mode=#{safe_mode.join(",")}")
else
flash[:must_select] = true
redirect_to safe_mode_path
@ -31,7 +36,7 @@ class SafeModeController < ApplicationController
end
def force_safe_mode_for_route
request.env[ApplicationController::NO_CUSTOM] = true
request.env[ApplicationController::NO_THEMES] = true
request.env[ApplicationController::NO_PLUGINS] = true
end