summaryrefslogtreecommitdiff
path: root/app/views/commits/_diff.html.haml
blob: dff99bf12f0f32cc656908775a9f7d60ae2d83b7 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
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