summaryrefslogtreecommitdiff
path: root/app/views/shared/_label.html.haml
blob: 8847d11f623ab276aa2ed7b5e51976f40a3d2da0 (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
- label_css_id = dom_id(label)
- status = label_subscription_status(label, @project).inquiry if current_user
- subject = local_assigns[:subject]
- toggle_subscription_path = toggle_subscription_label_path(label, @project) if current_user
- show_label_merge_requests_link = show_label_issuables_link?(label, :merge_requests, project: @project)
- show_label_issues_link = show_label_issuables_link?(label, :issues, project: @project)

%li.label-list-item{ id: label_css_id, data: { id: label.id } }
  = render "shared/label_row", label: label

  .visible-xs.visible-sm-inline-block.dropdown
    %button.btn.btn-default.label-options-toggle{ type: 'button', data: { toggle: "dropdown" } }
      Options
      = icon('caret-down')
    .dropdown-menu.dropdown-menu-align-right
      %ul
        - if show_label_merge_requests_link
          %li
            = link_to_label(label, subject: subject, type: :merge_request) do
              View merge requests
        - if show_label_issues_link
          %li
            = link_to_label(label, subject: subject) do
              View open issues
        - if current_user
          %li.label-subscription
            - if can_subscribe_to_label_in_different_levels?(label)
              %a.js-unsubscribe-button.label-subscribe-button{ role: 'button', href: '#', class: ('hidden' if status.unsubscribed?), data: { url: toggle_subscription_path } }
                %span Unsubscribe
              %a.js-subscribe-button.label-subscribe-button{ role: 'button', href: '#', class: ('hidden' unless status.unsubscribed?), data: { url: toggle_subscription_project_label_path(@project, label) } }
                %span Subscribe at project level
              %a.js-subscribe-button.label-subscribe-button{ role: 'button', href: '#', class: ('hidden' unless status.unsubscribed?), data: { url: toggle_subscription_group_label_path(label.group, label) } }
                %span Subscribe at group level
            - else
              %a.js-subscribe-button.label-subscribe-button{ role: 'button', href: '#', data: { status: status, url: toggle_subscription_path } }
                %span= label_subscription_toggle_button_text(label, @project)

        - if can?(current_user, :admin_label, label)
          %li
            = link_to 'Edit', edit_label_path(label)
          %li
            = link_to 'Delete',
              destroy_label_path(label),
              title: 'Delete',
              method: :delete,
              data: {confirm: 'Remove this label? Are you sure?'},
              class: 'text-danger'

  .pull-right.hidden-xs.hidden-sm
    - if label.is_a?(ProjectLabel) && label.project.group && can?(current_user, :admin_label, label.project.group)
      = link_to promote_project_label_path(label.project, label), title: "Promote to Group Label", class: 'btn btn-transparent btn-action', data: {confirm: "Promoting #{label.title} will make it available for all projects inside #{label.project.group.name}. Existing project labels with the same name will be merged. This action cannot be reversed.", toggle: "tooltip"}, method: :post do
        %span.sr-only Promote to Group
        = sprite_icon('level-up')
    - if can?(current_user, :admin_label, label)
      = link_to edit_label_path(label), title: "Edit", class: 'btn btn-transparent btn-action', data: {toggle: "tooltip"} do
        %span.sr-only Edit
        = sprite_icon('pencil')
      %span{ data: { toggle: 'modal', target: "#modal-delete-label-#{label.id}" } }
        = link_to "#", title: "Delete", class: 'btn btn-transparent btn-action remove-row', data: { toggle: "tooltip" } do
          %span.sr-only Delete
          = sprite_icon('remove')
    - if current_user
      .label-subscription.inline
        - if can_subscribe_to_label_in_different_levels?(label)
          %button.js-unsubscribe-button.label-subscribe-button.btn.btn-default{ type: 'button', class: ('hidden' if status.unsubscribed?), data: { url: toggle_subscription_path } }
            %span Unsubscribe
            = icon('spinner spin', class: 'label-subscribe-button-loading')

          .dropdown.dropdown-group-label{ class: ('hidden' unless status.unsubscribed?) }
            %button.dropdown-menu-toggle{ type: 'button', 'data-toggle' => 'dropdown' }
              %span Subscribe
              = icon('chevron-down')
            %ul.dropdown-menu
              %li
                %a.js-subscribe-button{ class: ('hidden' unless status.unsubscribed?), data: { url: toggle_subscription_project_label_path(@project, label) } }
                  Project level
                %a.js-subscribe-button{ class: ('hidden' unless status.unsubscribed?), data: { url: toggle_subscription_group_label_path(label.group, label) } }
                  Group level
        - else
          %button.js-subscribe-button.label-subscribe-button.btn.btn-default{ type: 'button', data: { status: status, url: toggle_subscription_path } }
            %span= label_subscription_toggle_button_text(label, @project)
            = icon('spinner spin', class: 'label-subscribe-button-loading')

= render 'shared/delete_label_modal', label: label