diff --git a/app/assets/javascripts/assets.js b/app/assets/javascripts/assets.js index acffc50a5..5d5d23eb1 100644 --- a/app/assets/javascripts/assets.js +++ b/app/assets/javascripts/assets.js @@ -19,6 +19,7 @@ function setupAssetsLoading() { type: "GET", dataType: "json", success: function (data) { + var wopiBtns; $el.attr("data-status", "asset-loaded"); $el.find('img').hide(); $el.next().hide(); @@ -33,10 +34,16 @@ function setupAssetsLoading() { data['preview-url'] + "'>

" + data.filename + '

' ); - } else if(data.type === "wopi") { - $el.html(data['wopi-file-name'] + - data['wopi-view'] + - data['wopi-edit']); + } else if (data.type === 'wopi') { + if (data['wopi-edit']) { + wopiBtns = data['wopi-file-name'] + + data['wopi-view'] + + data['wopi-edit']; + } else { + wopiBtns = data['wopi-file-name'] + + data['wopi-view']; + } + $el.html(wopiBtns); } else { $el.html( "

" + diff --git a/app/controllers/assets_controller.rb b/app/controllers/assets_controller.rb index fe1d0748c..d6b0ce7bc 100644 --- a/app/controllers/assets_controller.rb +++ b/app/controllers/assets_controller.rb @@ -60,7 +60,7 @@ class AssetsController < ApplicationController Constants::FILENAME_TRUNCATION_LENGTH), 'download-url' => download_asset_path(@asset), 'type' => asset_data_type(@asset), - 'wopi-file-name' => wopi_asset_file_name(@asset), + 'wopi-file-name' => wopi_asset_file_name(@asset, true), 'wopi-edit' => (wopi_asset_edit_button(@asset) if wopi_file?(@asset)), 'wopi-view' => (wopi_asset_view_button(@asset) if wopi_file?(@asset)) }, status: 200 diff --git a/app/helpers/wopi_helper.rb b/app/helpers/wopi_helper.rb index eaaeec08d..097a5cbc1 100644 --- a/app/helpers/wopi_helper.rb +++ b/app/helpers/wopi_helper.rb @@ -51,12 +51,24 @@ module WopiHelper end end - def wopi_asset_file_name(asset) + def wopi_asset_file_name(asset, link = false) html = '

' html += "#{file_extension_icon(asset)} " - html += truncate(asset.file_file_name, - length: Constants::FILENAME_TRUNCATION_LENGTH) + if link + html += link_to download_asset_path(asset), + data: { no_turbolink: true, + id: true, + status: 'asset-present' } do + truncate( + asset.file_file_name, + length: Constants::FILENAME_TRUNCATION_LENGTH + ) + end + else + html += truncate(asset.file_file_name, + length: Constants::FILENAME_TRUNCATION_LENGTH) + end html += ' 

' - sanitize_input(html, %w(img)) + sanitize_input(html, %w(img a)) end end