diff --git a/app/helpers/notes_helper.rb b/app/helpers/notes_helper.rb index ba02ca6bd499ea026c2e89263c6dcda5bc134cbf..99db8b6f6b7f80fe288a0574570889182af62165 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 9f5b5345d5f76a735b335a283c5d53d0f3910b97..02117386d71c93a024b3c438771e0144dcfe5236 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 57946163b567f26374ba430bdfdabf5b01b572e8..0901e4b8302df1cb26072881da6113935eed5ddd 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?