mirror of
https://github.com/the-djmaze/snappymail.git
synced 2026-07-13 03:27:39 +03:00
Changes for "Request failed" error #1220
This commit is contained in:
parent
4c5f19579c
commit
4e04461f80
7 changed files with 104 additions and 156 deletions
|
|
@ -61,9 +61,7 @@ import { AskPopupView } from 'View/Popup/Ask';
|
||||||
import {
|
import {
|
||||||
folderInformation,
|
folderInformation,
|
||||||
folderInformationMultiply,
|
folderInformationMultiply,
|
||||||
setRefreshFoldersInterval,
|
setRefreshFoldersInterval
|
||||||
messagesMoveHelper,
|
|
||||||
messagesDeleteHelper
|
|
||||||
} from 'Common/Folders';
|
} from 'Common/Folders';
|
||||||
import { loadFolders } from 'Model/FolderCollection';
|
import { loadFolders } from 'Model/FolderCollection';
|
||||||
|
|
||||||
|
|
@ -133,13 +131,11 @@ export class AppUser extends AbstractApp {
|
||||||
showScreenPopup(AskPopupView, [
|
showScreenPopup(AskPopupView, [
|
||||||
i18n('POPUPS_ASK/DESC_WANT_DELETE_MESSAGES'),
|
i18n('POPUPS_ASK/DESC_WANT_DELETE_MESSAGES'),
|
||||||
() => {
|
() => {
|
||||||
messagesDeleteHelper(sFromFolderFullName, oUids);
|
MessagelistUserStore.moveMessages(sFromFolderFullName, oUids);
|
||||||
MessagelistUserStore.removeMessagesFromList(sFromFolderFullName, oUids);
|
|
||||||
}
|
}
|
||||||
]);
|
]);
|
||||||
} else if (oMoveFolder) {
|
} else if (oMoveFolder) {
|
||||||
messagesMoveHelper(sFromFolderFullName, oMoveFolder.fullName, oUids);
|
MessagelistUserStore.moveMessages(sFromFolderFullName, oUids, oMoveFolder.fullName);
|
||||||
MessagelistUserStore.removeMessagesFromList(sFromFolderFullName, oUids, oMoveFolder.fullName);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,13 +1,11 @@
|
||||||
import { isArray, arrayLength } from 'Common/Utils';
|
import { isArray, arrayLength } from 'Common/Utils';
|
||||||
import {
|
import {
|
||||||
setFolderETag,
|
|
||||||
getFolderInboxName,
|
getFolderInboxName,
|
||||||
getFolderFromCacheList
|
getFolderFromCacheList
|
||||||
} from 'Common/Cache';
|
} from 'Common/Cache';
|
||||||
import { SettingsUserStore } from 'Stores/User/Settings';
|
import { SettingsUserStore } from 'Stores/User/Settings';
|
||||||
import { FolderUserStore } from 'Stores/User/Folder';
|
import { FolderUserStore } from 'Stores/User/Folder';
|
||||||
import { MessagelistUserStore } from 'Stores/User/Messagelist';
|
import { MessagelistUserStore } from 'Stores/User/Messagelist';
|
||||||
import { getNotification } from 'Common/Translator';
|
|
||||||
|
|
||||||
import Remote from 'Remote/User/Fetch';
|
import Remote from 'Remote/User/Fetch';
|
||||||
|
|
||||||
|
|
@ -197,76 +195,6 @@ folderInformationMultiply = (boot = false) => {
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
moveOrDeleteResponseHelper = (iError, oData) => {
|
|
||||||
if (iError) {
|
|
||||||
setFolderETag(FolderUserStore.currentFolderFullName(), '');
|
|
||||||
alert(getNotification(iError));
|
|
||||||
} else if (FolderUserStore.currentFolder()) {
|
|
||||||
if (2 === arrayLength(oData.Result)) {
|
|
||||||
setFolderETag(oData.Result[0], oData.Result[1]);
|
|
||||||
} else {
|
|
||||||
setFolderETag(FolderUserStore.currentFolderFullName(), '');
|
|
||||||
}
|
|
||||||
MessagelistUserStore.reload(!MessagelistUserStore.length);
|
|
||||||
}
|
|
||||||
},
|
|
||||||
|
|
||||||
messagesMoveHelper = (fromFolderFullName, toFolderFullName, uidsForMove) => {
|
|
||||||
const
|
|
||||||
sSpamFolder = FolderUserStore.spamFolder(),
|
|
||||||
isSpam = sSpamFolder === toFolderFullName,
|
|
||||||
isHam = !isSpam && sSpamFolder === fromFolderFullName && getFolderInboxName() === toFolderFullName;
|
|
||||||
|
|
||||||
Remote.abort('MessageList', 'reload').request('MessageMove',
|
|
||||||
moveOrDeleteResponseHelper,
|
|
||||||
{
|
|
||||||
fromFolder: fromFolderFullName,
|
|
||||||
toFolder: toFolderFullName,
|
|
||||||
uids: [...uidsForMove].join(','),
|
|
||||||
markAsRead: (isSpam || FolderUserStore.trashFolder() === toFolderFullName) ? 1 : 0,
|
|
||||||
learning: isSpam ? 'SPAM' : isHam ? 'HAM' : ''
|
|
||||||
}
|
|
||||||
);
|
|
||||||
},
|
|
||||||
|
|
||||||
messagesDeleteHelper = (sFromFolderFullName, aUidForRemove) => {
|
|
||||||
Remote.abort('MessageList', 'reload').request('MessageDelete',
|
|
||||||
moveOrDeleteResponseHelper,
|
|
||||||
{
|
|
||||||
folder: sFromFolderFullName,
|
|
||||||
uids: [...aUidForRemove].join(',')
|
|
||||||
}
|
|
||||||
);
|
|
||||||
},
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @param {string} sFromFolderFullName
|
|
||||||
* @param {Set} oUids
|
|
||||||
* @param {string} sToFolderFullName
|
|
||||||
* @param {boolean=} bCopy = false
|
|
||||||
*/
|
|
||||||
moveMessagesToFolder = (sFromFolderFullName, oUids, sToFolderFullName, bCopy) => {
|
|
||||||
if (sFromFolderFullName !== sToFolderFullName && oUids?.size) {
|
|
||||||
const oFromFolder = getFolderFromCacheList(sFromFolderFullName),
|
|
||||||
oToFolder = getFolderFromCacheList(sToFolderFullName);
|
|
||||||
|
|
||||||
if (oFromFolder && oToFolder) {
|
|
||||||
bCopy
|
|
||||||
? Remote.request('MessageCopy', null, {
|
|
||||||
fromFolder: oFromFolder.fullName,
|
|
||||||
toFolder: oToFolder.fullName,
|
|
||||||
uids: [...oUids].join(',')
|
|
||||||
})
|
|
||||||
: messagesMoveHelper(oFromFolder.fullName, oToFolder.fullName, oUids);
|
|
||||||
|
|
||||||
MessagelistUserStore.removeMessagesFromList(oFromFolder.fullName, oUids, oToFolder.fullName, bCopy);
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return false;
|
|
||||||
},
|
|
||||||
|
|
||||||
dropFilesInFolder = (sFolderFullName, files) => {
|
dropFilesInFolder = (sFolderFullName, files) => {
|
||||||
let count = files.length;
|
let count = files.length;
|
||||||
for (const file of files) {
|
for (const file of files) {
|
||||||
|
|
|
||||||
|
|
@ -65,8 +65,8 @@ export class Selector {
|
||||||
this.listChecked.subscribe(items => {
|
this.listChecked.subscribe(items => {
|
||||||
if (items.length) {
|
if (items.length) {
|
||||||
koSelectedItem() ? koSelectedItem(null) : koSelectedItem.valueHasMutated?.();
|
koSelectedItem() ? koSelectedItem(null) : koSelectedItem.valueHasMutated?.();
|
||||||
} else if (this.autoSelect()) {
|
} else {
|
||||||
koSelectedItem(koFocusedItem());
|
this.autoSelect();
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
@ -174,9 +174,7 @@ export class Selector {
|
||||||
this.iFocusedNextHelper = 0;
|
this.iFocusedNextHelper = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (this.autoSelect() && !isChecked && !koSelectedItem()) {
|
!isChecked && !koSelectedItem() && this.autoSelect();
|
||||||
koSelectedItem(koFocusedItem());
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
aCheckedCache = [];
|
aCheckedCache = [];
|
||||||
|
|
@ -250,8 +248,10 @@ export class Selector {
|
||||||
/**
|
/**
|
||||||
* @returns {boolean}
|
* @returns {boolean}
|
||||||
*/
|
*/
|
||||||
autoSelect() {
|
autoSelect(bForce) {
|
||||||
return (this.oCallbacks.AutoSelect || (()=>1))() && this.focusedItem();
|
(bForce || (this.oCallbacks.AutoSelect || (()=>1))())
|
||||||
|
&& this.focusedItem()
|
||||||
|
&& this.selectedItem(this.focusedItem());
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
@ -327,9 +327,7 @@ export class Selector {
|
||||||
|
|
||||||
if (result) {
|
if (result) {
|
||||||
this.focusedItem(result);
|
this.focusedItem(result);
|
||||||
if ((this.autoSelect() || bForceSelect) && !this.list.hasChecked()) {
|
!this.list.hasChecked() && this.autoSelect(bForceSelect);
|
||||||
this.selectedItem(result);
|
|
||||||
}
|
|
||||||
this.scrollToFocused();
|
this.scrollToFocused();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
6
dev/External/User/ko.js
vendored
6
dev/External/User/ko.js
vendored
|
|
@ -6,7 +6,7 @@ import { doc, elementById, addEventsListeners, dropdowns, leftPanelDisabled } fr
|
||||||
import { dropdownsDetectVisibility } from 'Common/UtilsUser';
|
import { dropdownsDetectVisibility } from 'Common/UtilsUser';
|
||||||
import { EmailAddressesComponent } from 'Component/EmailAddresses';
|
import { EmailAddressesComponent } from 'Component/EmailAddresses';
|
||||||
import { ThemeStore } from 'Stores/Theme';
|
import { ThemeStore } from 'Stores/Theme';
|
||||||
import { moveMessagesToFolder, dropFilesInFolder } from 'Common/Folders';
|
import { dropFilesInFolder } from 'Common/Folders';
|
||||||
import { setExpandedFolder } from 'Model/FolderCollection';
|
import { setExpandedFolder } from 'Model/FolderCollection';
|
||||||
import { FolderUserStore } from 'Stores/User/Folder';
|
import { FolderUserStore } from 'Stores/User/Folder';
|
||||||
import { MessagelistUserStore } from 'Stores/User/Messagelist';
|
import { MessagelistUserStore } from 'Stores/User/Messagelist';
|
||||||
|
|
@ -63,7 +63,9 @@ const rlContentType = 'snappymail/action',
|
||||||
dragDrop = (e, element, folder, dragData) => {
|
dragDrop = (e, element, folder, dragData) => {
|
||||||
dragStop(e, element);
|
dragStop(e, element);
|
||||||
if (dragMessages() && 'copyMove' == e.dataTransfer.effectAllowed) {
|
if (dragMessages() && 'copyMove' == e.dataTransfer.effectAllowed) {
|
||||||
moveMessagesToFolder(FolderUserStore.currentFolderFullName(), dragData.data, folder.fullName, e.ctrlKey);
|
MessagelistUserStore.moveMessages(
|
||||||
|
FolderUserStore.currentFolderFullName(), dragData.data, folder.fullName, e.ctrlKey
|
||||||
|
);
|
||||||
} else if (e.dataTransfer.types.includes('Files')) {
|
} else if (e.dataTransfer.types.includes('Files')) {
|
||||||
dropFilesInFolder(folder.fullName, e.dataTransfer.files);
|
dropFilesInFolder(folder.fullName, e.dataTransfer.files);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -166,9 +166,9 @@ MessagelistUserStore.notifyNewMessages = (folder, newMessages) => {
|
||||||
}
|
}
|
||||||
|
|
||||||
MessagelistUserStore.canAutoSelect = () =>
|
MessagelistUserStore.canAutoSelect = () =>
|
||||||
!/is:unseen/.test(MessagelistUserStore.mainSearch())
|
!disableAutoSelect()
|
||||||
&& !disableAutoSelect()
|
|
||||||
&& SettingsUserStore.usePreviewPane();
|
&& SettingsUserStore.usePreviewPane();
|
||||||
|
// && !SettingsUserStore.showNextMessage();
|
||||||
|
|
||||||
let prevFolderName;
|
let prevFolderName;
|
||||||
|
|
||||||
|
|
@ -399,53 +399,92 @@ MessagelistUserStore.setAction = (sFolderFullName, iSetAction, messages) => {
|
||||||
* @param {string=} toFolderFullName = ''
|
* @param {string=} toFolderFullName = ''
|
||||||
* @param {boolean=} copy = false
|
* @param {boolean=} copy = false
|
||||||
*/
|
*/
|
||||||
MessagelistUserStore.removeMessagesFromList = (
|
MessagelistUserStore.moveMessages = (
|
||||||
fromFolderFullName, oUids, toFolderFullName = '', copy = false
|
fromFolderFullName, oUids, toFolderFullName = '', copy = false
|
||||||
) => {
|
) => {
|
||||||
|
const fromFolder = getFolderFromCacheList(fromFolderFullName);
|
||||||
|
|
||||||
|
if (!fromFolder || !oUids?.size) return;
|
||||||
|
|
||||||
let unseenCount = 0,
|
let unseenCount = 0,
|
||||||
setPage = 0,
|
setPage = 0,
|
||||||
currentMessage = MessageUserStore.message();
|
currentMessage = MessageUserStore.message();
|
||||||
|
|
||||||
const trashFolder = FolderUserStore.trashFolder(),
|
const toFolder = toFolderFullName ? getFolderFromCacheList(toFolderFullName) : null,
|
||||||
|
trashFolder = FolderUserStore.trashFolder(),
|
||||||
spamFolder = FolderUserStore.spamFolder(),
|
spamFolder = FolderUserStore.spamFolder(),
|
||||||
fromFolder = getFolderFromCacheList(fromFolderFullName),
|
page = MessagelistUserStore.page(),
|
||||||
toFolder = toFolderFullName ? getFolderFromCacheList(toFolderFullName) : null,
|
|
||||||
messages =
|
messages =
|
||||||
FolderUserStore.currentFolderFullName() === fromFolderFullName
|
FolderUserStore.currentFolderFullName() === fromFolderFullName
|
||||||
? MessagelistUserStore.filter(item => item && oUids.has(item.uid))
|
? MessagelistUserStore.filter(item => item && oUids.has(item.uid))
|
||||||
: [];
|
: [],
|
||||||
|
moveOrDeleteResponseHelper = (iError, oData) => {
|
||||||
|
if (iError) {
|
||||||
|
setFolderETag(FolderUserStore.currentFolderFullName(), '');
|
||||||
|
alert(getNotification(iError));
|
||||||
|
} else if (FolderUserStore.currentFolder()) {
|
||||||
|
if (2 === arrayLength(oData.Result)) {
|
||||||
|
setFolderETag(oData.Result[0], oData.Result[1]);
|
||||||
|
} else {
|
||||||
|
setFolderETag(FolderUserStore.currentFolderFullName(), '');
|
||||||
|
}
|
||||||
|
|
||||||
|
MessagelistUserStore.count(MessagelistUserStore.count() - oUids.size);
|
||||||
|
if (page > MessagelistUserStore.pageCount()) {
|
||||||
|
setPage = MessagelistUserStore.pageCount();
|
||||||
|
}
|
||||||
|
if (MessagelistUserStore.threadUid()
|
||||||
|
&& MessagelistUserStore.length
|
||||||
|
&& MessagelistUserStore.find(item => item?.deleted() && item.uid == MessagelistUserStore.threadUid())
|
||||||
|
) {
|
||||||
|
const message = MessagelistUserStore.find(item => item && !item.deleted());
|
||||||
|
if (!message) {
|
||||||
|
if (1 < page) {
|
||||||
|
setPage = page - 1;
|
||||||
|
} else {
|
||||||
|
MessagelistUserStore.threadUid(0);
|
||||||
|
setPage = MessagelistUserStore.pageBeforeThread();
|
||||||
|
}
|
||||||
|
} else if (MessagelistUserStore.threadUid() != message.uid) {
|
||||||
|
MessagelistUserStore.threadUid(message.uid);
|
||||||
|
setPage = page;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (setPage) {
|
||||||
|
MessagelistUserStore.page(setPage);
|
||||||
|
replaceHash(
|
||||||
|
mailBox(
|
||||||
|
FolderUserStore.currentFolderFullNameHash(),
|
||||||
|
setPage,
|
||||||
|
MessagelistUserStore.listSearch(),
|
||||||
|
MessagelistUserStore.threadUid()
|
||||||
|
)
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
MessagelistUserStore.reload(!MessagelistUserStore.count());
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
messages.forEach(item => item?.isUnseen() && ++unseenCount);
|
messages.forEach(item => item?.isUnseen() && ++unseenCount);
|
||||||
|
|
||||||
if (fromFolder) {
|
if (!copy) {
|
||||||
fromFolder.etag = '';
|
fromFolder.etag = '';
|
||||||
if (!copy) {
|
fromFolder.totalEmails(Math.max(0, fromFolder.totalEmails() - oUids.size));
|
||||||
fromFolder.totalEmails(
|
fromFolder.unreadEmails(Math.max(0, fromFolder.unreadEmails() - unseenCount));
|
||||||
0 <= fromFolder.totalEmails() - oUids.size ? fromFolder.totalEmails() - oUids.size : 0
|
|
||||||
);
|
|
||||||
|
|
||||||
if (0 < unseenCount) {
|
|
||||||
fromFolder.unreadEmails(Math.max(0, fromFolder.unreadEmails() - unseenCount));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (toFolder) {
|
if (toFolder) {
|
||||||
toFolder.etag = '';
|
toFolder.etag = '';
|
||||||
|
|
||||||
if (trashFolder === toFolder.fullName || spamFolder === toFolder.fullName) {
|
|
||||||
unseenCount = 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
toFolder.totalEmails(toFolder.totalEmails() + oUids.size);
|
toFolder.totalEmails(toFolder.totalEmails() + oUids.size);
|
||||||
if (0 < unseenCount) {
|
if (trashFolder !== toFolder.fullName && spamFolder !== toFolder.fullName) {
|
||||||
toFolder.unreadEmails(toFolder.unreadEmails() + unseenCount);
|
toFolder.unreadEmails(toFolder.unreadEmails() + unseenCount);
|
||||||
}
|
}
|
||||||
|
|
||||||
toFolder.actionBlink(true);
|
toFolder.actionBlink(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (messages.length) {
|
if (messages.length) {
|
||||||
|
disableAutoSelect(true);
|
||||||
if (copy) {
|
if (copy) {
|
||||||
messages.forEach(item => item.checked(false));
|
messages.forEach(item => item.checked(false));
|
||||||
} else {
|
} else {
|
||||||
|
|
@ -468,49 +507,37 @@ MessagelistUserStore.removeMessagesFromList = (
|
||||||
currentMessage = null;
|
currentMessage = null;
|
||||||
MessageUserStore.message(null);
|
MessageUserStore.message(null);
|
||||||
}
|
}
|
||||||
|
|
||||||
item.deleted(true);
|
item.deleted(true);
|
||||||
|
MessagelistUserStore.remove(item);
|
||||||
});
|
});
|
||||||
|
|
||||||
setTimeout(() => messages.forEach(item => MessagelistUserStore.remove(item)), 350);
|
|
||||||
|
|
||||||
const
|
|
||||||
count = MessagelistUserStore.count() - messages.length,
|
|
||||||
page = MessagelistUserStore.page();
|
|
||||||
MessagelistUserStore.count(count);
|
|
||||||
if (page > MessagelistUserStore.pageCount()) {
|
|
||||||
setPage = MessagelistUserStore.pageCount();
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (MessagelistUserStore.threadUid()
|
if (toFolderFullName) {
|
||||||
&& MessagelistUserStore.length
|
if (toFolder && fromFolderFullName != toFolderFullName) {
|
||||||
&& MessagelistUserStore.find(item => item?.deleted() && item.uid == MessagelistUserStore.threadUid())
|
const params = {
|
||||||
) {
|
fromFolder: fromFolderFullName,
|
||||||
const message = MessagelistUserStore.find(item => item && !item.deleted());
|
toFolder: toFolderFullName,
|
||||||
if (!message) {
|
uids: [...oUids].join(',')
|
||||||
if (1 < MessagelistUserStore.page()) {
|
};
|
||||||
setPage = MessagelistUserStore.page() - 1;
|
if (copy) {
|
||||||
|
Remote.request('MessageCopy', null, params);
|
||||||
} else {
|
} else {
|
||||||
MessagelistUserStore.threadUid(0);
|
const
|
||||||
setPage = MessagelistUserStore.pageBeforeThread();
|
isSpam = spamFolder === toFolderFullName,
|
||||||
|
isHam = !isSpam && spamFolder === fromFolderFullName && getFolderInboxName() === toFolderFullName;
|
||||||
|
params.markAsRead = (isSpam || FolderUserStore.trashFolder() === toFolderFullName) ? 1 : 0;
|
||||||
|
params.learning = isSpam ? 'SPAM' : isHam ? 'HAM' : '';
|
||||||
|
Remote.abort('MessageList', 'reload').request('MessageMove', moveOrDeleteResponseHelper, params);
|
||||||
}
|
}
|
||||||
} else if (MessagelistUserStore.threadUid() != message.uid) {
|
|
||||||
MessagelistUserStore.threadUid(message.uid);
|
|
||||||
setPage = MessagelistUserStore.page();
|
|
||||||
}
|
}
|
||||||
}
|
} else {
|
||||||
|
Remote.abort('MessageList', 'reload').request('MessageDelete',
|
||||||
if (setPage) {
|
moveOrDeleteResponseHelper,
|
||||||
MessagelistUserStore.page(setPage);
|
{
|
||||||
replaceHash(
|
folder: fromFolderFullName,
|
||||||
mailBox(
|
uids: [...oUids].join(',')
|
||||||
FolderUserStore.currentFolderFullNameHash(),
|
}
|
||||||
setPage,
|
|
||||||
MessagelistUserStore.listSearch(),
|
|
||||||
MessagelistUserStore.threadUid()
|
|
||||||
)
|
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
|
||||||
|
|
@ -15,7 +15,7 @@ import { encodeHtml, HtmlEditor, htmlToPlain } from 'Common/Html';
|
||||||
import { koArrayWithDestroy, addObservablesTo, addComputablesTo, addSubscribablesTo } from 'External/ko';
|
import { koArrayWithDestroy, addObservablesTo, addComputablesTo, addSubscribablesTo } from 'External/ko';
|
||||||
|
|
||||||
import { UNUSED_OPTION_VALUE } from 'Common/Consts';
|
import { UNUSED_OPTION_VALUE } from 'Common/Consts';
|
||||||
import { folderInformation, messagesDeleteHelper } from 'Common/Folders';
|
import { folderInformation } from 'Common/Folders';
|
||||||
import { serverRequest } from 'Common/Links';
|
import { serverRequest } from 'Common/Links';
|
||||||
import { i18n, getNotification, getUploadErrorDescByCode, timestampToString } from 'Common/Translator';
|
import { i18n, getNotification, getUploadErrorDescByCode, timestampToString } from 'Common/Translator';
|
||||||
import { setFolderETag } from 'Common/Cache';
|
import { setFolderETag } from 'Common/Cache';
|
||||||
|
|
@ -586,8 +586,7 @@ export class ComposePopupView extends AbstractViewPopup {
|
||||||
const
|
const
|
||||||
sFromFolderFullName = this.draftsFolder(),
|
sFromFolderFullName = this.draftsFolder(),
|
||||||
oUids = new Set([this.draftUid()]);
|
oUids = new Set([this.draftUid()]);
|
||||||
messagesDeleteHelper(sFromFolderFullName, oUids);
|
MessagelistUserStore.moveMessages(sFromFolderFullName, oUids);
|
||||||
MessagelistUserStore.removeMessagesFromList(sFromFolderFullName, oUids);
|
|
||||||
this.close();
|
this.close();
|
||||||
}
|
}
|
||||||
]);
|
]);
|
||||||
|
|
|
||||||
|
|
@ -20,8 +20,6 @@ import { FolderCreatePopupView } from 'View/Popup/FolderCreate';
|
||||||
import { ContactsPopupView } from 'View/Popup/Contacts';
|
import { ContactsPopupView } from 'View/Popup/Contacts';
|
||||||
import { ComposePopupView } from 'View/Popup/Compose';
|
import { ComposePopupView } from 'View/Popup/Compose';
|
||||||
|
|
||||||
import { moveMessagesToFolder } from 'Common/Folders';
|
|
||||||
|
|
||||||
import { setExpandedFolder, foldersFilter } from 'Model/FolderCollection';
|
import { setExpandedFolder, foldersFilter } from 'Model/FolderCollection';
|
||||||
|
|
||||||
export class MailFolderList extends AbstractViewLeft {
|
export class MailFolderList extends AbstractViewLeft {
|
||||||
|
|
@ -92,7 +90,7 @@ export class MailFolderList extends AbstractViewLeft {
|
||||||
if (folder) {
|
if (folder) {
|
||||||
if (moveAction()) {
|
if (moveAction()) {
|
||||||
moveAction(false);
|
moveAction(false);
|
||||||
moveMessagesToFolder(
|
MessagelistUserStore.moveMessages(
|
||||||
FolderUserStore.currentFolderFullName(),
|
FolderUserStore.currentFolderFullName(),
|
||||||
MessagelistUserStore.listCheckedOrSelectedUidsWithSubMails(),
|
MessagelistUserStore.listCheckedOrSelectedUidsWithSubMails(),
|
||||||
folder.fullName,
|
folder.fullName,
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue