summaryrefslogtreecommitdiff
path: root/app/views/projects/merge_requests/show.html.haml
blob: acf4a7ef5a5294902542fecbe7adfccd2032b614 (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
- @gfm_form = true
- @content_class = "limit-container-width" unless fluid_layout
- add_to_breadcrumbs "Merge Requests", project_merge_requests_path(@project)
- breadcrumb_title @merge_request.to_reference
- 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
  = webpack_bundle_tag('common_vue')
  = webpack_bundle_tag('mr_notes')

.merge-request{ data: { mr_action: j(params[:tab].presence || 'show'), url: merge_request_path(@merge_request, format: :json), project_path: project_path(@merge_request.project) } }
  = render "projects/merge_requests/mr_title"

  .merge-request-details.issuable-details{ data: { id: @merge_request.project.id } }
    = render "projects/merge_requests/mr_box"

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

    -# haml-lint:disable InlineJavaScript
    :javascript
      window.gl = window.gl || {};
      window.gl.mrWidgetData = #{serialize_issuable(@merge_request, serializer: 'widget')}

    #js-vue-mr-widget.mr-widget

    - content_for :page_specific_javascripts do
      = webpack_bundle_tag 'vue_merge_request_widget'

    .content-block.content-block-small.emoji-list-container.js-noteable-awards
      = render 'award_emoji/awards_block', awardable: @merge_request, inline: true

    .merge-request-tabs-holder{ class: ("js-tabs-affix" unless ENV['RAILS_ENV'] == 'test') }
      .merge-request-tabs-container
        .scrolling-tabs-container.inner-page-scroll-tabs.is-smaller
          .fade-left= icon('angle-left')
          .fade-right= icon('angle-right')
          .nav-links.scrolling-tabs
            %ul.merge-request-tabs
              %li.notes-tab
                = tab_link_for @merge_request, :show, force_link: @commit.present? do
                  Discussion
                  %span.badge= @merge_request.related_notes.user.count
              - if @merge_request.source_project
                %li.commits-tab
                  = tab_link_for @merge_request, :commits do
                    Commits
                    %span.badge= @commits_count
              - if @pipelines.any?
                %li.pipelines-tab
                  = tab_link_for @merge_request, :pipelines do
                    Pipelines
                    %span.badge.js-pipelines-mr-count= @pipelines.size
              %li.diffs-tab
                = tab_link_for @merge_request, :diffs do
                  Changes
                  %span.badge= @merge_request.diff_size

        #js-vue-discussion-counter

    .tab-content#diff-notes-app
      #notes.notes.tab-pane.voting_notes
        .row
          %section.col-md-12
            %script.js-notes-data{ type: "application/json" }= initial_notes_data(true).to_json.html_safe
            .issuable-discussion.js-vue-notes-event
              .hidden
                = render "shared/notes/form", view: diff_view, supports_autocomplete: true
                = render 'shared/notes/edit_form', project: @project
              #js-vue-mr-discussions{ data: { notes_data: notes_data(@merge_request),
                noteable_data: serialize_issuable(@merge_request),
                current_user_data: UserSerializer.new.represent(current_user).to_json} }

      #commits.commits.tab-pane
        -# This tab is always loaded via AJAX
      #pipelines.pipelines.tab-pane
        - if @pipelines.any?
          = render 'projects/commit/pipelines_list', disable_initialization: true, endpoint: pipelines_project_merge_request_path(@project, @merge_request)
      #diffs.diffs.tab-pane{ data: { "is-locked" => @merge_request.discussion_locked? } }
        -# 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