feat: guard to prevent premature form submissions while uploading

This commit is contained in:
Björn Fromme
2026-03-15 12:42:28 +01:00
parent 0652ca9f8b
commit 923e880056
11 changed files with 68 additions and 20 deletions
@@ -47,7 +47,8 @@
{# New upload #}
{% if workflow_can(disposition, 'upload_contract') %}
{{ form_start(form) }}
{% set formAttr = stimulus_controller('form-upload-guard')|stimulus_action('form-upload-guard', 'guard', 'submit') %}
{{ form_start(form, { 'attr': formAttr.toArray() }) }}
<div class="flex flex-col space-y-4">
<a href="{{ path('app_teamer_disposition_contractpdf', { 'uuid': disposition.uuid }) }}" target="_blank" class="inline-block">
<img src="{{ asset('build/images/contract_thumb.jpg') }}" alt="Honorarvertrag" class="block w-32 h-auto shadow-md">
@@ -62,7 +63,7 @@
{% if form.pickup is defined %}
{{ form_row(form.pickup) }}
{% endif %}
<button type="submit" class="btn">
<button type="submit" class="btn" {{ stimulus_target('form-upload-guard', 'submit') }}>
Aktualisieren
</button>
</div>
@@ -94,7 +95,8 @@
{# New invoice #}
{% if workflow_can(disposition, 'upload_invoice') %}
{{ form_start(form) }}
{% set formAttr = stimulus_controller('form-upload-guard')|stimulus_action('form-upload-guard', 'guard', 'submit') %}
{{ form_start(form, { 'attr': formAttr.toArray() }) }}
<div class="flex flex-col space-y-4">
<a href="{{ path('app_teamer_disposition_invoicepdf', { 'uuid': disposition.uuid }) }}" target="_blank" class="inline-block">
<img src="{{ asset('build/images/invoice_thumb.jpg') }}" alt="Honorarnote" class="block w-32 h-auto shadow-md">
@@ -106,7 +108,7 @@
'endpoint_upload': path('_uploader_upload_invoice'),
'accepted_files': 'image/jpg,image/jpeg,application/pdf',
} %}
<button type="submit" class="btn">
<button type="submit" class="btn" {{ stimulus_target('form-upload-guard', 'submit') }}>
Aktualisieren
</button>
</div>