Fix displaying of file previews, refactor file analyzer [SCI-8892] (#5818)

This commit is contained in:
Alex Kriuchykhin 2023-07-20 12:59:45 +02:00 committed by GitHub
parent c4d6fc55af
commit 31880521ef
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
10 changed files with 20 additions and 25 deletions

View file

@ -1,7 +0,0 @@
/* global ActiveStoragePreviews */
(function() {
$('.attachment-preview, .asset-inline-image')
.on('load', (event) => ActiveStoragePreviews.showPreview(event))
.on('error', (event) => ActiveStoragePreviews.reCheckPreview(event));
}());

View file

@ -1,7 +0,0 @@
/* global ActiveStoragePreviews */
(function() {
$('.attachment-preview .asset-thumbnail-image')
.on('load', (event) => ActiveStoragePreviews.showPreview(event))
.on('error', (event) => ActiveStoragePreviews.reCheckPreview(event));
}());

View file

@ -30,3 +30,16 @@ var ActiveStoragePreviews = (function() {
}
});
}());
$(document).on('turbolinks:load', function() {
$('.asset-preview-image')
.one('load', (event) => ActiveStoragePreviews.showPreview(event))
.one('error', (event) => ActiveStoragePreviews.reCheckPreview(event))
.each(function() {
if (this.complete) {
$(this).load();
} else if (this.error) {
$(this).error();
}
});
});

View file

@ -200,7 +200,7 @@ class RepositoriesController < ApplicationController
name: @repository.name
)
render json: {
html: render_to_string(partial: 'copy_repository_modal')
html: render_to_string(partial: 'copy_repository_modal', formats: :html)
}
end

View file

@ -105,7 +105,7 @@ class ResultAssetsController < ApplicationController
html: render_to_string(
partial: 'my_modules/result', locals: { result: @result }, formats: :html
)
}, status: :ok
}
end
else
format.json do

View file

@ -43,10 +43,9 @@
<% elsif asset.previewable? %>
<div class="image-container">
<%= image_tag asset.large_preview,
class: 'asset-inline-image',
class: 'asset-preview-image',
style: 'opacity: 0' %>
</div>
<%= javascript_include_tag 'assets/asset_inline' %>
<% else %>
<div class="general-file-container">
<i class="fas <%= file_fa_icon_class(asset) if asset.file_name %>"></i>

View file

@ -16,9 +16,8 @@
<div class="attachment-preview <%= asset.file.attached? ? asset.file.metadata['asset_type'] : '' %>">
<% if asset.previewable? %>
<%= image_tag asset.medium_preview,
class: 'asset-thumbnail-image',
class: 'asset-preview-image',
style: 'opacity: 0' %>
<%= javascript_include_tag 'assets/asset_thumbnail' %>
<% else %>
<i class="fas <%= file_fa_icon_class(asset) if asset.file_name %>"></i>
<% end %>

View file

@ -1,7 +1,7 @@
# frozen_string_literal: true
require 'active_storage/previewer/libreoffice_previewer'
require 'active_storage/analyzer/custom_image_analyzer'
require 'active_storage/analyzer/image_analyzer/custom_image_magick'
require 'active_storage/downloader'
# Enable PDF previews for files
@ -10,7 +10,7 @@ Rails.application.config.x.enable_pdf_previews = ENV['ACTIVESTORAGE_ENABLE_PDF_P
Rails.application.config.active_storage.previewers = [ActiveStorage::Previewer::PopplerPDFPreviewer,
ActiveStorage::Previewer::LibreofficePreviewer]
Rails.application.config.active_storage.analyzers.prepend(ActiveStorage::Analyzer::CustomImageAnalyzer)
Rails.application.config.active_storage.analyzers.prepend(ActiveStorage::Analyzer::ImageAnalyzer::CustomImageMagick)
Rails.application.config.active_storage.variable_content_types << 'image/svg+xml'

View file

@ -112,8 +112,6 @@ Rails.application.config.assets.precompile += %w(users/registrations/new_with_pr
Rails.application.config.assets.precompile += %w(team_zip_exports/load_handson.js)
Rails.application.config.assets.precompile += %w(repository_columns/manage_column_partials/number.js)
Rails.application.config.assets.precompile += %w(repository_columns/manage_column_partials/stock.js)
Rails.application.config.assets.precompile += %w(assets/asset_inline.js)
Rails.application.config.assets.precompile += %w(assets/asset_thumbnail.js)
Rails.application.config.assets.precompile += %w(results/result_assets/new.js)
Rails.application.config.assets.precompile += %w(results/result_assets/edit.js)
Rails.application.config.assets.precompile += %w(results/result_tables/new.js)

View file

@ -1,7 +1,7 @@
# frozen_string_literal: true
module ActiveStorage
class Analyzer::CustomImageAnalyzer < Analyzer::ImageAnalyzer
class Analyzer::ImageAnalyzer::CustomImageMagick < Analyzer::ImageAnalyzer::ImageMagick
JPEG_MIME_TYPES = ['image/jpeg', 'image/pjpeg'].freeze
def self.accept?(blob)