Adding config for puma, dashboard layout, fixing some queries
							parent
							
								
									447cfef62d
								
							
						
					
					
						commit
						aab9f57e36
					
				
							
								
								
									
										4
									
								
								Gemfile
								
								
								
								
							
							
						
						
									
										4
									
								
								Gemfile
								
								
								
								
							|  | @ -14,7 +14,7 @@ gem 'puma' | ||||||
| gem 'haml-rails' | gem 'haml-rails' | ||||||
| gem 'pg' | gem 'pg' | ||||||
| gem 'dotenv-rails' | gem 'dotenv-rails' | ||||||
| gem 'font-awesome-sass' | gem 'font-awesome-rails' | ||||||
| 
 | 
 | ||||||
| gem 'paranoia', '~> 2.0' | gem 'paranoia', '~> 2.0' | ||||||
| gem 'paperclip', '~> 4.3' | gem 'paperclip', '~> 4.3' | ||||||
|  | @ -34,7 +34,6 @@ gem 'hiredis' | ||||||
| gem 'redis', '~>3.2' | gem 'redis', '~>3.2' | ||||||
| gem 'fast_blank' | gem 'fast_blank' | ||||||
| gem 'htmlentities' | gem 'htmlentities' | ||||||
| gem 'message_bus' |  | ||||||
| gem 'onebox' | gem 'onebox' | ||||||
| 
 | 
 | ||||||
| group :development, :test do | group :development, :test do | ||||||
|  | @ -52,7 +51,6 @@ end | ||||||
| 
 | 
 | ||||||
| group :development do | group :development do | ||||||
|   gem 'web-console', '~> 2.0' |   gem 'web-console', '~> 2.0' | ||||||
|   gem 'spring' |  | ||||||
|   gem 'rubocop', require: false |   gem 'rubocop', require: false | ||||||
|   gem 'better_errors' |   gem 'better_errors' | ||||||
|   gem 'binding_of_caller' |   gem 'binding_of_caller' | ||||||
|  |  | ||||||
							
								
								
									
										44
									
								
								Gemfile.lock
								
								
								
								
							
							
						
						
									
										44
									
								
								Gemfile.lock
								
								
								
								
							|  | @ -41,7 +41,7 @@ GEM | ||||||
