diff options
author | Grzegorz Bizon <grzegorz@gitlab.com> | 2018-04-25 13:40:13 +0000 |
---|---|---|
committer | Grzegorz Bizon <grzegorz@gitlab.com> | 2018-04-25 13:40:13 +0000 |
commit | 37b9a441c1b74c679419ecd6c9560ab4390898b9 (patch) | |
tree | 2fce001235b0ea3adb06bf1d37a6c21d5d336b6e /app/services | |
parent | df6a2d423ea4dac3484669f6f49c535b36288d5d (diff) | |
parent | 5beb4ddebfa23b288dc088c7175c2456d411f4f1 (diff) | |
download | gitlab-ce-37b9a441c1b74c679419ecd6c9560ab4390898b9.tar.gz |
Merge branch 'master' into 'backstage/gb/migrate-pipeline-stages-index'
# Conflicts:
# db/schema.rb
Diffstat (limited to 'app/services')
-rw-r--r-- | app/services/quick_actions/interpret_service.rb | 26 |
1 files changed, 24 insertions, 2 deletions
diff --git a/app/services/quick_actions/interpret_service.rb b/app/services/quick_actions/interpret_service.rb index 6cc51b6ee1b..0215994b1a7 100644 --- a/app/services/quick_actions/interpret_service.rb +++ b/app/services/quick_actions/interpret_service.rb @@ -138,8 +138,10 @@ module QuickActions 'Remove assignee' end end - explanation do - "Removes #{'assignee'.pluralize(issuable.assignees.size)} #{issuable.assignees.map(&:to_reference).to_sentence}." + explanation do |users = nil| + assignees = issuable.assignees + assignees &= users if users.present? && issuable.allows_multiple_assignees? + "Removes #{'assignee'.pluralize(assignees.size)} #{assignees.map(&:to_reference).to_sentence}." end params do issuable.allows_multiple_assignees? ? '@user1 @user2' : '' @@ -268,6 +270,26 @@ module QuickActions end end + desc 'Copy labels and milestone from other issue or merge request' + explanation do |source_issuable| + "Copy labels and milestone from #{source_issuable.to_reference}." + end + params '#issue | !merge_request' + condition do + issuable.persisted? && + current_user.can?(:"update_#{issuable.to_ability_name}", issuable) + end + parse_params do |issuable_param| + extract_references(issuable_param, :issue).first || + extract_references(issuable_param, :merge_request).first + end + command :copy_metadata do |source_issuable| + if source_issuable.present? && source_issuable.project.id == issuable.project.id + @updates[:add_label_ids] = source_issuable.labels.map(&:id) + @updates[:milestone_id] = source_issuable.milestone.id if source_issuable.milestone + end + end + desc 'Add a todo' explanation 'Adds a todo.' condition do |