diff options
Diffstat (limited to 'app/views/commits/_diff.html.haml')
-rw-r--r-- | app/views/commits/_diff.html.haml | 58 |
1 files changed, 58 insertions, 0 deletions
diff --git a/app/views/commits/_diff.html.haml b/app/views/commits/_diff.html.haml new file mode 100644 index 00000000000..dff99bf12f0 --- /dev/null +++ b/app/views/commits/_diff.html.haml @@ -0,0 +1,58 @@ +- require "utils" +.file_stats + - @commit.diffs.each do |diff| + - if diff.deleted_file + %span.removed_file + %a{:href => "##{diff.a_path}"} + = diff.a_path + = image_tag "blueprint_delete.png" + - elsif diff.renamed_file + %span.moved_file + %a{:href => "##{diff.b_path}"} + = diff.a_path + = "->" + = diff.b_path + = image_tag "blueprint_notice.png" + - elsif diff.new_file + %span.new_file + %a{:href => "##{diff.b_path}"} + = diff.b_path + = image_tag "blueprint_add.png" + - else + %span.edit_file + %a{:href => "##{diff.b_path}"} + = diff.b_path + = image_tag "blueprint_info.png" +- @commit.diffs.each do |diff| + - next if diff.diff.empty? + - file = (@commit.tree / diff.b_path) + - next unless file + .diff_file + .diff_file_header + - if diff.deleted_file + %strong{:id => "#{diff.b_path}"}= diff.a_path + - else + %strong{:id => "#{diff.b_path}"}= diff.b_path + %br/ + .diff_file_content + - if file.mime_type =~ /application|text/ && !Utils.binary?(file.data) + - lines_arr = diff.diff.lines.to_a + - line_old = lines_arr[2].match(/-(\d)/)[0].to_i.abs rescue 0 + - line_new = lines_arr[2].match(/\+(\d)/)[0].to_i.abs rescue 0 + - lines = lines_arr[3..-1].join + - lines.each_line do |line| + = diff_line(line, line_new, line_old) + - if line[0] == "+" + - line_new += 1 + - elsif + - line[0] == "-" + - line_old += 1 + - else + - line_new += 1 + - line_old += 1 + - elsif file.mime_type =~ /image/ + .diff_file_content_image + %img{:src => "data:image/jpeg;base64,#{Base64.encode64(file.data)}"} + - else + %p + %center No preview for this file type |