Fix for single status pages
parent
85d89b472d
commit
762157ee4e
|
@ -11,8 +11,8 @@ class AccountsController < ApplicationController
|
||||||
|
|
||||||
if user_signed_in?
|
if user_signed_in?
|
||||||
status_ids = @statuses.collect { |s| [s.id, s.reblog_of_id] }.flatten.uniq
|
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
|
@favourited = Status.favourites_map(status_ids, current_user.account_id)
|
||||||
@reblogged = Status.where(reblog_of_id: status_ids).where(account_id: current_user.account_id).map { |s| [s.reblog_of_id, true] }.to_h
|
@reblogged = Status.reblogs_map(status_ids, current_user.account_id)
|
||||||
else
|
else
|
||||||
@favourited = {}
|
@favourited = {}
|
||||||
@reblogged = {}
|
@reblogged = {}
|
||||||
|
|
|
@ -7,6 +7,20 @@ class StreamEntriesController < ApplicationController
|
||||||
def show
|
def show
|
||||||
@type = @stream_entry.activity_type.downcase
|
@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|
|
respond_to do |format|
|
||||||
format.html
|
format.html
|
||||||
format.atom
|
format.atom
|
||||||
|
|
|
@ -75,4 +75,12 @@ class Status < ApplicationRecord
|
||||||
def self.as_mentions_timeline(account)
|
def self.as_mentions_timeline(account)
|
||||||
self.where(id: Mention.where(account: account).pluck(:status_id)).with_includes.with_counters
|
self.where(id: Mention.where(account: account).pluck(:status_id)).with_includes.with_counters
|
||||||
end
|
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
|
end
|
||||||
|
|
|
@ -4,7 +4,7 @@
|
||||||
- centered = include_threads && !is_predecessor && !is_successor
|
- centered = include_threads && !is_predecessor && !is_successor
|
||||||
|
|
||||||
- if status.reply? && include_threads
|
- 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 }
|
= render partial: 'status', locals: { status: status, is_predecessor: true }
|
||||||
|
|
||||||
.entry{ class: entry_classes(status, is_predecessor, is_successor, include_threads) }
|
.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'
|
%li.transparent-background= link_to '', media.file.url, style: "background-image: url(#{media.file.url(:small)})", target: '_blank'
|
||||||
|
|
||||||
- if include_threads
|
- 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 }
|
= render partial: 'status', locals: { status: status, is_successor: true }
|
||||||
|
|
Reference in New Issue