-
Notifications
You must be signed in to change notification settings - Fork 5
Expand file tree
/
Copy path_message.html.slim
More file actions
67 lines (66 loc) · 4.2 KB
/
_message.html.slim
File metadata and controls
67 lines (66 loc) · 4.2 KB
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
- render_mode = local_assigns.fetch(:render_mode, :inline)
- is_read = local_assigns.fetch(:is_read, false)
- collapse_read = local_assigns.fetch(:collapse_read, true)
- is_collapsed = (render_mode == :collapsed) || (render_mode == :shell && is_read && collapse_read)
- message_classes = [("reply-message" if message.reply_to_id), ("message-branch-#{local_assigns[:branch_index]}" unless local_assigns[:branch_index].nil?), ("is-collapsed" if is_collapsed)].compact.join(" ")
.message-card id=message_dom_id(message) class=message_classes data-controller="message-collapse" data-message-collapse-collapsed-value=is_collapsed data-message-id=message.id data-read=(is_read ? "true" : "false")
- if (mid_anchor = message_id_anchor(message))
a.message-id-anchor id=mid_anchor aria-hidden="true"
- if local_assigns[:is_first_unread]
a.message-id-anchor id="first-unread" aria-hidden="true"
- display_number = number || (@message_numbers && @message_numbers[message.id])
.message-header
.message-author
.author-row
= link_to "##{display_number}", "#message-#{message.id}", class: "message-number"
= button_tag type: "button",
class: "message-copy",
data: { controller: "clipboard", action: "click->clipboard#copy", "clipboard-url-value": topic_url(@topic, anchor: "message-#{message.id}") },
title: "Copy message link",
"aria-label": "Copy message link" do
i.fa-regular.fa-copy
- display_alias = message.sender_display_alias
- profile_path = message.sender_person ? person_path(display_alias.email) : nil
- if profile_path
= link_to profile_path, class: "author-avatar-link" do
= image_tag display_alias.gravatar_url(size: 42), class: "message-avatar", alt: display_alias.name
- else
= image_tag display_alias.gravatar_url(size: 42), class: "message-avatar", alt: display_alias.name
.author-details
- if profile_path
.author-name = link_to display_alias.name, profile_path, class: "author-name-link"
- else
.author-name = display_alias.name
.author-email = message.sender_person.user ? display_alias.email : message.sender.email
.message-meta
.message-date
time datetime=message.created_at.iso8601 title=absolute_time_display(message.created_at)
= time_ago_in_words(message.created_at)
| ago
- if message.reply_to
- parent_number = (@message_numbers && @message_numbers[message.reply_to.id]) || "-"
.reply-indicator
span.reply-to In reply to: #{message.reply_to.sender_display_alias.name} (##{parent_number})
- if message.message_id.present?
.message-archive-link
= link_to "https://postgr.es/m/#{ERB::Util.url_encode(message.message_id)}", target: "_blank", rel: "noopener", data: { turbo: false }, title: "View on postgr.es", "aria-label": "View on postgr.es" do
i.fa-solid.fa-building-columns
= link_to "https://www.postgresql.org/message-id/resend/#{ERB::Util.url_encode(message.message_id)}", target: "_blank", rel: "noopener", data: { turbo: false }, title: "Resend from postgresql.org archive", "aria-label": "Resend from postgresql.org archive" do
i.fa-solid.fa-paper-plane
button.message-collapse-toggle type="button" data-action="click->message-collapse#toggle" aria-label="Toggle message"
i.fa-solid class=(is_collapsed ? "fa-chevron-down" : "fa-chevron-up")
.message-body-wrapper
- if render_mode == :inline
= render "topics/message_body", message: message
- elsif render_mode == :collapsed
= turbo_frame_tag "message-body-#{message.id}", src: message_content_path(message)
- elsif render_mode == :shell
.message-batch-skeleton data-batch-loader-target="skeleton"
- unless is_collapsed
.skeleton-line.skeleton-line-long
.skeleton-line.skeleton-line-medium
.skeleton-line.skeleton-line-long
.skeleton-line.skeleton-line-short
- if user_signed_in?
- notes_for_message = @notes_by_message&.[](message.id) || []
= render "notes/note_stack", topic: @topic, message: message, notes: notes_for_message