about summary refs log tree commit diff
diff options
context:
space:
mode:
authorSTJrInuyasha <MattWCSTRFAN@gmail.com>2017-07-10 09:05:06 -0700
committerEugen Rochko <eugen@zeonfederated.com>2017-07-10 18:05:06 +0200
commit7a889a8e125a03e109b225cd83b0abcbdc76d95b (patch)
tree52aeb321afcb04bbeb6fa0c61a5ae8eec700d1cf
parentd081d4a4226ba317a1b653aa6eef57543cbe4430 (diff)
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)
-rw-r--r--app/controllers/authorize_follows_controller.rb2
-rw-r--r--app/javascript/styles/forms.scss9
-rw-r--r--app/views/authorize_follows/success.html.haml16
-rw-r--r--config/locales/en.yml6
-rw-r--r--spec/controllers/authorize_follows_controller_spec.rb4
5 files changed, 34 insertions, 3 deletions
diff --git a/app/controllers/authorize_follows_controller.rb b/app/controllers/authorize_follows_controller.rb
index da4ef022a..dccd1c209 100644
--- 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
index 7a181f36b..414dc4fe8 100644
--- 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
new file mode 100644
index 000000000..f0b495689
--- /dev/null
+++ 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
index 60e192491..8bb893d1c 100644
--- 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
index b801aa661..26e46a23c 100644
--- 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