mirror of
https://github.com/the-djmaze/snappymail.git
synced 2026-08-31 04:59:21 +03:00
Revamp mailbox management so that reloading of the whole folder tree is not needed
This commit is contained in:
parent
5fdc38a40d
commit
2719f08e26
8 changed files with 67 additions and 60 deletions
|
|
@ -4,6 +4,7 @@ import { Notification } from 'Common/Enums';
|
|||
import { UNUSED_OPTION_VALUE } from 'Common/Consts';
|
||||
import { defaultOptionsAfterRender } from 'Common/Utils';
|
||||
import { folderListOptionsBuilder } from 'Common/UtilsUser';
|
||||
import { getNotification } from 'Common/Translator';
|
||||
|
||||
import { FolderUserStore } from 'Stores/User/Folder';
|
||||
|
||||
|
|
@ -12,6 +13,9 @@ import Remote from 'Remote/User/Fetch';
|
|||
import { decorateKoCommands } from 'Knoin/Knoin';
|
||||
import { AbstractViewPopup } from 'Knoin/AbstractViews';
|
||||
|
||||
import { setFolder, getFolderFromCacheList } from 'Common/Cache';
|
||||
import { FolderModel } from 'Model/FolderCollection';
|
||||
|
||||
class FolderCreatePopupView extends AbstractViewPopup {
|
||||
constructor() {
|
||||
super('FolderCreate');
|
||||
|
|
@ -49,13 +53,27 @@ class FolderCreatePopupView extends AbstractViewPopup {
|
|||
parentFolderName = FolderUserStore.namespace.substr(0, FolderUserStore.namespace.length - 1);
|
||||
}
|
||||
|
||||
rl.app.foldersPromisesActionHelper(
|
||||
Remote.post('FolderCreate', FolderUserStore.foldersCreating, {
|
||||
Remote.abort('Folders').post('FolderCreate', FolderUserStore.foldersCreating, {
|
||||
Folder: this.folderName(),
|
||||
Parent: parentFolderName
|
||||
}),
|
||||
Notification.CantCreateFolder
|
||||
);
|
||||
})
|
||||
.then(
|
||||
data => {
|
||||
const folder = getFolderFromCacheList(parentFolderName),
|
||||
subFolder = FolderModel.reviveFromJson(data.Result);
|
||||
setFolder(subFolder);
|
||||
(folder ? folder.subFolders : FolderUserStore.folderList).push(subFolder);
|
||||
/*
|
||||
var collator = new Intl.Collator(undefined, {numeric: true, sensitivity: 'base'});
|
||||
console.log((folder ? folder.subFolders : FolderUserStore.folderList).sort(collator.compare));
|
||||
*/
|
||||
},
|
||||
error => {
|
||||
FolderUserStore.folderListError(
|
||||
getNotification(error.code, '', Notification.CantCreateFolder)
|
||||
+ '.\n' + error.message);
|
||||
}
|
||||
);
|
||||
|
||||
this.cancelCommand();
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue