activeadmin_batched_export 0.1.0 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: eaf6853f6364e953e0122673e0f9721fa64ce10fb73decd82b61e27c5998bdac
4
- data.tar.gz: 030b4c107bd0600d8b73d0dfadaa287e1685d49ee3253f918a6b1a735be0ccec
3
+ metadata.gz: f422e2d7c0f709e46fabfda5bc837d53835c5951d35520687c8c0008b0fbc851
4
+ data.tar.gz: c0f9c04756c060ac5c9b5e3d8ad85fcf825a13deaad5f59eadd6b3d625ee97f4
5
5
  SHA512:
6
- metadata.gz: ddd6b51ab26880726f33a4ad7e82bc7c347035207c220464f3f91f9a808deee90f62b9d68cce545ac79dfa2dbe1437b7fcd0d60dacdd0bd1938d71fa0d69840b
7
- data.tar.gz: 4e4c937bd470a80b9c657a72361e4bb5f257b558d4c80f0edb319e0a76f9bb0808025bff8ca8c71256b05182cb7ea2548066ab77409fdffe53a47596b57da3ac
6
+ metadata.gz: 168669e5c28b6adbac2f09f7fe2f01cba5209639d36f32221d15592e4197730a948d2cd02646bbb679ec9e195a059746282d181abc9b72f43fe9ea14ea211d61
7
+ data.tar.gz: 7714ba53d4b2592d167e89ca07a41a16d61be9bec0db2a3f28fea88642d17852606ee15a96bf5adbc80524676629804013b689735065b15daa56c2a157b544f6
data/CHANGELOG.md CHANGED
@@ -1,5 +1,15 @@
1
1
  # CHANGELOG
2
2
 
3
+ ## Unreleased
4
+
5
+ ## 0.2.0 (2026-07-14)
6
+
7
+ - Treat a per-resource `batched_export` DSL call as enablement; `enabled: true` is no longer required when opting in per resource.
8
+ - Guard download format links on `batched_export_enabled?` and fall back to standard ActiveAdmin format links when export is disabled.
9
+ - Default batched export to opt-in (`default_enabled = false`).
10
+ - Register batched export routes on ActiveAdmin load and after ActiveAdmin routes are drawn so path helpers exist for enabled resources.
11
+ - Prepend batched export view overrides ahead of ActiveAdmin defaults so the shared download partial is actually used.
12
+
3
13
  ## 0.1.0 (2026-07-10)
4
14
 
5
15
  - Initial public release of batched ActiveAdmin export workspace.
data/README.md CHANGED
@@ -82,7 +82,7 @@ end
82
82
 
83
83
  ```ruby
84
84
  ActiveAdmin.register User do
85
- batched_export enabled: true, column_selection: true, batch_size: 500,
85
+ batched_export column_selection: true, batch_size: 500,
86
86
  includes: [:account],
87
87
  macros: {email: :mask_email, phone: :mask_phone}
88
88
 
@@ -94,7 +94,7 @@ ActiveAdmin.register User do
94
94
  end
95
95
  ```
96
96
 
97
- Set `batched_export enabled: false` to skip batched export for a resource.
97
+ Call `batched_export` on a resource to enable it. The DSL call itself opts the resource in, so you can wrap it in a condition when enablement should vary. Set `batched_export enabled: false` only when you need to override a global `config.default_enabled = true`. Resources without a `batched_export` call stay off unless `default_enabled` is true.
98
98
 
99
99
  ## Built-in export macros
100
100
 
@@ -1,7 +1,13 @@
1
1
  <% export_base_params = request.query_parameters.except(:format, :commit, :page, :batch_page, :export_meta) %>
2
2
  <div>
3
3
  <span><%= I18n.t("active_admin.download") %></span>
