Remote following success page (#4129)
* Added a success page to remote following Includes follow-through links to web (the old redirect target) and back to the remote user's profile * Use Account.new in spec instead of a fake with only id (fixes spec) * Fabricate(:account) over Account.new * Remove self from the success text (and all HTML with it)
This commit is contained in:
parent
d081d4a422
commit
7a889a8e12
5 changed files with 34 additions and 3 deletions
|
@ -15,7 +15,7 @@ class AuthorizeFollowsController < ApplicationController
|
|||
if @account.nil?
|
||||
render :error
|
||||
else
|
||||
redirect_to web_url("accounts/#{@account.id}")
|
||||
render :success
|
||||
end
|
||||
rescue ActiveRecord::RecordNotFound, Mastodon::NotPermittedError
|
||||
render :error
|
||||
|
|
|
@ -375,3 +375,12 @@ code {
|
|||
width: 50%;
|
||||
}
|
||||
}
|
||||
|
||||
.post-follow-actions {
|
||||
text-align: center;
|
||||
color: $ui-primary-color;
|
||||
|
||||
div {
|
||||
margin-bottom: 4px;
|
||||
}
|
||||
}
|
||||
|
|
16
app/views/authorize_follows/success.html.haml
Normal file
16
app/views/authorize_follows/success.html.haml
Normal file
|
@ -0,0 +1,16 @@
|
|||
- content_for :page_title do
|
||||
= t('authorize_follow.title', acct: @account.acct)
|
||||
|
||||
.form-container
|
||||
.follow-prompt
|
||||
- if @account.locked?
|
||||
%h2= t('authorize_follow.follow_request')
|
||||
- else
|
||||
%h2= t('authorize_follow.following')
|
||||
|
||||
= render 'card', account: @account
|
||||
|
||||
.post-follow-actions
|
||||
%div= link_to t('authorize_follow.post_follow.web'), web_url("accounts/#{@account.id}"), class: 'button button--block'
|
||||
%div= link_to t('authorize_follow.post_follow.return'), @account.url, class: 'button button--block'
|
||||
%div= t('authorize_follow.post_follow.close')
|
|
@ -221,6 +221,12 @@ en:
|
|||
authorize_follow:
|
||||
error: Unfortunately, there was an error looking up the remote account
|
||||
follow: Follow
|
||||
following: 'Success! You are now following:'
|
||||
follow_request: 'You have sent a follow request to:'
|
||||
post_follow:
|
||||
web: Go to web
|
||||
return: Return to the user's profile
|
||||
close: Or, you can just close this window.
|
||||
prompt_html: 'You (<strong>%{self}</strong>) have requested to follow:'
|
||||
title: Follow %{acct}
|
||||
datetime:
|
||||
|
|
|
@ -94,7 +94,7 @@ describe AuthorizeFollowsController do
|
|||
end
|
||||
|
||||
it 'follows account when found' do
|
||||
target_account = double(id: '123')
|
||||
target_account = Fabricate(:account)
|
||||
result_account = double(target_account: target_account)
|
||||
service = double
|
||||
allow(FollowService).to receive(:new).and_return(service)
|
||||
|
@ -103,7 +103,7 @@ describe AuthorizeFollowsController do
|
|||
post :create, params: { acct: 'acct:user@hostname' }
|
||||
|
||||
expect(service).to have_received(:call).with(account, 'user@hostname')
|
||||
expect(response).to redirect_to(web_url('accounts/123'))
|
||||
expect(response).to render_template(:success)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
Loading…
Reference in a new issue