Commit 0cc95ef2 authored by Dmitriy Zaporozhets's avatar Dmitriy Zaporozhets

Merge pull request #2889 from kennytm/master

Show only ≤16 lines of codes in a discussion in a MR (issue #2860).
parents 57394226 e565be24
...@@ -57,6 +57,31 @@ module CommitsHelper ...@@ -57,6 +57,31 @@ module CommitsHelper
end end
end end
def each_diff_line_near(diff, index, expected_line_code)
max_number_of_lines = 16
prev_match_line = nil
prev_lines = []
each_diff_line(diff, index) do |full_line, type, line_code, line_new, line_old|
line = [full_line, type, line_code, line_new, line_old]
if line_code != expected_line_code
if type == "match"
prev_lines.clear
prev_match_line = line
else
prev_lines.push(line)
prev_lines.shift if prev_lines.length >= max_number_of_lines
end
else
yield(prev_match_line) if !prev_match_line.nil?
prev_lines.each { |ln| yield(ln) }
yield(line)
break
end
end
end
def image_diff_class(diff) def image_diff_class(diff)
if diff.deleted_file if diff.deleted_file
"deleted" "deleted"
......
...@@ -9,7 +9,7 @@ ...@@ -9,7 +9,7 @@
%br/ %br/
.content .content
%table %table
- each_diff_line(diff, note.diff_file_index) do |line, type, line_code, line_new, line_old| - each_diff_line_near(diff, note.diff_file_index, note.line_code) do |line, type, line_code, line_new, line_old|
%tr.line_holder{ id: line_code } %tr.line_holder{ id: line_code }
- if type == "match" - if type == "match"
%td.old_line= "..." %td.old_line= "..."
...@@ -22,4 +22,3 @@ ...@@ -22,4 +22,3 @@
- if line_code == note.line_code - if line_code == note.line_code
= render "notes/diff_notes_with_reply", notes: discussion_notes = render "notes/diff_notes_with_reply", notes: discussion_notes
- break # cut off diff after notes
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment