Change followers page to relationships page in admin UI (#12927)
Allow browsing and filtering all relationships instead of just followers, unify the codebase with the user-facing relationship manager, add ability to see who the user invited
This commit is contained in:
		
					parent
					
						
							
								27f9aa3477
							
						
					
				
			
			
				commit
				
					
						c0006a004d
					
				
			
		
					 9 changed files with 181 additions and 94 deletions
				
			
		|  | @ -19,53 +19,13 @@ class RelationshipsController < ApplicationController | |||
|   rescue ActionController::ParameterMissing | ||||
|     # Do nothing | ||||
|   ensure | ||||
|     redirect_to relationships_path(current_params) | ||||
|     redirect_to relationships_path(filter_params) | ||||
|   end | ||||
| 
 | ||||
|   private | ||||
| 
 | ||||
|   def set_accounts | ||||
|     @accounts = relationships_scope.page(params[:page]).per(40) | ||||
|   end | ||||
| 
 | ||||
|   def relationships_scope | ||||
|     scope = begin | ||||
|       if following_relationship? | ||||
|         current_account.following.eager_load(:account_stat).reorder(nil) | ||||
|       else | ||||
|         current_account.followers.eager_load(:account_stat).reorder(nil) | ||||
|       end | ||||
|     end | ||||
| 
 | ||||
|     scope.merge!(Follow.recent)             if params[:order].blank? || params[:order] == 'recent' | ||||
|     scope.merge!(Account.by_recent_status)  if params[:order] == 'active' | ||||
|     scope.merge!(mutual_relationship_scope) if mutual_relationship? | ||||
|     scope.merge!(moved_account_scope)       if params[:status] == 'moved' | ||||
|     scope.merge!(primary_account_scope)     if params[:status] == 'primary' | ||||
|     scope.merge!(by_domain_scope)           if params[:by_domain].present? | ||||
|     scope.merge!(dormant_account_scope)     if params[:activity] == 'dormant' | ||||
| 
 | ||||
|     scope | ||||
|   end | ||||
| 
 | ||||
|   def mutual_relationship_scope | ||||
|     Account.where(id: current_account.following) | ||||
|   end | ||||
| 
 | ||||
|   def moved_account_scope | ||||
|     Account.where.not(moved_to_account_id: nil) | ||||
|   end | ||||
| 
 | ||||
|   def primary_account_scope | ||||
|     Account.where(moved_to_account_id: nil) | ||||
|   end | ||||
| 
 | ||||
|   def dormant_account_scope | ||||
|     AccountStat.where(last_status_at: nil).or(AccountStat.where(AccountStat.arel_table[:last_status_at].lt(1.month.ago))) | ||||
|   end | ||||
| 
 | ||||
|   def by_domain_scope | ||||
|     Account.where(domain: params[:by_domain]) | ||||
|     @accounts = RelationshipFilter.new(current_account, filter_params).results.page(params[:page]).per(40) | ||||
|   end | ||||
| 
 | ||||
|   def form_account_batch_params | ||||
|  | @ -84,7 +44,7 @@ class RelationshipsController < ApplicationController | |||
|     params[:relationship] == 'followed_by' | ||||
|   end | ||||
| 
 | ||||
|   def current_params | ||||
|   def filter_params | ||||
|     params.slice(:page, *RelationshipFilter::KEYS).permit(:page, *RelationshipFilter::KEYS) | ||||
|   end | ||||
| 
 | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue