2016-04-02 18:10:28 +05:30
|
|
|
%aside.right-sidebar{ class: sidebar_gutter_collapsed_class }
|
|
|
|
.issuable-sidebar
|
|
|
|
.block
|
|
|
|
%span.issuable-count.hide-collapsed.pull-left
|
|
|
|
= issuable.iid
|
|
|
|
of
|
|
|
|
= issuables_count(issuable)
|
|
|
|
%span.pull-right
|
|
|
|
%a.gutter-toggle{href: '#'}
|
|
|
|
= sidebar_gutter_toggle_icon
|
|
|
|
.issuable-nav.hide-collapsed.pull-right.btn-group{role: 'group', "aria-label" => '...'}
|
|
|
|
- if prev_issuable = prev_issuable_for(issuable)
|
|
|
|
= link_to 'Prev', [@project.namespace.becomes(Namespace), @project, prev_issuable], class: 'btn btn-default prev-btn'
|
|
|
|
- else
|
|
|
|
%a.btn.btn-default.disabled{href: '#'}
|
|
|
|
Prev
|
|
|
|
- if next_issuable = next_issuable_for(issuable)
|
|
|
|
= link_to 'Next', [@project.namespace.becomes(Namespace), @project, next_issuable], class: 'btn btn-default next-btn'
|
2015-12-23 02:04:40 +05:30
|
|
|
- else
|
2016-04-02 18:10:28 +05:30
|
|
|
%a.btn.btn-default.disabled{href: '#'}
|
|
|
|
Next
|
2015-12-23 02:04:40 +05:30
|
|
|
|
2016-04-02 18:10:28 +05:30
|
|
|
= form_for [@project.namespace.becomes(Namespace), @project, issuable], remote: true, html: {class: 'issuable-context-form inline-update js-issuable-update'} do |f|
|
|
|
|
.block.assignee
|
|
|
|
.sidebar-collapsed-icon
|
|
|
|
- if issuable.assignee
|
|
|
|
= link_to_member_avatar(issuable.assignee, size: 24)
|
|
|
|
- else
|
|
|
|
= icon('user')
|
|
|
|
.title.hide-collapsed
|
|
|
|
%label
|
|
|
|
Assignee
|
|
|
|
- if can?(current_user, :"admin_#{issuable.to_ability_name}", @project)
|
|
|
|
.pull-right
|
|
|
|
= link_to 'Edit', '#', class: 'edit-link'
|
|
|
|
.value.hide-collapsed
|
|
|
|
- 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
|
2015-12-23 02:04:40 +05:30
|
|
|
|
2016-04-02 18:10:28 +05:30
|
|
|
.selectbox.hide-collapsed
|
|
|
|
= 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)
|
2015-12-23 02:04:40 +05:30
|
|
|
|
2016-04-02 18:10:28 +05:30
|
|
|
.block.milestone
|
|
|
|
.sidebar-collapsed-icon
|
|
|
|
= icon('clock-o')
|
|
|
|
%span
|
|
|
|
- if issuable.milestone
|
|
|
|
= issuable.milestone.title
|
|
|
|
- else
|
|
|
|
No
|
|
|
|
.title.hide-collapsed
|
|
|
|
%label
|
|
|
|
Milestone
|
2015-12-23 02:04:40 +05:30
|
|
|
- if can?(current_user, :"admin_#{issuable.to_ability_name}", @project)
|
|
|
|
.pull-right
|
|
|
|
= link_to 'Edit', '#', class: 'edit-link'
|
2016-04-02 18:10:28 +05:30
|
|
|
.value.hide-collapsed
|
|
|
|
- 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
|
2015-12-23 02:04:40 +05:30
|
|
|
- else
|
|
|
|
.light None
|
2016-04-02 18:10:28 +05:30
|
|
|
.selectbox.hide-collapsed
|
|
|
|
= 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'
|
2015-12-23 02:04:40 +05:30
|
|
|
|
2016-04-02 18:10:28 +05:30
|
|
|
- if issuable.project.labels.any?
|
|
|
|
.block.labels
|
|
|
|
.sidebar-collapsed-icon
|
|
|
|
= icon('tags')
|
|
|
|
%span
|
|
|
|
= issuable.labels.count
|
|
|
|
.title.hide-collapsed
|
|
|
|
%label Labels
|
|
|
|
- if can?(current_user, :"admin_#{issuable.to_ability_name}", @project)
|
|
|
|
.pull-right
|
|
|
|
= link_to 'Edit', '#', class: 'edit-link'
|
|
|
|
.value.issuable-show-labels.hide-collapsed
|
|
|
|
- if issuable.labels.any?
|
|
|
|
- issuable.labels.each do |label|
|
|
|
|
= link_to_label(label, type: issuable.to_ability_name)
|
|
|
|
- else
|
|
|
|
.light None
|
|
|
|
.selectbox.hide-collapsed
|
|
|
|
= 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" }
|
2015-12-23 02:04:40 +05:30
|
|
|
|
2016-04-02 18:10:28 +05:30
|
|
|
= render "shared/issuable/participants", participants: issuable.participants(current_user)
|
|
|
|
%hr
|
|
|
|
- if current_user
|
|
|
|
- subscribed = issuable.subscribed?(current_user)
|
|
|
|
.block.light
|
|
|
|
.sidebar-collapsed-icon
|
|
|
|
= icon('rss')
|
|
|
|
.title.hide-collapsed
|
|
|
|
%label.light Notifications
|
|
|
|
- subscribtion_status = subscribed ? 'subscribed' : 'unsubscribed'
|
|
|
|
%button.btn.btn-block.btn-gray.subscribe-button.hide-collapsed{:type => 'button'}
|
|
|
|
%span= subscribed ? 'Unsubscribe' : 'Subscribe'
|
|
|
|
.subscription-status.hide-collapsed{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.
|
2016-01-19 16:12:03 +05:30
|
|
|
|
2016-04-02 18:10:28 +05:30
|
|
|
- project_ref = cross_project_reference(@project, issuable)
|
|
|
|
.block.project-reference
|
|
|
|
.sidebar-collapsed-icon
|
|
|
|
= clipboard_button(clipboard_text: project_ref)
|
|
|
|
.cross-project-reference.hide-collapsed
|
|
|
|
%span
|
|
|
|
Reference:
|
|
|
|
%cite{title: project_ref}
|
|
|
|
= project_ref
|
|
|
|
= clipboard_button(clipboard_text: project_ref)
|
2015-12-23 02:04:40 +05:30
|
|
|
|
2016-04-02 18:10:28 +05:30
|
|
|
:javascript
|
|
|
|
new Subscription("#{toggle_subscription_path(issuable)}");
|
|
|
|
new IssuableContext();
|