commit: 7a889a8e125a03e109b225cd83b0abcbdc76d95b
parent: d081d4a4226ba317a1b653aa6eef57543cbe4430
Author: STJrInuyasha <MattWCSTRFAN@gmail.com>
Date: Mon, 10 Jul 2017 09:05:06 -0700
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)
Diffstat:
5 files changed, 34 insertions(+), 3 deletions(-)
diff --git a/app/controllers/authorize_follows_controller.rb b/app/controllers/authorize_follows_controller.rb
@@ -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
diff --git a/app/javascript/styles/forms.scss b/app/javascript/styles/forms.scss
@@ -375,3 +375,12 @@ code {
width: 50%;
}
}
+
+.post-follow-actions {
+ text-align: center;
+ color: $ui-primary-color;
+
+ div {
+ margin-bottom: 4px;
+ }
+}
diff --git a/app/views/authorize_follows/success.html.haml b/app/views/authorize_follows/success.html.haml
@@ -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')
diff --git a/config/locales/en.yml b/config/locales/en.yml
@@ -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:
diff --git a/spec/controllers/authorize_follows_controller_spec.rb b/spec/controllers/authorize_follows_controller_spec.rb
@@ -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