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({