From 9a050620f00adee4a65909e2f1d3fc783f1ca62a Mon Sep 17 00:00:00 2001 From: Francis Lachapelle Date: Mon, 17 Oct 2016 15:10:40 -0400 Subject: [PATCH] (js) New hotkeys for message controller Fixes #3834 --- UI/MailerUI/English.lproj/Localizable.strings | 14 +++++++++++++- UI/Templates/MailerUI/UIxMailViewTemplate.wox | 2 +- .../js/Mailer/MailboxController.js | 7 +++++++ .../js/Mailer/MessageController.js | 17 +++++++++++++++++ 4 files changed, 38 insertions(+), 2 deletions(-) diff --git a/UI/MailerUI/English.lproj/Localizable.strings b/UI/MailerUI/English.lproj/Localizable.strings index cc9815278..5f8a64a73 100644 --- a/UI/MailerUI/English.lproj/Localizable.strings +++ b/UI/MailerUI/English.lproj/Localizable.strings @@ -373,5 +373,17 @@ /* Hotkey to write a new message */ "hotkey_compose" = "w"; +/* Hotkey to mark selected message(s) as junk */ +"hotkey_junk" = "j"; + /* Hotkey to flag a message */ -"hotkey_flag" = "f"; \ No newline at end of file +"hotkey_flag" = "*"; + +/* Hotkey to reply to a message */ +"hotkey_reply" = "r"; + +/* Hotkey to reply to all recipients of a message */ +"hotkey_replyall" = "a"; + +/* Hotkey to forward to a message */ +"hotkey_forward" = "f"; \ No newline at end of file diff --git a/UI/Templates/MailerUI/UIxMailViewTemplate.wox b/UI/Templates/MailerUI/UIxMailViewTemplate.wox index ccecd28e3..5d9af47aa 100644 --- a/UI/Templates/MailerUI/UIxMailViewTemplate.wox +++ b/UI/Templates/MailerUI/UIxMailViewTemplate.wox @@ -24,7 +24,7 @@ close
- + diff --git a/UI/WebServerResources/js/Mailer/MailboxController.js b/UI/WebServerResources/js/Mailer/MailboxController.js index f77239bde..0ff27cbfd 100644 --- a/UI/WebServerResources/js/Mailer/MailboxController.js +++ b/UI/WebServerResources/js/Mailer/MailboxController.js @@ -72,6 +72,11 @@ description: l('Write a new message'), callback: newMessage })); + keys.push(sgHotkeys.createHotkey({ + key: l('hotkey_junk'), + description: l('Mark the selected messages as junk'), + callback: markOrUnMarkMessagesAsJunk + })); keys.push(sgHotkeys.createHotkey({ key: 'space', description: l('Toggle item'), @@ -334,6 +339,8 @@ function markOrUnMarkMessagesAsJunk() { var moveSelectedMessage = vm.selectedFolder.hasSelectedMessage(); var selectedMessages = vm.selectedFolder.$selectedMessages(); + if (_.size(selectedMessages) === 0 && moveSelectedMessage) + selectedMessages = [vm.selectedFolder.$selectedMessage()]; if (_.size(selectedMessages) > 0) vm.selectedFolder.$markOrUnMarkMessagesAsJunk(selectedMessages).then(function() { var dstFolder = '/' + vm.account.id + '/folderINBOX'; diff --git a/UI/WebServerResources/js/Mailer/MessageController.js b/UI/WebServerResources/js/Mailer/MessageController.js index 3ab1502e8..5aa6244ea 100644 --- a/UI/WebServerResources/js/Mailer/MessageController.js +++ b/UI/WebServerResources/js/Mailer/MessageController.js @@ -39,6 +39,7 @@ vm.convertToEvent = convertToEvent; vm.convertToTask = convertToTask; + _registerHotkeys(hotkeys); // One-way refresh of the parent window when modifying the message from a popup window. @@ -104,8 +105,24 @@ function _registerHotkeys(keys) { + keys.push(sgHotkeys.createHotkey({ + key: l('hotkey_reply'), + description: l('Reply to the message'), + callback: reply + })); + keys.push(sgHotkeys.createHotkey({ + key: l('hotkey_replyall'), + description: l('Reply to sender and all recipients'), + callback: replyAll + })); + keys.push(sgHotkeys.createHotkey({ + key: l('hotkey_forward'), + description: l('Forward selected message'), + callback: forward + })); keys.push(sgHotkeys.createHotkey({ key: l('hotkey_flag'), + description: l('Flagged'), callback: angular.bind(stateMessage, stateMessage.toggleFlag) })); keys.push(sgHotkeys.createHotkey({