.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|
    .block.assignee
      .title
        %label
          Assignee
        - 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)
          - 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'}
              = icon('exclamation-triangle')
        - else
          .light None

      .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)

    .block.milestone
      .title
        %label
          Milestone
        - 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
          .light None
      .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'

    - if issuable.project.labels.any?
      .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
          - if issuable.labels.any?
            - issuable.labels.each do |label|
              = link_to_label(label)
          - else
            .light None
        .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
          %label.light Notifications
        - subscribtion_status = subscribed ? 'subscribed' : 'unsubscribed'
        %button.btn.btn-block.btn-gray.subscribe-button{:type => 'button'}
          %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.

    - project_ref = cross_project_reference(@project, issuable)
    .block
      .title
      .cross-project-reference
        %span
          Reference:
          %cite{title: project_ref}
            = project_ref
        = clipboard_button(clipboard_text: project_ref)

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