d25e173f11
Prevent users from clicking the Delete button more than once.
38 lines
1.8 KiB
Text
38 lines
1.8 KiB
Text
-# Display a widget for uploading, editing and deleting a file attachment
|
||
|
||
- attachment = attached_file.attachment
|
||
- attachment_id = attachment ? attachment.id : SecureRandom.uuid
|
||
- persisted = attachment && attachment.persisted?
|
||
- accept = defined?(accept) ? accept : nil
|
||
- user_can_destroy = defined?(user_can_destroy) ? user_can_destroy : false
|
||
|
||
.attachment
|
||
- if defined?(template) && template.attached?
|
||
%p.mb-1
|
||
Veuillez télécharger, remplir et joindre
|
||
= link_to('le modèle suivant', url_for(template), target: '_blank', rel: 'noopener')
|
||
|
||
- if persisted
|
||
.attachment-actions{ class: "attachment-actions-#{attachment_id}" }
|
||
.attachment-action
|
||
= render partial: "shared/attachment/show", locals: { attachment: attachment, user_can_upload: true }
|
||
- if user_can_destroy
|
||
.attachment-action
|
||
= link_to 'Supprimer', attachment_url(attachment.id, { signed_id: attachment.blob.signed_id }), remote: true, method: :delete, class: 'button small danger', data: { disable: true }
|
||
.attachment-action
|
||
= button_tag 'Remplacer', type: 'button', class: 'button small', data: { 'toggle-target': ".attachment-input-#{attachment_id}" }
|
||
|
||
.attachment-error.hidden
|
||
.attachment-error-message
|
||
%p.attachment-error-title
|
||
Une erreur s’est produite pendant l’envoi du fichier.
|
||
%p.attachment-error-description
|
||
= button_tag type: 'button', class: 'button attachment-error-retry', data: { 'input-target': ".attachment-input-#{attachment_id}" } do
|
||
%span.icon.retry
|
||
Ré-essayer
|
||
|
||
= form.file_field attached_file.name,
|
||
class: "attachment-input attachment-input-#{attachment_id} #{'hidden' if persisted}",
|
||
accept: accept,
|
||
direct_upload: true,
|
||
data: { 'auto-attach-url': auto_attach_url(form, form.object) }
|