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
|
# File 'lib/plutonium/helpers/attachment_helper.rb', line 4
def attachment_preview(attachments, **options)
clamp_content begin
tag.div class: [options[:identity_class], "attachment-preview-container d-flex flex-wrap gap-1 my-1"],
data: {controller: "attachment-preview-container"} do
Array(attachments).each do |attachment|
next unless attachment.url.present?
concat begin
tag.div class: [options[:identity_class], "attachment-preview d-inline-block text-center"],
title: attachment.filename,
data: {
controller: "attachment-preview",
attachment_preview_mime_type_value: attachment.content_type,
attachment_preview_thumbnail_url_value: _attachment_thumbnail_url(attachment)
} do
tag.figure class: "figure my-1", style: "width: 160px;" do
concat attachment_preview_thumnail(attachment)
concat begin
tag.figcaption class: "figure-caption text-truncate" do
if options[:caption]
caption = options[:caption].is_a?(String) ? options[:caption] : attachment.filename
concat link_to(caption, attachment.url, class: "text-decoration-none", target: :blank)
end
if block_given?
elements = Array(yield attachment).compact
elements.each { |elem| concat elem }
end
end
end
end
end
end
end
end
end
end
|