From 624537a4bab54a061d1084fb1d48b547c52d4322 Mon Sep 17 00:00:00 2001 From: Adrian Marin Date: Fri, 31 Jan 2025 10:57:33 +0200 Subject: [PATCH] chore: media library and asset tweaks (#3625) --- .../asset_manager/javascript_component.html.erb | 7 ++----- app/controllers/avo/media_library_controller.rb | 2 +- .../js/controllers/fields/trix_field_controller.js | 3 +-- app/views/avo/partials/_javascript.html.erb | 2 +- app/views/layouts/avo/application.html.erb | 14 +++++++------- lib/avo/media_library/configuration.rb | 8 ++++++++ 6 files changed, 20 insertions(+), 16 deletions(-) diff --git a/app/components/avo/asset_manager/javascript_component.html.erb b/app/components/avo/asset_manager/javascript_component.html.erb index d922f82ef..973877b3f 100644 --- a/app/components/avo/asset_manager/javascript_component.html.erb +++ b/app/components/avo/asset_manager/javascript_component.html.erb @@ -8,8 +8,5 @@ <% end %> <%# This is the last script to run so it can register custom StimulusJS controllers from plugins. %> -<% if Avo::PACKED %> - <%= javascript_include_tag '/avo-assets/late-registration', "data-turbo-track": "reload", defer: true %> -<% else %> - <%= javascript_include_tag 'late-registration', "data-turbo-track": "reload", defer: true %> -<% end %> +<% path = Avo::PACKED ? '/avo-assets/late-registration' : 'late-registration' %> +<%= javascript_include_tag path, "data-turbo-track": "reload", defer: true %> diff --git a/app/controllers/avo/media_library_controller.rb b/app/controllers/avo/media_library_controller.rb index 6e9c4280f..7e76be034 100644 --- a/app/controllers/avo/media_library_controller.rb +++ b/app/controllers/avo/media_library_controller.rb @@ -36,7 +36,7 @@ def blob_params end def authorize_access! - raise_404 unless Avo::MediaLibrary.configuration.visible? + raise_404 if Avo::MediaLibrary.configuration.disabled? end end end diff --git a/app/javascript/js/controllers/fields/trix_field_controller.js b/app/javascript/js/controllers/fields/trix_field_controller.js index a4131468d..4156930a2 100644 --- a/app/javascript/js/controllers/fields/trix_field_controller.js +++ b/app/javascript/js/controllers/fields/trix_field_controller.js @@ -107,12 +107,11 @@ export default class extends Controller { const mediaLibraryPath = new URI(`${this.rootPath.path()}/attach-media`) mediaLibraryPath.addSearch(params) - const mediaLibraryVisible = window.Avo.configuration.media_library.visible && window.Avo.configuration.media_library.enabled // Add the gallery button to the toolbar // const buttonHTML = `` const buttonHTML = `${galleryButtonSVG}` - if (mediaLibraryVisible && event.target.toolbarElement && event.target.toolbarElement.querySelector('.trix-button-group--file-tools')) { + if (window.Avo.configuration.media_library.visible && event.target.toolbarElement && event.target.toolbarElement.querySelector('.trix-button-group--file-tools')) { event.target.toolbarElement .querySelector('.trix-button-group--file-tools') .insertAdjacentHTML('beforeend', buttonHTML) diff --git a/app/views/avo/partials/_javascript.html.erb b/app/views/avo/partials/_javascript.html.erb index b88831b87..a83a7e1d4 100644 --- a/app/views/avo/partials/_javascript.html.erb +++ b/app/views/avo/partials/_javascript.html.erb @@ -14,7 +14,7 @@ Avo.configuration.modal_frame_id = '<%= ::Avo::MODAL_FRAME_ID %>' Avo.configuration.stimulus_controllers = [] Avo.configuration.media_library = { - enabled: <%= Avo::MediaLibrary.configuration.enabled %>, + enabled: <%= Avo::MediaLibrary.configuration.enabled? %>, visible: <%= Avo::MediaLibrary.configuration.visible? %> } <% end %> diff --git a/app/views/layouts/avo/application.html.erb b/app/views/layouts/avo/application.html.erb index 74c7d0b93..20e1ff32e 100644 --- a/app/views/layouts/avo/application.html.erb +++ b/app/views/layouts/avo/application.html.erb @@ -14,14 +14,14 @@ <%= render partial: "avo/partials/pre_head" %> <%= render Avo::AssetManager::StylesheetComponent.new asset_manager: Avo.asset_manager %> <%= stylesheet_link_tag @stylesheet_assets_path, "data-turbo-track": "reload", defer: true, as: "style" %> - <% if Avo::PACKED %> - <%= javascript_include_tag "/avo-assets/avo.base", "data-turbo-track": "reload", defer: true %> - <% else %> - <%= javascript_include_tag "avo.base", "data-turbo-track": "reload", defer: true %> - <% if Rails.env.development? && defined?(Hotwire::Livereload) %> - <%= javascript_include_tag "hotwire-livereload", defer: true %> - <% end %> + + <% path = Avo::PACKED ? "/avo-assets/avo.base" : "avo.base" %> + <%= javascript_include_tag path, "data-turbo-track": "reload", defer: true %> + + <% if !Avo::PACKED && defined?(Hotwire::Livereload) %> + <%= javascript_include_tag "hotwire-livereload", defer: true %> <% end %> + <%= render Avo::AssetManager::JavascriptComponent.new asset_manager: Avo.asset_manager %> <%= render partial: "avo/partials/head" %> <%= content_for :head %> diff --git a/lib/avo/media_library/configuration.rb b/lib/avo/media_library/configuration.rb index 5d796caca..8263e2d4b 100644 --- a/lib/avo/media_library/configuration.rb +++ b/lib/avo/media_library/configuration.rb @@ -7,8 +7,16 @@ class Configuration config_accessor(:enabled) { false } def visible? + return false if disabled? + Avo::ExecutionContext.new(target: config[:visible]).handle end + + def enabled? + Avo::ExecutionContext.new(target: config[:enabled]).handle + end + + def disabled? = !enabled? end def self.configuration