summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJacob Schatz <jschatz@gitlab.com>2016-06-29 19:22:08 +0000
committerRobert Speicher <rspeicher@gmail.com>2016-06-30 15:19:57 -0400
commit966eedd36720888f75207497e8ff7e708115c54d (patch)
tree8d617424336f6a48596d98bc749fe088d867f86e
parent70fd0177692d1d67965f099d7814cb3bd95b6dd1 (diff)
downloadgitlab-ce-966eedd36720888f75207497e8ff7e708115c54d.tar.gz
Merge branch 'search-input-blur' into 'master'
Fixed search field blur not removing focus ## What does this MR do? Adds a blur event to remove focus styling from the search input. Any particular reason we were looking for clicks on the document? I can't see why we would be. ## What are the relevant issue numbers? Closes #18670 ## Screenshots (if relevant) ![tab](/uploads/4c74d4f76ec7b45bfcf581606d2defb5/tab.gif) See merge request !4704 (cherry picked from commit c051630aa88d3394a77108aa8ad422c91b0aec9f)
-rw-r--r--CHANGELOG1
-rw-r--r--app/assets/javascripts/gl_dropdown.js.coffee7
-rw-r--r--app/assets/javascripts/search_autocomplete.js.coffee11
3 files changed, 9 insertions, 10 deletions
diff --git a/CHANGELOG b/CHANGELOG
index 761f423a88a..65e7eff5c9d 100644
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -3,6 +3,7 @@ Please view this file on the master branch, on stable branches it's out of date.
v 8.9.4
- Fix privilege escalation issue with OAuth external users.
- Ensure references to private repos aren't shown to logged-out users.
+ - Fixed search field blur not removing focus. !4704
v 8.9.3
- Fix encrypted data backwards compatibility after upgrading attr_encrypted gem. !4963
diff --git a/app/assets/javascripts/gl_dropdown.js.coffee b/app/assets/javascripts/gl_dropdown.js.coffee
index 703128fecb3..5b8e01c072c 100644
--- a/app/assets/javascripts/gl_dropdown.js.coffee
+++ b/app/assets/javascripts/gl_dropdown.js.coffee
@@ -218,6 +218,13 @@ class GitLabDropdown
@dropdown.on 'keyup', (e) =>
if e.which is 27 # Escape key
$('.dropdown-menu-close', @dropdown).trigger 'click'
+ @dropdown.on 'blur', 'a', (e) =>
+ if e.relatedTarget?
+ $relatedTarget = $(e.relatedTarget)
+ $dropdownMenu = $relatedTarget.closest('.dropdown-menu')
+
+ if $dropdownMenu.length is 0
+ @dropdown.removeClass('open')
if @dropdown.find(".dropdown-toggle-page").length
@dropdown.find(".dropdown-toggle-page, .dropdown-menu-back").on "click", (e) =>
diff --git a/app/assets/javascripts/search_autocomplete.js.coffee b/app/assets/javascripts/search_autocomplete.js.coffee
index 421328554b8..72b1d3dfb1e 100644
--- a/app/assets/javascripts/search_autocomplete.js.coffee
+++ b/app/assets/javascripts/search_autocomplete.js.coffee
@@ -171,22 +171,15 @@ class @SearchAutocomplete
}
bindEvents: ->
- $(document).on 'click', @onDocumentClick
@searchInput.on 'keydown', @onSearchInputKeyDown
@searchInput.on 'keyup', @onSearchInputKeyUp
@searchInput.on 'click', @onSearchInputClick
@searchInput.on 'focus', @onSearchInputFocus
+ @searchInput.on 'blur', @onSearchInputBlur
@clearInput.on 'click', @onClearInputClick
@locationBadgeEl.on 'click', =>
@searchInput.focus()
- onDocumentClick: (e) =>
- # If clicking outside the search box
- # And search input is not focused
- # And we are not clicking inside a suggestion
- if not $.contains(@dropdown[0], e.target) and @isFocused and not $(e.target).closest('.search-form').length
- @onSearchInputBlur()
-
enableAutocomplete: ->
# No need to enable anything if user is not logged in
return if !gon.current_user_id
@@ -287,8 +280,6 @@ class @SearchAutocomplete
value: @originalState._location
)
- @dropdown.removeClass 'open'
-
badgePresent: ->
@locationBadgeEl.length