Adding config for puma, dashboard layout, fixing some queries
This commit is contained in:
		
							parent
							
								
									447cfef62d
								
							
						
					
					
						commit
						aab9f57e36
					
				
					 25 changed files with 264 additions and 134 deletions
				
			
		
							
								
								
									
										4
									
								
								Gemfile
									
										
									
									
									
								
							
							
						
						
									
										4
									
								
								Gemfile
									
										
									
									
									
								
							| 
						 | 
				
			
			@ -14,7 +14,7 @@ gem 'puma'
 | 
			
		|||
gem 'haml-rails'
 | 
			
		||||
gem 'pg'
 | 
			
		||||
gem 'dotenv-rails'
 | 
			
		||||
gem 'font-awesome-sass'
 | 
			
		||||
gem 'font-awesome-rails'
 | 
			
		||||
 | 
			
		||||
gem 'paranoia', '~> 2.0'
 | 
			
		||||
gem 'paperclip', '~> 4.3'
 | 
			
		||||
| 
						 | 
				
			
			@ -34,7 +34,6 @@ gem 'hiredis'
 | 
			
		|||
gem 'redis', '~>3.2'
 | 
			
		||||
gem 'fast_blank'
 | 
			
		||||
gem 'htmlentities'
 | 
			
		||||
gem 'message_bus'
 | 
			
		||||
gem 'onebox'
 | 
			
		||||
 | 
			
		||||
group :development, :test do
 | 
			
		||||
| 
						 | 
				
			
			@ -52,7 +51,6 @@ end
 | 
			
		|||
 | 
			
		||||
group :development do
 | 
			
		||||
  gem 'web-console', '~> 2.0'
 | 
			
		||||
  gem 'spring'
 | 
			
		||||
  gem 'rubocop', require: false
 | 
			
		||||
  gem 'better_errors'
 | 
			
		||||
  gem 'binding_of_caller'
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										44
									
								
								Gemfile.lock
									
										
									
									
									
								
							
							
						
						
									
										44
									
								
								Gemfile.lock
									
										
									
									
									
								
							| 
						 | 
				
			
			@ -41,7 +41,7 @@ GEM
 | 
			
		|||
    ast (2.2.0)
 | 
			
		||||
    backport_new_renderer (1.0.0)
 | 
			
		||||
      rails
 | 
			
		||||
    bcrypt (3.1.10)
 | 
			
		||||
    bcrypt (3.1.11)
 | 
			
		||||
    better_errors (2.1.1)
 | 
			
		||||
      coderay (>= 1.0.0)
 | 
			
		||||
      erubis (>= 2.6.6)
 | 
			
		||||
| 
						 | 
				
			
			@ -61,7 +61,7 @@ GEM
 | 
			
		|||
      coffee-script-source
 | 
			
		||||
      execjs
 | 
			
		||||
    coffee-script-source (1.10.0)
 | 
			
		||||
    concurrent-ruby (1.0.0)
 | 
			
		||||
    concurrent-ruby (1.0.1)
 | 
			
		||||
    crack (0.4.3)
 | 
			
		||||
      safe_yaml (~> 1.0.0)
 | 
			
		||||
    debug_inspector (0.0.2)
 | 
			
		||||
| 
						 | 
				
			
			@ -74,7 +74,7 @@ GEM
 | 
			
		|||
      warden (~> 1.2.3)
 | 
			
		||||
    diff-lcs (1.2.5)
 | 
			
		||||
    docile (1.1.5)
 | 
			
		||||
    domain_name (0.5.20160216)
 | 
			
		||||
    domain_name (0.5.20160309)
 | 
			
		||||
      unf (>= 0.0.5, < 1.0.0)
 | 
			
		||||
    doorkeeper (3.1.0)
 | 
			
		||||
      railties (>= 3.2)
 | 
			
		||||
