Only live search on template or folder name

If you have a folder structure like this:

> FA / FB / FC

and you search for ‘FA’, it’s very noisy to see:

> FA / FB
> FA / FB / T1
> FA / FB / T2
> FA / FB / FC
> FA / FB / FC / T3
> …

It’s clearer to just show:

> FA / FB

This also has the benefit of, if you type ‘template’ (for example) you
don’t get every item any more, because it’s only looking at the name of
the thing. It used to look at the entire description, ie:

> A / B / C / Example
> Text message template

Now it only searches on the name:

> A / B / C / *Example*
> Text message template
This commit is contained in:
Chris Hill-Scott
2018-11-22 17:57:05 +00:00
parent ecdd605bca
commit cdb03d1eeb
3 changed files with 57 additions and 3 deletions

View File

@@ -9,7 +9,7 @@
$targets.each(function() {
let content = $(this).text();
let content = $('.live-search-relevant', this).text() || $(this).text();
if (query == '') {
$(this).css('display', '');

View File

@@ -28,11 +28,11 @@
{% endfor %}
{% if item.is_folder %}
<a href="{{ url_for('.choose_template', service_id=current_service.id, template_type=template_type, template_folder_id=item.id) }}">
{{ item.name }}
<span class="live-search-relevant">{{ item.name }}</span>
</a>
{% else %}
<a href="{{ url_for('.view_template', service_id=current_service.id, template_id=item.id) }}">
{{ item.name }}
<span class="live-search-relevant">{{ item.name }}</span>
</a>
{% endif %}
</h2>

View File

@@ -108,6 +108,7 @@ def test_post_add_template_folder_page(client_request, service_one, mocker, pare
'expected_nav_links,'
'expected_items, '
'expected_displayed_items, '
'expected_searchable_text, '
'expected_empty_message '
),
[
@@ -142,6 +143,21 @@ def test_post_add_template_folder_page(client_request, service_one, mocker, pare
'letter_template_one Letter template',
'letter_template_two Letter template',
],
[
'folder_one',
'folder_one_one',
'folder_one_one_one',
'sms_template_nested',
'letter_template_nested',
'folder_one_two',
'folder_two',
'sms_template_one',
'sms_template_two',
'email_template_one',
'email_template_two',
'letter_template_one',
'letter_template_two',
],
None,
),
(
@@ -163,6 +179,14 @@ def test_post_add_template_folder_page(client_request, service_one, mocker, pare
'sms_template_one Text message template',
'sms_template_two Text message template',
],
[
'folder_one',
'folder_one_one',
'folder_one_one_one',
'sms_template_nested',
'sms_template_one',
'sms_template_two',
],
None,
),
(
@@ -182,6 +206,13 @@ def test_post_add_template_folder_page(client_request, service_one, mocker, pare
'folder_one_one 1 template, 1 folder',
'folder_one_two Empty',
],
[
'folder_one_one',
'folder_one_one_one',
'sms_template_nested',
'letter_template_nested',
'folder_one_two',
],
None,
),
(
@@ -198,6 +229,11 @@ def test_post_add_template_folder_page(client_request, service_one, mocker, pare
[
'folder_one_one 1 folder',
],
[
'folder_one_one',
'folder_one_one_one',
'sms_template_nested',
],
None,
),
(
@@ -208,6 +244,7 @@ def test_post_add_template_folder_page(client_request, service_one, mocker, pare
['All', 'Text message', 'Letter'],
[],
[],
[],
'There are no email templates in this folder',
),
(
@@ -225,6 +262,11 @@ def test_post_add_template_folder_page(client_request, service_one, mocker, pare
'folder_one_one_one 1 template',
'letter_template_nested Letter template',
],
[
'folder_one_one_one',
'sms_template_nested',
'letter_template_nested',
],
None,
),
(
@@ -239,6 +281,9 @@ def test_post_add_template_folder_page(client_request, service_one, mocker, pare
[
'sms_template_nested Text message template',
],
[
'sms_template_nested',
],
None,
),
(
@@ -249,6 +294,7 @@ def test_post_add_template_folder_page(client_request, service_one, mocker, pare
['Text message', 'Email', 'Letter'],
[],
[],
[],
'This folder is empty',
),
(
@@ -259,6 +305,7 @@ def test_post_add_template_folder_page(client_request, service_one, mocker, pare
['All', 'Email', 'Letter'],
[],
[],
[],
'This folder is empty',
),
]
@@ -277,6 +324,7 @@ def test_should_show_templates_folder_page(
expected_nav_links,
expected_items,
expected_displayed_items,
expected_searchable_text,
expected_empty_message,
):
mock_get_template_folders.return_value = [
@@ -346,6 +394,12 @@ def test_should_show_templates_folder_page(
assert '/' not in expected_item # Yo dawg I heard you like tests…
assert normalize_spaces(displayed_page_items[index].text) == expected_item
all_searchable_text = page.select('#template-list .template-list-item .live-search-relevant')
assert len(all_searchable_text) == len(expected_searchable_text)
for index, expected_item in enumerate(expected_searchable_text):
assert normalize_spaces(all_searchable_text[index].text) == expected_item
if expected_empty_message:
assert normalize_spaces(page.select_one('.template-list-empty').text) == (
expected_empty_message