mirror of
https://github.com/GSA/notifications-admin.git
synced 2026-02-08 04:13:41 -05:00
45 lines
1.5 KiB
HTML
45 lines
1.5 KiB
HTML
{% from "components/components/button/macro.njk" import usaButton %}
|
|
|
|
{% macro file_upload(
|
|
field,
|
|
allowed_file_extensions,
|
|
action=None,
|
|
button_text="Choose file",
|
|
alternate_link=None,
|
|
alternate_link_text=None,
|
|
hint=None,
|
|
show_errors=True
|
|
|
|
) %}
|
|
<form method="post" enctype="multipart/form-data" {% if action %}action="{{ action }}"{% endif %} class="{% if field.errors and show_errors %}form-group-error{% endif %}" data-module="file-upload">
|
|
<label class="file-upload-label" for="{{ field.name }}">
|
|
<span class="usa-sr-only">{{ field.label.text }}</span>
|
|
{% if hint %}
|
|
<span class="form-hint">
|
|
{{ hint }}
|
|
</span>
|
|
{% endif %}
|
|
{% if field.errors and show_errors %}
|
|
<span class="error-message">
|
|
{{ field.errors[0] }}
|
|
</span>
|
|
{% endif %}
|
|
</label>
|
|
{{ field(**{
|
|
'class': 'file-upload-field',
|
|
'accept': allowed_file_extensions|format_list_items('.{item}')|join(',')|e
|
|
}) }}
|
|
<label class="file-upload-button" for="{{ field.name }}">
|
|
{{ button_text }}
|
|
</label>
|
|
{% if alternate_link and alternate_link_text %}
|
|
<span class="file-upload-alternate-link">
|
|
or <a class="usa-link" href="{{ alternate_link }}">{{ alternate_link_text }}</a>
|
|
</span>
|
|
{% endif %}
|
|
<label class="file-upload-filename" for="{{ field.name }}"></label>
|
|
<input type="hidden" name="csrf_token" value="{{ csrf_token() }}" />
|
|
{{ usaButton({ "text": "Submit", "classes": "file-upload-submit" }) }}
|
|
</form>
|
|
{% endmacro %}
|