From eff92c3152cfbb7ac5ac116bf9ba57a875f0bb1d Mon Sep 17 00:00:00 2001 From: djmaze Date: Tue, 16 Mar 2021 16:06:16 +0100 Subject: [PATCH] Cleanup AppUserStore Simplify KeyState/Focused as Scope enum --- dev/App/User.js | 4 +- dev/Common/Enums.js | 26 +++++------ dev/Common/EnumsUser.js | 10 ---- dev/Common/Globals.js | 14 +++--- dev/Knoin/AbstractViews.js | 35 +++++++------- dev/Knoin/Knoin.js | 4 +- dev/Remote/User/Fetch.js | 4 +- dev/Screen/User/MailBox.js | 6 +-- dev/Screen/User/Settings.js | 4 +- dev/Settings/User/Contacts.js | 4 +- dev/Stores/User/App.js | 46 ++++--------------- dev/Stores/User/Message.js | 8 ++-- dev/View/Admin/Settings/Menu.js | 4 +- dev/View/Popup/Ask.js | 9 ++-- dev/View/Popup/Compose.js | 28 ++++++------ dev/View/Popup/ComposeOpenPgp.js | 8 ++-- dev/View/Popup/Contacts.js | 10 ++-- dev/View/Popup/KeyboardShortcutsHelp.js | 5 +- dev/View/Popup/MessageOpenPgp.js | 8 ++-- dev/View/Popup/Plugin.js | 6 +-- dev/View/Popup/ViewOpenPgpKey.js | 6 +-- dev/View/User/AbstractSystemDropDown.js | 8 ++-- dev/View/User/Login.js | 8 +--- dev/View/User/MailBox/FolderList.js | 25 +++++----- dev/View/User/MailBox/MessageList.js | 61 ++++++++++++------------- dev/View/User/MailBox/MessageView.js | 54 +++++++++++----------- dev/View/User/Settings/Menu.js | 4 +- 27 files changed, 177 insertions(+), 232 deletions(-) diff --git a/dev/App/User.js b/dev/App/User.js index 826002b6f..aad9d98aa 100644 --- a/dev/App/User.js +++ b/dev/App/User.js @@ -6,7 +6,7 @@ import { isPosNumeric, delegateRunOnDestroy, mailToHelper } from 'Common/UtilsUs import { Capa, Notification, - KeyState + Scope } from 'Common/Enums'; import { @@ -133,7 +133,7 @@ class AppUser extends AbstractApp { t => doc.addEventListener(t, SettingsUserStore.delayLogout, {passive:true}) ); - shortcuts.add('escape,enter', '', KeyState.All, () => rl.Dropdowns.detectVisibility()); + shortcuts.add('escape,enter', '', Scope.All, () => rl.Dropdowns.detectVisibility()); } reload() { diff --git a/dev/Common/Enums.js b/dev/Common/Enums.js index 4df227089..49cc42a1e 100644 --- a/dev/Common/Enums.js +++ b/dev/Common/Enums.js @@ -32,21 +32,21 @@ export const Capa = { /** * @enum {string} */ -export const KeyState = { +export const Scope = { All: 'all', None: 'none', - ContactList: 'contact-list', - MessageList: 'message-list', - FolderList: 'folder-list', - MessageView: 'message-view', - Compose: 'compose', - Settings: 'settings', - Menu: 'menu', - PopupComposeOpenPGP: 'compose-open-pgp', - PopupMessageOpenPGP: 'message-open-pgp', - PopupViewOpenPGP: 'view-open-pgp', - PopupKeyboardShortcutsHelp: 'popup-keyboard-shortcuts-help', - PopupAsk: 'popup-ask' + Contacts: 'Contacts', + MessageList: 'MessageList', + FolderList: 'FolderList', + MessageView: 'MessageView', + Compose: 'Compose', + Settings: 'Settings', + Menu: 'Menu', + ComposeOpenPgp: 'ComposeOpenPgp', + MessageOpenPgp: 'MessageOpenPgp', + ViewOpenPgpKey: 'ViewOpenPgpKey', + KeyboardShortcutsHelp: 'KeyboardShortcutsHelp', + Ask: 'Ask' }; /** diff --git a/dev/Common/EnumsUser.js b/dev/Common/EnumsUser.js index 6c54e4db4..19d382c70 100644 --- a/dev/Common/EnumsUser.js +++ b/dev/Common/EnumsUser.js @@ -1,15 +1,5 @@ /* eslint quote-props: 0 */ -/** - * @enum {string} - */ -export const Focused = { - None: 'none', - MessageList: 'message-list', - MessageView: 'message-view', - FolderList: 'folder-list' -}; - /** * @enum {number} */ diff --git a/dev/Common/Globals.js b/dev/Common/Globals.js index a4ec55ad1..a2653cfc3 100644 --- a/dev/Common/Globals.js +++ b/dev/Common/Globals.js @@ -1,5 +1,5 @@ import ko from 'ko'; -import { KeyState } from 'Common/Enums'; +import { Scope } from 'Common/Enums'; export const doc = document; @@ -29,24 +29,24 @@ leftPanelDisabled.subscribe(value => { moveAction.subscribe(value => value && leftPanelDisabled() && leftPanelDisabled(false)); // keys -export const keyScopeReal = ko.observable(KeyState.All); +export const keyScopeReal = ko.observable(Scope.All); export const keyScope = (()=>{ - let keyScopeFake = KeyState.All; + let keyScopeFake = Scope.All; dropdownVisibility.subscribe(value => { if (value) { - keyScope(KeyState.Menu); - } else if (KeyState.Menu === shortcuts.getScope()) { + keyScope(Scope.Menu); + } else if (Scope.Menu === shortcuts.getScope()) { keyScope(keyScopeFake); } }); return ko.computed({ read: () => keyScopeFake, write: value => { - if (KeyState.Menu !== value) { + if (Scope.Menu !== value) { keyScopeFake = value; if (dropdownVisibility()) { - value = KeyState.Menu; + value = Scope.Menu; } } diff --git a/dev/Knoin/AbstractViews.js b/dev/Knoin/AbstractViews.js index bbb6baa93..39661750d 100644 --- a/dev/Knoin/AbstractViews.js +++ b/dev/Knoin/AbstractViews.js @@ -1,41 +1,41 @@ import ko from 'ko'; import { inFocus, addObservablesTo, addComputablesTo, addSubscribablesTo } from 'Common/Utils'; -import { KeyState } from 'Common/Enums'; +import { Scope } from 'Common/Enums'; import { keyScope } from 'Common/Globals'; import { ViewType } from 'Knoin/Knoin'; class AbstractView { - bDisabeCloseOnEsc = false; - sDefaultKeyScope = KeyState.None; - sCurrentKeyScope = KeyState.None; - - viewModelVisible = false; - modalVisibility = ko.observable(false).extend({ rateLimit: 0 }); - - viewModelName = ''; - viewModelDom = null; - constructor(name, templateID, type) { this.viewModelName = 'View/' + name; this.viewModelTemplateID = templateID; this.viewModelPosition = type; + + this.bDisabeCloseOnEsc = false; + this.sDefaultScope = Scope.None; + this.sCurrentScope = Scope.None; + + this.viewModelVisible = false; + this.modalVisibility = ko.observable(false).extend({ rateLimit: 0 }); + + this.viewModelName = ''; + this.viewModelDom = null; } /** * @returns {void} */ - storeAndSetKeyScope() { - this.sCurrentKeyScope = keyScope(); - keyScope(this.sDefaultKeyScope); + storeAndSetScope() { + this.sCurrentScope = keyScope(); + keyScope(this.sDefaultScope); } /** * @returns {void} */ - restoreKeyScope() { - keyScope(this.sCurrentKeyScope); + restoreScope() { + keyScope(this.sCurrentScope); } cancelCommand() {} @@ -64,6 +64,9 @@ export class AbstractViewPopup extends AbstractView constructor(name) { super('Popup/' + name, 'Popups' + name, ViewType.Popup); + if (name in Scope) { + this.sDefaultScope = Scope[name]; + } } /** diff --git a/dev/Knoin/Knoin.js b/dev/Knoin/Knoin.js index 49cda365d..a4cd56a40 100644 --- a/dev/Knoin/Knoin.js +++ b/dev/Knoin/Knoin.js @@ -111,7 +111,7 @@ function buildViewModel(ViewModelClass, vmScreen) { if (value) { vmDom.style.zIndex = 3000 + popupVisibilityNames.length + 10; vmDom.hidden = false; - vm.storeAndSetKeyScope(); + vm.storeAndSetScope(); popupVisibilityNames.push(vm.viewModelName); requestAnimationFrame(() => { // wait just before the next paint vmDom.offsetHeight; // force a reflow @@ -120,7 +120,7 @@ function buildViewModel(ViewModelClass, vmScreen) { } else { vm.onHide && vm.onHide(); vmDom.classList.remove('show'); - vm.restoreKeyScope(); + vm.restoreScope(); popupVisibilityNames = popupVisibilityNames.filter(v=>v!==vm.viewModelName); } vmDom.setAttribute('aria-hidden', !value); diff --git a/dev/Remote/User/Fetch.js b/dev/Remote/User/Fetch.js index edbe0b2d2..ec210cafe 100644 --- a/dev/Remote/User/Fetch.js +++ b/dev/Remote/User/Fetch.js @@ -322,7 +322,7 @@ class RemoteUserFetch extends AbstractFetchRemote { iOffset, iLimit, sSearch, - AppUserStore.projectHash(), + SettingsGet('ProjectHash'), folderHash, inboxUidNext, useThreads ? 1 : 0, @@ -387,7 +387,7 @@ class RemoteUserFetch extends AbstractFetchRemote { urlsafeArray([ sFolderFullNameRaw, iUid, - AppUserStore.projectHash(), + SettingsGet('ProjectHash'), AppUserStore.threadsAllowed() && SettingsUserStore.useThreads() ? 1 : 0 ]), ['Message'] diff --git a/dev/Screen/User/MailBox.js b/dev/Screen/User/MailBox.js index 01737534b..cf67ddf28 100644 --- a/dev/Screen/User/MailBox.js +++ b/dev/Screen/User/MailBox.js @@ -1,4 +1,4 @@ -import { Focused } from 'Common/EnumsUser'; +import { Scope } from 'Common/Enums'; import { doc, leftPanelDisabled, moveAction, Settings } from 'Common/Globals'; import { pString, pInt } from 'Common/Utils'; import { getFolderFromCacheList, getFolderFullNameRaw, getFolderInboxName } from 'Common/Cache'; @@ -53,8 +53,8 @@ export class MailBoxUserScreen extends AbstractScreen { onShow() { this.updateWindowTitle(); - AppUserStore.focusedState(Focused.None); - AppUserStore.focusedState(Focused.MessageList); + AppUserStore.focusedState(Scope.None); + AppUserStore.focusedState(Scope.MessageList); ThemeStore.isMobile() && leftPanelDisabled(true); } diff --git a/dev/Screen/User/Settings.js b/dev/Screen/User/Settings.js index 8b36419c2..777f5402c 100644 --- a/dev/Screen/User/Settings.js +++ b/dev/Screen/User/Settings.js @@ -1,4 +1,4 @@ -import { Capa, KeyState } from 'Common/Enums'; +import { Capa, Scope } from 'Common/Enums'; import { keyScope, leftPanelDisabled, Settings } from 'Common/Globals'; import { runSettingsViewModelHooks } from 'Common/Plugins'; import { initOnStartOrLangChange, i18n } from 'Common/Translator'; @@ -96,7 +96,7 @@ export class SettingsUserScreen extends AbstractSettingsScreen { onShow() { this.setSettingsTitle(); - keyScope(KeyState.Settings); + keyScope(Scope.Settings); ThemeStore.isMobile() && leftPanelDisabled(true); } diff --git a/dev/Settings/User/Contacts.js b/dev/Settings/User/Contacts.js index 0d3a8360b..d7347ce02 100644 --- a/dev/Settings/User/Contacts.js +++ b/dev/Settings/User/Contacts.js @@ -1,12 +1,12 @@ import ko from 'ko'; -import { AppUserStore } from 'Stores/User/App'; +import { SettingsGet } from 'Common/Globals'; import { ContactUserStore } from 'Stores/User/Contact'; import Remote from 'Remote/User/Fetch'; export class ContactsUserSettings { constructor() { - this.contactsAutosave = AppUserStore.contactsAutosave; + this.contactsAutosave = ko.observable(!!SettingsGet('ContactsAutosave')); this.allowContactsSync = ContactUserStore.allowSync; this.enableContactsSync = ContactUserStore.enableSync; diff --git a/dev/Stores/User/App.js b/dev/Stores/User/App.js index 7454dcf4f..a351899f6 100644 --- a/dev/Stores/User/App.js +++ b/dev/Stores/User/App.js @@ -1,63 +1,33 @@ -import ko from 'ko'; -import { KeyState } from 'Common/Enums'; -import { Focused } from 'Common/EnumsUser'; -import { keyScope, leftPanelDisabled, Settings, SettingsGet } from 'Common/Globals'; +import { Scope } from 'Common/Enums'; +import { keyScope, leftPanelDisabled, SettingsGet } from 'Common/Globals'; import { addObservablesTo } from 'Common/Utils'; import { ThemeStore } from 'Stores/Theme'; export const AppUserStore = { - attachmentsActions: ko.observableArray(), - - devEmail: '', - devPassword: '', - populate: () => { - AppUserStore.projectHash(SettingsGet('ProjectHash')); - - AppUserStore.contactsAutosave(!!SettingsGet('ContactsAutosave')); - AppUserStore.useLocalProxyForExternalImages(!!SettingsGet('UseLocalProxyForExternalImages')); - AppUserStore.contactsIsAllowed(!!SettingsGet('ContactsIsAllowed')); - - const attachmentsActions = Settings.app('attachmentsActions'); - AppUserStore.attachmentsActions(Array.isNotEmpty(attachmentsActions) ? attachmentsActions : []); - - AppUserStore.devEmail = SettingsGet('DevEmail'); - AppUserStore.devPassword = SettingsGet('DevPassword'); } }; addObservablesTo(AppUserStore, { currentAudio: '', - focusedState: Focused.None, + focusedState: Scope.None, - projectHash: '', threadsAllowed: false, composeInEdit: false, - contactsAutosave: false, - useLocalProxyForExternalImages: false, - contactsIsAllowed: false }); AppUserStore.focusedState.subscribe(value => { switch (value) { - case Focused.MessageList: - keyScope(KeyState.MessageList); - ThemeStore.isMobile() && leftPanelDisabled(true); - break; - case Focused.MessageView: - keyScope(KeyState.MessageView); - ThemeStore.isMobile() && leftPanelDisabled(true); - break; - case Focused.FolderList: - keyScope(KeyState.FolderList); - ThemeStore.isMobile() && leftPanelDisabled(false); - break; - default: + case Scope.MessageList: + case Scope.MessageView: + case Scope.FolderList: + keyScope(value); + ThemeStore.isMobile() && leftPanelDisabled(Scope.FolderList !== value); break; } }); diff --git a/dev/Stores/User/Message.js b/dev/Stores/User/Message.js index a4583da02..6de7a0e32 100644 --- a/dev/Stores/User/Message.js +++ b/dev/Stores/User/Message.js @@ -1,7 +1,7 @@ import ko from 'ko'; -import { Notification } from 'Common/Enums'; -import { Focused, MessageSetAction } from 'Common/EnumsUser'; +import { Scope, Notification } from 'Common/Enums'; +import { MessageSetAction } from 'Common/EnumsUser'; import { doc, elementById } from 'Common/Globals'; import { pInt, pString, addObservablesTo, addSubscribablesTo } from 'Common/Utils'; import { plainToHtml } from 'Common/UtilsUser'; @@ -202,10 +202,10 @@ export const MessageUserStore = new class { message: message => { if (message) { if (!SettingsUserStore.usePreviewPane()) { - AppUserStore.focusedState(Focused.MessageView); + AppUserStore.focusedState(Scope.MessageView); } } else { - AppUserStore.focusedState(Focused.MessageList); + AppUserStore.focusedState(Scope.MessageList); this.messageFullScreenMode(false); this.hideMessageBodies(); diff --git a/dev/View/Admin/Settings/Menu.js b/dev/View/Admin/Settings/Menu.js index e70aae339..3f218ddff 100644 --- a/dev/View/Admin/Settings/Menu.js +++ b/dev/View/Admin/Settings/Menu.js @@ -1,4 +1,4 @@ -import { KeyState } from 'Common/Enums'; +import { Scope } from 'Common/Enums'; import { settingsMenuKeysHandler } from 'Knoin/Knoin'; import { AbstractViewLeft } from 'Knoin/AbstractViews'; @@ -18,7 +18,7 @@ class MenuSettingsAdminView extends AbstractViewLeft { } onBuild(dom) { - shortcuts.add('arrowup,arrowdown', '', KeyState.Settings, + shortcuts.add('arrowup,arrowdown', '', Scope.Settings, settingsMenuKeysHandler(dom.querySelectorAll('.b-admin-menu .e-item'))); } } diff --git a/dev/View/Popup/Ask.js b/dev/View/Popup/Ask.js index 4672aa47b..477ef40e8 100644 --- a/dev/View/Popup/Ask.js +++ b/dev/View/Popup/Ask.js @@ -1,4 +1,4 @@ -import { KeyState } from 'Common/Enums'; +import { Scope } from 'Common/Enums'; import { i18n } from 'Common/Translator'; import { AbstractViewPopup } from 'Knoin/AbstractViews'; @@ -18,7 +18,6 @@ class AskPopupView extends AbstractViewPopup { this.bFocusYesOnShow = true; this.bDisabeCloseOnEsc = true; - this.sDefaultKeyScope = KeyState.PopupAsk; } clearPopup() { @@ -81,8 +80,8 @@ class AskPopupView extends AbstractViewPopup { } onBuild() { -// shortcuts.add('tab', 'shift', KeyState.PopupAsk, () => { - shortcuts.add('tab,arrowright,arrowleft', '', KeyState.PopupAsk, () => { +// shortcuts.add('tab', 'shift', Scope.Ask, () => { + shortcuts.add('tab,arrowright,arrowleft', '', Scope.Ask, () => { let btn = this.querySelector('.buttonYes'); if (btn.matches(':focus')) { btn = this.querySelector('.buttonNo'); @@ -91,7 +90,7 @@ class AskPopupView extends AbstractViewPopup { return false; }); - shortcuts.add('escape', '', KeyState.PopupAsk, () => { + shortcuts.add('escape', '', Scope.Ask, () => { this.noClick(); return false; }); diff --git a/dev/View/Popup/Compose.js b/dev/View/Popup/Compose.js index ace92427f..2e75914cc 100644 --- a/dev/View/Popup/Compose.js +++ b/dev/View/Popup/Compose.js @@ -1,7 +1,7 @@ import ko from 'ko'; import { - KeyState, + Scope, Notification, UploadErrorCode } from 'Common/Enums'; @@ -125,10 +125,9 @@ class ComposePopupView extends AbstractViewPopup { this.sLastFocusedField = 'to'; - this.allowContacts = !!AppUserStore.contactsIsAllowed(); + this.allowContacts = AppUserStore.contactsIsAllowed(); this.bSkipNextHide = false; - this.composeInEdit = AppUserStore.composeInEdit; this.editorDefaultType = SettingsUserStore.editorDefaultType; this.capaOpenPGP = PgpUserStore.capaOpenPGP; @@ -218,7 +217,6 @@ class ComposePopupView extends AbstractViewPopup { }); this.bDisabeCloseOnEsc = true; - this.sDefaultKeyScope = KeyState.Compose; this.tryToClosePopup = this.tryToClosePopup.debounce(200); @@ -1133,42 +1131,42 @@ class ComposePopupView extends AbstractViewPopup { onBuild(dom) { this.initUploader(); - shortcuts.add('q', 'meta', KeyState.Compose, ()=>false); - shortcuts.add('w', 'meta', KeyState.Compose, ()=>false); + shortcuts.add('q', 'meta', Scope.Compose, ()=>false); + shortcuts.add('w', 'meta', Scope.Compose, ()=>false); - shortcuts.add('m,contextmenu', '', KeyState.Compose, e => this.popupMenu(e)); - shortcuts.add('m', 'ctrl', KeyState.Compose, e => this.popupMenu(e)); + shortcuts.add('m,contextmenu', '', Scope.Compose, e => this.popupMenu(e)); + shortcuts.add('m', 'ctrl', Scope.Compose, e => this.popupMenu(e)); - shortcuts.add('escape,close', '', KeyState.Compose, () => { + shortcuts.add('escape,close', '', Scope.Compose, () => { this.skipCommand(); return false; }); - shortcuts.add('arrowdown', 'meta', KeyState.Compose, () => { + shortcuts.add('arrowdown', 'meta', Scope.Compose, () => { this.skipCommand(); return false; }); - shortcuts.add('s', 'meta', KeyState.Compose, () => { + shortcuts.add('s', 'meta', Scope.Compose, () => { this.saveCommand(); return false; }); - shortcuts.add('save', KeyState.Compose, () => { + shortcuts.add('save', Scope.Compose, () => { this.saveCommand(); return false; }); if (Settings.app('allowCtrlEnterOnCompose')) { - shortcuts.add('enter', 'meta', KeyState.Compose, () => { + shortcuts.add('enter', 'meta', Scope.Compose, () => { this.sendCommand(); return false; }); } - shortcuts.add('mailsend', '', KeyState.Compose, () => { + shortcuts.add('mailsend', '', Scope.Compose, () => { this.sendCommand(); return false; }); - shortcuts.add('escape,close', 'shift', KeyState.Compose, () => { + shortcuts.add('escape,close', 'shift', Scope.Compose, () => { this.modalVisibility() && this.tryToClosePopup(); return false; }); diff --git a/dev/View/Popup/ComposeOpenPgp.js b/dev/View/Popup/ComposeOpenPgp.js index 870a0b51a..63f520c59 100644 --- a/dev/View/Popup/ComposeOpenPgp.js +++ b/dev/View/Popup/ComposeOpenPgp.js @@ -2,7 +2,7 @@ import ko from 'ko'; import { pString, defaultOptionsAfterRender } from 'Common/Utils'; -import { KeyState } from 'Common/Enums'; +import { Scope } from 'Common/Enums'; import { i18n } from 'Common/Translator'; import { PgpUserStore } from 'Stores/User/Pgp'; @@ -88,8 +88,6 @@ class ComposeOpenPgpPopupView extends AbstractViewPopup { } }); - this.sDefaultKeyScope = KeyState.PopupComposeOpenPGP; - this.defaultOptionsAfterRender = defaultOptionsAfterRender; this.deletePublickKey = this.deletePublickKey.bind(this); @@ -290,8 +288,8 @@ class ComposeOpenPgpPopupView extends AbstractViewPopup { } onBuild() { -// shortcuts.add('tab', 'shift', KeyState.PopupComposeOpenPGP, () => { - shortcuts.add('tab', '', KeyState.PopupComposeOpenPGP, () => { +// shortcuts.add('tab', 'shift', Scope.ComposeOpenPgp, () => { + shortcuts.add('tab', '', Scope.ComposeOpenPgp, () => { let btn = this.querySelector('.inputPassword'); if (btn.matches(':focus')) { btn = this.querySelector('.buttonDo'); diff --git a/dev/View/Popup/Contacts.js b/dev/View/Popup/Contacts.js index b34ed9523..f0507bbad 100644 --- a/dev/View/Popup/Contacts.js +++ b/dev/View/Popup/Contacts.js @@ -3,7 +3,7 @@ import ko from 'ko'; import { SaveSettingsStep, Notification, - KeyState + Scope } from 'Common/Enums'; import { ComposeType } from 'Common/EnumsUser'; @@ -94,8 +94,6 @@ class ContactsPopupView extends AbstractViewPopup { // this.saveCommandDebounce = _.debounce(this.saveCommand.bind(this), 1000); - this.sDefaultKeyScope = KeyState.ContactList; - const // propertyFocused = property => !property.isValid() && !property.focused(), pagecount = () => Math.max(1, Math.ceil(this.contactsCount() / CONTACTS_PER_PAGE)); @@ -490,14 +488,14 @@ class ContactsPopupView extends AbstractViewPopup { } onBuild(dom) { - this.selector.init(dom.querySelector('.b-list-content'), KeyState.ContactList); + this.selector.init(dom.querySelector('.b-list-content'), Scope.Contacts); - shortcuts.add('delete', '', KeyState.ContactList, () => { + shortcuts.add('delete', '', Scope.Contacts, () => { this.deleteCommand(); return false; }); - shortcuts.add('c,w', '', KeyState.ContactList, () => { + shortcuts.add('c,w', '', Scope.Contacts, () => { this.newMessageCommand(); return false; }); diff --git a/dev/View/Popup/KeyboardShortcutsHelp.js b/dev/View/Popup/KeyboardShortcutsHelp.js index 735b8d301..1ad896083 100644 --- a/dev/View/Popup/KeyboardShortcutsHelp.js +++ b/dev/View/Popup/KeyboardShortcutsHelp.js @@ -1,11 +1,10 @@ -import { KeyState } from 'Common/Enums'; +import { Scope } from 'Common/Enums'; import { AbstractViewPopup } from 'Knoin/AbstractViews'; class KeyboardShortcutsHelpPopupView extends AbstractViewPopup { constructor() { super('KeyboardShortcutsHelp'); - this.sDefaultKeyScope = KeyState.PopupKeyboardShortcutsHelp; } onBuild(dom) { @@ -13,7 +12,7 @@ class KeyboardShortcutsHelpPopupView extends AbstractViewPopup { // shortcuts.add('tab', 'shift', shortcuts.add('tab,arrowleft,arrowright', '', - KeyState.PopupKeyboardShortcutsHelp, + Scope.KeyboardShortcutsHelp, ((event, handler)=>{ if (event && handler) { const tabs = dom.querySelectorAll('.nav.nav-tabs > li'), diff --git a/dev/View/Popup/MessageOpenPgp.js b/dev/View/Popup/MessageOpenPgp.js index 13e8593d9..3218c8c18 100644 --- a/dev/View/Popup/MessageOpenPgp.js +++ b/dev/View/Popup/MessageOpenPgp.js @@ -1,7 +1,7 @@ import ko from 'ko'; import { pString } from 'Common/Utils'; -import { KeyState } from 'Common/Enums'; +import { Scope } from 'Common/Enums'; import { decorateKoCommands } from 'Knoin/Knoin'; import { AbstractViewPopup } from 'Knoin/AbstractViews'; @@ -20,8 +20,6 @@ class MessageOpenPgpPopupView extends AbstractViewPopup { this.resultCallback = null; - this.sDefaultKeyScope = KeyState.PopupMessageOpenPGP; - decorateKoCommands(this, { doCommand: self => !self.submitRequest() }); @@ -77,8 +75,8 @@ class MessageOpenPgpPopupView extends AbstractViewPopup { } onBuild(oDom) { -// shortcuts.add('tab', 'shift', KeyState.PopupMessageOpenPGP, () => { - shortcuts.add('tab', '', KeyState.PopupMessageOpenPGP, () => { +// shortcuts.add('tab', 'shift', Scope.MessageOpenPgp, () => { + shortcuts.add('tab', '', Scope.MessageOpenPgp, () => { let btn = this.querySelector('.inputPassword'); if (btn.matches(':focus')) { btn = this.querySelector('.buttonDo'); diff --git a/dev/View/Popup/Plugin.js b/dev/View/Popup/Plugin.js index d6ae15eb7..52519f9aa 100644 --- a/dev/View/Popup/Plugin.js +++ b/dev/View/Popup/Plugin.js @@ -1,6 +1,6 @@ import ko from 'ko'; -import { KeyState, Notification } from 'Common/Enums'; +import { Scope, Notification } from 'Common/Enums'; import { getNotification, i18n } from 'Common/Translator'; import Remote from 'Remote/Admin/Fetch'; @@ -27,7 +27,7 @@ class PluginPopupView extends AbstractViewPopup { this.hasConfiguration = ko.computed(() => 0 < this.configures().length); this.bDisabeCloseOnEsc = true; - this.sDefaultKeyScope = KeyState.All; + this.sDefaultScope = Scope.All; this.tryToClosePopup = this.tryToClosePopup.debounce(200); @@ -101,7 +101,7 @@ class PluginPopupView extends AbstractViewPopup { } onBuild() { - shortcuts.add('escape', '', KeyState.All, () => { + shortcuts.add('escape', '', Scope.All, () => { if (this.modalVisibility()) { this.tryToClosePopup(); } diff --git a/dev/View/Popup/ViewOpenPgpKey.js b/dev/View/Popup/ViewOpenPgpKey.js index 053e78386..5dcbbc289 100644 --- a/dev/View/Popup/ViewOpenPgpKey.js +++ b/dev/View/Popup/ViewOpenPgpKey.js @@ -1,4 +1,4 @@ -import { KeyState } from 'Common/Enums'; +import { Scope } from 'Common/Enums'; import { doc } from 'Common/Globals'; import { AbstractViewPopup } from 'Knoin/AbstractViews'; @@ -10,8 +10,6 @@ class ViewOpenPgpKeyPopupView extends AbstractViewPopup { key: '', keyDom: null }); - - this.sDefaultKeyScope = KeyState.PopupViewOpenPGP; } clearPopup() { @@ -38,7 +36,7 @@ class ViewOpenPgpKeyPopupView extends AbstractViewPopup { } onBuild() { - shortcuts.add('a', 'meta', KeyState.PopupViewOpenPGP, () => { + shortcuts.add('a', 'meta', Scope.ViewOpenPgpKey, () => { this.selectKey(); return false; }); diff --git a/dev/View/User/AbstractSystemDropDown.js b/dev/View/User/AbstractSystemDropDown.js index 8021ab115..123bda59a 100644 --- a/dev/View/User/AbstractSystemDropDown.js +++ b/dev/View/User/AbstractSystemDropDown.js @@ -2,7 +2,7 @@ import { AppUserStore } from 'Stores/User/App'; import { AccountUserStore } from 'Stores/User/Account'; import { MessageUserStore } from 'Stores/User/Message'; -import { Capa, KeyState } from 'Common/Enums'; +import { Capa, Scope } from 'Common/Enums'; import { settings } from 'Common/Links'; import { showScreenPopup } from 'Knoin/Knoin'; @@ -36,7 +36,7 @@ export class AbstractSystemDropDownUserView extends AbstractViewRight { capaAdditionalAccounts: Settings.capa(Capa.AdditionalAccounts) }); - this.allowContacts = !!AppUserStore.contactsIsAllowed(); + this.allowContacts = AppUserStore.contactsIsAllowed(); this.addAccountClick = this.addAccountClick.bind(this); @@ -106,7 +106,7 @@ export class AbstractSystemDropDownUserView extends AbstractViewRight { } onBuild() { - shortcuts.add('m,contextmenu', '', [KeyState.MessageList, KeyState.MessageView, KeyState.Settings], () => { + shortcuts.add('m,contextmenu', '', [Scope.MessageList, Scope.MessageView, Scope.Settings], () => { if (this.viewModelVisible) { MessageUserStore.messageFullScreenMode(false); this.accountMenuDropdownTrigger(true); @@ -115,7 +115,7 @@ export class AbstractSystemDropDownUserView extends AbstractViewRight { }); // shortcuts help - shortcuts.add('?,f1,help', '', [KeyState.MessageList, KeyState.MessageView, KeyState.Settings], () => { + shortcuts.add('?,f1,help', '', [Scope.MessageList, Scope.MessageView, Scope.Settings], () => { if (this.viewModelVisible) { showScreenPopup(KeyboardShortcutsHelpPopupView); return false; diff --git a/dev/View/User/Login.js b/dev/View/User/Login.js index b99ad8972..33f82371d 100644 --- a/dev/View/User/Login.js +++ b/dev/View/User/Login.js @@ -8,7 +8,6 @@ import { ClientSideKeyName } from 'Common/EnumsUser'; import { getNotification, getNotificationFromResponse, reload as translatorReload, convertLangName } from 'Common/Translator'; -import { AppUserStore } from 'Stores/User/App'; import { LanguageStore } from 'Stores/Language'; import * as Local from 'Storage/Client'; @@ -45,8 +44,8 @@ class LoginUserView extends AbstractViewCenter { this.addObservables({ loadingDesc: SettingsGet('LoadingDescription'), - email: '', - password: '', + email: SettingsGet('DevEmail'), + password: SettingsGet('DevPassword'), signMe: false, additionalCode: '', @@ -232,9 +231,6 @@ class LoginUserView extends AbstractViewCenter { break; } - this.email(AppUserStore.devEmail); - this.password(AppUserStore.devPassword); - setTimeout(() => { LanguageStore.language.subscribe((value) => { this.langRequest(true); diff --git a/dev/View/User/MailBox/FolderList.js b/dev/View/User/MailBox/FolderList.js index 83585ecb3..837302f09 100644 --- a/dev/View/User/MailBox/FolderList.js +++ b/dev/View/User/MailBox/FolderList.js @@ -1,7 +1,6 @@ import ko from 'ko'; -import { Capa, KeyState } from 'Common/Enums'; -import { Focused } from 'Common/EnumsUser'; +import { Capa, Scope } from 'Common/Enums'; import { leftPanelDisabled, moveAction, Settings } from 'Common/Globals'; import { mailBox, settings } from 'Common/Links'; import { setFolderHash } from 'Common/Cache'; @@ -39,9 +38,9 @@ export class FolderListMailBoxUserView extends AbstractViewLeft { this.leftPanelDisabled = leftPanelDisabled; this.allowComposer = Settings.capa(Capa.Composer); - this.allowContacts = !!AppUserStore.contactsIsAllowed(); + this.allowContacts = AppUserStore.contactsIsAllowed(); - this.folderListFocused = ko.computed(() => Focused.FolderList === AppUserStore.focusedState()); + this.folderListFocused = ko.computed(() => Scope.FolderList === AppUserStore.focusedState()); this.isInboxStarred = ko.computed( () => @@ -89,7 +88,7 @@ export class FolderListMailBoxUserView extends AbstractViewLeft { ); } - AppUserStore.focusedState(Focused.MessageList); + AppUserStore.focusedState(Scope.MessageList); } }; @@ -117,7 +116,7 @@ export class FolderListMailBoxUserView extends AbstractViewLeft { el && fSelectFolder(el, event, false); }); - shortcuts.add('arrowup,arrowdown', '', KeyState.FolderList, event => { + shortcuts.add('arrowup,arrowdown', '', Scope.FolderList, event => { let items = [], index = 0; dom.querySelectorAll('.b-folders .e-item .e-link:not(.hidden)').forEach(node => { if (node.offsetHeight || node.getClientRects().length) { @@ -141,17 +140,17 @@ export class FolderListMailBoxUserView extends AbstractViewLeft { return false; }); - shortcuts.add('enter,open', '', KeyState.FolderList, () => { + shortcuts.add('enter,open', '', Scope.FolderList, () => { const item = qs('.b-folders .e-item .e-link:not(.hidden).focused'); if (item) { - AppUserStore.focusedState(Focused.MessageList); + AppUserStore.focusedState(Scope.MessageList); item.click(); } return false; }); - shortcuts.add('space', '', KeyState.FolderList, () => { + shortcuts.add('space', '', Scope.FolderList, () => { const item = qs('.b-folders .e-item .e-link:not(.hidden).focused'), folder = item && ko.dataFor(item); if (folder) { @@ -163,9 +162,9 @@ export class FolderListMailBoxUserView extends AbstractViewLeft { return false; }); -// shortcuts.add('tab', 'shift', KeyState.FolderList, () => { - shortcuts.add('escape,tab,arrowright', '', KeyState.FolderList, () => { - AppUserStore.focusedState(Focused.MessageList); +// shortcuts.add('tab', 'shift', Scope.FolderList, () => { + shortcuts.add('escape,tab,arrowright', '', Scope.FolderList, () => { + AppUserStore.focusedState(Scope.MessageList); moveAction(false); return false; }); @@ -173,7 +172,7 @@ export class FolderListMailBoxUserView extends AbstractViewLeft { AppUserStore.focusedState.subscribe(value => { let el = qs('.b-folders .e-item .e-link.focused'); el && qs('.b-folders .e-item .e-link.focused').classList.remove('focused'); - if (Focused.FolderList === value) { + if (Scope.FolderList === value) { el = qs('.b-folders .e-item .e-link.selected'); el && qs('.b-folders .e-item .e-link.selected').classList.add('focused'); } diff --git a/dev/View/User/MailBox/MessageList.js b/dev/View/User/MailBox/MessageList.js index ca8f0d649..057fd50e8 100644 --- a/dev/View/User/MailBox/MessageList.js +++ b/dev/View/User/MailBox/MessageList.js @@ -2,11 +2,10 @@ import ko from 'ko'; import { Capa, - KeyState + Scope } from 'Common/Enums'; import { - Focused, ComposeType, FolderType, MessageSetAction @@ -175,7 +174,7 @@ export class MessageListMailBoxUserView extends AbstractViewRight { mobileCheckedStateHide: () => ThemeStore.isMobile() ? !MessageUserStore.listChecked().length : true, - messageListFocused: () => Focused.MessageList === AppUserStore.focusedState() + messageListFocused: () => Scope.MessageList === AppUserStore.focusedState() }); this.hasCheckedOrSelectedLines = MessageUserStore.hasCheckedOrSelected, @@ -324,7 +323,7 @@ export class MessageListMailBoxUserView extends AbstractViewRight { } let b = moveAction(); - AppUserStore.focusedState(b ? Focused.MessageList : Focused.FolderList); + AppUserStore.focusedState(b ? Scope.MessageList : Scope.FolderList); moveAction(!b); } } @@ -666,13 +665,13 @@ export class MessageListMailBoxUserView extends AbstractViewRight { onBuild(dom) { const eqs = (ev, s) => ev.target.closestWithin(s, dom); - this.selector.init(dom.querySelector('.b-content'), KeyState.MessageList); + this.selector.init(dom.querySelector('.b-content'), Scope.MessageList); dom.addEventListener('click', event => { ThemeStore.isMobile() && leftPanelDisabled(true); - if (eqs(event, '.messageList .b-message-list-wrapper') && Focused.MessageView === AppUserStore.focusedState()) { - AppUserStore.focusedState(Focused.MessageList); + if (eqs(event, '.messageList .b-message-list-wrapper') && Scope.MessageView === AppUserStore.focusedState()) { + AppUserStore.focusedState(Scope.MessageList); } let el = eqs(event, '.e-paginator .e-page'); @@ -701,7 +700,7 @@ export class MessageListMailBoxUserView extends AbstractViewRight { } initShortcuts() { - shortcuts.add('enter,open', '', KeyState.MessageList, () => { + shortcuts.add('enter,open', '', Scope.MessageList, () => { if (this.message() && this.useAutoSelect()) { dispatchEvent(new CustomEvent('mailbox.message-view.toggle-full-screen')); return false; @@ -712,18 +711,18 @@ export class MessageListMailBoxUserView extends AbstractViewRight { if (Settings.capa(Capa.MessageListActions)) { // archive (zip) - shortcuts.add('z', '', [KeyState.MessageList, KeyState.MessageView], () => { + shortcuts.add('z', '', [Scope.MessageList, Scope.MessageView], () => { this.archiveCommand(); return false; }); // delete - shortcuts.add('delete', 'shift', KeyState.MessageList, () => { + shortcuts.add('delete', 'shift', Scope.MessageList, () => { MessageUserStore.listCheckedOrSelected().length && this.deleteWithoutMoveCommand(); return false; }); -// shortcuts.add('3', 'shift', KeyState.MessageList, () => { - shortcuts.add('delete', '', KeyState.MessageList, () => { +// shortcuts.add('3', 'shift', Scope.MessageList, () => { + shortcuts.add('delete', '', Scope.MessageList, () => { MessageUserStore.listCheckedOrSelected().length && this.deleteCommand(); return false; }); @@ -731,33 +730,33 @@ export class MessageListMailBoxUserView extends AbstractViewRight { if (Settings.capa(Capa.Reload)) { // check mail - shortcuts.add('r', 'meta', [KeyState.FolderList, KeyState.MessageList, KeyState.MessageView], () => { + shortcuts.add('r', 'meta', [Scope.FolderList, Scope.MessageList, Scope.MessageView], () => { this.reloadCommand(); return false; }); } // check all - shortcuts.add('a', 'meta', KeyState.MessageList, () => { + shortcuts.add('a', 'meta', Scope.MessageList, () => { this.checkAll(!(this.checkAll() && !this.isIncompleteChecked())); return false; }); // write/compose (open compose popup) - shortcuts.add('w,c,new', '', [KeyState.MessageList, KeyState.MessageView], () => { + shortcuts.add('w,c,new', '', [Scope.MessageList, Scope.MessageView], () => { showMessageComposer(); return false; }); if (Settings.capa(Capa.MessageListActions)) { // important - star/flag messages - shortcuts.add('i', '', [KeyState.MessageList, KeyState.MessageView], () => { + shortcuts.add('i', '', [Scope.MessageList, Scope.MessageView], () => { this.flagMessagesFast(); return false; }); } - shortcuts.add('t', '', [KeyState.MessageList], () => { + shortcuts.add('t', '', [Scope.MessageList], () => { let message = this.selectorMessageSelected(); if (!message) { message = this.selectorMessageFocused(); @@ -772,7 +771,7 @@ export class MessageListMailBoxUserView extends AbstractViewRight { if (Settings.capa(Capa.MessageListActions)) { // move - shortcuts.add('insert', '', KeyState.MessageList, () => { + shortcuts.add('insert', '', Scope.MessageList, () => { if (this.newMoveToFolder) { this.moveNewCommand(); } else { @@ -785,33 +784,33 @@ export class MessageListMailBoxUserView extends AbstractViewRight { if (Settings.capa(Capa.MessageListActions)) { // read - shortcuts.add('q', '', [KeyState.MessageList, KeyState.MessageView], () => { + shortcuts.add('q', '', [Scope.MessageList, Scope.MessageView], () => { this.seenMessagesFast(true); return false; }); // unread - shortcuts.add('u', '', [KeyState.MessageList, KeyState.MessageView], () => { + shortcuts.add('u', '', [Scope.MessageList, Scope.MessageView], () => { this.seenMessagesFast(false); return false; }); } - shortcuts.add('f,mailforward', 'shift', [KeyState.MessageList, KeyState.MessageView], () => { + shortcuts.add('f,mailforward', 'shift', [Scope.MessageList, Scope.MessageView], () => { this.multyForwardCommand(); return false; }); if (Settings.capa(Capa.Search)) { // search input focus - shortcuts.add('/', '', [KeyState.MessageList, KeyState.MessageView], () => { + shortcuts.add('/', '', [Scope.MessageList, Scope.MessageView], () => { this.inputMessageListSearchFocus(true); return false; }); } // cancel search - shortcuts.add('escape', '', KeyState.MessageList, () => { + shortcuts.add('escape', '', Scope.MessageList, () => { if (this.messageListSearchDesc()) { this.cancelSearch(); return false; @@ -824,21 +823,21 @@ export class MessageListMailBoxUserView extends AbstractViewRight { }); // change focused state - shortcuts.add('tab', 'shift', KeyState.MessageList, () => { - AppUserStore.focusedState(Focused.FolderList); + shortcuts.add('tab', 'shift', Scope.MessageList, () => { + AppUserStore.focusedState(Scope.FolderList); return false; }); - shortcuts.add('arrowleft', '', KeyState.MessageList, () => { - AppUserStore.focusedState(Focused.FolderList); + shortcuts.add('arrowleft', '', Scope.MessageList, () => { + AppUserStore.focusedState(Scope.FolderList); return false; }); - shortcuts.add('tab,arrowright', '', KeyState.MessageList, () => { - this.message() && AppUserStore.focusedState(Focused.MessageView); + shortcuts.add('tab,arrowright', '', Scope.MessageList, () => { + this.message() && AppUserStore.focusedState(Scope.MessageView); return false; }); - shortcuts.add('arrowleft', 'meta', KeyState.MessageView, ()=>false); - shortcuts.add('arrowright', 'meta', KeyState.MessageView, ()=>false); + shortcuts.add('arrowleft', 'meta', Scope.MessageView, ()=>false); + shortcuts.add('arrowright', 'meta', Scope.MessageView, ()=>false); } prefetchNextTick() { diff --git a/dev/View/User/MailBox/MessageView.js b/dev/View/User/MailBox/MessageView.js index e24c3fc3f..005464e1a 100644 --- a/dev/View/User/MailBox/MessageView.js +++ b/dev/View/User/MailBox/MessageView.js @@ -4,14 +4,13 @@ import { UNUSED_OPTION_VALUE } from 'Common/Consts'; import { Capa, - KeyState + Scope } from 'Common/Enums'; import { ComposeType, ClientSideKeyName, FolderType, - Focused, MessageSetAction } from 'Common/EnumsUser'; @@ -80,7 +79,8 @@ class MessageViewMailBoxUserView extends AbstractViewRight { this.allowMessageActions = Settings.capa(Capa.MessageActions); this.allowMessageListActions = Settings.capa(Capa.MessageListActions); - this.attachmentsActions = AppUserStore.attachmentsActions; + const attachmentsActions = Settings.app('attachmentsActions'); + this.attachmentsActions = ko.observableArray(Array.isNotEmpty(attachmentsActions) ? attachmentsActions : []); this.message = MessageUserStore.message; this.hasCheckedMessages = MessageUserStore.hasCheckedMessages; @@ -186,7 +186,7 @@ class MessageViewMailBoxUserView extends AbstractViewRight { return ''; }, - messageFocused: () => Focused.MessageView === AppUserStore.focusedState(), + messageFocused: () => Scope.MessageView === AppUserStore.focusedState(), messageListAndMessageViewLoading: () => MessageUserStore.listCompleteLoading() || MessageUserStore.messageLoading() @@ -364,7 +364,7 @@ class MessageViewMailBoxUserView extends AbstractViewRight { } onBuild(dom) { - this.fullScreenMode.subscribe(value => value && this.message() && AppUserStore.focusedState(Focused.MessageView)); + this.fullScreenMode.subscribe(value => value && this.message() && AppUserStore.focusedState(Scope.MessageView)); this.showFullInfo.subscribe(value => Local.set(ClientSideKeyName.MessageHeaderFullInfo, value ? '1' : '0')); @@ -462,13 +462,13 @@ class MessageViewMailBoxUserView extends AbstractViewRight { }); AppUserStore.focusedState.subscribe((value) => { - if (Focused.MessageView !== value) { + if (Scope.MessageView !== value) { this.scrollMessageToTop(); this.scrollMessageToLeft(); } }); - keyScopeReal.subscribe(value => this.messageDomFocused(KeyState.MessageView === value && !inFocus())); + keyScopeReal.subscribe(value => this.messageDomFocused(Scope.MessageView === value && !inFocus())); this.oMessageScrollerDom = dom.querySelector('.messageItem'); @@ -485,12 +485,12 @@ class MessageViewMailBoxUserView extends AbstractViewRight { this.fullScreenMode(false); if (preview) { - AppUserStore.focusedState(Focused.MessageList); + AppUserStore.focusedState(Scope.MessageList); } } else if (!preview) { this.message(null); } else { - AppUserStore.focusedState(Focused.MessageList); + AppUserStore.focusedState(Scope.MessageList); } return false; @@ -501,16 +501,16 @@ class MessageViewMailBoxUserView extends AbstractViewRight { initShortcuts() { // exit fullscreen, back - shortcuts.add('escape,backspace', '', KeyState.MessageView, this.escShortcuts.bind(this)); + shortcuts.add('escape,backspace', '', Scope.MessageView, this.escShortcuts.bind(this)); // fullscreen - shortcuts.add('enter,open', '', KeyState.MessageView, () => { + shortcuts.add('enter,open', '', Scope.MessageView, () => { this.toggleFullScreen(); return false; }); // reply - shortcuts.add('r,mailreply', '', [KeyState.MessageList, KeyState.MessageView], () => { + shortcuts.add('r,mailreply', '', [Scope.MessageList, Scope.MessageView], () => { if (MessageUserStore.message()) { this.replyCommand(); return false; @@ -519,14 +519,14 @@ class MessageViewMailBoxUserView extends AbstractViewRight { }); // replaAll - shortcuts.add('a', '', [KeyState.MessageList, KeyState.MessageView], () => { + shortcuts.add('a', '', [Scope.MessageList, Scope.MessageView], () => { if (MessageUserStore.message()) { this.replyAllCommand(); return false; } return true; }); - shortcuts.add('mailreply', 'shift', [KeyState.MessageList, KeyState.MessageView], () => { + shortcuts.add('mailreply', 'shift', [Scope.MessageList, Scope.MessageView], () => { if (MessageUserStore.message()) { this.replyAllCommand(); return false; @@ -535,7 +535,7 @@ class MessageViewMailBoxUserView extends AbstractViewRight { }); // forward - shortcuts.add('f,mailforward', '', [KeyState.MessageList, KeyState.MessageView], () => { + shortcuts.add('f,mailforward', '', [Scope.MessageList, Scope.MessageView], () => { if (MessageUserStore.message()) { this.forwardCommand(); return false; @@ -545,7 +545,7 @@ class MessageViewMailBoxUserView extends AbstractViewRight { }); // message information - shortcuts.add('i', 'meta', [KeyState.MessageList, KeyState.MessageView], () => { + shortcuts.add('i', 'meta', [Scope.MessageList, Scope.MessageView], () => { if (MessageUserStore.message()) { this.showFullInfo(!this.showFullInfo()); } @@ -553,7 +553,7 @@ class MessageViewMailBoxUserView extends AbstractViewRight { }); // toggle message blockquotes - shortcuts.add('b', '', [KeyState.MessageList, KeyState.MessageView], () => { + shortcuts.add('b', '', [Scope.MessageList, Scope.MessageView], () => { const message = MessageUserStore.message(); if (message && message.body) { message.body.querySelectorAll('.rlBlockquoteSwitcher').forEach(node => node.click()); @@ -562,46 +562,46 @@ class MessageViewMailBoxUserView extends AbstractViewRight { return true; }); - shortcuts.add('arrowup,arrowleft', 'meta', [KeyState.MessageList, KeyState.MessageView], () => { + shortcuts.add('arrowup,arrowleft', 'meta', [Scope.MessageList, Scope.MessageView], () => { this.goUpCommand(); return false; }); - shortcuts.add('arrowdown,arrowright', 'meta', [KeyState.MessageList, KeyState.MessageView], () => { + shortcuts.add('arrowdown,arrowright', 'meta', [Scope.MessageList, Scope.MessageView], () => { this.goDownCommand(); return false; }); // print - shortcuts.add('p,printscreen', 'meta', [KeyState.MessageView, KeyState.MessageList], () => { + shortcuts.add('p,printscreen', 'meta', [Scope.MessageView, Scope.MessageList], () => { this.message() && this.message().printMessage(); return false; }); // delete - shortcuts.add('delete', '', KeyState.MessageView, () => { + shortcuts.add('delete', '', Scope.MessageView, () => { this.deleteCommand(); return false; }); - shortcuts.add('delete', 'shift', KeyState.MessageView, () => { + shortcuts.add('delete', 'shift', Scope.MessageView, () => { this.deleteWithoutMoveCommand(); return false; }); // change focused state - shortcuts.add('arrowleft', '', KeyState.MessageView, () => { + shortcuts.add('arrowleft', '', Scope.MessageView, () => { if (!this.fullScreenMode() && this.message() && SettingsUserStore.usePreviewPane()) { if (this.oMessageScrollerDom && 0 < this.oMessageScrollerDom.scrollLeft) { return true; } - AppUserStore.focusedState(Focused.MessageList); + AppUserStore.focusedState(Scope.MessageList); return false; } }); -// shortcuts.add('tab', 'shift', KeyState.MessageView, (event, handler) => { - shortcuts.add('tab', '', KeyState.MessageView, () => { +// shortcuts.add('tab', 'shift', Scope.MessageView, (event, handler) => { + shortcuts.add('tab', '', Scope.MessageView, () => { if (!this.fullScreenMode() && this.message() && SettingsUserStore.usePreviewPane()) { - AppUserStore.focusedState(Focused.MessageList); + AppUserStore.focusedState(Scope.MessageList); } return false; }); diff --git a/dev/View/User/Settings/Menu.js b/dev/View/User/Settings/Menu.js index c1f4270d5..c7a8fc09e 100644 --- a/dev/View/User/Settings/Menu.js +++ b/dev/View/User/Settings/Menu.js @@ -1,4 +1,4 @@ -import { KeyState } from 'Common/Enums'; +import { Scope } from 'Common/Enums'; import { leftPanelDisabled } from 'Common/Globals'; import { settings, mailbox } from 'Common/Links'; import { getFolderInboxName } from 'Common/Cache'; @@ -27,7 +27,7 @@ export class MenuSettingsUserView extends AbstractViewLeft { && leftPanelDisabled(true) ); - shortcuts.add('arrowup,arrowdown', '', KeyState.Settings, + shortcuts.add('arrowup,arrowdown', '', Scope.Settings, settingsMenuKeysHandler(dom.querySelectorAll('.b-settings-menu .e-item'))); }