mirror of
https://github.com/GSA/notifications-admin.git
synced 2026-03-05 18:02:20 -05:00
Don’t hide the rename form on delete
It’s weird that this page changes when you click delete – it looks like you’re going to a different page. It should feel like you’re on the same page, just with the confirmation message. The problem we had before is that the rename form would `POST` to `…/delete`, which would then delete the template instead of updating its name. We can fix this by explicitly setting the `action` attribute on the rename form to always post to `…/manage`, even if the user is currently looking at the `…/delete` page.
This commit is contained in:
@@ -406,7 +406,9 @@ def manage_template_folder(service_id, template_folder_id):
|
||||
def delete_template_folder(service_id, template_folder_id):
|
||||
if not current_service.has_permission('edit_folders'):
|
||||
abort(403)
|
||||
form = TemplateFolderForm()
|
||||
form = TemplateFolderForm(
|
||||
name=current_service.get_template_folder(template_folder_id)['name']
|
||||
)
|
||||
template_folder_path = current_service.get_template_folder_path(template_folder_id)
|
||||
template_folder_name = template_folder_path[-1]["name"]
|
||||
|
||||
@@ -450,7 +452,6 @@ def delete_template_folder(service_id, template_folder_id):
|
||||
current_service_id=current_service.id,
|
||||
template_folder_id=template_folder_id,
|
||||
template_type="all",
|
||||
delete_folder=True
|
||||
)
|
||||
|
||||
|
||||
|
||||
@@ -21,20 +21,16 @@
|
||||
</div>
|
||||
</div>
|
||||
|
||||
{% if not delete_folder %}
|
||||
{% call form_wrapper() %}
|
||||
{{ textbox(form.name) }}
|
||||
{{ page_footer(
|
||||
'Save',
|
||||
delete_link=url_for(
|
||||
'.delete_template_folder',
|
||||
service_id=current_service_id,
|
||||
template_folder_id=template_folder_id
|
||||
),
|
||||
delete_link_text="Delete this folder") }}
|
||||
{% endcall %}
|
||||
{% else %}
|
||||
<a href="{{url_for('.manage_template_folder', service_id=current_service.id, template_folder_id=template_folder_id)}}">Back to manage folder page</a>
|
||||
{% endif %}
|
||||
{% call form_wrapper(action=url_for('main.manage_template_folder', service_id=current_service.id, template_folder_id=template_folder_id)) %}
|
||||
{{ textbox(form.name) }}
|
||||
{{ page_footer(
|
||||
'Save',
|
||||
delete_link=url_for(
|
||||
'.delete_template_folder',
|
||||
service_id=current_service_id,
|
||||
template_folder_id=template_folder_id
|
||||
),
|
||||
delete_link_text="Delete this folder") }}
|
||||
{% endcall %}
|
||||
|
||||
{% endblock %}
|
||||
|
||||
@@ -367,7 +367,7 @@ def test_get_manage_folder_page(
|
||||
assert normalize_spaces(page.select_one('title').text) == (
|
||||
'folder_two – Templates – service one – GOV.UK Notify'
|
||||
)
|
||||
assert page.select_one('input[name=name]') is not None
|
||||
assert page.select_one('input[name=name]')['value'] == 'folder_two'
|
||||
delete_link = page.find('a', string="Delete this folder")
|
||||
expected_delete_url = "/services/{}/templates/folders/{}/delete".format(service_one['id'], folder_id)
|
||||
|
||||
@@ -443,9 +443,20 @@ def test_delete_template_folder_should_request_confirmation(
|
||||
'Yes, delete'
|
||||
)
|
||||
|
||||
assert len(page.select('label')) == 0
|
||||
assert len(page.select('button')) == 1
|
||||
assert "Back to manage folder page" in page.text
|
||||
assert page.select_one('input[name=name]')['value'] == 'sacrifice'
|
||||
|
||||
assert len(page.select('form')) == 2
|
||||
assert len(page.select('button')) == 2
|
||||
|
||||
assert 'action' not in page.select('form')[0]
|
||||
assert page.select('form button')[0].text == 'Yes, delete'
|
||||
|
||||
assert page.select('form')[1]['action'] == url_for(
|
||||
'main.manage_template_folder',
|
||||
service_id=service_one['id'],
|
||||
template_folder_id=folder_id,
|
||||
)
|
||||
assert page.select('form button')[1].text == 'Save'
|
||||
|
||||
|
||||
def test_delete_template_folder_should_detect_non_empty_folder_on_get(
|
||||
|
||||
Reference in New Issue
Block a user