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?
|
if @account.nil?
|
||||||
render :error
|
render :error
|
||||||
else
|
else
|
||||||
redirect_to web_url("accounts/#{@account.id}")
|
render :success
|
||||||
end
|
end
|
||||||
rescue ActiveRecord::RecordNotFound, Mastodon::NotPermittedError
|
rescue ActiveRecord::RecordNotFound, Mastodon::NotPermittedError
|
||||||
render :error
|
render :error
|
||||||
|
|
|
@ -375,3 +375,12 @@ code {
|
||||||
width: 50%;
|
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:
|
authorize_follow:
|
||||||
error: Unfortunately, there was an error looking up the remote account
|
error: Unfortunately, there was an error looking up the remote account
|
||||||
follow: Follow
|
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:'
|
prompt_html: 'You (<strong>%{self}</strong>) have requested to follow:'
|
||||||
title: Follow %{acct}
|
title: Follow %{acct}
|
||||||
datetime:
|
datetime:
|
||||||
|
|
|
@ -94,7 +94,7 @@ describe AuthorizeFollowsController do
|
||||||
end
|
end
|
||||||
|
|
||||||
it 'follows account when found' do
|
it 'follows account when found' do
|
||||||
target_account = double(id: '123')
|
target_account = Fabricate(:account)
|
||||||
result_account = double(target_account: target_account)
|
result_account = double(target_account: target_account)
|
||||||
service = double
|
service = double
|
||||||
allow(FollowService).to receive(:new).and_return(service)
|
allow(FollowService).to receive(:new).and_return(service)
|
||||||
|
@ -103,7 +103,7 @@ describe AuthorizeFollowsController do
|
||||||
post :create, params: { acct: 'acct:user@hostname' }
|
post :create, params: { acct: 'acct:user@hostname' }
|
||||||
|
|
||||||
expect(service).to have_received(:call).with(account, '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
|
end
|
||||||
end
|
end
|
||||||
|
|
Loading…
Reference in a new issue