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/issuable_base_service.rb')
-rw-r--r--app/services/issuable_base_service.rb23
1 files changed, 18 insertions, 5 deletions
diff --git a/app/services/issuable_base_service.rb b/app/services/issuable_base_service.rb
index 03115416607..acd6d45af7a 100644
--- a/app/services/issuable_base_service.rb
+++ b/app/services/issuable_base_service.rb
@@ -162,8 +162,6 @@ class IssuableBaseService < ::BaseProjectService
return unless result.success? && result[:escalation_status].present?
- @escalation_status_change_reason = result[:escalation_status].delete(:status_change_reason)
-
params[:incident_management_issuable_escalation_status_attributes] = result[:escalation_status]
end
@@ -231,7 +229,7 @@ class IssuableBaseService < ::BaseProjectService
before_create(issuable)
issuable_saved = issuable.with_transaction_returning_status do
- issuable.save
+ transaction_create(issuable)
end
if issuable_saved
@@ -282,8 +280,9 @@ class IssuableBaseService < ::BaseProjectService
assign_requested_labels(issuable)
assign_requested_assignees(issuable)
assign_requested_crm_contacts(issuable)
+ widget_params = filter_widget_params
- if issuable.changed? || params.present?
+ if issuable.changed? || params.present? || widget_params.present?
issuable.assign_attributes(allowed_update_params(params))
if has_title_or_description_changed?(issuable)
@@ -303,7 +302,7 @@ class IssuableBaseService < ::BaseProjectService
ensure_milestone_available(issuable)
issuable_saved = issuable.with_transaction_returning_status do
- issuable.save(touch: should_touch)
+ transaction_update(issuable, { save_with_touch: should_touch })
end
if issuable_saved
@@ -332,6 +331,16 @@ class IssuableBaseService < ::BaseProjectService
issuable
end
+ def transaction_update(issuable, opts = {})
+ touch = opts[:save_with_touch] || false
+
+ issuable.save(touch: touch)
+ end
+
+ def transaction_create(issuable)
+ issuable.save
+ end
+
def update_task(issuable)
filter_params(issuable)
@@ -590,6 +599,10 @@ class IssuableBaseService < ::BaseProjectService
issuable_sla.update(issuable_closed: issuable.closed?)
end
+
+ def filter_widget_params
+ params.delete(:widget_params)
+ end
end
IssuableBaseService.prepend_mod_with('IssuableBaseService')