2018-07-25 09:30:33 +00:00
|
|
|
# frozen_string_literal: true
|
|
|
|
|
2017-04-04 22:27:23 +00:00
|
|
|
# A discussion on merge request or commit diffs consisting of `DiffNote` notes.
|
2017-04-06 15:05:57 +00:00
|
|
|
#
|
|
|
|
# A discussion of this type can be resolvable.
|
2017-03-10 01:29:11 +00:00
|
|
|
class DiffDiscussion < Discussion
|
2017-03-31 00:38:21 +00:00
|
|
|
include DiscussionOnDiff
|
2017-03-10 01:29:11 +00:00
|
|
|
|
2017-04-06 15:05:57 +00:00
|
|
|
def self.note_class
|
|
|
|
DiffNote
|
|
|
|
end
|
|
|
|
|
2017-03-31 00:38:21 +00:00
|
|
|
delegate :position,
|
|
|
|
:original_position,
|
2017-05-31 19:31:33 +00:00
|
|
|
:change_position,
|
2017-10-07 04:25:17 +00:00
|
|
|
:on_text?,
|
|
|
|
:on_image?,
|
2017-03-10 01:29:11 +00:00
|
|
|
|
|
|
|
to: :first_note
|
|
|
|
|
|
|
|
def legacy_diff_discussion?
|
|
|
|
false
|
|
|
|
end
|
|
|
|
|
2017-04-30 20:32:09 +00:00
|
|
|
def merge_request_version_params
|
|
|
|
return unless for_merge_request?
|
|
|
|
|
2017-12-28 11:17:31 +00:00
|
|
|
version_params = get_params
|
|
|
|
|
|
|
|
return version_params unless on_merge_request_commit? && commit_id
|
|
|
|
|
|
|
|
version_params ||= {}
|
2017-12-18 17:02:45 +00:00
|
|
|
version_params.tap do |params|
|
2017-12-28 11:17:31 +00:00
|
|
|
params[:commit_id] = commit_id
|
2017-06-29 21:19:09 +00:00
|
|
|
end
|
2017-04-30 20:32:09 +00:00
|
|
|
end
|
|
|
|
|
2017-03-10 01:29:11 +00:00
|
|
|
def reply_attributes
|
2017-03-31 00:38:21 +00:00
|
|
|
super.merge(
|
|
|
|
original_position: original_position.to_json,
|
2017-05-03 11:27:17 +00:00
|
|
|
position: position.to_json
|
2017-03-31 00:38:21 +00:00
|
|
|
)
|
2017-03-10 01:29:11 +00:00
|
|
|
end
|
2017-12-18 15:21:33 +00:00
|
|
|
|
|
|
|
private
|
|
|
|
|
2017-12-28 11:17:31 +00:00
|
|
|
def get_params
|
2017-12-18 17:02:45 +00:00
|
|
|
return {} if active?
|
|
|
|
|
|
|
|
noteable.version_params_for(position.diff_refs)
|
2017-12-18 15:21:33 +00:00
|
|
|
end
|
2017-03-10 01:29:11 +00:00
|
|
|
end
|