mirror of
https://github.com/GSA/notifications-admin.git
synced 2026-08-05 06:01:46 -04:00
Make deletion confirmation banner messages consistent across our app
Also introduce a way to provide context to a banner / flash message that will be displayed in plain font style.
This commit is contained in:
@@ -130,9 +130,12 @@ def create_api_key(service_id):
|
|||||||
def revoke_api_key(service_id, key_id):
|
def revoke_api_key(service_id, key_id):
|
||||||
key_name = current_service.get_api_key(key_id)['name']
|
key_name = current_service.get_api_key(key_id)['name']
|
||||||
if request.method == 'GET':
|
if request.method == 'GET':
|
||||||
|
flash([
|
||||||
|
"Are you sure you want to revoke this API key?",
|
||||||
|
"‘{}’ will no longer let you connect to GOV.UK Notify.".format(key_name)
|
||||||
|
], 'revoke')
|
||||||
return render_template(
|
return render_template(
|
||||||
'views/api/keys.html',
|
'views/api/keys.html',
|
||||||
revoke_key=key_name,
|
|
||||||
)
|
)
|
||||||
elif request.method == 'POST':
|
elif request.method == 'POST':
|
||||||
api_key_api_client.revoke_api_key(service_id=service_id, key_id=key_id)
|
api_key_api_client.revoke_api_key(service_id=service_id, key_id=key_id)
|
||||||
|
|||||||
@@ -441,7 +441,7 @@ def delete_template_folder(service_id, template_folder_id):
|
|||||||
else:
|
else:
|
||||||
abort(500, e)
|
abort(500, e)
|
||||||
|
|
||||||
flash("Are you sure you want to delete the '{}' folder?".format(template_folder_name), 'delete')
|
flash("Are you sure you want to delete the ‘{}’ folder?".format(template_folder_name), 'delete')
|
||||||
return render_template(
|
return render_template(
|
||||||
'views/templates/manage-template-folder.html',
|
'views/templates/manage-template-folder.html',
|
||||||
form=form,
|
form=form,
|
||||||
@@ -628,12 +628,9 @@ def delete_service_template(service_id, template_id):
|
|||||||
else:
|
else:
|
||||||
raise e
|
raise e
|
||||||
|
|
||||||
|
flash(["Are you sure you want to delete ‘{}’?".format(template['name']), message], 'delete')
|
||||||
return render_template(
|
return render_template(
|
||||||
'views/templates/template.html',
|
'views/templates/template.html',
|
||||||
template_delete_confirmation_message=(
|
|
||||||
'Are you sure you want to delete {}?'.format(template['name']),
|
|
||||||
message,
|
|
||||||
),
|
|
||||||
template=get_template(
|
template=get_template(
|
||||||
template,
|
template,
|
||||||
current_service,
|
current_service,
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
{% macro banner(body, type=None, with_tick=False, delete_button=None, subhead=None) %}
|
{% macro banner(body, type=None, with_tick=False, delete_button=None, subhead=None, context=None) %}
|
||||||
<div
|
<div
|
||||||
class='banner{% if type %}-{{ type }}{% endif %}{% if with_tick %}-with-tick{% endif %}'
|
class='banner{% if type %}-{{ type }}{% endif %}{% if with_tick %}-with-tick{% endif %}'
|
||||||
{% if type == 'dangerous' %}
|
{% if type == 'dangerous' %}
|
||||||
@@ -10,6 +10,11 @@
|
|||||||
<h1 class="banner-title">{{ subhead }}</h1>
|
<h1 class="banner-title">{{ subhead }}</h1>
|
||||||
{%- endif -%}
|
{%- endif -%}
|
||||||
{{ body }}
|
{{ body }}
|
||||||
|
{% if context %}
|
||||||
|
<p>
|
||||||
|
{{ context }}
|
||||||
|
</p>
|
||||||
|
{% endif %}
|
||||||
{% if delete_button %}
|
{% if delete_button %}
|
||||||
<form method='post'>
|
<form method='post'>
|
||||||
<input type="hidden" name="csrf_token" value="{{ csrf_token() }}" />
|
<input type="hidden" name="csrf_token" value="{{ csrf_token() }}" />
|
||||||
|
|||||||
@@ -4,10 +4,11 @@
|
|||||||
{% for category, message in messages %}
|
{% for category, message in messages %}
|
||||||
<div class="bottom-gutter">
|
<div class="bottom-gutter">
|
||||||
{{ banner(
|
{{ banner(
|
||||||
message,
|
message if message is string else message[0],
|
||||||
'default' if ((category == 'default') or (category == 'default_with_tick')) else 'dangerous',
|
'default' if ((category == 'default') or (category == 'default_with_tick')) else 'dangerous',
|
||||||
delete_button="Yes, {}".format(category) if category in ['delete', 'suspend', 'resume', 'remove'] else None,
|
delete_button="Yes, {}".format(category) if category in ['delete', 'suspend', 'resume', 'remove', 'revoke'] else None,
|
||||||
with_tick=True if category == 'default_with_tick' else False
|
with_tick=True if category == 'default_with_tick' else False,
|
||||||
|
context=message[1] if message is not string
|
||||||
)}}
|
)}}
|
||||||
</div>
|
</div>
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
|
|||||||
@@ -10,30 +10,16 @@
|
|||||||
|
|
||||||
{% block maincolumn_content %}
|
{% block maincolumn_content %}
|
||||||
|
|
||||||
{% if revoke_key %}
|
<div class="grid-row">
|
||||||
<div class="bottom-gutter">
|
<div class="column-two-thirds">
|
||||||
{% call banner_wrapper(type='dangerous', subhead='Are you sure you want to revoke this API key?') %}
|
<h1 class="heading-large">
|
||||||
<p>
|
API keys
|
||||||
‘{{ revoke_key }}’ will no longer let you connect to GOV.UK Notify.
|
</h1>
|
||||||
</p>
|
|
||||||
<form method='post'>
|
|
||||||
<input type="hidden" name="csrf_token" value="{{ csrf_token() }}" />
|
|
||||||
<button type="submit" class="button" name="delete">Confirm</button>
|
|
||||||
</form>
|
|
||||||
{% endcall %}
|
|
||||||
</div>
|
</div>
|
||||||
{% else %}
|
<div class="column-one-third">
|
||||||
<div class="grid-row">
|
<a href="{{ url_for('.create_api_key', service_id=current_service.id) }}" class="button align-with-heading">Create an API key</a>
|
||||||
<div class="column-two-thirds">
|
|
||||||
<h1 class="heading-large">
|
|
||||||
API keys
|
|
||||||
</h1>
|
|
||||||
</div>
|
|
||||||
<div class="column-one-third">
|
|
||||||
<a href="{{ url_for('.create_api_key', service_id=current_service.id) }}" class="button align-with-heading">Create an API key</a>
|
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
{% endif %}
|
</div>
|
||||||
|
|
||||||
<div class="body-copy-table">
|
<div class="body-copy-table">
|
||||||
{% call(item, row_number) list_table(
|
{% call(item, row_number) list_table(
|
||||||
|
|||||||
@@ -27,20 +27,6 @@
|
|||||||
</form>
|
</form>
|
||||||
{% endcall %}
|
{% endcall %}
|
||||||
</div>
|
</div>
|
||||||
{% elif template_delete_confirmation_message %}
|
|
||||||
<div class="bottom-gutter">
|
|
||||||
{% call banner_wrapper(type='dangerous', subhead=template_delete_confirmation_message[0]) %}
|
|
||||||
{% if template_delete_confirmation_message[1] %}
|
|
||||||
<p>
|
|
||||||
{{ template_delete_confirmation_message[1] }}
|
|
||||||
</p>
|
|
||||||
{% endif %}
|
|
||||||
<form method='post'>
|
|
||||||
<input type="hidden" name="csrf_token" value="{{ csrf_token() }}" />
|
|
||||||
<button type="submit" class="button" name="delete">Confirm</button>
|
|
||||||
</form>
|
|
||||||
{% endcall %}
|
|
||||||
</div>
|
|
||||||
{% else %}
|
{% else %}
|
||||||
<h1 class="heading-large">{{ template.name }}</h1>
|
<h1 class="heading-large">{{ template.name }}</h1>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|||||||
@@ -310,7 +310,7 @@ def test_should_show_confirm_revoke_api_key(
|
|||||||
assert normalize_spaces(page.select('.banner-dangerous')[0].text) == (
|
assert normalize_spaces(page.select('.banner-dangerous')[0].text) == (
|
||||||
'Are you sure you want to revoke this API key? '
|
'Are you sure you want to revoke this API key? '
|
||||||
'‘some key name’ will no longer let you connect to GOV.UK Notify. '
|
'‘some key name’ will no longer let you connect to GOV.UK Notify. '
|
||||||
'Confirm'
|
'Yes, revoke'
|
||||||
)
|
)
|
||||||
assert mock_get_api_keys.call_args_list == [
|
assert mock_get_api_keys.call_args_list == [
|
||||||
call(
|
call(
|
||||||
|
|||||||
@@ -1281,7 +1281,7 @@ def test_should_show_delete_template_page_with_time_block(
|
|||||||
template_id=fake_uuid,
|
template_id=fake_uuid,
|
||||||
_test_page_title=False,
|
_test_page_title=False,
|
||||||
)
|
)
|
||||||
assert page.h1.text == 'Are you sure you want to delete Two week reminder?'
|
assert "Are you sure you want to delete ‘Two week reminder’?" in page.select('.banner-dangerous')[0].text
|
||||||
assert normalize_spaces(page.select('.banner-dangerous p')[0].text) == (
|
assert normalize_spaces(page.select('.banner-dangerous p')[0].text) == (
|
||||||
'It was last used 10 minutes ago'
|
'It was last used 10 minutes ago'
|
||||||
)
|
)
|
||||||
@@ -1310,7 +1310,7 @@ def test_should_show_delete_template_page_with_time_block_for_empty_notification
|
|||||||
template_id=fake_uuid,
|
template_id=fake_uuid,
|
||||||
_test_page_title=False,
|
_test_page_title=False,
|
||||||
)
|
)
|
||||||
assert page.h1.text == 'Are you sure you want to delete Two week reminder?'
|
assert "Are you sure you want to delete ‘Two week reminder’?" in page.select('.banner-dangerous')[0].text
|
||||||
assert normalize_spaces(page.select('.banner-dangerous p')[0].text) == (
|
assert normalize_spaces(page.select('.banner-dangerous p')[0].text) == (
|
||||||
'It was last used more than seven days ago'
|
'It was last used more than seven days ago'
|
||||||
)
|
)
|
||||||
@@ -1336,7 +1336,7 @@ def test_should_show_delete_template_page_with_never_used_block(
|
|||||||
template_id=fake_uuid,
|
template_id=fake_uuid,
|
||||||
_test_page_title=False,
|
_test_page_title=False,
|
||||||
)
|
)
|
||||||
assert page.h1.text == 'Are you sure you want to delete Two week reminder?'
|
assert "Are you sure you want to delete ‘Two week reminder’?" in page.select('.banner-dangerous')[0].text
|
||||||
assert not page.select('.banner-dangerous p')
|
assert not page.select('.banner-dangerous p')
|
||||||
assert normalize_spaces(page.select('.sms-message-wrapper')[0].text) == (
|
assert normalize_spaces(page.select('.sms-message-wrapper')[0].text) == (
|
||||||
'service one: Template <em>content</em> with & entity'
|
'service one: Template <em>content</em> with & entity'
|
||||||
|
|||||||
Reference in New Issue
Block a user