Skip to content
Snippets Groups Projects
Commit aab330eb authored by Eugen Rochko's avatar Eugen Rochko
Browse files

Adjusting design of public pages, optimizing account page queries

parent ab80ebde
No related branches found
No related tags found
No related merge requests found
.card {
background: $primary-color image-url('background-photo.jpeg');
background-size: cover;
padding: 80px 0;
padding-bottom: 30px;
padding: 60px 0;
padding-bottom: 10px;
border-radius: 4px 4px 0 0;
.bio {
}
.name {
display: block;
font-size: 20px;
......@@ -37,4 +33,38 @@
border-radius: 120px;
}
}
.details {
display: flex;
margin-top: 30px;
}
.counter {
width: 80px;
color: #9baec8;
padding: 0 10px;
border-right: 1px solid #9baec8;
cursor: default;
.counter-label {
font-size: 12px;
text-transform: uppercase;
display: block;
margin-bottom: 5px;
}
.counter-number {
font-weight: 500;
font-size: 18px;
color: #fff;
}
}
.bio {
flex: 1;
font-size: 14px;
line-height: 18px;
padding: 5px 10px;
color: #d9e1e8;
}
}
......@@ -181,7 +181,6 @@ body {
margin-top: 30px;
text-align: center;
a {
color: #9baec8;
text-decoration: none;
......
......@@ -9,34 +9,38 @@
border-left: 2px solid #fff;
&.entry-reblog {
border-left: 2px solid $tertiary-color;
.content {
a {
color: $tertiary-color;
}
}
border-left-color: #2b90d9;
}
&.entry-predecessor, &.entry-successor {
.content {
a {
}
}
background: #d9e1e8;
border-left-color: #d9e1e8;
}
&.entry-follow, &.entry-favourite {
.content {
padding-top: 10px;
padding-bottom: 10px;
strong {
font-weight: 500;
}
}
}
&:last-child {
border-bottom: 0;
border-radius: 0 0 4px 0;
border-radius: 0 0 4px 4px;
}
}
&.activity-stream-headless {
.entry:first-child {
border-radius: 4px 4px 0 0;
&:last-child {
border-radius: 4px;
}
}
}
......
......@@ -5,6 +5,8 @@ class AccountsController < ApplicationController
before_action :set_webfinger_header
def show
@statuses = @account.statuses.order('id desc').includes(thread: [:account], reblog: [:account], stream_entry: [])
respond_to do |format|
format.html
format.atom
......
class Status < ActiveRecord::Base
belongs_to :account, inverse_of: :statuses
belongs_to :thread, foreign_key: 'in_reply_to_id', class_name: 'Status'
belongs_to :reblog, foreign_key: 'reblog_of_id', class_name: 'Status'
belongs_to :thread, foreign_key: 'in_reply_to_id', class_name: 'Status', inverse_of: :replies
belongs_to :reblog, foreign_key: 'reblog_of_id', class_name: 'Status', inverse_of: :reblogs
has_one :stream_entry, as: :activity, dependent: :destroy
has_many :favourites, inverse_of: :status, dependent: :destroy
has_many :reblogs, foreign_key: 'reblog_of_id', class_name: 'Status'
has_many :replies, foreign_key: 'in_reply_to_id', class_name: 'Status'
has_many :reblogs, foreign_key: 'reblog_of_id', class_name: 'Status', inverse_of: :reblog
has_many :replies, foreign_key: 'in_reply_to_id', class_name: 'Status', inverse_of: :thread
has_many :mentioned_accounts, class_name: 'Mention', dependent: :destroy
validates :account, presence: true
......
......@@ -4,11 +4,21 @@
.card
.avatar= image_tag @account.avatar.url(:large)
.bio
%h1.name
= @account.display_name.blank? ? @account.username : @account.display_name
%small= "@#{@account.username}"
%h1.name
= @account.display_name.blank? ? @account.username : @account.display_name
%small= "@#{@account.username}"
.details
.counter
%span.counter-label Posts
%span.counter-number= @account.statuses.count
.counter
%span.counter-label Following
%span.counter-number= @account.following.count
.counter
%span.counter-label Followers
%span.counter-number= @account.followers.count
.bio
%p= @account.note
.activity-stream
- @account.statuses.order('id desc').each do |status|
- @statuses.each do |status|
= render partial: 'stream_entries/status', locals: { status: status, include_threads: false, is_successor: false, is_predecessor: false }
.entry.entry-follow
.content
%strong= follow.account.acct
%strong= link_to follow.account.acct, account_path(follow.account)
is now following
%strong= follow.target_account.acct
%strong= link_to follow.target_account.acct, url_for_target(follow.target_account)
- content_for :header_tags do
%link{ rel: 'alternate', type: 'application/atom+xml', href: account_stream_entry_url(@account, @stream_entry, format: 'atom') }/
.activity-stream
.activity-stream.activity-stream-headless
= render partial: @type, locals: { @type.to_sym => @stream_entry.activity, include_threads: true, is_predecessor: false, is_successor: false }
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment