Let users search for letters

Like we have search by email address or phone number, finding an
individual letter is a common task. At the moment users are having to
click through pages and pages of letters to find the one they’re looking
for.

Users of the API will also be able to search by reference, same as for
emails and text messages. But we only show this hint text to users who
have some API keys.
This commit is contained in:
Chris Hill-Scott
2020-04-21 13:55:23 +01:00
parent 52e966337d
commit 986f2752e0
3 changed files with 53 additions and 41 deletions

View File

@@ -169,8 +169,12 @@ def view_notifications(service_id, message_type=None):
things_you_can_search_by={
'email': ['email address'],
'sms': ['phone number'],
'letter': [],
None: ['email address', 'phone number'],
# This should become postal address not first line… once
# weve finished populating normalised addresses
'letter': ['first line of address', 'file name'],
# We say recipient here because combining all 3 types, plus
# reference gets too long for the hint text
None: ['recipient'],
}.get(message_type) + {
True: ['reference'],
False: [],

View File

@@ -34,42 +34,39 @@
'counts'
) }}
{% call form_wrapper(
action=url_for('.view_notifications', service_id=current_service.id, message_type=message_type),
class="govuk-grid-row"
) %}
<div class="govuk-grid-column-three-quarters {% if message_type == 'sms' %}extra-tracking{% endif %}">
{{ textbox(
search_form.to,
width='1-1',
label=things_you_can_search_by|formatted_list(
conjunction='or',
before_each='',
after_each='',
prefix='Search by',
prefix_plural='Search by'
)
) }}
</div>
<div class="govuk-grid-column-one-quarter">
<input type="hidden" name="csrf_token" value="{{ csrf_token() }}">
{{ govukButton({
"text": "Search",
"classes": "search-form__button"
}) }}
</div>
{% endcall %}
{% call form_wrapper(id="search-form") %}
<input type="hidden" name="to" value="{{ search_form.to.data }}">
<input type="hidden" name="csrf_token" value="{{ csrf_token() }}">
{% endcall %}
{% else %}
{% call form_wrapper(id="search-form") %}
<input type="hidden" name="csrf_token" value="{{ csrf_token() }}"/>
{% endcall %}
{% endif %}
{% call form_wrapper(
action=url_for('.view_notifications', service_id=current_service.id, message_type=message_type),
class="govuk-grid-row"
) %}
<div class="govuk-grid-column-three-quarters {% if message_type == 'sms' %}extra-tracking{% endif %}">
{{ textbox(
search_form.to,
width='1-1',
label=things_you_can_search_by|formatted_list(
conjunction='or',
before_each='',
after_each='',
prefix='Search by',
prefix_plural='Search by'
)
) }}
</div>
<div class="govuk-grid-column-one-quarter">
<input type="hidden" name="csrf_token" value="{{ csrf_token() }}">
{{ govukButton({
"text": "Search",
"classes": "search-form__button"
}) }}
</div>
{% endcall %}
{% call form_wrapper(id="search-form") %}
<input type="hidden" name="to" value="{{ search_form.to.data }}">
<input type="hidden" name="csrf_token" value="{{ csrf_token() }}">
{% endcall %}
{% if current_user.has_permissions('view_activity') %}
<p class="bottom-gutter">
<a href="{{ download_link }}" download="download" class="govuk-link govuk-link--no-visited-state govuk-!-font-weight-bold">Download this report</a>