FEATURE: support user local switching to RTL correctly
FEATURE: support RTL in multisite
This commit is contained in:
parent
8013b6a511
commit
45bdd23689
|
@ -0,0 +1,2 @@
|
||||||
|
// stub file used to clean up asset precompilation process
|
||||||
|
@import "desktop";
|
|
@ -0,0 +1,2 @@
|
||||||
|
// stub file used to clean up asset precompilation process
|
||||||
|
@import "mobile";
|
|
@ -106,6 +106,16 @@ module ApplicationHelper
|
||||||
current_user.try(:staff?)
|
current_user.try(:staff?)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def rtl?
|
||||||
|
["ar", "fa_IR", "he"].include?(user_locale)
|
||||||
|
end
|
||||||
|
|
||||||
|
def user_locale
|
||||||
|
locale = current_user.locale if current_user && SiteSetting.allow_user_locale
|
||||||
|
# changing back to default shoves a blank string there
|
||||||
|
locale.present? ? locale : SiteSetting.default_locale
|
||||||
|
end
|
||||||
|
|
||||||
# Creates open graph and twitter card meta data
|
# Creates open graph and twitter card meta data
|
||||||
def crawlable_meta_data(opts=nil)
|
def crawlable_meta_data(opts=nil)
|
||||||
|
|
||||||
|
|
|
@ -1,4 +1,8 @@
|
||||||
<%= DiscourseStylesheets.stylesheet_link_tag(mobile_view? ? :mobile : :desktop) %>
|
<%- if rtl? %>
|
||||||
|
<%= DiscourseStylesheets.stylesheet_link_tag(mobile_view? ? :mobile_rtl : :desktop_rtl) %>
|
||||||
|
<%- else %>
|
||||||
|
<%= DiscourseStylesheets.stylesheet_link_tag(mobile_view? ? :mobile : :desktop) %>
|
||||||
|
<%- end %>
|
||||||
|
|
||||||
<%- if staff? %>
|
<%- if staff? %>
|
||||||
<%= stylesheet_link_tag "admin"%>
|
<%= stylesheet_link_tag "admin"%>
|
||||||
|
|
|
@ -63,10 +63,8 @@ class DiscourseSassCompiler
|
||||||
}
|
}
|
||||||
}.merge(debug_opts)).render
|
}.merge(debug_opts)).render
|
||||||
|
|
||||||
# Check if CSS needs to be RTLed after compilation
|
|
||||||
# and run R2 gem on compiled CSS if true and R2 gem is available
|
|
||||||
css_output = css
|
css_output = css
|
||||||
if !SiteSetting.allow_user_locale && SiteSetting.default_locale.in?(%w(he ar fa_IR))
|
if opts[:rtl]
|
||||||
begin
|
begin
|
||||||
require 'r2'
|
require 'r2'
|
||||||
css_output = R2.r2(css) if defined?(R2)
|
css_output = R2.r2(css) if defined?(R2)
|
||||||
|
|
|
@ -91,8 +91,9 @@ class DiscourseStylesheets
|
||||||
end
|
end
|
||||||
|
|
||||||
scss = File.read("#{Rails.root}/app/assets/stylesheets/#{@target}.scss")
|
scss = File.read("#{Rails.root}/app/assets/stylesheets/#{@target}.scss")
|
||||||
|
rtl = @target.to_s =~ /_rtl$/
|
||||||
css = begin
|
css = begin
|
||||||
DiscourseSassCompiler.compile(scss, @target)
|
DiscourseSassCompiler.compile(scss, @target, rtl: rtl)
|
||||||
rescue Sass::SyntaxError => e
|
rescue Sass::SyntaxError => e
|
||||||
Rails.logger.error "Stylesheet failed to compile for '#{@target}'! Recompiling without plugins and theming."
|
Rails.logger.error "Stylesheet failed to compile for '#{@target}'! Recompiling without plugins and theming."
|
||||||
Rails.logger.error e.sass_backtrace_str("#{@target} stylesheet")
|
Rails.logger.error e.sass_backtrace_str("#{@target} stylesheet")
|
||||||
|
|
|
@ -78,7 +78,7 @@ task 'assets:precompile:css' => 'environment' do
|
||||||
# css will get precompiled during first request instead in that case.
|
# css will get precompiled during first request instead in that case.
|
||||||
if ActiveRecord::Base.connection.table_exists?(ColorScheme.table_name)
|
if ActiveRecord::Base.connection.table_exists?(ColorScheme.table_name)
|
||||||
puts "Compiling css for #{db}"
|
puts "Compiling css for #{db}"
|
||||||
[:desktop, :mobile].each do |target|
|
[:desktop, :mobile, :desktop_rtl, :mobile_rtl].each do |target|
|
||||||
puts DiscourseStylesheets.compile(target)
|
puts DiscourseStylesheets.compile(target)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
Loading…
Reference in New Issue