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; + }); + }); + } } }