Fixed #28959 -- Fixed 'No, take me back' button on admin's inline popup.

This commit is contained in:
Josh Schneier 2018-03-05 23:04:06 -08:00 committed by Tim Graham
parent 9421aee35e
commit b60e5fdbb7
2 changed files with 19 additions and 1 deletions

View File

@ -3,7 +3,11 @@
$(function() { $(function() {
$('.cancel-link').on('click', function(e) { $('.cancel-link').on('click', function(e) {
e.preventDefault(); e.preventDefault();
window.history.back(); if (window.location.search.indexOf('&_popup=1') === -1) {
window.history.back(); // Go back if not a popup.
} else {
window.close(); // Otherwise, close the popup.
}
}); });
}); });
})(django.jQuery); })(django.jQuery);

View File

@ -4394,6 +4394,20 @@ class SeleniumTests(AdminSeleniumTestCase):
self.assertEqual(select.first_selected_option.text, '---------') self.assertEqual(select.first_selected_option.text, '---------')
self.assertEqual(select.first_selected_option.get_attribute('value'), '') self.assertEqual(select.first_selected_option.get_attribute('value'), '')
def test_inline_with_popup_cancel_delete(self):
"""Clicking ""No, take me back" on a delete popup closes the window."""
parent = ParentWithUUIDPK.objects.create(title='test')
related_with_parent = RelatedWithUUIDPKModel.objects.create(parent=parent)
self.admin_login(username='super', password='secret', login_url=reverse('admin:index'))
change_url = reverse('admin:admin_views_relatedwithuuidpkmodel_change', args=(related_with_parent.id,))
self.selenium.get(self.live_server_url + change_url)
self.selenium.find_element_by_id('delete_id_parent').click()
self.wait_for_popup()
self.selenium.switch_to.window(self.selenium.window_handles[-1])
self.selenium.find_element_by_xpath('//a[text()="No, take me back"]').click()
self.selenium.switch_to.window(self.selenium.window_handles[0])
self.assertEqual(len(self.selenium.window_handles), 1)
def test_list_editable_raw_id_fields(self): def test_list_editable_raw_id_fields(self):
parent = ParentWithUUIDPK.objects.create(title='test') parent = ParentWithUUIDPK.objects.create(title='test')
parent2 = ParentWithUUIDPK.objects.create(title='test2') parent2 = ParentWithUUIDPK.objects.create(title='test2')