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

Fix for single status pages

parent 85d89b47
No related branches found
No related tags found
No related merge requests found
......@@ -11,8 +11,8 @@ class AccountsController < ApplicationController
if user_signed_in?
status_ids = @statuses.collect { |s| [s.id, s.reblog_of_id] }.flatten.uniq
@favourited = Favourite.where(status_id: status_ids).where(account_id: current_user.account_id).map { |f| [f.status_id, true] }.to_h
@reblogged = Status.where(reblog_of_id: status_ids).where(account_id: current_user.account_id).map { |s| [s.reblog_of_id, true] }.to_h
@favourited = Status.favourites_map(status_ids, current_user.account_id)
@reblogged = Status.reblogs_map(status_ids, current_user.account_id)
else
@favourited = {}
@reblogged = {}
......
......@@ -7,6 +7,20 @@ class StreamEntriesController < ApplicationController
def show
@type = @stream_entry.activity_type.downcase
if @stream_entry.activity_type == 'Status'
@ancestors = @stream_entry.activity.ancestors.with_includes.with_counters
@descendants = @stream_entry.activity.descendants.with_includes.with_counters
if user_signed_in?
status_ids = [@stream_entry.activity_id] + @ancestors.map { |s| s.id } + @descendants.map { |s| s.id }
@favourited = Status.favourites_map(status_ids, current_user.account_id)
@reblogged = Status.reblogs_map(status_ids, current_user.account_id)
else
@favourited = {}
@reblogged = {}
end
end
respond_to do |format|
format.html
format.atom
......
......@@ -75,4 +75,12 @@ class Status < ApplicationRecord
def self.as_mentions_timeline(account)
self.where(id: Mention.where(account: account).pluck(:status_id)).with_includes.with_counters
end
def self.favourites_map(status_ids, account_id)
Favourite.where(status_id: status_ids).where(account_id: account_id).map { |f| [f.status_id, true] }.to_h
end
def self.reblogs_map(status_ids, account_id)
self.where(reblog_of_id: status_ids).where(account_id: account_id).map { |s| [s.reblog_of_id, true] }.to_h
end
end
......@@ -4,7 +4,7 @@
- centered = include_threads && !is_predecessor && !is_successor
- if status.reply? && include_threads
- status.ancestors.with_includes.with_counters.each do |status|
- @ancestors.each do |status|
= render partial: 'status', locals: { status: status, is_predecessor: true }
.entry{ class: entry_classes(status, is_predecessor, is_successor, include_threads) }
......@@ -43,5 +43,5 @@
%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|
- @descendants.each do |status|
= render partial: 'status', locals: { status: status, is_successor: true }
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