_note.html.haml 4.25 KB
Newer Older
1 2
- return unless note.author
- return if note.cross_reference_not_visible_for?(current_user)
3
- can_resolve = can?(current_user, :resolve_note, note)
4

5
- note_editable = note_editable?(note)
6
%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} }
7 8
  .timeline-entry-inner
    .timeline-icon
9
      %a{href: user_path(note.author)}
10
        = image_tag avatar_icon(note.author), alt: '', class: 'avatar s40'
11 12
    .timeline-content
      .note-header
13 14
        = link_to_member(note.project, note.author, avatar: false)
        .inline.note-headline-light
15 16
          = note.author.to_reference
          - unless note.system
17
            commented
18 19
          %a{ href: "##{dom_id(note)}" }
            = time_ago_with_tooltip(note.created_at, placement: 'bottom', html_class: 'note-created-ago')
20 21 22 23 24 25
        - unless note.system?
          .note-actions
            - access = note_max_access_for_user(note)
            - if access
              %span.note-role.hidden-xs= access

Phil Hughes's avatar
Phil Hughes committed
26
            - if note.resolvable?
27 28 29 30 31
              %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?,
32
                  ":can-resolve" => can_resolve,
33
                  ":resolved-by" => "'#{note.resolved_by.try(:name)}'",
34
                  "v-show" => "#{can_resolve || note.resolved?}",
35 36
                  "inline-template" => true,
                  "v-ref:note_#{note.id}" => true }
37

38 39 40
                .note-action-button
                  = icon("spin spinner", "v-show" => "loading")
                  %button.line-resolve-btn{ type: "button",
41
                      class: ("is-disabled" unless can_resolve),
42 43 44 45 46 47
                      ":class" => "{ 'is-active': isResolved }",
                      ":aria-label" => "buttonText",
                      "@click" => "resolve",
                      ":title" => "buttonText",
                      "v-show" => "!loading",
                      "v-el:button" => true }
48

49
                    = render "shared/icons/icon_status_success.svg"
50 51 52 53 54

            - 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')
Clement Ho's avatar
Clement Ho committed
55
                  = icon('smile-o', class: 'link-highlight')
56 57 58

              - if note_editable
                = link_to '#', title: 'Edit comment', class: 'note-action-button js-note-edit' do
Clement Ho's avatar
Clement Ho committed
59
                  = icon('pencil', class: 'link-highlight')
60 61
                = 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')
62
      .note-body{class: note_editable ? 'js-task-list-container' : ''}
63
        .note-text.md
64
          = preserve do
65
            = note.note_html
Fatih Acet's avatar
Fatih Acet committed
66
          = edited_time_ago_with_tooltip(note, placement: 'bottom', html_class: 'note_edited_ago', include_author: true)
67
        - if note_editable
68
          = render 'projects/notes/edit_form', note: note
69 70
        .note-awards
          = render 'award_emoji/awards_block', awardable: note, inline: false
Jack Weeden's avatar
Jack Weeden committed
71

72 73 74
      - if note.attachment.url
        .note-attachment
          - if note.attachment.image?
Douwe Maan's avatar
Douwe Maan committed
75 76
            = link_to note.attachment.url, target: '_blank' do
              = image_tag note.attachment.url, class: 'note-image-attach'
77
          .attachment
78 79
            = link_to note.attachment.url, target: '_blank' do
              = icon('paperclip')
80
              = note.attachment_identifier
Douwe Maan's avatar
Douwe Maan committed
81
              = link_to delete_attachment_namespace_project_note_path(note.project.namespace, note.project, note),
82 83
                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')