diff options
-rw-r--r-- | app/helpers/notes_helper.rb | 19 | ||||
-rw-r--r-- | app/models/note.rb | 14 | ||||
-rw-r--r-- | app/views/projects/commits/_text_file.html.haml | 2 |
3 files changed, 29 insertions, 6 deletions
diff --git a/app/helpers/notes_helper.rb b/app/helpers/notes_helper.rb index 7ae104b8fd1..9ed38ba84b2 100644 --- a/app/helpers/notes_helper.rb +++ b/app/helpers/notes_helper.rb @@ -42,4 +42,23 @@ module NotesHelper project_id: noteable.project.id, }.to_json 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 diff --git a/app/models/note.rb b/app/models/note.rb index cee10ec90d2..278c957af0e 100644 --- a/app/models/note.rb +++ b/app/models/note.rb @@ -122,11 +122,15 @@ class Note < ActiveRecord::Base discussions end - end - # Determine whether or not a cross-reference note already exists. - def self.cross_reference_exists?(noteable, mentioner) - where(noteable_id: noteable.id, system: true, note: "_mentioned in #{mentioner.gfm_reference}_").any? + def build_discussion_id(type, id, line_code) + [:discussion, type.try(:underscore), id, line_code].join("-").to_sym + 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 def commit_author @@ -194,7 +198,7 @@ class Note < ActiveRecord::Base end 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 # Returns true if this is a downvote note, diff --git a/app/views/projects/commits/_text_file.html.haml b/app/views/projects/commits/_text_file.html.haml index ba83d2e5a0f..74a68b1bf82 100644 --- a/app/views/projects/commits/_text_file.html.haml +++ b/app/views/projects/commits/_text_file.html.haml @@ -13,7 +13,7 @@ %td.old_line = link_to raw(type == "new" ? " " : line_old), "##{line_code}", id: line_code - 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" ? " " : 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) |