Add theme identifier to body classes for easier custom CSS styling (#8439)
Add forgotten custom CSS admin setting strings
This commit is contained in:
		
							parent
							
								
									cd049454be
								
							
						
					
					
						commit
						22e46ebad8
					
				
					 4 changed files with 18 additions and 15 deletions
				
			
		|  | @ -27,11 +27,6 @@ module ApplicationHelper | ||||||
|     Setting.open_deletion |     Setting.open_deletion | ||||||
|   end |   end | ||||||
| 
 | 
 | ||||||
|   def add_rtl_body_class(other_classes) |  | ||||||
|     other_classes = "#{other_classes} rtl" if locale_direction == 'rtl' |  | ||||||
|     other_classes |  | ||||||
|   end |  | ||||||
| 
 |  | ||||||
|   def locale_direction |   def locale_direction | ||||||
|     if [:ar, :fa, :he].include?(I18n.locale) |     if [:ar, :fa, :he].include?(I18n.locale) | ||||||
|       'rtl' |       'rtl' | ||||||
|  | @ -77,4 +72,13 @@ module ApplicationHelper | ||||||
|   def react_component(name, props = {}) |   def react_component(name, props = {}) | ||||||
|     content_tag(:div, nil, data: { component: name.to_s.camelcase, props: Oj.dump(props) }) |     content_tag(:div, nil, data: { component: name.to_s.camelcase, props: Oj.dump(props) }) | ||||||
|   end |   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 | end | ||||||
|  |  | ||||||
|  | @ -24,9 +24,5 @@ | ||||||
| 
 | 
 | ||||||
|     = yield :header_tags |     = yield :header_tags | ||||||
| 
 | 
 | ||||||
|   - body_classes ||= @body_classes || '' |   %body{ class: 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) } |  | ||||||
|     = content_for?(:content) ? yield(:content) : yield |     = content_for?(:content) ? yield(:content) : yield | ||||||
|  |  | ||||||
|  | @ -350,6 +350,9 @@ en: | ||||||
|       contact_information: |       contact_information: | ||||||
|         email: Business e-mail |         email: Business e-mail | ||||||
|         username: Contact username |         username: Contact username | ||||||
|  |       custom_css: | ||||||
|  |         desc_html: Modify the look with CSS loaded on every page | ||||||
|  |         title: Custom CSS | ||||||
|       hero: |       hero: | ||||||
|         desc_html: Displayed on the frontpage. At least 600x100px recommended. When not set, falls back to instance thumbnail |         desc_html: Displayed on the frontpage. At least 600x100px recommended. When not set, falls back to instance thumbnail | ||||||
|         title: Hero image |         title: Hero image | ||||||
|  |  | ||||||
|  | @ -17,7 +17,7 @@ describe ApplicationHelper do | ||||||
|     end |     end | ||||||
|   end |   end | ||||||
| 
 | 
 | ||||||
|   describe 'add_rtl_body_class' do |   describe 'locale_direction' do | ||||||
|     around do |example| |     around do |example| | ||||||
|       current_locale = I18n.locale |       current_locale = I18n.locale | ||||||
|       example.run |       example.run | ||||||
|  | @ -26,22 +26,22 @@ describe ApplicationHelper do | ||||||
| 
 | 
 | ||||||
|     it 'adds rtl body class if locale is Arabic' do |     it 'adds rtl body class if locale is Arabic' do | ||||||
|       I18n.locale = :ar |       I18n.locale = :ar | ||||||
|       expect(helper.add_rtl_body_class('other classes')).to eq 'other classes rtl' |       expect(helper.locale_direction).to eq 'rtl' | ||||||
|     end |     end | ||||||
| 
 | 
 | ||||||
|     it 'adds rtl body class if locale is Farsi' do |     it 'adds rtl body class if locale is Farsi' do | ||||||
|       I18n.locale = :fa |       I18n.locale = :fa | ||||||
|       expect(helper.add_rtl_body_class('other classes')).to eq 'other classes rtl' |       expect(helper.locale_direction).to eq 'rtl' | ||||||
|     end |     end | ||||||
| 
 | 
 | ||||||
|     it 'adds rtl if locale is Hebrew' do |     it 'adds rtl if locale is Hebrew' do | ||||||
|       I18n.locale = :he |       I18n.locale = :he | ||||||
|       expect(helper.add_rtl_body_class('other classes')).to eq 'other classes rtl' |       expect(helper.locale_direction).to eq 'rtl' | ||||||
|     end |     end | ||||||
| 
 | 
 | ||||||
|     it 'does not add rtl if locale is Thai' do |     it 'does not add rtl if locale is Thai' do | ||||||
|       I18n.locale = :th |       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 | ||||||
|   end |   end | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		
		Reference in a new issue