4
- <% formats.each do |format| %>
5
- <%= link_to format.upcase, url_for(action: :batched_export, params: export_base_params.merge(export_format: format)) %>
4
+ <% if active_admin_config.batched_export_enabled? %>
5
+ <% formats.each do |format| %>
6
+ <%= link_to format.upcase, url_for(action: :batched_export, params: export_base_params.merge(export_format: format)) %>
7
+ <% end %>
8
+ <% else %>
9
+ <% formats.each do |format| %>
10
+ <%= link_to format.upcase, url_for(params: export_base_params, format: format) %>
11
+ <% end %>
6
12
  <% end %>
7
13
  </div>
@@ -15,7 +15,7 @@ module ActiveAdmin
15
15
  @max_batch_size = 10_000
16
16
  @large_export_row_threshold = 25_000
17
17
  @stimulus_controller = "activeadmin-batched-export--batched-export"
18
- @default_enabled = true
18
+ @default_enabled = false
19
19
  @default_column_selection = true
20
20
  @filename_proc = nil
21
21
  @registered_macros = {}
@@ -37,6 +37,30 @@ module ActiveAdmin
37
37
  I18n.load_path << root.join("config/locales/activeadmin_batched_export.en.yml")
38
38
  end
39
39
 
40
+ initializer "activeadmin_batched_export.view_overrides", after: "activeadmin_batched_export.load_lib" do
41
+ views_path = root.join("app/views").to_s
42
+
43
+ ActiveSupport.on_load(:active_admin_controller) do
44
+ prepend_view_path(views_path)
45
+ end
46
+
47
+ if defined?(ActiveAdmin::BaseController)
48
+ ActiveAdmin::BaseController.prepend_view_path(views_path)
49
+ end
50
+ end
51
+
52
+ initializer "activeadmin_batched_export.after_load", after: :load_config_initializers do
53
+ next unless defined?(ActiveAdmin) && ActiveAdmin.respond_to?(:after_load)
54
+
55
+ ActiveAdmin.after_load do
56
+ ActiveAdmin::BatchedExport::Install.call if defined?(ActiveAdmin::BatchedExport::Install)
57
+ end
58
+ end
59
+
60
+ initializer "activeadmin_batched_export.install", after: "active_admin.routes" do
61
+ ActiveAdmin::BatchedExport::Install.call if defined?(ActiveAdmin)
62
+ end
63
+
40
64
  config.to_prepare do
41
65
  ActiveAdmin::BatchedExport::Install.call if defined?(ActiveAdmin)
42
66
  end
@@ -11,12 +11,22 @@ module ActiveAdmin
11
11
  @batched_export_settings = value || {}
12
12
  end
13
13
 
14
+ def batched_export_configured?
15
+ @batched_export_configured == true
16
+ end
17
+
18
+ def batched_export_configured=(value)
19
+ @batched_export_configured = value
20
+ end
21
+
14
22
  def batched_export_enabled?
15
23
  settings = batched_export_settings
16
24
  if settings.key?(:enabled) || settings.key?("enabled")
17
25
  return settings[:enabled] != false && settings["enabled"] != false
18
26
  end
19
27
 
28
+ return true if batched_export_configured?
29
+
20
30
  BatchedExport.config.default_enabled
21
31
  end
22
32
 
@@ -55,6 +65,7 @@ module ActiveAdmin
55
65
 
56
66
  module ResourceDSL
57
67
  def batched_export(**options)
68
+ config.batched_export_configured = true
58
69
  config.batched_export_settings = options
59
70
  end
60
71
  end
@@ -2,6 +2,6 @@
2
2
 
3
3
  module ActiveAdmin
4
4
  module BatchedExport
5
- VERSION = "0.1.0"
5
+ VERSION = "0.2.0"
6
6
  end
7
7
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: activeadmin_batched_export
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Andrei Makarov
@@ -371,7 +371,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
371
371
  - !ruby/object:Gem::Version
372
372
  version: '0'
373
373
  requirements: []
374
- rubygems_version: 4.0.3
374
+ rubygems_version: 4.0.6
375
375
  specification_version: 4
376
376
  summary: Batched CSV, JSON, and XML export workspace for ActiveAdmin 4
377
377
  test_files: []