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?)
|
||||
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
|
||||
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? %>
|
||||
<%= stylesheet_link_tag "admin"%>
|
||||
|
|
|
@ -63,10 +63,8 @@ class DiscourseSassCompiler
|
|||
}
|
||||
}.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
|
||||
if !SiteSetting.allow_user_locale && SiteSetting.default_locale.in?(%w(he ar fa_IR))
|
||||
if opts[:rtl]
|
||||
begin
|
||||
require 'r2'
|
||||
css_output = R2.r2(css) if defined?(R2)
|
||||
|
|
|
@ -91,8 +91,9 @@ class DiscourseStylesheets
|
|||
end
|
||||
|
||||
scss = File.read("#{Rails.root}/app/assets/stylesheets/#{@target}.scss")
|
||||
rtl = @target.to_s =~ /_rtl$/
|
||||
css = begin
|
||||
DiscourseSassCompiler.compile(scss, @target)
|
||||
DiscourseSassCompiler.compile(scss, @target, rtl: rtl)
|
||||
rescue Sass::SyntaxError => e
|
||||
Rails.logger.error "Stylesheet failed to compile for '#{@target}'! Recompiling without plugins and theming."
|
||||
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.
|
||||
if ActiveRecord::Base.connection.table_exists?(ColorScheme.table_name)
|
||||
puts "Compiling css for #{db}"
|
||||
[:desktop, :mobile].each do |target|
|
||||
[:desktop, :mobile, :desktop_rtl, :mobile_rtl].each do |target|
|
||||
puts DiscourseStylesheets.compile(target)
|
||||
end
|
||||
end
|
||||
|
|
Loading…
Reference in New Issue