demarches-normaliennes/app/components/dossiers/export_dropdown_component.rb

40 lines
1.1 KiB
Ruby
Raw Normal View History

# frozen_string_literal: true
class Dossiers::ExportDropdownComponent < ApplicationComponent
include ApplicationHelper
2024-11-12 18:14:26 +01:00
attr_reader :wrapper
2024-11-13 18:07:01 +01:00
attr_reader :export_templates
2024-11-12 18:14:26 +01:00
def initialize(procedure:, export_templates: nil, statut: nil, count: nil, class_btn: nil, export_url: nil, show_export_template_tab: true, wrapper: :div)
@procedure = procedure
@export_templates = export_templates
@statut = statut
@count = count
@class_btn = class_btn
2022-07-04 16:13:15 +02:00
@export_url = export_url
@show_export_template_tab = show_export_template_tab
2024-11-12 18:14:26 +01:00
@wrapper = wrapper
end
def formats
2022-11-16 11:50:19 +01:00
if @statut
Export::FORMATS.filter(&method(:allowed_format?))
2022-11-16 11:50:19 +01:00
else
Export::FORMATS_WITH_TIME_SPAN
end.map { _1[:format] }
2022-11-16 11:50:19 +01:00
end
def allowed_format?(item)
item.fetch(:format) != :json || @procedure.active_revision.carte?
end
def download_export_path(export_format: nil, export_template_id: nil, no_progress_notification: nil)
2022-07-04 16:13:15 +02:00
@export_url.call(@procedure,
export_format:,
export_template_id:,
statut: @statut,
no_progress_notification: no_progress_notification)
end
end