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 +4 -4
- data/CHANGELOG.md +10 -0
- data/README.md +2 -2
- data/app/views/active_admin/shared/_download_format_links.html.erb +8 -2
- data/lib/activeadmin/batched_export/configuration.rb +1 -1
- data/lib/activeadmin/batched_export/engine.rb +24 -0
- data/lib/activeadmin/batched_export/resource_extension.rb +11 -0
- data/lib/activeadmin/batched_export/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: f422e2d7c0f709e46fabfda5bc837d53835c5951d35520687c8c0008b0fbc851
|
|
4
|
+
data.tar.gz: c0f9c04756c060ac5c9b5e3d8ad85fcf825a13deaad5f59eadd6b3d625ee97f4
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
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
|
|
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
|
|
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
|
-
<%
|
|
5
|
-
|
|
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 =
|
|
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
|
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.
|
|
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.
|
|
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: []
|