mirror of
https://github.com/discourse/discourse.git
synced 2025-05-23 13:31:18 +08:00
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:
@ -444,19 +444,23 @@ class ApplicationController < ActionController::Base
|
||||
session[:mobile_view] = params[:mobile_view] if params.has_key?(:mobile_view)
|
||||
end
|
||||
|
||||
NO_CUSTOM = "no_custom"
|
||||
NO_THEMES = "no_themes"
|
||||
NO_PLUGINS = "no_plugins"
|
||||
ONLY_OFFICIAL = "only_official"
|
||||
NO_UNOFFICIAL_PLUGINS = "no_unofficial_plugins"
|
||||
SAFE_MODE = "safe_mode"
|
||||
|
||||
LEGACY_NO_THEMES = "no_custom"
|
||||
LEGACY_NO_UNOFFICIAL_PLUGINS = "only_official"
|
||||
|
||||
def resolve_safe_mode
|
||||
return unless guardian.can_enable_safe_mode?
|
||||
|
||||
safe_mode = params[SAFE_MODE]
|
||||
if safe_mode
|
||||
request.env[NO_CUSTOM] = !!safe_mode.include?(NO_CUSTOM)
|
||||
request.env[NO_PLUGINS] = !!safe_mode.include?(NO_PLUGINS)
|
||||
request.env[ONLY_OFFICIAL] = !!safe_mode.include?(ONLY_OFFICIAL)
|
||||
if safe_mode&.is_a?(String)
|
||||
safe_mode = safe_mode.split(",")
|
||||
request.env[NO_THEMES] = safe_mode.include?(NO_THEMES) || safe_mode.include?(LEGACY_NO_THEMES)
|
||||
request.env[NO_PLUGINS] = safe_mode.include?(NO_PLUGINS)
|
||||
request.env[NO_UNOFFICIAL_PLUGINS] = safe_mode.include?(NO_UNOFFICIAL_PLUGINS) || safe_mode.include?(LEGACY_NO_UNOFFICIAL_PLUGINS)
|
||||
end
|
||||
end
|
||||
|
||||
@ -464,7 +468,7 @@ class ApplicationController < ActionController::Base
|
||||
return if request.format == "js"
|
||||
|
||||
resolve_safe_mode
|
||||
return if request.env[NO_CUSTOM]
|
||||
return if request.env[NO_THEMES]
|
||||
|
||||
theme_id = nil
|
||||
|
||||
|
Reference in New Issue
Block a user