Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'lib/gitlab/quick_actions/issue_actions.rb')
-rw-r--r--lib/gitlab/quick_actions/issue_actions.rb26
1 files changed, 8 insertions, 18 deletions
diff --git a/lib/gitlab/quick_actions/issue_actions.rb b/lib/gitlab/quick_actions/issue_actions.rb
index ae79db723f2..c79432f36cc 100644
--- a/lib/gitlab/quick_actions/issue_actions.rb
+++ b/lib/gitlab/quick_actions/issue_actions.rb
@@ -226,28 +226,18 @@ module Gitlab
params 'email1@example.com email2@example.com (up to 6 emails)'
types Issue
condition do
- Feature.enabled?(:issue_email_participants, parent) &&
+ quick_action_target.persisted? &&
+ Feature.enabled?(:issue_email_participants, parent) &&
current_user.can?(:"admin_#{quick_action_target.to_ability_name}", quick_action_target)
end
command :invite_email do |emails = ""|
- MAX_NUMBER_OF_EMAILS = 6
-
- existing_emails = quick_action_target.email_participants_emails_downcase
- emails_to_add = emails.split(' ').index_by { |email| [email.downcase, email] }.except(*existing_emails).each_value.first(MAX_NUMBER_OF_EMAILS)
- added_emails = []
-
- emails_to_add.each do |email|
- new_participant = quick_action_target.issue_email_participants.create(email: email)
- added_emails << email if new_participant.persisted?
- end
+ response = ::IssueEmailParticipants::CreateService.new(
+ target: quick_action_target,
+ current_user: current_user,
+ emails: emails.split(' ')
+ ).execute
- if added_emails.any?
- message = _("added %{emails}") % { emails: added_emails.to_sentence }
- SystemNoteService.add_email_participants(quick_action_target, quick_action_target.project, current_user, message)
- @execution_message[:invite_email] = message.upcase_first << "."
- else
- @execution_message[:invite_email] = _("No email participants were added. Either none were provided, or they already exist.")
- end
+ @execution_message[:invite_email] = response.message
end
desc { _('Promote issue to incident') }