about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--app/controllers/relationships_controller.rb4
-rw-r--r--app/models/form/account_batch.rb8
-rw-r--r--app/views/relationships/show.html.haml2
-rw-r--r--config/locales/en.yml1
4 files changed, 14 insertions, 1 deletions
diff --git a/app/controllers/relationships_controller.rb b/app/controllers/relationships_controller.rb
index 0835758f2..031e3241f 100644
--- a/app/controllers/relationships_controller.rb
+++ b/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'
diff --git a/app/models/form/account_batch.rb b/app/models/form/account_batch.rb
index 7b9e40f68..882770d7c 100644
--- a/app/models/form/account_batch.rb
+++ b/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)
diff --git a/app/views/relationships/show.html.haml b/app/views/relationships/show.html.haml
index 4b1e4fd63..c82e639e0 100644
--- a/app/views/relationships/show.html.haml
+++ b/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?
diff --git a/config/locales/en.yml b/config/locales/en.yml
index 02368d900..bec099082 100644
--- a/config/locales/en.yml
+++ b/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