mirror of
https://github.com/GSA/notifications-admin.git
synced 2026-07-22 17:08:44 -04:00
_The code for this is quite hacky and light on tests. But I’d really like to get it in the app for the research tomorrow to see how well the feature works._ This commit changes the tour from being a set of static screens to some help which guides you through the process of sending your first test message. The theory behind this is that what users are really struggling with is the concept of a variable, rather than the relationship between the placeholders and the column headers. And like learning to program, the best way to learn is by taking an example and modifying it to your own needs. This means that when someone adds their first service we set them up an example email template and an example text message template. Then there is a guided, three step process where _all_ the user can do is send a test message to themselves. Once the message is sent, the user still has the example templates which they can edit, rather than having to remember what they’re supposed to be doing.
177 lines
6.5 KiB
HTML
177 lines
6.5 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/placeholder.html" import placeholder %}
|
||
{% from "components/file-upload.html" import file_upload %}
|
||
{% from "components/page-footer.html" import page_footer %}
|
||
|
||
{% block page_title %}
|
||
{{ page_heading if errors else "Check and confirm" }} – GOV.UK Notify
|
||
{% endblock %}
|
||
|
||
{% block maincolumn_content %}
|
||
|
||
{% if not recipients.allowed_to_send_to and not recipients.missing_column_headers %}
|
||
<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 errors %}
|
||
<div class="bottom-gutter">
|
||
{% call banner_wrapper(type='dangerous') %}
|
||
{% if errors|length == 1 %}
|
||
<h1 class='banner-title'>
|
||
There was a problem with {{ original_file_name }}
|
||
</h1>
|
||
<p>
|
||
You need to {{ errors[0] }}
|
||
</p>
|
||
{% else %}
|
||
<h1 class='banner-title'>
|
||
There were some problems with {{ original_file_name }}
|
||
</h1>
|
||
<p>
|
||
You need to:
|
||
</p>
|
||
<ul class="list-bullet">
|
||
{% for error in errors %}
|
||
<li>{{ error }}</li>
|
||
{% endfor %}
|
||
</ul>
|
||
{% endif %}
|
||
{% 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.emails_requested - statistics.sms_requested }}
|
||
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'] else 0 }}" />
|
||
<input type="submit" class="button" value="{{ send_button_text }}" />
|
||
<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 rows_have_errors 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 %}
|
||
{% 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 rows_have_errors %}
|
||
Only showing the first {{ count_of_displayed_recipients }} rows with errors
|
||
{% else %}
|
||
Only showing the first {{ count_of_displayed_recipients }} rows
|
||
{% endif %}
|
||
</p>
|
||
{% elif rows_have_errors %}
|
||
<p class="table-show-more-link">
|
||
Only showing rows with errors
|
||
</p>
|
||
{% endif %}
|
||
|
||
{% endblock %}
|