diff --git a/app/components/dossiers/export_component.rb b/app/components/dossiers/export_component.rb
index 96e4f5d7a..6b8084ca0 100644
--- a/app/components/dossiers/export_component.rb
+++ b/app/components/dossiers/export_component.rb
@@ -1,5 +1,5 @@
class Dossiers::ExportComponent < ApplicationComponent
- def initialize(procedure:, exports:, statut:, count:)
+ def initialize(procedure:, exports:, statut: nil, count: nil)
@procedure = procedure
@exports = exports
@statut = statut
diff --git a/app/components/dossiers/export_component/export_component.en.yml b/app/components/dossiers/export_component/export_component.en.yml
index c548a2b08..b92cd5dd6 100644
--- a/app/components/dossiers/export_component/export_component.en.yml
+++ b/app/components/dossiers/export_component/export_component.en.yml
@@ -7,6 +7,7 @@ en:
everything_short: Ask an export in format%{export_format}
everything_pending_html: Ask an export in format %{export_format} is being generated
(ask %{export_time} ago)
everything_ready_html: Download the export in format %{export_format}
(generated %{export_time} ago)
+ download_all: Download all files
download:
one: Download a file
other: Download %{count} files
diff --git a/app/components/dossiers/export_component/export_component.fr.yml b/app/components/dossiers/export_component/export_component.fr.yml
index 7e185ccda..fa0c0d42d 100644
--- a/app/components/dossiers/export_component/export_component.fr.yml
+++ b/app/components/dossiers/export_component/export_component.fr.yml
@@ -7,6 +7,7 @@ fr:
everything_short: Demander un export au format %{export_format}
everything_pending_html: Un export au format %{export_format} est en train d’être généré
(demandé il y a %{export_time})
everything_ready_html: Télécharger l’export au format %{export_format}
(généré il y a %{export_time})
+ download_all: Télécharger tous les dossiers
download:
one: Télécharger un dossier
other: Télécharger %{count} dossiers
diff --git a/app/components/dossiers/export_component/export_component.html.haml b/app/components/dossiers/export_component/export_component.html.haml
index aad58e0c5..6efb67bc9 100644
--- a/app/components/dossiers/export_component/export_component.html.haml
+++ b/app/components/dossiers/export_component/export_component.html.haml
@@ -1,16 +1,15 @@
%span.dropdown{ data: { controller: 'menu-button' } }
%button.button.dropdown-button{ data: { menu_button_target: 'button' } }
- = t(".download", count: @count)
+ - if @count.nil?
+ = t(".download_all")
+ - else
+ = t(".download", count: @count)
#download-menu.dropdown-content.fade-in-down{ style: 'width: 450px', data: { menu_button_target: 'menu' } }
%ul.dropdown-items{ 'data-turbo': 'true' }
- exports.each do |item|
- export = item[:export]
%li
- if export.nil?
- // i18n-tasks-use t('.everything_csv_html')
- // i18n-tasks-use t('.everything_xlsx_html')
- // i18n-tasks-use t('.everything_ods_html')
- // i18n-tasks-use t('.everything_zip_html')
= link_to t(".everything_#{item[:format]}_html"), download_export_path(export_format: item[:format]), data: { turbo_method: :post }
- elsif export.ready?
= link_to ready_link_label(export), export.file.service_url, target: "_blank", rel: "noopener"
diff --git a/app/models/export.rb b/app/models/export.rb
index e31f69ed0..3e444243c 100644
--- a/app/models/export.rb
+++ b/app/models/export.rb
@@ -49,9 +49,7 @@ class Export < ApplicationRecord
after_create_commit :compute_async
FORMATS_WITH_TIME_SPAN = [:xlsx, :ods, :csv].flat_map do |format|
- time_span_types.keys.map do |time_span_type|
- { format: format, time_span_type: time_span_type }
- end
+ [{ format: format, time_span_type: 'everything' }]
end
FORMATS = [:xlsx, :ods, :csv, :zip].map do |format|
{ format: format }
diff --git a/app/views/instructeurs/procedures/deleted_dossiers.html.haml b/app/views/instructeurs/procedures/deleted_dossiers.html.haml
index 9a2c2fe1d..69f5217a7 100644
--- a/app/views/instructeurs/procedures/deleted_dossiers.html.haml
+++ b/app/views/instructeurs/procedures/deleted_dossiers.html.haml
@@ -10,6 +10,8 @@
= render partial: 'header', locals: { procedure: @procedure, statut: @statut }
.procedure-actions
+ - if @can_download_dossiers
+ = render Dossiers::ExportComponent.new(procedure: @procedure, exports: @exports)
.container.flex= render partial: "tabs", locals: { procedure: @procedure,
statut: @statut,
diff --git a/app/views/instructeurs/procedures/download_export.turbo_stream.haml b/app/views/instructeurs/procedures/download_export.turbo_stream.haml
index 103a64e4f..27225338a 100644
--- a/app/views/instructeurs/procedures/download_export.turbo_stream.haml
+++ b/app/views/instructeurs/procedures/download_export.turbo_stream.haml
@@ -1,3 +1,7 @@
- if @can_download_dossiers
- = turbo_stream.update_all '.dossiers-export' do
- = render Dossiers::ExportComponent.new(procedure: @procedure, exports: @exports, statut: @statut, count: @dossiers_count)
+ - if @statut.nil?
+ = turbo_stream.update_all '.procedure-actions' do
+ = render Dossiers::ExportComponent.new(procedure: @procedure, exports: @exports)
+ - else
+ = turbo_stream.update_all '.dossiers-export' do
+ = render Dossiers::ExportComponent.new(procedure: @procedure, exports: @exports, statut: @statut, count: @dossiers_count)
diff --git a/app/views/instructeurs/procedures/show.html.haml b/app/views/instructeurs/procedures/show.html.haml
index 8c1090f38..ce0205fb0 100644
--- a/app/views/instructeurs/procedures/show.html.haml
+++ b/app/views/instructeurs/procedures/show.html.haml
@@ -10,6 +10,8 @@
= render partial: 'header', locals: { procedure: @procedure, statut: @statut }
.procedure-actions
+ - if @can_download_dossiers
+ = render Dossiers::ExportComponent.new(procedure: @procedure, exports: @exports)
.container.flex= render partial: "tabs", locals: { procedure: @procedure,
statut: @statut,