summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPhil Hughes <me@iamphill.com>2016-07-25 10:44:53 +0100
committerPhil Hughes <me@iamphill.com>2016-07-26 14:57:53 +0100
commit20f932d768700f073a1ed5b0d6789c31ab41499b (patch)
tree01c4e89010dfad83f4669b785390231b39c40018
parent580f5aa2b74f4c7ee745a57cd8999576723b14a7 (diff)
downloadgitlab-ce-search-autocomplete-enter-fix.tar.gz
Fixed issue with autocomplete search not working with enter keysearch-autocomplete-enter-fix
Closes #20165
-rw-r--r--app/assets/javascripts/gl_dropdown.js.coffee16
-rw-r--r--app/assets/javascripts/search_autocomplete.js.coffee1
-rw-r--r--spec/features/search_spec.rb10
3 files changed, 21 insertions, 6 deletions
diff --git a/app/assets/javascripts/gl_dropdown.js.coffee b/app/assets/javascripts/gl_dropdown.js.coffee
index 7086ece29b8..73164cdce1d 100644
--- a/app/assets/javascripts/gl_dropdown.js.coffee
+++ b/app/assets/javascripts/gl_dropdown.js.coffee
@@ -218,12 +218,15 @@ class GitLabDropdown
if @dropdown.find('.dropdown-toggle-page').length
selector = ".dropdown-page-one #{selector}"
- $(selector, @dropdown)
- .first()
- .find('a')
- .addClass('is-focused')
+ if not $(@el).is('input')
+ $(selector, @dropdown)
+ .first()
+ .find('a')
+ .addClass('is-focused')
- currentIndex = 0
+ currentIndex = 0
+ else
+ currentIndex = -1
# Event listeners
@@ -559,10 +562,11 @@ class GitLabDropdown
# simulate a click on the first link
$el = $(selector, @dropdown)
- if $el.length
+ if $el.length and currentIndex > -1
e.preventDefault()
e.stopImmediatePropagation()
$el.first().trigger('click')
+ $el.first().get(0).click?()
addArrowKeyEvent: ->
ARROW_KEY_CODES = [38, 40]
diff --git a/app/assets/javascripts/search_autocomplete.js.coffee b/app/assets/javascripts/search_autocomplete.js.coffee
index 72b1d3dfb1e..2c83bc0d5fe 100644
--- a/app/assets/javascripts/search_autocomplete.js.coffee
+++ b/app/assets/javascripts/search_autocomplete.js.coffee
@@ -63,6 +63,7 @@ class @SearchAutocomplete
data: @getData.bind(@)
selectable: true
clicked: @onClick.bind(@)
+ id: (data) -> _.escape(data.text)
getData: (term, callback) ->
_this = @
diff --git a/spec/features/search_spec.rb b/spec/features/search_spec.rb
index d0a301038c4..83e8a62793f 100644
--- a/spec/features/search_spec.rb
+++ b/spec/features/search_spec.rb
@@ -51,6 +51,16 @@ describe "Search", feature: true do
end
describe 'Right header search field', feature: true do
+ it 'allows enter key to search', js: true do
+ visit namespace_project_path(project.namespace, project)
+ fill_in 'search', with: 'gitlab'
+ find('#search').native.send_keys(:enter)
+
+ page.within '.title' do
+ expect(page).to have_content 'Search'
+ end
+ end
+
describe 'Search in project page' do
before do
visit namespace_project_path(project.namespace, project)