mirror of
https://github.com/inverse-inc/sogo.git
synced 2026-08-28 17:57:38 +00:00
fix(mail(js)): fix message(s) deletion when overquota
This commit is contained in:
@@ -786,13 +786,14 @@
|
|||||||
var currentUids = uids.slice(start, end),
|
var currentUids = uids.slice(start, end),
|
||||||
currentMessages = messages.slice(start, end),
|
currentMessages = messages.slice(start, end),
|
||||||
data = { uids: currentUids };
|
data = { uids: currentUids };
|
||||||
|
if (options) angular.extend(data, options);
|
||||||
return Mailbox.$$resource.post(_this.id, 'batchDelete', data).then(function(data) {
|
return Mailbox.$$resource.post(_this.id, 'batchDelete', data).then(function(data) {
|
||||||
if (end < uids.length) {
|
if (end < uids.length) {
|
||||||
_this.$_deleteMessages(currentUids, currentMessages);
|
_this.$_deleteMessages(currentUids, currentMessages);
|
||||||
return _deleteMessages(end, Math.min(end + batchSize, uids.length));
|
return _deleteMessages(end, Math.min(end + batchSize, uids.length));
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
// Update inbox quota
|
// Last API call; update inbox quota
|
||||||
if (data.quotas)
|
if (data.quotas)
|
||||||
_this.$account.updateQuota(data.quotas);
|
_this.$account.updateQuota(data.quotas);
|
||||||
return _this.$_deleteMessages(currentUids, currentMessages);
|
return _this.$_deleteMessages(currentUids, currentMessages);
|
||||||
|
|||||||
@@ -124,6 +124,8 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
function _compactBeforeUnload(event) {
|
function _compactBeforeUnload(event) {
|
||||||
|
if (Mailbox.$virtualMode)
|
||||||
|
return true;
|
||||||
return vm.selectedFolder.$compact();
|
return vm.selectedFolder.$compact();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -401,8 +403,8 @@
|
|||||||
|
|
||||||
if (vm.messageDialog === null && _.size(selectedMessages) > 0)
|
if (vm.messageDialog === null && _.size(selectedMessages) > 0)
|
||||||
vm.messageDialog = Dialog.confirm(l('Confirmation'),
|
vm.messageDialog = Dialog.confirm(l('Confirmation'),
|
||||||
l('Are you sure you want to delete the selected messages?'),
|
l('Are you sure you want to delete the selected messages?'),
|
||||||
{ ok: l('Delete') })
|
{ ok: l('Delete') })
|
||||||
.then(function() {
|
.then(function() {
|
||||||
var deleteSelectedMessage = vm.selectedFolder.hasSelectedMessage();
|
var deleteSelectedMessage = vm.selectedFolder.hasSelectedMessage();
|
||||||
vm.selectedFolder.$deleteMessages(selectedMessages).then(function(index) {
|
vm.selectedFolder.$deleteMessages(selectedMessages).then(function(index) {
|
||||||
@@ -421,18 +423,22 @@
|
|||||||
l('The messages could not be moved to the trash folder. Would you like to delete them immediately?'),
|
l('The messages could not be moved to the trash folder. Would you like to delete them immediately?'),
|
||||||
{ ok: l('Delete') })
|
{ ok: l('Delete') })
|
||||||
.then(function() {
|
.then(function() {
|
||||||
vm.selectedFolder.$deleteMessages(selectedMessages, { withoutTrash: true }).then(function(index) {
|
vm.selectedFolder.$deleteMessages(selectedMessages, { withoutTrash: true })
|
||||||
if (Mailbox.$virtualMode) {
|
.then(function(index) {
|
||||||
// When performing an advanced search, we refresh the view if the selected message
|
if (Mailbox.$virtualMode) {
|
||||||
// was deleted, but only once all promises have completed.
|
// When performing an advanced search, we refresh the view if the selected message
|
||||||
if (deleteSelectedMessage)
|
// was deleted, but only once all promises have completed.
|
||||||
$state.go('mail.account.virtualMailbox');
|
if (deleteSelectedMessage)
|
||||||
}
|
$state.go('mail.account.virtualMailbox');
|
||||||
else {
|
}
|
||||||
// In normal mode, we immediately unselect the selected message.
|
else {
|
||||||
_unselectMessage(deleteSelectedMessage, index);
|
// In normal mode, we immediately unselect the selected message.
|
||||||
}
|
_unselectMessage(deleteSelectedMessage, index);
|
||||||
});
|
}
|
||||||
|
})
|
||||||
|
.finally(function() {
|
||||||
|
vm.messageDialog = null;
|
||||||
|
});
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
})
|
})
|
||||||
|
|||||||
@@ -53,7 +53,11 @@
|
|||||||
key: hotkey,
|
key: hotkey,
|
||||||
description: l('Delete selected message or folder'),
|
description: l('Delete selected message or folder'),
|
||||||
callback: function() {
|
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);
|
Mailbox.selectedFolderController.confirmDelete(Mailbox.selectedFolder);
|
||||||
}
|
}
|
||||||
}));
|
}));
|
||||||
|
|||||||
@@ -331,7 +331,7 @@
|
|||||||
mailbox = Mailbox.selectedFolder; // the VirtualMailbox instance
|
mailbox = Mailbox.selectedFolder; // the VirtualMailbox instance
|
||||||
}
|
}
|
||||||
|
|
||||||
mailbox.$deleteMessages([message]).then(function(index) {
|
function _success(index) {
|
||||||
var nextIndex = index;
|
var nextIndex = index;
|
||||||
// Remove message object from scope
|
// Remove message object from scope
|
||||||
message = null;
|
message = null;
|
||||||
@@ -378,6 +378,24 @@
|
|||||||
catch (error) {}
|
catch (error) {}
|
||||||
}
|
}
|
||||||
vm.closePopup();
|
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);
|
||||||
|
})
|
||||||
|
);
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user