mirror of
https://github.com/inverse-inc/sogo.git
synced 2026-04-03 20:38:50 +00:00
(feat) flag selected messages and mark selected messages as unread
This commit is contained in:
@@ -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>
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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 });
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user