Refactor link to new diff note rendering

Signed-off-by: Dmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>
This commit is contained in:
Dmitriy Zaporozhets 2014-06-06 23:15:54 +03:00
parent bc6a17a682
commit 2aef3b00cf
No known key found for this signature in database
GPG key ID: 627C5F589F467F17
3 changed files with 29 additions and 6 deletions

View file

@ -42,4 +42,23 @@ module NotesHelper
project_id: noteable.project.id, project_id: noteable.project.id,
}.to_json }.to_json
end end
def link_to_new_diff_note(line_code)
discussion_id = Note.build_discussion_id(
@comments_target[:noteable_type],
@comments_target[:noteable_id] || @comments_target[:commit_id],
line_code
)
data = {
noteable_type: @comments_target[:noteable_type],
noteable_id: @comments_target[:noteable_id],
commit_id: @comments_target[:commit_id],
line_code: line_code,
discussion_id: discussion_id
}
link_to "", "javascript:;", class: "add-diff-note js-add-diff-note-button",
data: data, title: "Add a comment to this line"
end
end end

View file

@ -122,11 +122,15 @@ class Note < ActiveRecord::Base
discussions discussions
end end
end
# Determine whether or not a cross-reference note already exists. def build_discussion_id(type, id, line_code)
def self.cross_reference_exists?(noteable, mentioner) [:discussion, type.try(:underscore), id, line_code].join("-").to_sym
where(noteable_id: noteable.id, system: true, note: "_mentioned in #{mentioner.gfm_reference}_").any? end
# Determine whether or not a cross-reference note already exists.
def cross_reference_exists?(noteable, mentioner)
where(noteable_id: noteable.id, system: true, note: "_mentioned in #{mentioner.gfm_reference}_").any?
end
end end
def commit_author def commit_author
@ -194,7 +198,7 @@ class Note < ActiveRecord::Base
end end
def discussion_id def discussion_id
@discussion_id ||= [:discussion, noteable_type.try(:underscore), noteable_id || commit_id, line_code].join("-").to_sym @discussion_id ||= Note.build_discussion_id(noteable_type, noteable_id || commit_id, line_code)
end end
# Returns true if this is a downvote note, # Returns true if this is a downvote note,

View file

@ -13,7 +13,7 @@
%td.old_line %td.old_line
= link_to raw(type == "new" ? "&nbsp;" : line_old), "##{line_code}", id: line_code = link_to raw(type == "new" ? "&nbsp;" : line_old), "##{line_code}", id: line_code
- if @comments_allowed - if @comments_allowed
= render "projects/notes/diff_note_link", line_code: line_code = link_to_new_diff_note(line_code)
%td.new_line= link_to raw(type == "old" ? "&nbsp;" : line_new) , "##{line_code}", id: line_code %td.new_line= link_to raw(type == "old" ? "&nbsp;" : line_new) , "##{line_code}", id: line_code
%td.line_content{class: "noteable_line #{type} #{line_code}", "line_code" => line_code}= raw diff_line_content(line) %td.line_content{class: "noteable_line #{type} #{line_code}", "line_code" => line_code}= raw diff_line_content(line)