From 318886287b289a8caccf19102da8584453ef7faa Mon Sep 17 00:00:00 2001 From: Eugen Rochko Date: Fri, 25 Mar 2016 15:09:40 +0100 Subject: [PATCH] Fixing some stuff for Turbolinks, adding gzip on top, fixing a n+1 query --- Gemfile | 2 +- app/assets/javascripts/mastodon-logo.coffee | 2 +- app/assets/javascripts/profiler.coffee | 2 ++ app/assets/stylesheets/application.scss | 4 ++++ app/models/status.rb | 2 +- config/application.rb | 1 + config/initializers/rack-mini-profiler.rb | 6 ++++++ 7 files changed, 16 insertions(+), 3 deletions(-) create mode 100644 app/assets/javascripts/profiler.coffee create mode 100644 config/initializers/rack-mini-profiler.rb diff --git a/Gemfile b/Gemfile index fbc3ad9e298..c0d36ba5b91 100644 --- a/Gemfile +++ b/Gemfile @@ -66,5 +66,5 @@ group :production do end group :development, :production do - gem 'rack-mini-profiler' + gem 'rack-mini-profiler', require: false end diff --git a/app/assets/javascripts/mastodon-logo.coffee b/app/assets/javascripts/mastodon-logo.coffee index bcf52f3781a..0b4e67e798a 100644 --- a/app/assets/javascripts/mastodon-logo.coffee +++ b/app/assets/javascripts/mastodon-logo.coffee @@ -44,5 +44,5 @@ work = -> if runs == stop_at_run stop() -$ -> +$(document).on 'turbolinks:load', -> setTimeout(start, 100) diff --git a/app/assets/javascripts/profiler.coffee b/app/assets/javascripts/profiler.coffee new file mode 100644 index 00000000000..bcdcc1e59aa --- /dev/null +++ b/app/assets/javascripts/profiler.coffee @@ -0,0 +1,2 @@ +$(document).on 'turbolinks:load', -> + window.MiniProfiler.pageTransition() unless typeof window.MiniProfiler == 'undefined' diff --git a/app/assets/stylesheets/application.scss b/app/assets/stylesheets/application.scss index e34f0ba324f..1f35053a118 100644 --- a/app/assets/stylesheets/application.scss +++ b/app/assets/stylesheets/application.scss @@ -279,6 +279,10 @@ body { } } +.turbolinks-progress-bar { + background-color: #2b90d9; +} + .mastodon { $head: #282c37; $tusk: #d9e1e8; diff --git a/app/models/status.rb b/app/models/status.rb index 59c94aacaab..439cd305310 100644 --- a/app/models/status.rb +++ b/app/models/status.rb @@ -17,7 +17,7 @@ class Status < ActiveRecord::Base validates :text, presence: true, if: Proc.new { |s| s.local? && !s.reblog? } scope :with_counters, -> { select('statuses.*, (select count(r.id) from statuses as r where r.reblog_of_id = statuses.id) as reblogs_count, (select count(f.id) from favourites as f where f.status_id = statuses.id) as favourites_count') } - scope :with_includes, -> { includes(:account, :mentions, reblog: [:account, :mentions], thread: [:account, :mentions]) } + scope :with_includes, -> { includes(:account, :mentions, :stream_entry, reblog: [:account, :mentions], thread: [:account, :mentions]) } def local? self.uri.nil? diff --git a/config/application.rb b/config/application.rb index 1fbd8f7f6dc..7d6182ecca3 100644 --- a/config/application.rb +++ b/config/application.rb @@ -37,5 +37,6 @@ module Mastodon end config.middleware.use Rack::Attack + config.middleware.use Rack::Deflater end end diff --git a/config/initializers/rack-mini-profiler.rb b/config/initializers/rack-mini-profiler.rb new file mode 100644 index 00000000000..b1d45e257ec --- /dev/null +++ b/config/initializers/rack-mini-profiler.rb @@ -0,0 +1,6 @@ +require 'rack-mini-profiler' + +Rack::MiniProfilerRails.initialize!(Rails.application) + +Rails.application.middleware.delete(Rack::MiniProfiler) +Rails.application.middleware.insert_after(Rack::Deflater, Rack::MiniProfiler)