summaryrefslogtreecommitdiff
path: root/app
diff options
context:
space:
mode:
authorPhil Hughes <me@iamphill.com>2016-03-24 12:12:08 +0000
committerPhil Hughes <me@iamphill.com>2016-03-31 16:25:41 +0100
commit29872c39055d55118cc8b9249caeb659041fea97 (patch)
tree75adbb2253a53e09002ccfd1dd8d780243c86b59 /app
parent858eee9ee851e6346e38582ab4b102fc038490c0 (diff)
downloadgitlab-ce-29872c39055d55118cc8b9249caeb659041fea97.tar.gz
Enter triggers the currently highlighted element click
Diffstat (limited to 'app')
-rw-r--r--app/assets/javascripts/gl_dropdown.js.coffee25
1 files changed, 13 insertions, 12 deletions
diff --git a/app/assets/javascripts/gl_dropdown.js.coffee b/app/assets/javascripts/gl_dropdown.js.coffee
index e7572e4eda9..1937e5367db 100644
--- a/app/assets/javascripts/gl_dropdown.js.coffee
+++ b/app/assets/javascripts/gl_dropdown.js.coffee
@@ -146,11 +146,11 @@ class GitLabDropdown
data: =>
return @fullData
callback: (data) =>
+ CURRENT_INDEX = -1
@parseData data
- @highlightRow 1
enterCallback: =>
if @enterCallback
- @selectFirstRow()
+ @selectRowAtIndex 0
# Event listeners
@@ -380,10 +380,11 @@ class GitLabDropdown
return selectedObject
- selectFirstRow: ->
- selector = '.dropdown-content li:first-child a'
+ selectRowAtIndex: (index) ->
+ selector = ".dropdown-content li:not(.divider):eq(#{index}) a"
+
if @dropdown.find(".dropdown-toggle-page").length
- selector = ".dropdown-page-one .dropdown-content li:first-child a"
+ selector = ".dropdown-page-one #{selector}"
# simulate a click on the first link
$(selector).trigger "click"
@@ -403,6 +404,7 @@ class GitLabDropdown
e.preventDefault()
e.stopPropagation()
+ PREV_INDEX = CURRENT_INDEX
$listItems = $(selector, @dropdown)
if @options.filterable
@@ -415,23 +417,22 @@ class GitLabDropdown
# Move up
CURRENT_INDEX -= 1 if CURRENT_INDEX > 0
- @highlightRowAtIndex(CURRENT_INDEX)
+ @highlightRowAtIndex($listItems, CURRENT_INDEX) if CURRENT_INDEX isnt PREV_INDEX
return false
+ if currentKeyCode is 13
+ @selectRowAtIndex CURRENT_INDEX
+
removeArrayKeyEvent: ->
$('body').off 'keydown'
- highlightRowAtIndex: (index, prevIndex) ->
+ highlightRowAtIndex: ($listItems, index) ->
# Remove the class for the previously focused row
$('.is-focused', @dropdown).removeClass 'is-focused'
# Update the class for the row at the specific index
- selector = ".dropdown-content li:not(.divider):eq(#{index})"
- if @dropdown.find(".dropdown-toggle-page").length
- selector = ".dropdown-page-one #{selector}"
-
- $listItem = $(selector, @dropdown)
+ $listItem = $listItems.eq(index)
$listItem.addClass "is-focused"
# Dropdown content scroll area