@@ -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(
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										10
									
								
								app/controllers/custom_css_controller.rb
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										10
									
								
								app/controllers/custom_css_controller.rb
									
									
									
									
									
										Normal file
									
								
							@@ -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
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user