summaryrefslogtreecommitdiff
path: root/app/views/projects/diffs/_diffs.html.haml
blob: a2092d01cda27dabbcaed00b58eb2e4c45a48d13 (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
- show_whitespace_toggle = local_assigns.fetch(:show_whitespace_toggle, true)
- if diff_view == 'parallel'
  - fluid_layout true

- diff_files = safe_diff_files(diffs, diff_refs: diff_refs, repository: project.repository)

.content-block.oneline-block.files-changed
  .inline-parallel-buttons.dropdown
    %button.btn.btn-default{ type: "button", data: { toggle: "dropdown" } }
      Options
      %span.caret
    %ul.dropdown-menu
      %li
        %a.js-diff-comments-button{ href: "#", data: { state: "visible" } }
          Hide all comments
      %li
        - if show_whitespace_toggle
          - if current_controller?(:commit)
            = commit_diff_whitespace_link(@project, @commit, {})
          - elsif current_controller?(:merge_requests)
            = diff_merge_request_whitespace_link(@project, @merge_request, {})
          - elsif current_controller?(:compare)
            = diff_compare_whitespace_link(@project, params[:from], params[:to], {})
      %li
        - 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: 'html')), {class: 'expand-all'}
    .btn-group
      = inline_diff_btn
      = parallel_diff_btn
  = render 'projects/diffs/stats', diff_files: diff_files

- if diff_files.overflow?
  = render 'projects/diffs/warning', diff_files: diff_files

.files{data: {can_create_note: (!@diff_notes_disabled && can?(current_user, :create_note, @project))}}
  - diff_files.each_with_index do |diff_file, index|
    - diff_commit = commit_for_diff(diff_file)
    - blob = diff_file.blob(diff_commit)
    - next unless blob
    - blob.load_all_data!(project.repository) unless blob.only_display_raw?

    = render 'projects/diffs/file', i: index, project: project,
      diff_file: diff_file, diff_commit: diff_commit, blob: blob, diff_refs: diff_refs