(feat) added Junk handling feature from v2

This commit is contained in:
Ludovic Marcotte
2016-02-08 15:36:01 -05:00
parent ace7e0771f
commit ee3276f01d
9 changed files with 58 additions and 5 deletions
@@ -195,8 +195,7 @@
};
mailbox = _find(this.$mailboxes);
console.debug(mailbox);
console.debug(this.specialMailboxes);
return mailbox;
};
/**
@@ -576,6 +576,20 @@
});
};
/**
* @function $markOrUnMarkMessagesAsJunk
* @memberof Mailbox.prototype
* @desc Mark messages as junk/not junk
* @return a promise of the HTTP operation
*/
Mailbox.prototype.$markOrUnMarkMessagesAsJunk = function(messages) {
var _this = this, uids;
var method = (this.type == 'junk' ? 'markMessagesAsNotJunk' : 'markMessagesAsJunk');
uids = _.pluck(messages, 'uid');
return Mailbox.$$resource.post(this.id, method, {uids: uids});
};
/**
* @function $copyMessages
* @memberof Mailbox.prototype
@@ -23,6 +23,7 @@
vm.toggleMessageSelection = toggleMessageSelection;
vm.unselectMessages = unselectMessages;
vm.confirmDeleteSelectedMessages = confirmDeleteSelectedMessages;
vm.markOrUnMarkMessagesAsJunk = markOrUnMarkMessagesAsJunk;
vm.copySelectedMessages = copySelectedMessages;
vm.moveSelectedMessages = moveSelectedMessages;
vm.saveSelectedMessages = saveSelectedMessages;
@@ -69,6 +70,28 @@
});
}
function markOrUnMarkMessagesAsJunk() {
var moveSelectedMessage = false;
var selectedMessages = _.filter(vm.selectedFolder.$messages, function(message) {
if (message.selected &&
message.uid == vm.selectedFolder.selectedMessage)
moveSelectedMessage = true;
return message.selected;
});
vm.selectedFolder.$markOrUnMarkMessagesAsJunk(selectedMessages).then(function() {
var folder = '/' + vm.account.id + '/folderINBOX';
if (vm.selectedFolder.type != 'junk') {
folder = '/' + vm.account.$getMailboxByType('junk').id;
}
vm.selectedFolder.$moveMessages(selectedMessages, folder).then(function(index) {
unselectMessage(moveSelectedMessage, index);
});
});
}
function unselectMessage(message, index) {
// Unselect current message and cleverly load the next message
var nextMessage, previousMessage, nextIndex = index;
@@ -301,6 +301,8 @@
return {name: l('SentFolderName'), icon: 'send'};
else if (folder.type == 'trash')
return {name: l('TrashFolderName'), icon: 'delete'};
else if (folder.type == 'junk')
return {name: l('JunkFolderName'), icon: 'thumb_down'};
else if (folder.type == 'additional')
return {name: folder.name, icon: 'folder_shared'};