mirror of
https://github.com/the-djmaze/snappymail.git
synced 2026-08-30 04:29:21 +03:00
prettier --write
This commit is contained in:
parent
450528ff00
commit
8a0be3212d
164 changed files with 7053 additions and 9008 deletions
|
|
@ -1,19 +1,17 @@
|
|||
|
||||
import window from 'window';
|
||||
import _ from '_';
|
||||
import $ from '$';
|
||||
|
||||
import {TOKEN_ERROR_LIMIT, AJAX_ERROR_LIMIT, DEFAULT_AJAX_TIMEOUT} from 'Common/Consts';
|
||||
import {StorageResultType, Notification} from 'Common/Enums';
|
||||
import {inArray, pInt, pString, isUnd} from 'Common/Utils';
|
||||
import {data as GlobalsData} from 'Common/Globals';
|
||||
import {ajax} from 'Common/Links';
|
||||
import {runHook} from 'Common/Plugins';
|
||||
import { TOKEN_ERROR_LIMIT, AJAX_ERROR_LIMIT, DEFAULT_AJAX_TIMEOUT } from 'Common/Consts';
|
||||
import { StorageResultType, Notification } from 'Common/Enums';
|
||||
import { inArray, pInt, pString, isUnd } from 'Common/Utils';
|
||||
import { data as GlobalsData } from 'Common/Globals';
|
||||
import { ajax } from 'Common/Links';
|
||||
import { runHook } from 'Common/Plugins';
|
||||
|
||||
import * as Settings from 'Storage/Settings';
|
||||
|
||||
class AbstractAjaxRemote
|
||||
{
|
||||
class AbstractAjaxRemote {
|
||||
constructor() {
|
||||
this.oRequests = {};
|
||||
}
|
||||
|
|
@ -27,72 +25,73 @@ class AbstractAjaxRemote
|
|||
* @param {*=} oRequestParameters
|
||||
*/
|
||||
defaultResponse(fCallback, sRequestAction, sType, oData, bCached, oRequestParameters) {
|
||||
const
|
||||
fCall = () => {
|
||||
if (StorageResultType.Success !== sType && GlobalsData.bUnload)
|
||||
{
|
||||
sType = StorageResultType.Unload;
|
||||
const fCall = () => {
|
||||
if (StorageResultType.Success !== sType && GlobalsData.bUnload) {
|
||||
sType = StorageResultType.Unload;
|
||||
}
|
||||
|
||||
if (StorageResultType.Success === sType && oData && !oData.Result) {
|
||||
if (
|
||||
oData &&
|
||||
-1 <
|
||||
inArray(oData.ErrorCode, [
|
||||
Notification.AuthError,
|
||||
Notification.AccessError,
|
||||
Notification.ConnectionError,
|
||||
Notification.DomainNotAllowed,
|
||||
Notification.AccountNotAllowed,
|
||||
Notification.MailServerError,
|
||||
Notification.UnknownNotification,
|
||||
Notification.UnknownError
|
||||
])
|
||||
) {
|
||||
GlobalsData.iAjaxErrorCount += 1;
|
||||
}
|
||||
|
||||
if (StorageResultType.Success === sType && oData && !oData.Result)
|
||||
{
|
||||
if (oData && -1 < inArray(oData.ErrorCode, [
|
||||
Notification.AuthError, Notification.AccessError,
|
||||
Notification.ConnectionError, Notification.DomainNotAllowed, Notification.AccountNotAllowed,
|
||||
Notification.MailServerError, Notification.UnknownNotification, Notification.UnknownError
|
||||
]))
|
||||
{
|
||||
GlobalsData.iAjaxErrorCount += 1;
|
||||
}
|
||||
if (oData && Notification.InvalidToken === oData.ErrorCode) {
|
||||
GlobalsData.iTokenErrorCount += 1;
|
||||
}
|
||||
|
||||
if (oData && Notification.InvalidToken === oData.ErrorCode)
|
||||
{
|
||||
GlobalsData.iTokenErrorCount += 1;
|
||||
if (TOKEN_ERROR_LIMIT < GlobalsData.iTokenErrorCount) {
|
||||
if (GlobalsData.__APP__ && GlobalsData.__APP__.loginAndLogoutReload) {
|
||||
GlobalsData.__APP__.loginAndLogoutReload(false, true);
|
||||
}
|
||||
}
|
||||
|
||||
if (TOKEN_ERROR_LIMIT < GlobalsData.iTokenErrorCount)
|
||||
{
|
||||
if (GlobalsData.__APP__ && GlobalsData.__APP__.loginAndLogoutReload)
|
||||
{
|
||||
if (oData.ClearAuth || oData.Logout || AJAX_ERROR_LIMIT < GlobalsData.iAjaxErrorCount) {
|
||||
if (GlobalsData.__APP__ && GlobalsData.__APP__.clearClientSideToken) {
|
||||
GlobalsData.__APP__.clearClientSideToken();
|
||||
|
||||
if (!oData.ClearAuth && GlobalsData.__APP__.loginAndLogoutReload) {
|
||||
GlobalsData.__APP__.loginAndLogoutReload(false, true);
|
||||
}
|
||||
}
|
||||
|
||||
if (oData.ClearAuth || oData.Logout || AJAX_ERROR_LIMIT < GlobalsData.iAjaxErrorCount)
|
||||
{
|
||||
if (GlobalsData.__APP__ && GlobalsData.__APP__.clearClientSideToken)
|
||||
{
|
||||
GlobalsData.__APP__.clearClientSideToken();
|
||||
|
||||
if (!oData.ClearAuth && GlobalsData.__APP__.loginAndLogoutReload)
|
||||
{
|
||||
GlobalsData.__APP__.loginAndLogoutReload(false, true);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
else if (StorageResultType.Success === sType && oData && oData.Result)
|
||||
{
|
||||
GlobalsData.iAjaxErrorCount = 0;
|
||||
GlobalsData.iTokenErrorCount = 0;
|
||||
}
|
||||
} else if (StorageResultType.Success === sType && oData && oData.Result) {
|
||||
GlobalsData.iAjaxErrorCount = 0;
|
||||
GlobalsData.iTokenErrorCount = 0;
|
||||
}
|
||||
|
||||
runHook('ajax-default-response', [sRequestAction, StorageResultType.Success === sType ? oData : null, sType, bCached, oRequestParameters]);
|
||||
runHook('ajax-default-response', [
|
||||
sRequestAction,
|
||||
StorageResultType.Success === sType ? oData : null,
|
||||
sType,
|
||||
bCached,
|
||||
oRequestParameters
|
||||
]);
|
||||
|
||||
if (fCallback)
|
||||
{
|
||||
fCallback(
|
||||
sType,
|
||||
StorageResultType.Success === sType ? oData : null,
|
||||
bCached,
|
||||
sRequestAction,
|
||||
oRequestParameters
|
||||
);
|
||||
}
|
||||
};
|
||||
if (fCallback) {
|
||||
fCallback(
|
||||
sType,
|
||||
StorageResultType.Success === sType ? oData : null,
|
||||
bCached,
|
||||
sRequestAction,
|
||||
oRequestParameters
|
||||
);
|
||||
}
|
||||
};
|
||||
|
||||
switch (sType)
|
||||
{
|
||||
switch (sType) {
|
||||
case 'success':
|
||||
sType = StorageResultType.Success;
|
||||
break;
|
||||
|
|
@ -104,12 +103,9 @@ class AbstractAjaxRemote
|
|||
break;
|
||||
}
|
||||
|
||||
if (StorageResultType.Error === sType)
|
||||
{
|
||||
if (StorageResultType.Error === sType) {
|
||||
_.delay(fCall, 300);
|
||||
}
|
||||
else
|
||||
{
|
||||
} else {
|
||||
fCall();
|
||||
}
|
||||
}
|
||||
|
|
@ -123,25 +119,20 @@ class AbstractAjaxRemote
|
|||
* @returns {jQuery.jqXHR}
|
||||
*/
|
||||
ajaxRequest(fResultCallback, params, iTimeOut = 20000, sGetAdd = '', abortActions = []) {
|
||||
const
|
||||
isPost = '' === sGetAdd,
|
||||
const isPost = '' === sGetAdd,
|
||||
headers = {},
|
||||
start = (new window.Date()).getTime();
|
||||
start = new window.Date().getTime();
|
||||
|
||||
let
|
||||
action = '';
|
||||
let action = '';
|
||||
|
||||
params = params || {};
|
||||
action = params.Action || '';
|
||||
|
||||
if (action && 0 < abortActions.length)
|
||||
{
|
||||
if (action && 0 < abortActions.length) {
|
||||
_.each(abortActions, (actionToAbort) => {
|
||||
if (this.oRequests[actionToAbort])
|
||||
{
|
||||
if (this.oRequests[actionToAbort]) {
|
||||
this.oRequests[actionToAbort].__aborted = true;
|
||||
if (this.oRequests[actionToAbort].abort)
|
||||
{
|
||||
if (this.oRequests[actionToAbort].abort) {
|
||||
this.oRequests[actionToAbort].abort();
|
||||
}
|
||||
this.oRequests[actionToAbort] = null;
|
||||
|
|
@ -149,8 +140,7 @@ class AbstractAjaxRemote
|
|||
});
|
||||
}
|
||||
|
||||
if (isPost)
|
||||
{
|
||||
if (isPost) {
|
||||
params.XToken = Settings.appSettingsGet('token');
|
||||
}
|
||||
|
||||
|
|
@ -166,17 +156,13 @@ class AbstractAjaxRemote
|
|||
});
|
||||
|
||||
oDefAjax.always((oData, sType) => {
|
||||
|
||||
let cached = false;
|
||||
if (oData && oData.Time)
|
||||
{
|
||||
cached = pInt(oData.Time) > (new window.Date()).getTime() - start;
|
||||
if (oData && oData.Time) {
|
||||
cached = pInt(oData.Time) > new window.Date().getTime() - start;
|
||||
}
|
||||
|
||||
if (action && this.oRequests[action])
|
||||
{
|
||||
if (this.oRequests[action].__aborted)
|
||||
{
|
||||
if (action && this.oRequests[action]) {
|
||||
if (this.oRequests[action].__aborted) {
|
||||
sType = 'abort';
|
||||
}
|
||||
|
||||
|
|
@ -186,13 +172,10 @@ class AbstractAjaxRemote
|
|||
this.defaultResponse(fResultCallback, action, sType, oData, cached, params);
|
||||
});
|
||||
|
||||
if (action && 0 < abortActions.length && -1 < inArray(action, abortActions))
|
||||
{
|
||||
if (this.oRequests[action])
|
||||
{
|
||||
if (action && 0 < abortActions.length && -1 < inArray(action, abortActions)) {
|
||||
if (this.oRequests[action]) {
|
||||
this.oRequests[action].__aborted = true;
|
||||
if (this.oRequests[action].abort)
|
||||
{
|
||||
if (this.oRequests[action].abort) {
|
||||
this.oRequests[action].abort();
|
||||
}
|
||||
this.oRequests[action] = null;
|
||||
|
|
@ -201,6 +184,7 @@ class AbstractAjaxRemote
|
|||
this.oRequests[action] = oDefAjax;
|
||||
}
|
||||
|
||||
// eslint-disable-next-line no-console
|
||||
oDefAjax.catch(console.log);
|
||||
return oDefAjax;
|
||||
}
|
||||
|
|
@ -221,8 +205,13 @@ class AbstractAjaxRemote
|
|||
|
||||
runHook('ajax-default-request', [sAction, oParameters, sGetAdd]);
|
||||
|
||||
return this.ajaxRequest(fCallback, oParameters,
|
||||
isUnd(iTimeout) ? DEFAULT_AJAX_TIMEOUT : pInt(iTimeout), sGetAdd, aAbortActions);
|
||||
return this.ajaxRequest(
|
||||
fCallback,
|
||||
oParameters,
|
||||
isUnd(iTimeout) ? DEFAULT_AJAX_TIMEOUT : pInt(iTimeout),
|
||||
sGetAdd,
|
||||
aAbortActions
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
@ -284,4 +273,4 @@ class AbstractAjaxRemote
|
|||
}
|
||||
}
|
||||
|
||||
export {AbstractAjaxRemote, AbstractAjaxRemote as default};
|
||||
export { AbstractAjaxRemote, AbstractAjaxRemote as default };
|
||||
|
|
|
|||
|
|
@ -1,8 +1,6 @@
|
|||
import { AbstractAjaxRemote } from 'Remote/AbstractAjax';
|
||||
|
||||
import {AbstractAjaxRemote} from 'Remote/AbstractAjax';
|
||||
|
||||
class RemoteAdminAjax extends AbstractAjaxRemote
|
||||
{
|
||||
class RemoteAdminAjax extends AbstractAjaxRemote {
|
||||
constructor() {
|
||||
super();
|
||||
|
||||
|
|
@ -92,11 +90,16 @@ class RemoteAdminAjax extends AbstractAjaxRemote
|
|||
* @param {Object} oPackage
|
||||
*/
|
||||
packageInstall(fCallback, oPackage) {
|
||||
this.defaultRequest(fCallback, 'AdminPackageInstall', {
|
||||
'Id': oPackage.id,
|
||||
'Type': oPackage.type,
|
||||
'File': oPackage.file
|
||||
}, 60000);
|
||||
this.defaultRequest(
|
||||
fCallback,
|
||||
'AdminPackageInstall',
|
||||
{
|
||||
'Id': oPackage.id,
|
||||
'Type': oPackage.type,
|
||||
'File': oPackage.file
|
||||
},
|
||||
60000
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
@ -200,11 +203,25 @@ class RemoteAdminAjax extends AbstractAjaxRemote
|
|||
});
|
||||
}
|
||||
|
||||
createOrUpdateDomain(fCallback,
|
||||
bCreate, sName,
|
||||
sIncHost, iIncPort, sIncSecure, bIncShortLogin,
|
||||
bUseSieve, sSieveAllowRaw, sSieveHost, iSievePort, sSieveSecure,
|
||||
sOutHost, iOutPort, sOutSecure, bOutShortLogin, bOutAuth, bOutPhpMail,
|
||||
createOrUpdateDomain(
|
||||
fCallback,
|
||||
bCreate,
|
||||
sName,
|
||||
sIncHost,
|
||||
iIncPort,
|
||||
sIncSecure,
|
||||
bIncShortLogin,
|
||||
bUseSieve,
|
||||
sSieveAllowRaw,
|
||||
sSieveHost,
|
||||
iSievePort,
|
||||
sSieveSecure,
|
||||
sOutHost,
|
||||
iOutPort,
|
||||
sOutSecure,
|
||||
bOutShortLogin,
|
||||
bOutAuth,
|
||||
bOutPhpMail,
|
||||
sWhiteList
|
||||
) {
|
||||
this.defaultRequest(fCallback, 'AdminDomainSave', {
|
||||
|
|
@ -233,10 +250,21 @@ class RemoteAdminAjax extends AbstractAjaxRemote
|
|||
});
|
||||
}
|
||||
|
||||
testConnectionForDomain(fCallback, sName,
|
||||
sIncHost, iIncPort, sIncSecure,
|
||||
bUseSieve, sSieveHost, iSievePort, sSieveSecure,
|
||||
sOutHost, iOutPort, sOutSecure, bOutAuth, bOutPhpMail
|
||||
testConnectionForDomain(
|
||||
fCallback,
|
||||
sName,
|
||||
sIncHost,
|
||||
iIncPort,
|
||||
sIncSecure,
|
||||
bUseSieve,
|
||||
sSieveHost,
|
||||
iSievePort,
|
||||
sSieveSecure,
|
||||
sOutHost,
|
||||
iOutPort,
|
||||
sOutSecure,
|
||||
bOutAuth,
|
||||
bOutPhpMail
|
||||
) {
|
||||
this.defaultRequest(fCallback, 'AdminDomainTest', {
|
||||
'Name': sName,
|
||||
|
|
|
|||
|
|
@ -1,7 +1,6 @@
|
|||
|
||||
import _ from '_';
|
||||
|
||||
import {pString, pInt, isArray, trim, boolToAjax} from 'Common/Utils';
|
||||
import { pString, pInt, isArray, trim, boolToAjax } from 'Common/Utils';
|
||||
|
||||
import {
|
||||
CONTACTS_SYNC_AJAX_TIMEOUT,
|
||||
|
|
@ -19,19 +18,18 @@ import {
|
|||
getMessageFlagsFromCache
|
||||
} from 'Common/Cache';
|
||||
|
||||
import {subQueryPrefix} from 'Common/Links';
|
||||
import { subQueryPrefix } from 'Common/Links';
|
||||
import * as Base64 from 'Common/Base64';
|
||||
import * as Settings from 'Storage/Settings';
|
||||
|
||||
import AppStore from 'Stores/User/App';
|
||||
import SettingsStore from 'Stores/User/Settings';
|
||||
|
||||
import {getApp} from 'Helper/Apps/User';
|
||||
import { getApp } from 'Helper/Apps/User';
|
||||
|
||||
import {AbstractAjaxRemote} from 'Remote/AbstractAjax';
|
||||
import { AbstractAjaxRemote } from 'Remote/AbstractAjax';
|
||||
|
||||
class RemoteUserAjax extends AbstractAjaxRemote
|
||||
{
|
||||
class RemoteUserAjax extends AbstractAjaxRemote {
|
||||
constructor() {
|
||||
super();
|
||||
this.oRequests = {};
|
||||
|
|
@ -41,13 +39,20 @@ class RemoteUserAjax extends AbstractAjaxRemote
|
|||
* @param {?Function} fCallback
|
||||
*/
|
||||
folders(fCallback) {
|
||||
this.defaultRequest(fCallback, 'Folders', {
|
||||
'SentFolder': Settings.settingsGet('SentFolder'),
|
||||
'DraftFolder': Settings.settingsGet('DraftFolder'),
|
||||
'SpamFolder': Settings.settingsGet('SpamFolder'),
|
||||
'TrashFolder': Settings.settingsGet('TrashFolder'),
|
||||
'ArchiveFolder': Settings.settingsGet('ArchiveFolder')
|
||||
}, null, '', ['Folders']);
|
||||
this.defaultRequest(
|
||||
fCallback,
|
||||
'Folders',
|
||||
{
|
||||
'SentFolder': Settings.settingsGet('SentFolder'),
|
||||
'DraftFolder': Settings.settingsGet('DraftFolder'),
|
||||
'SpamFolder': Settings.settingsGet('SpamFolder'),
|
||||
'TrashFolder': Settings.settingsGet('TrashFolder'),
|
||||
'ArchiveFolder': Settings.settingsGet('ArchiveFolder')
|
||||
},
|
||||
null,
|
||||
'',
|
||||
['Folders']
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
@ -304,40 +309,54 @@ class RemoteUserAjax extends AbstractAjaxRemote
|
|||
* @param {boolean=} bSilent = false
|
||||
*/
|
||||
messageList(fCallback, sFolderFullNameRaw, iOffset = 0, iLimit = 20, sSearch = '', sThreadUid = '', bSilent = false) {
|
||||
|
||||
sFolderFullNameRaw = pString(sFolderFullNameRaw);
|
||||
|
||||
const
|
||||
folderHash = getFolderHash(sFolderFullNameRaw),
|
||||
const folderHash = getFolderHash(sFolderFullNameRaw),
|
||||
useThreads = AppStore.threadsAllowed() && SettingsStore.useThreads(),
|
||||
inboxUidNext = getFolderInboxName() === sFolderFullNameRaw ? getFolderUidNext(sFolderFullNameRaw) : '';
|
||||
|
||||
if ('' !== folderHash && ('' === sSearch || -1 === sSearch.indexOf('is:')))
|
||||
{
|
||||
return this.defaultRequest(fCallback, 'MessageList', {},
|
||||
if ('' !== folderHash && ('' === sSearch || -1 === sSearch.indexOf('is:'))) {
|
||||
return this.defaultRequest(
|
||||
fCallback,
|
||||
'MessageList',
|
||||
{},
|
||||
'' === sSearch ? DEFAULT_AJAX_TIMEOUT : SEARCH_AJAX_TIMEOUT,
|
||||
'MessageList/' + subQueryPrefix() + '/' + Base64.urlsafe_encode([
|
||||
sFolderFullNameRaw,
|
||||
iOffset,
|
||||
iLimit,
|
||||
sSearch,
|
||||
AppStore.projectHash(),
|
||||
folderHash,
|
||||
inboxUidNext,
|
||||
useThreads ? '1' : '0',
|
||||
useThreads ? sThreadUid : ''
|
||||
].join(String.fromCharCode(0))), bSilent ? [] : ['MessageList']);
|
||||
'MessageList/' +
|
||||
subQueryPrefix() +
|
||||
'/' +
|
||||
Base64.urlsafe_encode(
|
||||
[
|
||||
sFolderFullNameRaw,
|
||||
iOffset,
|
||||
iLimit,
|
||||
sSearch,
|
||||
AppStore.projectHash(),
|
||||
folderHash,
|
||||
inboxUidNext,
|
||||
useThreads ? '1' : '0',
|
||||
useThreads ? sThreadUid : ''
|
||||
].join(String.fromCharCode(0))
|
||||
),
|
||||
bSilent ? [] : ['MessageList']
|
||||
);
|
||||
}
|
||||
|
||||
return this.defaultRequest(fCallback, 'MessageList', {
|
||||
Folder: sFolderFullNameRaw,
|
||||
Offset: iOffset,
|
||||
Limit: iLimit,
|
||||
Search: sSearch,
|
||||
UidNext: inboxUidNext,
|
||||
UseThreads: useThreads ? '1' : '0',
|
||||
ThreadUid: useThreads ? sThreadUid : ''
|
||||
}, '' === sSearch ? DEFAULT_AJAX_TIMEOUT : SEARCH_AJAX_TIMEOUT, '', bSilent ? [] : ['MessageList']);
|
||||
return this.defaultRequest(
|
||||
fCallback,
|
||||
'MessageList',
|
||||
{
|
||||
Folder: sFolderFullNameRaw,
|
||||
Offset: iOffset,
|
||||
Limit: iLimit,
|
||||
Search: sSearch,
|
||||
UidNext: inboxUidNext,
|
||||
UseThreads: useThreads ? '1' : '0',
|
||||
ThreadUid: useThreads ? sThreadUid : ''
|
||||
},
|
||||
'' === sSearch ? DEFAULT_AJAX_TIMEOUT : SEARCH_AJAX_TIMEOUT,
|
||||
'',
|
||||
bSilent ? [] : ['MessageList']
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
@ -345,9 +364,14 @@ class RemoteUserAjax extends AbstractAjaxRemote
|
|||
* @param {Array} aDownloads
|
||||
*/
|
||||
messageUploadAttachments(fCallback, aDownloads) {
|
||||
this.defaultRequest(fCallback, 'MessageUploadAttachments', {
|
||||
'Attachments': aDownloads
|
||||
}, 999000);
|
||||
this.defaultRequest(
|
||||
fCallback,
|
||||
'MessageUploadAttachments',
|
||||
{
|
||||
'Attachments': aDownloads
|
||||
},
|
||||
999000
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
@ -357,19 +381,28 @@ class RemoteUserAjax extends AbstractAjaxRemote
|
|||
* @returns {boolean}
|
||||
*/
|
||||
message(fCallback, sFolderFullNameRaw, iUid) {
|
||||
|
||||
sFolderFullNameRaw = pString(sFolderFullNameRaw);
|
||||
iUid = pInt(iUid);
|
||||
|
||||
if (getFolderFromCacheList(sFolderFullNameRaw) && 0 < iUid)
|
||||
{
|
||||
this.defaultRequest(fCallback, 'Message', {}, null,
|
||||
'Message/' + subQueryPrefix() + '/' + Base64.urlsafe_encode([
|
||||
sFolderFullNameRaw,
|
||||
iUid,
|
||||
AppStore.projectHash(),
|
||||
AppStore.threadsAllowed() && SettingsStore.useThreads() ? '1' : '0'
|
||||
].join(String.fromCharCode(0))), ['Message']);
|
||||
if (getFolderFromCacheList(sFolderFullNameRaw) && 0 < iUid) {
|
||||
this.defaultRequest(
|
||||
fCallback,
|
||||
'Message',
|
||||
{},
|
||||
null,
|
||||
'Message/' +
|
||||
subQueryPrefix() +
|
||||
'/' +
|
||||
Base64.urlsafe_encode(
|
||||
[
|
||||
sFolderFullNameRaw,
|
||||
iUid,
|
||||
AppStore.projectHash(),
|
||||
AppStore.threadsAllowed() && SettingsStore.useThreads() ? '1' : '0'
|
||||
].join(String.fromCharCode(0))
|
||||
),
|
||||
['Message']
|
||||
);
|
||||
|
||||
return true;
|
||||
}
|
||||
|
|
@ -382,9 +415,14 @@ class RemoteUserAjax extends AbstractAjaxRemote
|
|||
* @param {Array} aExternals
|
||||
*/
|
||||
composeUploadExternals(fCallback, aExternals) {
|
||||
this.defaultRequest(fCallback, 'ComposeUploadExternals', {
|
||||
'Externals': aExternals
|
||||
}, 999000);
|
||||
this.defaultRequest(
|
||||
fCallback,
|
||||
'ComposeUploadExternals',
|
||||
{
|
||||
'Externals': aExternals
|
||||
},
|
||||
999000
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
@ -393,10 +431,15 @@ class RemoteUserAjax extends AbstractAjaxRemote
|
|||
* @param {string} sAccessToken
|
||||
*/
|
||||
composeUploadDrive(fCallback, sUrl, sAccessToken) {
|
||||
this.defaultRequest(fCallback, 'ComposeUploadDrive', {
|
||||
'AccessToken': sAccessToken,
|
||||
'Url': sUrl
|
||||
}, 999000);
|
||||
this.defaultRequest(
|
||||
fCallback,
|
||||
'ComposeUploadDrive',
|
||||
{
|
||||
'AccessToken': sAccessToken,
|
||||
'Url': sUrl
|
||||
},
|
||||
999000
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
@ -405,46 +448,37 @@ class RemoteUserAjax extends AbstractAjaxRemote
|
|||
* @param {Array=} list = []
|
||||
*/
|
||||
folderInformation(fCallback, folder, list = []) {
|
||||
|
||||
let request = true;
|
||||
const uids = [];
|
||||
|
||||
if (isArray(list) && 0 < list.length)
|
||||
{
|
||||
if (isArray(list) && 0 < list.length) {
|
||||
request = false;
|
||||
_.each(list, (messageListItem) => {
|
||||
if (!getMessageFlagsFromCache(messageListItem.folderFullNameRaw, messageListItem.uid))
|
||||
{
|
||||
if (!getMessageFlagsFromCache(messageListItem.folderFullNameRaw, messageListItem.uid)) {
|
||||
uids.push(messageListItem.uid);
|
||||
}
|
||||
|
||||
if (0 < messageListItem.threads().length)
|
||||
{
|
||||
if (0 < messageListItem.threads().length) {
|
||||
_.each(messageListItem.threads(), (uid) => {
|
||||
if (!getMessageFlagsFromCache(messageListItem.folderFullNameRaw, uid))
|
||||
{
|
||||
if (!getMessageFlagsFromCache(messageListItem.folderFullNameRaw, uid)) {
|
||||
uids.push(uid);
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
|
||||
if (0 < uids.length)
|
||||
{
|
||||
if (0 < uids.length) {
|
||||
request = true;
|
||||
}
|
||||
}
|
||||
|
||||
if (request)
|
||||
{
|
||||
if (request) {
|
||||
this.defaultRequest(fCallback, 'FolderInformation', {
|
||||
'Folder': folder,
|
||||
'FlagsUids': isArray(uids) ? uids.join(',') : '',
|
||||
'UidNext': getFolderInboxName() === folder ? getFolderUidNext(folder) : ''
|
||||
});
|
||||
}
|
||||
else if (SettingsStore.useThreads())
|
||||
{
|
||||
} else if (SettingsStore.useThreads()) {
|
||||
getApp().reloadFlagsCurrentMessageListAndMessageFromCache();
|
||||
}
|
||||
}
|
||||
|
|
@ -527,27 +561,48 @@ class RemoteUserAjax extends AbstractAjaxRemote
|
|||
* @param {string} sReferences
|
||||
* @param {boolean} bMarkAsImportant
|
||||
*/
|
||||
saveMessage(fCallback, sIdentityID, sMessageFolder, sMessageUid, sDraftFolder,
|
||||
sTo, sCc, sBcc, sReplyTo, sSubject, bTextIsHtml, sText, aAttachments, aDraftInfo, sInReplyTo, sReferences, bMarkAsImportant) {
|
||||
|
||||
this.defaultRequest(fCallback, 'SaveMessage', {
|
||||
'IdentityID': sIdentityID,
|
||||
'MessageFolder': sMessageFolder,
|
||||
'MessageUid': sMessageUid,
|
||||
'DraftFolder': sDraftFolder,
|
||||
'To': sTo,
|
||||
'Cc': sCc,
|
||||
'Bcc': sBcc,
|
||||
'ReplyTo': sReplyTo,
|
||||
'Subject': sSubject,
|
||||
'TextIsHtml': bTextIsHtml ? '1' : '0',
|
||||
'Text': sText,
|
||||
'DraftInfo': aDraftInfo,
|
||||
'InReplyTo': sInReplyTo,
|
||||
'References': sReferences,
|
||||
'MarkAsImportant': bMarkAsImportant ? '1' : '0',
|
||||
'Attachments': aAttachments
|
||||
}, SAVE_MESSAGE_AJAX_TIMEOUT);
|
||||
saveMessage(
|
||||
fCallback,
|
||||
sIdentityID,
|
||||
sMessageFolder,
|
||||
sMessageUid,
|
||||
sDraftFolder,
|
||||
sTo,
|
||||
sCc,
|
||||
sBcc,
|
||||
sReplyTo,
|
||||
sSubject,
|
||||
bTextIsHtml,
|
||||
sText,
|
||||
aAttachments,
|
||||
aDraftInfo,
|
||||
sInReplyTo,
|
||||
sReferences,
|
||||
bMarkAsImportant
|
||||
) {
|
||||
this.defaultRequest(
|
||||
fCallback,
|
||||
'SaveMessage',
|
||||
{
|
||||
'IdentityID': sIdentityID,
|
||||
'MessageFolder': sMessageFolder,
|
||||
'MessageUid': sMessageUid,
|
||||
'DraftFolder': sDraftFolder,
|
||||
'To': sTo,
|
||||
'Cc': sCc,
|
||||
'Bcc': sBcc,
|
||||
'ReplyTo': sReplyTo,
|
||||
'Subject': sSubject,
|
||||
'TextIsHtml': bTextIsHtml ? '1' : '0',
|
||||
'Text': sText,
|
||||
'DraftInfo': aDraftInfo,
|
||||
'InReplyTo': sInReplyTo,
|
||||
'References': sReferences,
|
||||
'MarkAsImportant': bMarkAsImportant ? '1' : '0',
|
||||
'Attachments': aAttachments
|
||||
},
|
||||
SAVE_MESSAGE_AJAX_TIMEOUT
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
@ -589,30 +644,52 @@ class RemoteUserAjax extends AbstractAjaxRemote
|
|||
* @param {boolean} bRequestReadReceipt
|
||||
* @param {boolean} bMarkAsImportant
|
||||
*/
|
||||
sendMessage(fCallback, sIdentityID, sMessageFolder, sMessageUid, sSentFolder,
|
||||
sTo, sCc, sBcc, sReplyTo, sSubject, bTextIsHtml, sText, aAttachments, aDraftInfo, sInReplyTo, sReferences,
|
||||
bRequestDsn, bRequestReadReceipt, bMarkAsImportant) {
|
||||
|
||||
this.defaultRequest(fCallback, 'SendMessage', {
|
||||
'IdentityID': sIdentityID,
|
||||
'MessageFolder': sMessageFolder,
|
||||
'MessageUid': sMessageUid,
|
||||
'SentFolder': sSentFolder,
|
||||
'To': sTo,
|
||||
'Cc': sCc,
|
||||
'Bcc': sBcc,
|
||||
'ReplyTo': sReplyTo,
|
||||
'Subject': sSubject,
|
||||
'TextIsHtml': bTextIsHtml ? '1' : '0',
|
||||
'Text': sText,
|
||||
'DraftInfo': aDraftInfo,
|
||||
'InReplyTo': sInReplyTo,
|
||||
'References': sReferences,
|
||||
'Dsn': bRequestDsn ? '1' : '0',
|
||||
'ReadReceiptRequest': bRequestReadReceipt ? '1' : '0',
|
||||
'MarkAsImportant': bMarkAsImportant ? '1' : '0',
|
||||
'Attachments': aAttachments
|
||||
}, SEND_MESSAGE_AJAX_TIMEOUT);
|
||||
sendMessage(
|
||||
fCallback,
|
||||
sIdentityID,
|
||||
sMessageFolder,
|
||||
sMessageUid,
|
||||
sSentFolder,
|
||||
sTo,
|
||||
sCc,
|
||||
sBcc,
|
||||
sReplyTo,
|
||||
sSubject,
|
||||
bTextIsHtml,
|
||||
sText,
|
||||
aAttachments,
|
||||
aDraftInfo,
|
||||
sInReplyTo,
|
||||
sReferences,
|
||||
bRequestDsn,
|
||||
bRequestReadReceipt,
|
||||
bMarkAsImportant
|
||||
) {
|
||||
this.defaultRequest(
|
||||
fCallback,
|
||||
'SendMessage',
|
||||
{
|
||||
'IdentityID': sIdentityID,
|
||||
'MessageFolder': sMessageFolder,
|
||||
'MessageUid': sMessageUid,
|
||||
'SentFolder': sSentFolder,
|
||||
'To': sTo,
|
||||
'Cc': sCc,
|
||||
'Bcc': sBcc,
|
||||
'ReplyTo': sReplyTo,
|
||||
'Subject': sSubject,
|
||||
'TextIsHtml': bTextIsHtml ? '1' : '0',
|
||||
'Text': sText,
|
||||
'DraftInfo': aDraftInfo,
|
||||
'InReplyTo': sInReplyTo,
|
||||
'References': sReferences,
|
||||
'Dsn': bRequestDsn ? '1' : '0',
|
||||
'ReadReceiptRequest': bRequestReadReceipt ? '1' : '0',
|
||||
'MarkAsImportant': bMarkAsImportant ? '1' : '0',
|
||||
'Attachments': aAttachments
|
||||
},
|
||||
SEND_MESSAGE_AJAX_TIMEOUT
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
@ -699,13 +776,20 @@ class RemoteUserAjax extends AbstractAjaxRemote
|
|||
* @param {boolean=} bMarkAsRead
|
||||
*/
|
||||
messagesMove(fCallback, sFolder, sToFolder, aUids, sLearning, bMarkAsRead) {
|
||||
this.defaultRequest(fCallback, 'MessageMove', {
|
||||
'FromFolder': sFolder,
|
||||
'ToFolder': sToFolder,
|
||||
'Uids': aUids.join(','),
|
||||
'MarkAsRead': bMarkAsRead ? '1' : '0',
|
||||
'Learning': sLearning || ''
|
||||
}, null, '', ['MessageList']);
|
||||
this.defaultRequest(
|
||||
fCallback,
|
||||
'MessageMove',
|
||||
{
|
||||
'FromFolder': sFolder,
|
||||
'ToFolder': sToFolder,
|
||||
'Uids': aUids.join(','),
|
||||
'MarkAsRead': bMarkAsRead ? '1' : '0',
|
||||
'Learning': sLearning || ''
|
||||
},
|
||||
null,
|
||||
'',
|
||||
['MessageList']
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
@ -728,10 +812,17 @@ class RemoteUserAjax extends AbstractAjaxRemote
|
|||
* @param {Array} aUids
|
||||
*/
|
||||
messagesDelete(fCallback, sFolder, aUids) {
|
||||
this.defaultRequest(fCallback, 'MessageDelete', {
|
||||
'Folder': sFolder,
|
||||
'Uids': aUids.join(',')
|
||||
}, null, '', ['MessageList']);
|
||||
this.defaultRequest(
|
||||
fCallback,
|
||||
'MessageDelete',
|
||||
{
|
||||
'Folder': sFolder,
|
||||
'Uids': aUids.join(',')
|
||||
},
|
||||
null,
|
||||
'',
|
||||
['MessageList']
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
@ -755,11 +846,18 @@ class RemoteUserAjax extends AbstractAjaxRemote
|
|||
* @param {string} sSearch
|
||||
*/
|
||||
contacts(fCallback, iOffset, iLimit, sSearch) {
|
||||
this.defaultRequest(fCallback, 'Contacts', {
|
||||
'Offset': iOffset,
|
||||
'Limit': iLimit,
|
||||
'Search': sSearch
|
||||
}, null, '', ['Contacts']);
|
||||
this.defaultRequest(
|
||||
fCallback,
|
||||
'Contacts',
|
||||
{
|
||||
'Offset': iOffset,
|
||||
'Limit': iLimit,
|
||||
'Search': sSearch
|
||||
},
|
||||
null,
|
||||
'',
|
||||
['Contacts']
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
@ -792,10 +890,17 @@ class RemoteUserAjax extends AbstractAjaxRemote
|
|||
* @param {number} iPage
|
||||
*/
|
||||
suggestions(fCallback, sQuery, iPage) {
|
||||
this.defaultRequest(fCallback, 'Suggestions', {
|
||||
'Query': sQuery,
|
||||
'Page': iPage
|
||||
}, null, '', ['Suggestions']);
|
||||
this.defaultRequest(
|
||||
fCallback,
|
||||
'Suggestions',
|
||||
{
|
||||
'Query': sQuery,
|
||||
'Page': iPage
|
||||
},
|
||||
null,
|
||||
'',
|
||||
['Suggestions']
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue