Remove scope by clicking on it or by backspacing into it

pull/942/head
Jasper van Merle 6 years ago
parent 3a8be5050b
commit 8039610888

@ -30,6 +30,9 @@ class app.views.Search extends app.View
.on 'results', @onResults
.on 'end', @onEnd
@scope
.on 'change', @onScopeChange
app.on 'ready', @onReady
$.on window, 'hashchange', @searchUrl
$.on window, 'focus', @onWindowFocus
@ -138,6 +141,10 @@ class app.views.Search extends app.View
$.stopEvent(event)
return
onScopeChange: =>
@value = ''
return
afterRoute: (name, context) =>
return if app.shortcuts.eventInProgress?.name is 'escape'
@reset(true) if not context.init and app.router.isIndex()

@ -6,6 +6,7 @@ class app.views.SearchScope extends app.View
tag: '._search-tag'
@events:
click: 'onClick'
keydown: 'onKeydown'
@routes:
@ -87,11 +88,19 @@ class app.views.SearchScope extends app.View
@trigger 'change', null, previousDoc
return
onClick: (event) =>
if event.target is @tag
@reset()
$.trigger @input, 'input'
$.stopEvent(event)
return
onKeydown: (event) =>
if event.which is 8 # backspace
if @doc and not @input.value
$.stopEvent(event)
if @doc and @input.selectionEnd is 0
@reset()
$.trigger @input, 'input'
$.stopEvent(event)
else if not @doc and @input.value
return if event.ctrlKey or event.metaKey or event.altKey or event.shiftKey
if event.which is 9 or # tab

Loading…
Cancel
Save