From b904eca98e34744afa05f917fe740f96d486d997 Mon Sep 17 00:00:00 2001 From: djmaze Date: Tue, 15 Sep 2020 09:29:25 +0200 Subject: [PATCH] Cleanup __APP__/getApp code --- dev/Common/Globals.js | 21 +++++++-------------- dev/Common/Momentor.js | 2 +- dev/Common/Plugins.js | 6 ++---- dev/External/ko.js | 4 ++-- dev/Helper/Apps/Admin.js | 6 ------ dev/Helper/Apps/User.js | 6 ------ dev/Remote/User/Fetch.js | 4 +--- dev/Screen/User/MailBox.js | 6 ++---- dev/Settings/Admin/Domains.js | 6 ++---- dev/Settings/Admin/Packages.js | 6 ++---- dev/Settings/Admin/Plugins.js | 6 ++---- dev/Settings/User/Accounts.js | 6 ++---- dev/Settings/User/Folders.js | 6 ++---- dev/Settings/User/OpenPgp.js | 4 +--- dev/Settings/User/Templates.js | 4 +--- dev/Storage/Client.js | 2 +- dev/Stores/User/Message.js | 6 ++---- dev/View/Popup/Account.js | 4 +--- dev/View/Popup/AddOpenPgpKey.js | 4 +--- dev/View/Popup/Compose.js | 12 +++++------- dev/View/Popup/Contacts.js | 8 +++----- dev/View/Popup/Domain.js | 4 +--- dev/View/Popup/DomainAlias.js | 4 +--- dev/View/Popup/FolderClear.js | 4 +--- dev/View/Popup/FolderCreate.js | 4 +--- dev/View/Popup/Identity.js | 4 +--- dev/View/Popup/NewOpenPgpKey.js | 4 +--- dev/View/Popup/Template.js | 4 +--- dev/View/Popup/TwoFactorConfiguration.js | 4 +--- dev/View/User/AbstractSystemDropDown.js | 5 +---- dev/View/User/MailBox/FolderList.js | 12 +++++------- dev/View/User/MailBox/MessageList.js | 22 ++++++++++------------ dev/View/User/MailBox/MessageView.js | 14 ++++++-------- dev/bootstrap.js | 18 ++++++++++++++++-- 34 files changed, 86 insertions(+), 146 deletions(-) delete mode 100644 dev/Helper/Apps/Admin.js delete mode 100644 dev/Helper/Apps/User.js diff --git a/dev/Common/Globals.js b/dev/Common/Globals.js index fe69b9dc5..5ca162318 100644 --- a/dev/Common/Globals.js +++ b/dev/Common/Globals.js @@ -18,7 +18,7 @@ export const useKeyboardShortcuts = ko.observable(true); * @type {boolean} */ 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 = { @@ -59,14 +59,14 @@ export const keyScope = ko.computed({ // restoreKeyFilter key.filter = (event) => { if (useKeyboardShortcuts()) { - const el = event.target || event.srcElement, - tagName = el ? el.tagName.toUpperCase() : ''; + const el = event.target, + nodeName = el ? el.nodeName : ''; return !( - 'INPUT' === tagName || - 'SELECT' === tagName || - 'TEXTAREA' === tagName || - (el && 'DIV' === tagName && ('editorHtmlArea' === el.className || 'true' === '' + el.contentEditable)) + 'INPUT' === nodeName || + 'SELECT' === nodeName || + 'TEXTAREA' === nodeName || + (el && el.contentEditable) ); } @@ -96,10 +96,3 @@ dropdownVisibility.subscribe((value) => { keyScope(keyScopeFake()); } }); - -/** - * @type {*} - */ -export const data = { - __APP__: null -}; diff --git a/dev/Common/Momentor.js b/dev/Common/Momentor.js index 8b10716c6..8629cea22 100644 --- a/dev/Common/Momentor.js +++ b/dev/Common/Momentor.js @@ -55,6 +55,6 @@ export function timeToNode(element, time) { } addEventListener('reload-time', () => setTimeout(() => - document.querySelectorAll('[data-bind*="moment:"]').forEach(element => timeToNode(element)) + document.querySelectorAll('[data-bind*="moment:"]').forEach(element => timeToNode(element)) , 1) ); diff --git a/dev/Common/Plugins.js b/dev/Common/Plugins.js index 941353484..e651a7fef 100644 --- a/dev/Common/Plugins.js +++ b/dev/Common/Plugins.js @@ -1,5 +1,3 @@ -import { data as GlobalsData } from 'Common/Globals'; - const USER_VIEW_MODELS_HOOKS = [], ADMIN_VIEW_MODELS_HOOKS = []; @@ -18,8 +16,8 @@ export function mainSettingsGet(name) { * @param {?number=} timeout */ export function remoteRequest(callback, action, parameters, timeout) { - if (GlobalsData.__APP__) { - GlobalsData.__APP__.remote().defaultRequest(callback, 'Plugin' + action, parameters, timeout); + if (rl.app) { + rl.app.remote().defaultRequest(callback, 'Plugin' + action, parameters, timeout); } } diff --git a/dev/External/ko.js b/dev/External/ko.js index 38441b8ce..0758a7a7d 100644 --- a/dev/External/ko.js +++ b/dev/External/ko.js @@ -423,7 +423,7 @@ ko.bindingHandlers.command = { } element.classList.add('command'); - ko.bindingHandlers[element.tagName.match(/FORM/i) ? 'submit' : 'click'].init( + ko.bindingHandlers['FORM'==element.nodeName ? 'submit' : 'click'].init( element, fValueAccessor, fAllBindingsAccessor, @@ -447,7 +447,7 @@ ko.bindingHandlers.command = { ['command-disabled','disable','disabled'].forEach(s=>cl.toggle(s, !result)); cl.toggle('no-disabled', !!result); - if (element.tagName.match(/INPUT|TEXTAREA|BUTTON/i)) { + if (element.nodeName.match(/INPUT|TEXTAREA|BUTTON/)) { element.disabled = !result; } } diff --git a/dev/Helper/Apps/Admin.js b/dev/Helper/Apps/Admin.js deleted file mode 100644 index c5c5c5963..000000000 --- a/dev/Helper/Apps/Admin.js +++ /dev/null @@ -1,6 +0,0 @@ -/** - * @returns {AppAdmin} - */ -export function getApp() { - return require('App/Admin').default; -} diff --git a/dev/Helper/Apps/User.js b/dev/Helper/Apps/User.js deleted file mode 100644 index 760bf44f6..000000000 --- a/dev/Helper/Apps/User.js +++ /dev/null @@ -1,6 +0,0 @@ -/** - * @returns {AppUser} - */ -export function getApp() { - return require('App/User').default; -} diff --git a/dev/Remote/User/Fetch.js b/dev/Remote/User/Fetch.js index 96db08aaa..f176d0954 100644 --- a/dev/Remote/User/Fetch.js +++ b/dev/Remote/User/Fetch.js @@ -22,8 +22,6 @@ import { subQueryPrefix } from 'Common/Links'; import AppStore from 'Stores/User/App'; import SettingsStore from 'Stores/User/Settings'; -import { getApp } from 'Helper/Apps/User'; - import { AbstractFetchRemote } from 'Remote/AbstractFetch'; //const toUTF8 = window.TextEncoder @@ -469,7 +467,7 @@ class RemoteUserFetch extends AbstractFetchRemote { UidNext: getFolderInboxName() === folder ? getFolderUidNext(folder) : '' }); } else if (SettingsStore.useThreads()) { - getApp().reloadFlagsCurrentMessageListAndMessageFromCache(); + rl.app.reloadFlagsCurrentMessageListAndMessageFromCache(); } } diff --git a/dev/Screen/User/MailBox.js b/dev/Screen/User/MailBox.js index 077a370f0..a7b00e5fa 100644 --- a/dev/Screen/User/MailBox.js +++ b/dev/Screen/User/MailBox.js @@ -15,8 +15,6 @@ import { FolderListMailBoxUserView } from 'View/User/MailBox/FolderList'; import { MessageListMailBoxUserView } from 'View/User/MailBox/MessageList'; import { MessageViewMailBoxUserView } from 'View/User/MailBox/MessageView'; -import { getApp } from 'Helper/Apps/User'; - import { warmUpScreenPopup } from 'Knoin/Knoin'; import { AbstractScreen } from 'Knoin/AbstractScreen'; @@ -93,7 +91,7 @@ class MailBoxUserScreen extends AbstractScreen { MessageStore.messageListSearch(search); MessageStore.messageListThreadUid(threadUid); - getApp().reloadMessageList(); + rl.app.reloadMessageList(); } } @@ -124,7 +122,7 @@ class MailBoxUserScreen extends AbstractScreen { onBuild() { if (!bMobileDevice && !Settings.app('mobile')) { setTimeout(() => - getApp().initHorizontalLayoutResizer(ClientSideKeyName.MessageListSize) + rl.app.initHorizontalLayoutResizer(ClientSideKeyName.MessageListSize) , 1); } diff --git a/dev/Settings/Admin/Domains.js b/dev/Settings/Admin/Domains.js index 141b307e2..edf1928e4 100644 --- a/dev/Settings/Admin/Domains.js +++ b/dev/Settings/Admin/Domains.js @@ -6,8 +6,6 @@ import { showScreenPopup } from 'Knoin/Knoin'; import DomainStore from 'Stores/Admin/Domain'; import Remote from 'Remote/Admin/Fetch'; -import { getApp } from 'Helper/Apps/Admin'; - class DomainsAdminSettings { constructor() { this.domains = DomainStore.domains; @@ -44,7 +42,7 @@ class DomainsAdminSettings { el && ko.dataFor(el) && Remote.domain(this.onDomainLoadRequest, ko.dataFor(el).name); }); - getApp().reloadDomainList(); + rl.app.reloadDomainList(); } onDomainLoadRequest(sResult, oData) { @@ -54,7 +52,7 @@ class DomainsAdminSettings { } onDomainListChangeRequest() { - getApp().reloadDomainList(); + rl.app.reloadDomainList(); } } diff --git a/dev/Settings/Admin/Packages.js b/dev/Settings/Admin/Packages.js index 2b5f0c4d2..370ada9bd 100644 --- a/dev/Settings/Admin/Packages.js +++ b/dev/Settings/Admin/Packages.js @@ -6,8 +6,6 @@ import { getNotification } from 'Common/Translator'; import PackageStore from 'Stores/Admin/Package'; import Remote from 'Remote/Admin/Fetch'; -import { getApp } from 'Helper/Apps/Admin'; - class PackagesAdminSettings { constructor() { this.packagesError = ko.observable(''); @@ -34,7 +32,7 @@ class PackagesAdminSettings { } onBuild() { - getApp().reloadPackagesList(); + rl.app.reloadPackagesList(); } requestHelper(packageToRequest, install) { @@ -59,7 +57,7 @@ class PackagesAdminSettings { if (StorageResultType.Success === result && data && data.Result && data.Result.Reload) { location.reload(); } else { - getApp().reloadPackagesList(); + rl.app.reloadPackagesList(); } }; } diff --git a/dev/Settings/Admin/Plugins.js b/dev/Settings/Admin/Plugins.js index 93cb44f44..79d5fbffb 100644 --- a/dev/Settings/Admin/Plugins.js +++ b/dev/Settings/Admin/Plugins.js @@ -9,8 +9,6 @@ import PluginStore from 'Stores/Admin/Plugin'; import Remote from 'Remote/Admin/Fetch'; -import { getApp } from 'Helper/Apps/Admin'; - class PluginsAdminSettings { constructor() { this.enabledPlugins = ko.observable(!!rl.settings.get('EnabledPlugins')); @@ -51,7 +49,7 @@ class PluginsAdminSettings { onShow() { PluginStore.plugins.error(''); - getApp().reloadPluginList(); + rl.app.reloadPluginList(); } onPluginLoadRequest(result, data) { @@ -71,7 +69,7 @@ class PluginsAdminSettings { } } - getApp().reloadPluginList(); + rl.app.reloadPluginList(); } } diff --git a/dev/Settings/User/Accounts.js b/dev/Settings/User/Accounts.js index 271d497bc..17a67fe74 100644 --- a/dev/Settings/User/Accounts.js +++ b/dev/Settings/User/Accounts.js @@ -7,8 +7,6 @@ import AccountStore from 'Stores/User/Account'; import IdentityStore from 'Stores/User/Identity'; import Remote from 'Remote/User/Fetch'; -import { getApp } from 'Helper/Apps/User'; - import { showScreenPopup, routeOff, setHash } from 'Knoin/Knoin'; class AccountsUserSettings { @@ -67,7 +65,7 @@ class AccountsUserSettings { setTimeout(() => location.reload(), 1); } else { - getApp().accountsAndIdentities(); + rl.app.accountsAndIdentities(); } }, accountToRemove.email); } @@ -86,7 +84,7 @@ class AccountsUserSettings { IdentityStore.identities.remove((oIdentity) => identityToRemove === oIdentity); Remote.identityDelete(() => { - getApp().accountsAndIdentities(); + rl.app.accountsAndIdentities(); }, identityToRemove.id); } } diff --git a/dev/Settings/User/Folders.js b/dev/Settings/User/Folders.js index 7ae9104c7..e3e9f2380 100644 --- a/dev/Settings/User/Folders.js +++ b/dev/Settings/User/Folders.js @@ -11,8 +11,6 @@ import FolderStore from 'Stores/User/Folder'; import Remote from 'Remote/User/Fetch'; -import { getApp } from 'Helper/Apps/User'; - import { showScreenPopup } from 'Knoin/Knoin'; class FoldersUserSettings { @@ -44,7 +42,7 @@ class FoldersUserSettings { if (nameToEdit && folder.name() !== nameToEdit) { Local.set(ClientSideKeyName.FoldersLashHash, ''); - getApp().foldersPromisesActionHelper( + rl.app.foldersPromisesActionHelper( Remote.folderRename(folder.fullNameRaw, nameToEdit, FolderStore.foldersRenaming), Notification.CantRenameFolder ); @@ -107,7 +105,7 @@ class FoldersUserSettings { FolderStore.folderList.remove(fRemoveFolder); - getApp().foldersPromisesActionHelper( + rl.app.foldersPromisesActionHelper( Remote.folderDelete(folderToRemove.fullNameRaw, FolderStore.foldersDeleting), Notification.CantDeleteFolder ); diff --git a/dev/Settings/User/OpenPgp.js b/dev/Settings/User/OpenPgp.js index 04dfe2831..f2dca4499 100644 --- a/dev/Settings/User/OpenPgp.js +++ b/dev/Settings/User/OpenPgp.js @@ -7,8 +7,6 @@ import SettingsStore from 'Stores/User/Settings'; import Remote from 'Remote/User/Fetch'; -import { getApp } from 'Helper/Apps/User'; - import { showScreenPopup } from 'Knoin/Knoin'; class OpenPgpUserSettings { @@ -55,7 +53,7 @@ class OpenPgpUserSettings { PgpStore.openpgpKeyring.store(); } - getApp().reloadOpenPgpKeys(); + rl.app.reloadOpenPgpKeys(); } } } diff --git a/dev/Settings/User/Templates.js b/dev/Settings/User/Templates.js index d114d2501..d09012ee0 100644 --- a/dev/Settings/User/Templates.js +++ b/dev/Settings/User/Templates.js @@ -5,8 +5,6 @@ import { i18n } from 'Common/Translator'; import TemplateStore from 'Stores/User/Template'; import Remote from 'Remote/User/Fetch'; -import { getApp } from 'Helper/Apps/User'; - import { showScreenPopup } from 'Knoin/Knoin'; class TemplatesUserSettings { @@ -54,7 +52,7 @@ class TemplatesUserSettings { } reloadTemplates() { - getApp().templates(); + rl.app.templates(); } onBuild(oDom) { diff --git a/dev/Storage/Client.js b/dev/Storage/Client.js index 9d6f433e8..8b37e9c6b 100644 --- a/dev/Storage/Client.js +++ b/dev/Storage/Client.js @@ -1,6 +1,6 @@ import { CLIENT_SIDE_STORAGE_INDEX_NAME } from 'Common/Consts'; -const storage = window.localStorage; +const storage = localStorage; /** * @param {number} key diff --git a/dev/Stores/User/Message.js b/dev/Stores/User/Message.js index ab84c033d..0925e9194 100644 --- a/dev/Stores/User/Message.js +++ b/dev/Stores/User/Message.js @@ -39,8 +39,6 @@ import PgpStore from 'Stores/User/Pgp'; import SettingsStore from 'Stores/User/Settings'; import NotificationStore from 'Stores/User/Notification'; -import { getApp } from 'Helper/Apps/User'; - import Remote from 'Remote/User/Fetch'; const @@ -578,7 +576,7 @@ class MessageUserStore { initMessageFlagsFromCache(message); if (message.unseen() || message.hasUnseenSubMessage()) { - getApp().messageListAction(message.folderFullNameRaw, MessageSetAction.SetSeen, [message]); + rl.app.messageListAction(message.folderFullNameRaw, MessageSetAction.SetSeen, [message]); } if (isNew) { @@ -754,7 +752,7 @@ class MessageUserStore { clearNewMessageCache(); if (folder && (cached || unreadCountChange || SettingsStore.useThreads())) { - getApp().folderInformation(folder.fullNameRaw, list); + rl.app.folderInformation(folder.fullNameRaw, list); } } else { this.messageListCount(0); diff --git a/dev/View/Popup/Account.js b/dev/View/Popup/Account.js index f79b0459e..94fb9637f 100644 --- a/dev/View/Popup/Account.js +++ b/dev/View/Popup/Account.js @@ -5,8 +5,6 @@ import { getNotification } from 'Common/Translator'; import Remote from 'Remote/User/Fetch'; -import { getApp } from 'Helper/Apps/User'; - import { popup, command } from 'Knoin/Knoin'; import { AbstractViewNext } from 'Knoin/AbstractViewNext'; @@ -57,7 +55,7 @@ class AccountPopupView extends AbstractViewNext { this.submitRequest(false); if (StorageResultType.Success === result && data) { if (data.Result) { - getApp().accountsAndIdentities(); + rl.app.accountsAndIdentities(); this.cancelCommand(); } else { this.submitError( diff --git a/dev/View/Popup/AddOpenPgpKey.js b/dev/View/Popup/AddOpenPgpKey.js index e4b31c244..17a5fdde5 100644 --- a/dev/View/Popup/AddOpenPgpKey.js +++ b/dev/View/Popup/AddOpenPgpKey.js @@ -2,8 +2,6 @@ import ko from 'ko'; import PgpStore from 'Stores/User/Pgp'; -import { getApp } from 'Helper/Apps/User'; - import { popup, command } from 'Knoin/Knoin'; import { AbstractViewNext } from 'Knoin/AbstractViewNext'; @@ -75,7 +73,7 @@ class AddOpenPgpKeyPopupView extends AbstractViewNext { openpgpKeyring.store(); - getApp().reloadOpenPgpKeys(); + rl.app.reloadOpenPgpKeys(); if (this.key.error()) { return false; diff --git a/dev/View/Popup/Compose.js b/dev/View/Popup/Compose.js index ba335890e..f22e8d616 100644 --- a/dev/View/Popup/Compose.js +++ b/dev/View/Popup/Compose.js @@ -40,8 +40,6 @@ import Remote from 'Remote/User/Fetch'; import { ComposeAttachmentModel } from 'Model/ComposeAttachment'; -import { getApp } from 'Helper/Apps/User'; - import { popup, command, isPopupVisible, showScreenPopup, hideScreenPopup, routeOn, routeOff } from 'Knoin/Knoin'; import { AbstractViewNext } from 'Knoin/AbstractViewNext'; @@ -370,7 +368,7 @@ class ComposePopupView extends AbstractViewNext { } setMessageFlagsToCache(this.aDraftInfo[2], this.aDraftInfo[1], flagsCache); - getApp().reloadFlagsCurrentMessageListAndMessageFromCache(); + rl.app.reloadFlagsCurrentMessageListAndMessageFromCache(); setFolderHash(this.aDraftInfo[2], ''); } } @@ -421,7 +419,7 @@ class ComposePopupView extends AbstractViewNext { i18n('POPUPS_ASK/DESC_WANT_DELETE_MESSAGES'), () => { if (this.modalVisibility()) { - getApp().deleteMessagesFromFolderWithoutCheck(this.draftFolder(), [this.draftUid()]); + rl.app.deleteMessagesFromFolderWithoutCheck(this.draftFolder(), [this.draftUid()]); hideScreenPopup(ComposePopupView); } } @@ -482,7 +480,7 @@ class ComposePopupView extends AbstractViewNext { } 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() { @@ -507,9 +505,9 @@ class ComposePopupView extends AbstractViewNext { if (draftFolder && UNUSED_OPTION_VALUE !== draftFolder) { setFolderHash(draftFolder, ''); if (FolderStore.currentFolderFullNameRaw() === draftFolder) { - getApp().reloadMessageList(true); + rl.app.reloadMessageList(true); } else { - getApp().folderInformation(draftFolder); + rl.app.folderInformation(draftFolder); } } } diff --git a/dev/View/Popup/Contacts.js b/dev/View/Popup/Contacts.js index f0c0ebe4d..289beb1b0 100644 --- a/dev/View/Popup/Contacts.js +++ b/dev/View/Popup/Contacts.js @@ -33,8 +33,6 @@ import { EmailModel } from 'Model/Email'; import { ContactModel } from 'Model/Contact'; import { ContactPropertyModel } from 'Model/ContactProperty'; -import { getApp } from 'Helper/Apps/User'; - import { popup, command, showScreenPopup, hideScreenPopup, routeOn, routeOff } from 'Knoin/Knoin'; import { AbstractViewNext } from 'Knoin/AbstractViewNext'; @@ -336,7 +334,7 @@ class ContactsPopupView extends AbstractViewNext { @command((self) => !self.contacts.syncing() && !self.contacts.importing()) syncCommand() { - getApp().contactsSync((result, data) => { + rl.app.contactsSync((result, data) => { if (StorageResultType.Success !== result || !data || !data.Result) { alert(getNotification(data && data.ErrorCode ? data.ErrorCode : Notification.ContactsSyncError)); } @@ -403,11 +401,11 @@ class ContactsPopupView extends AbstractViewNext { } exportVcf() { - getApp().download(exportContactsVcf()); + rl.app.download(exportContactsVcf()); } exportCsv() { - getApp().download(exportContactsCsv()); + rl.app.download(exportContactsCsv()); } initUploader() { diff --git a/dev/View/Popup/Domain.js b/dev/View/Popup/Domain.js index b6886e5c3..1afef6748 100644 --- a/dev/View/Popup/Domain.js +++ b/dev/View/Popup/Domain.js @@ -9,8 +9,6 @@ import CapaAdminStore from 'Stores/Admin/Capa'; import Remote from 'Remote/Admin/Fetch'; -import { getApp } from 'Helper/Apps/Admin'; - import { popup, command } from 'Knoin/Knoin'; import { AbstractViewNext } from 'Knoin/AbstractViewNext'; @@ -317,7 +315,7 @@ class DomainPopupView extends AbstractViewNext { this.saving(false); if (StorageResultType.Success === sResult && oData) { if (oData.Result) { - getApp().reloadDomainList(); + rl.app.reloadDomainList(); this.closeCommand(); } else if (Notification.DomainAlreadyExists === oData.ErrorCode) { this.savingError(i18n('ERRORS/DOMAIN_ALREADY_EXISTS')); diff --git a/dev/View/Popup/DomainAlias.js b/dev/View/Popup/DomainAlias.js index c599e033d..8728b1e8f 100644 --- a/dev/View/Popup/DomainAlias.js +++ b/dev/View/Popup/DomainAlias.js @@ -7,8 +7,6 @@ import DomainStore from 'Stores/Admin/Domain'; import Remote from 'Remote/Admin/Fetch'; -import { getApp } from 'Helper/Apps/Admin'; - import { popup, command } from 'Knoin/Knoin'; import { AbstractViewNext } from 'Knoin/AbstractViewNext'; @@ -48,7 +46,7 @@ class DomainAliasPopupView extends AbstractViewNext { this.saving(false); if (StorageResultType.Success === result && data) { if (data.Result) { - getApp().reloadDomainList(); + rl.app.reloadDomainList(); this.closeCommand(); } else if (Notification.DomainAlreadyExists === data.ErrorCode) { this.savingError(i18n('ERRORS/DOMAIN_ALREADY_EXISTS')); diff --git a/dev/View/Popup/FolderClear.js b/dev/View/Popup/FolderClear.js index f9c7b04bc..4b368da06 100644 --- a/dev/View/Popup/FolderClear.js +++ b/dev/View/Popup/FolderClear.js @@ -8,8 +8,6 @@ import MessageStore from 'Stores/User/Message'; import Remote from 'Remote/User/Fetch'; -import { getApp } from 'Helper/Apps/User'; - import { popup, command } from 'Knoin/Knoin'; import { AbstractViewNext } from 'Knoin/AbstractViewNext'; @@ -62,7 +60,7 @@ class FolderClearPopupView extends AbstractViewNext { Remote.folderClear((result, data) => { this.clearingProcess(false); if (StorageResultType.Success === result && data && data.Result) { - getApp().reloadMessageList(true); + rl.app.reloadMessageList(true); this.cancelCommand(); } else { if (data && data.ErrorCode) { diff --git a/dev/View/Popup/FolderCreate.js b/dev/View/Popup/FolderCreate.js index a533719f1..8f5522b46 100644 --- a/dev/View/Popup/FolderCreate.js +++ b/dev/View/Popup/FolderCreate.js @@ -9,8 +9,6 @@ import FolderStore from 'Stores/User/Folder'; import Remote from 'Remote/User/Fetch'; -import { getApp } from 'Helper/Apps/User'; - import { popup, command } from 'Knoin/Knoin'; import { AbstractViewNext } from 'Knoin/AbstractViewNext'; @@ -53,7 +51,7 @@ class FolderCreateView extends AbstractViewNext { parentFolderName = FolderStore.namespace.substr(0, FolderStore.namespace.length - 1); } - getApp().foldersPromisesActionHelper( + rl.app.foldersPromisesActionHelper( Remote.folderCreate(this.folderName(), parentFolderName, FolderStore.foldersCreating), Notification.CantCreateFolder ); diff --git a/dev/View/Popup/Identity.js b/dev/View/Popup/Identity.js index 33b012312..a2bfb3963 100644 --- a/dev/View/Popup/Identity.js +++ b/dev/View/Popup/Identity.js @@ -7,8 +7,6 @@ import { getNotification } from 'Common/Translator'; import Remote from 'Remote/User/Fetch'; -import { getApp } from 'Helper/Apps/User'; - import { popup, command } from 'Knoin/Knoin'; import { AbstractViewNext } from 'Knoin/AbstractViewNext'; @@ -89,7 +87,7 @@ class IdentityPopupView extends AbstractViewNext { this.submitRequest(false); if (StorageResultType.Success === result && data) { if (data.Result) { - getApp().accountsAndIdentities(); + rl.app.accountsAndIdentities(); this.cancelCommand(); } else if (data.ErrorCode) { this.submitError(getNotification(data.ErrorCode)); diff --git a/dev/View/Popup/NewOpenPgpKey.js b/dev/View/Popup/NewOpenPgpKey.js index c166f8068..babc62acc 100644 --- a/dev/View/Popup/NewOpenPgpKey.js +++ b/dev/View/Popup/NewOpenPgpKey.js @@ -4,8 +4,6 @@ import { pInt } from 'Common/Utils'; import PgpStore from 'Stores/User/Pgp'; -import { getApp } from 'Helper/Apps/User'; - import { popup, command } from 'Knoin/Knoin'; import { AbstractViewNext } from 'Knoin/AbstractViewNext'; @@ -68,7 +66,7 @@ class NewOpenPgpKeyPopupView extends AbstractViewNext { openpgpKeyring.store(); - getApp().reloadOpenPgpKeys(); + rl.app.reloadOpenPgpKeys(); this.cancelCommand && this.cancelCommand(); } }) diff --git a/dev/View/Popup/Template.js b/dev/View/Popup/Template.js index d1674874c..895f49463 100644 --- a/dev/View/Popup/Template.js +++ b/dev/View/Popup/Template.js @@ -6,8 +6,6 @@ import { HtmlEditor } from 'Common/HtmlEditor'; import Remote from 'Remote/User/Fetch'; -import { getApp } from 'Helper/Apps/User'; - import { popup, command } from 'Knoin/Knoin'; import { AbstractViewNext } from 'Knoin/AbstractViewNext'; @@ -62,7 +60,7 @@ class TemplatePopupView extends AbstractViewNext { this.submitRequest(false); if (StorageResultType.Success === result && data) { if (data.Result) { - getApp().templates(); + rl.app.templates(); this.cancelCommand(); } else if (data.ErrorCode) { this.submitError(getNotification(data.ErrorCode)); diff --git a/dev/View/Popup/TwoFactorConfiguration.js b/dev/View/Popup/TwoFactorConfiguration.js index ec42f4014..e6143a7c0 100644 --- a/dev/View/Popup/TwoFactorConfiguration.js +++ b/dev/View/Popup/TwoFactorConfiguration.js @@ -6,8 +6,6 @@ import { i18n, trigger as translatorTrigger } from 'Common/Translator'; import Remote from 'Remote/User/Fetch'; -import { getApp } from 'Helper/Apps/User'; - import { popup, showScreenPopup } from 'Knoin/Knoin'; import { AbstractViewNext } from 'Knoin/AbstractViewNext'; @@ -104,7 +102,7 @@ class TwoFactorConfigurationPopupView extends AbstractViewNext { } logout() { - getApp().logout(); + rl.app.logout(); } testTwoFactor() { diff --git a/dev/View/User/AbstractSystemDropDown.js b/dev/View/User/AbstractSystemDropDown.js index 8448aba50..87992a9ae 100644 --- a/dev/View/User/AbstractSystemDropDown.js +++ b/dev/View/User/AbstractSystemDropDown.js @@ -7,9 +7,6 @@ import MessageStore from 'Stores/User/Message'; import { Capa, KeyState } from 'Common/Enums'; import { settings } from 'Common/Links'; - -import { getApp } from 'Helper/Apps/User'; - import { showScreenPopup, setHash } from 'Knoin/Knoin'; import { AbstractViewNext } from 'Knoin/AbstractViewNext'; @@ -80,7 +77,7 @@ class AbstractSystemDropDownUserView extends AbstractViewNext { } logoutClick() { - getApp().logout(); + rl.app.logout(); } onBuild() { diff --git a/dev/View/User/MailBox/FolderList.js b/dev/View/User/MailBox/FolderList.js index b7dfcc566..b81d8772f 100644 --- a/dev/View/User/MailBox/FolderList.js +++ b/dev/View/User/MailBox/FolderList.js @@ -10,8 +10,6 @@ import SettingsStore from 'Stores/User/Settings'; import FolderStore from 'Stores/User/Folder'; import MessageStore from 'Stores/User/Message'; -import { getApp } from 'Helper/Apps/User'; - import { view, ViewType, showScreenPopup, setHash } from 'Knoin/Knoin'; import { AbstractViewNext } from 'Knoin/AbstractViewNext'; @@ -77,7 +75,7 @@ class FolderListMailBoxUserView extends AbstractViewNext { if (folder) { if (isMove) { moveAction(false); - getApp().moveMessagesToFolder( + rl.app.moveMessagesToFolder( FolderStore.currentFolderFullNameRaw(), MessageStore.messageListCheckedOrSelectedUidsWithSubMails(), folder.fullNameRaw, @@ -111,7 +109,7 @@ class FolderListMailBoxUserView extends AbstractViewNext { const folder = ko.dataFor(el); if (folder) { const collapsed = folder.collapsed(); - getApp().setExpandedFolder(folder.fullNameHash, collapsed); + rl.app.setExpandedFolder(folder.fullNameHash, collapsed); folder.collapsed(!collapsed); event.preventDefault(); @@ -165,7 +163,7 @@ class FolderListMailBoxUserView extends AbstractViewNext { folder = item && ko.dataFor(item); if (folder) { const collapsed = folder.collapsed(); - getApp().setExpandedFolder(folder.fullNameHash, collapsed); + rl.app.setExpandedFolder(folder.fullNameHash, collapsed); folder.collapsed(!collapsed); } @@ -193,7 +191,7 @@ class FolderListMailBoxUserView extends AbstractViewNext { if (folder && folder.collapsed()) { this.iDropOverTimer = setTimeout(() => { folder.collapsed(false); - getApp().setExpandedFolder(folder.fullNameHash, true); + rl.app.setExpandedFolder(folder.fullNameHash, true); }, 500); } } @@ -231,7 +229,7 @@ class FolderListMailBoxUserView extends AbstractViewNext { uids = ui.helper.rlUids; if (fromFolderFullNameRaw && Array.isArray(uids)) { - getApp().moveMessagesToFolder(fromFolderFullNameRaw, uids, toFolder.fullNameRaw, copy); + rl.app.moveMessagesToFolder(fromFolderFullNameRaw, uids, toFolder.fullNameRaw, copy); } } } diff --git a/dev/View/User/MailBox/MessageList.js b/dev/View/User/MailBox/MessageList.js index 66d3d9af8..7e430b558 100644 --- a/dev/View/User/MailBox/MessageList.js +++ b/dev/View/User/MailBox/MessageList.js @@ -37,8 +37,6 @@ import MessageStore from 'Stores/User/Message'; import Remote from 'Remote/User/Fetch'; -import { getApp } from 'Helper/Apps/User'; - import { view, command, ViewType, showScreenPopup, setHash, popupVisibility } from 'Knoin/Knoin'; import { AbstractViewNext } from 'Knoin/AbstractViewNext'; @@ -266,7 +264,7 @@ class MessageListMailBoxUserView extends AbstractViewNext { @command() reloadCommand() { if (!MessageStore.messageListCompleteLoadingThrottleForAnimation() && this.allowReload) { - getApp().reloadMessageList(false, true); + rl.app.reloadMessageList(false, true); } } @@ -283,7 +281,7 @@ class MessageListMailBoxUserView extends AbstractViewNext { @command(canBeMovedHelper) deleteWithoutMoveCommand() { if (Settings.capa(Capa.DangerousActions)) { - getApp().deleteMessagesFromFolder( + rl.app.deleteMessagesFromFolder( FolderType.Trash, FolderStore.currentFolderFullNameRaw(), MessageStore.messageListCheckedOrSelectedUidsWithSubMails(), @@ -294,7 +292,7 @@ class MessageListMailBoxUserView extends AbstractViewNext { @command(canBeMovedHelper) deleteCommand() { - getApp().deleteMessagesFromFolder( + rl.app.deleteMessagesFromFolder( FolderType.Trash, FolderStore.currentFolderFullNameRaw(), MessageStore.messageListCheckedOrSelectedUidsWithSubMails(), @@ -304,7 +302,7 @@ class MessageListMailBoxUserView extends AbstractViewNext { @command(canBeMovedHelper) archiveCommand() { - getApp().deleteMessagesFromFolder( + rl.app.deleteMessagesFromFolder( FolderType.Archive, FolderStore.currentFolderFullNameRaw(), MessageStore.messageListCheckedOrSelectedUidsWithSubMails(), @@ -314,7 +312,7 @@ class MessageListMailBoxUserView extends AbstractViewNext { @command(canBeMovedHelper) spamCommand() { - getApp().deleteMessagesFromFolder( + rl.app.deleteMessagesFromFolder( FolderType.Spam, FolderStore.currentFolderFullNameRaw(), MessageStore.messageListCheckedOrSelectedUidsWithSubMails(), @@ -324,7 +322,7 @@ class MessageListMailBoxUserView extends AbstractViewNext { @command(canBeMovedHelper) notSpamCommand() { - getApp().deleteMessagesFromFolder( + rl.app.deleteMessagesFromFolder( FolderType.NotSpam, FolderStore.currentFolderFullNameRaw(), MessageStore.messageListCheckedOrSelectedUidsWithSubMails(), @@ -470,7 +468,7 @@ class MessageListMailBoxUserView extends AbstractViewNext { */ moveSelectedMessagesToFolder(sToFolderFullNameRaw, bCopy) { if (this.canBeMoved()) { - getApp().moveMessagesToFolder( + rl.app.moveMessagesToFolder( FolderStore.currentFolderFullNameRaw(), MessageStore.messageListCheckedOrSelectedUidsWithSubMails(), sToFolderFullNameRaw, @@ -514,7 +512,7 @@ class MessageListMailBoxUserView extends AbstractViewNext { * @returns {void} */ 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 } - getApp().reloadFlagsCurrentMessageListAndMessageFromCache(); + rl.app.reloadFlagsCurrentMessageListAndMessageFromCache(); } } } @@ -975,7 +973,7 @@ class MessageListMailBoxUserView extends AbstractViewNext { return false; }) - .on('onComplete', () => getApp().reloadMessageList(true, true)); + .on('onComplete', () => rl.app.reloadMessageList(true, true)); return !!oJua; } diff --git a/dev/View/User/MailBox/MessageView.js b/dev/View/User/MailBox/MessageView.js index b3f283ad1..a306fa915 100644 --- a/dev/View/User/MailBox/MessageView.js +++ b/dev/View/User/MailBox/MessageView.js @@ -40,8 +40,6 @@ import * as Local from 'Storage/Client'; import Remote from 'Remote/User/Fetch'; -import { getApp } from 'Helper/Apps/User'; - import { view, command, ViewType, showScreenPopup, createCommand } from 'Knoin/Knoin'; import { AbstractViewNext } from 'Knoin/AbstractViewNext'; @@ -69,7 +67,7 @@ class MessageViewMailBoxUserView extends AbstractViewNext { const message = this.message(); if (message && this.allowMessageListActions) { this.message(null); - getApp().deleteMessagesFromFolder(folderType, message.folderFullNameRaw, [message.uid], useFolder); + rl.app.deleteMessagesFromFolder(folderType, message.folderFullNameRaw, [message.uid], useFolder); } }, this.messageVisibility); @@ -510,13 +508,13 @@ class MessageViewMailBoxUserView extends AbstractViewNext { el = eqs(event, '.attachmentsPlace .attachmentItem .attachmentNameParent'); if (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')) { // eslint-disable-line prefer-arrow-callback const message = this.message(); - message && getApp().messageListAction( + message && rl.app.messageListAction( message.folderFullNameRaw, message.flagged() ? MessageSetAction.UnsetFlag : MessageSetAction.SetFlag, [message] @@ -527,7 +525,7 @@ class MessageViewMailBoxUserView extends AbstractViewNext { if (el) { // eslint-disable-line prefer-arrow-callback 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.flagged() ? MessageSetAction.UnsetFlag : MessageSetAction.SetFlag, [message] @@ -783,7 +781,7 @@ class MessageViewMailBoxUserView extends AbstractViewNext { Remote.attachmentsActions('Zip', hashes, this.downloadAsZipLoading) .then((result) => { 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 { this.downloadAsZipError(true); } @@ -833,7 +831,7 @@ class MessageViewMailBoxUserView extends AbstractViewNext { storeMessageFlagsToCache(oMessage); - getApp().reloadFlagsCurrentMessageListAndMessageFromCache(); + rl.app.reloadFlagsCurrentMessageListAndMessageFromCache(); } } } diff --git a/dev/bootstrap.js b/dev/bootstrap.js index d0eb012dd..b36e9b811 100644 --- a/dev/bootstrap.js +++ b/dev/bootstrap.js @@ -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 Plugins from 'Common/Plugins'; import { i18n } from 'Common/Translator'; export default (App) => { - GlobalsData.__APP__ = App; addEventListener('keydown', event => { event = event || window.event; @@ -86,6 +85,21 @@ export default (App) => { } 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 => {