| 
						 | 
				
			
			@ -86,8 +86,8 @@ GEM
 | 
			
		|||
    execjs (2.6.0)
 | 
			
		||||
    fabrication (2.14.1)
 | 
			
		||||
    fast_blank (1.0.0)
 | 
			
		||||
    font-awesome-sass (4.5.0)
 | 
			
		||||
      sass (>= 3.2)
 | 
			
		||||
    font-awesome-rails (4.5.0.1)
 | 
			
		||||
      railties (>= 3.2, < 5.1)
 | 
			
		||||
    fuubar (2.0.0)
 | 
			
		||||
      rspec (~> 3.0)
 | 
			
		||||
      ruby-progressbar (~> 1.4)
 | 
			
		||||
| 
						 | 
				
			
			@ -126,8 +126,8 @@ GEM
 | 
			
		|||
    jbuilder (2.4.1)
 | 
			
		||||
      activesupport (>= 3.0.0, < 5.1)
 | 
			
		||||
      multi_json (~> 1.2)
 | 
			
		||||
    jquery-rails (4.1.0)
 | 
			
		||||
      rails-dom-testing (~> 1.0)
 | 
			
		||||
    jquery-rails (4.1.1)
 | 
			
		||||
      rails-dom-testing (>= 1, < 3)
 | 
			
		||||
      railties (>= 4.2.0)
 | 
			
		||||
      thor (>= 0.14, < 2.0)
 | 
			
		||||
    json (1.8.3)
 | 
			
		||||
| 
						 | 
				
			
			@ -136,11 +136,8 @@ GEM
 | 
			
		|||
      nokogiri (>= 1.5.9)
 | 
			
		||||
    mail (2.6.3)
 | 
			
		||||
      mime-types (>= 1.16, < 3)
 | 
			
		||||
    message_bus (1.1.1)
 | 
			
		||||
      rack (>= 1.1.3)
 | 
			
		||||
      redis
 | 
			
		||||
    method_source (0.8.2)
 | 
			
		||||
    mime-types (2.99)
 | 
			
		||||
    mime-types (2.99.1)
 | 
			
		||||
    mimemagic (0.3.0)
 | 
			
		||||
    mini_portile2 (2.0.0)
 | 
			
		||||
    minitest (5.8.4)
 | 
			
		||||
| 
						 | 
				
			
			@ -149,7 +146,7 @@ GEM
 | 
			
		|||
    mustache (1.0.2)
 | 
			
		||||
    nokogiri (1.6.7.2)
 | 
			
		||||
      mini_portile2 (~> 2.0.0.rc2)
 | 
			
		||||
    oj (2.14.5)
 | 
			
		||||
    oj (2.14.6)
 | 
			
		||||
    onebox (1.5.35)
 | 
			
		||||
      htmlentities (~> 4.3.4)
 | 
			
		||||
      moneta (~> 0.8)
 | 
			
		||||
| 
						 | 
				
			
			@ -179,7 +176,7 @@ GEM
 | 
			
		|||
      slop (~> 3.4)
 | 
			
		||||
    pry-rails (0.3.4)
 | 
			
		||||
      pry (>= 0.9.10)
 | 
			
		||||
    puma (2.16.0)
 | 
			
		||||
    puma (3.1.0)
 | 
			
		||||
    quiet_assets (1.1.0)
 | 
			
		||||
      railties (>= 3.1, < 5.0)
 | 
			
		||||
    rabl (0.12.0)
 | 
			
		||||
| 
						 | 
				
			
			@ -221,7 +218,7 @@ GEM
 | 
			
		|||
      rake (>= 0.8.7)
 | 
			
		||||
      thor (>= 0.18.1, < 2.0)
 | 
			
		||||
    rainbow (2.1.0)
 | 
			
		||||
    rake (10.5.0)
 | 
			
		||||
    rake (11.1.0)
 | 
			
		||||
    rdoc (4.2.2)
 | 
			
		||||
      json (~> 1.4)
 | 
			
		||||
    redis (3.2.2)
 | 
			
		||||
