diff options
author | Robert Speicher <rspeicher@gmail.com> | 2015-04-11 18:32:24 -0400 |
---|---|---|
committer | Robert Speicher <rspeicher@gmail.com> | 2015-04-18 15:17:26 -0400 |
commit | ca5d0c82509cedb94f9bfa4a40e77706a58faafe (patch) | |
tree | 7fa1bb929ceded8ee3bd395a7f7ee3fb1b3b0f2d /app/assets/javascripts | |
parent | 4603bf500ae58ef4af9061ce20b7b33d03dcc783 (diff) | |
download | gitlab-ce-ca5d0c82509cedb94f9bfa4a40e77706a58faafe.tar.gz |
Add hotkey for "reply with selected text" to Issueable
Diffstat (limited to 'app/assets/javascripts')
-rw-r--r-- | app/assets/javascripts/shortcuts_issueable.coffee | 28 |
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() |