mirror of
https://github.com/GSA/notifications-admin.git
synced 2026-06-04 05:20:46 -04:00
error pages The skiplink in those pages is in the error summary at the top. In this case, it seems redundant because: - it jumps to a section of the page just below it - the section it would jump to is the only error on the page Because of this, and because The Digital Accessibility Centre (DAC) reported that the skiplinks in these pages may not be needed, we decided to remove it. This commit also adds a prefix to the table caption to indicate that it only contains the errors from the CSV, not the rest of its contents.
138 lines
5.5 KiB
HTML
138 lines
5.5 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 mapping_table, row, field, text_field, index_field, hidden_field_heading %}
|
||
{% from "components/file-upload.html" import file_upload %}
|
||
{% from "components/back-link/macro.njk" import govukBackLink %}
|
||
{% from "components/message-count-label.html" import message_count_label %}
|
||
|
||
{% block service_page_title %}
|
||
Error
|
||
{% endblock %}
|
||
|
||
{% block maincolumn_content %}
|
||
|
||
{{ govukBackLink({ "href": back_link }) }}
|
||
|
||
<div class="bottom-gutter-1-2">
|
||
{% call banner_wrapper(type='dangerous') %}
|
||
{% if row_errors|length == 1 %}
|
||
<h1 class='banner-title' data-module="track-error" data-error-type="Bad rows" data-error-label="{{ upload_id }}">
|
||
There’s a problem with {{ original_file_name }}
|
||
</h1>
|
||
<p class="govuk-body">
|
||
You need to {{ row_errors[0] }}.
|
||
</p>
|
||
{% else %}
|
||
<h1 class='banner-title' data-module="track-error" data-error-type="Bad rows" data-error-label="{{ upload_id }}">
|
||
There are some problems with {{ original_file_name }}
|
||
</h1>
|
||
<p class="govuk-body">
|
||
You need to:
|
||
</p>
|
||
<ul class="list-bullet">
|
||
{% for error in row_errors %}
|
||
<li>{{ error }}</li>
|
||
{% endfor %}
|
||
</ul>
|
||
{% endif %}
|
||
{% endcall %}
|
||
</div>
|
||
|
||
<div class="js-stick-at-top-when-scrolling">
|
||
<div class="form-group">
|
||
{{ file_upload(
|
||
form.file,
|
||
action=url_for('.send_messages', service_id=current_service.id, template_id=template.id),
|
||
button_text='Upload your file again'
|
||
) }}
|
||
</div>
|
||
<a href="#content" class="govuk-link govuk-link--no-visited-state back-to-top-link">Back to top</a>
|
||
</div>
|
||
|
||
<div class="fullscreen-content" data-module="fullscreen-table">
|
||
{% call(item, row_number) mapping_table(
|
||
caption="Errors in " + original_file_name,
|
||
caption_visible=False,
|
||
field_headings=[
|
||
'<span class="govuk-visually-hidden">Row in file</span><span aria-hidden="true" class="table-field-invisible-error">1</span>'|safe
|
||
] + recipients.column_headers
|
||
) %}
|
||
{% for item in recipients.displayed_rows %}
|
||
{% if item.has_error_spanning_multiple_cells %}
|
||
{% call row() %}
|
||
{% call index_field(rowspan=2) %}
|
||
<span class="table-field-error">
|
||
{{ item.index + 2 }}
|
||
</span>
|
||
{% endcall %}
|
||
{% call field(colspan=recipients.column_headers|length) %}
|
||
<span class="table-field-error-label">
|
||
{% if item.message_empty %}
|
||
No content for this message
|
||
{% elif item.message_too_long %}
|
||
Message is too long
|
||
{% elif not item.as_postal_address.has_enough_lines %}
|
||
Address must be at least {{ letter_min_address_lines }} lines long
|
||
{% elif item.as_postal_address.has_too_many_lines %}
|
||
Address must be no more than {{ letter_max_address_lines }} lines long
|
||
{% elif not item.as_postal_address.has_valid_last_line %}
|
||
{% if item.as_postal_address.allow_international_letters %}
|
||
Last line of the address must be a UK postcode or another country
|
||
{% else %}
|
||
Last line of the address must be a real UK postcode
|
||
{% endif %}
|
||
{% elif item.as_postal_address.has_invalid_characters %}
|
||
Address lines must not start with any of the following characters: @ ( ) = [ ] ” \ / ,
|
||
{% endif %}
|
||
</span>
|
||
{% endcall %}
|
||
{% endcall %}
|
||
{% endif %}
|
||
{% call row(item.id) %}
|
||
{% if not item.has_error_spanning_multiple_cells %}
|
||
{% call index_field() %}
|
||
<span class="{% if item.has_errors %}table-field-error{% endif %}">
|
||
{{ item.index + 2 }}
|
||
</span>
|
||
{% endcall %}
|
||
{% endif %}
|
||
{% for column in recipients.column_headers %}
|
||
{% if item[column].error and not recipients.missing_column_headers %}
|
||
{% call field() %}
|
||
<span>
|
||
<span class="table-field-error-label">{{ item[column].error }}</span>
|
||
{{ item[column].data if item[column].data != None }}
|
||
</span>
|
||
{% endcall %}
|
||
{% elif 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 %}
|
||
{% endfor %}
|
||
{% endcall %}
|
||
</div>
|
||
{% if count_of_displayed_recipients < count_of_recipients %}
|
||
<p class="table-show-more-link">
|
||
{% if row_errors and not recipients.missing_column_headers %}
|
||
Only showing the first {{ count_of_displayed_recipients }} rows with errors
|
||
{% else %}
|
||
Only showing the first {{ count_of_displayed_recipients }} rows
|
||
{% endif %}
|
||
</p>
|
||
{% elif row_errors and not recipients.missing_column_headers %}
|
||
<p class="table-show-more-link">
|
||
Only showing rows with errors
|
||
</p>
|
||
{% endif %}
|
||
|
||
{% endblock %}
|