diff options
author | Douwe Maan <douwe@selenight.nl> | 2016-01-29 19:37:17 +0100 |
---|---|---|
committer | Douwe Maan <douwe@selenight.nl> | 2016-01-29 19:37:17 +0100 |
commit | 677b4db9e682b29bb15dddb84fe80b976490a671 (patch) | |
tree | a0cfa62dd011bfe897d01ad0ef87540d4ccc23a9 /lib/gitlab/diff/inline_diff_marker.rb | |
parent | e221990ebac72b8b229b8c3ff38069edbf7776a7 (diff) | |
download | gitlab-ce-677b4db9e682b29bb15dddb84fe80b976490a671.tar.gz |
Mark inline difference between old and new paths when a file is renamed
Diffstat (limited to 'lib/gitlab/diff/inline_diff_marker.rb')
-rw-r--r-- | lib/gitlab/diff/inline_diff_marker.rb | 14 |
1 files changed, 10 insertions, 4 deletions
diff --git a/lib/gitlab/diff/inline_diff_marker.rb b/lib/gitlab/diff/inline_diff_marker.rb index 1d7fa1bce06..dccb717e95d 100644 --- a/lib/gitlab/diff/inline_diff_marker.rb +++ b/lib/gitlab/diff/inline_diff_marker.rb @@ -5,10 +5,12 @@ module Gitlab def initialize(raw_line, rich_line = raw_line) @raw_line = raw_line - @rich_line = rich_line + @rich_line = ERB::Util.html_escape(rich_line) end def mark(line_inline_diffs) + return rich_line unless line_inline_diffs + marker_ranges = [] line_inline_diffs.each do |inline_diff_range| # Map the inline-diff range based on the raw line to character positions in the rich line @@ -19,11 +21,15 @@ module Gitlab offset = 0 # Mark each range - marker_ranges.each do |range| - offset = insert_around_range(rich_line, range, "<span class='idiff'>", "</span>", offset) + marker_ranges.each_with_index do |range, i| + class_names = ["idiff"] + class_names << "left" if i == 0 + class_names << "right" if i == marker_ranges.length - 1 + + offset = insert_around_range(rich_line, range, "<span class='#{class_names.join(" ")}'>", "</span>", offset) end - rich_line + rich_line.html_safe end private |