2017-04-27 06:41:26 -04:00
- return unless note.author
2020-02-23 22:09:05 -05:00
- return unless note.readable_by?(current_user)
2017-04-27 06:41:26 -04:00
2017-10-07 00:25:17 -04:00
- show_image_comment_badge = local_assigns.fetch(:show_image_comment_badge, false)
2018-04-02 13:05:47 -04:00
- note_editable = can?(current_user, :admin_note, note)
2017-10-07 00:25:17 -04:00
- note_counter = local_assigns.fetch(:note_counter, 0)
2018-12-05 12:03:20 -05:00
%li.timeline-entry.note-wrapper{ id: dom_id(note),
2017-05-03 13:41:16 -04:00
class: ["note", "note-row-#{note.id}", ('system-note' if note.system)],
data: { author_id: note.author.id,
editable: note_editable,
note_id: note.id } }
2017-04-27 06:41:26 -04:00
.timeline-entry-inner
.timeline-icon
- if note.system
= icon_for_system_note(note)
- else
2017-10-07 00:25:17 -04:00
%a.image-diff-avatar-link{ href: user_path(note.author) }
2018-02-09 05:43:12 -05:00
= image_tag avatar_icon_for_user(note.author), alt: '', class: 'avatar s40'
2017-10-07 00:25:17 -04:00
- if note.is_a?(DiffNote) && note.on_image?
- if show_image_comment_badge && note_counter == 0
-# Only show this for the first comment in the discussion
2017-12-05 02:35:37 -05:00
%span.image-comment-badge
= sprite_icon('image-comment-dark')
2017-10-07 00:25:17 -04:00
- elsif note_counter == 0
- counter = badge_counter if local_assigns[:badge_counter]
- badge_class = "hidden" if @fresh_discussion || counter.nil?
2018-04-09 12:33:41 -04:00
%span.badge.badge-pill{ class: badge_class }
2017-10-07 00:25:17 -04:00
= counter
2017-04-27 06:41:26 -04:00
.timeline-content
.note-header
.note-header-info
%a{ href: user_path(note.author) }
2019-06-06 11:51:04 -04:00
%span.note-header-author-name.bold
2020-07-01 17:08:51 -04:00
= note.author.name
2018-07-16 12:18:52 -04:00
= user_status(note.author)
2020-07-13 02:09:23 -04:00
%span.note-headline-light{ data: { qa_selector: 'note_author_content' } }
2017-04-27 06:41:26 -04:00
= note.author.to_reference
2019-03-11 09:19:52 -04:00
%span.note-headline-light.note-headline-meta
- if note.system
%span.system-note-message
= markdown_field(note, :note)
2020-05-14 05:07:53 -04:00
- if note.created_at
%span.system-note-separator
·
%a.system-note-separator{ href: "##{dom_id(note)}" }= time_ago_with_tooltip(note.created_at, placement: 'bottom', html_class: 'note-created-ago')
2017-04-27 06:41:26 -04:00
- unless note.system?
.note-actions
- if note.for_personal_snippet?
= render 'snippets/notes/actions', note: note, note_editable: note_editable
- else
= render 'projects/notes/actions', note: note, note_editable: note_editable
.note-body{ class: note_editable ? 'js-task-list-container' : '' }
2020-07-13 02:09:23 -04:00
.note-text.md{ data: { qa_selector: 'note_content' } }
2017-08-23 12:53:29 -04:00
= markdown_field(note, :note)
2017-05-03 07:46:10 -04:00
= edited_time_ago_with_tooltip(note, placement: 'bottom', html_class: 'note_edited_ago')
2019-01-31 03:58:23 -05:00
.original-note-content.hidden{ data: { post_url: note_url(note), target_id: note.noteable.id, target_type: note.noteable.class.name.underscore } }
2017-05-18 03:46:44 -04:00
#{note.note}
2017-04-27 06:41:26 -04:00
- if note_editable
2017-05-03 04:48:01 -04:00
= render 'shared/notes/edit', note: note
2017-04-27 06:41:26 -04:00
.note-awards
= render 'award_emoji/awards_block', awardable: note, inline: false
- if note.system
2018-06-21 08:22:40 -04:00
.system-note-commit-list-toggler.hide
2019-01-07 15:08:19 -05:00
= _("Toggle commit list")
2020-08-10 14:09:54 -04:00
= sprite_icon('chevron-down', css_class: 'js-chevron-down gl-ml-1 gl-vertical-align-text-bottom')
= sprite_icon('chevron-up', css_class: 'js-chevron-up gl-ml-1 gl-vertical-align-text-bottom gl-display-none')
2017-04-27 06:41:26 -04:00
- 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
2017-06-29 13:06:35 -04:00
= link_to delete_attachment_project_note_path(note.project, note),
2019-01-07 15:08:19 -05:00
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
2017-04-27 06:41:26 -04:00
= icon('trash-o', class: 'cred')