forked from fedi/mastodon
Improving production logs, removing n+1 on media attachments in atom,
adding attachments display to static views
This commit is contained in:
parent
87576e1ab1
commit
0f4bc56719
1
Gemfile
1
Gemfile
|
@ -64,4 +64,5 @@ end
|
|||
|
||||
group :production do
|
||||
gem 'rails_12factor'
|
||||
gem 'lograge'
|
||||
end
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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 (
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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 }
|
||||
|
|
|
@ -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
|
||||
|
||||
|
|
Loading…
Reference in a new issue