Cleanup __APP__/getApp code

This commit is contained in:
djmaze 2020-09-15 09:29:25 +02:00
parent 29cf711a6a
commit b904eca98e
34 changed files with 86 additions and 146 deletions

View file

@ -18,7 +18,7 @@ export const useKeyboardShortcuts = ko.observable(true);
* @type {boolean} * @type {boolean}
*/ */
export const bMobileDevice = (/android|iphone|ipod|ipad|blackberry|mobile/i).test( export const bMobileDevice = (/android|iphone|ipod|ipad|blackberry|mobile/i).test(
(window.navigator && navigator.userAgent && navigator.userAgent.toLowerCase()) || '' (navigator.userAgent && navigator.userAgent.toLowerCase()) || ''
); );
export const VIEW_MODELS = { export const VIEW_MODELS = {
@ -59,14 +59,14 @@ export const keyScope = ko.computed({
// restoreKeyFilter // restoreKeyFilter
key.filter = (event) => { key.filter = (event) => {
if (useKeyboardShortcuts()) { if (useKeyboardShortcuts()) {
const el = event.target || event.srcElement, const el = event.target,
tagName = el ? el.tagName.toUpperCase() : ''; nodeName = el ? el.nodeName : '';
return !( return !(
'INPUT' === tagName || 'INPUT' === nodeName ||
'SELECT' === tagName || 'SELECT' === nodeName ||
'TEXTAREA' === tagName || 'TEXTAREA' === nodeName ||
(el && 'DIV' === tagName && ('editorHtmlArea' === el.className || 'true' === '' + el.contentEditable)) (el && el.contentEditable)
); );
} }
@ -96,10 +96,3 @@ dropdownVisibility.subscribe((value) => {
keyScope(keyScopeFake()); keyScope(keyScopeFake());
} }
}); });
/**
* @type {*}
*/
export const data = {
__APP__: null
};

View file

@ -55,6 +55,6 @@ export function timeToNode(element, time) {
} }
addEventListener('reload-time', () => setTimeout(() => addEventListener('reload-time', () => setTimeout(() =>
document.querySelectorAll('[data-bind*="moment:"]').forEach(element => timeToNode(element)) document.querySelectorAll('[data-bind*="moment:"]').forEach(element => timeToNode(element))
, 1) , 1)
); );

View file

@ -1,5 +1,3 @@
import { data as GlobalsData } from 'Common/Globals';
const USER_VIEW_MODELS_HOOKS = [], const USER_VIEW_MODELS_HOOKS = [],
ADMIN_VIEW_MODELS_HOOKS = []; ADMIN_VIEW_MODELS_HOOKS = [];
@ -18,8 +16,8 @@ export function mainSettingsGet(name) {
* @param {?number=} timeout * @param {?number=} timeout
*/ */
export function remoteRequest(callback, action, parameters, timeout) { export function remoteRequest(callback, action, parameters, timeout) {
if (GlobalsData.__APP__) { if (rl.app) {
GlobalsData.__APP__.remote().defaultRequest(callback, 'Plugin' + action, parameters, timeout); rl.app.remote().defaultRequest(callback, 'Plugin' + action, parameters, timeout);
} }
} }

4
dev/External/ko.js vendored
View file

@ -423,7 +423,7 @@ ko.bindingHandlers.command = {
} }
element.classList.add('command'); element.classList.add('command');
ko.bindingHandlers[element.tagName.match(/FORM/i) ? 'submit' : 'click'].init( ko.bindingHandlers['FORM'==element.nodeName ? 'submit' : 'click'].init(
element, element,
fValueAccessor, fValueAccessor,
fAllBindingsAccessor, fAllBindingsAccessor,
@ -447,7 +447,7 @@ ko.bindingHandlers.command = {
['command-disabled','disable','disabled'].forEach(s=>cl.toggle(s, !result)); ['command-disabled','disable','disabled'].forEach(s=>cl.toggle(s, !result));
cl.toggle('no-disabled', !!result); cl.toggle('no-disabled', !!result);
if (element.tagName.match(/INPUT|TEXTAREA|BUTTON/i)) { if (element.nodeName.match(/INPUT|TEXTAREA|BUTTON/)) {
element.disabled = !result; element.disabled = !result;
} }
} }

View file

@ -1,6 +0,0 @@
/**
* @returns {AppAdmin}
*/
export function getApp() {
return require('App/Admin').default;
}

View file

@ -1,6 +0,0 @@
/**
* @returns {AppUser}
*/
export function getApp() {
return require('App/User').default;
}

View file

@ -22,8 +22,6 @@ import { subQueryPrefix } from 'Common/Links';
import AppStore from 'Stores/User/App'; import AppStore from 'Stores/User/App';
import SettingsStore from 'Stores/User/Settings'; import SettingsStore from 'Stores/User/Settings';
import { getApp } from 'Helper/Apps/User';
import { AbstractFetchRemote } from 'Remote/AbstractFetch'; import { AbstractFetchRemote } from 'Remote/AbstractFetch';
//const toUTF8 = window.TextEncoder //const toUTF8 = window.TextEncoder
@ -469,7 +467,7 @@ class RemoteUserFetch extends AbstractFetchRemote {
UidNext: getFolderInboxName() === folder ? getFolderUidNext(folder) : '' UidNext: getFolderInboxName() === folder ? getFolderUidNext(folder) : ''
}); });
} else if (SettingsStore.useThreads()) { } else if (SettingsStore.useThreads()) {
getApp().reloadFlagsCurrentMessageListAndMessageFromCache(); rl.app.reloadFlagsCurrentMessageListAndMessageFromCache();
} }
} }

View file

