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?
 | 
			
		||||
      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
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user