Add admin custom CSS setting (#8399)
Fix #3894remotes/1727458204337373841/tmp_refs/heads/signup-info-prompt
parent
23752639b2
commit
a2cabf3f4a
|
@ -24,6 +24,7 @@ module Admin
|
||||||
peers_api_enabled
|
peers_api_enabled
|
||||||
show_known_fediverse_at_about_page
|
show_known_fediverse_at_about_page
|
||||||
preview_sensitive_media
|
preview_sensitive_media
|
||||||
|
custom_css
|
||||||
).freeze
|
).freeze
|
||||||
|
|
||||||
BOOLEAN_SETTINGS = %w(
|
BOOLEAN_SETTINGS = %w(
|
||||||
|
|
|
@ -0,0 +1,10 @@
|
||||||
|
# frozen_string_literal: true
|
||||||
|
|
||||||
|
class CustomCssController < ApplicationController
|
||||||
|
before_action :set_cache_headers
|
||||||
|
|
||||||
|
def show
|
||||||
|
skip_session!
|
||||||
|
render plain: Setting.custom_css || '', content_type: 'text/css'
|
||||||
|
end
|
||||||
|
end
|
|
@ -621,3 +621,14 @@ code {
|
||||||
.scope-danger {
|
.scope-danger {
|
||||||
color: $warning-red;
|
color: $warning-red;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.form_admin_settings_site_short_description,
|
||||||
|
.form_admin_settings_site_description,
|
||||||
|
.form_admin_settings_site_extended_description,
|
||||||
|
.form_admin_settings_site_terms,
|
||||||
|
.form_admin_settings_custom_css,
|
||||||
|
.form_admin_settings_closed_registrations_message {
|
||||||
|
textarea {
|
||||||
|
font-family: 'mastodon-font-monospace', monospace;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
|
@ -42,6 +42,8 @@ class Form::AdminSettings
|
||||||
:show_known_fediverse_at_about_page=,
|
:show_known_fediverse_at_about_page=,
|
||||||
:preview_sensitive_media,
|
:preview_sensitive_media,
|
||||||
:preview_sensitive_media=,
|
:preview_sensitive_media=,
|
||||||
|
:custom_css,
|
||||||
|
:custom_css=,
|
||||||
to: Setting
|
to: Setting
|
||||||
)
|
)
|
||||||
end
|
end
|
||||||
|
|
|
@ -14,7 +14,7 @@ class InstancePresenter
|
||||||
)
|
)
|
||||||
|
|
||||||
def contact_account
|
def contact_account
|
||||||
Account.find_local(Setting.site_contact_username)
|
Account.find_local(Setting.site_contact_username.gsub(/\A@/, ''))
|
||||||
end
|
end
|
||||||
|
|
||||||
def user_count
|
def user_count
|
||||||
|
|
|
@ -49,7 +49,7 @@
|
||||||
.fields-group
|
.fields-group
|
||||||
= f.input :site_extended_description, wrapper: :with_block_label, as: :text, label: t('admin.settings.site_description_extended.title'), hint: t('admin.settings.site_description_extended.desc_html'), input_html: { rows: 8 }
|
= f.input :site_extended_description, wrapper: :with_block_label, as: :text, label: t('admin.settings.site_description_extended.title'), hint: t('admin.settings.site_description_extended.desc_html'), input_html: { rows: 8 }
|
||||||
= f.input :site_terms, wrapper: :with_block_label, as: :text, label: t('admin.settings.site_terms.title'), hint: t('admin.settings.site_terms.desc_html'), input_html: { rows: 8 }
|
= f.input :site_terms, wrapper: :with_block_label, as: :text, label: t('admin.settings.site_terms.title'), hint: t('admin.settings.site_terms.desc_html'), input_html: { rows: 8 }
|
||||||
|
= f.input :custom_css, wrapper: :with_block_label, as: :text, input_html: { rows: 8 }, label: t('admin.settings.custom_css.title'), hint: t('admin.settings.custom_css.desc_html')
|
||||||
%hr/
|
%hr/
|
||||||
|
|
||||||
.fields-group
|
.fields-group
|
||||||
|
|
|
@ -19,6 +19,9 @@
|
||||||
= javascript_pack_tag "locale_#{I18n.locale}", integrity: true, crossorigin: 'anonymous'
|
= javascript_pack_tag "locale_#{I18n.locale}", integrity: true, crossorigin: 'anonymous'
|
||||||
= csrf_meta_tags
|
= csrf_meta_tags
|
||||||
|
|
||||||
|
- if Setting.custom_css.present?
|
||||||
|
= stylesheet_link_tag custom_css_path, media: 'all'
|
||||||
|
|
||||||
= yield :header_tags
|
= yield :header_tags
|
||||||
|
|
||||||
- body_classes ||= @body_classes || ''
|
- body_classes ||= @body_classes || ''
|
||||||
|
|
|
@ -23,6 +23,7 @@ Rails.application.routes.draw do
|
||||||
get '.well-known/webfinger', to: 'well_known/webfinger#show', as: :webfinger
|
get '.well-known/webfinger', to: 'well_known/webfinger#show', as: :webfinger
|
||||||
get 'manifest', to: 'manifests#show', defaults: { format: 'json' }
|
get 'manifest', to: 'manifests#show', defaults: { format: 'json' }
|
||||||
get 'intent', to: 'intents#show'
|
get 'intent', to: 'intents#show'
|
||||||
|
get 'custom.css', to: 'custom_css#show', as: :custom_css
|
||||||
|
|
||||||
devise_scope :user do
|
devise_scope :user do
|
||||||
get '/invite/:invite_code', to: 'auth/registrations#new', as: :public_invite
|
get '/invite/:invite_code', to: 'auth/registrations#new', as: :public_invite
|
||||||
|
|
Loading…
Reference in New Issue