@ -15,8 +15,6 @@ import { FolderListMailBoxUserView } from 'View/User/MailBox/FolderList';
import { MessageListMailBoxUserView } from 'View/User/MailBox/MessageList'; import { MessageListMailBoxUserView } from 'View/User/MailBox/MessageList';
import { MessageViewMailBoxUserView } from 'View/User/MailBox/MessageView'; import { MessageViewMailBoxUserView } from 'View/User/MailBox/MessageView';
import { getApp } from 'Helper/Apps/User';
import { warmUpScreenPopup } from 'Knoin/Knoin'; import { warmUpScreenPopup } from 'Knoin/Knoin';
import { AbstractScreen } from 'Knoin/AbstractScreen'; import { AbstractScreen } from 'Knoin/AbstractScreen';
@ -93,7 +91,7 @@ class MailBoxUserScreen extends AbstractScreen {
MessageStore.messageListSearch(search); MessageStore.messageListSearch(search);
MessageStore.messageListThreadUid(threadUid); MessageStore.messageListThreadUid(threadUid);
getApp().reloadMessageList(); rl.app.reloadMessageList();
} }
} }
@ -124,7 +122,7 @@ class MailBoxUserScreen extends AbstractScreen {
onBuild() { onBuild() {
if (!bMobileDevice && !Settings.app('mobile')) { if (!bMobileDevice && !Settings.app('mobile')) {
setTimeout(() => setTimeout(() =>
getApp().initHorizontalLayoutResizer(ClientSideKeyName.MessageListSize) rl.app.initHorizontalLayoutResizer(ClientSideKeyName.MessageListSize)
, 1); , 1);
} }

View file

@ -6,8 +6,6 @@ import { showScreenPopup } from 'Knoin/Knoin';
import DomainStore from 'Stores/Admin/Domain'; import DomainStore from 'Stores/Admin/Domain';
import Remote from 'Remote/Admin/Fetch'; import Remote from 'Remote/Admin/Fetch';
import { getApp } from 'Helper/Apps/Admin';
class DomainsAdminSettings { class DomainsAdminSettings {
constructor() { constructor() {
this.domains = DomainStore.domains; this.domains = DomainStore.domains;
@ -44,7 +42,7 @@ class DomainsAdminSettings {
el && ko.dataFor(el) && Remote.domain(this.onDomainLoadRequest, ko.dataFor(el).name); el && ko.dataFor(el) && Remote.domain(this.onDomainLoadRequest, ko.dataFor(el).name);
}); });
getApp().reloadDomainList(); rl.app.reloadDomainList();
} }
onDomainLoadRequest(sResult, oData) { onDomainLoadRequest(sResult, oData) {
@ -54,7 +52,7 @@ class DomainsAdminSettings {
} }
onDomainListChangeRequest() { onDomainListChangeRequest() {
getApp().reloadDomainList(); rl.app.reloadDomainList();
} }
} }

View file

@ -6,8 +6,6 @@ import { getNotification } from 'Common/Translator';
import PackageStore from 'Stores/Admin/Package'; import PackageStore from 'Stores/Admin/Package';
import Remote from 'Remote/Admin/Fetch'; import Remote from 'Remote/Admin/Fetch';
import { getApp } from 'Helper/Apps/Admin';
class PackagesAdminSettings { class PackagesAdminSettings {
constructor() { constructor() {
this.packagesError = ko.observable(''); this.packagesError = ko.observable('');
@ -34,7 +32,7 @@ class PackagesAdminSettings {
} }
onBuild() { onBuild() {
getApp().reloadPackagesList(); rl.app.reloadPackagesList();
} }
requestHelper(packageToRequest, install) { requestHelper(packageToRequest, install) {
@ -59,7 +57,7 @@ class PackagesAdminSettings {
if (StorageResultType.Success === result && data && data.Result && data.Result.Reload) { if (StorageResultType.Success === result && data && data.Result && data.Result.Reload) {
location.reload(); location.reload();
} else { } else {
getApp().reloadPackagesList(); rl.app.reloadPackagesList();
} }
}; };
} }

View file

@ -9,8 +9,6 @@ import PluginStore from 'Stores/Admin/Plugin';
import Remote from 'Remote/Admin/Fetch'; import Remote from 'Remote/Admin/Fetch';
import { getApp } from 'Helper/Apps/Admin';
class PluginsAdminSettings { class PluginsAdminSettings {
constructor() { constructor() {
this.enabledPlugins = ko.observable(!!rl.settings.get('EnabledPlugins')); this.enabledPlugins = ko.observable(!!rl.settings.get('EnabledPlugins'));
@ -51,7 +49,7 @@ class PluginsAdminSettings {
onShow() { onShow() {
PluginStore.plugins.error(''); PluginStore.plugins.error('');
getApp().reloadPluginList(); rl.app.reloadPluginList();
} }
onPluginLoadRequest(result, data) { onPluginLoadRequest(result, data) {
@ -71,7 +69,7 @@ class PluginsAdminSettings {
} }
} }
getApp().reloadPluginList(); rl.app.reloadPluginList();
} }
} }

View file

@ -7,8 +7,6 @@ import AccountStore from 'Stores/User/Account';
import IdentityStore from 'Stores/User/Identity'; import IdentityStore from 'Stores/User/Identity';
import Remote from 'Remote/User/Fetch'; import Remote from 'Remote/User/Fetch';
import { getApp } from 'Helper/Apps/User';
import { showScreenPopup, routeOff, setHash } from 'Knoin/Knoin'; import { showScreenPopup, routeOff, setHash } from 'Knoin/Knoin';
class AccountsUserSettings { class AccountsUserSettings {
@ -67,7 +65,7 @@ class AccountsUserSettings {
setTimeout(() => location.reload(), 1); setTimeout(() => location.reload(), 1);
} else { } else {
getApp().accountsAndIdentities(); rl.app.accountsAndIdentities();
} }
}, accountToRemove.email); }, accountToRemove.email);
} }
@ -86,7 +84,7 @@ class AccountsUserSettings {
IdentityStore.identities.remove((oIdentity) => identityToRemove === oIdentity); IdentityStore.identities.remove((oIdentity) => identityToRemove === oIdentity);
Remote.identityDelete(() => { Remote.identityDelete(() => {
getApp().accountsAndIdentities(); rl.app.accountsAndIdentities();
}, identityToRemove.id); }, identityToRemove.id);
} }
} }

