fix(mail(js)): fix message(s) deletion when overquota
parent
200c353645
commit
35ebb7aaeb
|
@ -786,13 +786,14 @@
|
|||
var currentUids = uids.slice(start, end),
|
||||
currentMessages = messages.slice(start, end),
|
||||
data = { uids: currentUids };
|
||||
if (options) angular.extend(data, options);
|
||||
return Mailbox.$$resource.post(_this.id, 'batchDelete', data).then(function(data) {
|
||||
if (end < uids.length) {
|
||||
_this.$_deleteMessages(currentUids, currentMessages);
|
||||
return _deleteMessages(end, Math.min(end + batchSize, uids.length));
|
||||
}
|
||||
else {
|
||||
// Update inbox quota
|
||||
// Last API call; update inbox quota
|
||||
if (data.quotas)
|
||||
_this.$account.updateQuota(data.quotas);
|
||||
return _this.$_deleteMessages(currentUids, currentMessages);
|
||||
|
|
|
@ -124,6 +124,8 @@
|
|||
}
|
||||
|
||||
function _compactBeforeUnload(event) {
|
||||
if (Mailbox.$virtualMode)
|
||||
return true;
|
||||
return vm.selectedFolder.$compact();
|
||||
}
|
||||
|
||||
|
@ -421,7 +423,8 @@
|
|||
l('The messages could not be moved to the trash folder. Would you like to delete them immediately?'),
|
||||
{ ok: l('Delete') })
|
||||
.then(function() {
|
||||
vm.selectedFolder.$deleteMessages(selectedMessages, { withoutTrash: true }).then(function(index) {
|
||||
vm.selectedFolder.$deleteMessages(selectedMessages, { withoutTrash: true })
|
||||
.then(function(index) {
|
||||
if (Mailbox.$virtualMode) {
|
||||
// When performing an advanced search, we refresh the view if the selected message
|
||||
// was deleted, but only once all promises have completed.
|
||||
|
@ -432,6 +435,9 @@
|
|||
// In normal mode, we immediately unselect the selected message.
|
||||
_unselectMessage(deleteSelectedMessage, index);
|
||||
}
|
||||
})
|
||||
.finally(function() {
|
||||
vm.messageDialog = null;
|
||||
});
|
||||
});
|
||||
});
|
||||
|
|
|
@ -53,7 +53,11 @@
|
|||
key: hotkey,
|
||||
description: l('Delete selected message or folder'),
|
||||
callback: function() {
|
||||
if (Mailbox.selectedFolderController && Mailbox.selectedFolder && Mailbox.selectedFolder.$isEditable && !Mailbox.selectedFolder.hasSelectedMessage())
|
||||
if (Mailbox.selectedFolderController &&
|
||||
Mailbox.selectedFolder &&
|
||||
Mailbox.selectedFolder.$isEditable &&
|
||||
!Mailbox.selectedFolder.hasSelectedMessage() &&
|
||||
Mailbox.selectedFolder.$selectedCount() === 0)
|
||||
Mailbox.selectedFolderController.confirmDelete(Mailbox.selectedFolder);
|
||||
}
|
||||
}));
|
||||
|
|
|
@ -331,7 +331,7 @@
|
|||
mailbox = Mailbox.selectedFolder; // the VirtualMailbox instance
|
||||
}
|
||||
|
||||
mailbox.$deleteMessages([message]).then(function(index) {
|
||||
function _success(index) {
|
||||
var nextIndex = index;
|
||||
// Remove message object from scope
|
||||
message = null;
|
||||
|
@ -378,6 +378,24 @@
|
|||
catch (error) {}
|
||||
}
|
||||
vm.closePopup();
|
||||
}
|
||||
|
||||
mailbox.$deleteMessages([message]).then(_success, function(response) {
|
||||
_messageDialog(
|
||||
Dialog.confirm(l('Warning'),
|
||||
l('The message could not be moved to the trash folder. Would you like to delete it immediately?'),
|
||||
{ ok: l('Delete') })
|
||||
.then(function() {
|
||||
mailbox.$deleteMessages([message], { withoutTrash: true })
|
||||
.then(_success)
|
||||
.finally(function() {
|
||||
_messageDialog(null);
|
||||
});
|
||||
})
|
||||
.finally(function() {
|
||||
_messageDialog(null);
|
||||
})
|
||||
);
|
||||
});
|
||||
};
|
||||
|
||||
|
|
Loading…
Reference in New Issue