mirror of
https://github.com/the-djmaze/snappymail.git
synced 2026-08-30 20:49:20 +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
|
|
@ -1,13 +1,11 @@
|
|||
import { isArray, arrayLength } from 'Common/Utils';
|
||||
import {
|
||||
setFolderETag,
|
||||
getFolderInboxName,
|
||||
getFolderFromCacheList
|
||||
} from 'Common/Cache';
|
||||
import { SettingsUserStore } from 'Stores/User/Settings';
|
||||
import { FolderUserStore } from 'Stores/User/Folder';
|
||||
import { MessagelistUserStore } from 'Stores/User/Messagelist';
|
||||
import { getNotification } from 'Common/Translator';
|
||||
|
||||
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) => {
|
||||
let count = files.length;
|
||||
for (const file of files) {
|
||||
|
|
|
|||
|
|
@ -65,8 +65,8 @@ export class Selector {
|
|||
this.listChecked.subscribe(items => {
|
||||
if (items.length) {
|
||||
koSelectedItem() ? koSelectedItem(null) : koSelectedItem.valueHasMutated?.();
|
||||
} else if (this.autoSelect()) {
|
||||
koSelectedItem(koFocusedItem());
|
||||
} else {
|
||||
this.autoSelect();
|
||||
}
|
||||
});
|
||||
|
||||
|
|
@ -174,9 +174,7 @@ export class Selector {
|
|||
this.iFocusedNextHelper = 0;
|
||||
}
|
||||
|
||||
if (this.autoSelect() && !isChecked && !koSelectedItem()) {
|
||||
koSelectedItem(koFocusedItem());
|
||||
}
|
||||
!isChecked && !koSelectedItem() && this.autoSelect();
|
||||
}
|
||||
|
||||
aCheckedCache = [];
|
||||
|
|
@ -250,8 +248,10 @@ export class Selector {
|
|||
/**
|
||||
* @returns {boolean}
|
||||
*/
|
||||
autoSelect() {
|
||||
return (this.oCallbacks.AutoSelect || (()=>1))() && this.focusedItem();
|
||||
autoSelect(bForce) {
|
||||
(bForce || (this.oCallbacks.AutoSelect || (()=>1))())
|
||||
&& this.focusedItem()
|
||||
&& this.selectedItem(this.focusedItem());
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
@ -327,9 +327,7 @@ export class Selector {
|
|||
|
||||
if (result) {
|
||||
this.focusedItem(result);
|
||||
if ((this.autoSelect() || bForceSelect) && !this.list.hasChecked()) {
|
||||
this.selectedItem(result);
|
||||
}
|
||||
!this.list.hasChecked() && this.autoSelect(bForceSelect);
|
||||
this.scrollToFocused();
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue