Commit e565be241f39cf4119cb1d3e2668455ed11630fe
1 parent
fac50387
Exists in
master
and in
4 other branches
Show only ≤16 lines of code in a discussion (fix issue #2860).
Showing
2 changed files
with
26 additions
and
2 deletions
Show diff stats
app/helpers/commits_helper.rb
... | ... | @@ -57,6 +57,31 @@ module CommitsHelper |
57 | 57 | end |
58 | 58 | end |
59 | 59 | |
60 | + def each_diff_line_near(diff, index, expected_line_code) | |
61 | + max_number_of_lines = 16 | |
62 | + | |
63 | + prev_match_line = nil | |
64 | + prev_lines = [] | |
65 | + | |
66 | + each_diff_line(diff, index) do |full_line, type, line_code, line_new, line_old| | |
67 | + line = [full_line, type, line_code, line_new, line_old] | |
68 | + if line_code != expected_line_code | |
69 | + if type == "match" | |
70 | + prev_lines.clear | |
71 | + prev_match_line = line | |
72 | + else | |
73 | + prev_lines.push(line) | |
74 | + prev_lines.shift if prev_lines.length >= max_number_of_lines | |
75 | + end | |
76 | + else | |
77 | + yield(prev_match_line) if !prev_match_line.nil? | |
78 | + prev_lines.each { |ln| yield(ln) } | |
79 | + yield(line) | |
80 | + break | |
81 | + end | |
82 | + end | |
83 | + end | |
84 | + | |
60 | 85 | def image_diff_class(diff) |
61 | 86 | if diff.deleted_file |
62 | 87 | "deleted" | ... | ... |
app/views/notes/_discussion_diff.html.haml
... | ... | @@ -9,7 +9,7 @@ |
9 | 9 | %br/ |
10 | 10 | .content |
11 | 11 | %table |
12 | - - each_diff_line(diff, note.diff_file_index) do |line, type, line_code, line_new, line_old| | |
12 | + - each_diff_line_near(diff, note.diff_file_index, note.line_code) do |line, type, line_code, line_new, line_old| | |
13 | 13 | %tr.line_holder{ id: line_code } |
14 | 14 | - if type == "match" |
15 | 15 | %td.old_line= "..." |
... | ... | @@ -22,4 +22,3 @@ |
22 | 22 | |
23 | 23 | - if line_code == note.line_code |
24 | 24 | = render "notes/diff_notes_with_reply", notes: discussion_notes |
25 | - - break # cut off diff after notes | ... | ... |