(feat) added Junk handling feature from v2
parent
ace7e0771f
commit
ee3276f01d
2
NEWS
2
NEWS
|
@ -2,7 +2,7 @@
|
|||
------------------
|
||||
|
||||
Enhancements
|
||||
-
|
||||
- [web] added Junk handling feature from v2
|
||||
|
||||
Bug fixes
|
||||
- [web] handle birthday dates before 1970
|
||||
|
|
|
@ -857,7 +857,9 @@ _compareFetchResultsByMODSEQ (id entry1, id entry2, void *data)
|
|||
body = [[[NGMimeMultipartBody alloc] initWithPart: messageToSend] autorelease];
|
||||
}
|
||||
|
||||
mailObject = [self lookupName: [uids objectAtIndex: i] inContext: context acquire: NO];
|
||||
mailObject = [self lookupName: [NSString stringWithFormat: @"%@", [uids objectAtIndex: i]]
|
||||
inContext: context
|
||||
acquire: NO];
|
||||
|
||||
// We skip emails that might have disappeared before we were able
|
||||
// to perform the action
|
||||
|
|
|
@ -276,6 +276,10 @@
|
|||
"Set as Drafts" = "Set as Drafts";
|
||||
"Set as Sent" = "Set as Sent";
|
||||
"Set as Trash" = "Set as Trash";
|
||||
|
||||
/* Set the folder as the one holding Junk mails */
|
||||
"Set as Junk" = "Set as Junk";
|
||||
|
||||
"Sort" = "Sort";
|
||||
"Descending Order" = "Descending Order";
|
||||
"Back" = "Back";
|
||||
|
|
|
@ -155,6 +155,10 @@
|
|||
<md-button class="sg-icon-button" ng-click="mailbox.confirmDeleteSelectedMessages()">
|
||||
<md-icon>delete</md-icon>
|
||||
</md-button>
|
||||
<md-button class="sg-icon-button" ng-click="mailbox.markOrUnMarkMessagesAsJunk()">
|
||||
<md-icon ng-hide="mailbox.service.selectedFolder.type == 'junk'">thumb_down</md-icon>
|
||||
<md-icon ng-hide="mailbox.service.selectedFolder.type != 'junk'">thumb_up</md-icon>
|
||||
</md-button>
|
||||
<md-menu>
|
||||
<md-button class="sg-icon-button" label:aria-label="More messages options" ng-click="$mdOpenMenu()">
|
||||
<md-icon>more_vert</md-icon>
|
||||
|
|
|
@ -172,6 +172,11 @@
|
|||
<var:string label:value="Set as Trash"/>
|
||||
</md-button>
|
||||
</md-menu-item>
|
||||
<md-menu-item ng-show="folder.type == 'folder'">
|
||||
<md-button type="button" ng-click="app.setFolderAs(folder, 'Junk')">
|
||||
<var:string label:value="Set as Junk"/>
|
||||
</md-button>
|
||||
</md-menu-item>
|
||||
<md-menu-divider ng-show="folder.type != 'additional'"><!-- divider --></md-menu-divider>
|
||||
<md-menu-item ng-show="folder.type != 'additional'">
|
||||
<md-button type="button" ng-click="app.share(folder)">
|
||||
|
|
|
@ -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'};
|
||||
|
||||
|
|
Loading…
Reference in New Issue