diff --git a/dev/Knoin/Knoin.js b/dev/Knoin/Knoin.js index a7b8f79f4..3f2612ecb 100644 --- a/dev/Knoin/Knoin.js +++ b/dev/Knoin/Knoin.js @@ -5,6 +5,7 @@ import ko from 'ko'; import hasher from 'hasher'; import crossroads from 'crossroads'; +import {Magics} from 'Common/Enums'; import {runHook} from 'Common/Plugins'; import {$html, VIEW_MODELS, popupVisibilityNames} from 'Common/Globals'; @@ -590,8 +591,41 @@ function commandDecorator(canExecute = true) }; } +/** + * @param {miced} $items + * @returns {Function} + */ +function settingsMenuKeysHendler($items) +{ + return _.throttle((event, handler) => { + + const up = handler && 'up' === handler.shortcut; + + if (event && $items.length) + { + let index = $items.index($items.filter('.selected')); + if (up && 0 < index) + { + index -= 1; + } + else if (!up && index < $items.length - 1) + { + index += 1; + } + + const resultHash = $items.eq(index).attr('href'); + if (resultHash) + { + setHash(resultHash, false, true); + } + } + + }, Magics.Time200ms); +} + export { commandDecorator, commandDecorator as command, viewDecorator, viewDecorator as view, viewDecorator as viewModel, - popupDecorator, popupDecorator as popup + popupDecorator, popupDecorator as popup, + settingsMenuKeysHendler }; diff --git a/dev/Screen/Admin/Settings.js b/dev/Screen/Admin/Settings.js index fba18a707..3477dc4d7 100644 --- a/dev/Screen/Admin/Settings.js +++ b/dev/Screen/Admin/Settings.js @@ -7,9 +7,9 @@ import {runSettingsViewModelHooks} from 'Common/Plugins'; import {AbstractSettingsScreen} from 'Screen/AbstractSettings'; import {GeneralAdminSettings} from 'Settings/Admin/General'; +import {DomainsAdminSettings} from 'Settings/Admin/Domains'; import {LoginAdminSettings} from 'Settings/Admin/Login'; import {ContactsAdminSettings} from 'Settings/Admin/Contacts'; -import {DomainsAdminSettings} from 'Settings/Admin/Domains'; import {SecurityAdminSettings} from 'Settings/Admin/Security'; import {SocialAdminSettings} from 'Settings/Admin/Social'; import {PluginsAdminSettings} from 'Settings/Admin/Plugins'; @@ -34,29 +34,38 @@ class SettingsAdminScreen extends AbstractSettingsScreen * @param {Function=} fCallback = null */ setupSettings(fCallback = null) { + + let branding = null, + licensing = null; + + if (RL_COMMUNITY) + { + branding = require('Settings/Admin/Branding').default; + } + else + { + branding = require('Settings/Admin/Prem/Branding').default; + licensing = require('Settings/Admin/Prem/Licensing').default; + } + addSettingsViewModel(GeneralAdminSettings, 'AdminSettingsGeneral', 'TABS_LABELS/LABEL_GENERAL_NAME', 'general', true); + addSettingsViewModel(DomainsAdminSettings, + 'AdminSettingsDomains', 'TABS_LABELS/LABEL_DOMAINS_NAME', 'domains'); + addSettingsViewModel(LoginAdminSettings, 'AdminSettingsLogin', 'TABS_LABELS/LABEL_LOGIN_NAME', 'login'); - if (RL_COMMUNITY) + if (branding) { - addSettingsViewModel(require('Settings/Admin/Branding').default, - 'AdminSettingsBranding', 'TABS_LABELS/LABEL_BRANDING_NAME', 'branding'); - } - else - { - addSettingsViewModel(require('Settings/Admin/Prem/Branding').default, + addSettingsViewModel(branding, 'AdminSettingsBranding', 'TABS_LABELS/LABEL_BRANDING_NAME', 'branding'); } addSettingsViewModel(ContactsAdminSettings, 'AdminSettingsContacts', 'TABS_LABELS/LABEL_CONTACTS_NAME', 'contacts'); - addSettingsViewModel(DomainsAdminSettings, - 'AdminSettingsDomains', 'TABS_LABELS/LABEL_DOMAINS_NAME', 'domains'); - addSettingsViewModel(SecurityAdminSettings, 'AdminSettingsSecurity', 'TABS_LABELS/LABEL_SECURITY_NAME', 'security'); @@ -69,9 +78,9 @@ class SettingsAdminScreen extends AbstractSettingsScreen addSettingsViewModel(PackagesAdminSettings, 'AdminSettingsPackages', 'TABS_LABELS/LABEL_PACKAGES_NAME', 'packages'); - if (!RL_COMMUNITY) + if (licensing) { - addSettingsViewModel(require('Settings/Admin/Prem/Licensing').default, + addSettingsViewModel(licensing, 'AdminSettingsLicensing', 'TABS_LABELS/LABEL_LICENSING_NAME', 'licensing'); } diff --git a/dev/View/Admin/Settings/Menu.js b/dev/View/Admin/Settings/Menu.js index f70458a79..2796b7480 100644 --- a/dev/View/Admin/Settings/Menu.js +++ b/dev/View/Admin/Settings/Menu.js @@ -1,12 +1,11 @@ -import _ from '_'; import $ from '$'; import key from 'key'; import {leftPanelDisabled} from 'Common/Globals'; -import {Magics} from 'Common/Enums'; +import {KeyState} from 'Common/Enums'; -import {view, ViewType, setHash} from 'Knoin/Knoin'; +import {view, ViewType, settingsMenuKeysHendler} from 'Knoin/Knoin'; import {AbstractViewNext} from 'Knoin/AbstractViewNext'; @view({ @@ -33,33 +32,7 @@ class MenuSettingsAdminView extends AbstractViewNext } onBuild(dom) { - - key('up, down', _.throttle((event, handler) => { - - const - up = handler && 'up' === handler.shortcut, - $items = $('.b-admin-menu .e-item', dom); - - if (event && $items.length) - { - let index = $items.index($items.filter('.selected')); - if (up && 0 < index) - { - index -= 1; - } - else if (!up && index < $items.length - 1) - { - index += 1; - } - - const sH = $items.eq(index).attr('href'); - if (sH) - { - setHash(sH, false, true); - } - } - - }, Magics.Time200ms)); + key('up, down', KeyState.Settings, settingsMenuKeysHendler($('.b-admin-menu .e-item', dom))); } } diff --git a/dev/View/Popup/Domain.js b/dev/View/Popup/Domain.js index e55444025..da99ea46d 100644 --- a/dev/View/Popup/Domain.js +++ b/dev/View/Popup/Domain.js @@ -173,6 +173,7 @@ class DomainPopupView extends AbstractViewNext switch (pString(value)) { case '0': + case '2': if (Ports.ImapSsl === port) { this.imapPort(pString(Ports.Imap)); diff --git a/dev/View/User/Settings/Menu.js b/dev/View/User/Settings/Menu.js index 5d359eae5..ddc5036b8 100644 --- a/dev/View/User/Settings/Menu.js +++ b/dev/View/User/Settings/Menu.js @@ -1,16 +1,15 @@ -import _ from '_'; import $ from '$'; import key from 'key'; -import {KeyState, Magics} from 'Common/Enums'; +import {KeyState} from 'Common/Enums'; import {leftPanelDisabled} from 'Common/Globals'; import {settings, inbox} from 'Common/Links'; import {getFolderInboxName} from 'Common/Cache'; import * as Settings from 'Storage/Settings'; -import {view, ViewType, setHash} from 'Knoin/Knoin'; +import {view, ViewType, setHash, settingsMenuKeysHendler} from 'Knoin/Knoin'; import {AbstractViewNext} from 'Knoin/AbstractViewNext'; @view({ @@ -41,32 +40,7 @@ class MenuSettingsUserView extends AbstractViewNext }); } - key('up, down', KeyState.Settings, _.throttle((event, handler) => { - - const - up = handler && 'up' === handler.shortcut, - $items = $('.b-settings-menu .e-item', dom); - - if (event && $items.length) - { - let iIndex = $items.index($items.filter('.selected')); - if (up && 0 < iIndex) - { - iIndex -= 1; - } - else if (!up && iIndex < $items.length - 1) - { - iIndex += 1; - } - - const sH = $items.eq(iIndex).attr('href'); - if (sH) - { - setHash(sH, false, true); - } - } - - }, Magics.Time200ms)); + key('up, down', KeyState.Settings, settingsMenuKeysHendler($('.b-settings-menu .e-item', dom))); } link(route) { diff --git a/package.json b/package.json index 6f9fe44a5..ec254809e 100644 --- a/package.json +++ b/package.json @@ -56,22 +56,22 @@ "autolinker": "1.4.3", "babel-core": "6.25.0", "babel-eslint": "7.2.3", - "babel-loader": "7.1.0", + "babel-loader": "7.1.1", "babel-plugin-transform-decorators-legacy": "1.3.4", "babel-plugin-transform-runtime": "6.23.0", - "babel-preset-env": "1.5.2", + "babel-preset-env": "1.6.0", "babel-preset-stage-0": "6.24.1", "babel-runtime": "6.23.0", "classnames": "2.2.5", "copy-webpack-plugin": "4.0.1", "es6-promise-polyfill": "1.2.0", - "eslint": "4.1.0", + "eslint": "4.1.1", "eslint-plugin-compat": "1.0.4", "gulp": "3.9.1", "gulp-autoprefixer": "4.0.0", "gulp-cached": "1.1.1", "gulp-chmod": "2.0.0", - "gulp-clean-css": "3.4.2", + "gulp-clean-css": "3.5.0", "gulp-concat-util": "0.5.5", "gulp-eol": "0.1.2", "gulp-eslint": "4.0.0", @@ -110,17 +110,17 @@ "node-fs": "0.1.7", "node-notifier": "5.1.2", "normalize.css": "7.0.0", - "openpgp": "2.5.4", + "openpgp": "2.5.5", "opentip": "2.4.3", "pikaday": "1.6.1", "raw-loader": "0.5.1", "rifraf": "2.0.3", "rimraf": "2.6.1", - "run-sequence": "1.2.2", + "run-sequence": "2.0.0", "simplestatemanager": "3.4.0", "style-loader": "0.18.2", "underscore": "1.8.3", - "webpack": "3.0.0", + "webpack": "3.1.0", "webpack-notifier": "1.5.0" } } diff --git a/rainloop/v/0.0.0/app/templates/Views/Admin/AdminSettingsDomainListItem.html b/rainloop/v/0.0.0/app/templates/Views/Admin/AdminSettingsDomainListItem.html index 6d32c4368..b6f36ba9a 100644 --- a/rainloop/v/0.0.0/app/templates/Views/Admin/AdminSettingsDomainListItem.html +++ b/rainloop/v/0.0.0/app/templates/Views/Admin/AdminSettingsDomainListItem.html @@ -1,21 +1,21 @@ -