83 lines
4.2 KiB
Text
83 lines
4.2 KiB
Text
- return unless note.author
|
|
- return if note.cross_reference_not_visible_for?(current_user)
|
|
- can_resolve = can?(current_user, :resolve_note, note)
|
|
|
|
- note_editable = note_editable?(note)
|
|
%li.timeline-entry{ id: dom_id(note), class: ["note", "note-row-#{note.id}", ('system-note' if note.system)], data: {author_id: note.author.id, editable: note_editable} }
|
|
.timeline-entry-inner
|
|
.timeline-icon
|
|
%a{href: user_path(note.author)}
|
|
= image_tag avatar_icon(note.author), alt: '', class: 'avatar s40'
|
|
.timeline-content
|
|
.note-header
|
|
= link_to_member(note.project, note.author, avatar: false)
|
|
.inline.note-headline-light
|
|
= note.author.to_reference
|
|
- unless note.system
|
|
commented
|
|
%a{ href: "##{dom_id(note)}" }
|
|
= time_ago_with_tooltip(note.created_at, placement: 'bottom', html_class: 'note-created-ago')
|
|
- unless note.system?
|
|
.note-actions
|
|
- access = note_max_access_for_user(note)
|
|
- if access
|
|
%span.note-role.hidden-xs= access
|
|
|
|
- if note.resolvable?
|
|
%resolve-btn{ ":namespace-path" => "'#{note.project.namespace.path}'",
|
|
":project-path" => "'#{note.project.path}'",
|
|
":discussion-id" => "'#{note.discussion_id}'",
|
|
":note-id" => note.id,
|
|
":resolved" => note.resolved?,
|
|
":can-resolve" => can_resolve,
|
|
":resolved-by" => "'#{note.resolved_by.try(:name)}'",
|
|
"v-show" => "#{can_resolve || note.resolved?}",
|
|
"inline-template" => true,
|
|
"v-ref:note_#{note.id}" => true }
|
|
|
|
.note-action-button
|
|
= icon("spin spinner", "v-show" => "loading")
|
|
%button.line-resolve-btn{ type: "button",
|
|
class: ("is-disabled" unless can_resolve),
|
|
":class" => "{ 'is-active': isResolved }",
|
|
":aria-label" => "buttonText",
|
|
"@click" => "resolve",
|
|
":title" => "buttonText",
|
|
"v-show" => "!loading",
|
|
"v-el:button" => true }
|
|
|
|
= render "shared/icons/icon_status_success.svg"
|
|
|
|
- if current_user
|
|
- if note.emoji_awardable?
|
|
= link_to '#', title: 'Award Emoji', class: 'note-action-button note-emoji-button js-add-award js-note-emoji', data: { position: 'right' } do
|
|
= icon('spinner spin')
|
|
= icon('smile-o', class: 'link-highlight')
|
|
|
|
- if note_editable
|
|
= link_to '#', title: 'Edit comment', class: 'note-action-button js-note-edit' do
|
|
= icon('pencil', class: 'link-highlight')
|
|
= link_to namespace_project_note_path(note.project.namespace, note.project, note), title: 'Remove comment', method: :delete, data: { confirm: 'Are you sure you want to remove this comment?' }, remote: true, class: 'note-action-button hidden-xs js-note-delete danger' do
|
|
= icon('trash-o')
|
|
.note-body{class: note_editable ? 'js-task-list-container' : ''}
|
|
.note-text.md
|
|
= preserve do
|
|
= note.note_html
|
|
= edited_time_ago_with_tooltip(note, placement: 'bottom', html_class: 'note_edited_ago', include_author: true)
|
|
- if note_editable
|
|
= render 'projects/notes/edit_form', note: note
|
|
.note-awards
|
|
= render 'award_emoji/awards_block', awardable: note, inline: false
|
|
|
|
- if note.attachment.url
|
|
.note-attachment
|
|
- if note.attachment.image?
|
|
= link_to note.attachment.url, target: '_blank' do
|
|
= image_tag note.attachment.url, class: 'note-image-attach'
|
|
.attachment
|
|
= link_to note.attachment.url, target: '_blank' do
|
|
= icon('paperclip')
|
|
= note.attachment_identifier
|
|
= link_to delete_attachment_namespace_project_note_path(note.project.namespace, note.project, note),
|
|
title: 'Delete this attachment', method: :delete, remote: true, data: { confirm: 'Are you sure you want to remove the attachment?' }, class: 'danger js-note-attachment-delete' do
|
|
= icon('trash-o', class: 'cred')
|