|     ast (2.2.0) |     ast (2.2.0) | ||||||
|     backport_new_renderer (1.0.0) |     backport_new_renderer (1.0.0) | ||||||
|       rails |       rails | ||||||
|     bcrypt (3.1.10) |     bcrypt (3.1.11) | ||||||
|     better_errors (2.1.1) |     better_errors (2.1.1) | ||||||
|       coderay (>= 1.0.0) |       coderay (>= 1.0.0) | ||||||
|       erubis (>= 2.6.6) |       erubis (>= 2.6.6) | ||||||
|  | @ -61,7 +61,7 @@ GEM | ||||||
|       coffee-script-source |       coffee-script-source | ||||||
|       execjs |       execjs | ||||||
|     coffee-script-source (1.10.0) |     coffee-script-source (1.10.0) | ||||||
|     concurrent-ruby (1.0.0) |     concurrent-ruby (1.0.1) | ||||||
|     crack (0.4.3) |     crack (0.4.3) | ||||||
|       safe_yaml (~> 1.0.0) |       safe_yaml (~> 1.0.0) | ||||||
|     debug_inspector (0.0.2) |     debug_inspector (0.0.2) | ||||||
|  | @ -74,7 +74,7 @@ GEM | ||||||
|       warden (~> 1.2.3) |       warden (~> 1.2.3) | ||||||
|     diff-lcs (1.2.5) |     diff-lcs (1.2.5) | ||||||
|     docile (1.1.5) |     docile (1.1.5) | ||||||
|     domain_name (0.5.20160216) |     domain_name (0.5.20160309) | ||||||
|       unf (>= 0.0.5, < 1.0.0) |       unf (>= 0.0.5, < 1.0.0) | ||||||
|     doorkeeper (3.1.0) |     doorkeeper (3.1.0) | ||||||
|       railties (>= 3.2) |       railties (>= 3.2) | ||||||
|  | @ -86,8 +86,8 @@ GEM | ||||||
|     execjs (2.6.0) |     execjs (2.6.0) | ||||||
|     fabrication (2.14.1) |     fabrication (2.14.1) | ||||||
|     fast_blank (1.0.0) |     fast_blank (1.0.0) | ||||||
|     font-awesome-sass (4.5.0) |     font-awesome-rails (4.5.0.1) | ||||||
|       sass (>= 3.2) |       railties (>= 3.2, < 5.1) | ||||||
|     fuubar (2.0.0) |     fuubar (2.0.0) | ||||||
|       rspec (~> 3.0) |       rspec (~> 3.0) | ||||||
|       ruby-progressbar (~> 1.4) |       ruby-progressbar (~> 1.4) | ||||||
|  | @ -126,8 +126,8 @@ GEM | ||||||
|     jbuilder (2.4.1) |     jbuilder (2.4.1) | ||||||
|       activesupport (>= 3.0.0, < 5.1) |       activesupport (>= 3.0.0, < 5.1) | ||||||
|       multi_json (~> 1.2) |       multi_json (~> 1.2) | ||||||
|     jquery-rails (4.1.0) |     jquery-rails (4.1.1) | ||||||
|       rails-dom-testing (~> 1.0) |       rails-dom-testing (>= 1, < 3) | ||||||
|       railties (>= 4.2.0) |       railties (>= 4.2.0) | ||||||
|       thor (>= 0.14, < 2.0) |       thor (>= 0.14, < 2.0) | ||||||
|     json (1.8.3) |     json (1.8.3) | ||||||
|  | @ -136,11 +136,8 @@ GEM | ||||||
|       nokogiri (>= 1.5.9) |       nokogiri (>= 1.5.9) | ||||||
|     mail (2.6.3) |     mail (2.6.3) | ||||||
|       mime-types (>= 1.16, < 3) |       mime-types (>= 1.16, < 3) | ||||||
|     message_bus (1.1.1) |  | ||||||
|       rack (>= 1.1.3) |  | ||||||
|       redis |  | ||||||
|     method_source (0.8.2) |     method_source (0.8.2) | ||||||
|     mime-types (2.99) |     mime-types (2.99.1) | ||||||
|     mimemagic (0.3.0) |     mimemagic (0.3.0) | ||||||
|     mini_portile2 (2.0.0) |     mini_portile2 (2.0.0) | ||||||
|     minitest (5.8.4) |     minitest (5.8.4) | ||||||
|  | @ -149,7 +146,7 @@ GEM | ||||||
|     mustache (1.0.2) |     mustache (1.0.2) | ||||||
|     nokogiri (1.6.7.2) |     nokogiri (1.6.7.2) | ||||||
|       mini_portile2 (~> 2.0.0.rc2) |       mini_portile2 (~> 2.0.0.rc2) | ||||||
|     oj (2.14.5) |     oj (2.14.6) | ||||||
|     onebox (1.5.35) |     onebox (1.5.35) | ||||||
|       htmlentities (~> 4.3.4) |       htmlentities (~> 4.3.4) | ||||||
|       moneta (~> 0.8) |       moneta (~> 0.8) | ||||||
|  | @ -179,7 +176,7 @@ GEM | ||||||
|       slop (~> 3.4) |       slop (~> 3.4) | ||||||
|     pry-rails (0.3.4) |     pry-rails (0.3.4) | ||||||
|       pry (>= 0.9.10) |       pry (>= 0.9.10) | ||||||
|     puma (2.16.0) |     puma (3.1.0) | ||||||
|     quiet_assets (1.1.0) |     quiet_assets (1.1.0) | ||||||
|       railties (>= 3.1, < 5.0) |       railties (>= 3.1, < 5.0) | ||||||
|     rabl (0.12.0) |     rabl (0.12.0) | ||||||
|  | @ -221,7 +218,7 @@ GEM | ||||||
|       rake (>= 0.8.7) |       rake (>= 0.8.7) | ||||||
|       thor (>= 0.18.1, < 2.0) |       thor (>= 0.18.1, < 2.0) | ||||||
|     rainbow (2.1.0) |     rainbow (2.1.0) | ||||||
|     rake (10.5.0) |     rake (11.1.0) | ||||||
|     rdoc (4.2.2) |     rdoc (4.2.2) | ||||||
|       json (~> 1.4) |       json (~> 1.4) | ||||||
|     redis (3.2.2) |     redis (3.2.2) | ||||||
|  | @ -232,7 +229,7 @@ GEM | ||||||
|       rspec-core (~> 3.4.0) |       rspec-core (~> 3.4.0) | ||||||
|       rspec-expectations (~> 3.4.0) |       rspec-expectations (~> 3.4.0) | ||||||
|       rspec-mocks (~> 3.4.0) |       rspec-mocks (~> 3.4.0) | ||||||
|     rspec-core (3.4.3) |     rspec-core (3.4.4) | ||||||
|       rspec-support (~> 3.4.0) |       rspec-support (~> 3.4.0) | ||||||
|     rspec-expectations (3.4.0) |     rspec-expectations (3.4.0) | ||||||
|       diff-lcs (>= 1.2.0, < 2.0) |       diff-lcs (>= 1.2.0, < 2.0) | ||||||
|  | @ -249,12 +246,12 @@ GEM | ||||||
|       rspec-mocks (~> 3.4.0) |       rspec-mocks (~> 3.4.0) | ||||||
|       rspec-support (~> 3.4.0) |       rspec-support (~> 3.4.0) | ||||||
|     rspec-support (3.4.1) |     rspec-support (3.4.1) | ||||||
|     rubocop (0.37.2) |     rubocop (0.38.0) | ||||||
|       parser (>= 2.3.0.4, < 3.0) |       parser (>= 2.3.0.6, < 3.0) | ||||||
|       powerpack (~> 0.1) |       powerpack (~> 0.1) | ||||||
|       rainbow (>= 1.99.1, < 3.0) |       rainbow (>= 1.99.1, < 3.0) | ||||||
|       ruby-progressbar (~> 1.7) |       ruby-progressbar (~> 1.7) | ||||||
|       unicode-display_width (~> 0.3) |       unicode-display_width (~> 1.0, >= 1.0.1) | ||||||
|     ruby-progressbar (1.7.5) |     ruby-progressbar (1.7.5) | ||||||
|     ruby_parser (3.8.1) |     ruby_parser (3.8.1) | ||||||
|       sexp_processor (~> 4.1) |       sexp_processor (~> 4.1) | ||||||
|  | @ -276,11 +273,10 @@ GEM | ||||||
|       simplecov-html (~> 0.10.0) |       simplecov-html (~> 0.10.0) | ||||||
|     simplecov-html (0.10.0) |     simplecov-html (0.10.0) | ||||||
|     slop (3.6.0) |     slop (3.6.0) | ||||||
|     spring (1.6.3) |  | ||||||
|     sprockets (3.5.2) |     sprockets (3.5.2) | ||||||
|       concurrent-ruby (~> 1.0) |       concurrent-ruby (~> 1.0) | ||||||
|       rack (> 1, < 3) |       rack (> 1, < 3) | ||||||
|     sprockets-rails (3.0.1) |     sprockets-rails (3.0.4) | ||||||
|       actionpack (>= 4.0) |       actionpack (>= 4.0) | ||||||
|       activesupport (>= 4.0) |       activesupport (>= 4.0) | ||||||
|       sprockets (>= 3.0.0) |       sprockets (>= 3.0.0) | ||||||
|  | @ -299,7 +295,7 @@ GEM | ||||||
|     unf (0.1.4) |     unf (0.1.4) | ||||||
|       unf_ext |       unf_ext | ||||||
|     unf_ext (0.0.7.2) |     unf_ext (0.0.7.2) | ||||||
|     unicode-display_width (0.3.1) |     unicode-display_width (1.0.2) | ||||||
|     warden (1.2.6) |     warden (1.2.6) | ||||||
|       rack (>= 1.0) |       rack (>= 1.0) | ||||||
|     web-console (2.3.0) |     web-console (2.3.0) | ||||||
|  | @ -307,7 +303,7 @@ GEM | ||||||
|       binding_of_caller (>= 0.7.2) |       binding_of_caller (>= 0.7.2) | ||||||
|       railties (>= 4.0) |       railties (>= 4.0) | ||||||
|       sprockets-rails (>= 2.0, < 4.0) |       sprockets-rails (>= 2.0, < 4.0) | ||||||
|     webmock (1.24.1) |     webmock (1.24.2) | ||||||
|       addressable (>= 2.3.6) |       addressable (>= 2.3.6) | ||||||
|       crack (>= 0.3.2) |       crack (>= 0.3.2) | ||||||
|       hashdiff |       hashdiff | ||||||
|  | @ -326,7 +322,7 @@ DEPENDENCIES | ||||||
|   dotenv-rails |   dotenv-rails | ||||||
|   fabrication |   fabrication | ||||||
|   fast_blank |   fast_blank | ||||||
|   font-awesome-sass |   font-awesome-rails | ||||||
|   fuubar |   fuubar | ||||||
|   goldfinger |   goldfinger | ||||||
|   haml-rails |   haml-rails | ||||||
|  | @ -335,7 +331,6 @@ DEPENDENCIES | ||||||
|   http |   http | ||||||
|   jbuilder (~> 2.0) |   jbuilder (~> 2.0) | ||||||
|   jquery-rails |   jquery-rails | ||||||
|   message_bus |  | ||||||
|   nokogiri |   nokogiri | ||||||
|   oj |   oj | ||||||
|   onebox |   onebox | ||||||
|  | @ -357,7 +352,6 @@ DEPENDENCIES | ||||||
|   sass-rails (~> 5.0) |   sass-rails (~> 5.0) | ||||||
|   sdoc (~> 0.4.0) |   sdoc (~> 0.4.0) | ||||||
|   simplecov |   simplecov | ||||||
|   spring |  | ||||||
|   sqlite3 |   sqlite3 | ||||||
|   therubyracer |   therubyracer | ||||||
|   uglifier (>= 1.3.0) |   uglifier (>= 1.3.0) | ||||||
|  |  | ||||||
|  | @ -9,7 +9,6 @@ $lighter-text-color: #8b8687; | ||||||
| 
 | 
 | ||||||
