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:
		
				
					committed by
					
						
						Eugen Rochko
					
				
			
			
				
	
			
			
			
						parent
						
							d081d4a422
						
					
				
				
					commit
					7a889a8e12
				
			@@ -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
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user