| 
						 | 
				
			
			@ -232,7 +229,7 @@ GEM
 | 
			
		|||
      rspec-core (~> 3.4.0)
 | 
			
		||||
      rspec-expectations (~> 3.4.0)
 | 
			
		||||
      rspec-mocks (~> 3.4.0)
 | 
			
		||||
    rspec-core (3.4.3)
 | 
			
		||||
    rspec-core (3.4.4)
 | 
			
		||||
      rspec-support (~> 3.4.0)
 | 
			
		||||
    rspec-expectations (3.4.0)
 | 
			
		||||
      diff-lcs (>= 1.2.0, < 2.0)
 | 
			
		||||
| 
						 | 
				
			
			@ -249,12 +246,12 @@ GEM
 | 
			
		|||
      rspec-mocks (~> 3.4.0)
 | 
			
		||||
      rspec-support (~> 3.4.0)
 | 
			
		||||
    rspec-support (3.4.1)
 | 
			
		||||
    rubocop (0.37.2)
 | 
			
		||||
      parser (>= 2.3.0.4, < 3.0)
 | 
			
		||||
    rubocop (0.38.0)
 | 
			
		||||
      parser (>= 2.3.0.6, < 3.0)
 | 
			
		||||
      powerpack (~> 0.1)
 | 
			
		||||
      rainbow (>= 1.99.1, < 3.0)
 | 
			
		||||
      ruby-progressbar (~> 1.7)
 | 
			
		||||
      unicode-display_width (~> 0.3)
 | 
			
		||||
      unicode-display_width (~> 1.0, >= 1.0.1)
 | 
			
		||||
    ruby-progressbar (1.7.5)
 | 
			
		||||
    ruby_parser (3.8.1)
 | 
			
		||||
      sexp_processor (~> 4.1)
 | 
			
		||||
| 
						 | 
				
			
			@ -276,11 +273,10 @@ GEM
 | 
			
		|||
      simplecov-html (~> 0.10.0)
 | 
			
		||||
    simplecov-html (0.10.0)
 | 
			
		||||
    slop (3.6.0)
 | 
			
		||||
    spring (1.6.3)
 | 
			
		||||
    sprockets (3.5.2)
 | 
			
		||||
      concurrent-ruby (~> 1.0)
 | 
			
		||||
      rack (> 1, < 3)
 | 
			
		||||
    sprockets-rails (3.0.1)
 | 
			
		||||
    sprockets-rails (3.0.4)
 | 
			
		||||
      actionpack (>= 4.0)
 | 
			
		||||
      activesupport (>= 4.0)
 | 
			
		||||
      sprockets (>= 3.0.0)
 | 
			
		||||
| 
						 | 
				
			
			@ -299,7 +295,7 @@ GEM
 | 
			
		|||
    unf (0.1.4)
 | 
			
		||||
      unf_ext
 | 
			
		||||
    unf_ext (0.0.7.2)
 | 
			
		||||
    unicode-display_width (0.3.1)
 | 
			
		||||
    unicode-display_width (1.0.2)
 | 
			
		||||
    warden (1.2.6)
 | 
			
		||||
      rack (>= 1.0)
 | 
			
		||||
    web-console (2.3.0)
 | 
			
		||||
| 
						 | 
				
			
			@ -307,7 +303,7 @@ GEM
 | 
			
		|||
      binding_of_caller (>= 0.7.2)
 | 
			
		||||
      railties (>= 4.0)
 | 
			
		||||
      sprockets-rails (>= 2.0, < 4.0)
 | 
			
		||||
    webmock (1.24.1)
 | 
			
		||||
    webmock (1.24.2)
 | 
			
		||||
      addressable (>= 2.3.6)
 | 
			
		||||
      crack (>= 0.3.2)
 | 
			
		||||
      hashdiff
 | 
			
		||||
| 
						 | 
				
			
			@ -326,7 +322,7 @@ DEPENDENCIES
 | 
			
		|||
  dotenv-rails
 | 
			
		||||
  fabrication
 | 
			
		||||
  fast_blank
 | 
			
		||||
  font-awesome-sass
 | 
			
		||||
  font-awesome-rails
 | 
			
		||||
  fuubar
 | 
			
		||||
  goldfinger
 | 
			
		||||
  haml-rails
 | 
			
		||||
