mirror of
https://github.com/scinote-eln/scinote-web.git
synced 2025-03-03 19:24:48 +08:00
Fix result assets download for shareable links [SCI-9542] (#6460)
This commit is contained in:
parent
80ccd0039c
commit
9f1c668a10
8 changed files with 17 additions and 43 deletions
|
@ -4,29 +4,25 @@ class MyModuleShareableLinksController < ApplicationController
|
|||
before_action :load_my_module, except: %i(protocol_show
|
||||
repository_index_dt
|
||||
repository_snapshot_index_dt
|
||||
download_step_asset
|
||||
download_result_asset
|
||||
download_asset
|
||||
results_show)
|
||||
before_action :check_view_permissions, only: :show
|
||||
before_action :check_manage_permissions, except: %i(protocol_show
|
||||
repository_index_dt
|
||||
repository_snapshot_index_dt
|
||||
download_step_asset
|
||||
download_result_asset
|
||||
download_asset
|
||||
results_show)
|
||||
before_action :shareable_link_load_my_module, only: %i(protocol_show
|
||||
repository_index_dt
|
||||
repository_snapshot_index_dt
|
||||
download_step_asset
|
||||
download_result_asset
|
||||
download_asset
|
||||
results_show)
|
||||
before_action :load_repository, only: :repository_index_dt
|
||||
before_action :load_repository_snapshot, only: :repository_snapshot_index_dt
|
||||
skip_before_action :authenticate_user!, only: %i(protocol_show
|
||||
repository_index_dt
|
||||
repository_snapshot_index_dt
|
||||
download_step_asset
|
||||
download_result_asset
|
||||
download_asset
|
||||
results_show)
|
||||
skip_before_action :verify_authenticity_token, only: %i(protocol_show
|
||||
repository_index_dt
|
||||
|
@ -98,17 +94,9 @@ class MyModuleShareableLinksController < ApplicationController
|
|||
render 'repository_rows/simple_view_index'
|
||||
end
|
||||
|
||||
def download_step_asset
|
||||
@asset = @my_module.assets_in_steps.find_by(id: params[:id])
|
||||
|
||||
return render_404 if @asset.blank?
|
||||
|
||||
redirect_to @asset.file.url(expires_in: Constants::URL_SHORT_EXPIRE_TIME.minutes, disposition: 'attachment'),
|
||||
allow_other_host: true
|
||||
end
|
||||
|
||||
def download_result_asset
|
||||
@asset = @my_module.assets_in_results.find_by(id: params[:id])
|
||||
def download_asset
|
||||
@asset = @my_module.assets_in_steps.find_by(id: params[:id]) ||
|
||||
@my_module.assets_in_results.find_by(id: params[:id])
|
||||
|
||||
return render_404 if @asset.blank?
|
||||
|
||||
|
|
|
@ -71,7 +71,7 @@ class MyModule < ApplicationRecord
|
|||
has_many :protocols, inverse_of: :my_module, dependent: :destroy
|
||||
has_many :steps, through: :protocols
|
||||
has_many :assets_in_steps, class_name: 'Asset', source: :assets, through: :steps
|
||||
has_many :assets_in_results, class_name: 'Asset', source: :asset, through: :results
|
||||
has_many :assets_in_results, class_name: 'Asset', source: :assets, through: :results
|
||||
# Associations for old activity type
|
||||
has_many :activities, inverse_of: :my_module
|
||||
|
||||
|
|
|
@ -52,7 +52,7 @@
|
|||
<% end %>
|
||||
<% end %>
|
||||
<% if step.step_assets.present? %>
|
||||
<%= render partial: "shareable_links/my_modules/attachments", locals: { attachments: step.assets, step: step } %>
|
||||
<%= render partial: "shareable_links/my_modules/attachments", locals: { attachments: step.assets } %>
|
||||
<% end %>
|
||||
</div>
|
||||
</div>
|
||||
|
|
|
@ -34,7 +34,7 @@
|
|||
<% end %>
|
||||
<% end %>
|
||||
<% if result.result_assets.present? %>
|
||||
<%= render partial: "shareable_links/my_modules/attachments", locals: { attachments: result.assets, step: result } %>
|
||||
<%= render partial: "shareable_links/my_modules/attachments", locals: { attachments: result.assets } %>
|
||||
<% end %>
|
||||
</div>
|
||||
</div>
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
|
||||
<ul class="dropdown-menu dropdown-menu-right rounded !p-2.5 sn-shadow-menu-sm" aria-labelledby="dropdownAssetContextMenu">
|
||||
<li>
|
||||
<%= link_to shared_protocol_asset_download_path(@shareable_link.uuid, asset), data: { turbolinks: false }, class: "!px-3 !py-2.5 hover:!bg-sn-super-light-blue !text-sn-blue" do %>
|
||||
<%= link_to shared_asset_download_path(@shareable_link.uuid, asset), class: '!px-3 !py-2.5 hover:!bg-sn-super-light-blue !text-sn-blue', data: { turbolinks: false } do %>
|
||||
<%= t('Download') %>
|
||||
<% end %>
|
||||
</li>
|
||||
|
|
|
@ -10,20 +10,9 @@
|
|||
<div class="modal-header">
|
||||
<span class="file-name"><%= asset.file.metadata[:name] || asset.file_name %></span>
|
||||
<div class="sci-btn-group">
|
||||
<% if asset.step.present? %>
|
||||
<%= link_to shared_protocol_asset_download_path(@shareable_link.uuid, asset),
|
||||
class: 'btn btn-light file-download-link',
|
||||
data: { turbolinks: false } do %>
|
||||
<span class="sn-icon sn-icon-export"></span>
|
||||
<%= t('Download') %>
|
||||
<% end %>
|
||||
<% elsif asset.result.present? %>
|
||||
<%= link_to shared_protocol_result_asset_download_path(@shareable_link.uuid, asset),
|
||||
class: 'btn btn-light file-download-link',
|
||||
data: { turbolinks: false } do %>
|
||||
<span class="sn-icon sn-icon-export"></span>
|
||||
<%= t('Download') %>
|
||||
<% end %>
|
||||
<%= link_to shared_asset_download_path(@shareable_link.uuid, asset), class: 'btn btn-light file-download-link', data: { turbolinks: false } do %>
|
||||
<span class="sn-icon sn-icon-export"></span>
|
||||
<%= t('Download') %>
|
||||
<% end %>
|
||||
<button type="button" class="btn icon-btn btn-light" data-dismiss="modal"><span class="sn-icon sn-icon-close"></span></button>
|
||||
</div>
|
||||
|
|
|
@ -35,7 +35,7 @@
|
|||
<%= number_to_human_size(asset.file_size) %>
|
||||
</div>
|
||||
<div class="absolute bottom-4 w-[184px] grid grid-cols-[repeat(4,_2.5rem)] justify-between">
|
||||
<%= link_to shared_protocol_asset_download_path(@shareable_link.uuid, asset), class: "btn btn-light icon-btn thumbnail-action-btn",data: { turbolinks: false } do %>
|
||||
<%= link_to shared_asset_download_path(@shareable_link.uuid, asset), class: 'btn btn-light icon-btn thumbnail-action-btn', data: { turbolinks: false } do %>
|
||||
<span class="sn-icon sn-icon-export"></span>
|
||||
<% end %>
|
||||
</div>
|
||||
|
|
|
@ -979,11 +979,8 @@ Rails.application.routes.draw do
|
|||
to: 'my_module_shareable_links#protocol_show',
|
||||
as: :shared_protocol
|
||||
get '/shared/:uuid/protocol/asset/:id/download',
|
||||
to: 'my_module_shareable_links#download_step_asset',
|
||||
as: :shared_protocol_asset_download
|
||||
get '/shared/:uuid/protocol/asset/:id/download_result',
|
||||
to: 'my_module_shareable_links#download_result_asset',
|
||||
as: :shared_protocol_result_asset_download
|
||||
to: 'my_module_shareable_links#download_asset',
|
||||
as: :shared_asset_download
|
||||
get '/shared/:uuid/protocol/results',
|
||||
to: 'my_module_shareable_links#results_show',
|
||||
as: :shared_protocol_results
|
||||
|
|
Loading…
Reference in a new issue