Files
notifications-admin/app/templates/views/send.html
Chris Hill-Scott 85b3978061 Force example CSV to download, not open in browser
We wouldn’t wan’t anyone just seeing the raw CSV data in their browser – it isn’t clear what a user would do with it at that point. And we wouldn’t want it navigating them away from the send page, because this might cause them to lose their place.

This commit forces the file to download using the HTML5 `download` attribute:

> This attribute instructs browsers to download a URL instead of navigating to it, so the user will be prompted to save it as a local file. 

– https://developer.mozilla.org/en-US/docs/Web/HTML/Element/a#attr-download
2018-01-02 14:06:39 +00:00

50 lines
1.5 KiB
HTML

{% extends "withnav_template.html" %}
{% from "components/page-footer.html" import page_footer %}
{% from "components/file-upload.html" import file_upload %}
{% from "components/table.html" import list_table, text_field, index_field, index_field_heading %}
{% block service_page_title %}
Upload recipients
{% endblock %}
{% block maincolumn_content %}
<h1 class="heading-large">Upload recipients</h1>
<div class="page-footer bottom-gutter">
{{file_upload(
form.file,
button_text='Choose a file'
)}}
</div>
<h2 class="heading-medium">Your file needs to look like this example</h2>
<p class="hint">
Save your file as a
<acronym title="Comma Separated Values">CSV</acronym>,
<acronym title="Tab Separated Values">TSV</acronym>,
<acronym title="Open Document Spreadsheet">ODS</acronym>,
or Microsoft Excel spreadsheet
</p>
<div class="spreadsheet">
{% call(item, row_number) list_table(
example,
caption="Example",
caption_visible=False,
field_headings=[''] + column_headings
) %}
{{ index_field(row_number - 1) }}
{% for column in item %}
{{ text_field(column) }}
{% endfor %}
{% endcall %}
</div>
<p class="table-show-more-link">
<a href="{{ url_for('.get_example_csv', service_id=current_service.id, template_id=template.id) }}" download="download">Download this example</a>
</p>
<h2 class="heading-medium">Your file will populate this template ({{ template.name }})</h2>
{{ template|string }}
{% endblock %}