(feat) flag selected messages and mark selected messages as unread

This commit is contained in:
Ludovic Marcotte
2015-08-10 13:10:45 -04:00
parent c738a2dc70
commit 420dece1e7
3 changed files with 43 additions and 2 deletions

View File

@@ -472,12 +472,12 @@
</md-button>
<md-menu-content width="2">
<md-menu-item>
<md-button>
<md-button ng-click="mailbox.markSelectedMessagesAsFlagged()">
<var:string label:value="Flag"/>
</md-button>
</md-menu-item>
<md-menu-item>
<md-button>
<md-button ng-click="mailbox.markSelectedMessagesAsUnread()">
<var:string label:value="Mark as Unread"/>
</md-button>
</md-menu-item>

View File

@@ -426,6 +426,20 @@
return Mailbox.$$resource.post(this.id, 'markRead');
};
/**
* @function $flagMessages
* @memberof Mailbox.prototype
* @desc Add or remove a flag on a message set
* @returns a promise of the HTTP operation
*/
Mailbox.prototype.$flagMessages = function(uids, flags, operation) {
var data = {msgUIDs: uids,
flags: flags,
operation: operation};
return Mailbox.$$resource.post(this.id, 'addOrRemoveLabel', data);
};
/**
* @function $delete
* @memberof Mailbox.prototype

View File

@@ -22,6 +22,8 @@
vm.copySelectedMessages = copySelectedMessages;
// vm.moveSelectedMessages = moveSelectedMessages;
vm.saveSelectedMessages = saveSelectedMessages;
vm.markSelectedMessagesAsFlagged = markSelectedMessagesAsFlagged;
vm.markSelectedMessagesAsUnread = markSelectedMessagesAsUnread;
vm.selectAll = selectAll;
vm.sort = sort;
vm.sortedBy = sortedBy;
@@ -83,6 +85,31 @@
});
}
function markSelectedMessagesAsFlagged() {
var selectedMessages = _.filter(vm.selectedFolder.$messages, function(message) { return message.selected; });
var selectedUIDs = _.pluck(selectedMessages, 'uid');
vm.selectedFolder.$flagMessages(selectedUIDs, '\\Flagged', 'add').then(function(d) {
// Success
_.forEach(selectedMessages, function(message) {
message.isflagged = true;
});
});
}
function markSelectedMessagesAsUnread() {
var selectedMessages = _.filter(vm.selectedFolder.$messages, function(message) { return message.selected; });
var selectedUIDs = _.pluck(selectedMessages, 'uid');
vm.selectedFolder.$flagMessages(selectedUIDs, 'seen', 'remove').then(function(d) {
// Success
_.forEach(selectedMessages, function(message) {
message.isread = false;
vm.selectedFolder.unseenCount++;
});
});
}
function sort(field) {
vm.selectedFolder.$filter({ sort: field });
}