BigW Consortium Gitlab

_sidebar.html.haml 3.74 KB
Newer Older
1 2
.issuable-sidebar.issuable-affix
  = form_for [@project.namespace.becomes(Namespace), @project, issuable], remote: true, html: {class: 'issuable-context-form inline-update js-issuable-update'} do |f|
3
    .block.assignee
4 5
      .title
        %label
6
          Assignee
7 8 9 10 11 12
        - if can?(current_user, :"admin_#{issuable.to_ability_name}", @project)
          .pull-right
            = link_to 'Edit', '#', class: 'edit-link'
      .value
        - if issuable.assignee
          %strong= link_to_member(@project, issuable.assignee, size: 24)
13 14
          - if issuable.instance_of?(MergeRequest) && !issuable.can_be_merged_by?(issuable.assignee)
            %a.pull-right.cannot-be-merged{href: '#', data: {toggle: 'tooltip'}, title: 'Not allowed to merge'}
15
              = icon('exclamation-triangle')
16
        - else
17
          .light None
18 19 20 21

      .selectbox
        = users_select_tag("#{issuable.class.table_name.singularize}[assignee_id]", placeholder: 'Select assignee', class: 'custom-form-control js-select2 js-assignee', selected: issuable.assignee_id, project: @target_project, null_user: true, current_user: true, first_user: true)

22
    .block.milestone
23 24
      .title
        %label
25
          Milestone
26 27 28 29 30 31 32 33 34 35 36
        - if can?(current_user, :"admin_#{issuable.to_ability_name}", @project)
          .pull-right
            = link_to 'Edit', '#', class: 'edit-link'
      .value
        - if issuable.milestone
          %span.back-to-milestone
            = link_to namespace_project_milestone_path(@project.namespace, @project, issuable.milestone) do
              %strong
                = icon('clock-o')
                = issuable.milestone.title
        - else
37
          .light None
38 39 40 41 42
      .selectbox
        = f.select(:milestone_id, milestone_options(issuable), { include_blank: true }, { class: 'select2 select2-compact js-select2 js-milestone', data: { placeholder: 'Select milestone' }})
        = hidden_field_tag :issuable_context
        = f.submit class: 'btn hide'

43
    - if issuable.project.labels.any?
44 45 46 47 48 49 50
      .block
        .title
          %label Labels
          - if can?(current_user, :"admin_#{issuable.to_ability_name}", @project)
            .pull-right
              = link_to 'Edit', '#', class: 'edit-link'
        .value.issuable-show-labels
51 52 53 54
          - if issuable.labels.any?
            - issuable.labels.each do |label|
              = link_to_label(label)
          - else
55
            .light None
56 57 58 59 60 61 62 63 64 65
        .selectbox
          = f.collection_select :label_ids, issuable.project.labels.all, :id, :name,
            { selected: issuable.label_ids }, multiple: true, class: 'select2 js-select2', data: { placeholder: "Select labels" }

    = render "shared/issuable/participants", participants: issuable.participants(current_user)

    - if current_user
      - subscribed = issuable.subscribed?(current_user)
      .block.light
        .title
66
          %label.light Notifications
67
        - subscribtion_status = subscribed ? 'subscribed' : 'unsubscribed'
68
        %button.btn.btn-block.btn-gray.subscribe-button{:type => 'button'}
69 70 71 72 73 74
          %span= subscribed ? 'Unsubscribe' : 'Subscribe'
        .subscription-status{data: {status: subscribtion_status}}
          .unsubscribed{class: ( 'hidden' if subscribed )}
            You're not receiving notifications from this thread.
          .subscribed{class: ( 'hidden' unless subscribed )}
            You're receiving notifications because you're subscribed to this thread.
75

76 77 78 79
    - project_ref = cross_project_reference(@project, issuable)
    .block
      .title
      .cross-project-reference
80
        %span
81
          Reference:
82
          %cite{title: project_ref}
83
            = project_ref
84
        = clipboard_button(clipboard_text: project_ref)
85 86 87

  :javascript
    new Subscription("#{toggle_subscription_path(issuable)}");
88
    new IssuableContext();