summaryrefslogtreecommitdiff
path: root/app/views/projects/notes/_note.html.haml
blob: 5478a887f91287cec6e471aa312dc1238395ae2f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
%li.timeline-entry{ id: dom_id(note), class: [dom_class(note), "note-row-#{note.id}", ('system-note' if note.system)], data: { discussion: note.discussion_id } }
  .timeline-entry-inner
    .timeline-icon
      - if note.system
        %span= icon('circle')
      - else
        = link_to user_path(note.author) do
          = image_tag avatar_icon(note.author_email), class: 'avatar s40', alt: ''
    .timeline-content
      .note-header
        - if note_editable?(note)
          .note-actions
            = link_to '#', title: 'Edit comment', class: 'js-note-edit' do
              = icon('pencil-square-o')

            = 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: 'js-note-delete danger' do
              = icon('trash-o')

        - unless note.system
          - member = note.project.team.find_member(note.author.id)
          - if member
            %span.note-role.label
              = member.human_access

        - if note.system
          = link_to user_path(note.author) do
            = image_tag avatar_icon(note.author_email), class: 'avatar s16', alt: ''

        = link_to_member(note.project, note.author, avatar: false)

        %span.author-username
          = '@' + note.author.username

        %span.note-last-update
          = link_to "##{dom_id(note)}", name: dom_id(note), title: "Link here" do
            = note_timestamp(note)

        - if note.superceded?(@notes)
          - if note.upvote?
            %span.vote.upvote.label.label-gray.strikethrough
              = icon('thumbs-up')
              \+1
          - if note.downvote?
            %span.vote.downvote.label.label-gray.strikethrough
              = icon('thumbs-down')
              \-1
        - else
          - if note.upvote?
            %span.vote.upvote.label.label-success
              = icon('thumbs-up')
              \+1
          - if note.downvote?
            %span.vote.downvote.label.label-danger
              = icon('thumbs-down')
              \-1


      .note-body{class: note_editable?(note) ? 'js-task-list-container' : ''}
        = cache [note, 'markdown'] do
          .note-text
            = preserve do
              = markdown(note.note, {no_header_anchors: true})
        = render 'projects/notes/edit_form', note: note

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