(js) Mark multiple messages as seen

Fixes #3873
pull/225/head
Francis Lachapelle 2016-11-07 12:14:00 -05:00
parent 836e2ee275
commit 4a6e53934b
5 changed files with 27 additions and 4 deletions

1
NEWS
View File

@ -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

View File

@ -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";

View File

@ -186,6 +186,11 @@
<var:string label:value="Mark as Unread"/>
</md-button>
</md-menu-item>
<md-menu-item>
<md-button ng-click="mailbox.markSelectedMessagesAsRead()">
<var:string label:value="Mark as Read"/>
</md-button>
</md-menu-item>
<md-menu-item>
<md-button ng-click="mailbox.selectedFolder.saveSelectedMessages()">
<var:string label:value="Save As..."/>

View File

@ -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);

View File

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