Small fixes

This commit is contained in:
RainLoop Team 2017-07-11 15:40:31 +03:00
parent a72b95a868
commit 709eeddd09
9 changed files with 172 additions and 143 deletions

View file

@ -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
};

View file

@ -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');
}

View file

@ -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)));
}
}

View file

@ -173,6 +173,7 @@ class DomainPopupView extends AbstractViewNext
switch (pString(value))
{
case '0':
case '2':
if (Ports.ImapSsl === port)
{
this.imapPort(pString(Ports.Imap));

View file

@ -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) {

View file

@ -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"
}
}

View file

@ -22,7 +22,7 @@ module.exports = function(publicPath, pro) {
publicPath: publicPath || 'rainloop/v/0.0.0/static/'
},
plugins: [
new webpack.optimize.ModuleConcatenationPlugin(),
// new webpack.optimize.ModuleConcatenationPlugin(),
new webpack.DefinePlugin({
'RL_COMMUNITY': !pro,
'process.env': {

122
yarn.lock
View file

@ -416,9 +416,9 @@ babel-helpers@^6.24.1:
babel-runtime "^6.22.0"
babel-template "^6.24.1"
babel-loader@7.1.0:
version "7.1.0"
resolved "https://registry.yarnpkg.com/babel-loader/-/babel-loader-7.1.0.tgz#3fbf2581f085774bd9642dca9990e6d6c1491144"
babel-loader@7.1.1:
version "7.1.1"
resolved "https://registry.yarnpkg.com/babel-loader/-/babel-loader-7.1.1.tgz#b87134c8b12e3e4c2a94e0546085bc680a2b8488"
dependencies:
find-cache-dir "^1.0.0"
loader-utils "^1.0.2"
@ -775,9 +775,9 @@ babel-plugin-transform-strict-mode@^6.22.0:
babel-runtime "^6.22.0"
babel-types "^6.22.0"
babel-preset-env@1.5.2:
version "1.5.2"
resolved "https://registry.yarnpkg.com/babel-preset-env/-/babel-preset-env-1.5.2.tgz#cd4ae90a6e94b709f97374b33e5f8b983556adef"
babel-preset-env@1.6.0:
version "1.6.0"
resolved "https://registry.yarnpkg.com/babel-preset-env/-/babel-preset-env-1.6.0.tgz#2de1c782a780a0a5d605d199c957596da43c44e4"
dependencies:
babel-plugin-check-es2015-constants "^6.22.0"
babel-plugin-syntax-trailing-function-commas "^6.22.0"
@ -1157,16 +1157,6 @@ center-align@^0.1.1:
align-text "^0.1.3"
lazy-cache "^1.0.3"
chalk@*, chalk@^1.0.0, chalk@^1.1.0, chalk@^1.1.1, chalk@^1.1.3:
version "1.1.3"
resolved "https://registry.yarnpkg.com/chalk/-/chalk-1.1.3.tgz#a8115c55e4a702fe4d150abd3872822a7e09fc98"
dependencies:
ansi-styles "^2.2.1"
escape-string-regexp "^1.0.2"
has-ansi "^2.0.0"
strip-ansi "^3.0.0"
supports-color "^2.0.0"
chalk@^0.5.0, chalk@^0.5.1:
version "0.5.1"
resolved "https://registry.yarnpkg.com/chalk/-/chalk-0.5.1.tgz#663b3a648b68b55d04690d49167aa837858f2174"
@ -1177,6 +1167,16 @@ chalk@^0.5.0, chalk@^0.5.1:
strip-ansi "^0.3.0"
supports-color "^0.2.0"
chalk@^1.0.0, chalk@^1.1.0, chalk@^1.1.1, chalk@^1.1.3:
version "1.1.3"
resolved "https://registry.yarnpkg.com/chalk/-/chalk-1.1.3.tgz#a8115c55e4a702fe4d150abd3872822a7e09fc98"
dependencies:
ansi-styles "^2.2.1"
escape-string-regexp "^1.0.2"
has-ansi "^2.0.0"
strip-ansi "^3.0.0"
supports-color "^2.0.0"
chokidar@^1.4.3:
version "1.6.1"
resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-1.6.1.tgz#2f4447ab5e96e50fb3d789fd90d4c72e0e4c70c2"
@ -1206,9 +1206,9 @@ classnames@2.2.5:
version "2.2.5"
resolved "https://registry.yarnpkg.com/classnames/-/classnames-2.2.5.tgz#fb3801d453467649ef3603c7d61a02bd129bde6d"
clean-css@4.1.4:
version "4.1.4"
resolved "https://registry.yarnpkg.com/clean-css/-/clean-css-4.1.4.tgz#eec8811db27457e0078d8ca921fa81b72fa82bf4"
clean-css@4.1.5:
version "4.1.5"
resolved "https://registry.yarnpkg.com/clean-css/-/clean-css-4.1.5.tgz#d09a87a02a5375117589796ae76a063cacdb541a"
dependencies:
source-map "0.5.x"
@ -1618,9 +1618,9 @@ end-of-stream@~0.1.5:
dependencies:
once "~1.3.0"
enhanced-resolve@^3.0.0:
version "3.1.0"
resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-3.1.0.tgz#9f4b626f577245edcf4b2ad83d86e17f4f421dec"
enhanced-resolve@^3.3.0:
version "3.3.0"
resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-3.3.0.tgz#950964ecc7f0332a42321b673b38dc8ff15535b3"
dependencies:
graceful-fs "^4.1.2"
memory-fs "^0.4.0"
@ -1724,7 +1724,45 @@ eslint-scope@^3.7.1:
esrecurse "^4.1.0"
estraverse "^4.1.1"
eslint@4.1.0, eslint@^4.0.0:
eslint@4.1.1:
version "4.1.1"
resolved "https://registry.yarnpkg.com/eslint/-/eslint-4.1.1.tgz#facbdfcfe3e0facd3a8b80dc98c4e6c13ae582df"
dependencies:
babel-code-frame "^6.22.0"
chalk "^1.1.3"
concat-stream "^1.6.0"
debug "^2.6.8"
doctrine "^2.0.0"
eslint-scope "^3.7.1"
espree "^3.4.3"
esquery "^1.0.0"
estraverse "^4.2.0"
esutils "^2.0.2"
file-entry-cache "^2.0.0"
glob "^7.1.2"
globals "^9.17.0"
ignore "^3.3.3"
imurmurhash "^0.1.4"
inquirer "^3.0.6"
is-my-json-valid "^2.16.0"
is-resolvable "^1.0.0"
js-yaml "^3.8.4"
json-stable-stringify "^1.0.1"
levn "^0.3.0"
lodash "^4.17.4"
minimatch "^3.0.2"
mkdirp "^0.5.1"
natural-compare "^1.4.0"
optionator "^0.8.2"
path-is-inside "^1.0.2"
pluralize "^4.0.0"
progress "^2.0.0"
require-uncached "^1.0.3"
strip-json-comments "~2.0.1"
table "^4.0.1"
text-table "~0.2.0"
eslint@^4.0.0:
version "4.1.0"
resolved "https://registry.yarnpkg.com/eslint/-/eslint-4.1.0.tgz#bbb55a28220ee08b69da9554d45a6b2ebfd7d913"
dependencies:
@ -2267,11 +2305,11 @@ gulp-chmod@2.0.0:
stat-mode "^0.2.0"
through2 "^2.0.0"
gulp-clean-css@3.4.2:
version "3.4.2"
resolved "https://registry.yarnpkg.com/gulp-clean-css/-/gulp-clean-css-3.4.2.tgz#04387e17a88aa0f29d88edafca16403dbb106d5d"
gulp-clean-css@3.5.0:
version "3.5.0"
resolved "https://registry.yarnpkg.com/gulp-clean-css/-/gulp-clean-css-3.5.0.tgz#d43e747c41957995ec49bb9612f862b64329f1b0"
dependencies:
clean-css "4.1.4"
clean-css "4.1.5"
gulp-util "3.0.8"
through2 "2.0.3"
vinyl-sourcemaps-apply "0.2.1"
@ -2401,7 +2439,7 @@ gulp-rimraf@0.2.1:
rimraf "^2.5.4"
through2 "^2.0.1"
gulp-size@^2.1.0:
gulp-size@2.1.0:
version "2.1.0"
resolved "https://registry.yarnpkg.com/gulp-size/-/gulp-size-2.1.0.tgz#1c2b64f17f9071d5abd99d154b7b3481f8fba128"
dependencies:
@ -3923,9 +3961,9 @@ onetime@^2.0.0:
dependencies:
mimic-fn "^1.0.0"
openpgp@2.5.4:
version "2.5.4"
resolved "https://registry.yarnpkg.com/openpgp/-/openpgp-2.5.4.tgz#688799fb9c98317c07ab39a633853819f4364775"
openpgp@2.5.5:
version "2.5.5"
resolved "https://registry.yarnpkg.com/openpgp/-/openpgp-2.5.5.tgz#44e959d8abc8b124d76f98e0929736c6ed81aa05"
dependencies:
node-fetch "^1.3.3"
node-localstorage "~1.3.0"
@ -4520,12 +4558,12 @@ run-async@^2.2.0:
dependencies:
is-promise "^2.1.0"
run-sequence@1.2.2:
version "1.2.2"
resolved "https://registry.yarnpkg.com/run-sequence/-/run-sequence-1.2.2.tgz#5095a0bebe98733b0140bd08dd80ec030ddacdeb"
run-sequence@2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/run-sequence/-/run-sequence-2.0.0.tgz#6ab754fe53cd771d47dbdee63c254882344d5896"
dependencies:
chalk "*"
gulp-util "*"
chalk "^1.1.3"
gulp-util "^3.0.8"
rx-lite-aggregates@^4.0.8:
version "4.0.8"
@ -4998,7 +5036,7 @@ uglify-to-browserify@~1.0.0:
version "1.0.2"
resolved "https://registry.yarnpkg.com/uglify-to-browserify/-/uglify-to-browserify-1.0.2.tgz#6e0924d6bda6b5afe349e39a6d632850a0f882b7"
uglifyjs-webpack-plugin@^0.4.4:
uglifyjs-webpack-plugin@^0.4.6:
version "0.4.6"
resolved "https://registry.yarnpkg.com/uglifyjs-webpack-plugin/-/uglifyjs-webpack-plugin-0.4.6.tgz#b951f4abb6bd617e66f63eb891498e391763e309"
dependencies:
@ -5139,16 +5177,16 @@ webpack-sources@^1.0.1:
source-list-map "^2.0.0"
source-map "~0.5.3"
webpack@3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/webpack/-/webpack-3.0.0.tgz#ee9bcebf21247f7153cb410168cab45e3a59d4d7"
webpack@3.1.0:
version "3.1.0"
resolved "https://registry.yarnpkg.com/webpack/-/webpack-3.1.0.tgz#ac0675e500db835f9ab2369d29ba096f51ad0731"
dependencies:
acorn "^5.0.0"
acorn-dynamic-import "^2.0.0"
ajv "^5.1.5"
ajv-keywords "^2.0.0"
async "^2.1.2"
enhanced-resolve "^3.0.0"
enhanced-resolve "^3.3.0"
escope "^3.6.0"
interpret "^1.0.0"
json-loader "^0.5.4"
@ -5161,7 +5199,7 @@ webpack@3.0.0:
source-map "^0.5.3"
supports-color "^3.1.0"
tapable "~0.2.5"
uglifyjs-webpack-plugin "^0.4.4"
uglifyjs-webpack-plugin "^0.4.6"
watchpack "^1.3.1"
webpack-sources "^1.0.1"
yargs "^6.0.0"