Merge pull request #1949 from urbanrotnik/ur-sci-3724-file-preview-problem-safari

Fix for file annotating on Safari [SCI-3724]
This commit is contained in:
Urban Rotnik 2019-07-24 14:42:03 +02:00 committed by GitHub
commit a472efc968
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 27 additions and 4 deletions

View file

@ -172,7 +172,18 @@ var FilePreviewModal = (function() {
}; };
} }
function initImageEditor(data) { function preInitImageEditor(data) {
$.ajax({
url: data['download-url'],
type: 'get',
success: function(responseData) {
var fileUrl = responseData;
initImageEditor(data, fileUrl);
}
});
}
function initImageEditor(data, fileUrl) {
var imageEditor; var imageEditor;
var ps; var ps;
var blackTheme = { var blackTheme = {
@ -261,7 +272,7 @@ var FilePreviewModal = (function() {
imageEditor = new tui.ImageEditor('#tui-image-editor', { imageEditor = new tui.ImageEditor('#tui-image-editor', {
includeUI: { includeUI: {
loadImage: { loadImage: {
path: data['download-url'], path: fileUrl,
name: data.filename name: data.filename
}, },
theme: blackTheme, theme: blackTheme,
@ -453,7 +464,7 @@ var FilePreviewModal = (function() {
ev.preventDefault(); ev.preventDefault();
ev.stopPropagation(); ev.stopPropagation();
modal.modal('hide'); modal.modal('hide');
initImageEditor(data); preInitImageEditor(data);
}); });
} else { } else {
modal.find('.file-edit-link').css('display', 'none'); modal.find('.file-edit-link').css('display', 'none');

View file

@ -52,7 +52,7 @@ class AssetsController < ApplicationController
'filename' => truncate(escape_input(@asset.file_file_name), 'filename' => truncate(escape_input(@asset.file_file_name),
length: Constants::FILENAME_TRUNCATION_LENGTH), length: Constants::FILENAME_TRUNCATION_LENGTH),
'download-url' => download_asset_path(@asset, timestamp: Time.now.to_i) 'download-url' => asset_file_url_path(@asset)
} }
can_edit = if @assoc.class == Step can_edit = if @assoc.class == Step
@ -132,6 +132,17 @@ class AssetsController < ApplicationController
end end
end end
def file_url
render_404 and return unless @asset.file_present
url = if @asset.file.is_stored_on_s3?
@asset.presigned_url(download: true)
else
@asset.file.url
end
render plain: url
end
def edit def edit
action = @asset.file_file_size.zero? && !@asset.locked? ? 'editnew' : 'edit' action = @asset.file_file_size.zero? && !@asset.locked? ? 'editnew' : 'edit'
@action_url = append_wd_params(@asset @action_url = append_wd_params(@asset

View file

@ -593,6 +593,7 @@ Rails.application.routes.draw do
to: 'assets#file_preview', to: 'assets#file_preview',
as: 'asset_file_preview' as: 'asset_file_preview'
get 'files/:id/download', to: 'assets#download', as: 'download_asset' get 'files/:id/download', to: 'assets#download', as: 'download_asset'
get 'files/:id/file_url', to: 'assets#file_url', as: 'asset_file_url'
get 'files/:id/preview', to: 'assets#preview', as: 'preview_asset' get 'files/:id/preview', to: 'assets#preview', as: 'preview_asset'
get 'files/:id/view', to: 'assets#view', as: 'view_asset' get 'files/:id/view', to: 'assets#view', as: 'view_asset'
get 'files/:id/edit', to: 'assets#edit', as: 'edit_asset' get 'files/:id/edit', to: 'assets#edit', as: 'edit_asset'