History

Improve behavior of search scope when hitting escape

Closes #639.

Thibaut Courouble committed 9 years ago

Commit 48d85f11 parent 4bc31ad4 files · +17 −7Browse files

Unified · Split

4 files
  1. assets/javascripts/lib/events.coffee +2 −0
  2. assets/javascripts/views/search/search.coffee +7 −2
  3. assets/javascripts/views/search/search_scope.coffee +3 −3
  4. assets/javascripts/views/sidebar/sidebar.coffee +5 −2
assets/javascripts/lib/events.coffee+2−0
@@ -15,8 +15,10 @@ · 14 unmodified lines
1515 @
1616
1717 trigger: (event, args...) ->
18+ @eventInProgress = { name: event, args: args }
1819 if callbacks = @_callbacks?[event]
1920 callback? args... for callback in callbacks.slice(0)
21+ @eventInProgress = null
2022 @trigger 'all', event, args... unless event is 'all'
2123 @
2224
assets/javascripts/views/search/search.coffee+7−2
@@ -44,7 +44,11 @@ class app.views.Search extends app.View · 43 unmodified lines
4444 @input.focus() unless document.activeElement?.tagName is 'INPUT'
4545 return
4646
47− reset: ->
47+ getScopeDoc: ->
48+ @scope.getScope() if @scope.isActive()
49+
50+ reset: (force) ->
51+ @scope.reset() if force or not @input.value
4852 @el.reset()
4953 @onInput()
5054 @autoFocus()
@@ -129,7 +133,8 @@ class app.views.Search extends app.View · 78 unmodified lines
129133 return
130134
131135 afterRoute: (name, context) =>
132− @reset() if not context.init and app.router.isIndex()
136+ return if app.shortcuts.eventInProgress?.name is 'escape'
137+ @reset(true) if not context.init and app.router.isIndex()
133138 @delay @searchUrl if context.hash
134139 @delay @autoFocus
135140 return
assets/javascripts/views/search/search_scope.coffee+3−3
@@ -11,9 +11,6 @@ class app.views.SearchScope extends app.View · 10 unmodified lines
1111 @routes:
1212 after: 'afterRoute'
1313
14− @shortcuts:
15− escape: 'reset'
16−
1714 constructor: (@el) -> super
1815
1916 init: ->
@@ -29,6 +26,9 @@ class app.views.SearchScope extends app.View · 9 unmodified lines
2926 getScope: ->
3027 @doc or app
3128
29+ isActive: ->
30+ !!@doc
31+
3232 name: ->
3333 @doc?.name
3434
assets/javascripts/views/sidebar/sidebar.coffee+5−2
@@ -129,7 +129,8 @@ class app.views.Sidebar extends app.View · 128 unmodified lines
129129
130130 onEscape: =>
131131 @reset()
132− @scrollToTop()
132+ @resetDisplay()
133+ if doc = @search.getScopeDoc() then @docList.reveal(doc.toEntry()) else @scrollToTop()
133134 return
134135
135136 onDocEnabled: ->
@@ -137,6 +138,8 @@ class app.views.Sidebar extends app.View · 1 unmodified line
137138 @reset()
138139 return
139140
140− afterRoute: =>
141+ afterRoute: (name, context) =>
142+ return if app.shortcuts.eventInProgress?.name is 'escape'
143+ @reset() if not context.init and app.router.isIndex()
141144 @resetDisplay()
142145 return

Keyboard shortcuts

General

Show keyboard shortcuts
?
Focus the current search
/

Issues and pull requests

Open filters
f

Issues, pull requests and Inbox

Select next item
j↓
Select previous item
k↑
Open selected item
Enter
Dismiss filters or clear selection
Esc

Repository code

Go to file
t