demarches-normaliennes/app/components/dossiers/export_component.rb
2022-07-20 14:08:33 +02:00

50 lines
1.4 KiB
Ruby

class Dossiers::ExportComponent < ApplicationComponent
def initialize(procedure:, exports:, statut: nil, count: nil, export_url: nil)
@procedure = procedure
@exports = exports
@statut = statut
@count = count
@export_url = export_url
end
def exports
helpers.exports_list(@exports, @statut)
end
def download_export_path(export_format:, force_export: false, no_progress_notification: nil)
@export_url.call(@procedure,
export_format: export_format,
statut: @statut,
force_export: force_export,
no_progress_notification: no_progress_notification)
end
def refresh_button_options(export)
{
title: t(".everything_short", export_format: ".#{export.format}"),
class: "button small",
style: "padding-right: 2px"
}
end
def ready_link_label(export)
t(".everything_ready_html",
export_time: helpers.time_ago_in_words(export.updated_at),
export_format: ".#{export.format}")
end
def pending_label(export)
t(".everything_pending_html",
export_time: time_ago_in_words(export.created_at),
export_format: ".#{export.format}")
end
def poll_controller_options(export)
{
controller: 'turbo-poll',
turbo_poll_url_value: download_export_path(export_format: export.format, no_progress_notification: true),
turbo_poll_interval_value: 6000,
turbo_poll_max_checks_value: 10
}
end
end