mirror of
https://github.com/GSA/notifications-admin.git
synced 2026-02-27 13:51:12 -05:00
229 lines
8.1 KiB
HTML
229 lines
8.1 KiB
HTML
{% extends "withnav_template.html" %}
|
||
{% from "components/banner.html" import banner_wrapper %}
|
||
{% from "components/email-message.html" import email_message %}
|
||
{% from "components/sms-message.html" import sms_message %}
|
||
{% 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-footer.html" import page_footer %}
|
||
{% from "components/list.html" import formatted_list %}
|
||
{% from "components/message-count-label.html" import message_count_label %}
|
||
|
||
{% block page_title %}
|
||
{{ "Error" if errors else "Check and confirm" }} – GOV.UK Notify
|
||
{% endblock %}
|
||
|
||
{% block maincolumn_content %}
|
||
|
||
{% if not recipients.has_recipient_column %}
|
||
|
||
<div class="bottom-gutter">
|
||
{% call banner_wrapper(type='dangerous') %}
|
||
<h1 class='banner-title'>
|
||
Your file needs to have a column called ‘{{ recipients.recipient_column_header }}’
|
||
</h1>
|
||
<p>
|
||
Your file has {{ formatted_list(
|
||
recipients.column_headers,
|
||
prefix='one column, called',
|
||
prefix_plural='columns called'
|
||
) }}.
|
||
</p>
|
||
{% endcall %}
|
||
</div>
|
||
|
||
{% elif recipients.missing_column_headers %}
|
||
|
||
<div class="bottom-gutter">
|
||
{% call banner_wrapper(type='dangerous') %}
|
||
<h1 class='banner-title'>
|
||
The columns in your file need to match the double brackets in
|
||
your template
|
||
</h1>
|
||
<p>
|
||
Your file has {{ formatted_list(
|
||
recipients.column_headers,
|
||
prefix='one column, called',
|
||
prefix_plural='columns called'
|
||
) }}.
|
||
</p>
|
||
<p>
|
||
It doesn’t have {{ formatted_list(
|
||
recipients.missing_column_headers,
|
||
conjunction='or',
|
||
prefix='a column called',
|
||
prefix_plural='columns called'
|
||
) }}.
|
||
</p>
|
||
{% endcall %}
|
||
</div>
|
||
|
||
{% elif row_errors %}
|
||
|
||
<div class="bottom-gutter">
|
||
{% call banner_wrapper(type='dangerous') %}
|
||
{% if row_errors|length == 1 %}
|
||
<h1 class='banner-title'>
|
||
There is a problem with your data
|
||
</h1>
|
||
<p>
|
||
You need to {{ row_errors[0] }}
|
||
</p>
|
||
{% else %}
|
||
<h1 class='banner-title'>
|
||
There are some problems with your data
|
||
</h1>
|
||
<p>
|
||
You need to:
|
||
</p>
|
||
<ul class="list-bullet">
|
||
{% for error in row_errors %}
|
||
<li>{{ error }}</li>
|
||
{% endfor %}
|
||
</ul>
|
||
{% endif %}
|
||
{% endcall %}
|
||
</div>
|
||
|
||
{% elif not recipients.allowed_to_send_to %}
|
||
|
||
<div class="bottom-gutter">
|
||
{% call banner_wrapper(type='dangerous') %}
|
||
<h1 class='banner-title'>
|
||
You can’t send to
|
||
{{ 'this' if count_of_recipients == 1 else 'these' }}
|
||
{{ recipients.recipient_column_header }}
|
||
{%- if count_of_recipients != 1 -%}
|
||
{{ 'es' if 'email address' == recipients.recipient_column_header else 's' }}
|
||
{%- endif %}
|
||
</h1>
|
||
<p>
|
||
In <a href="{{ url_for('.trial_mode') }}">trial mode</a> you can only
|
||
send to yourself and members of your team
|
||
</p>
|
||
{% endcall %}
|
||
</div>
|
||
|
||
{% elif count_of_recipients > (current_service.message_limit - statistics.get('emails_requested', 0) - statistics.get('sms_requested', 0)) %}
|
||
|
||
<div class="bottom-gutter">
|
||
{% call banner_wrapper(type='dangerous') %}
|
||
<h1 class='banner-title'>
|
||
Too many recipients
|
||
</h1>
|
||
{% if statistics.emails_requested or statistics.sms_requested %}
|
||
<p>
|
||
You can only send {{ current_service.message_limit }}
|
||
messages per day
|
||
{%- if current_service.restricted %}
|
||
in <a href="{{ url_for('.trial_mode')}}">trial mode</a>
|
||
{%- endif -%}
|
||
.
|
||
</p>
|
||
{% endif %}
|
||
<p>
|
||
You can still send
|
||
{{ current_service.message_limit - statistics.get('emails_requested', 0) - statistics.get('sms_requested', 0) }}
|
||
messages today, but
|
||
‘{{ original_file_name }}’ contains
|
||
{{ count_of_recipients }} {{ recipients.recipient_column_header }}
|
||
{%- if count_of_recipients != 1 -%}
|
||
{{ 'es' if 'email address' == recipients.recipient_column_header else 's' }}
|
||
{%- endif %}
|
||
</p>
|
||
{% endcall %}
|
||
</div>
|
||
|
||
{% else %}
|
||
|
||
<h1 class="heading-large">
|
||
Check and confirm
|
||
</h1>
|
||
|
||
{% endif %}
|
||
|
||
{% if 'email' == template.template_type %}
|
||
{{ email_message(
|
||
template.formatted_subject_as_markup if errors else template.replaced_subject,
|
||
template.formatted_as_markup if errors else template.replaced,
|
||
from_address='{}@notifications.service.gov.uk'.format(current_service.email_from),
|
||
from_name=current_service.name,
|
||
recipient=first_recipient,
|
||
show_placeholder_for_recipient=errors
|
||
)}}
|
||
{% elif 'sms' == template.template_type %}
|
||
<div class="grid-row">
|
||
<div class="column-two-thirds">
|
||
{{ sms_message(
|
||
template.formatted_as_markup if errors else template.replaced,
|
||
recipient=first_recipient,
|
||
show_placeholder_for_recipient=errors
|
||
)}}
|
||
</div>
|
||
</div>
|
||
{% endif %}
|
||
|
||
{% if (
|
||
errors or
|
||
count_of_recipients > (current_service.message_limit - statistics.get('emails_requested', 0) - statistics.get('sms_requested', 0))
|
||
) %}
|
||
{% if request.args.from_test %}
|
||
<a href="{{ back_link }}" class="page-footer-back-link">Back</a>
|
||
{% else %}
|
||
{{file_upload(form.file, button_text='Re-upload your file')}}
|
||
{% endif %}
|
||
{% else %}
|
||
<form method="post" enctype="multipart/form-data" action="{{url_for('main.start_job', service_id=current_service.id, upload_id=upload_id)}}" class='page-footer'>
|
||
<input type="hidden" name="csrf_token" value="{{ csrf_token() }}" />
|
||
<input type="hidden" name="help" value="{{ '3' if request.args['help'] == '2' else 0 }}" />
|
||
<input type="submit" class="button" value="Send {{ count_of_recipients }} {{ message_count_label(count_of_recipients, template.template_type, suffix='') }}" />
|
||
<a href="{{ back_link }}" class="page-footer-back-link">Back</a>
|
||
</form>
|
||
{% endif %}
|
||
|
||
{% call(item, row_number) list_table(
|
||
recipients.initial_annotated_rows_with_errors if row_errors and not recipients.missing_column_headers else recipients.initial_annotated_rows,
|
||
caption=original_file_name,
|
||
field_headings=['1'] + recipients.column_headers
|
||
) %}
|
||
{{ index_field(item.index + 2) }}
|
||
{% for column in recipients.column_headers %}
|
||
{% if item['columns'][column].error and not recipients.missing_column_headers %}
|
||
{% call field() %}
|
||
<span class="table-field-error">
|
||
<span class="table-field-error-label">{{ item['columns'][column].error }}</span>
|
||
{{ item['columns'][column].data if item['columns'][column].data != None }}
|
||
</span>
|
||
{% endcall %}
|
||
{% elif item['columns'][column].ignore %}
|
||
{% call field(status='default') %}
|
||
{{ item['columns'][column].data if item['columns'][column].data != None }}
|
||
{% endcall %}
|
||
{% else %}
|
||
{{ text_field(item['columns'][column].data) }}
|
||
{% endif %}
|
||
{% endfor %}
|
||
{% if item['columns'].get(None) %}
|
||
{% for column in item['columns'][None].data %}
|
||
{% call field(status='default') %}
|
||
{{ column }}
|
||
{% endcall %}
|
||
{% endfor %}
|
||
{% endif %}
|
||
{% endcall %}
|
||
|
||
{% 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 %}
|