From f80e6d72729e8d0034e5d371c95b8cd959be37a6 Mon Sep 17 00:00:00 2001 From: Samuel Clay Date: Sun, 1 Jul 2012 14:20:21 -0700 Subject: [PATCH] Adding keyboard shortcut 'e' for emailing a story. Also adding 'command+enter' as a way to send the email once you're in the dialog. --- media/js/newsblur/reader/reader.js | 10 ++++++++++ media/js/newsblur/reader/reader_keyboard.js | 10 ++++++++-- media/js/newsblur/reader/reader_send_email.js | 6 ++++++ 3 files changed, 24 insertions(+), 2 deletions(-) diff --git a/media/js/newsblur/reader/reader.js b/media/js/newsblur/reader/reader.js index e9e877acd..747f463c4 100644 --- a/media/js/newsblur/reader/reader.js +++ b/media/js/newsblur/reader/reader.js @@ -4913,6 +4913,10 @@ e.preventDefault(); self.open_keyboard_shortcuts_modal(); }); + $document.bind('keydown', '/', function(e) { + e.preventDefault(); + self.open_keyboard_shortcuts_modal(); + }); $document.bind('keydown', 'down', function(e) { e.preventDefault(); self.show_next_story(1); @@ -5047,6 +5051,12 @@ var story = self.model.get_story(story_id); story.story_view.open_story_in_new_tab(); }); + $document.bind('keypress', 'e', function(e) { + e.preventDefault(); + var story_id = self.active_story; + if (!story_id) return; + self.send_story_to_email(story_id); + }); $document.bind('keydown', 'shift+a', function(e) { e.preventDefault(); if (self.flags.river_view) { diff --git a/media/js/newsblur/reader/reader_keyboard.js b/media/js/newsblur/reader/reader_keyboard.js index e2da3fdea..8cc3ed8e8 100644 --- a/media/js/newsblur/reader/reader_keyboard.js +++ b/media/js/newsblur/reader/reader_keyboard.js @@ -192,9 +192,9 @@ NEWSBLUR.ReaderKeyboard.prototype = { ]), $.make('div', { className: 'NB-keyboard-group' }, [ $.make('div', { className: 'NB-keyboard-shortcut' }, [ - $.make('div', { className: 'NB-keyboard-shortcut-explanation' }, 'View keyboard shortcuts'), + $.make('div', { className: 'NB-keyboard-shortcut-explanation' }, 'Email story'), $.make('div', { className: 'NB-keyboard-shortcut-key' }, [ - '?' + 'e' ]) ]), $.make('div', { className: 'NB-keyboard-shortcut NB-last' }, [ @@ -230,6 +230,12 @@ NEWSBLUR.ReaderKeyboard.prototype = { $.make('span', '+'), 'u' ]) + ]), + $.make('div', { className: 'NB-keyboard-shortcut NB-last' }, [ + $.make('div', { className: 'NB-keyboard-shortcut-explanation' }, 'View keyboard shortcuts'), + $.make('div', { className: 'NB-keyboard-shortcut-key' }, [ + '?' + ]) ]) ]) ]); diff --git a/media/js/newsblur/reader/reader_send_email.js b/media/js/newsblur/reader/reader_send_email.js index 027dd56ab..765e65ca1 100644 --- a/media/js/newsblur/reader/reader_send_email.js +++ b/media/js/newsblur/reader/reader_send_email.js @@ -18,6 +18,10 @@ NEWSBLUR.ReaderSendEmail.prototype = new NEWSBLUR.Modal; _.extend(NEWSBLUR.ReaderSendEmail.prototype, { runner: function() { + _.bindAll(this, 'save'); + this.options.onOpen = _.bind(function() { + $('input[name=to]', this.$modal).focus(); + }, this); this.make_modal(); this.open_modal(); @@ -26,6 +30,8 @@ _.extend(NEWSBLUR.ReaderSendEmail.prototype, { } this.$modal.bind('click', $.rescope(this.handle_click, this)); + $('input, textarea', this.$modal).bind('keydown', 'ctrl+return', this.save); + $('input, textarea', this.$modal).bind('keydown', 'meta+return', this.save); }, make_modal: function() {