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