diff --git a/.rubocop.yml b/.rubocop.yml index 3461640c3..2007b91dc 100644 --- a/.rubocop.yml +++ b/.rubocop.yml @@ -12,6 +12,7 @@ AllCops: Exclude: - "db/schema.rb" - "app/lib/ckeditor/backend/active_storage.rb" + - "config/initializers/disable_active_storage_pdf_auto_previews.rb" - "vendor/**/*" DisabledByDefault: true diff --git a/config/initializers/disable_active_storage_pdf_auto_previews.rb b/config/initializers/disable_active_storage_pdf_auto_previews.rb new file mode 100644 index 000000000..019b9fba8 --- /dev/null +++ b/config/initializers/disable_active_storage_pdf_auto_previews.rb @@ -0,0 +1,22 @@ +ActiveSupport.on_load(:active_storage_attachment) do + # Code copied from Rails 7.2. TODO: remove after upgrading to Rails 7.2 + # See: https://github.com/rails/rails/pull/51351/files + class ActiveStorage::Attachment + private + def transform_variants_later + preprocessed_variations = named_variants.filter_map { |_name, named_variant| + if named_variant.preprocessed?(record) + named_variant.transformations + end + } + + if blob.preview_image_needed_before_processing_variants? && preprocessed_variations.any? + blob.create_preview_image_later(preprocessed_variations) + else + preprocessed_variations.each do |transformations| + blob.preprocessed(transformations) + end + end + end + end +end