summaryrefslogtreecommitdiff
path: root/app/views/projects/diffs/_diffs.html.haml
blob: 71a1b9e6c05edb437b11ff1841223de83cf6d472 (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
- environment = local_assigns.fetch(:environment, nil)
- show_whitespace_toggle = local_assigns.fetch(:show_whitespace_toggle, true)
- can_create_note = !@diff_notes_disabled && can?(current_user, :create_note, diffs.project)
- diff_files = diffs.diff_files

.content-block.oneline-block.files-changed
  .inline-parallel-buttons
    - if !expand_all_diffs? && diff_files.any? { |diff_file| diff_file.collapsed? }
      = link_to 'Expand all', url_for(params.merge(expand_all_diffs: 1, format: nil)), class: 'btn btn-default'
    - if show_whitespace_toggle
      - if current_controller?(:commit)
        = commit_diff_whitespace_link(diffs.project, @commit, class: 'hidden-xs')
      - elsif current_controller?(:merge_requests)
        = diff_merge_request_whitespace_link(diffs.project, @merge_request, class: 'hidden-xs')
      - elsif current_controller?(:compare)
        = diff_compare_whitespace_link(diffs.project, params[:from], params[:to], class: 'hidden-xs')
    .btn-group
      = inline_diff_btn
      = parallel_diff_btn
  = render 'projects/diffs/stats', diff_files: diff_files

- if render_overflow_warning?(diff_files)
  = render 'projects/diffs/warning', diff_files: diffs

.files{ data: { can_create_note: can_create_note } }
  - diff_files.each_with_index do |diff_file|
    - diff_commit = commit_for_diff(diff_file)
    - blob = diff_file.blob(diff_commit)
    - next unless blob
    - blob.load_all_data!(diffs.project.repository) unless blob.too_large?
    - file_hash = hexdigest(diff_file.file_path)

    = render 'projects/diffs/file', file_hash: file_hash, project: diffs.project,
      diff_file: diff_file, diff_commit: diff_commit, blob: blob, environment: environment