demarches-normaliennes/app/components/attachment/edit_component/edit_component.html.haml

40 lines
1.5 KiB
Text
Raw Normal View History

.attachment.fr-upload-group{ { id: attachment ? dom_id(attachment, :edit) : nil, class: class_names("fr-mb-2w": !(as_multiple? && downloadable?)) }.compact }
- if persisted?
%div{ id: dom_id(attachment, :persisted_row) }
.flex.flex-gap-2{ class: class_names("attachment-error": attachment.virus_scanner_error?) }
- if user_can_destroy?
2022-11-22 19:25:45 +01:00
= link_to(t('.delete'), destroy_attachment_path, **remove_button_options, class: "fr-btn fr-btn--tertiary fr-btn--sm fr-icon-delete-line", title: "Supprimer le fichier #{attachment.filename}")
.fr-py-1v
- if downloadable?
= render Dsfr::DownloadComponent.new(attachment:)
- else
%span.attachment-filename.fr-mr-1w-= attachment.filename.to_s
= render Attachment::ProgressComponent.new(attachment: attachment)
- if error?
%p.fr-error-text= error_message
- elsif first?
%p.fr-text--sm.fr-text-mention--grey.fr-mb-1w
- if max_file_size.present?
= t('.max_file_size', max_file_size: number_to_human_size(max_file_size))
- if allowed_formats
2022-11-22 19:25:45 +01:00
= t('.allowed_formats', formats: allowed_formats.join(', '))
- if !as_multiple?
= file_field(champ, field_name, **file_field_options)
- if persisted?
- Attachment::PendingPollComponent.new(attachment: attachment, poll_url:).then do |component|
.fr-mt-2w
= render component
.attachment-upload-error.hidden
%p.fr-error-text= t('.errors.uploading')
= button_tag(**retry_button_options) do
= t(".retry")