Add allowed_file_extensions arg to file_upload

Safari has a bug where it stops input[type=file]
elements working if they don't specify the types
of file to accept (via the `accept` attribute).

It seems to just effect certain versions of Mojave
but completely blocks this action so worth fixing.

This adds a 'allowed_file_extensions' keyword
argument to the file_upload component to let you
specify a value to be passed to `accept`.

This was spotted on x-gov Slack:

https://ukgovernmentdigital.slack.com/archives/C06GCJW7R/p1607952390112800

...and StackOverflow:

https://stackoverflow.com/q/64843459/679924
This commit is contained in:
Tom Byers
2020-12-16 10:13:49 +00:00
parent c1788ec1d0
commit eaa1a67d76

View File

@@ -2,6 +2,7 @@
{% macro file_upload(
field,
allowed_file_extensions,
action=None,
button_text="Choose file",
alternate_link=None,
@@ -25,7 +26,8 @@
{% endif %}
</label>
{{ field(**{
'class': 'file-upload-field'
'class': 'file-upload-field',
'accept': allowed_file_extensions
}) }}
<label class="file-upload-button" for="{{ field.name }}">
{{ button_text }}