summaryrefslogtreecommitdiff
path: root/app/views/projects/diffs/_text_file.html.haml
blob: d75e9ef2a4937af037e24f31b8723eb744361d7b (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
- too_big = diff_file.diff_lines.count > Commit::DIFF_SAFE_LINES
- if too_big
  .suppressed-container
    %a.show-suppressed-diff.js-show-suppressed-diff Changes suppressed. Click to show.

%table.text-file.code.js-syntax-highlight{ class: too_big ? 'hide' : '' }

  - last_line = 0
  - raw_diff_lines = diff_file.diff_lines
  - diff_file.highlighted_diff_lines.each_with_index do |line, index|
    - type = line.type
    - last_line = line.new_pos
    - line_code = generate_line_code(diff_file.file_path, line)
    - line_old = line.old_pos
    %tr.line_holder{ id: line_code, class: "#{type}" }
      - if type == "match"
        = render "projects/diffs/match_line", {line: line.text,
          line_old: line_old, line_new: line.new_pos, bottom: false, new_file: diff_file.new_file}
      - elsif type == 'nonewline'
        %td.old_line.diff-line-num
        %td.new_line.diff-line-num
        %td.line_content.match= line.text
      - else
        %td.old_line.diff-line-num{class: type}
          = link_to raw(type == "new" ? " " : line_old), "##{line_code}", id: line_code
          - if @comments_allowed && can?(current_user, :create_note, @project)
            = link_to_new_diff_note(line_code)
        %td.new_line.diff-line-num{class: type, data: {linenumber: line.new_pos}}
          = link_to raw(type == "old" ? " " : line.new_pos), "##{line_code}", id: line_code
        %td.line_content{class: "noteable_line #{type} #{line_code}", data: { line_code: line_code }}= diff_line_content(line.text)

    - if @reply_allowed
      - comments = @line_notes.select { |n| n.line_code == line_code && n.active? }.sort_by(&:created_at)
      - unless comments.empty?
        = render "projects/notes/diff_notes_with_reply", notes: comments, line: raw_diff_lines[index].text

  - if last_line > 0
    = render "projects/diffs/match_line", { line: "",
      line_old: last_line, line_new: last_line, bottom: true, new_file: diff_file.new_file }

- if diff_file.diff.blank? && diff_file.mode_changed?
  .file-mode-changed
    File mode changed