summaryrefslogtreecommitdiff
path: root/app/views/projects/merge_requests/_show.html.haml
blob: 0e2975bd55116e579973f29b1250615cbe414818 (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
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
- page_title           "#{@merge_request.title} (#{@merge_request.to_reference})", "Merge Requests"
- page_description     @merge_request.description
- page_card_attributes @merge_request.card_attributes
- content_for :page_specific_javascripts do
  = page_specific_javascript_tag('diff_notes/diff_notes_bundle.js')

.merge-request{'data-url' => merge_request_path(@merge_request)}
  = render "projects/merge_requests/show/mr_title"

  .merge-request-details.issuable-details{data: {id: @merge_request.project.id}}
    = render "projects/merge_requests/show/mr_box"
    .append-bottom-default.mr-source-target.prepend-top-default
      - if @merge_request.open?
        .pull-right
          - if @merge_request.source_branch_exists?
            - if koding_enabled? && @repository.koding_yml
              = link_to koding_project_url(@merge_request.source_project, @merge_request.source_branch, @merge_request.commits.first.short_id), class: "btn inline btn-grouped btn-sm", target: '_blank' do
                Run in IDE (Koding)
            = link_to "#modal_merge_info", class: "btn inline btn-grouped btn-sm", "data-toggle" => "modal" do
              Check out branch

          %span.dropdown.inline.prepend-left-5
            %a.btn.btn-sm.dropdown-toggle{ data: {toggle: :dropdown} }
              Download as
              = icon('caret-down')
            %ul.dropdown-menu.dropdown-menu-align-right
              %li= link_to "Email Patches", merge_request_path(@merge_request, format: :patch)
              %li= link_to "Plain Diff",    merge_request_path(@merge_request, format: :diff)
      .normal
        %span Request to merge
        %span.label-branch= source_branch_with_namespace(@merge_request)
        %span into
        %span.label-branch
          = link_to @merge_request.target_branch, namespace_project_commits_path(@project.namespace, @project, @merge_request.target_branch)
        - if @merge_request.open? && @merge_request.diverged_from_target_branch?
          %span (#{pluralize(@merge_request.diverged_commits_count, 'commit')} behind)

    - if @merge_request.source_branch_exists?
      = render "projects/merge_requests/show/how_to_merge"

    = render "projects/merge_requests/widget/show.html.haml"

    - if @merge_request.source_branch_exists? && @merge_request.mergeable? && @merge_request.can_be_merged_by?(current_user)
      .light.prepend-top-default.append-bottom-default
        You can also accept this merge request manually using the
        = succeed '.' do
          = link_to "command line", "#modal_merge_info", class: "how_to_merge_link vlink", title: "How To Merge", "data-toggle" => "modal"

    - if @commits_count.nonzero?
      .merge-request-tabs-holder{ class: ("js-tabs-affix" unless ENV['RAILS_ENV'] == 'test') }
        %div{ class: container_class }
          %ul.merge-request-tabs.nav-links.no-top.no-bottom
            %li.notes-tab
              = link_to namespace_project_merge_request_path(@project.namespace, @project, @merge_request), data: { target: 'div#notes', action: 'notes', toggle: 'tab' } do
                Discussion
                %span.badge= @merge_request.mr_and_commit_notes.user.count
            - if @merge_request.source_project
              %li.commits-tab
                = link_to commits_namespace_project_merge_request_path(@project.namespace, @project, @merge_request), data: { target: 'div#commits', action: 'commits', toggle: 'tab' } do
                  Commits
                  %span.badge= @commits_count
            - if @pipelines.any?
              %li.pipelines-tab
                = link_to pipelines_namespace_project_merge_request_path(@project.namespace, @project, @merge_request), data: { target: '#pipelines', action: 'pipelines', toggle: 'tab' } do
                  Pipelines
                  %span.badge= @pipelines.size
            - if @pipeline.present?
              %li.builds-tab
                = link_to builds_namespace_project_merge_request_path(@project.namespace, @project, @merge_request), data: { target: '#builds', action: 'builds', toggle: 'tab' } do
                  Builds
                  %span.badge= @statuses_count
            %li.diffs-tab
              = link_to diffs_namespace_project_merge_request_path(@project.namespace, @project, @merge_request), data: { target: 'div#diffs', action: 'diffs', toggle: 'tab' } do
                Changes
                %span.badge= @merge_request.diff_size
            %li#resolve-count-app.line-resolve-all-container.pull-right.prepend-top-10.hidden-xs{ "v-cloak" => true }
              %resolve-count{ "inline-template" => true, ":logged-out" => "#{current_user.nil?}"  }
                %div
                  .line-resolve-all{ "v-show" => "discussionCount > 0",
                    ":class" => "{ 'has-next-btn': !loggedOut && resolvedDiscussionCount !== discussionCount }" }
                    %span.line-resolve-btn.is-disabled{ type: "button",
                        ":class" => "{ 'is-active': resolvedDiscussionCount === discussionCount }" }
                      = render "shared/icons/icon_status_success.svg"
                    %span.line-resolve-text
                      {{ resolvedDiscussionCount }}/{{ discussionCount }} {{ resolvedCountText }} resolved
                  = render "discussions/jump_to_next"

      .tab-content#diff-notes-app
        #notes.notes.tab-pane.voting_notes
          .content-block.content-block-small
            = render 'award_emoji/awards_block', awardable: @merge_request, inline: true

          .row
            %section.col-md-12
              .issuable-discussion
                = render "projects/merge_requests/discussion"

        #commits.commits.tab-pane
          - # This tab is always loaded via AJAX
        #builds.builds.tab-pane
          - # This tab is always loaded via AJAX
        #pipelines.pipelines.tab-pane
          - # This tab is always loaded via AJAX
        #diffs.diffs.tab-pane
          - # This tab is always loaded via AJAX

      .mr-loading-status
        = spinner

= render 'shared/issuable/sidebar', issuable: @merge_request
- if @merge_request.can_be_reverted?(current_user)
  = render "projects/commit/change", type: 'revert', commit: @merge_request.merge_commit, title: @merge_request.title
- if @merge_request.can_be_cherry_picked?
  = render "projects/commit/change", type: 'cherry-pick', commit: @merge_request.merge_commit, title: @merge_request.title

:javascript
  var merge_request;

  merge_request = new MergeRequest({
    action: "#{controller.action_name}"
  });