summaryrefslogtreecommitdiff
path: root/app/views/shared/milestones/_milestone.html.haml
blob: e99aa3f1ee443d0cdf4930a61c5a40a54baa5f3a (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
- dashboard = local_assigns[:dashboard]
- custom_dom_id = dom_id(milestone.try(:milestone) ? milestone.milestone : milestone)
- milestone_type = milestone.group_milestone? ? 'Group Milestone' : 'Project Milestone'

%li{ class: "milestone milestone-#{milestone.closed? ? 'closed' : 'open'}", id: custom_dom_id }
  .row
    .col-sm-6
      .append-bottom-5
        %strong= link_to truncate(milestone.title, length: 100), milestone_path
        - if @group
          = " - #{milestone_type}"

      - if @project || milestone.is_a?(GlobalMilestone) || milestone.group_milestone?
        - if milestone.due_date || milestone.start_date
          .milestone-range.append-bottom-5
            = milestone_date_range(milestone)
        %div
          = render('shared/milestone_expired', milestone: milestone)
          - if milestone.group_milestone?
            .label-badge.label-badge-blue.d-inline-block
              = milestone.group.full_name
          - if milestone.legacy_group_milestone?
            .projects
              - link_to milestone_path(milestone.milestone) do
                %span.label-badge.label-badge-blue.d-inline-block.append-bottom-5
                  = dashboard ? milestone.project.full_name : milestone.project.name
          - if milestone.project
            .label-badge.label-badge-gray.d-inline-block
              = milestone.project.full_name

    .col-sm-4.milestone-progress
      = milestone_progress_bar(milestone)
      = link_to pluralize(milestone.total_issues_count(current_user), 'Issue'), issues_path
      ·
      = link_to pluralize(milestone.merge_requests_visible_to_user(current_user).size, 'Merge Request'), merge_requests_path
      .float-lg-right.light #{milestone.percent_complete(current_user)}% complete
    .col-sm-2
      .milestone-actions.d-flex.justify-content-sm-start.justify-content-md-end
        - if @project
          - if can_admin_project_milestones? and milestone.active?
            - if can_admin_group_milestones?
              %button.js-promote-project-milestone-button.btn.btn-blank.btn-sm.btn-grouped.has-tooltip{ title: _('Promote to Group Milestone'),
                disabled: true,
                type: 'button',
                data: { url: promote_project_milestone_path(milestone.project, milestone),
                        milestone_title: milestone.title,
                        group_name: @project.group.name,
                        target: '#promote-milestone-modal',
                        container: 'body',
                        toggle: 'modal' } }
                = sprite_icon('level-up', size: 14)

            = link_to 'Close Milestone', project_milestone_path(@project, milestone, milestone: {state_event: :close }), method: :put, remote: true, class: "btn btn-sm btn-close btn-grouped"
          - unless milestone.active?
            = link_to 'Reopen Milestone', project_milestone_path(@project, milestone, milestone: {state_event: :activate }), method: :put, class: "btn btn-grouped btn-reopen"
        - if @group
          - if can?(current_user, :admin_milestone, @group)
            - if milestone.closed?
              = link_to 'Reopen Milestone', group_milestone_route(milestone, {state_event: :activate }), method: :put, class: "btn btn-sm btn-grouped btn-reopen"
            - else
              = link_to 'Close Milestone', group_milestone_route(milestone, {state_event: :close }), method: :put, class: "btn btn-sm btn-grouped btn-close"
        - if dashboard
          .label-badge.label-badge-gray
            = milestone_type