Files
discourse/app/controllers/admin/config/branding_controller.rb
Krzysztof Kotlarek dbba838ef4 FEATURE: rebranded admin logos settings (#31554)
Redesigned page to update site logos. `AdminBrandingLogoFormComponent`
is attached to the old logos page and the new branding page. In the next
steps, branding will replace the logos page.

A new `AdminConfigAreaCardSection` component was added hidden and less
frequently used settings.

An image placeholder was also needed because many additional logos have
a fallback to the site logo.

Finally, `twitter_summary_large_image` was renamed to
`x_summary_large_image`.

Desktop
![localhost_4200_admin_config_branding
(4)](https://github.com/user-attachments/assets/b6ae5266-72f6-4582-b0ef-4d05545943e8)


Mobile
![localhost_4200_admin_config_branding(iPhone 12 Pro)
(3)](https://github.com/user-attachments/assets/bf329a5c-9ba0-4d88-b30d-e8f1feb02e31)
2025-03-04 12:51:27 +11:00

44 lines
1.5 KiB
Ruby

# frozen_string_literal: true
class Admin::Config::BrandingController < Admin::AdminController
def index
end
def logo
SiteSetting::Update.call(
guardian:,
params: {
settings: {
logo: params[:logo],
logo_dark: params[:logo_dark],
large_icon: params[:large_icon],
favicon: params[:favicon],
logo_small: params[:logo_small],
logo_small_dark: params[:logo_small_dark],
mobile_logo: params[:mobile_logo],
mobile_logo_dark: params[:mobile_logo_dark],
manifest_icon: params[:manifest_icon],
manifest_screenshots: params[:manifest_screenshots],
apple_touch_icon: params[:apple_touch_icon],
digest_logo: params[:digest_logo],
opengraph_image: params[:opengraph_image],
x_summary_large_image: params[:x_summary_large_image],
},
},
) do
on_success { render json: success_json }
on_failed_policy(:settings_are_visible) do |policy|
raise Discourse::InvalidParameters, policy.reason
end
on_failed_policy(:settings_are_unshadowed_globally) do |policy|
raise Discourse::InvalidParameters, policy.reason
end
on_failed_policy(:settings_are_configurable) do |policy|
raise Discourse::InvalidParameters, policy.reason
end
on_failed_policy(:values_are_valid) do |policy|
raise Discourse::InvalidParameters, policy.reason
end
end
end
end