snappymail/dev/Promises/User/Ajax.js
2016-07-01 01:05:04 +03:00

78 lines
1.9 KiB
JavaScript

var
window = require('window'),
_ = require('_'),
PromisesPopulator = require('Promises/User/Populator'),
AbstractAjaxPromises = require('Promises/AbstractAjax');
/**
* @constructor
* @extends AbstractAjaxPromises
*/
function UserAjaxUserPromises()
{
AbstractAjaxPromises.call(this);
}
_.extend(UserAjaxUserPromises.prototype, AbstractAjaxPromises.prototype);
UserAjaxUserPromises.prototype.foldersReload = function(fTrigger)
{
return this.abort('Folders')
.postRequest('Folders', fTrigger).then(function(oData) {
PromisesPopulator.foldersList(oData.Result);
PromisesPopulator.foldersAdditionalParameters(oData.Result);
return true;
});
};
UserAjaxUserPromises.prototype.foldersTimeout = 0;
UserAjaxUserPromises.prototype.foldersReloadWithTimeout = function(fTrigger)
{
this.setTrigger(fTrigger, true);
var self = this;
window.clearTimeout(this.foldersTimeout);
this.foldersTimeout = window.setTimeout(function() {
self.foldersReload(fTrigger);
}, 500);
};
UserAjaxUserPromises.prototype.folderDelete = function(sFolderFullNameRaw, fTrigger)
{
return this.postRequest('FolderDelete', fTrigger, {
'Folder': sFolderFullNameRaw
});
};
UserAjaxUserPromises.prototype.folderCreate = function(sNewFolderName, sParentName, fTrigger)
{
return this.postRequest('FolderCreate', fTrigger, {
'Folder': sNewFolderName,
'Parent': sParentName
});
};
UserAjaxUserPromises.prototype.folderRename = function(sPrevFolderFullNameRaw, sNewFolderName, fTrigger)
{
return this.postRequest('FolderRename', fTrigger, {
'Folder': sPrevFolderFullNameRaw,
'NewFolderName': sNewFolderName
});
};
UserAjaxUserPromises.prototype.attachmentsActions = function(sAction, aHashes, fTrigger)
{
return this.postRequest('AttachmentsActions', fTrigger, {
'Do': sAction,
'Hashes': aHashes
});
};
UserAjaxUserPromises.prototype.welcomeClose = function()
{
return this.postRequest('WelcomeClose');
};
module.exports = new UserAjaxUserPromises();