diff options
author | Eugen Rochko <eugen@zeonfederated.com> | 2016-09-08 01:24:26 +0200 |
---|---|---|
committer | Eugen Rochko <eugen@zeonfederated.com> | 2016-09-08 01:24:26 +0200 |
commit | 0f4bc567195d368de596cdeeee6bc0b6507ae95e (patch) | |
tree | b6ef5fbeb1103203dae8237d8b26379664a397f3 | |
parent | 87576e1ab1a4c02f8847e8264e6a62abd36df793 (diff) |
Improving production logs, removing n+1 on media attachments in atom,
adding attachments display to static views
-rw-r--r-- | Gemfile | 1 | ||||
-rw-r--r-- | Gemfile.lock | 5 | ||||
-rw-r--r-- | app/assets/javascripts/components/components/media_gallery.jsx | 2 | ||||
-rw-r--r-- | app/assets/stylesheets/stream_entries.scss | 31 | ||||
-rw-r--r-- | app/controllers/accounts_controller.rb | 2 | ||||
-rw-r--r-- | app/views/stream_entries/_status.html.haml | 4 | ||||
-rw-r--r-- | config/environments/production.rb | 3 |
7 files changed, 45 insertions, 3 deletions
diff --git a/Gemfile b/Gemfile index cd4989cb6..d03a8ac4a 100644 --- a/Gemfile +++ b/Gemfile @@ -64,4 +64,5 @@ end group :production do gem 'rails_12factor' + gem 'lograge' end diff --git a/Gemfile.lock b/Gemfile.lock index 1ff69cb71..aab4ee335 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -158,6 +158,10 @@ GEM letter_opener (1.4.1) launchy (~> 2.2) libv8 (3.16.14.15) + lograge (0.4.1) + actionpack (>= 4, < 5.1) + activesupport (>= 4, < 5.1) + railties (>= 4, < 5.1) loofah (2.0.3) nokogiri (>= 1.5.9) mail (2.6.4) @@ -377,6 +381,7 @@ DEPENDENCIES jbuilder (~> 2.0) jquery-rails letter_opener + lograge nokogiri oj onebox diff --git a/app/assets/javascripts/components/components/media_gallery.jsx b/app/assets/javascripts/components/components/media_gallery.jsx index 45d2f2492..81bf7c87c 100644 --- a/app/assets/javascripts/components/components/media_gallery.jsx +++ b/app/assets/javascripts/components/components/media_gallery.jsx @@ -59,7 +59,7 @@ const MediaGallery = React.createClass({ } } - return <a key={attachment.get('id')} href={attachment.get('url')} style={{ boxSizing: 'border-box', position: 'relative', left: left, top: top, right: right, bottom: bottom, float: 'left', textDecoration: 'none', border: 'none', display: 'block', width: `${width}%`, height: `${height}%`, background: `url(${attachment.get('preview_url')}) no-repeat center`, backgroundSize: 'cover', cursor: 'zoom-in' }} />; + return <a key={attachment.get('id')} href={attachment.get('url')} target='_blank' style={{ boxSizing: 'border-box', position: 'relative', left: left, top: top, right: right, bottom: bottom, float: 'left', textDecoration: 'none', border: 'none', display: 'block', width: `${width}%`, height: `${height}%`, background: `url(${attachment.get('preview_url')}) no-repeat center`, backgroundSize: 'cover', cursor: 'zoom-in' }} />; }); return ( diff --git a/app/assets/stylesheets/stream_entries.scss b/app/assets/stylesheets/stream_entries.scss index 93880237c..25a536e24 100644 --- a/app/assets/stylesheets/stream_entries.scss +++ b/app/assets/stylesheets/stream_entries.scss @@ -158,7 +158,7 @@ font-size: 14px; padding: 0 10px; padding-left: 8px; - padding-bottom: 25px; + padding-bottom: 15px; color: #282c37; a { @@ -189,4 +189,33 @@ text-decoration: underline; } } + + .media-attachments { + list-style: none; + margin: 0; + padding: 0; + display: block; + overflow: hidden; + padding-left: 10px; + + li { + display: block; + float: left; + width: 120px; + height: 100px; + border-radius: 4px; + margin-right: 4px; + margin-bottom: 25px; + + a { + display: block; + width: 120px; + height: 100px; + border-radius: 4px; + background-position: center; + background-repeat: none; + background-size: cover; + } + } + } } diff --git a/app/controllers/accounts_controller.rb b/app/controllers/accounts_controller.rb index 162e85dec..3c02e0bec 100644 --- a/app/controllers/accounts_controller.rb +++ b/app/controllers/accounts_controller.rb @@ -11,7 +11,7 @@ class AccountsController < ApplicationController format.atom do @entries = @account.stream_entries.order('id desc').with_includes.paginate_by_max_id(20, params[:max_id] || nil) - ActiveRecord::Associations::Preloader.new.preload(@entries.select { |a| a.activity_type == 'Status' }, activity: [:mentions, reblog: :account, thread: :account]) + ActiveRecord::Associations::Preloader.new.preload(@entries.select { |a| a.activity_type == 'Status' }, activity: [:mentions, :media_attachments, reblog: :account, thread: :account]) ActiveRecord::Associations::Preloader.new.preload(@entries.select { |a| a.activity_type == 'Favourite' }, activity: [:account, :status]) ActiveRecord::Associations::Preloader.new.preload(@entries.select { |a| a.activity_type == 'Follow' }, activity: :target_account) end diff --git a/app/views/stream_entries/_status.html.haml b/app/views/stream_entries/_status.html.haml index d210805fe..defadffc6 100644 --- a/app/views/stream_entries/_status.html.haml +++ b/app/views/stream_entries/_status.html.haml @@ -38,6 +38,10 @@ .content= content_for_status(proper_status(status)) + %ul.media-attachments + - status.media_attachments.each do |media| + %li.transparent-background= link_to '', media.file.url, style: "background-image: url(#{media.file.url(:small)})", target: '_blank' + - if include_threads - status.descendants.with_includes.with_counters.each do |status| = render partial: 'status', locals: { status: status, is_successor: true } diff --git a/config/environments/production.rb b/config/environments/production.rb index 7322620cf..ee7598c4c 100644 --- a/config/environments/production.rb +++ b/config/environments/production.rb @@ -64,6 +64,9 @@ Rails.application.configure do # Use default logging formatter so that PID and timestamp are not suppressed. config.log_formatter = ::Logger::Formatter.new + # Better log formatting + config.lograge.enabled = true + # Do not dump schema after migrations. config.active_record.dump_schema_after_migration = false |