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