fix interaction buttons on public pages

staging
multiple creatures 2019-08-10 03:21:04 -05:00
parent 2a41140dc7
commit 8a7605e502
5 changed files with 38 additions and 31 deletions

View File

@ -9,18 +9,10 @@ class RemoteFollowController < ApplicationController
before_action :set_body_classes
def new
@remote_follow = RemoteFollow.new(session_params)
end
raise Mastodon::NotPermittedError unless user_signed_in?
def create
@remote_follow = RemoteFollow.new(resource_params)
if @remote_follow.valid?
session[:remote_follow] = @remote_follow.acct
redirect_to @remote_follow.subscribe_address_for(@account)
else
render :new
end
FollowService.new.call(current_account, @account)
redirect_to TagManager.instance.url_for(@account)
end
private

View File

@ -5,24 +5,34 @@ class RemoteInteractionController < ApplicationController
layout 'modal'
before_action :set_interaction_type
before_action :set_status
before_action :set_body_classes
before_action :set_pack
before_action :set_status
def new
@remote_follow = RemoteFollow.new(session_params)
end
raise Mastodon::NotPermittedError unless user_signed_in?
def create
@remote_follow = RemoteFollow.new(resource_params)
if @remote_follow.valid?
session[:remote_follow] = @remote_follow.acct
redirect_to @remote_follow.interact_address_for(@status)
else
render :new
case params[:type]
when 'reblog'
if current_account.statuses.where(reblog: @status).exists?
status = current_account.statuses.find_by(reblog: @status)
RemoveStatusService.new.call(status)
else
ReblogService.new.call(current_account, @status)
end
when 'favourite'
if Favourite.where(account: current_account, status: @status).exists?
UnfavouriteService.new.call(current_account, @status)
else
FavouriteService.new.call(current_account, @status)
end
when 'follow'
FollowService.new.call(current_account, @status.account)
when 'unfollow'
UnfollowService.new.call(current_account, @status.account)
end
redirect_to TagManager.instance.url_for(@status)
end
private
@ -51,8 +61,4 @@ class RemoteInteractionController < ApplicationController
def set_pack
use_pack 'modal'
end
def set_interaction_type
@interaction_type = %w(reply reblog favourite).include?(params[:type]) ? params[:type] : 'reply'
end
end

View File

@ -605,6 +605,15 @@
.detailed-status__link {
color: inherit;
text-decoration: none;
}
.detailed-status__star-icon {
color: $gold-star;
}
.detailed-status__boost-icon {
color: $red-bookmark;
}
.detailed-status__favorites,

View File

@ -67,13 +67,13 @@
= fa_icon('lock')
- elsif user_signed_in? && !@account.user_hides_stats?
·
= link_to remote_interaction_path(status, type: :reblog), class: 'modal-button detailed-status__link', title: number_to_human(status.reblogs_count, strip_insignificant_zeros: true) do
= link_to remote_interaction_path(status, type: :reblog), class: "detailed-status__link #{user_signed_in? && @account.statuses.where(reblog: status).exists? ? 'detailed-status__boost-icon' : nil}", title: number_to_human(status.reblogs_count, strip_insignificant_zeros: true) do
= fa_icon('repeat')
= " "
- if user_signed_in? && !@account.user_hides_stats?
·
= link_to remote_interaction_path(status, type: :favourite), class: 'modal-button detailed-status__link', title: number_to_human(status.favourites_count, strip_insignificant_zeros: true) do
= link_to remote_interaction_path(status, type: :favourite), class: "detailed-status__link #{user_signed_in? && Favourite.where(account: @account, status: status).exists? ? 'detailed-status__star-icon' : nil}", title: number_to_human(status.favourites_count, strip_insignificant_zeros: true) do
= fa_icon('star')
= " "

View File

@ -53,12 +53,12 @@
- else
= fa_icon 'reply-all fw'
.status__action-bar__counter__label= obscured_counter status.replies_count
= link_to remote_interaction_path(status, type: :reblog), class: 'status__action-bar-button icon-button modal-button', style: 'font-size: 18px; width: 23.1429px; height: 23.1429px; line-height: 23.15px;' do
= link_to remote_interaction_path(status, type: :reblog), class: 'status__action-bar-button icon-button', style: 'font-size: 18px; width: 23.1429px; height: 23.1429px; line-height: 23.15px;' do
- if status.public_visibility? || status.unlisted_visibility?
= fa_icon 'repeat fw'
- elsif status.private_visibility?
= fa_icon 'lock fw'
- else
= fa_icon 'envelope fw'
= link_to remote_interaction_path(status, type: :favourite), class: 'status__action-bar-button icon-button modal-button', style: 'font-size: 18px; width: 23.1429px; height: 23.1429px; line-height: 23.15px;' do
= link_to remote_interaction_path(status, type: :favourite), class: 'status__action-bar-button icon-button', style: 'font-size: 18px; width: 23.1429px; height: 23.1429px; line-height: 23.15px;' do
= fa_icon 'star fw'