forked from cybrespace/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
					
				
					 7 changed files with 45 additions and 3 deletions
				
			
		
							
								
								
									
										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…
	
	Add table
		
		Reference in a new issue