summaryrefslogtreecommitdiff
path: root/app/views/projects/merge_requests/widget/_open.html.haml
blob: bc426f1dc0c022d8c279b80df32b6a52e0e6b3b3 (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
.mr-state-widget
  = render 'projects/merge_requests/widget/heading'
  .mr-widget-body
    -# After conflicts are resolved, the user is redirected back to the MR page.
    -# There is a short window before background workers run and GitLab processes
    -# the new push and commits, during which it will think the conflicts still exist.
    -# We send this param to get the widget to treat the MR as having no more conflicts.
    - resolved_conflicts = params[:resolved_conflicts]

    - if @project.archived?
      = render 'projects/merge_requests/widget/open/archived'
    - elsif @merge_request.branch_missing?
      = render 'projects/merge_requests/widget/open/missing_branch'
    - elsif @merge_request.has_no_commits?
      = render 'projects/merge_requests/widget/open/nothing'
    - elsif @merge_request.unchecked?
      = render 'projects/merge_requests/widget/open/check'
    - elsif @merge_request.cannot_be_merged? && !resolved_conflicts
      = render 'projects/merge_requests/widget/open/conflicts'
    - elsif @merge_request.work_in_progress?
      = render 'projects/merge_requests/widget/open/wip'
    - elsif @merge_request.merge_when_pipeline_succeeds?
      = render 'projects/merge_requests/widget/open/merge_when_pipeline_succeeds'
    - elsif !@merge_request.can_be_merged_by?(current_user)
      = render 'projects/merge_requests/widget/open/not_allowed'
    - elsif !@merge_request.mergeable_ci_state? && (@pipeline.failed? || @pipeline.canceled?)
      = render 'projects/merge_requests/widget/open/build_failed'
    - elsif !@merge_request.mergeable_discussions_state?
      = render 'projects/merge_requests/widget/open/unresolved_discussions'
    - elsif @pipeline&.blocked?
      = render 'projects/merge_requests/widget/open/manual'
    - elsif @merge_request.can_be_merged? || resolved_conflicts
      = render 'projects/merge_requests/widget/open/accept'

  - if mr_closes_issues.present? || mr_issues_mentioned_but_not_closing.present?
    .mr-widget-footer
      %span
        = icon('check')
        - if mr_closes_issues.present?
          Accepting this merge request will close #{"issue".pluralize(mr_closes_issues.size)}
          = succeed '.' do
            != markdown issues_sentence(mr_closes_issues), pipeline: :gfm, author: @merge_request.author
          = mr_assign_issues_link
        - if mr_issues_mentioned_but_not_closing.present?
          #{"Issue".pluralize(mr_issues_mentioned_but_not_closing.size)}
          != markdown issues_sentence(mr_issues_mentioned_but_not_closing), pipeline: :gfm, author: @merge_request.author
          #{mr_issues_mentioned_but_not_closing.size > 1 ? 'are' : 'is'} mentioned but will not be closed.