show.html.haml 5.4 KB
Newer Older
1
- @content_class = "limit-container-width" unless fluid_layout
2 3
- add_to_breadcrumbs "Merge Requests", project_merge_requests_path(@project)
- breadcrumb_title @merge_request.to_reference
4 5 6 7
- 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
8 9
  = webpack_bundle_tag('common_vue')
  = webpack_bundle_tag('diff_notes')
Lin Jen-Shin's avatar
Lin Jen-Shin committed
10
  = webpack_bundle_tag('issuable')
11

12
.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) } }
13 14 15 16 17 18 19 20
  = 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"

21
    -# haml-lint:disable InlineJavaScript
22
    :javascript
23
      window.gl = window.gl || {};
24
      window.gl.mrWidgetData = #{serialize_issuable(@merge_request, serializer: 'widget')}
25
<<<<<<< HEAD
26 27 28 29 30 31 32

      // Append static, server-generated data not included in merge request entity (EE-Only)
      // Object.assign would be useful here, but it blows up Phantom.js in tests
      window.gl.mrWidgetData.is_geo_secondary_node = '#{Gitlab::Geo.secondary?}' === 'true';
      window.gl.mrWidgetData.geo_secondary_help_path = '#{help_page_path("/gitlab-geo/configuration.md")}';
      window.gl.mrWidgetData.enable_squash_before_merge = '#{@merge_request.project.feature_available?(:merge_request_squash)}' === 'true';
      window.gl.mrWidgetData.squash_before_merge_help_path = '#{help_page_path("user/project/merge_requests/squash_and_merge")}';
33 34
=======
>>>>>>> upstream/master
35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51

    #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
      = 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
52
                = tab_link_for @merge_request, :show, force_link: @commit.present? do
53 54 55 56
                  Discussion
                  %span.badge= @merge_request.related_notes.user.count
              - if @merge_request.source_project
                %li.commits-tab
57
                  = tab_link_for @merge_request, :commits do
58 59 60 61
                    Commits
                    %span.badge= @commits_count
              - if @pipelines.any?
                %li.pipelines-tab
62
                  = tab_link_for @merge_request, :pipelines do
63
                    Pipelines
64
                    %span.badge.js-pipelines-mr-count= @pipelines.size
65
              %li.diffs-tab
66
                = tab_link_for @merge_request, :diffs do
67 68 69 70 71 72 73 74 75
                  Changes
                  %span.badge= @merge_request.diff_size
        #resolve-count-app.line-resolve-all-container.prepend-top-10{ "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 }" }
76 77 78 79
                  %template{ 'v-if' => 'resolvedDiscussionCount === discussionCount' }
                    = render 'shared/icons/icon_status_success_solid.svg'
                  %template{ 'v-else' => '' }
                    = render 'shared/icons/icon_resolve_discussion.svg'
80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95
                %span.line-resolve-text
                  {{ resolvedDiscussionCount }}/{{ discussionCount }} {{ resolvedCountText }} resolved
              = render "discussions/new_issue_for_all_discussions", merge_request: @merge_request
              = render "discussions/jump_to_next"

    .tab-content#diff-notes-app
      #notes.notes.tab-pane.voting_notes
        .row
          %section.col-md-12
            .issuable-discussion
              = render "projects/merge_requests/discussion"

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