summaryrefslogtreecommitdiff
path: root/app/assets/javascripts/shortcuts_issueable.coffee
diff options
context:
space:
mode:
authorRobert Speicher <rspeicher@gmail.com>2015-04-11 18:32:24 -0400
committerRobert Speicher <rspeicher@gmail.com>2015-04-18 15:17:26 -0400
commitca5d0c82509cedb94f9bfa4a40e77706a58faafe (patch)
tree7fa1bb929ceded8ee3bd395a7f7ee3fb1b3b0f2d /app/assets/javascripts/shortcuts_issueable.coffee
parent4603bf500ae58ef4af9061ce20b7b33d03dcc783 (diff)
downloadgitlab-ce-ca5d0c82509cedb94f9bfa4a40e77706a58faafe.tar.gz
Add hotkey for "reply with selected text" to Issueable
Diffstat (limited to 'app/assets/javascripts/shortcuts_issueable.coffee')
-rw-r--r--app/assets/javascripts/shortcuts_issueable.coffee28
1 files changed, 27 insertions, 1 deletions
diff --git a/app/assets/javascripts/shortcuts_issueable.coffee b/app/assets/javascripts/shortcuts_issueable.coffee
index f2d30eb364d..f645d4ae515 100644
--- a/app/assets/javascripts/shortcuts_issueable.coffee
+++ b/app/assets/javascripts/shortcuts_issueable.coffee
@@ -11,9 +11,35 @@ class @ShortcutsIssueable extends ShortcutsNavigation
$('.js-milestone').select2('open')
return false
)
-
+ Mousetrap.bind('r', =>
+ @replyWithSelectedText()
+ return false
+ )
+
if isMergeRequest
@enabledHelp.push('.hidden-shortcut.merge_requests')
else
@enabledHelp.push('.hidden-shortcut.issues')
+ replyWithSelectedText: ->
+ if window.getSelection
+ selected = window.getSelection().toString()
+ replyField = $('.js-main-target-form #note_note')
+
+ return if selected.trim() == ""
+
+ # Put a '>' character before each non-empty line in the selection
+ quote = _.map selected.split("\n"), (val) ->
+ "> #{val}\n" if val.trim() != ''
+
+ # If replyField already has some content, add a newline before our quote
+ separator = replyField.val().trim() != "" and "\n" or ''
+
+ replyField.val (_, current) ->
+ current + separator + quote.join('') + "\n"
+
+ # Trigger autosave for the added text
+ replyField.trigger('input')
+
+ # Focus the input field
+ replyField.focus()