mirror of
https://github.com/GSA/notifications-admin.git
synced 2026-02-23 20:01:01 -05:00
If a service doesn’t have permission to send international letters but someone tries to upload a letter with a valid international address we just tell them that the last line must be a UK postcode. This is a bit opaque and: - suggests that we’re not recognising at all that it’s not a UK letter - doesn’t explain why it must be a UK postcode This commit adds a new, error message which tells users why their letter can’t be sent. And hopefully will give them a better idea of how to resolve the problem, if they really do need to be able to send international letters.
140 lines
5.6 KiB
HTML
140 lines
5.6 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
|
||
{% elif item.as_postal_address.international %}
|
||
You do not have permission to send letters to other countries
|
||
{% 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 %}
|