(feat) can now copy mails

This commit is contained in:
Ludovic Marcotte
2015-06-30 17:13:55 -04:00
parent 06cb06fce6
commit f449f0456b
4 changed files with 123 additions and 55 deletions
@@ -132,7 +132,7 @@
path.splice(0, 0, accountId); // insert account ID
return path.join('/');
return '/' + path.join('/');
};
/**
@@ -370,6 +370,28 @@
return Mailbox.$$resource.post(this.id, 'batchDelete', {uids: uids});
};
/**
* @function $copyMessages
* @memberof Mailbox.prototype
* @desc Copy multiple messages from the current mailbox to a target one
* @return a promise of the HTTP operation
*/
Mailbox.prototype.$copyMessages = function(uids, folder) {
var _this = this;
return Mailbox.$$resource.post(this.id, 'copyMessages', {uids: uids, folder: folder});
};
/**
* @function $moveMessages
* @memberof Mailbox.prototype
* @desc Move multiple messages from the current mailbox to a target one
* @return a promise of the HTTP operation
*/
Mailbox.prototype.$moveMessages = function(uids, folder) {
var _this = this;
return Mailbox.$$resource.post(this.id, 'moveMessages', {uids: uids, folder: folder});
};
/**
* @function $reset
* @memberof Mailbox.prototype
@@ -176,6 +176,26 @@
// Delete failed
});
};
$scope.copySelectedMessages = function(folder) {
var selectedMessages = _.filter($rootScope.mailbox.$messages, function(message) { return message.selected });
var selectedUIDs = _.pluck(selectedMessages, 'uid');
$rootScope.mailbox.$copyMessages(selectedUIDs, folder).then(function() {
// TODO: refresh target mailbox?
}, function(error) {
Dialog.alert(l('Error'), error.error);
});
};
// $scope.moveSelectedMessages = function(folder) {
// var selectedMessages = _.filter($rootScope.mailbox.$messages, function(message) { return message.selected });
// var selectedUIDs = _.pluck(selectedMessages, 'uid');
// $rootScope.mailbox.$moveMessages(selectedUIDs, folder).then(function() {
// // TODO: refresh target mailbox?
// $rootScope.mailbox.$messages = _.difference($rootScope.mailbox.$messages, selectedMessages);
// });
// };
if ($state.current.name == 'mail' && $scope.accounts.length > 0 && $scope.accounts[0].$mailboxes.length > 0) {
// Redirect to first mailbox of first account if no mailbox is selected
var account = $scope.accounts[0];