mirror of
https://github.com/GSA/notifications-admin.git
synced 2026-02-05 10:53:28 -05:00
As part of https://github.com/alphagov/notifications-admin/pull/187 the file upload pattern was changed to auto-submit once a file had been picked. The form that was submitted was, however, missing a CSRF token, as well as a submit button for non-JS users. This commit makes the file upload pattern self-contained, so that it will always include a form with a CSRF token in a hidden input and a submit button, which is then hidden when Javascript loads.
27 lines
969 B
HTML
27 lines
969 B
HTML
{% macro file_upload(field, button_text="Choose file") %}
|
|
<form method="post" enctype="multipart/form-data" class="form-group{% if field.errors %} error{% endif %}" data-module="file-upload">
|
|
<label class="file-upload-label" for="{{ field.name }}">
|
|
<span class="visually-hidden">{{ field.label }}</span>
|
|
{% if hint %}
|
|
<span class="form-hint">
|
|
{{ hint }}
|
|
</span>
|
|
{% endif %}
|
|
{% if field.errors %}
|
|
<span class="error-message">
|
|
{{ field.errors[0] }}
|
|
</span>
|
|
{% endif %}
|
|
</label>
|
|
{{ field(**{
|
|
'class': 'file-upload-field'
|
|
}) }}
|
|
<label class="file-upload-button" for="{{ field.name }}">
|
|
{{ button_text }}
|
|
</label>
|
|
<label class="file-upload-filename" for="{{ field.name }}"></label>
|
|
<input type="hidden" name="csrf_token" value="{{ csrf_token() }}" />
|
|
<input type="submit" class="file-upload-submit" value="Submit" />
|
|
</form>
|
|
{% endmacro %}
|