Skip to content
Extraits de code Groupes Projets
Non vérifiée Valider 22e46eba rédigé par Eugen Rochko's avatar Eugen Rochko Validation de GitHub
Parcourir les fichiers

Add theme identifier to body classes for easier custom CSS styling (#8439)

Add forgotten custom CSS admin setting strings
parent cd049454
Aucune branche associée trouvée
Aucune étiquette associée trouvée
Aucune requête de fusion associée trouvée
......@@ -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
......
0% Chargement en cours ou .
You are about to add 0 people to the discussion. Proceed with caution.
Veuillez vous inscrire ou vous pour commenter