Changed: StorageResultType to error result code

This commit is contained in:
djmaze 2021-03-16 09:46:23 +01:00
parent be3ef15f8e
commit 4a8d516123
33 changed files with 257 additions and 302 deletions

View file

@ -5,7 +5,6 @@ import { isPosNumeric, delegateRunOnDestroy, mailToHelper } from 'Common/UtilsUs
import { import {
Capa, Capa,
StorageResultType,
Notification, Notification,
KeyState KeyState
} from 'Common/Enums'; } from 'Common/Enums';
@ -104,8 +103,8 @@ class AppUser extends AbstractApp {
if (rl.hash.check()) { if (rl.hash.check()) {
this.reload(); this.reload();
} }
Remote.jsVersion((sResult, oData) => { Remote.jsVersion((iError, oData) => {
if (StorageResultType.Success === sResult && oData && !oData.Result) { if (!iError && oData && !oData.Result) {
this.reload(); this.reload();
} }
}, Settings.app('version')); }, Settings.app('version'));
@ -182,23 +181,18 @@ class AppUser extends AbstractApp {
} }
MessageUserStore.listLoading(true); MessageUserStore.listLoading(true);
MessageUserStore.listError('');
Remote.messageList( Remote.messageList(
(sResult, oData, bCached) => { (iError, oData, bCached) => {
if (StorageResultType.Success === sResult && oData && oData.Result) { if (!iError && oData && oData.Result) {
MessageUserStore.listError('');
MessageUserStore.listLoading(false);
MessageUserStore.setMessageList(oData, bCached); MessageUserStore.setMessageList(oData, bCached);
} else if (StorageResultType.Unload === sResult) { } else if (Remote.ABORT !== iError) {
MessageUserStore.listError('');
MessageUserStore.listLoading(false);
} else if (StorageResultType.Abort !== sResult) {
MessageUserStore.list([]); MessageUserStore.list([]);
MessageUserStore.listLoading(false);
MessageUserStore.listError( MessageUserStore.listError(
getNotification((oData && oData.ErrorCode) || Notification.CantGetMessageList) getNotification((oData && oData.ErrorCode) || Notification.CantGetMessageList)
); );
} }
MessageUserStore.listLoading(false);
}, },
FolderUserStore.currentFolderFullNameRaw(), FolderUserStore.currentFolderFullNameRaw(),
iOffset, iOffset,
@ -283,8 +277,8 @@ class AppUser extends AbstractApp {
Remote.messagesDelete(this.moveOrDeleteResponseHelper, sFromFolderFullNameRaw, aUidForRemove); Remote.messagesDelete(this.moveOrDeleteResponseHelper, sFromFolderFullNameRaw, aUidForRemove);
} }
moveOrDeleteResponseHelper(sResult, oData) { moveOrDeleteResponseHelper(iError, oData) {
if (StorageResultType.Success === sResult && FolderUserStore.currentFolder()) { if (!iError && FolderUserStore.currentFolder()) {
if (oData && Array.isArray(oData.Result) && 2 === oData.Result.length) { if (oData && Array.isArray(oData.Result) && 2 === oData.Result.length) {
setFolderHash(oData.Result[0], oData.Result[1]); setFolderHash(oData.Result[0], oData.Result[1]);
} else { } else {
@ -480,11 +474,11 @@ class AppUser extends AbstractApp {
AccountUserStore.loading(true); AccountUserStore.loading(true);
IdentityUserStore.loading(true); IdentityUserStore.loading(true);
Remote.accountsAndIdentities((sResult, oData) => { Remote.accountsAndIdentities((iError, oData) => {
AccountUserStore.loading(false); AccountUserStore.loading(false);
IdentityUserStore.loading(false); IdentityUserStore.loading(false);
if (StorageResultType.Success === sResult && oData.Result) { if (!iError && oData.Result) {
const counts = {}, const counts = {},
sAccountEmail = AccountUserStore.email(); sAccountEmail = AccountUserStore.email();
let parentEmail = SettingsGet('ParentEmail') || sAccountEmail; let parentEmail = SettingsGet('ParentEmail') || sAccountEmail;
@ -529,10 +523,10 @@ class AppUser extends AbstractApp {
templates() { templates() {
TemplateUserStore.templates.loading(true); TemplateUserStore.templates.loading(true);
Remote.templates((result, data) => { Remote.templates((iError, data) => {
TemplateUserStore.templates.loading(false); TemplateUserStore.templates.loading(false);
if (StorageResultType.Success === result && data.Result && Array.isArray(data.Result.Templates)) { if (!iError && data.Result && Array.isArray(data.Result.Templates)) {
delegateRunOnDestroy(TemplateUserStore.templates()); delegateRunOnDestroy(TemplateUserStore.templates());
TemplateUserStore.templates( TemplateUserStore.templates(
@ -545,9 +539,9 @@ class AppUser extends AbstractApp {
} }
quota() { quota() {
Remote.quota((result, data) => { Remote.quota((iError, data) => {
if ( if (
StorageResultType.Success === result && !iError &&
data && data &&
data.Result && data.Result &&
Array.isArray(data.Result) && Array.isArray(data.Result) &&
@ -567,9 +561,8 @@ class AppUser extends AbstractApp {
folderInformation(folder, list) { folderInformation(folder, list) {
if (folder && folder.trim()) { if (folder && folder.trim()) {
Remote.folderInformation( Remote.folderInformation(
(result, data) => { (iError, data) => {
if (StorageResultType.Success === result) { if (!iError && data && data.Result && data.Result.Hash && data.Result.Folder) {
if (data && data.Result && data.Result.Hash && data.Result.Folder) {
let uid = '', let uid = '',
check = false, check = false,
unreadCountChange = false; unreadCountChange = false;
@ -634,7 +627,6 @@ class AppUser extends AbstractApp {
} }
} }
} }
}
}, },
folder, folder,
list list
@ -648,9 +640,8 @@ class AppUser extends AbstractApp {
folderInformationMultiply(boot = false) { folderInformationMultiply(boot = false) {
const folders = FolderUserStore.getNextFolderNames(); const folders = FolderUserStore.getNextFolderNames();
if (Array.isNotEmpty(folders)) { if (Array.isNotEmpty(folders)) {
Remote.folderInformationMultiply((sResult, oData) => { Remote.folderInformationMultiply((iError, oData) => {
if (StorageResultType.Success === sResult) { if (!iError && oData && oData.Result && oData.Result.List && Array.isNotEmpty(oData.Result.List)) {
if (oData && oData.Result && oData.Result.List && Array.isNotEmpty(oData.Result.List)) {
const utc = Date.now(); const utc = Date.now();
oData.Result.List.forEach(item => { oData.Result.List.forEach(item => {
const hash = getFolderHash(item.Folder), const hash = getFolderHash(item.Folder),
@ -696,7 +687,6 @@ class AppUser extends AbstractApp {
setTimeout(() => this.folderInformationMultiply(true), 2000); setTimeout(() => this.folderInformationMultiply(true), 2000);
} }
} }
}
}, folders); }, folders);
} }
} }
@ -773,12 +763,12 @@ class AppUser extends AbstractApp {
* @param {Function} autocompleteCallback * @param {Function} autocompleteCallback
*/ */
getAutocomplete(query, autocompleteCallback) { getAutocomplete(query, autocompleteCallback) {
Remote.suggestions((result, data) => { Remote.suggestions((iError, data) => {
if (StorageResultType.Success === result && data && Array.isArray(data.Result)) { if (!iError && data && Array.isArray(data.Result)) {
autocompleteCallback( autocompleteCallback(
data.Result.map(item => (item && item[0] ? new EmailModel(item[0], item[1]) : null)).filter(v => v) data.Result.map(item => (item && item[0] ? new EmailModel(item[0], item[1]) : null)).filter(v => v)
); );
} else if (StorageResultType.Abort !== result) { } else if (Remote.ABORT !== iError) {
autocompleteCallback([]); autocompleteCallback([]);
} }
}, query); }, query);

View file

@ -1,15 +1,5 @@
/* eslint quote-props: 0 */ /* eslint quote-props: 0 */
/**
* @enum {string}
*/
export const StorageResultType = {
Success: 'success',
Abort: 'abort',
Error: 'error',
Unload: 'unload'
};
/** /**
* @enum {string} * @enum {string}
*/ */
@ -142,7 +132,6 @@ export const Notification = {
InvalidInputArgument: 903, InvalidInputArgument: 903,
JsonFalse: 950, JsonFalse: 950,
JsonAbort: 951,
JsonParse: 952, JsonParse: 952,
// JsonTimeout: 953, // JsonTimeout: 953,

View file

@ -1,11 +1,10 @@
import { StorageResultType, Notification } from 'Common/Enums'; import { Notification } from 'Common/Enums';
import { Settings } from 'Common/Globals'; import { Settings } from 'Common/Globals';
import { pInt, pString } from 'Common/Utils'; import { pInt, pString } from 'Common/Utils';
import { serverRequest } from 'Common/Links'; import { serverRequest } from 'Common/Links';
let iJsonErrorCount = 0, let iJsonErrorCount = 0,
iTokenErrorCount = 0, iTokenErrorCount = 0;
bUnload = false;
const getURL = (add = '') => serverRequest('Json') + add, const getURL = (add = '') => serverRequest('Json') + add,
@ -71,8 +70,6 @@ fetchJSON = (action, sGetAdd, params, timeout, jsonCallback) => {
return rl.fetchJSON(getURL(sGetAdd), init, sGetAdd ? null : params).then(jsonCallback); return rl.fetchJSON(getURL(sGetAdd), init, sGetAdd ? null : params).then(jsonCallback);
}; };
addEventListener('unload', () => bUnload = true);
export class AbstractFetchRemote export class AbstractFetchRemote
{ {
abort(sAction, bClearOnly) { abort(sAction, bClearOnly) {
@ -110,20 +107,15 @@ export class AbstractFetchRemote
updateToken(data); updateToken(data);
} }
let sType = 'success'; let iError = 0;
if (sAction && oRequests[sAction]) { if (sAction && oRequests[sAction]) {
if (oRequests[sAction].__aborted) { if (oRequests[sAction].__aborted) {
sType = 'abort'; iError = 2;
} }
abort(sAction, true); abort(sAction, true);
} }
const fCall = () => { if (!iError && data) {
if (StorageResultType.Success !== sType && bUnload) {
sType = StorageResultType.Unload;
}
if (StorageResultType.Success === sType && data) {
if (data.Result) { if (data.Result) {
iJsonErrorCount = iTokenErrorCount = 0; iJsonErrorCount = iTokenErrorCount = 0;
} else { } else {
@ -131,36 +123,18 @@ export class AbstractFetchRemote
} }
} }
if (fCallback) { fCallback && fCallback(
fCallback( iError,
sType, data,
StorageResultType.Success === sType ? data : null,
cached, cached,
sAction, sAction,
params params
); );
} }
};
switch (sType) {
case 'success':
sType = StorageResultType.Success;
fCall();
break;
case 'abort':
sType = StorageResultType.Abort;
fCall();
break;
default:
sType = StorageResultType.Error;
setTimeout(fCall, 300);
break;
}
}
) )
.catch(err => { .catch(err => {
console.error(err); console.error(err);
fCallback && fCallback(err.name == 'AbortError' ? Notification.JsonAbort : StorageResultType.Error); fCallback && fCallback(err.name == 'AbortError' ? 2 : 1);
}); });
} }
@ -220,13 +194,13 @@ export class AbstractFetchRemote
// backward capability // backward capability
switch (true) { switch (true) {
case 'success' === textStatus && data && data.Result && action === data.Action: case 'success' === textStatus && data && data.Result && action === data.Action:
type = StorageResultType.Success; type = AbstractFetchRemote.SUCCESS;
break; break;
case 'abort' === textStatus && (!data || !data.__aborted__): case 'abort' === textStatus && (!data || !data.__aborted__):
type = StorageResultType.Abort; type = AbstractFetchRemote.ABORT;
break; break;
default: default:
type = StorageResultType.Error; type = AbstractFetchRemote.ERROR;
break; break;
} }
*/ */
@ -234,7 +208,7 @@ export class AbstractFetchRemote
if (!data.Result || action !== data.Action) { if (!data.Result || action !== data.Action) {
checkResponseError(data); checkResponseError(data);
const err = data ? data.ErrorCode : null; const err = data ? data.ErrorCode : 0;
return Promise.reject(err || Notification.JsonFalse); return Promise.reject(err || Notification.JsonFalse);
} }
@ -243,3 +217,9 @@ export class AbstractFetchRemote
); );
} }
} }
Object.assign(AbstractFetchRemote.prototype, {
SUCCESS : 0,
ERROR : 1,
ABORT : 2
});

View file

@ -1,6 +1,6 @@
import ko from 'ko'; import ko from 'ko';
import { SaveSettingsStep, StorageResultType } from 'Common/Enums'; import { SaveSettingsStep } from 'Common/Enums';
import { SettingsGet } from 'Common/Globals'; import { SettingsGet } from 'Common/Globals';
import { settingsSaveHelperSimpleFunction, defaultOptionsAfterRender } from 'Common/Utils'; import { settingsSaveHelperSimpleFunction, defaultOptionsAfterRender } from 'Common/Utils';
@ -93,12 +93,12 @@ export class ContactsAdminSettings {
}); });
} }
onTestContactsResponse(result, data) { onTestContactsResponse(iError, data) {
this.testContactsSuccess(false); this.testContactsSuccess(false);
this.testContactsError(false); this.testContactsError(false);
this.testContactsErrorMessage(''); this.testContactsErrorMessage('');
if (StorageResultType.Success === result && data && data.Result && data.Result.Result) { if (!iError && data && data.Result && data.Result.Result) {
this.testContactsSuccess(true); this.testContactsSuccess(true);
} else { } else {
this.testContactsError(true); this.testContactsError(true);

View file

@ -1,6 +1,5 @@
import ko from 'ko'; import ko from 'ko';
import { StorageResultType } from 'Common/Enums';
import { showScreenPopup } from 'Knoin/Knoin'; import { showScreenPopup } from 'Knoin/Knoin';
import { DomainAdminStore } from 'Stores/Admin/Domain'; import { DomainAdminStore } from 'Stores/Admin/Domain';
@ -46,8 +45,8 @@ export class DomainsAdminSettings {
DomainAdminStore.fetch(); DomainAdminStore.fetch();
} }
onDomainLoadRequest(sResult, oData) { onDomainLoadRequest(iError, oData) {
if (StorageResultType.Success === sResult && oData && oData.Result) { if (!iError && oData && oData.Result) {
showScreenPopup(DomainPopupView, [oData.Result]); showScreenPopup(DomainPopupView, [oData.Result]);
} }
} }

View file

@ -1,6 +1,6 @@
import ko from 'ko'; import ko from 'ko';
import { StorageResultType, Notification } from 'Common/Enums'; import { Notification } from 'Common/Enums';
import { getNotification } from 'Common/Translator'; import { getNotification } from 'Common/Translator';
import { PackageAdminStore } from 'Stores/Admin/Package'; import { PackageAdminStore } from 'Stores/Admin/Package';
@ -34,8 +34,8 @@ export class PackagesAdminSettings {
} }
requestHelper(packageToRequest, install) { requestHelper(packageToRequest, install) {
return (result, data) => { return (iError, data) => {
if (StorageResultType.Success !== result || !data || !data.Result) { if (iError || !data || !data.Result) {
if (data && data.ErrorCode) { if (data && data.ErrorCode) {
this.packagesError(getNotification(data.ErrorCode)); this.packagesError(getNotification(data.ErrorCode));
} else { } else {
@ -52,7 +52,7 @@ export class PackagesAdminSettings {
} }
}); });
if (StorageResultType.Success === result && data && data.Result && data.Result.Reload) { if (!iError && data && data.Result && data.Result.Reload) {
location.reload(); location.reload();
} else { } else {
PackageAdminStore.fetch(); PackageAdminStore.fetch();

View file

@ -1,6 +1,6 @@
import ko from 'ko'; import ko from 'ko';
import { StorageResultType, Notification } from 'Common/Enums'; import { Notification } from 'Common/Enums';
import { SettingsGet } from 'Common/Globals'; import { SettingsGet } from 'Common/Globals';
import { getNotification } from 'Common/Translator'; import { getNotification } from 'Common/Translator';
@ -53,14 +53,14 @@ export class PluginsAdminSettings {
PluginAdminStore.fetch(); PluginAdminStore.fetch();
} }
onPluginLoadRequest(result, data) { onPluginLoadRequest(iError, data) {
if (StorageResultType.Success === result && data && data.Result) { if (!iError && data && data.Result) {
showScreenPopup(PluginPopupView, [data.Result]); showScreenPopup(PluginPopupView, [data.Result]);
} }
} }
onPluginDisableRequest(result, data) { onPluginDisableRequest(iError, data) {
if (StorageResultType.Success === result && data) { if (!iError && data) {
if (!data.Result && data.ErrorCode) { if (!data.Result && data.ErrorCode) {
if (Notification.UnsupportedPluginPackage === data.ErrorCode && data.ErrorMessage && data.ErrorMessage) { if (Notification.UnsupportedPluginPackage === data.ErrorCode && data.ErrorMessage && data.ErrorMessage) {
PluginAdminStore.error(data.ErrorMessage); PluginAdminStore.error(data.ErrorMessage);

View file

@ -1,6 +1,5 @@
import ko from 'ko'; import ko from 'ko';
import { StorageResultType } from 'Common/Enums';
import { SettingsGet } from 'Common/Globals'; import { SettingsGet } from 'Common/Globals';
import { AppAdminStore } from 'Stores/Admin/App'; import { AppAdminStore } from 'Stores/Admin/App';
@ -112,8 +111,8 @@ export class SecurityAdminSettings {
}, 50); }, 50);
} }
onNewAdminPasswordResponse(result, data) { onNewAdminPasswordResponse(iError, data) {
if (StorageResultType.Success === result && data && data.Result) { if (!iError && data && data.Result) {
this.adminPassword(''); this.adminPassword('');
this.adminPasswordNew(''); this.adminPasswordNew('');
this.adminPasswordNew2(''); this.adminPasswordNew2('');

View file

@ -1,6 +1,6 @@
import ko from 'ko'; import ko from 'ko';
import { Capa, StorageResultType } from 'Common/Enums'; import { Capa } from 'Common/Enums';
import { Settings } from 'Common/Globals'; import { Settings } from 'Common/Globals';
import { AccountUserStore } from 'Stores/User/Account'; import { AccountUserStore } from 'Stores/User/Account';
@ -53,8 +53,8 @@ export class AccountsUserSettings {
if (accountToRemove) { if (accountToRemove) {
this.accounts.remove((account) => accountToRemove === account); this.accounts.remove((account) => accountToRemove === account);
Remote.accountDelete((result, data) => { Remote.accountDelete((iError, data) => {
if (StorageResultType.Success === result && data && data.Result && data.Reload) { if (!iError && data && data.Result && data.Reload) {
rl.route.root(); rl.route.root();
setTimeout(() => location.reload(), 1); setTimeout(() => location.reload(), 1);
} else { } else {

View file

@ -1,7 +1,7 @@
import ko from 'ko'; import ko from 'ko';
import { delegateRunOnDestroy } from 'Common/UtilsUser'; import { delegateRunOnDestroy } from 'Common/UtilsUser';
import { StorageResultType, Notification } from 'Common/Enums'; import { Notification } from 'Common/Enums';
import { getNotification } from 'Common/Translator'; import { getNotification } from 'Common/Translator';
import { SieveUserStore } from 'Stores/User/Sieve'; import { SieveUserStore } from 'Stores/User/Sieve';
@ -36,11 +36,11 @@ export class FiltersUserSettings {
this.loading(true); this.loading(true);
this.serverError(false); this.serverError(false);
Remote.filtersGet((result, data) => { Remote.filtersGet((iError, data) => {
this.loading(false); this.loading(false);
this.scripts([]); this.scripts([]);
if (StorageResultType.Success === result && data && data.Result) { if (!iError && data && data.Result) {
SieveUserStore.capa(data.Result.Capa); SieveUserStore.capa(data.Result.Capa);
/* /*
this.scripts( this.scripts(
@ -73,7 +73,7 @@ export class FiltersUserSettings {
this.serverError(false); this.serverError(false);
Remote.filtersScriptDelete( Remote.filtersScriptDelete(
(result, data) => { (result, data) => {
if (StorageResultType.Success === result && data && data.Result) { if (Remote.SUCCESS === result && data && data.Result) {
this.scripts.remove(script); this.scripts.remove(script);
delegateRunOnDestroy(script); delegateRunOnDestroy(script);
} else { } else {
@ -92,7 +92,7 @@ export class FiltersUserSettings {
this.serverError(false); this.serverError(false);
Remote.filtersScriptActivate( Remote.filtersScriptActivate(
(result, data) => { (result, data) => {
if (StorageResultType.Success === result && data && data.Result) { if (Remote.SUCCESS === result && data && data.Result) {
this.scripts.forEach(script => script.active(script.name() === name)); this.scripts.forEach(script => script.active(script.name() === name));
} else { } else {
this.setError((data && data.ErrorCode) this.setError((data && data.ErrorCode)

View file

@ -1,6 +1,5 @@
import ko from 'ko'; import ko from 'ko';
import Remote from 'Remote/Admin/Fetch'; import Remote from 'Remote/Admin/Fetch';
import { StorageResultType } from 'Common/Enums';
export const DomainAdminStore = ko.observableArray(); export const DomainAdminStore = ko.observableArray();
@ -8,9 +7,9 @@ DomainAdminStore.loading = ko.observable(false);
DomainAdminStore.fetch = () => { DomainAdminStore.fetch = () => {
DomainAdminStore.loading(true); DomainAdminStore.loading(true);
Remote.domainList((result, data) => { Remote.domainList((iError, data) => {
DomainAdminStore.loading(false); DomainAdminStore.loading(false);
if (StorageResultType.Success === result && data && data.Result) { if (!iError && data && data.Result) {
DomainAdminStore( DomainAdminStore(
Object.entries(data.Result).map(([name, [enabled, alias]]) => ({ Object.entries(data.Result).map(([name, [enabled, alias]]) => ({
name: name, name: name,

View file

@ -1,6 +1,5 @@
import ko from 'ko'; import ko from 'ko';
import Remote from 'Remote/Admin/Fetch'; import Remote from 'Remote/Admin/Fetch';
import { StorageResultType } from 'Common/Enums';
export const PackageAdminStore = ko.observableArray(); export const PackageAdminStore = ko.observableArray();
@ -10,9 +9,9 @@ PackageAdminStore.loading = ko.observable(false);
PackageAdminStore.fetch = () => { PackageAdminStore.fetch = () => {
PackageAdminStore.loading(true); PackageAdminStore.loading(true);
Remote.packagesList((result, data) => { Remote.packagesList((iError, data) => {
PackageAdminStore.loading(false); PackageAdminStore.loading(false);
if (StorageResultType.Success === result && data && data.Result) { if (!iError && data && data.Result) {
PackageAdminStore.real(!!data.Result.Real); PackageAdminStore.real(!!data.Result.Real);
let list = []; let list = [];

View file

@ -1,6 +1,5 @@
import ko from 'ko'; import ko from 'ko';
import Remote from 'Remote/Admin/Fetch'; import Remote from 'Remote/Admin/Fetch';
import { StorageResultType } from 'Common/Enums';
export const PluginAdminStore = ko.observableArray(); export const PluginAdminStore = ko.observableArray();
@ -10,9 +9,9 @@ PluginAdminStore.error = ko.observable('');
PluginAdminStore.fetch = () => { PluginAdminStore.fetch = () => {
PluginAdminStore.loading(true); PluginAdminStore.loading(true);
Remote.pluginList((result, data) => { Remote.pluginList((iError, data) => {
PluginAdminStore.loading(false); PluginAdminStore.loading(false);
if (StorageResultType.Success === result && data && data.Result) { if (!iError && data && data.Result) {
PluginAdminStore( PluginAdminStore(
data.Result.map(item => ({ data.Result.map(item => ({
name: item.Name, name: item.Name,

View file

@ -1,6 +1,6 @@
import ko from 'ko'; import ko from 'ko';
import { StorageResultType, Notification } from 'Common/Enums'; import { Notification } from 'Common/Enums';
import { Focused, MessageSetAction } from 'Common/EnumsUser'; import { Focused, MessageSetAction } from 'Common/EnumsUser';
import { doc, elementById } from 'Common/Globals'; import { doc, elementById } from 'Common/Globals';
import { pInt, pString } from 'Common/Utils'; import { pInt, pString } from 'Common/Utils';
@ -638,13 +638,10 @@ export const MessageUserStore = new class {
* @param {FetchJsonDefaultResponse} oData * @param {FetchJsonDefaultResponse} oData
* @param {boolean} bCached * @param {boolean} bCached
*/ */
onMessageResponse(sResult, oData, bCached) { onMessageResponse(iError, oData, bCached) {
if (StorageResultType.Success === sResult && oData && oData.Result) { if (!iError && oData && oData.Result) {
this.setMessage(oData, bCached); this.setMessage(oData, bCached);
} else if (StorageResultType.Unload === sResult) { } else if (Remote.ABORT !== iError) {
this.message(null);
this.messageError('');
} else if (StorageResultType.Abort !== sResult) {
this.message(null); this.message(null);
this.messageError( this.messageError(
oData && oData.ErrorCode ? getNotification(oData.ErrorCode) : getNotification(Notification.UnknownError) oData && oData.ErrorCode ? getNotification(oData.ErrorCode) : getNotification(Notification.UnknownError)

View file

@ -1,6 +1,6 @@
import ko from 'ko'; import ko from 'ko';
import { StorageResultType, Notification } from 'Common/Enums'; import { Notification } from 'Common/Enums';
import { Settings } from 'Common/Globals'; import { Settings } from 'Common/Globals';
import { getNotification } from 'Common/Translator'; import { getNotification } from 'Common/Translator';
@ -59,8 +59,8 @@ class LoginAdminView extends AbstractViewCenter {
this.submitRequest(true); this.submitRequest(true);
Remote.adminLogin( Remote.adminLogin(
(sResult, oData) => { (iError, oData) => {
if (StorageResultType.Success === sResult && oData && 'AdminLogin' === oData.Action) { if (!iError && oData && 'AdminLogin' === oData.Action) {
if (oData.Result) { if (oData.Result) {
rl.route.reload(); rl.route.reload();
} else if (oData.ErrorCode) { } else if (oData.ErrorCode) {

View file

@ -1,4 +1,4 @@
import { StorageResultType, Notification } from 'Common/Enums'; import { Notification } from 'Common/Enums';
import { getNotification } from 'Common/Translator'; import { getNotification } from 'Common/Translator';
import Remote from 'Remote/User/Fetch'; import Remote from 'Remote/User/Fetch';
@ -46,9 +46,9 @@ class AccountPopupView extends AbstractViewPopup {
this.submitRequest(true); this.submitRequest(true);
Remote.accountSetup( Remote.accountSetup(
(result, data) => { (iError, data) => {
this.submitRequest(false); this.submitRequest(false);
if (StorageResultType.Success === result && data) { if (!iError && data) {
if (data.Result) { if (data.Result) {
rl.app.accountsAndIdentities(); rl.app.accountsAndIdentities();
this.cancelCommand(); this.cancelCommand();

View file

@ -2,7 +2,6 @@ import ko from 'ko';
import { import {
KeyState, KeyState,
StorageResultType,
Notification, Notification,
UploadErrorCode UploadErrorCode
} from 'Common/Enums'; } from 'Common/Enums';
@ -602,13 +601,13 @@ class ComposePopupView extends AbstractViewPopup {
} }
} }
sendMessageResponse(statusResult, data) { sendMessageResponse(iError, data) {
let result = false, let result = false,
message = ''; message = '';
this.sending(false); this.sending(false);
if (StorageResultType.Success === statusResult && data && data.Result) { if (!iError && data && data.Result) {
result = true; result = true;
this.modalVisibility() && this.closeCommand && this.closeCommand(); this.modalVisibility() && this.closeCommand && this.closeCommand();
} }
@ -631,12 +630,12 @@ class ComposePopupView extends AbstractViewPopup {
this.reloadDraftFolder(); this.reloadDraftFolder();
} }
saveMessageResponse(statusResult, oData) { saveMessageResponse(iError, oData) {
let result = false; let result = false;
this.saving(false); this.saving(false);
if (StorageResultType.Success === statusResult && oData && oData.Result) { if (!iError && oData && oData.Result) {
if (oData.Result.NewFolder && oData.Result.NewUid) { if (oData.Result.NewFolder && oData.Result.NewUid) {
result = true; result = true;
@ -1064,8 +1063,8 @@ class ComposePopupView extends AbstractViewPopup {
const downloads = this.getAttachmentsDownloadsForUpload(); const downloads = this.getAttachmentsDownloadsForUpload();
if (isNonEmptyArray(downloads)) { if (isNonEmptyArray(downloads)) {
Remote.messageUploadAttachments((sResult, oData) => { Remote.messageUploadAttachments((iError, oData) => {
if (StorageResultType.Success === sResult && oData && oData.Result) { if (!iError && oData && oData.Result) {
Object.entries(oData.Result).forEach(([tempName, id]) => { Object.entries(oData.Result).forEach(([tempName, id]) => {
const attachment = this.getAttachmentById(id); const attachment = this.getAttachmentById(id);
if (attachment) { if (attachment) {

View file

@ -2,7 +2,6 @@ import ko from 'ko';
import { import {
SaveSettingsStep, SaveSettingsStep,
StorageResultType,
Notification, Notification,
KeyState KeyState
} from 'Common/Enums'; } from 'Common/Enums';
@ -224,12 +223,12 @@ class ContactsPopupView extends AbstractViewPopup {
const requestUid = Jua.randomId(); const requestUid = Jua.randomId();
Remote.contactSave( Remote.contactSave(
(sResult, oData) => { (iError, oData) => {
let res = false; let res = false;
this.viewSaving(false); this.viewSaving(false);
if ( if (
StorageResultType.Success === sResult && !iError &&
oData && oData &&
oData.Result && oData.Result &&
oData.Result.RequestUid === requestUid && oData.Result.RequestUid === requestUid &&
@ -259,8 +258,8 @@ class ContactsPopupView extends AbstractViewPopup {
} }
syncCommand() { syncCommand() {
rl.app.contactsSync((result, data) => { rl.app.contactsSync((iError, data) => {
if (StorageResultType.Success !== result || !data || !data.Result) { if (iError || !data || !data.Result) {
alert(getNotification(data && data.ErrorCode ? data.ErrorCode : Notification.ContactsSyncError)); alert(getNotification(data && data.ErrorCode ? data.ErrorCode : Notification.ContactsSyncError));
} }
@ -398,11 +397,11 @@ class ContactsPopupView extends AbstractViewPopup {
} }
/** /**
* @param {string} sResult * @param {int} iError
* @param {FetchJsonDefaultResponse} oData * @param {FetchJsonDefaultResponse} oData
*/ */
deleteResponse(sResult, oData) { deleteResponse(iError, oData) {
if (500 < (StorageResultType.Success === sResult && oData && oData.Time ? pInt(oData.Time) : 0)) { if (500 < (!iError && oData && oData.Time ? pInt(oData.Time) : 0)) {
this.reloadContactList(this.bDropPageAfterDelete); this.reloadContactList(this.bDropPageAfterDelete);
} else { } else {
setTimeout(() => { setTimeout(() => {
@ -460,11 +459,11 @@ class ContactsPopupView extends AbstractViewPopup {
ContactUserStore.loading(true); ContactUserStore.loading(true);
Remote.contacts( Remote.contacts(
(result, data) => { (iError, data) => {
let count = 0, let count = 0,
list = []; list = [];
if (StorageResultType.Success === result && data && data.Result && data.Result.List) { if (!iError && data && data.Result && data.Result.List) {
if (Array.isNotEmpty(data.Result.List)) { if (Array.isNotEmpty(data.Result.List)) {
data.Result.List.forEach(item => { data.Result.List.forEach(item => {
item = ContactModel.reviveFromJson(item); item = ContactModel.reviveFromJson(item);

View file

@ -1,4 +1,4 @@
import { StorageResultType, Notification } from 'Common/Enums'; import { Notification } from 'Common/Enums';
import { pInt, pString } from 'Common/Utils'; import { pInt, pString } from 'Common/Utils';
import { i18n } from 'Common/Translator'; import { i18n } from 'Common/Translator';
@ -205,9 +205,9 @@ class DomainPopupView extends AbstractViewPopup {
this.clearTesting(); this.clearTesting();
} }
onTestConnectionResponse(sResult, oData) { onTestConnectionResponse(iError, oData) {
this.testing(false); this.testing(false);
if (StorageResultType.Success === sResult && oData.Result) { if (!iError && oData.Result) {
let bImap = false, let bImap = false,
bSieve = false; bSieve = false;
@ -248,9 +248,9 @@ class DomainPopupView extends AbstractViewPopup {
} }
} }
onDomainCreateOrSaveResponse(sResult, oData) { onDomainCreateOrSaveResponse(iError, oData) {
this.saving(false); this.saving(false);
if (StorageResultType.Success === sResult && oData) { if (!iError && oData) {
if (oData.Result) { if (oData.Result) {
DomainAdminStore.fetch(); DomainAdminStore.fetch();
this.closeCommand(); this.closeCommand();

View file

@ -1,6 +1,6 @@
import ko from 'ko'; import ko from 'ko';
import { StorageResultType, Notification } from 'Common/Enums'; import { Notification } from 'Common/Enums';
import { i18n } from 'Common/Translator'; import { i18n } from 'Common/Translator';
import { DomainAdminStore } from 'Stores/Admin/Domain'; import { DomainAdminStore } from 'Stores/Admin/Domain';
@ -41,9 +41,9 @@ class DomainAliasPopupView extends AbstractViewPopup {
Remote.createDomainAlias(this.onDomainAliasCreateOrSaveResponse, this.name(), this.alias()); Remote.createDomainAlias(this.onDomainAliasCreateOrSaveResponse, this.name(), this.alias());
} }
onDomainAliasCreateOrSaveResponse(result, data) { onDomainAliasCreateOrSaveResponse(iError, data) {
this.saving(false); this.saving(false);
if (StorageResultType.Success === result && data) { if (!iError && data) {
if (data.Result) { if (data.Result) {
DomainAdminStore.fetch(); DomainAdminStore.fetch();
this.closeCommand(); this.closeCommand();

View file

@ -1,4 +1,4 @@
import { StorageResultType, Notification } from 'Common/Enums'; import { Notification } from 'Common/Enums';
import { i18n, getNotification } from 'Common/Translator'; import { i18n, getNotification } from 'Common/Translator';
import { setFolderHash } from 'Common/Cache'; import { setFolderHash } from 'Common/Cache';
@ -54,9 +54,9 @@ class FolderClearPopupView extends AbstractViewPopup {
setFolderHash(folderToClear.fullNameRaw, ''); setFolderHash(folderToClear.fullNameRaw, '');
Remote.folderClear((result, data) => { Remote.folderClear((iError, data) => {
this.clearingProcess(false); this.clearingProcess(false);
if (StorageResultType.Success === result && data && data.Result) { if (!iError && data && data.Result) {
rl.app.reloadMessageList(true); rl.app.reloadMessageList(true);
this.cancelCommand(); this.cancelCommand();
} else { } else {

View file

@ -1,4 +1,4 @@
import { StorageResultType, Notification } from 'Common/Enums'; import { Notification } from 'Common/Enums';
import { getNotification } from 'Common/Translator'; import { getNotification } from 'Common/Translator';
import Remote from 'Remote/User/Fetch'; import Remote from 'Remote/User/Fetch';
@ -96,9 +96,9 @@ class IdentityPopupView extends AbstractViewPopup {
this.submitRequest(true); this.submitRequest(true);
Remote.identityUpdate( Remote.identityUpdate(
(result, data) => { (iError, data) => {
this.submitRequest(false); this.submitRequest(false);
if (StorageResultType.Success === result && data) { if (!iError && data) {
if (data.Result) { if (data.Result) {
rl.app.accountsAndIdentities(); rl.app.accountsAndIdentities();
this.cancelCommand(); this.cancelCommand();

View file

@ -1,6 +1,6 @@
import ko from 'ko'; import ko from 'ko';
import { KeyState, StorageResultType, Notification } from 'Common/Enums'; import { KeyState, Notification } from 'Common/Enums';
import { getNotification, i18n } from 'Common/Translator'; import { getNotification, i18n } from 'Common/Translator';
import Remote from 'Remote/Admin/Fetch'; import Remote from 'Remote/Admin/Fetch';
@ -52,8 +52,8 @@ class PluginPopupView extends AbstractViewPopup {
Remote.pluginSettingsUpdate(this.onPluginSettingsUpdateResponse, list); Remote.pluginSettingsUpdate(this.onPluginSettingsUpdateResponse, list);
} }
onPluginSettingsUpdateResponse(result, data) { onPluginSettingsUpdateResponse(iError, data) {
if (StorageResultType.Success === result && data && data.Result) { if (!iError && data && data.Result) {
this.cancelCommand(); this.cancelCommand();
} else { } else {
this.saveError(''); this.saveError('');

View file

@ -1,7 +1,7 @@
import ko from 'ko'; import ko from 'ko';
import { delegateRunOnDestroy } from 'Common/UtilsUser'; import { delegateRunOnDestroy } from 'Common/UtilsUser';
import { StorageResultType, Notification } from 'Common/Enums'; import { Notification } from 'Common/Enums';
import { getNotification } from 'Common/Translator'; import { getNotification } from 'Common/Translator';
import { i18nToNodes } from 'Common/Translator'; import { i18nToNodes } from 'Common/Translator';
@ -58,10 +58,10 @@ class SieveScriptPopupView extends AbstractViewPopup {
} }
Remote.filtersScriptSave( Remote.filtersScriptSave(
(result, data) => { (iError, data) => {
self.saving = false; self.saving = false;
if (StorageResultType.Success === result && data && data.Result) { if (!iError && data && data.Result) {
script.exists() || SieveUserStore.scripts.push(script); script.exists() || SieveUserStore.scripts.push(script);
script.exists(true); script.exists(true);
script.hasChanges(false); script.hasChanges(false);

View file

@ -1,4 +1,4 @@
import { StorageResultType, Notification } from 'Common/Enums'; import { Notification } from 'Common/Enums';
import { getNotification } from 'Common/Translator'; import { getNotification } from 'Common/Translator';
import { HtmlEditor } from 'Common/Html'; import { HtmlEditor } from 'Common/Html';
@ -53,9 +53,9 @@ class TemplatePopupView extends AbstractViewPopup {
this.submitRequest(true); this.submitRequest(true);
Remote.templateSetup( Remote.templateSetup(
(result, data) => { (iError, data) => {
this.submitRequest(false); this.submitRequest(false);
if (StorageResultType.Success === result && data) { if (!iError && data) {
if (data.Result) { if (data.Result) {
rl.app.templates(); rl.app.templates();
this.cancelCommand(); this.cancelCommand();
@ -124,11 +124,11 @@ class TemplatePopupView extends AbstractViewPopup {
this.bodyLoading(true); this.bodyLoading(true);
this.bodyError(false); this.bodyError(false);
Remote.templateGetById((result, data) => { Remote.templateGetById((iError, data) => {
this.bodyLoading(false); this.bodyLoading(false);
if ( if (
StorageResultType.Success === result && !iError &&
data && data &&
TemplateModel.validJson(data.Result) && TemplateModel.validJson(data.Result) &&
null != data.Result.Body null != data.Result.Body

View file

@ -1,4 +1,4 @@
import { Capa, StorageResultType } from 'Common/Enums'; import { Capa } from 'Common/Enums';
import { Settings } from 'Common/Globals'; import { Settings } from 'Common/Globals';
import { pString } from 'Common/Utils'; import { pString } from 'Common/Utils';
import { i18n, trigger as translatorTrigger } from 'Common/Translator'; import { i18n, trigger as translatorTrigger } from 'Common/Translator';
@ -43,8 +43,8 @@ class TwoFactorConfigurationPopupView extends AbstractViewPopup {
value = !!value; value = !!value;
if (value && this.twoFactorTested()) { if (value && this.twoFactorTested()) {
this.viewEnable_(value); this.viewEnable_(value);
Remote.enableTwoFactor((result, data) => { Remote.enableTwoFactor((iError, data) => {
if (StorageResultType.Success !== result || !data || !data.Result) { if (iError || !data || !data.Result) {
this.viewEnable_(false); this.viewEnable_(false);
} }
}, true); }, true);
@ -53,8 +53,8 @@ class TwoFactorConfigurationPopupView extends AbstractViewPopup {
this.viewEnable_(value); this.viewEnable_(value);
} }
Remote.enableTwoFactor((result, data) => { Remote.enableTwoFactor((iError, data) => {
if (StorageResultType.Success !== result || !data || !data.Result) { if (iError || !data || !data.Result) {
this.viewEnable_(false); this.viewEnable_(false);
} }
}, false); }, false);
@ -148,11 +148,11 @@ class TwoFactorConfigurationPopupView extends AbstractViewPopup {
); );
} }
onResult(sResult, oData) { onResult(iError, oData) {
this.processing(false); this.processing(false);
this.clearing(false); this.clearing(false);
if (StorageResultType.Success === sResult && oData && oData.Result) { if (!iError && oData && oData.Result) {
this.viewUser(pString(oData.Result.User)); this.viewUser(pString(oData.Result.User));
this.viewEnable_(!!oData.Result.Enable); this.viewEnable_(!!oData.Result.Enable);
this.twoFactorStatus(!!oData.Result.IsSet); this.twoFactorStatus(!!oData.Result.IsSet);
@ -176,10 +176,10 @@ class TwoFactorConfigurationPopupView extends AbstractViewPopup {
} }
} }
onShowSecretResult(result, data) { onShowSecretResult(iError, data) {
this.secreting(false); this.secreting(false);
if (StorageResultType.Success === result && data && data.Result) { if (!iError && data && data.Result) {
this.viewSecret(pString(data.Result.Secret)); this.viewSecret(pString(data.Result.Secret));
this.viewUrlTitle(pString(data.Result.UrlTitle)); this.viewUrlTitle(pString(data.Result.UrlTitle));
this.viewUrl(qr.toDataURL({ level: 'M', size: 6, value: this.getQr() })); this.viewUrl(qr.toDataURL({ level: 'M', size: 6, value: this.getQr() }));

View file

@ -1,5 +1,3 @@
import { StorageResultType } from 'Common/Enums';
import Remote from 'Remote/User/Fetch'; import Remote from 'Remote/User/Fetch';
import { decorateKoCommands } from 'Knoin/Knoin'; import { decorateKoCommands } from 'Knoin/Knoin';
@ -26,9 +24,9 @@ class TwoFactorTestPopupView extends AbstractViewPopup {
testCodeCommand() { testCodeCommand() {
this.testing(true); this.testing(true);
Remote.testTwoFactor((result, data) => { Remote.testTwoFactor((iError, data) => {
this.testing(false); this.testing(false);
this.codeStatus(StorageResultType.Success === result && data && !!data.Result); this.codeStatus(!iError && data && !!data.Result);
if (this.koTestedTrigger && this.codeStatus()) { if (this.koTestedTrigger && this.codeStatus()) {
this.koTestedTrigger(true); this.koTestedTrigger(true);

View file

@ -1,7 +1,6 @@
import ko from 'ko'; import ko from 'ko';
import { import {
StorageResultType,
Notification Notification
} from 'Common/Enums'; } from 'Common/Enums';
@ -151,8 +150,8 @@ class LoginUserView extends AbstractViewCenter {
const fLoginRequest = (sLoginPassword) => { const fLoginRequest = (sLoginPassword) => {
Remote.login( Remote.login(
(sResult, oData) => { (iError, oData) => {
if (StorageResultType.Success === sResult && oData && 'Login' === oData.Action) { if (!iError && oData && 'Login' === oData.Action) {
if (oData.Result) { if (oData.Result) {
if (oData.TwoFactorAuth) { if (oData.TwoFactorAuth) {
this.additionalCode(''); this.additionalCode('');

View file

@ -2,8 +2,7 @@ import ko from 'ko';
import { import {
Capa, Capa,
KeyState, KeyState
StorageResultType
} from 'Common/Enums'; } from 'Common/Enums';
import { import {
@ -853,8 +852,8 @@ export class MessageListMailBoxUserView extends AbstractViewRight {
addRequestedMessage(message.folder, message.uid); addRequestedMessage(message.folder, message.uid);
Remote.message( Remote.message(
(result, data) => { (iError, data) => {
const next = !!(StorageResultType.Success === result && data && data.Result); const next = !!(!iError && data && data.Result);
setTimeout(() => { setTimeout(() => {
this.bPrefetch = false; this.bPrefetch = false;
next && this.prefetchNextTick(); next && this.prefetchNextTick();

8
dev/bootstrap.js vendored
View file

@ -1,5 +1,4 @@
import { doc, elementById, dropdownVisibility, Settings } from 'Common/Globals'; import { doc, elementById, dropdownVisibility, Settings } from 'Common/Globals';
import { StorageResultType } from 'Common/Enums';
import { i18n } from 'Common/Translator'; import { i18n } from 'Common/Translator';
import { root } from 'Common/Links'; import { root } from 'Common/Links';
@ -35,7 +34,12 @@ export default (App) => {
rl.i18n = i18n; rl.i18n = i18n;
rl.Enums = { rl.Enums = {
StorageResultType: StorageResultType StorageResultType: {
Success: 0,
Error: 1,
Abort: 2,
Unload: 3
}
}; };
rl.Dropdowns = []; rl.Dropdowns = [];

View file

@ -106,9 +106,9 @@
this.newPassword2(''); this.newPassword2('');
} }
onChangePasswordResponse(result, data) { onChangePasswordResponse(iError, data) {
this.reset(false); this.reset(false);
if (rl.Enums.StorageResultType.Success === result && data && data.Result) { if (!iError && data && data.Result) {
this.currentPassword(''); this.currentPassword('');
this.newPassword(''); this.newPassword('');
this.newPassword2(''); this.newPassword2('');

View file

@ -22,20 +22,23 @@
this.loading(true); this.loading(true);
window.rl.pluginRemoteRequest(function (sResult, oData) { rl.pluginRemoteRequest(function (iError, oData) {
self.loading(false); self.loading(false);
if (window.rl.Enums.StorageResultType.Success === sResult && oData && oData.Result) if (!iError && oData && oData.Result) {
{
self.php(oData.Result.PHP || ''); self.php(oData.Result.PHP || '');
} }
if (rl.Enums.StorageResultType.Abort === iError) {
// show abort
}
}, 'JsonAdminGetData'); }, 'JsonAdminGetData');
}; };
window.rl.addSettingsViewModelForAdmin(CustomAdminSettings, 'PluginCustomAdminSettingsTab', rl.addSettingsViewModelForAdmin(CustomAdminSettings, 'PluginCustomAdminSettingsTab',
'SETTINGS_CUSTOM_ADMIN_CUSTOM_TAB_PLUGIN/TAB_NAME', 'custom'); 'SETTINGS_CUSTOM_ADMIN_CUSTOM_TAB_PLUGIN/TAB_NAME', 'custom');
}()); }());

View file

@ -33,14 +33,17 @@
this.saving(true); this.saving(true);
window.rl.pluginRemoteRequest(function (sResult, oData) { rl.pluginRemoteRequest(function (iError, oData) {
self.saving(false); self.saving(false);
if (window.rl.Enums.StorageResultType.Success === sResult && oData && oData.Result) if (!iError && oData && oData.Result)
{ {
// true // true
} }
else if (rl.Enums.StorageResultType.Abort === iError) {
// show abort
}
else else
{ {
// false // false
@ -58,11 +61,11 @@
this.loading(true); this.loading(true);
window.rl.pluginRemoteRequest(function (sResult, oData) { rl.pluginRemoteRequest(function (iError, oData) {
self.loading(false); self.loading(false);
if (window.rl.Enums.StorageResultType.Success === sResult && oData && oData.Result) if (!iError && oData && oData.Result)
{ {
self.userSkype(oData.Result.UserSkype || ''); self.userSkype(oData.Result.UserSkype || '');
self.userFacebook(oData.Result.UserFacebook || ''); self.userFacebook(oData.Result.UserFacebook || '');
@ -72,7 +75,7 @@
}; };
window.rl.addSettingsViewModel(CustomUserSettings, 'PluginCustomSettingsTab', rl.addSettingsViewModel(CustomUserSettings, 'PluginCustomSettingsTab',
'SETTINGS_CUSTOM_PLUGIN/TAB_NAME', 'custom'); 'SETTINGS_CUSTOM_PLUGIN/TAB_NAME', 'custom');
}()); }());