Add dormant filter to relationship manager, rename other filters (#10308)
Rename "abandoned" to "moved", and "active" to "primary"
This commit is contained in:
		@@ -31,17 +31,18 @@ class RelationshipsController < ApplicationController
 | 
			
		||||
  def relationships_scope
 | 
			
		||||
    scope = begin
 | 
			
		||||
      if following_relationship?
 | 
			
		||||
        current_account.following.includes(:account_stat)
 | 
			
		||||
        current_account.following.joins(:account_stat)
 | 
			
		||||
      else
 | 
			
		||||
        current_account.followers.includes(:account_stat)
 | 
			
		||||
        current_account.followers.joins(:account_stat)
 | 
			
		||||
      end
 | 
			
		||||
    end
 | 
			
		||||
 | 
			
		||||
    scope.merge!(Follow.recent)
 | 
			
		||||
    scope.merge!(mutual_relationship_scope) if mutual_relationship?
 | 
			
		||||
    scope.merge!(abandoned_account_scope)   if params[:status] == 'abandoned'
 | 
			
		||||
    scope.merge!(active_account_scope)      if params[:status] == 'active'
 | 
			
		||||
    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
 | 
			
		||||
@@ -50,14 +51,18 @@ class RelationshipsController < ApplicationController
 | 
			
		||||
    Account.where(id: current_account.following)
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  def abandoned_account_scope
 | 
			
		||||
  def moved_account_scope
 | 
			
		||||
    Account.where.not(moved_to_account_id: nil)
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  def active_account_scope
 | 
			
		||||
  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])
 | 
			
		||||
  end
 | 
			
		||||
@@ -79,7 +84,7 @@ class RelationshipsController < ApplicationController
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  def current_params
 | 
			
		||||
    params.slice(:page, :status, :relationship, :by_domain).permit(:page, :status, :relationship, :by_domain)
 | 
			
		||||
    params.slice(:page, :status, :relationship, :by_domain, :activity).permit(:page, :status, :relationship, :by_domain, :activity)
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  def action_from_button
 | 
			
		||||
 
 | 
			
		||||
@@ -7,7 +7,7 @@ module Admin::FilterHelper
 | 
			
		||||
  CUSTOM_EMOJI_FILTERS = %i(local remote by_domain shortcode).freeze
 | 
			
		||||
  TAGS_FILTERS         = %i(hidden).freeze
 | 
			
		||||
  INSTANCES_FILTERS    = %i(limited by_domain).freeze
 | 
			
		||||
  FOLLOWERS_FILTERS    = %i(relationship status by_domain).freeze
 | 
			
		||||
  FOLLOWERS_FILTERS    = %i(relationship status by_domain activity).freeze
 | 
			
		||||
 | 
			
		||||
  FILTERS = ACCOUNT_FILTERS + REPORT_FILTERS + INVITE_FILTER + CUSTOM_EMOJI_FILTERS + TAGS_FILTERS + INSTANCES_FILTERS + FOLLOWERS_FILTERS
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -16,13 +16,20 @@
 | 
			
		||||
    %strong= t 'relationships.status'
 | 
			
		||||
    %ul
 | 
			
		||||
      %li= filter_link_to t('generic.all'), status: nil
 | 
			
		||||
      %li= filter_link_to t('relationships.active'), status: 'active'
 | 
			
		||||
      %li= filter_link_to t('relationships.abandoned'), status: 'abandoned'
 | 
			
		||||
      %li= filter_link_to t('relationships.primary'), status: 'primary'
 | 
			
		||||
      %li= filter_link_to t('relationships.moved'), status: 'moved'
 | 
			
		||||
 | 
			
		||||
  .filter-subset
 | 
			
		||||
    %strong= t 'relationships.activity'
 | 
			
		||||
    %ul
 | 
			
		||||
      %li= filter_link_to t('generic.all'), activity: nil
 | 
			
		||||
      %li= filter_link_to t('relationships.dormant'), activity: 'dormant'
 | 
			
		||||
 | 
			
		||||
= form_for(@form, url: relationships_path, method: :patch) do |f|
 | 
			
		||||
  = hidden_field_tag :page, params[:page] || 1
 | 
			
		||||
  = hidden_field_tag :relationship, params[:relationship]
 | 
			
		||||
  = hidden_field_tag :status, params[:status]
 | 
			
		||||
  = hidden_field_tag :activity, params[:activity]
 | 
			
		||||
 | 
			
		||||
  .batch-table
 | 
			
		||||
    .batch-table__toolbar
 | 
			
		||||
 
 | 
			
		||||
@@ -751,9 +751,11 @@ en:
 | 
			
		||||
    publishing: Publishing
 | 
			
		||||
    web: Web
 | 
			
		||||
  relationships:
 | 
			
		||||
    abandoned: Abandoned
 | 
			
		||||
    active: Active
 | 
			
		||||
    activity: Account activity
 | 
			
		||||
    dormant: Dormant
 | 
			
		||||
    moved: Moved
 | 
			
		||||
    mutual: Mutual
 | 
			
		||||
    primary: Primary
 | 
			
		||||
    relationship: Relationship
 | 
			
		||||
    remove_selected_domains: Remove all followers from the selected domains
 | 
			
		||||
    remove_selected_followers: Remove selected followers
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user