| @import url(https://fonts.googleapis.com/css?family=Roboto:400,500,400italic); | @import url(https://fonts.googleapis.com/css?family=Roboto:400,500,400italic); | ||||||
| @import url(https://fonts.googleapis.com/css?family=Roboto+Mono); | @import url(https://fonts.googleapis.com/css?family=Roboto+Mono); | ||||||
| @import "font-awesome-sprockets"; |  | ||||||
| @import "font-awesome"; | @import "font-awesome"; | ||||||
| 
 | 
 | ||||||
| /* http://meyerweb.com/eric/tools/css/reset/ | /* http://meyerweb.com/eric/tools/css/reset/ | ||||||
|  | @ -334,3 +333,4 @@ body { | ||||||
| @import 'home'; | @import 'home'; | ||||||
| @import 'accounts'; | @import 'accounts'; | ||||||
| @import 'stream_entries'; | @import 'stream_entries'; | ||||||
|  | @import 'dashboard' | ||||||
|  |  | ||||||
|  | @ -0,0 +1,130 @@ | ||||||
|  | .dashboard-wrapper { | ||||||
|  |   background: #282c37; | ||||||
|  |   border-radius: 4px; | ||||||
|  |   margin: 20px auto; | ||||||
|  |   width: 940px; | ||||||
|  |   display: flex; | ||||||
|  | 
 | ||||||
|  |   .dashboard__sidebar { | ||||||
|  |     width: 240px; | ||||||
|  |     border-radius: 4px 0 0 4px; | ||||||
|  | 
 | ||||||
|  |     .dashboard__top-bar { | ||||||
|  |       border-radius: 4px 0 0 0; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     ul { | ||||||
|  |       padding: 20px 0; | ||||||
|  | 
 | ||||||
|  |       a { | ||||||
|  |         display: block; | ||||||
|  |         padding: 7px 20px; | ||||||
|  |         color: #d9e1e8; | ||||||
|  |         text-decoration: none; | ||||||
|  |         font-size: 14px; | ||||||
|  |         font-weight: 400; | ||||||
|  | 
 | ||||||
|  |         .fa { | ||||||
|  |           display: inline-block; | ||||||
|  |           width: 18px; | ||||||
|  |           text-align: center; | ||||||
|  |           margin-right: 5px; | ||||||
|  |         } | ||||||
|  |       } | ||||||
|  | 
 | ||||||
|  |       .active { | ||||||
|  |         a { | ||||||
|  |           background: darken(#282c37, 5%); | ||||||
|  |           border-left: 2px solid #2b90d9; | ||||||
|  |           padding-left: 18px; | ||||||
|  |         } | ||||||
|  |       } | ||||||
|  |     } | ||||||
|  |   } | ||||||
|  | 
 | ||||||
|  |   .dashboard__current-user { | ||||||
|  |     padding: 20px; | ||||||
|  | 
 | ||||||
|  |     a { | ||||||
|  |       text-decoration: none; | ||||||
|  |       color: inherit; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     .dashboard__current-user__avatar { | ||||||
|  |       display: block; | ||||||
|  |       width: 50px; | ||||||
|  |       height: 50px; | ||||||
|  |       border-radius: 50px; | ||||||
|  |       float: left; | ||||||
|  |       margin-right: 15px; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     .dashboard__current-user__display-name { | ||||||
|  |       font-weight: 500; | ||||||
|  |       font-size: 13px; | ||||||
|  |       color: #d9e1e8; | ||||||
|  |       display: block; | ||||||
|  |       margin-top: 5px; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     .dashboard__current-user__username { | ||||||
|  |       font-size: 12px; | ||||||
|  |       display: block; | ||||||
|  |       color: #2b90d9; | ||||||
|  |     } | ||||||
|  |   } | ||||||
|  | 
 | ||||||
|  |   .dashboard__logo { | ||||||
|  |     color: #2b90d9; | ||||||
|  | 
 | ||||||
|  |     span { | ||||||
|  |       font-weight: 500; | ||||||
|  |     } | ||||||
|  |   } | ||||||
|  | 
 | ||||||
|  |   .dashboard__top-bar { | ||||||
|  |     background: #fff; | ||||||
|  |     padding: 20px; | ||||||
|  |     box-shadow: 0 0 5px rgba(0, 0, 0, 0.1); | ||||||
|  |     border-bottom: 1px solid #d9e1e8; | ||||||
|  |     color: #282c37; | ||||||
|  |     font-size: 16px; | ||||||
|  |     overflow: hidden; | ||||||
|  | 
 | ||||||
|  |     &.alternate { | ||||||
|  |       background: lighten(#282c37, 10%); | ||||||
|  |       border-bottom: 1px solid lighten(#282c37, 10%); | ||||||
|  |       text-align: center; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     ul { | ||||||
|  |       float: right; | ||||||
|  |       list-style: none; | ||||||
|  |       display: block; | ||||||
|  | 
 | ||||||
|  |       li { | ||||||
|  |         display: inline-block; | ||||||
|  |       } | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     a { | ||||||
|  |       color: #9baec8; | ||||||
|  |       text-decoration: none; | ||||||
|  |     } | ||||||
|  |   } | ||||||
|  | 
 | ||||||
|  |   .dashboard__content { | ||||||
|  |     flex: 1; | ||||||
|  |     background: #d9e1e8; | ||||||
|  |     border-radius: 0 4px 4px 0; | ||||||
|  | 
 | ||||||
|  |     .dashboard__content__content { | ||||||
|  |       //padding: 20px; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     .dashboard__top-bar { | ||||||
|  |       border-radius: 0 4px 0 0; | ||||||
|  |     } | ||||||
|  |   } | ||||||
|  | 
 | ||||||
|  | } | ||||||
|  | @ -14,6 +14,14 @@ | ||||||
|     &.entry-predecessor, &.entry-successor { |     &.entry-predecessor, &.entry-successor { | ||||||
|       background: #d9e1e8; |       background: #d9e1e8; | ||||||
|       border-left-color: #d9e1e8; |       border-left-color: #d9e1e8; | ||||||
|  | 
 | ||||||
|  |       .header { | ||||||
|  |         .header__right { | ||||||
|  |           .counter-btn { | ||||||
|  |             color: darken(#d9e1e8, 15%); | ||||||
|  |           } | ||||||
|  |         } | ||||||
|  |       } | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|     &.entry-follow, &.entry-favourite { |     &.entry-follow, &.entry-favourite { | ||||||
|  | @ -43,6 +51,14 @@ | ||||||
|     } |     } | ||||||
|   } |   } | ||||||
| 
 | 
 | ||||||
|  |   &.activity-stream-embedded { | ||||||
|  |     box-shadow: none; | ||||||
|  | 
 | ||||||
|  |     .entry { | ||||||
|  |       border-radius: 0; | ||||||
|  |     } | ||||||
|  |   } | ||||||
|  | 
 | ||||||
|   .entry__container { |   .entry__container { | ||||||
|     display: flex; |     display: flex; | ||||||
|   } |   } | ||||||
|  |  | ||||||
|  | @ -5,7 +5,7 @@ class AccountsController < ApplicationController | ||||||
|   before_action :set_webfinger_header |   before_action :set_webfinger_header | ||||||
| 
 | 
 | ||||||
|   def show |   def show | ||||||
|     @statuses = @account.statuses.order('id desc').includes(thread: [:account], reblog: [:account], stream_entry: []) |     @statuses = @account.statuses.order('id desc').with_includes.with_counters | ||||||
| 
 | 
 | ||||||
|     respond_to do |format| |     respond_to do |format| | ||||||
|       format.html |       format.html | ||||||
|  |  | ||||||
|  | @ -15,7 +15,7 @@ class Api::AccountsController < ApiController | ||||||
|   end |   end | ||||||
| 
 | 
 | ||||||
|   def statuses |   def statuses | ||||||
|     @statuses = @account.statuses.order('created_at desc') |     @statuses = @account.statuses.with_includes.with_counts.order('created_at desc') | ||||||
|   end |   end | ||||||
| 
 | 
 | ||||||
|   def follow |   def follow | ||||||
|  |  | ||||||
|  | @ -1,8 +1,16 @@ | ||||||
| class HomeController < ApplicationController | class HomeController < ApplicationController | ||||||
|  |   layout 'dashboard' | ||||||
|  | 
 | ||||||
|   before_action :authenticate_user! |   before_action :authenticate_user! | ||||||
| 
 | 
 | ||||||
|   def index |   def index | ||||||
|     feed      = Feed.new(:home, current_user.account) |     feed      = Feed.new(:home, current_user.account) | ||||||
|     @statuses = feed.get(20, (params[:offset] || 0).to_i) |     @statuses = feed.get(20, (params[:offset] || 0).to_i) | ||||||
|   end |   end | ||||||
|  | 
 | ||||||
|  |   def mentions | ||||||
|  |     feed      = Feed.new(:mentions, current_user.account) | ||||||
|  |     @statuses = feed.get(20, (params[:offset] || 0).to_i) | ||||||
|  |     render action: :index | ||||||
|  |   end | ||||||
| end | end | ||||||
|  |  | ||||||
|  | @ -49,6 +49,14 @@ class Status < ActiveRecord::Base | ||||||
|     content.truncate(80, omission: "...") |     content.truncate(80, omission: "...") | ||||||
|   end |   end | ||||||
| 
 | 
 | ||||||
|  |   def reblogs_count | ||||||
|  |     self.attributes['reblogs_count'] || self.reblogs.count | ||||||
|  |   end | ||||||
|  | 
 | ||||||
|  |   def favourites_count | ||||||
|  |     self.attributes['favourites_count'] || self.favourites.count | ||||||
|  |   end | ||||||
|  | 
 | ||||||
|   def mentions |   def mentions | ||||||
|     m = [] |     m = [] | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -4,8 +4,8 @@ attributes :id, :created_at, :in_reply_to_id | ||||||
| node(:uri)              { |status| uri_for_target(status) } | node(:uri)              { |status| uri_for_target(status) } | ||||||
| node(:content)          { |status| status.local? ? linkify(status) : status.content } | node(:content)          { |status| status.local? ? linkify(status) : status.content } | ||||||
| node(:url)              { |status| url_for_target(status) } | node(:url)              { |status| url_for_target(status) } | ||||||
| node(:reblogs_count)    { |status| status.reblogs.count } | node(:reblogs_count)    { |status| status.reblogs_count } | ||||||
| node(:favourites_count) { |status| status.favourites.count } | node(:favourites_count) { |status| status.favourites_count } | ||||||
| node(:favourited)       { |status| current_user.account.favourited?(status) } | node(:favourited)       { |status| current_user.account.favourited?(status) } | ||||||
| node(:reblogged)        { |status| current_user.account.reblogged?(status) } | node(:reblogged)        { |status| current_user.account.reblogged?(status) } | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -1,3 +1,3 @@ | ||||||
| .activity-stream.activity-stream-headless | .activity-stream.activity-stream-embedded | ||||||
|   - @statuses.each do |status| |   - @statuses.each do |status| | ||||||
|     = render partial: 'stream_entries/status', locals: { status: status, include_threads: false, is_successor: false, is_predecessor: false } |     = render partial: 'stream_entries/status', locals: { status: status, include_threads: false, is_successor: false, is_predecessor: false } | ||||||
|  |  | ||||||
|  | @ -8,5 +8,4 @@ | ||||||
|     = csrf_meta_tags |     = csrf_meta_tags | ||||||
|     = yield :header_tags |     = yield :header_tags | ||||||
|   %body |   %body | ||||||
|     .container |     = content_for?(:content) ? yield(:content) : yield | ||||||
|       = content_for?(:content) ? yield(:content) : yield |  | ||||||
|  |  | ||||||
|  | @ -1,11 +1,12 @@ | ||||||
| - content_for :content do | - content_for :content do | ||||||
|   .logo-container |   .container | ||||||
|     %h1 |     .logo-container | ||||||
|       = link_to root_path do |       %h1 | ||||||
|         = render partial: 'application/logo', locals: { dim: 200 } |         = link_to root_path do | ||||||
|         %small= Rails.configuration.x.local_domain |           = render partial: 'application/logo', locals: { dim: 200 } | ||||||
|  |           %small= Rails.configuration.x.local_domain | ||||||
| 
 | 
 | ||||||
|   .form-container |     .form-container | ||||||
|     = yield |       = yield | ||||||
| 
 | 
 | ||||||
| = render template: "layouts/application" | = render template: "layouts/application" | ||||||
|  |  | ||||||
|  | @ -0,0 +1,45 @@ | ||||||
|  | - content_for :content do | ||||||
|  |   .dashboard-wrapper | ||||||
|  |     .dashboard__sidebar | ||||||
|  |       .dashboard__top-bar.alternate | ||||||
|  |           | ||||||
|  |       .dashboard__current-user | ||||||
|  |         = link_to account_path(current_user.account) do | ||||||
|  |           = image_tag current_user.account.avatar.url(:medium), class: 'dashboard__current-user__avatar' | ||||||
|  |           %strong.dashboard__current-user__display-name= current_user.account.display_name | ||||||
|  |           %span.dashboard__current-user__username= "@#{current_user.account.username}" | ||||||
|  |       %ul | ||||||
|  |         %li.active | ||||||
|  |           = link_to root_path do | ||||||
|  |             = fa_icon 'home' | ||||||
|  |             Home | ||||||
|  |         %li | ||||||
|  |           = link_to mentions_path do | ||||||
|  |             = fa_icon 'at' | ||||||
|  |             Mentions | ||||||
|  |         %li | ||||||
|  |           = link_to root_path do | ||||||
|  |             = fa_icon 'group' | ||||||
|  |             Subscriptions | ||||||
|  |         %li | ||||||
|  |           = link_to oauth_authorized_applications_path do | ||||||
|  |             = fa_icon 'shield' | ||||||
|  |             Authorized apps | ||||||
|  |         %li | ||||||
|  |           = link_to root_path do | ||||||
|  |             = fa_icon 'user' | ||||||
|  |             Edit profile | ||||||
|  |         %li | ||||||
|  |           = link_to edit_registration_path(current_user) do | ||||||
|  |             = fa_icon 'wrench' | ||||||
|  |             Change password | ||||||
|  |     .dashboard__content | ||||||
|  |       .dashboard__top-bar | ||||||
|  |         Home | ||||||
|  |         %ul | ||||||
|  |           %li= link_to fa_icon('sign-out'), destroy_user_session_path, method: :delete | ||||||
|  |       .dashboard__content__content= yield | ||||||
|  |   .footer | ||||||
|  |     .domain= Rails.configuration.x.local_domain | ||||||
|  | 
 | ||||||
|  | = render template: "layouts/application" | ||||||
|  | @ -1,37 +0,0 @@ | ||||||
| <!DOCTYPE html> |  | ||||||
| <html> |  | ||||||
| <head> |  | ||||||
|   <meta charset="utf-8"> |  | ||||||
|   <meta http-equiv="X-UA-Compatible" content="IE=edge"> |  | ||||||
|   <meta name="viewport" content="width=device-width, initial-scale=1.0"> |  | ||||||
|   <title>Doorkeeper</title> |  | ||||||
|   <%= stylesheet_link_tag "doorkeeper/admin/application" %> |  | ||||||
|   <%= csrf_meta_tags %> |  | ||||||
| </head> |  | ||||||
| <body> |  | ||||||
| <div class="navbar navbar-inverse navbar-static-top" role="navigation"> |  | ||||||
|   <div class="container-fluid"> |  | ||||||
|     <div class="navbar-header"> |  | ||||||
|       <%= link_to t('doorkeeper.layouts.admin.nav.oauth2_provider'), oauth_applications_path, class: 'navbar-brand' %> |  | ||||||
|     </div> |  | ||||||
|     <ul class="nav navbar-nav"> |  | ||||||
|       <%= content_tag :li, class: "#{'active' if request.path == oauth_applications_path}" do %> |  | ||||||
|         <%= link_to t('doorkeeper.layouts.admin.nav.applications'), oauth_applications_path %> |  | ||||||
|       <% end %> |  | ||||||
|       <%= content_tag :li do %> |  | ||||||
|         <%= link_to 'Home', root_path %> |  | ||||||
|       <% end %> |  | ||||||
|     </ul> |  | ||||||
|   </div> |  | ||||||
| </div> |  | ||||||
| <div class="container"> |  | ||||||
|   <%- if flash[:notice].present? %> |  | ||||||
|     <div class="alert alert-info"> |  | ||||||
|       <%= flash[:notice] %> |  | ||||||
|     </div> |  | ||||||
|   <% end -%> |  | ||||||
| 
 |  | ||||||
|   <%= yield %> |  | ||||||
| </div> |  | ||||||
| </body> |  | ||||||
| </html> |  | ||||||
|  | @ -1,23 +0,0 @@ | ||||||
| <!DOCTYPE html> |  | ||||||
| <html> |  | ||||||
| <head> |  | ||||||
|   <title><%= t('doorkeeper.layouts.application.title') %></title> |  | ||||||
|   <meta charset="utf-8"> |  | ||||||
|   <meta http-equiv="X-UA-Compatible" content="IE=edge"> |  | ||||||
|   <meta name="viewport" content="width=device-width, initial-scale=1.0"> |  | ||||||
| 
 |  | ||||||
|   <%= stylesheet_link_tag "doorkeeper/application" %> |  | ||||||
|   <%= csrf_meta_tags %> |  | ||||||
| </head> |  | ||||||
| <body> |  | ||||||
| <div id="container"> |  | ||||||
|   <%- if flash[:notice].present? %> |  | ||||||
|     <div class="alert alert-info"> |  | ||||||
|       <%= flash[:notice] %> |  | ||||||
|     </div> |  | ||||||
|   <% end -%> |  | ||||||
| 
 |  | ||||||
|   <%= yield %> |  | ||||||
| </div> |  | ||||||
| </body> |  | ||||||
| </html> |  | ||||||
|  | @ -1,5 +1,5 @@ | ||||||
| - content_for :content do | - content_for :content do | ||||||
|   = yield |   .container= yield | ||||||
|   .footer |   .footer | ||||||
|     .domain= Rails.configuration.x.local_domain |     .domain= Rails.configuration.x.local_domain | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -24,10 +24,10 @@ | ||||||
|         .header__right |         .header__right | ||||||
|           .counter-btn{ class: reblogged_by_me_class(status) } |           .counter-btn{ class: reblogged_by_me_class(status) } | ||||||
|             %i.fa.fa-retweet |             %i.fa.fa-retweet | ||||||
|             %span.counter-number= status.reblog? ? status.reblog.reblogs.count : status.reblogs_count |             %span.counter-number= status.reblog? ? status.reblog.reblogs_count : status.reblogs_count | ||||||
|           .counter-btn{ class: favourited_by_me_class(status) } |           .counter-btn{ class: favourited_by_me_class(status) } | ||||||
|             %i.fa.fa-star |             %i.fa.fa-star | ||||||
|             %span.counter-number= status.reblog? ? status.reblog.favourites.count : status.favourites_count |             %span.counter-number= status.reblog? ? status.reblog.favourites_count : status.favourites_count | ||||||
|       .content |       .content | ||||||
|         = status.reblog? ? (status.reblog.local? ? linkify(status.reblog) : status.reblog.content.html_safe) : (status.local? ? linkify(status) : status.content.html_safe) |         = status.reblog? ? (status.reblog.local? ? linkify(status.reblog) : status.reblog.content.html_safe) : (status.local? ? linkify(status) : status.content.html_safe) | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -1,9 +1,4 @@ | ||||||
| #!/usr/bin/env ruby | #!/usr/bin/env ruby | ||||||
| begin |  | ||||||
|   load File.expand_path('../spring', __FILE__) |  | ||||||
| rescue LoadError => e |  | ||||||
|   raise unless e.message.include?('spring') |  | ||||||
| end |  | ||||||
| APP_PATH = File.expand_path('../../config/application', __FILE__) | APP_PATH = File.expand_path('../../config/application', __FILE__) | ||||||
| require_relative '../config/boot' | require_relative '../config/boot' | ||||||
| require 'rails/commands' | require 'rails/commands' | ||||||
|  |  | ||||||
							
								
								
									
										5
									
								
								bin/rake
								
								
								
								
							
							
						
						
									
										5
									
								
								bin/rake
								
								
								
								
							|  | @ -1,9 +1,4 @@ | ||||||
| #!/usr/bin/env ruby | #!/usr/bin/env ruby | ||||||
| begin |  | ||||||
|   load File.expand_path('../spring', __FILE__) |  | ||||||
| rescue LoadError => e |  | ||||||
|   raise unless e.message.include?('spring') |  | ||||||
| end |  | ||||||
| require_relative '../config/boot' | require_relative '../config/boot' | ||||||
| require 'rake' | require 'rake' | ||||||
| Rake.application.run | Rake.application.run | ||||||
|  |  | ||||||
							
								
								
									
										15
									
								
								bin/spring
								
								
								
								
							
							
						
						
									
										15
									
								
								bin/spring
								
								
								
								
							|  | @ -1,15 +0,0 @@ | ||||||
| #!/usr/bin/env ruby |  | ||||||
| 
 |  | ||||||
| # This file loads spring without using Bundler, in order to be fast. |  | ||||||
| # It gets overwritten when you run the `spring binstub` command. |  | ||||||
| 
 |  | ||||||
| unless defined?(Spring) |  | ||||||
|   require 'rubygems' |  | ||||||
|   require 'bundler' |  | ||||||
| 
 |  | ||||||
|   if (match = Bundler.default_lockfile.read.match(/^GEM$.*?^    (?:  )*spring \((.*?)\)$.*?^$/m)) |  | ||||||
|     Gem.paths = { 'GEM_PATH' => [Bundler.bundle_path.to_s, *Gem.path].uniq } |  | ||||||
|     gem 'spring', match[1] |  | ||||||
|     require 'spring/binstub' |  | ||||||
|   end |  | ||||||
| end |  | ||||||
|  | @ -29,8 +29,9 @@ module Mastodon | ||||||
|     config.autoload_paths += Dir[Rails.root.join('app', 'api', '*')] |     config.autoload_paths += Dir[Rails.root.join('app', 'api', '*')] | ||||||
| 
 | 
 | ||||||
|     config.to_prepare do |     config.to_prepare do | ||||||
|       Doorkeeper::AuthorizationsController.layout 'auth' |       Doorkeeper::ApplicationsController.layout           'dashboard' | ||||||
|       Doorkeeper::AuthorizedApplicationsController.layout 'auth' |       Doorkeeper::AuthorizedApplicationsController.layout 'dashboard' | ||||||
|  |       Doorkeeper::AuthorizationsController.layout         'auth' | ||||||
|     end |     end | ||||||
|   end |   end | ||||||
| end | end | ||||||
|  |  | ||||||
|  | @ -1 +1 @@ | ||||||
| $redis = Redis.new(host: ENV['REDIS_HOST'] || 'localhost', port: ENV['REDIS_PORT'] || 6379) | $redis = Redis.new(host: ENV['REDIS_HOST'] || 'localhost', port: ENV['REDIS_PORT'] || 6379, driver: :hiredis) | ||||||
|  |  | ||||||
|  | @ -0,0 +1,13 @@ | ||||||
|  | workers Integer(ENV['WEB_CONCURRENCY'] || 2) | ||||||
|  | threads_count = Integer(ENV['MAX_THREADS'] || 5) | ||||||
|  | threads threads_count, threads_count | ||||||
|  | 
 | ||||||
|  | preload_app! | ||||||
|  | 
 | ||||||
|  | rackup      DefaultRackup | ||||||
|  | port        ENV['PORT']     || 3000 | ||||||
|  | environment ENV['RACK_ENV'] || 'development' | ||||||
|  | 
 | ||||||
|  | on_worker_boot do | ||||||
|  |   ActiveRecord::Base.establish_connection | ||||||
|  | end | ||||||
|  | @ -49,5 +49,7 @@ Rails.application.routes.draw do | ||||||
|     end |     end | ||||||
|   end |   end | ||||||
| 
 | 
 | ||||||
|  |   get '/mentions', to: 'home#mentions', as: :mentions | ||||||
|  | 
 | ||||||
|   root 'home#index' |   root 'home#index' | ||||||
| end | end | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue