diff --git a/app/helpers/notes_helper.rb b/app/helpers/notes_helper.rb index ba02ca6bd49..99db8b6f6b7 100644 --- a/app/helpers/notes_helper.rb +++ b/app/helpers/notes_helper.rb @@ -12,5 +12,15 @@ module NotesHelper !@mixed_targets || @main_target_type == note.noteable_type end + def link_to_commit_diff_line_note(note) + return unless note.line_note? + + commit = note.target + diff_index, diff_old_line, diff_new_line = note.line_code.split('_') + + link_file = commit.diffs[diff_index.to_i].new_path + link_line = diff_new_line + + link_to "#{link_file}:L#{link_line}", project_commit_path(@project, commit, anchor: note.line_code) end end diff --git a/app/views/commits/_text_file.html.haml b/app/views/commits/_text_file.html.haml index 9f5b5345d5f..02117386d71 100644 --- a/app/views/commits/_text_file.html.haml +++ b/app/views/commits/_text_file.html.haml @@ -4,7 +4,7 @@ %table{class: "#{'hide' if too_big}"} - each_diff_line(diff.diff.lines.to_a, index) do |line, type, line_code, line_new, line_old| - %tr.line_holder + %tr.line_holder{ id: line_code } - if type == "match" %td.old_line= "..." %td.new_line= "..." diff --git a/app/views/notes/_note.html.haml b/app/views/notes/_note.html.haml index 57946163b56..0901e4b8302 100644 --- a/app/views/notes/_note.html.haml +++ b/app/views/notes/_note.html.haml @@ -7,6 +7,12 @@ = time_ago_in_words(note.updated_at) ago + - unless note_for_main_target?(note) + - if note.commit? + %span.cgray + on #{link_to note.target.short_id, project_commit_path(@project, note.target)} + = link_to_commit_diff_line_note(note) if note.line_note? + -# only show vote if it's a note for the main target - if note_for_main_target?(note) - if note.upvote?