From aa3de225aabaa5e77fe4fb1cc07b8742079e1fb7 Mon Sep 17 00:00:00 2001 From: Thibaut Date: Sat, 14 Mar 2015 18:24:36 -0400 Subject: [PATCH] Add alt+s shortcut for searching on Stack Overflow Closes #174. --- assets/javascripts/app/shortcuts.coffee | 3 +++ .../javascripts/templates/pages/help_tmpl.coffee | 3 +++ assets/javascripts/views/search/search.coffee | 16 +++++++++++++--- .../javascripts/views/search/search_scope.coffee | 3 +++ 4 files changed, 22 insertions(+), 3 deletions(-) diff --git a/assets/javascripts/app/shortcuts.coffee b/assets/javascripts/app/shortcuts.coffee index 71db458d..133ad819 100644 --- a/assets/javascripts/app/shortcuts.coffee +++ b/assets/javascripts/app/shortcuts.coffee @@ -123,6 +123,9 @@ class app.Shortcuts when 82 @trigger 'altR' false + when 83 + @trigger 'altS' + false handleKeypressEvent: (event) -> if event.which is 63 and not event.target.value diff --git a/assets/javascripts/templates/pages/help_tmpl.coffee b/assets/javascripts/templates/pages/help_tmpl.coffee index fa6a5181..552643a5 100644 --- a/assets/javascripts/templates/pages/help_tmpl.coffee +++ b/assets/javascripts/templates/pages/help_tmpl.coffee @@ -87,6 +87,9 @@ app.templates.helpPage = """
alt + g
Search on Google +
+ alt + s +
Search on Stack Overflow
escape
Reset
(press twice in single doc mode) diff --git a/assets/javascripts/views/search/search.coffee b/assets/javascripts/views/search/search.coffee index e6ef6715..39d7887c 100644 --- a/assets/javascripts/views/search/search.coffee +++ b/assets/javascripts/views/search/search.coffee @@ -16,6 +16,7 @@ class app.views.Search extends app.View @shortcuts: typing: 'autoFocus' altG: 'google' + altS: 'stackoverflow' @routes: root: 'onRoot' @@ -86,12 +87,21 @@ class app.views.Search extends app.View @removeClass @constructor.activeClass @trigger 'clear' - google: => - if @value - $.popup "https://www.google.com/search?q=#{encodeURIComponent @value}" + externalSearch: (url) -> + if value = @value + value = "#{@scope.name()} #{value}" if @scope.name() + $.popup "#{url}#{encodeURIComponent value}" @reset() return + google: => + @externalSearch "https://www.google.com/search?q=" + return + + stackoverflow: => + @externalSearch "https://stackoverflow.com/search?q=" + return + onResults: (results) => @hasResults = true if results.length @trigger 'results', results, @flags diff --git a/assets/javascripts/views/search/search_scope.coffee b/assets/javascripts/views/search/search_scope.coffee index a9735257..014122b0 100644 --- a/assets/javascripts/views/search/search_scope.coffee +++ b/assets/javascripts/views/search/search_scope.coffee @@ -26,6 +26,9 @@ class app.views.SearchScope extends app.View getScope: -> @doc or app + name: -> + @doc?.name + search: (value) -> unless @doc @searcher.find app.docs.all(), 'text', value