snappymail/dev/Promises/User/Ajax.js
djmaze e7180a86ce Made eslint using 'browser' environment and added globals, because RainLoop is used in browsers.
This also allowed to remove all webpack 'externals' overhead.
2020-08-12 00:25:36 +02:00

62 lines
1.4 KiB
JavaScript

import PromisesPopulator from 'Promises/User/Populator';
import { AbstractAjaxPromises } from 'Promises/AbstractAjax';
class UserAjaxUserPromises extends AbstractAjaxPromises {
constructor() {
super();
this.foldersTimeout = 0;
}
foldersReload(fTrigger) {
return this.abort('Folders')
.postRequest('Folders', fTrigger)
.then((data) => {
PromisesPopulator.foldersList(data.Result);
PromisesPopulator.foldersAdditionalParameters(data.Result);
return true;
});
}
foldersReloadWithTimeout(fTrigger) {
this.setTrigger(fTrigger, true);
clearTimeout(this.foldersTimeout);
this.foldersTimeout = setTimeout(() => {
this.foldersReload(fTrigger);
}, 500);
}
folderDelete(sFolderFullNameRaw, fTrigger) {
return this.postRequest('FolderDelete', fTrigger, {
'Folder': sFolderFullNameRaw
});
}
folderCreate(sNewFolderName, sParentName, fTrigger) {
return this.postRequest('FolderCreate', fTrigger, {
'Folder': sNewFolderName,
'Parent': sParentName
});
}
folderRename(sPrevFolderFullNameRaw, sNewFolderName, fTrigger) {
return this.postRequest('FolderRename', fTrigger, {
'Folder': sPrevFolderFullNameRaw,
'NewFolderName': sNewFolderName
});
}
attachmentsActions(sAction, aHashes, fTrigger) {
return this.postRequest('AttachmentsActions', fTrigger, {
'Do': sAction,
'Hashes': aHashes
});
}
welcomeClose() {
return this.postRequest('WelcomeClose');
}
}
export default new UserAjaxUserPromises();