summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCollin Anderson <collin@onetencommunications.com>2014-08-08 14:10:09 -0400
committerTim Graham <timograham@gmail.com>2014-08-12 16:17:00 -0400
commit85c22dd4c4a406301b4378a4682456dfa1900830 (patch)
tree0a29f9d7119e2408ac3f2ddf9ad2524c0184c7cf
parent2cc8ffe258008096a70791115b2daa12f0ef0192 (diff)
Fixed #23262 -- Made SelectFilter2.js move items on enter Key press.
-rw-r--r--django/contrib/admin/static/admin/js/SelectFilter2.js7
-rw-r--r--tests/admin_widgets/tests.py11
2 files changed, 17 insertions, 1 deletions
diff --git a/django/contrib/admin/static/admin/js/SelectFilter2.js b/django/contrib/admin/static/admin/js/SelectFilter2.js
index d9f6aad39b..4f6f2b7ebf 100644
--- a/django/contrib/admin/static/admin/js/SelectFilter2.js
+++ b/django/contrib/admin/static/admin/js/SelectFilter2.js
@@ -83,6 +83,7 @@ window.SelectFilter = {
from_box.setAttribute('name', from_box.getAttribute('name') + '_old');
// Set up the JavaScript event handlers for the select box filter interface
+ addEvent(filter_input, 'keypress', function(e) { SelectFilter.filter_key_press(e, field_id); });
addEvent(filter_input, 'keyup', function(e) { SelectFilter.filter_key_up(e, field_id); });
addEvent(filter_input, 'keydown', function(e) { SelectFilter.filter_key_down(e, field_id); });
addEvent(from_box, 'change', function(e) { SelectFilter.refresh_icons(field_id) });
@@ -123,15 +124,19 @@ window.SelectFilter = {
$('#' + field_id + '_add_all_link').toggleClass('active', from.find('option').length > 0);
$('#' + field_id + '_remove_all_link').toggleClass('active', to.find('option').length > 0);
},
- filter_key_up: function(event, field_id) {
+ filter_key_press: function(event, field_id) {
var from = document.getElementById(field_id + '_from');
// don't submit form if user pressed Enter
if ((event.which && event.which == 13) || (event.keyCode && event.keyCode == 13)) {
from.selectedIndex = 0;
SelectBox.move(field_id + '_from', field_id + '_to');
from.selectedIndex = 0;
+ event.preventDefault()
return false;
}
+ },
+ filter_key_up: function(event, field_id) {
+ var from = document.getElementById(field_id + '_from');
var temp = from.selectedIndex;
SelectBox.filter(field_id + '_from', document.getElementById(field_id + '_input').value);
from.selectedIndex = temp;
diff --git a/tests/admin_widgets/tests.py b/tests/admin_widgets/tests.py
index 79d7cbd9c8..83ae968523 100644
--- a/tests/admin_widgets/tests.py
+++ b/tests/admin_widgets/tests.py
@@ -942,6 +942,17 @@ class HorizontalVerticalFilterSeleniumFirefoxTests(AdminSeleniumWebDriverTestCas
self.assertSelectOptions(to_box,
[str(self.peter.id), str(self.jason.id)])
+ # -----------------------------------------------------------------
+ # Check that pressing enter on a filtered option sends it properly
+ # to the 'to' box.
+ self.get_select_option(to_box, str(self.jason.id)).click()
+ self.selenium.find_element_by_css_selector(remove_link).click()
+ input.send_keys('ja')
+ self.assertSelectOptions(from_box, [str(self.jason.id)])
+ input.send_keys([Keys.ENTER])
+ self.assertSelectOptions(to_box, [str(self.peter.id), str(self.jason.id)])
+ input.send_keys([Keys.BACK_SPACE, Keys.BACK_SPACE])
+
# Save and check that everything is properly stored in the database ---
self.selenium.find_element_by_xpath('//input[@value="Save"]').click()
self.wait_page_loaded()