Use folder buttons in empty state

It’s confusing to have one way of adding things when your service is new
(green button) but a different way once you’ve added your first thing
(the new grey buttons).

For services that have a `edit_folders` permission, this commit
standardises on the grey buttons for a consistent experience.
This commit is contained in:
Chris Hill-Scott
2019-01-03 10:43:57 +00:00
parent bbaa51443a
commit aaf3322662
3 changed files with 36 additions and 11 deletions

View File

@@ -1,7 +1,7 @@
{% from "components/checkbox.html" import unlabelled_checkbox %}
{% from "components/message-count-label.html" import folder_contents_count, message_count_label %}
{% if not template_list.templates_to_show %}
{% if template_list.template_folder_id and not template_list.templates_to_show %}
<p class="template-list-empty">
{% if template_list.folder_is_empty %}
This folder is empty

View File

@@ -34,7 +34,6 @@
emails or text messages
{%- endif %}.
</p>
<a href="{{ url_for('.add_template_by_type', service_id=current_service.id) }}" class="button">Add a new template</a>
{% else %}
<p>
You need to ask your service manager to add templates before you can send
@@ -71,7 +70,7 @@
{% endif %}
{% endif %}
</div>
{% endif %}
{% if show_template_nav %}
<div class="bottom-gutter">
{{ pill(template_nav_items, current_value=template_type, show_count=False) }}
@@ -91,7 +90,10 @@
{% else %}
{% include 'views/templates/_template_list.html' %}
{% if (not current_service.all_templates) and (not current_service.all_template_folders) and current_user.has_permissions('manage_templates') %}
<a href="{{ url_for('.add_template_by_type', service_id=current_service.id) }}" class="button">Add a new template</a>
{% endif %}
{% endif %}
{% endif %}
{% endblock %}

View File

@@ -35,21 +35,14 @@ from tests.conftest import service_one as create_sample_service
from tests.conftest import single_letter_contact_block
@pytest.mark.parametrize('extra_permissions', (
[],
['edit_folders'],
))
def test_should_show_empty_page_when_no_templates(
client_request,
service_one,
mock_get_organisations_and_services_for_user,
mock_get_service_templates_when_no_templates_exist,
mock_get_template_folders,
extra_permissions,
):
service_one['permissions'] += extra_permissions
page = client_request.get(
'main.choose_template',
service_id=service_one['id'],
@@ -68,6 +61,36 @@ def test_should_show_empty_page_when_no_templates(
assert len(page.select('main a')) == 1
def test_should_show_add_template_form_if_service_has_folder_permission(
client_request,
service_one,
mock_get_organisations_and_services_for_user,
mock_get_service_templates_when_no_templates_exist,
mock_get_template_folders,
):
service_one['permissions'] += ['edit_folders']
page = client_request.get(
'main.choose_template',
service_id=service_one['id'],
)
assert normalize_spaces(page.select_one('h1').text) == (
'Templates'
)
assert normalize_spaces(page.select_one('main p').text) == (
'You need a template before you can send emails or text messages.'
)
assert [
(item['name'], item['value']) for item in page.select('[type=radio]')
] == [
('add_template_by_template_type', 'email'),
('add_template_by_template_type', 'sms'),
]
assert not page.select('main a')
@pytest.mark.parametrize(
'user, expected_page_title, extra_args, expected_nav_links, expected_templates',
[