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 'app/services/work_items/related_work_item_links/create_service.rb')
-rw-r--r--app/services/work_items/related_work_item_links/create_service.rb21
1 files changed, 20 insertions, 1 deletions
diff --git a/app/services/work_items/related_work_item_links/create_service.rb b/app/services/work_items/related_work_item_links/create_service.rb
index f313881470a..38e5ba3be7f 100644
--- a/app/services/work_items/related_work_item_links/create_service.rb
+++ b/app/services/work_items/related_work_item_links/create_service.rb
@@ -9,6 +9,7 @@ module WorkItems
return error(_('No matching work item found.'), 404) unless can?(current_user, :admin_work_item_link, issuable)
response = super
+ create_notes_async if new_links.any?
if response[:status] == :success
response[:message] = format(
@@ -30,6 +31,10 @@ module WorkItems
private
+ def create_notes(_issuable_link)
+ # no-op notes are created asynchronously
+ end
+
def link_class
WorkItems::RelatedWorkItemLink
end
@@ -49,9 +54,23 @@ module WorkItems
created_links.collect(&:target_id)
end
+ def create_notes_async
+ link_ids = new_links.collect(&:id)
+
+ worker_params = {
+ issuable_class: issuable.class.name,
+ issuable_id: issuable.id,
+ link_ids: link_ids,
+ link_type: params[:link_type] || 'relates_to',
+ user_id: current_user.id
+ }
+
+ Issuable::RelatedLinksCreateWorker.perform_async(worker_params)
+ end
+
override :issuables_already_assigned_message
def issuables_already_assigned_message
- _('Work items are already linked')
+ _('Items are already linked')
end
override :issuables_not_found_message