diff options
author | Douwe Maan <douwe@selenight.nl> | 2018-09-14 17:53:54 +0200 |
---|---|---|
committer | Douwe Maan <douwe@selenight.nl> | 2018-09-26 15:28:40 +0200 |
commit | 8811692c6a4d846e4506fdb9522b649c73fe4362 (patch) | |
tree | fcbb56d1fcbe4c85a87dc5907f6ead71bb5be65c | |
parent | 4007456808a9d18858b2c117b9cc6fee91d26ed6 (diff) | |
download | gitlab-ce-8811692c6a4d846e4506fdb9522b649c73fe4362.tar.gz |
Make using assign and unassign quick actions together work as expected
-rw-r--r-- | app/services/quick_actions/interpret_service.rb | 28 | ||||
-rw-r--r-- | changelogs/unreleased/dm-fix-assign-unassign-quick-actions.yml | 6 |
2 files changed, 18 insertions, 16 deletions
diff --git a/app/services/quick_actions/interpret_service.rb b/app/services/quick_actions/interpret_service.rb index 02d68c3add3..ceb01c8dc73 100644 --- a/app/services/quick_actions/interpret_service.rb +++ b/app/services/quick_actions/interpret_service.rb @@ -126,18 +126,16 @@ module QuickActions parse_params do |assignee_param| extract_users(assignee_param) end - # rubocop: disable CodeReuse/ActiveRecord command :assign do |users| next if users.empty? - @updates[:assignee_ids] = - if issuable.allows_multiple_assignees? - issuable.assignees.pluck(:id) + users.map(&:id) - else - [users.first.id] - end + if issuable.allows_multiple_assignees? + @updates[:assignee_ids] ||= issuable.assignees.map(&:id) + @updates[:assignee_ids] += users.map(&:id) + else + @updates[:assignee_ids] = [users.first.id] + end end - # rubocop: enable CodeReuse/ActiveRecord desc do if issuable.allows_multiple_assignees? @@ -164,16 +162,14 @@ module QuickActions # When multiple users are assigned, all will be unassigned if multiple assignees are no longer allowed extract_users(unassign_param) if issuable.allows_multiple_assignees? end - # rubocop: disable CodeReuse/ActiveRecord command :unassign do |users = nil| - @updates[:assignee_ids] = - if users&.any? - issuable.assignees.pluck(:id) - users.map(&:id) - else - [] - end + if issuable.allows_multiple_assignees? && users&.any? + @updates[:assignee_ids] ||= issuable.assignees.map(&:id) + @updates[:assignee_ids] -= users.map(&:id) + else + @updates[:assignee_ids] = [] + end end - # rubocop: enable CodeReuse/ActiveRecord desc 'Set milestone' explanation do |milestone| diff --git a/changelogs/unreleased/dm-fix-assign-unassign-quick-actions.yml b/changelogs/unreleased/dm-fix-assign-unassign-quick-actions.yml new file mode 100644 index 00000000000..bfc1ff7b8af --- /dev/null +++ b/changelogs/unreleased/dm-fix-assign-unassign-quick-actions.yml @@ -0,0 +1,6 @@ +--- +title: Don't ignore first action when assign and unassign quick actions are used in + the same comment +merge_request: 21749 +author: +type: fixed |