mirror of
https://github.com/GSA/notifications-admin.git
synced 2026-06-02 04:20:34 -04:00
The Design System has standardised on back links being at the top of the page, decorated with a small text-coloured arrow. I think this makes more sense than having them at the bottom, because it suggests, in some way, being able to go back before commiting to any of the forms on the page. Whereas the things at the bottom of the page should be performing actions on what’s in the page. The reason for making this change now is that it de-clutters the area around the green buttons. This was presenting a design challenge where multiple levels of interaction were happening in the same form. Moving these back links to the top of the page should mean that, in these complicated forms, there’s one fewer thing to compete for the user’s attention. I’ve componentised this into a `page_header` macro so that the change is easier to roll out and maintain.
96 lines
3.7 KiB
HTML
96 lines
3.7 KiB
HTML
{% extends "withnav_template.html" %}
|
|
{% from "components/banner.html" import banner_wrapper %}
|
|
{% from "components/radios.html" import radio_select %}
|
|
{% from "components/table.html" import list_table, field, text_field, index_field, hidden_field_heading %}
|
|
{% from "components/file-upload.html" import file_upload %}
|
|
{% from "components/page-header.html" import page_header %}
|
|
{% from "components/page-footer.html" import page_footer %}
|
|
{% from "components/message-count-label.html" import message_count_label %}
|
|
|
|
{% set file_contents_header_id = 'file-preview' %}
|
|
{% macro skip_to_file_contents() %}
|
|
<p class="visually-hidden">
|
|
<a href="#{{ file_contents_header_id }}">Skip to file contents</a>
|
|
</p>
|
|
{% endmacro %}
|
|
|
|
{% block service_page_title %}
|
|
{{ "Preview of {}".format(template.name) }}
|
|
{% endblock %}
|
|
|
|
{% block maincolumn_content %}
|
|
|
|
{{ page_header(
|
|
'Preview of {}'.format(template.name),
|
|
back_link=back_link
|
|
) }}
|
|
|
|
{{ skip_to_file_contents() }}
|
|
|
|
{{ template|string }}
|
|
|
|
<div class="bottom-gutter-3-2">
|
|
<form method="post" enctype="multipart/form-data" action="{{url_for('main.start_job', service_id=current_service.id, upload_id=upload_id, original_file_name=original_file_name)}}" class='page-footer'>
|
|
<input type="hidden" name="csrf_token" value="{{ csrf_token() }}" />
|
|
<input type="hidden" name="help" value="{{ '3' if help else 0 }}" />
|
|
{% if choose_time_form and template.template_type != 'letter' %}
|
|
{{ radio_select(
|
|
choose_time_form.scheduled_for,
|
|
wrapping_class='bottom-gutter-2-3'
|
|
) }}
|
|
{% endif %}
|
|
{% if template.template_type != 'letter' or not request.args.from_test %}
|
|
<button type="submit" class="button">Send {{ count_of_recipients }} {{ message_count_label(count_of_recipients, template.template_type, suffix='') }}</button>
|
|
{% else %}
|
|
<a href="{{ url_for('main.check_messages_preview', service_id=current_service.id, template_id=template.id, upload_id=upload_id, filetype='pdf') }}" download class="button">Download as a PDF</a>
|
|
{% endif %}
|
|
</form>
|
|
</div>
|
|
|
|
{% if not request.args.from_test %}
|
|
|
|
<h2 class="heading-medium" id="{{ file_contents_header_id }}">{{ original_file_name }}</h2>
|
|
|
|
<div class="fullscreen-content" data-module="fullscreen-table">
|
|
{% call(item, row_number) list_table(
|
|
recipients.displayed_rows,
|
|
caption=original_file_name,
|
|
caption_visible=False,
|
|
field_headings=[
|
|
'<span class="visually-hidden">Row in file</span><span aria-hidden="true">1</span>'|safe
|
|
] + recipients.column_headers
|
|
) %}
|
|
{% call index_field() %}
|
|
<span>
|
|
{% if (item.index + 2) == preview_row %}
|
|
{{ item.index + 2 }}
|
|
{% else %}
|
|
<a href="{{ url_for('.check_messages', service_id=current_service.id, template_id=template.id, upload_id=upload_id, row_index=(item.index + 2), original_file_name=original_file_name) }}">{{ item.index + 2 }}</a>
|
|
{% endif %}
|
|
</span>
|
|
{% endcall %}
|
|
{% for column in recipients.column_headers %}
|
|
{% if item[column].ignore %}
|
|
{{ text_field(item[column].data or '', status='default') }}
|
|
{% else %}
|
|
{{ text_field(item[column].data or '') }}
|
|
{% endif %}
|
|
{% endfor %}
|
|
{% if item[None].data %}
|
|
{% for column in item[None].data %}
|
|
{{ text_field(column, status='default') }}
|
|
{% endfor %}
|
|
{% endif %}
|
|
{% endcall %}
|
|
</div>
|
|
|
|
{% endif %}
|
|
|
|
{% if count_of_displayed_recipients < count_of_recipients %}
|
|
<p class="table-show-more-link">
|
|
Only showing the first {{ count_of_displayed_recipients }} rows
|
|
</p>
|
|
{% endif %}
|
|
|
|
{% endblock %}
|