Add reload action for assets [SCI-5563]

This commit is contained in:
aignatov-bio 2021-03-22 12:55:05 +01:00
parent ee73088a81
commit 7c573a1ee9
4 changed files with 27 additions and 2 deletions

View file

@ -97,10 +97,19 @@ var InlineAttachments = (function() {
}
}
function initReloadButtons() {
$(document).on('ajax:success', '.asset .reload-asset', function(e, data) {
$(this).closest('.asset').replaceWith(data.html);
});
}
return {
init: () => {
windowScrollEvents.InlineAttachments = InlineAttachments.scrollEvent;
},
initReloadButtons: () => {
initReloadButtons();
},
scrollEvent: () => {
checkForAttachmentsState();
}
@ -111,3 +120,4 @@ $(document).on('turbolinks:load', function() {
InlineAttachments.init();
InlineAttachments.scrollEvent();
});
InlineAttachments.initReloadButtons();

View file

@ -52,6 +52,19 @@ class AssetsController < ApplicationController
end
end
def load_asset
gallery_view_id = if @assoc.is_a?(Step)
@assoc.id
elsif @assoc.is_a?(Result)
@assoc.my_module.id
end
render json: { html: render_to_string(partial: 'assets/asset.html.erb',
locals: {
asset: @asset,
gallery_view_id: gallery_view_id
}) }
end
def file_url
return render_404 unless @asset.file.attached?

View file

@ -30,9 +30,10 @@
<% else %>
<div class="empty-office-file">
<h2><%= t('assets.empty_office_file.description') %></h2>
<%= button_to(toggle_view_mode_path(asset),
method: :patch,
<%= button_to(load_asset_path(asset),
method: :get,
remote: true,
form_class: 'reload-asset',
class: 'btn btn-primary',
params: { asset: {view_mode: asset.view_mode }}) do %>
<%= t('assets.empty_office_file.reload') %>

View file

@ -631,6 +631,7 @@ Rails.application.routes.draw do
get 'files/:id/download', to: 'assets#download', as: 'asset_download'
get 'files/:id/edit', to: 'assets#edit', as: 'edit_asset'
patch 'files/:id/toggle_view_mode', to: 'assets#toggle_view_mode', as: 'toggle_view_mode'
get 'files/:id/load_asset', to: 'assets#load_asset', as: 'load_asset'
post 'files/:id/update_image', to: 'assets#update_image',
as: 'update_asset_image'
delete 'files/:id/', to: 'assets#destroy', as: 'asset_destroy'