From 652072d660683eb83ac7ebe30cc554edc3878fb3 Mon Sep 17 00:00:00 2001 From: Pete Matsyburka Date: Sun, 18 Feb 2024 10:04:56 +0200 Subject: [PATCH] cache page url --- app/views/submissions/show.html.erb | 4 ++-- config/environments/production.rb | 1 + config/initializers/active_storage.rb | 6 +++++- lib/docuseal.rb | 1 + 4 files changed, 9 insertions(+), 3 deletions(-) diff --git a/app/views/submissions/show.html.erb b/app/views/submissions/show.html.erb index 37dcf1e8..16be0f4a 100644 --- a/app/views/submissions/show.html.erb +++ b/app/views/submissions/show.html.erb @@ -34,7 +34,7 @@ <% (@submission.template_schema || @submission.template.schema).each do |item| %> <% document = @submission.template_schema_documents.find { |a| item['attachment_uuid'] == a.uuid } %> " onclick="[event.preventDefault(), window[event.target.closest('a').href.split('#')[1]].scrollIntoView({ behavior: 'smooth', block: 'start' })]" class="block cursor-pointer"> - +
<%= item['name'].presence || document.filename.base %>
@@ -55,7 +55,7 @@ <% (document.metadata.dig('pdf', 'number_of_pages') || (document.preview_images.loaded? ? preview_images_index.size : document.preview_images.size)).times do |index| %> <% page = preview_images_index[index] || page_blob_struct.new(metadata: lazyload_metadata, url: preview_document_page_path(document.signed_uuid, "#{index}.jpg")) %>
" class="relative"> - +
<% document_annots_index[index]&.each do |annot| %> <%= render 'submissions/annotation', annot: %> diff --git a/config/environments/production.rb b/config/environments/production.rb index d218ff1f..4a577e81 100644 --- a/config/environments/production.rb +++ b/config/environments/production.rb @@ -52,6 +52,7 @@ Rails.application.configure do end config.active_storage.resolve_model_to_route = :rails_storage_proxy if ENV['ACTIVE_STORAGE_PUBLIC'] != 'true' + config.active_storage.service_urls_expire_in = 15.minutes # Mount Action Cable outside main process or domain. # config.action_cable.mount_path = nil diff --git a/config/initializers/active_storage.rb b/config/initializers/active_storage.rb index 8bd2fcb3..8a9b8aa5 100644 --- a/config/initializers/active_storage.rb +++ b/config/initializers/active_storage.rb @@ -10,7 +10,11 @@ ActiveSupport.on_load(:active_storage_attachment) do end def preview_image_url - preview_images.joins(:blob).find_by(blob: { filename: '0.jpg' })&.url + first_page = preview_images.joins(:blob).find_by(blob: { filename: '0.jpg' }) + + return unless first_page + + Rails.application.routes.url_helpers.rails_storage_proxy_url(first_page, **Docuseal.default_url_options) end end diff --git a/lib/docuseal.rb b/lib/docuseal.rb index bcbd4599..4f2a3e71 100644 --- a/lib/docuseal.rb +++ b/lib/docuseal.rb @@ -1,6 +1,7 @@ # frozen_string_literal: true module Docuseal + URL_CACHE = ActiveSupport::Cache::MemoryStore.new PRODUCT_URL = 'https://www.docuseal.co' NEWSLETTER_URL = "#{PRODUCT_URL}/newsletters".freeze ENQUIRIES_URL = "#{PRODUCT_URL}/enquiries".freeze