refactor(gallery): add helper methods
This commit is contained in:
parent
05ad5dcbd6
commit
f73a1e1d54
3 changed files with 31 additions and 12 deletions
21
app/helpers/gallery_helper.rb
Normal file
21
app/helpers/gallery_helper.rb
Normal file
|
@ -0,0 +1,21 @@
|
||||||
|
module GalleryHelper
|
||||||
|
def displayable_pdf?(blob)
|
||||||
|
blob.previewable? && blob.content_type.in?(AUTHORIZED_PDF_TYPES)
|
||||||
|
end
|
||||||
|
|
||||||
|
def displayable_image?(blob)
|
||||||
|
blob.variable? && blob.content_type.in?(AUTHORIZED_IMAGE_TYPES)
|
||||||
|
end
|
||||||
|
|
||||||
|
def preview_url_for(attachment)
|
||||||
|
attachment.preview(resize_to_limit: [400, 400]).processed.url
|
||||||
|
end
|
||||||
|
|
||||||
|
def variant_url_for(attachment)
|
||||||
|
attachment.variant(resize_to_limit: [400, 400]).processed.url
|
||||||
|
end
|
||||||
|
|
||||||
|
def blob_url(attachment)
|
||||||
|
attachment.blob.content_type.in?(RARE_IMAGE_TYPES) ? attachment.variant(resize_to_limit: [2000, 2000]).processed.url : attachment.blob.url
|
||||||
|
end
|
||||||
|
end
|
|
@ -8,21 +8,20 @@
|
||||||
- champ.piece_justificative_file.with_all_variant_records.each do |attachment|
|
- champ.piece_justificative_file.with_all_variant_records.each do |attachment|
|
||||||
.gallery-item
|
.gallery-item
|
||||||
- blob = attachment.blob
|
- blob = attachment.blob
|
||||||
- if blob.previewable? && blob.content_type.in?(AUTHORIZED_PDF_TYPES)
|
- if displayable_pdf?(blob)
|
||||||
= link_to blob.url, id: blob.id, data: { iframe: true, src: blob.url }, class: 'gallery-link', type: blob.content_type, title: "#{champ.libelle} -- #{blob.filename}" do
|
= link_to blob.url, id: blob.id, data: { iframe: true, src: blob.url }, class: 'gallery-link', type: blob.content_type, title: "#{champ.libelle} -- #{blob.filename}" do
|
||||||
.thumbnail
|
.thumbnail
|
||||||
= image_tag(attachment.preview(resize_to_limit: [400, 400]).processed.url, loading: :lazy)
|
= image_tag(preview_url_for(attachment), loading: :lazy)
|
||||||
.fr-btn.fr-btn--tertiary.fr-btn--icon-left.fr-icon-eye{ role: :button }
|
.fr-btn.fr-btn--tertiary.fr-btn--icon-left.fr-icon-eye{ role: :button }
|
||||||
Visualiser
|
Visualiser
|
||||||
.champ-libelle
|
.champ-libelle
|
||||||
= champ.libelle.truncate(25)
|
= champ.libelle.truncate(25)
|
||||||
= render Attachment::ShowComponent.new(attachment: attachment, truncate: true)
|
= render Attachment::ShowComponent.new(attachment: attachment, truncate: true)
|
||||||
|
|
||||||
- elsif blob.variable? && blob.content_type.in?(AUTHORIZED_IMAGE_TYPES)
|
- elsif displayable_image?(blob)
|
||||||
- blob_url = blob.content_type.in?(RARE_IMAGE_TYPES) ? attachment.variant(resize_to_limit: [2000, 2000]).processed.url : blob.url
|
= link_to image_url(blob_url(attachment)), title: "#{champ.libelle} -- #{blob.filename}", data: { src: blob.url }, class: 'gallery-link' do
|
||||||
= link_to image_url(blob_url), title: "#{champ.libelle} -- #{blob.filename}", data: { src: blob.url }, class: 'gallery-link' do
|
|
||||||
.thumbnail
|
.thumbnail
|
||||||
= image_tag(attachment.variant(resize_to_limit: [400, 400]).processed.url, loading: :lazy)
|
= image_tag(variant_url_for(attachment), loading: :lazy)
|
||||||
.fr-btn.fr-btn--tertiary.fr-btn--icon-left.fr-icon-eye{ role: :button }
|
.fr-btn.fr-btn--tertiary.fr-btn--icon-left.fr-icon-eye{ role: :button }
|
||||||
Visualiser
|
Visualiser
|
||||||
.champ-libelle
|
.champ-libelle
|
||||||
|
|
|
@ -8,18 +8,17 @@
|
||||||
- champ.piece_justificative_file.attachments.with_all_variant_records.each do |attachment|
|
- champ.piece_justificative_file.attachments.with_all_variant_records.each do |attachment|
|
||||||
.gallery-item
|
.gallery-item
|
||||||
- blob = attachment.blob
|
- blob = attachment.blob
|
||||||
- if blob.previewable? && blob.content_type.in?(AUTHORIZED_PDF_TYPES)
|
- if displayable_pdf?(blob)
|
||||||
= link_to blob.url, id: blob.id, data: { iframe: true, src: blob.url }, class: 'gallery-link', type: blob.content_type, title: "#{champ.libelle} -- #{blob.filename}" do
|
= link_to blob.url, id: blob.id, data: { iframe: true, src: blob.url }, class: 'gallery-link', type: blob.content_type, title: "#{champ.libelle} -- #{blob.filename}" do
|
||||||
.thumbnail
|
.thumbnail
|
||||||
= image_tag(attachment.preview(resize_to_limit: [400, 400]).processed.url, loading: :lazy)
|
= image_tag(preview_url_for(attachment), loading: :lazy)
|
||||||
.fr-btn.fr-btn--tertiary.fr-btn--icon-left.fr-icon-eye{ role: :button }
|
.fr-btn.fr-btn--tertiary.fr-btn--icon-left.fr-icon-eye{ role: :button }
|
||||||
= 'Visualiser'
|
= 'Visualiser'
|
||||||
|
|
||||||
- elsif blob.variable? && blob.content_type.in?(AUTHORIZED_IMAGE_TYPES)
|
- elsif displayable_image?(blob)
|
||||||
- blob_url = blob.content_type.in?(RARE_IMAGE_TYPES) ? attachment.variant(resize_to_limit: [2000, 2000]).processed.url : blob.url
|
= link_to image_url(blob_url(attachment)), title: "#{champ.libelle} -- #{blob.filename}", data: { src: blob.url }, class: 'gallery-link' do
|
||||||
= link_to image_url(blob_url), title: "#{champ.libelle} -- #{blob.filename}", data: { src: blob.url }, class: 'gallery-link' do
|
|
||||||
.thumbnail
|
.thumbnail
|
||||||
= image_tag(attachment.variant(resize_to_limit: [400, 400]).processed.url, loading: :lazy)
|
= image_tag(variant_url_for(attachment), loading: :lazy)
|
||||||
.fr-btn.fr-btn--tertiary.fr-btn--icon-left.fr-icon-eye{ role: :button }
|
.fr-btn.fr-btn--tertiary.fr-btn--icon-left.fr-icon-eye{ role: :button }
|
||||||
= 'Visualiser'
|
= 'Visualiser'
|
||||||
- else
|
- else
|
||||||
|
|
Loading…
Reference in a new issue