mirror of https://github.com/mastodon/mastodon
Adding config for puma, dashboard layout, fixing some queries
parent
447cfef62d
commit
aab9f57e36
@ -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;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
@ -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
|
||||||
|
@ -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 }
|
||||||
|
@ -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,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'
|
||||||
|
@ -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
|
||||||
|
@ -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
|
|
@ -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
|
Loading…
Reference in New Issue