| 
						 | 
				
			
			@ -335,7 +331,6 @@ DEPENDENCIES
 | 
			
		|||
  http
 | 
			
		||||
  jbuilder (~> 2.0)
 | 
			
		||||
  jquery-rails
 | 
			
		||||
  message_bus
 | 
			
		||||
  nokogiri
 | 
			
		||||
  oj
 | 
			
		||||
  onebox
 | 
			
		||||
| 
						 | 
				
			
			@ -357,7 +352,6 @@ DEPENDENCIES
 | 
			
		|||
  sass-rails (~> 5.0)
 | 
			
		||||
  sdoc (~> 0.4.0)
 | 
			
		||||
  simplecov
 | 
			
		||||
  spring
 | 
			
		||||
  sqlite3
 | 
			
		||||
  therubyracer
 | 
			
		||||
  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+Mono);
 | 
			
		||||
@import "font-awesome-sprockets";
 | 
			
		||||
@import "font-awesome";
 | 
			
		||||
 | 
			
		||||
/* http://meyerweb.com/eric/tools/css/reset/
 | 
			
		||||
| 
						 | 
				
			
			@ -334,3 +333,4 @@ body {
 | 
			
		|||
@import 'home';
 | 
			
		||||
@import 'accounts';
 | 
			
		||||
@import 'stream_entries';
 | 
			
		||||
@import 'dashboard'
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										130
									
								
								app/assets/stylesheets/dashboard.scss
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										130
									
								
								app/assets/stylesheets/dashboard.scss
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -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 {
 | 
			
		||||
      background: #d9e1e8;
 | 
			
		||||
      border-left-color: #d9e1e8;
 | 
			
		||||
 | 
			
		||||
      .header {
 | 
			
		||||
        .header__right {
 | 
			
		||||
          .counter-btn {
 | 
			
		||||
            color: darken(#d9e1e8, 15%);
 | 
			
		||||
          }
 | 
			
		||||
        }
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    &.entry-follow, &.entry-favourite {
 | 
			
		||||
| 
						 | 
				
			
			@ -43,6 +51,14 @@
 | 
			
		|||
    }
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  &.activity-stream-embedded {
 | 
			
		||||
    box-shadow: none;
 | 
			
		||||
 | 
			
		||||
    .entry {
 | 
			
		||||
      border-radius: 0;
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  .entry__container {
 | 
			
		||||
    display: flex;
 | 
			
		||||
  }
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -5,7 +5,7 @@ class AccountsController < ApplicationController
 | 
			
		|||
  before_action :set_webfinger_header
 | 
			
		||||
 | 
			
		||||
  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|
 | 
			
		||||
      format.html
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -15,7 +15,7 @@ class Api::AccountsController < ApiController
 | 
			
		|||
  end
 | 
			
		||||
 | 
			
		||||
  def statuses
 | 
			
		||||
    @statuses = @account.statuses.order('created_at desc')
 | 
			
		||||
    @statuses = @account.statuses.with_includes.with_counts.order('created_at desc')
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  def follow
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,8 +1,16 @@
 | 
			
		|||
class HomeController < ApplicationController
 | 
			
		||||
  layout 'dashboard'
 | 
			
		||||
 | 
			
		||||
  before_action :authenticate_user!
 | 
			
		||||
 | 
			
		||||
  def index
 | 
			
		||||
    feed      = Feed.new(:home, current_user.account)
 | 
			
		||||
    @statuses = feed.get(20, (params[:offset] || 0).to_i)
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  def mentions
 | 
			
		||||
    feed      = Feed.new(:mentions, current_user.account)
 | 
			
		||||
    @statuses = feed.get(20, (params[:offset] || 0).to_i)
 | 
			
		||||
    render action: :index
 | 
			
		||||
  end
 | 
			
		||||
end
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -49,6 +49,14 @@ class Status < ActiveRecord::Base
 | 
			
		|||
    content.truncate(80, omission: "...")
 | 
			
		||||
  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
 | 
			
		||||
    m = []
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -4,8 +4,8 @@ attributes :id, :created_at, :in_reply_to_id
 | 
			
		|||
node(:uri)              { |status| uri_for_target(status) }
 | 
			
		||||
node(:content)          { |status| status.local? ? linkify(status) : status.content }
 | 
			
		||||
node(:url)              { |status| url_for_target(status) }
 | 
			
		||||
node(:reblogs_count)    { |status| status.reblogs.count }
 | 
			
		||||
node(:favourites_count) { |status| status.favourites.count }
 | 
			
		||||
node(:reblogs_count)    { |status| status.reblogs_count }
 | 
			
		||||
node(:favourites_count) { |status| status.favourites_count }
 | 
			
		||||
node(:favourited)       { |status| current_user.account.favourited?(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|
 | 
			
		||||
    = render partial: 'stream_entries/status', locals: { status: status, include_threads: false, is_successor: false, is_predecessor: false }
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -8,5 +8,4 @@
 | 
			
		|||
    = csrf_meta_tags
 | 
			
		||||
    = yield :header_tags
 | 
			
		||||
  %body
 | 
			
		||||
    .container
 | 
			
		||||
      = content_for?(:content) ? yield(:content) : yield
 | 
			
		||||
    = content_for?(:content) ? yield(:content) : yield
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,11 +1,12 @@
 | 
			
		|||
- content_for :content do
 | 
			
		||||
  .logo-container
 | 
			
		||||
    %h1
 | 
			
		||||
      = link_to root_path do
 | 
			
		||||
        = render partial: 'application/logo', locals: { dim: 200 }
 | 
			
		||||
        %small= Rails.configuration.x.local_domain
 | 
			
		||||
  .container
 | 
			
		||||
    .logo-container
 | 
			
		||||
      %h1
 | 
			
		||||
        = link_to root_path do
 | 
			
		||||
          = render partial: 'application/logo', locals: { dim: 200 }
 | 
			
		||||
          %small= Rails.configuration.x.local_domain
 | 
			
		||||
 | 
			
		||||
  .form-container
 | 
			
		||||
    = yield
 | 
			
		||||
    .form-container
 | 
			
		||||
      = yield
 | 
			
		||||
 | 
			
		||||
= render template: "layouts/application"
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										45
									
								
								app/views/layouts/dashboard.html.haml
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										45
									
								
								app/views/layouts/dashboard.html.haml
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -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
 | 
			
		||||
  = yield
 | 
			
		||||
  .container= yield
 | 
			
		||||
  .footer
 | 
			
		||||
    .domain= Rails.configuration.x.local_domain
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -24,10 +24,10 @@
 | 
			
		|||
        .header__right
 | 
			
		||||
          .counter-btn{ class: reblogged_by_me_class(status) }
 | 
			
		||||
            %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) }
 | 
			
		||||
            %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
 | 
			
		||||
        = 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
 | 
			
		||||
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__)
 | 
			
		||||
require_relative '../config/boot'
 | 
			
		||||
require 'rails/commands'
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										5
									
								
								bin/rake
									
										
									
									
									
								
							
							
						
						
									
										5
									
								
								bin/rake
									
										
									
									
									
								
							| 
						 | 
				
			
			@ -1,9 +1,4 @@
 | 
			
		|||
#!/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 'rake'
 | 
			
		||||
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.to_prepare do
 | 
			
		||||
      Doorkeeper::AuthorizationsController.layout 'auth'
 | 
			
		||||
      Doorkeeper::AuthorizedApplicationsController.layout 'auth'
 | 
			
		||||
      Doorkeeper::ApplicationsController.layout           'dashboard'
 | 
			
		||||
      Doorkeeper::AuthorizedApplicationsController.layout 'dashboard'
 | 
			
		||||
      Doorkeeper::AuthorizationsController.layout         'auth'
 | 
			
		||||
    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)
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										13
									
								
								config/puma.rb
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										13
									
								
								config/puma.rb
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -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
 | 
			
		||||
 | 
			
		||||
  get '/mentions', to: 'home#mentions', as: :mentions
 | 
			
		||||
 | 
			
		||||
  root 'home#index'
 | 
			
		||||
end
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		
		Reference in a new issue