From bc5e53c2413d6963af595c3f9d27c0503dc9d85d Mon Sep 17 00:00:00 2001 From: Adrian Marin Date: Fri, 31 Jan 2025 12:54:08 +0200 Subject: [PATCH 1/2] chore: media library to expose path and URL --- app/components/avo/media_library/list_item_component.rb | 3 ++- app/javascript/js/controllers/media_library_controller.js | 5 +++-- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/app/components/avo/media_library/list_item_component.rb b/app/components/avo/media_library/list_item_component.rb index 872b270fa8..5342f8c8ec 100644 --- a/app/components/avo/media_library/list_item_component.rb +++ b/app/components/avo/media_library/list_item_component.rb @@ -15,7 +15,8 @@ def data component: component_name, blob_id: blob.id, media_library_blob_param: blob.as_json, - media_library_path_param: helpers.main_app.url_for(blob), + media_library_path_param: helpers.main_app.rails_blob_path(blob), + media_library_url_param: helpers.main_app.url_for(blob), media_library_attaching_param: @attaching, media_library_multiple_param: @multiple, media_library_selected_item: params[:controller_selector], diff --git a/app/javascript/js/controllers/media_library_controller.js b/app/javascript/js/controllers/media_library_controller.js index b6746c4d02..21cdab5a7a 100644 --- a/app/javascript/js/controllers/media_library_controller.js +++ b/app/javascript/js/controllers/media_library_controller.js @@ -67,7 +67,7 @@ export default class extends Controller { insertAttachments(attachments, event) { // show an error if the controller is not found if (!this.otherController) { - console.error('[Avo->] The Media Library failed to find any field outlets to inject the asset.') + console.error(`[Avo->] The Media Library failed to find any field outlets to inject the asset. Tried selector: ${this.controllerSelectorValue} and name: ${this.controllerNameValue}`) return } @@ -82,7 +82,8 @@ export default class extends Controller { #extractMetadataFromItem(item) { const blob = JSON.parse(item.dataset.mediaLibraryBlobParam) const path = item.dataset.mediaLibraryPathParam + const url = item.dataset.mediaLibraryUrlParam - return { blob, path } + return { blob, path, url } } } From c05fd6893cbee8d7d4e8e065f4fb1553ef8959f0 Mon Sep 17 00:00:00 2001 From: Adrian Marin Date: Fri, 31 Jan 2025 13:51:01 +0200 Subject: [PATCH 2/2] move query in pg --- app/components/avo/media_library/list_component.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/components/avo/media_library/list_component.rb b/app/components/avo/media_library/list_component.rb index b9b06a7aeb..c085473916 100644 --- a/app/components/avo/media_library/list_component.rb +++ b/app/components/avo/media_library/list_component.rb @@ -18,7 +18,7 @@ def controller = Avo::Current.view_context.controller def query ActiveStorage::Blob.includes(:attachments) # ignore blobs who are just a variant to avoid "n+1" blob creation - .where.not(id: ActiveStorage::Attachment.where(record_type: "ActiveStorage::VariantRecord").pluck(:blob_id)) + .where.not(id: ActiveStorage::Attachment.where(record_type: "ActiveStorage::VariantRecord").select(:blob_id)) .order(created_at: :desc) end