diff --git a/NEWS b/NEWS
index 5c29fedfd..0a1b4018e 100644
--- a/NEWS
+++ b/NEWS
@@ -6,6 +6,7 @@ New features
Enhancements
- [eas] now also search on senders when using EAS Search ops
+ - [web] allow multiple messages to be marked as seen (#3873)
Bug fixes
- [core] fixed condition in weekly recurrence calculator
diff --git a/UI/MailerUI/English.lproj/Localizable.strings b/UI/MailerUI/English.lproj/Localizable.strings
index 88f7070bd..b0cc629a4 100644
--- a/UI/MailerUI/English.lproj/Localizable.strings
+++ b/UI/MailerUI/English.lproj/Localizable.strings
@@ -354,6 +354,7 @@
"Copy messages" = "Copy messages";
"More messages options" = "More messages options";
"Mark as Unread" = "Mark as Unread";
+"Mark as Read" = "Mark as Read";
"Closing Window ..." = "Closing Window ...";
"Tried to send too many mails. Please wait." = "Tried to send too many mails. Please wait.";
"View Mail" = "View Mail";
diff --git a/UI/Templates/MailerUI/UIxMailFolderTemplate.wox b/UI/Templates/MailerUI/UIxMailFolderTemplate.wox
index 1f02fa1eb..143b717e3 100644
--- a/UI/Templates/MailerUI/UIxMailFolderTemplate.wox
+++ b/UI/Templates/MailerUI/UIxMailFolderTemplate.wox
@@ -186,6 +186,11 @@
+
+
+
+
+
diff --git a/UI/WebServerResources/js/Common/sgHotkeys.service.js b/UI/WebServerResources/js/Common/sgHotkeys.service.js
index 35ae02b8f..057681a8f 100644
--- a/UI/WebServerResources/js/Common/sgHotkeys.service.js
+++ b/UI/WebServerResources/js/Common/sgHotkeys.service.js
@@ -123,12 +123,12 @@
/**
* Keybindings are ignored by default when coming from a form input field.
*/
- this._preventIn = ['INPUT', 'SELECT', 'TEXTAREA'];
+ this._preventIn = ['INPUT', 'SELECT', 'TEXTAREA', 'MD-OPTION'];
/**
* Keybindings are ignored by default when coming from special elements
*/
- this._preventInClass = ['md-focused', 'md-chip-content'];
+ this._preventInClass = ['md-chip-content'];
this._onKeydown = this._onKeydown.bind(this);
this._onKeyup = this._onKeyup.bind(this);
diff --git a/UI/WebServerResources/js/Mailer/MailboxController.js b/UI/WebServerResources/js/Mailer/MailboxController.js
index 1a7819514..a12c07b20 100644
--- a/UI/WebServerResources/js/Mailer/MailboxController.js
+++ b/UI/WebServerResources/js/Mailer/MailboxController.js
@@ -33,6 +33,7 @@
vm.moveSelectedMessages = moveSelectedMessages;
vm.markSelectedMessagesAsFlagged = markSelectedMessagesAsFlagged;
vm.markSelectedMessagesAsUnread = markSelectedMessagesAsUnread;
+ vm.markSelectedMessagesAsRead = markSelectedMessagesAsRead;
vm.selectAll = selectAll;
vm.unselectMessages = unselectMessages;
@@ -448,13 +449,28 @@
function markSelectedMessagesAsUnread() {
var selectedMessages = vm.selectedFolder.$selectedMessages();
- if (_.size(selectedMessages) > 0)
+ if (_.size(selectedMessages) > 0) {
vm.selectedFolder.$flagMessages(selectedMessages, 'seen', 'remove').then(function(messages) {
_.forEach(messages, function(message) {
+ if (message.isread)
+ message.$mailbox.unseenCount++;
message.isread = false;
- message.$mailbox.unseenCount++;
});
});
+ }
+ }
+
+ function markSelectedMessagesAsRead() {
+ var selectedMessages = vm.selectedFolder.$selectedMessages();
+ if (_.size(selectedMessages) > 0) {
+ vm.selectedFolder.$flagMessages(selectedMessages, 'seen', 'add').then(function(messages) {
+ _.forEach(messages, function(message) {
+ if (!message.isread)
+ message.$mailbox.unseenCount--;
+ message.isread = true;
+ });
+ });
+ }
}
}