diff options
author | Cairo Noleto <caironoleto@gmail.com> | 2016-07-13 02:18:13 +0300 |
---|---|---|
committer | Cairo Noleto <caironoleto@gmail.com> | 2016-07-15 01:36:19 +0300 |
commit | 36dc4a5ce74dfd76a4acd7580fabec43ede1a254 (patch) | |
tree | 0180131b6b88ea7d27f4675b767b175093bc0cdd /app/services | |
parent | acbcbd4a5bb40358fb74dc11fa77abae000b85c9 (diff) |
Allow bulk (un)subscription from issues in issue index
fixies #19747
Diffstat (limited to 'app/services')
-rw-r--r-- | app/services/issuable_base_service.rb | 10 | ||||
-rw-r--r-- | app/services/issues/bulk_update_service.rb | 2 |
2 files changed, 11 insertions, 1 deletions
diff --git a/app/services/issuable_base_service.rb b/app/services/issuable_base_service.rb index e3dc569152c..2d96efe1042 100644 --- a/app/services/issuable_base_service.rb +++ b/app/services/issuable_base_service.rb @@ -101,6 +101,7 @@ class IssuableBaseService < BaseService def update(issuable) change_state(issuable) + change_subscription(issuable) filter_params old_labels = issuable.labels.to_a @@ -124,6 +125,15 @@ class IssuableBaseService < BaseService end end + def change_subscription(issuable) + case params.delete(:subscription_event) + when 'subscribe' + issuable.subscribe(current_user) + when 'unsubscribe' + issuable.unsubscribe(current_user) + end + end + def has_changes?(issuable, old_labels: []) valid_attrs = [:title, :description, :assignee_id, :milestone_id, :target_branch] diff --git a/app/services/issues/bulk_update_service.rb b/app/services/issues/bulk_update_service.rb index cd08c3a0cb9..7e19a73f71a 100644 --- a/app/services/issues/bulk_update_service.rb +++ b/app/services/issues/bulk_update_service.rb @@ -4,7 +4,7 @@ module Issues issues_ids = params.delete(:issues_ids).split(",") issue_params = params - %i(state_event milestone_id assignee_id add_label_ids remove_label_ids).each do |key| + %i(state_event milestone_id assignee_id add_label_ids remove_label_ids subscription_event).each do |key| issue_params.delete(key) unless issue_params[key].present? end |