View file

@ -11,8 +11,6 @@ import FolderStore from 'Stores/User/Folder';
import Remote from 'Remote/User/Fetch'; import Remote from 'Remote/User/Fetch';
import { getApp } from 'Helper/Apps/User';
import { showScreenPopup } from 'Knoin/Knoin'; import { showScreenPopup } from 'Knoin/Knoin';
class FoldersUserSettings { class FoldersUserSettings {
@ -44,7 +42,7 @@ class FoldersUserSettings {
if (nameToEdit && folder.name() !== nameToEdit) { if (nameToEdit && folder.name() !== nameToEdit) {
Local.set(ClientSideKeyName.FoldersLashHash, ''); Local.set(ClientSideKeyName.FoldersLashHash, '');
getApp().foldersPromisesActionHelper( rl.app.foldersPromisesActionHelper(
Remote.folderRename(folder.fullNameRaw, nameToEdit, FolderStore.foldersRenaming), Remote.folderRename(folder.fullNameRaw, nameToEdit, FolderStore.foldersRenaming),
Notification.CantRenameFolder Notification.CantRenameFolder
); );
@ -107,7 +105,7 @@ class FoldersUserSettings {
FolderStore.folderList.remove(fRemoveFolder); FolderStore.folderList.remove(fRemoveFolder);
getApp().foldersPromisesActionHelper( rl.app.foldersPromisesActionHelper(
Remote.folderDelete(folderToRemove.fullNameRaw, FolderStore.foldersDeleting), Remote.folderDelete(folderToRemove.fullNameRaw, FolderStore.foldersDeleting),
Notification.CantDeleteFolder Notification.CantDeleteFolder
); );

View file

@ -7,8 +7,6 @@ import SettingsStore from 'Stores/User/Settings';
import Remote from 'Remote/User/Fetch'; import Remote from 'Remote/User/Fetch';
import { getApp } from 'Helper/Apps/User';
import { showScreenPopup } from 'Knoin/Knoin'; import { showScreenPopup } from 'Knoin/Knoin';
class OpenPgpUserSettings { class OpenPgpUserSettings {
@ -55,7 +53,7 @@ class OpenPgpUserSettings {
PgpStore.openpgpKeyring.store(); PgpStore.openpgpKeyring.store();
} }
getApp().reloadOpenPgpKeys(); rl.app.reloadOpenPgpKeys();
} }
} }
} }

View file

@ -5,8 +5,6 @@ import { i18n } from 'Common/Translator';
import TemplateStore from 'Stores/User/Template'; import TemplateStore from 'Stores/User/Template';
import Remote from 'Remote/User/Fetch'; import Remote from 'Remote/User/Fetch';
import { getApp } from 'Helper/Apps/User';
import { showScreenPopup } from 'Knoin/Knoin'; import { showScreenPopup } from 'Knoin/Knoin';
class TemplatesUserSettings { class TemplatesUserSettings {
@ -54,7 +52,7 @@ class TemplatesUserSettings {
} }
reloadTemplates() { reloadTemplates() {
getApp().templates(); rl.app.templates();
} }
onBuild(oDom) { onBuild(oDom) {

View file

@ -1,6 +1,6 @@
import { CLIENT_SIDE_STORAGE_INDEX_NAME } from 'Common/Consts'; import { CLIENT_SIDE_STORAGE_INDEX_NAME } from 'Common/Consts';
const storage = window.localStorage; const storage = localStorage;
/** /**
* @param {number} key * @param {number} key

View file

@ -39,8 +39,6 @@ import PgpStore from 'Stores/User/Pgp';
import SettingsStore from 'Stores/User/Settings'; import SettingsStore from 'Stores/User/Settings';
import NotificationStore from 'Stores/User/Notification'; import NotificationStore from 'Stores/User/Notification';
import { getApp } from 'Helper/Apps/User';
import Remote from 'Remote/User/Fetch'; import Remote from 'Remote/User/Fetch';
const const
@ -578,7 +576,7 @@ class MessageUserStore {
initMessageFlagsFromCache(message); initMessageFlagsFromCache(message);
if (message.unseen() || message.hasUnseenSubMessage()) { if (message.unseen() || message.hasUnseenSubMessage()) {
getApp().messageListAction(message.folderFullNameRaw, MessageSetAction.SetSeen, [message]); rl.app.messageListAction(message.folderFullNameRaw, MessageSetAction.SetSeen, [message]);
} }
if (isNew) { if (isNew) {
@ -754,7 +752,7 @@ class MessageUserStore {
clearNewMessageCache(); clearNewMessageCache();
if (folder && (cached || unreadCountChange || SettingsStore.useThreads())) { if (folder && (cached || unreadCountChange || SettingsStore.useThreads())) {
getApp().folderInformation(folder.fullNameRaw, list); rl.app.folderInformation(folder.fullNameRaw, list);
} }
} else { } else {
this.messageListCount(0); this.messageListCount(0);

View file

@ -5,8 +5,6 @@ import { getNotification } from 'Common/Translator';
import Remote from 'Remote/User/Fetch'; import Remote from 'Remote/User/Fetch';
import { getApp } from 'Helper/Apps/User';
import { popup, command } from 'Knoin/Knoin'; import { popup, command } from 'Knoin/Knoin';
import { AbstractViewNext } from 'Knoin/AbstractViewNext'; import { AbstractViewNext } from 'Knoin/AbstractViewNext';
@ -57,7 +55,7 @@ class AccountPopupView extends AbstractViewNext {
this.submitRequest(false); this.submitRequest(false);
if (StorageResultType.Success === result && data) { if (StorageResultType.Success === result && data) {
if (data.Result) { if (data.Result) {
getApp().accountsAndIdentities(); rl.app.accountsAndIdentities();
this.cancelCommand(); this.cancelCommand();
} else { } else {
this.submitError( this.submitError(

View file

@ -2,8 +2,6 @@ import ko from 'ko';
import PgpStore from 'Stores/User/Pgp'; import PgpStore from 'Stores/User/Pgp';
import { getApp } from 'Helper/Apps/User';
import { popup, command } from 'Knoin/Knoin'; import { popup, command } from 'Knoin/Knoin';
import { AbstractViewNext } from 'Knoin/AbstractViewNext'; import { AbstractViewNext } from 'Knoin/AbstractViewNext';
@ -75,7 +73,7 @@ class AddOpenPgpKeyPopupView extends AbstractViewNext {
openpgpKeyring.store(); openpgpKeyring.store();
getApp().reloadOpenPgpKeys(); rl.app.reloadOpenPgpKeys();
if (this.key.error()) { if (this.key.error()) {
return false; return false;

View file

@ -40,8 +40,6 @@ import Remote from 'Remote/User/Fetch';
import { ComposeAttachmentModel } from 'Model/ComposeAttachment'; import { ComposeAttachmentModel } from 'Model/ComposeAttachment';
import { getApp } from 'Helper/Apps/User';
import { popup, command, isPopupVisible, showScreenPopup, hideScreenPopup, routeOn, routeOff } from 'Knoin/Knoin'; import { popup, command, isPopupVisible, showScreenPopup, hideScreenPopup, routeOn, routeOff } from 'Knoin/Knoin';
import { AbstractViewNext } from 'Knoin/AbstractViewNext'; import { AbstractViewNext } from 'Knoin/AbstractViewNext';
@ -370,7 +368,7 @@ class ComposePopupView extends AbstractViewNext {
} }
setMessageFlagsToCache(this.aDraftInfo[2], this.aDraftInfo[1], flagsCache); setMessageFlagsToCache(this.aDraftInfo[2], this.aDraftInfo[1], flagsCache);
getApp().reloadFlagsCurrentMessageListAndMessageFromCache(); rl.app.reloadFlagsCurrentMessageListAndMessageFromCache();
setFolderHash(this.aDraftInfo[2], ''); setFolderHash(this.aDraftInfo[2], '');
} }
} }
@ -421,7 +419,7 @@ class ComposePopupView extends AbstractViewNext {
i18n('POPUPS_ASK/DESC_WANT_DELETE_MESSAGES'), i18n('POPUPS_ASK/DESC_WANT_DELETE_MESSAGES'),
() => { () => {
if (this.modalVisibility()) { if (this.modalVisibility()) {
getApp().deleteMessagesFromFolderWithoutCheck(this.draftFolder(), [this.draftUid()]); rl.app.deleteMessagesFromFolderWithoutCheck(this.draftFolder(), [this.draftUid()]);
hideScreenPopup(ComposePopupView); hideScreenPopup(ComposePopupView);
} }
} }
@ -482,7 +480,7 @@ class ComposePopupView extends AbstractViewNext {
} }
emailsSource(oData, fResponse) { emailsSource(oData, fResponse) {
getApp().getAutocomplete(oData.term, aData => fResponse(aData.map(oEmailItem => oEmailItem.toLine(false)))); rl.app.getAutocomplete(oData.term, aData => fResponse(aData.map(oEmailItem => oEmailItem.toLine(false))));
} }
openOpenPgpPopup() { openOpenPgpPopup() {
@ -507,9 +505,9 @@ class ComposePopupView extends AbstractViewNext {
if (draftFolder && UNUSED_OPTION_VALUE !== draftFolder) { if (draftFolder && UNUSED_OPTION_VALUE !== draftFolder) {
setFolderHash(draftFolder, ''); setFolderHash(draftFolder, '');
if (FolderStore.currentFolderFullNameRaw() === draftFolder) { if (FolderStore.currentFolderFullNameRaw() === draftFolder) {
getApp().reloadMessageList(true); rl.app.reloadMessageList(true);
} else { } else {
getApp().folderInformation(draftFolder); rl.app.folderInformation(draftFolder);
} }
} }
} }

View file

@ -33,8 +33,6 @@ import { EmailModel } from 'Model/Email';
import { ContactModel } from 'Model/Contact'; import { ContactModel } from 'Model/Contact';
import { ContactPropertyModel } from 'Model/ContactProperty'; import { ContactPropertyModel } from 'Model/ContactProperty';
import { getApp } from 'Helper/Apps/User';
import { popup, command, showScreenPopup, hideScreenPopup, routeOn, routeOff } from 'Knoin/Knoin'; import { popup, command, showScreenPopup, hideScreenPopup, routeOn, routeOff } from 'Knoin/Knoin';
import { AbstractViewNext } from 'Knoin/AbstractViewNext'; import { AbstractViewNext } from 'Knoin/AbstractViewNext';
@ -336,7 +334,7 @@ class ContactsPopupView extends AbstractViewNext {
@command((self) => !self.contacts.syncing() && !self.contacts.importing()) @command((self) => !self.contacts.syncing() && !self.contacts.importing())
syncCommand() { syncCommand() {
getApp().contactsSync((result, data) => { rl.app.contactsSync((result, data) => {
if (StorageResultType.Success !== result || !data || !data.Result) { if (StorageResultType.Success !== result || !data || !data.Result) {
alert(getNotification(data && data.ErrorCode ? data.ErrorCode : Notification.ContactsSyncError)); alert(getNotification(data && data.ErrorCode ? data.ErrorCode : Notification.ContactsSyncError));
} }
@ -403,11 +401,11 @@ class ContactsPopupView extends AbstractViewNext {
} }
exportVcf() { exportVcf() {
getApp().download(exportContactsVcf()); rl.app.download(exportContactsVcf());
} }
exportCsv() { exportCsv() {
getApp().download(exportContactsCsv()); rl.app.download(exportContactsCsv());
} }
initUploader() { initUploader() {

View file

@ -9,8 +9,6 @@ import CapaAdminStore from 'Stores/Admin/Capa';
import Remote from 'Remote/Admin/Fetch'; import Remote from 'Remote/Admin/Fetch';
import { getApp } from 'Helper/Apps/Admin';
import { popup, command } from 'Knoin/Knoin'; import { popup, command } from 'Knoin/Knoin';
import { AbstractViewNext } from 'Knoin/AbstractViewNext'; import { AbstractViewNext } from 'Knoin/AbstractViewNext';
@ -317,7 +315,7 @@ class DomainPopupView extends AbstractViewNext {
this.saving(false); this.saving(false);
if (StorageResultType.Success === sResult && oData) { if (StorageResultType.Success === sResult && oData) {
if (oData.Result) { if (oData.Result) {
getApp().reloadDomainList(); rl.app.reloadDomainList();
this.closeCommand(); this.closeCommand();
} else if (Notification.DomainAlreadyExists === oData.ErrorCode) { } else if (Notification.DomainAlreadyExists === oData.ErrorCode) {
this.savingError(i18n('ERRORS/DOMAIN_ALREADY_EXISTS')); this.savingError(i18n('ERRORS/DOMAIN_ALREADY_EXISTS'));

View file

@ -7,8 +7,6 @@ import DomainStore from 'Stores/Admin/Domain';
import Remote from 'Remote/Admin/Fetch'; import Remote from 'Remote/Admin/Fetch';
import { getApp } from 'Helper/Apps/Admin';
import { popup, command } from 'Knoin/Knoin'; import { popup, command } from 'Knoin/Knoin';
import { AbstractViewNext } from 'Knoin/AbstractViewNext'; import { AbstractViewNext } from 'Knoin/AbstractViewNext';
@ -48,7 +46,7 @@ class DomainAliasPopupView extends AbstractViewNext {
this.saving(false); this.saving(false);
if (StorageResultType.Success === result && data) { if (StorageResultType.Success === result && data) {
if (data.Result) { if (data.Result) {
getApp().reloadDomainList(); rl.app.reloadDomainList();
this.closeCommand(); this.closeCommand();
} else if (Notification.DomainAlreadyExists === data.ErrorCode) { } else if (Notification.DomainAlreadyExists === data.ErrorCode) {
this.savingError(i18n('ERRORS/DOMAIN_ALREADY_EXISTS')); this.savingError(i18n('ERRORS/DOMAIN_ALREADY_EXISTS'));

View file

@ -8,8 +8,6 @@ import MessageStore from 'Stores/User/Message';
import Remote from 'Remote/User/Fetch'; import Remote from 'Remote/User/Fetch';
import { getApp } from 'Helper/Apps/User';
import { popup, command } from 'Knoin/Knoin'; import { popup, command } from 'Knoin/Knoin';
import { AbstractViewNext } from 'Knoin/AbstractViewNext'; import { AbstractViewNext } from 'Knoin/AbstractViewNext';
@ -62,7 +60,7 @@ class FolderClearPopupView extends AbstractViewNext {
Remote.folderClear((result, data) => { Remote.folderClear((result, data) => {
this.clearingProcess(false); this.clearingProcess(false);
if (StorageResultType.Success === result && data && data.Result) { if (StorageResultType.Success === result && data && data.Result) {
getApp().reloadMessageList(true); rl.app.reloadMessageList(true);
this.cancelCommand(); this.cancelCommand();
} else { } else {
if (data && data.ErrorCode) { if (data && data.ErrorCode) {

View file

@ -9,8 +9,6 @@ import FolderStore from 'Stores/User/Folder';
import Remote from 'Remote/User/Fetch'; import Remote from 'Remote/User/Fetch';
import { getApp } from 'Helper/Apps/User';
import { popup, command } from 'Knoin/Knoin'; import { popup, command } from 'Knoin/Knoin';
import { AbstractViewNext } from 'Knoin/AbstractViewNext'; import { AbstractViewNext } from 'Knoin/AbstractViewNext';
@ -53,7 +51,7 @@ class FolderCreateView extends AbstractViewNext {
parentFolderName = FolderStore.namespace.substr(0, FolderStore.namespace.length - 1); parentFolderName = FolderStore.namespace.substr(0, FolderStore.namespace.length - 1);
} }
getApp().foldersPromisesActionHelper( rl.app.foldersPromisesActionHelper(
Remote.folderCreate(this.folderName(), parentFolderName, FolderStore.foldersCreating), Remote.folderCreate(this.folderName(), parentFolderName, FolderStore.foldersCreating),
Notification.CantCreateFolder Notification.CantCreateFolder
); );

View file

@ -7,8 +7,6 @@ import { getNotification } from 'Common/Translator';
import Remote from 'Remote/User/Fetch'; import Remote from 'Remote/User/Fetch';
import { getApp } from 'Helper/Apps/User';
import { popup, command } from 'Knoin/Knoin'; import { popup, command } from 'Knoin/Knoin';
import { AbstractViewNext } from 'Knoin/AbstractViewNext'; import { AbstractViewNext } from 'Knoin/AbstractViewNext';
@ -89,7 +87,7 @@ class IdentityPopupView extends AbstractViewNext {
this.submitRequest(false); this.submitRequest(false);
if (StorageResultType.Success === result && data) { if (StorageResultType.Success === result && data) {
if (data.Result) { if (data.Result) {
getApp().accountsAndIdentities(); rl.app.accountsAndIdentities();
this.cancelCommand(); this.cancelCommand();
} else if (data.ErrorCode) { } else if (data.ErrorCode) {
this.submitError(getNotification(data.ErrorCode)); this.submitError(getNotification(data.ErrorCode));

View file

@ -4,8 +4,6 @@ import { pInt } from 'Common/Utils';
import PgpStore from 'Stores/User/Pgp'; import PgpStore from 'Stores/User/Pgp';
import { getApp } from 'Helper/Apps/User';
import { popup, command } from 'Knoin/Knoin'; import { popup, command } from 'Knoin/Knoin';
import { AbstractViewNext } from 'Knoin/AbstractViewNext'; import { AbstractViewNext } from 'Knoin/AbstractViewNext';
@ -68,7 +66,7 @@ class NewOpenPgpKeyPopupView extends AbstractViewNext {
openpgpKeyring.store(); openpgpKeyring.store();
getApp().reloadOpenPgpKeys(); rl.app.reloadOpenPgpKeys();
this.cancelCommand && this.cancelCommand(); this.cancelCommand && this.cancelCommand();
} }
}) })

View file

@ -6,8 +6,6 @@ import { HtmlEditor } from 'Common/HtmlEditor';
import Remote from 'Remote/User/Fetch'; import Remote from 'Remote/User/Fetch';
import { getApp } from 'Helper/Apps/User';
import { popup, command } from 'Knoin/Knoin'; import { popup, command } from 'Knoin/Knoin';
import { AbstractViewNext } from 'Knoin/AbstractViewNext'; import { AbstractViewNext } from 'Knoin/AbstractViewNext';
@ -62,7 +60,7 @@ class TemplatePopupView extends AbstractViewNext {
this.submitRequest(false); this.submitRequest(false);
if (StorageResultType.Success === result && data) { if (StorageResultType.Success === result && data) {
if (data.Result) { if (data.Result) {
getApp().templates(); rl.app.templates();
this.cancelCommand(); this.cancelCommand();
} else if (data.ErrorCode) { } else if (data.ErrorCode) {
this.submitError(getNotification(data.ErrorCode)); this.submitError(getNotification(data.ErrorCode));

View file

@ -6,8 +6,6 @@ import { i18n, trigger as translatorTrigger } from 'Common/Translator';
import Remote from 'Remote/User/Fetch'; import Remote from 'Remote/User/Fetch';
import { getApp } from 'Helper/Apps/User';
import { popup, showScreenPopup } from 'Knoin/Knoin'; import { popup, showScreenPopup } from 'Knoin/Knoin';
import { AbstractViewNext } from 'Knoin/AbstractViewNext'; import { AbstractViewNext } from 'Knoin/AbstractViewNext';
@ -104,7 +102,7 @@ class TwoFactorConfigurationPopupView extends AbstractViewNext {
} }
logout() { logout() {
getApp().logout(); rl.app.logout();
} }
testTwoFactor() { testTwoFactor() {

View file

@ -7,9 +7,6 @@ import MessageStore from 'Stores/User/Message';
import { Capa, KeyState } from 'Common/Enums'; import { Capa, KeyState } from 'Common/Enums';
import { settings } from 'Common/Links'; import { settings } from 'Common/Links';
import { getApp } from 'Helper/Apps/User';
import { showScreenPopup, setHash } from 'Knoin/Knoin'; import { showScreenPopup, setHash } from 'Knoin/Knoin';
import { AbstractViewNext } from 'Knoin/AbstractViewNext'; import { AbstractViewNext } from 'Knoin/AbstractViewNext';
@ -80,7 +77,7 @@ class AbstractSystemDropDownUserView extends AbstractViewNext {
} }
logoutClick() { logoutClick() {
getApp().logout(); rl.app.logout();
} }
onBuild() { onBuild() {

View file

@ -10,8 +10,6 @@ import SettingsStore from 'Stores/User/Settings';
import FolderStore from 'Stores/User/Folder'; import FolderStore from 'Stores/User/Folder';
import MessageStore from 'Stores/User/Message'; import MessageStore from 'Stores/User/Message';
import { getApp } from 'Helper/Apps/User';
import { view, ViewType, showScreenPopup, setHash } from 'Knoin/Knoin'; import { view, ViewType, showScreenPopup, setHash } from 'Knoin/Knoin';
import { AbstractViewNext } from 'Knoin/AbstractViewNext'; import { AbstractViewNext } from 'Knoin/AbstractViewNext';
@ -77,7 +75,7 @@ class FolderListMailBoxUserView extends AbstractViewNext {
if (folder) { if (folder) {
if (isMove) { if (isMove) {
moveAction(false); moveAction(false);
getApp().moveMessagesToFolder( rl.app.moveMessagesToFolder(
FolderStore.currentFolderFullNameRaw(), FolderStore.currentFolderFullNameRaw(),
MessageStore.messageListCheckedOrSelectedUidsWithSubMails(), MessageStore.messageListCheckedOrSelectedUidsWithSubMails(),
folder.fullNameRaw, folder.fullNameRaw,
@ -111,7 +109,7 @@ class FolderListMailBoxUserView extends AbstractViewNext {
const folder = ko.dataFor(el); const folder = ko.dataFor(el);
if (folder) { if (folder) {
const collapsed = folder.collapsed(); const collapsed = folder.collapsed();
getApp().setExpandedFolder(folder.fullNameHash, collapsed); rl.app.setExpandedFolder(folder.fullNameHash, collapsed);
folder.collapsed(!collapsed); folder.collapsed(!collapsed);
event.preventDefault(); event.preventDefault();
@ -165,7 +163,7 @@ class FolderListMailBoxUserView extends AbstractViewNext {
folder = item && ko.dataFor(item); folder = item && ko.dataFor(item);
if (folder) { if (folder) {
const collapsed = folder.collapsed(); const collapsed = folder.collapsed();
getApp().setExpandedFolder(folder.fullNameHash, collapsed); rl.app.setExpandedFolder(folder.fullNameHash, collapsed);
folder.collapsed(!collapsed); folder.collapsed(!collapsed);
} }
@ -193,7 +191,7 @@ class FolderListMailBoxUserView extends AbstractViewNext {
if (folder && folder.collapsed()) { if (folder && folder.collapsed()) {
this.iDropOverTimer = setTimeout(() => { this.iDropOverTimer = setTimeout(() => {
folder.collapsed(false); folder.collapsed(false);
getApp().setExpandedFolder(folder.fullNameHash, true); rl.app.setExpandedFolder(folder.fullNameHash, true);
}, 500); }, 500);
} }
} }
@ -231,7 +229,7 @@ class FolderListMailBoxUserView extends AbstractViewNext {
uids = ui.helper.rlUids; uids = ui.helper.rlUids;
if (fromFolderFullNameRaw && Array.isArray(uids)) { if (fromFolderFullNameRaw && Array.isArray(uids)) {
getApp().moveMessagesToFolder(fromFolderFullNameRaw, uids, toFolder.fullNameRaw, copy); rl.app.moveMessagesToFolder(fromFolderFullNameRaw, uids, toFolder.fullNameRaw, copy);
} }
} }
} }

View file

@ -37,8 +37,6 @@ import MessageStore from 'Stores/User/Message';
import Remote from 'Remote/User/Fetch'; import Remote from 'Remote/User/Fetch';
import { getApp } from 'Helper/Apps/User';
import { view, command, ViewType, showScreenPopup, setHash, popupVisibility } from 'Knoin/Knoin'; import { view, command, ViewType, showScreenPopup, setHash, popupVisibility } from 'Knoin/Knoin';
import { AbstractViewNext } from 'Knoin/AbstractViewNext'; import { AbstractViewNext } from 'Knoin/AbstractViewNext';
@ -266,7 +264,7 @@ class MessageListMailBoxUserView extends AbstractViewNext {
@command() @command()
reloadCommand() { reloadCommand() {
if (!MessageStore.messageListCompleteLoadingThrottleForAnimation() && this.allowReload) { if (!MessageStore.messageListCompleteLoadingThrottleForAnimation() && this.allowReload) {
getApp().reloadMessageList(false, true); rl.app.reloadMessageList(false, true);
} }
} }
@ -283,7 +281,7 @@ class MessageListMailBoxUserView extends AbstractViewNext {
@command(canBeMovedHelper) @command(canBeMovedHelper)
deleteWithoutMoveCommand() { deleteWithoutMoveCommand() {
if (Settings.capa(Capa.DangerousActions)) { if (Settings.capa(Capa.DangerousActions)) {
getApp().deleteMessagesFromFolder( rl.app.deleteMessagesFromFolder(
FolderType.Trash, FolderType.Trash,
FolderStore.currentFolderFullNameRaw(), FolderStore.currentFolderFullNameRaw(),
MessageStore.messageListCheckedOrSelectedUidsWithSubMails(), MessageStore.messageListCheckedOrSelectedUidsWithSubMails(),
@ -294,7 +292,7 @@ class MessageListMailBoxUserView extends AbstractViewNext {
@command(canBeMovedHelper) @command(canBeMovedHelper)
deleteCommand() { deleteCommand() {
getApp().deleteMessagesFromFolder( rl.app.deleteMessagesFromFolder(
FolderType.Trash, FolderType.Trash,
FolderStore.currentFolderFullNameRaw(), FolderStore.currentFolderFullNameRaw(),
MessageStore.messageListCheckedOrSelectedUidsWithSubMails(), MessageStore.messageListCheckedOrSelectedUidsWithSubMails(),
@ -304,7 +302,7 @@ class MessageListMailBoxUserView extends AbstractViewNext {
@command(canBeMovedHelper) @command(canBeMovedHelper)
archiveCommand() { archiveCommand() {
getApp().deleteMessagesFromFolder( rl.app.deleteMessagesFromFolder(
FolderType.Archive, FolderType.Archive,
FolderStore.currentFolderFullNameRaw(), FolderStore.currentFolderFullNameRaw(),
MessageStore.messageListCheckedOrSelectedUidsWithSubMails(), MessageStore.messageListCheckedOrSelectedUidsWithSubMails(),
@ -314,7 +312,7 @@ class MessageListMailBoxUserView extends AbstractViewNext {
@command(canBeMovedHelper) @command(canBeMovedHelper)
spamCommand() { spamCommand() {
getApp().deleteMessagesFromFolder( rl.app.deleteMessagesFromFolder(
FolderType.Spam, FolderType.Spam,
FolderStore.currentFolderFullNameRaw(), FolderStore.currentFolderFullNameRaw(),
MessageStore.messageListCheckedOrSelectedUidsWithSubMails(), MessageStore.messageListCheckedOrSelectedUidsWithSubMails(),
@ -324,7 +322,7 @@ class MessageListMailBoxUserView extends AbstractViewNext {
@command(canBeMovedHelper) @command(canBeMovedHelper)
notSpamCommand() { notSpamCommand() {
getApp().deleteMessagesFromFolder( rl.app.deleteMessagesFromFolder(
FolderType.NotSpam, FolderType.NotSpam,
FolderStore.currentFolderFullNameRaw(), FolderStore.currentFolderFullNameRaw(),
MessageStore.messageListCheckedOrSelectedUidsWithSubMails(), MessageStore.messageListCheckedOrSelectedUidsWithSubMails(),
@ -470,7 +468,7 @@ class MessageListMailBoxUserView extends AbstractViewNext {
*/ */
moveSelectedMessagesToFolder(sToFolderFullNameRaw, bCopy) { moveSelectedMessagesToFolder(sToFolderFullNameRaw, bCopy) {
if (this.canBeMoved()) { if (this.canBeMoved()) {
getApp().moveMessagesToFolder( rl.app.moveMessagesToFolder(
FolderStore.currentFolderFullNameRaw(), FolderStore.currentFolderFullNameRaw(),
MessageStore.messageListCheckedOrSelectedUidsWithSubMails(), MessageStore.messageListCheckedOrSelectedUidsWithSubMails(),
sToFolderFullNameRaw, sToFolderFullNameRaw,
@ -514,7 +512,7 @@ class MessageListMailBoxUserView extends AbstractViewNext {
* @returns {void} * @returns {void}
*/ */
setAction(sFolderFullNameRaw, iSetAction, aMessages) { setAction(sFolderFullNameRaw, iSetAction, aMessages) {
getApp().messageListAction(sFolderFullNameRaw, iSetAction, aMessages); rl.app.messageListAction(sFolderFullNameRaw, iSetAction, aMessages);
} }
/** /**
@ -586,7 +584,7 @@ class MessageListMailBoxUserView extends AbstractViewNext {
// no default // no default
} }
getApp().reloadFlagsCurrentMessageListAndMessageFromCache(); rl.app.reloadFlagsCurrentMessageListAndMessageFromCache();
} }
} }
} }
@ -975,7 +973,7 @@ class MessageListMailBoxUserView extends AbstractViewNext {
return false; return false;
}) })
.on('onComplete', () => getApp().reloadMessageList(true, true)); .on('onComplete', () => rl.app.reloadMessageList(true, true));
return !!oJua; return !!oJua;
} }

View file

@ -40,8 +40,6 @@ import * as Local from 'Storage/Client';
import Remote from 'Remote/User/Fetch'; import Remote from 'Remote/User/Fetch';
import { getApp } from 'Helper/Apps/User';
import { view, command, ViewType, showScreenPopup, createCommand } from 'Knoin/Knoin'; import { view, command, ViewType, showScreenPopup, createCommand } from 'Knoin/Knoin';
import { AbstractViewNext } from 'Knoin/AbstractViewNext'; import { AbstractViewNext } from 'Knoin/AbstractViewNext';
@ -69,7 +67,7 @@ class MessageViewMailBoxUserView extends AbstractViewNext {
const message = this.message(); const message = this.message();
if (message && this.allowMessageListActions) { if (message && this.allowMessageListActions) {
this.message(null); this.message(null);
getApp().deleteMessagesFromFolder(folderType, message.folderFullNameRaw, [message.uid], useFolder); rl.app.deleteMessagesFromFolder(folderType, message.folderFullNameRaw, [message.uid], useFolder);
} }
}, this.messageVisibility); }, this.messageVisibility);
@ -510,13 +508,13 @@ class MessageViewMailBoxUserView extends AbstractViewNext {
el = eqs(event, '.attachmentsPlace .attachmentItem .attachmentNameParent'); el = eqs(event, '.attachmentsPlace .attachmentItem .attachmentNameParent');
if (el) { if (el) {
const attachment = ko.dataFor(el); const attachment = ko.dataFor(el);
attachment && attachment.download && getApp().download(attachment.linkDownload()); attachment && attachment.download && rl.app.download(attachment.linkDownload());
} }
if (eqs(event, '.messageItemHeader .subjectParent .flagParent')) { if (eqs(event, '.messageItemHeader .subjectParent .flagParent')) {
// eslint-disable-line prefer-arrow-callback // eslint-disable-line prefer-arrow-callback
const message = this.message(); const message = this.message();
message && getApp().messageListAction( message && rl.app.messageListAction(
message.folderFullNameRaw, message.folderFullNameRaw,
message.flagged() ? MessageSetAction.UnsetFlag : MessageSetAction.SetFlag, message.flagged() ? MessageSetAction.UnsetFlag : MessageSetAction.SetFlag,
[message] [message]
@ -527,7 +525,7 @@ class MessageViewMailBoxUserView extends AbstractViewNext {
if (el) { if (el) {
// eslint-disable-line prefer-arrow-callback // eslint-disable-line prefer-arrow-callback
const message = ko.dataFor(el); // eslint-disable-line no-invalid-this const message = ko.dataFor(el); // eslint-disable-line no-invalid-this
message && message.folder && message.uid && getApp().messageListAction( message && message.folder && message.uid && rl.app.messageListAction(
message.folder, message.folder,
message.flagged() ? MessageSetAction.UnsetFlag : MessageSetAction.SetFlag, message.flagged() ? MessageSetAction.UnsetFlag : MessageSetAction.SetFlag,
[message] [message]
@ -783,7 +781,7 @@ class MessageViewMailBoxUserView extends AbstractViewNext {
Remote.attachmentsActions('Zip', hashes, this.downloadAsZipLoading) Remote.attachmentsActions('Zip', hashes, this.downloadAsZipLoading)
.then((result) => { .then((result) => {
if (result && result.Result && result.Result.Files && result.Result.Files[0] && result.Result.Files[0].Hash) { if (result && result.Result && result.Result.Files && result.Result.Files[0] && result.Result.Files[0].Hash) {
getApp().download(attachmentDownload(result.Result.Files[0].Hash)); rl.app.download(attachmentDownload(result.Result.Files[0].Hash));
} else { } else {
this.downloadAsZipError(true); this.downloadAsZipError(true);
} }
@ -833,7 +831,7 @@ class MessageViewMailBoxUserView extends AbstractViewNext {
storeMessageFlagsToCache(oMessage); storeMessageFlagsToCache(oMessage);
getApp().reloadFlagsCurrentMessageListAndMessageFromCache(); rl.app.reloadFlagsCurrentMessageListAndMessageFromCache();
} }
} }
} }

18
dev/bootstrap.js vendored
View file

@ -1,10 +1,9 @@
import { data as GlobalsData, dropdownVisibility } from 'Common/Globals'; import { dropdownVisibility } from 'Common/Globals';
import * as Enums from 'Common/Enums'; import * as Enums from 'Common/Enums';
import * as Plugins from 'Common/Plugins'; import * as Plugins from 'Common/Plugins';
import { i18n } from 'Common/Translator'; import { i18n } from 'Common/Translator';
export default (App) => { export default (App) => {
GlobalsData.__APP__ = App;
addEventListener('keydown', event => { addEventListener('keydown', event => {
event = event || window.event; event = event || window.event;
@ -86,6 +85,21 @@ export default (App) => {
} }
return fetch(resource, init).then(response => response.json()); return fetch(resource, init).then(response => response.json());
/*
let f = fetch(resource, init);
if (reviver) {
return f.then(response => response.text())
.then(json => {
try {
return JSON.parse(json, reviver);
} catch (e) {
console.error(e);
throw e;
}
});
}
return f.then(response => response.json());
*/
}; };
window.__APP_BOOT = fErrorCallback => { window.__APP_BOOT = fErrorCallback => {