Browse Source

Add follow selected followers button (#15148)

* Add follow selected followers button

* Fix unused variable

* Fix i18n normalize
Takeshi Umeda 3 years ago
parent
commit
2b1a6e734f

+ 3 - 1
app/controllers/relationships_controller.rb

@@ -49,7 +49,9 @@ class RelationshipsController < ApplicationController
   end
 
   def action_from_button
-    if params[:unfollow]
+    if params[:follow]
+      'follow'
+    elsif params[:unfollow]
       'unfollow'
     elsif params[:remove_from_followers]
       'remove_from_followers'

+ 8 - 0
app/models/form/account_batch.rb

@@ -9,6 +9,8 @@ class Form::AccountBatch
 
   def save
     case action
+    when 'follow'
+      follow!
     when 'unfollow'
       unfollow!
     when 'remove_from_followers'
@@ -24,6 +26,12 @@ class Form::AccountBatch
 
   private
 
+  def follow!
+    accounts.find_each do |target_account|
+      FollowService.new.call(current_account, target_account)
+    end
+  end
+
   def unfollow!
     accounts.find_each do |target_account|
       UnfollowService.new.call(current_account, target_account)

+ 2 - 0
app/views/relationships/show.html.haml

@@ -42,6 +42,8 @@
       %label.batch-table__toolbar__select.batch-checkbox-all
         = check_box_tag :batch_checkbox_all, nil, false
       .batch-table__toolbar__actions
+        = f.button safe_join([fa_icon('user-plus'), t('relationships.follow_selected_followers')]), name: :follow, class: 'table-action-link', type: :submit, data: { confirm: t('admin.reports.are_you_sure') } if followed_by_relationship? && !mutual_relationship?
+
         = f.button safe_join([fa_icon('user-times'), t('relationships.remove_selected_follows')]), name: :unfollow, class: 'table-action-link', type: :submit, data: { confirm: t('admin.reports.are_you_sure') } unless followed_by_relationship?
 
         = f.button safe_join([fa_icon('trash'), t('relationships.remove_selected_followers')]), name: :remove_from_followers, class: 'table-action-link', type: :submit, data: { confirm: t('admin.reports.are_you_sure') } unless following_relationship?

+ 1 - 0
config/locales/en.yml

@@ -1075,6 +1075,7 @@ en:
   relationships:
     activity: Account activity
     dormant: Dormant
+    follow_selected_followers: Follow selected followers
     followers: Followers
     following: Following
     invited: Invited