diff --git a/app/assets/javascripts/discourse/lib/keyboard_shortcuts.js b/app/assets/javascripts/discourse/lib/keyboard_shortcuts.js index 473f9d14e5..991879ba00 100644 --- a/app/assets/javascripts/discourse/lib/keyboard_shortcuts.js +++ b/app/assets/javascripts/discourse/lib/keyboard_shortcuts.js @@ -36,8 +36,6 @@ Discourse.KeyboardShortcuts = Ember.Object.createWithMixins({ 'm t': 'div.notification-options li[data-id="2"] a', // mark topic as tracking 'm w': 'div.notification-options li[data-id="3"] a', // mark topic as watching 'n': '#user-notifications', // open notifications menu - '=': '#site-map', // open site map menu - 'p': '#current-user', // open current user menu 'o,enter': '.topic-list tr.selected a.title', // open selected topic 'shift+r': '#topic-footer-buttons button.create', // reply to topic 'shift+s': '#topic-footer-buttons button.share', // share topic @@ -54,6 +52,8 @@ Discourse.KeyboardShortcuts = Ember.Object.createWithMixins({ '`': 'nextSection', '~': 'prevSection', '/': 'showSearch', + '=': 'showSiteMap', // open site map menu + 'p': 'showCurrentUser', // open current user menu 'ctrl+f': 'showBuiltinSearch', 'command+f': 'showBuiltinSearch', '?': 'showHelpModal', // open keyboard shortcut help @@ -145,6 +145,16 @@ Discourse.KeyboardShortcuts = Ember.Object.createWithMixins({ return false; }, + showSiteMap: function() { + $('#site-map').click(); + $('#site-map-dropdown a:first').focus(); + }, + + showCurrentUser: function() { + $('#current-user').click(); + $('#user-dropdown a:first').focus(); + }, + showHelpModal: function() { Discourse.__container__.lookup('controller:application').send('showKeyboardShortcutsHelp'); }, diff --git a/app/assets/javascripts/discourse/views/search-results-type.js.es6 b/app/assets/javascripts/discourse/views/search-results-type.js.es6 index b77d523c0d..9f88257d82 100644 --- a/app/assets/javascripts/discourse/views/search-results-type.js.es6 +++ b/app/assets/javascripts/discourse/views/search-results-type.js.es6 @@ -3,7 +3,6 @@ export default Ember.CollectionView.extend({ itemViewClass: Discourse.GroupedView.extend({ tagName: 'li', classNameBindings: ['selected'], - templateName: Discourse.computed.fmt('parentView.type', "search/%@_result"), - selected: Discourse.computed.propertyEqual('content.index', 'controller.selectedIndex') + templateName: Discourse.computed.fmt('parentView.type', "search/%@_result") }) }); diff --git a/app/assets/javascripts/discourse/views/search.js.es6 b/app/assets/javascripts/discourse/views/search.js.es6 index 261c656304..92490c1a7f 100644 --- a/app/assets/javascripts/discourse/views/search.js.es6 +++ b/app/assets/javascripts/discourse/views/search.js.es6 @@ -2,28 +2,5 @@ export default Discourse.View.extend({ tagName: 'div', classNames: ['d-dropdown'], elementId: 'search-dropdown', - templateName: 'search', - - didInsertElement: function() { - // Delegate ESC to the composer - var controller = this.get('controller'); - return $('body').on('keydown.search', function(e) { - if ($('#search-dropdown').is(':visible')) { - switch (e.which) { - case 13: - controller.select(); - e.preventDefault(); - break; - case 38: - controller.moveUp(); - e.preventDefault(); - break; - case 40: - controller.moveDown(); - e.preventDefault(); - break; - } - } - }); - } + templateName: 'search' }); diff --git a/test/javascripts/integration/header-anonymous-test.js.es6 b/test/javascripts/integration/header-anonymous-test.js.es6 index 3a9d37912d..c7a124017c 100644 --- a/test/javascripts/integration/header-anonymous-test.js.es6 +++ b/test/javascripts/integration/header-anonymous-test.js.es6 @@ -39,6 +39,6 @@ test("header", function() { fillIn("#search-term", "hello"); andThen(function() { ok(exists("#search-dropdown .heading"), "when user completes a search, search box shows search results"); - equal(find("#search-dropdown .selected a").attr("href"), "some-url", "the first search result is selected"); + equal(find("#search-dropdown a:not(.filter):first").attr("href"), "some-url", "there is a search result"); }); });