Add theme identifier to body classes for easier custom CSS styling (#8439)
Add forgotten custom CSS admin setting strings
This commit is contained in:
		@@ -27,11 +27,6 @@ module ApplicationHelper
 | 
			
		||||
    Setting.open_deletion
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  def add_rtl_body_class(other_classes)
 | 
			
		||||
    other_classes = "#{other_classes} rtl" if locale_direction == 'rtl'
 | 
			
		||||
    other_classes
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  def locale_direction
 | 
			
		||||
    if [:ar, :fa, :he].include?(I18n.locale)
 | 
			
		||||
      'rtl'
 | 
			
		||||
@@ -77,4 +72,13 @@ module ApplicationHelper
 | 
			
		||||
  def react_component(name, props = {})
 | 
			
		||||
    content_tag(:div, nil, data: { component: name.to_s.camelcase, props: Oj.dump(props) })
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  def body_classes
 | 
			
		||||
    output = (@body_classes || '').split(' ')
 | 
			
		||||
    output << "theme-#{current_theme.parameterize}"
 | 
			
		||||
    output << 'system-font' if current_account&.user&.setting_system_font_ui
 | 
			
		||||
    output << current_account&.user&.setting_reduce_motion ? 'reduce-motion' : 'no-reduce-motion'
 | 
			
		||||
    output << 'rtl' if locale_direction == 'rtl'
 | 
			
		||||
    output.reject(&:blank?).join(' ')
 | 
			
		||||
  end
 | 
			
		||||
end
 | 
			
		||||
 
 | 
			
		||||
@@ -24,9 +24,5 @@
 | 
			
		||||
 | 
			
		||||
    = yield :header_tags
 | 
			
		||||
 | 
			
		||||
  - body_classes ||= @body_classes || ''
 | 
			
		||||
  - body_classes += ' system-font' if current_account&.user&.setting_system_font_ui
 | 
			
		||||
  - body_classes += current_account&.user&.setting_reduce_motion ? ' reduce-motion' : ' no-reduce-motion'
 | 
			
		||||
 | 
			
		||||
  %body{ class: add_rtl_body_class(body_classes) }
 | 
			
		||||
  %body{ class: body_classes }
 | 
			
		||||
    = content_for?(:content) ? yield(:content) : yield
 | 
			
		||||
 
 | 
			
		||||
@@ -350,6 +350,9 @@ en:
 | 
			
		||||
      contact_information:
 | 
			
		||||
        email: Business e-mail
 | 
			
		||||
        username: Contact username
 | 
			
		||||
      custom_css:
 | 
			
		||||
        desc_html: Modify the look with CSS loaded on every page
 | 
			
		||||
        title: Custom CSS
 | 
			
		||||
      hero:
 | 
			
		||||
        desc_html: Displayed on the frontpage. At least 600x100px recommended. When not set, falls back to instance thumbnail
 | 
			
		||||
        title: Hero image
 | 
			
		||||
 
 | 
			
		||||
@@ -17,7 +17,7 @@ describe ApplicationHelper do
 | 
			
		||||
    end
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  describe 'add_rtl_body_class' do
 | 
			
		||||
  describe 'locale_direction' do
 | 
			
		||||
    around do |example|
 | 
			
		||||
      current_locale = I18n.locale
 | 
			
		||||
      example.run
 | 
			
		||||
@@ -26,22 +26,22 @@ describe ApplicationHelper do
 | 
			
		||||
 | 
			
		||||
    it 'adds rtl body class if locale is Arabic' do
 | 
			
		||||
      I18n.locale = :ar
 | 
			
		||||
      expect(helper.add_rtl_body_class('other classes')).to eq 'other classes rtl'
 | 
			
		||||
      expect(helper.locale_direction).to eq 'rtl'
 | 
			
		||||
    end
 | 
			
		||||
 | 
			
		||||
    it 'adds rtl body class if locale is Farsi' do
 | 
			
		||||
      I18n.locale = :fa
 | 
			
		||||
      expect(helper.add_rtl_body_class('other classes')).to eq 'other classes rtl'
 | 
			
		||||
      expect(helper.locale_direction).to eq 'rtl'
 | 
			
		||||
    end
 | 
			
		||||
 | 
			
		||||
    it 'adds rtl if locale is Hebrew' do
 | 
			
		||||
      I18n.locale = :he
 | 
			
		||||
      expect(helper.add_rtl_body_class('other classes')).to eq 'other classes rtl'
 | 
			
		||||
      expect(helper.locale_direction).to eq 'rtl'
 | 
			
		||||
    end
 | 
			
		||||
 | 
			
		||||
    it 'does not add rtl if locale is Thai' do
 | 
			
		||||
      I18n.locale = :th
 | 
			
		||||
      expect(helper.add_rtl_body_class('other classes')).to eq 'other classes'
 | 
			
		||||
      expect(helper.locale_direction).to_not eq 'rtl'
 | 
			
		||||
    end
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user