Cleanup Login and removed the ancient obsolete <center> with small redesign

Also placed the loading description above the login form
This commit is contained in:
djmaze 2020-11-26 10:41:53 +01:00
parent 2047525ce6
commit 4adc672ccd
12 changed files with 192 additions and 271 deletions

View file

@ -80,24 +80,24 @@ html.no-mobile {
} }
} }
&.no-mobile .b-login-content .errorAnimated { .b-login-content .errorAnimated {
animation: login-form-shake 400ms ease-in-out; animation: login-form-shake 400ms ease-in-out;
} }
&.no-mobile .b-login-content .errorAnimated .buttonLogin { .b-login-content .errorAnimated .buttonLogin {
color: #b94a48; color: #b94a48;
font-weight: bold; font-weight: bold;
} }
&.no-mobile .b-login-content .afterLoginHide { .b-login-content .afterLoginHide {
opacity: 0; opacity: 0;
} }
&.no-mobile .btn-group.dropdown.colored-toggle.open .animate-this-icon-on-open { .btn-group.dropdown.colored-toggle.open .animate-this-icon-on-open {
animation: bounce-me .5s linear; animation: bounce-me .5s linear;
} }
&.no-mobile .b-login-content .loginFormWrapper { .b-login-content .loginFormWrapper {
transition: all 0.3s ease-out; transition: all 0.3s ease-out;
} }

View file

@ -1,59 +1,36 @@
.rl-view-model {
&.RL-Login, &.RL-AdminLogin {
position: fixed;
left: 50%;
top: 50%;
transform: translate(-50%, -50%);
width: 100%;
max-width: 450px;
z-index: 5;
}
}
.b-login-content { .b-login-content {
height: 100%;
text-align: center;
.loginFormWrapper { .loginFormWrapper {
position: relative;
display: inline-block;
vertical-align: middle;
text-align: center;
perspective: 500px;
.descWrapper { .descWrapper {
margin-bottom: 10px; margin-bottom: 10px;
text-align: center;
.desc { .desc {
font-size: 18px; font-size: 30px;
padding: 2px;
} }
} }
.alertError {
max-width: 450px;
}
.wrapper-parent {
}
.loginForm { .loginForm {
background-color: #efefef; background-color: #efefef;
text-align: left;
color: #333; color: #333;
margin: 0; margin: 0;
float: none;
width: 303px;
} }
.loginWelcomeForm {
display: none;
}
.welcome-on {
display: block;
}
.welcome-off {
display: none;
}
/* .control-label {
font-size: 16px;
line-height: 30px;
}*/
.controls, .control-group { .controls, .control-group {
margin-bottom: 25px; margin-bottom: 25px;
} }
@ -62,11 +39,6 @@
padding: 40px 40px 20px 40px; padding: 40px 40px 20px 40px;
} }
#recaptcha_image img {
border: 1px solid #ccc;
border-radius: 3px;
}
.controls { .controls {
.inputLoginForm, .inputEmail, .inputLogin, .inputPassword, .inputAdditionalCode { .inputLoginForm, .inputEmail, .inputLogin, .inputPassword, .inputAdditionalCode {
font-size: 18px; font-size: 18px;
@ -80,18 +52,10 @@
} }
} }
.languageLabel {
margin-top: 5px;
}
.signMeLabel .e-checkbox { .signMeLabel .e-checkbox {
margin-top: 5px; margin-top: 5px;
} }
.languageLabel {
margin-right: 5px;
}
.input-append .add-on { .input-append .add-on {
position: relative; position: relative;
height: 30px; height: 30px;
@ -116,6 +80,10 @@
.controls.error .add-on i, .control-group.error .add-on i { .controls.error .add-on i, .control-group.error .add-on i {
color: #b94a48; color: #b94a48;
} }
.e-mobile-switcher {
text-align: center;
}
} }
.buttonLogin { .buttonLogin {
@ -123,15 +91,17 @@
} }
.alert { .alert {
margin: 0 0 20px 0; position: absolute;
text-align: left; left: 0;
right: 0;
z-index: 1;
} }
.flag-selector { .flag-selector {
margin-bottom: 0; margin-bottom: 0;
} }
.social-buttons { .language-buttons {
margin-top: 5px; margin-top: 5px;
} }
@ -141,6 +111,14 @@
} }
} }
@media screen and (max-width: 480px) {
.b-login-content .loginFormWrapper {
.wrapper {
padding: 30px 4vw 10px;
}
}
}
@keyframes loginRotation { @keyframes loginRotation {
to {transform: rotate(1turn);} to {transform: rotate(1turn);}
} }

View file

@ -32,17 +32,6 @@ option:disabled {
cursor: not-allowed; cursor: not-allowed;
} }
body:before {
content: "";
position: fixed;
top: -10px;
left: 0;
width: 100%;
height: 8px;
z-index: 100;
box-shadow: 0 0 10px rgba(0,0,0,.6);
}
* { * {
outline: none; outline: none;
} }

View file

@ -1,12 +1,4 @@
.rl-view-model {
&.RL-Login, &.RL-LoginNew, &.RL-AdminLogin {
position: relative;
height: 100%;
z-index: 5;
}
}
.mfp-container .mfp-figure { .mfp-container .mfp-figure {
min-height: 300px; min-height: 300px;
min-width: 300px; min-width: 300px;

View file

@ -38,7 +38,8 @@ class LoginUserView extends AbstractViewNext {
this.hideSubmitButton = Settings.app('hideSubmitButton'); this.hideSubmitButton = Settings.app('hideSubmitButton');
this.addObservables({ this.addObservables({
welcome: !!Settings.get('UseLoginWelcomePage'), loadingDesc: Settings.get('LoadingDescription'),
email: '', email: '',
password: '', password: '',
signMe: false, signMe: false,
@ -204,10 +205,6 @@ class LoginUserView extends AbstractViewNext {
return true; return true;
} }
displayMainForm() {
this.welcome(false);
}
onShow() { onShow() {
rl.route.off(); rl.route.off();
} }

View file

@ -1058,7 +1058,6 @@ class Actions
'LoginDefaultDomain' => $oConfig->Get('login', 'default_domain', ''), 'LoginDefaultDomain' => $oConfig->Get('login', 'default_domain', ''),
'DetermineUserLanguage' => (bool)$oConfig->Get('login', 'determine_user_language', true), 'DetermineUserLanguage' => (bool)$oConfig->Get('login', 'determine_user_language', true),
'DetermineUserDomain' => (bool)$oConfig->Get('login', 'determine_user_domain', false), 'DetermineUserDomain' => (bool)$oConfig->Get('login', 'determine_user_domain', false),
'UseLoginWelcomePage' => (bool)$oConfig->Get('login', 'welcome_page', false),
'StartupUrl' => \trim(\ltrim(\trim($oConfig->Get('labs', 'startup_url', '')), '#/')), 'StartupUrl' => \trim(\ltrim(\trim($oConfig->Get('labs', 'startup_url', '')), '#/')),
'SieveAllowFileintoInbox' => (bool)$oConfig->Get('labs', 'sieve_allow_fileinto_inbox', false), 'SieveAllowFileintoInbox' => (bool)$oConfig->Get('labs', 'sieve_allow_fileinto_inbox', false),
'ContactsIsAllowed' => false, 'ContactsIsAllowed' => false,

View file

@ -206,8 +206,6 @@ class Application extends \RainLoop\Config\AbstractConfig
'determine_user_language' => array(true, ''), 'determine_user_language' => array(true, ''),
'determine_user_domain' => array(false, ''), 'determine_user_domain' => array(false, ''),
'welcome_page' => array(false, ''),
'hide_submit_button' => array(true), 'hide_submit_button' => array(true),
'forgot_password_link_url' => array('', ''), 'forgot_password_link_url' => array('', ''),

View file

@ -634,7 +634,6 @@ class ServiceActions
$aResult = array(); $aResult = array();
$sThemeFile = ($bCustomTheme ? APP_INDEX_ROOT_PATH : APP_VERSION_ROOT_PATH).'themes/'.$sRealTheme.'/styles.less'; $sThemeFile = ($bCustomTheme ? APP_INDEX_ROOT_PATH : APP_VERSION_ROOT_PATH).'themes/'.$sRealTheme.'/styles.less';
$sThemeExtFile = ($bCustomTheme ? APP_INDEX_ROOT_PATH : APP_VERSION_ROOT_PATH).'themes/'.$sRealTheme.'/ext.less';
$sThemeValuesFile = APP_VERSION_ROOT_PATH.'app/templates/Themes/values.less'; $sThemeValuesFile = APP_VERSION_ROOT_PATH.'app/templates/Themes/values.less';
$sThemeTemplateFile = APP_VERSION_ROOT_PATH.'app/templates/Themes/template.less'; $sThemeTemplateFile = APP_VERSION_ROOT_PATH.'app/templates/Themes/template.less';
@ -648,11 +647,6 @@ class ServiceActions
$aResult[] = \file_get_contents($sThemeValuesFile); $aResult[] = \file_get_contents($sThemeValuesFile);
$aResult[] = \file_get_contents($sThemeFile); $aResult[] = \file_get_contents($sThemeFile);
$aResult[] = \file_get_contents($sThemeTemplateFile); $aResult[] = \file_get_contents($sThemeTemplateFile);
if (\is_file($sThemeExtFile))
{
$aResult[] = \file_get_contents($sThemeExtFile);
}
} }
$aResult[] = $this->Plugins()->CompileCss($bAdmin); $aResult[] = $this->Plugins()->CompileCss($bAdmin);

View file

@ -1,46 +1,44 @@
<div class="b-login-content"> <div class="b-login-content">
<div class="loginFormWrapper" data-bind="css: {'afterLoginHide': formHidden}"> <div class="loginFormWrapper" data-bind="css: {'afterLoginHide': formHidden}">
<center> <div class="alert alertError" data-bind="visible: '' !== submitError()">
<div class="alert alertError" data-bind="visible: '' !== submitError()"> <button type="button" class="close" data-bind="click: function () { submitError('') }">&times;</button>
<button type="button" class="close" data-bind="click: function () { submitError('') }">&times;</button> <span data-bind="text: submitError"></span>
<span data-bind="text: submitError"></span> </div>
</div> <div class="wrapper-parent">
<div class="wrapper-parent"> <form class="wrapper submitting-pane loginForm thm-login thm-login-text" action="#/" data-bind="submit: submitForm, css: {'errorAnimated': formError, 'submitting': submitRequest()}">
<form class="wrapper submitting-pane loginForm thm-login thm-login-text" action="#/" data-bind="submit: submitForm, css: {'errorAnimated': formError, 'submitting': submitRequest()}"> <div class="controls" data-bind="css: {'error': loginError, 'animated': loginErrorAnimation}">
<div class="controls" data-bind="css: {'error': loginError, 'animated': loginErrorAnimation}"> <div class="input-append">
<div class="input-append"> <input type="text" class="input-block-level inputLogin"
<input type="text" class="input-block-level inputLogin" name="RainLoopAdminLogin" id="RainLoopAdminLogin"
name="RainLoopAdminLogin" id="RainLoopAdminLogin" autofocus=""
autofocus="" autocomplete="username" autocorrect="off" autocapitalize="off" spellcheck="false" data-i18n="[placeholder]LOGIN/LABEL_LOGIN"
autocomplete="username" autocorrect="off" autocapitalize="off" spellcheck="false" data-i18n="[placeholder]LOGIN/LABEL_LOGIN" data-bind="textInput: login, disable: submitRequest" />
data-bind="textInput: login, disable: submitRequest" /> <span class="add-on">
<span class="add-on"> <i class="icon-user"></i>
<i class="icon-user"></i> </span>
</span>
</div>
</div> </div>
<div class="controls" data-bind="css: {'error': passwordError, 'animated': passwordErrorAnimation}"> </div>
<div class="input-append"> <div class="controls" data-bind="css: {'error': passwordError, 'animated': passwordErrorAnimation}">
<input type="password" class="input-block-level inputPassword" <div class="input-append">
placeholder="Password" name="RainLoopAdminPassword" id="RainLoopAdminPassword" <input type="password" class="input-block-level inputPassword"
autocomplete="current-password" autocorrect="off" autocapitalize="off" spellcheck="false" data-i18n="[placeholder]LOGIN/LABEL_PASSWORD" placeholder="Password" name="RainLoopAdminPassword" id="RainLoopAdminPassword"
data-bind="textInput: password, disable: submitRequest" /> autocomplete="current-password" autocorrect="off" autocapitalize="off" spellcheck="false" data-i18n="[placeholder]LOGIN/LABEL_PASSWORD"
<span class="add-on" tabindex="-1" data-bind="command: submitCommand, tooltip: 'LOGIN/BUTTON_LOGIN'"> data-bind="textInput: password, disable: submitRequest" />
<i class="icon-key" data-bind="visible: '' === password()"></i> <span class="add-on" tabindex="-1" data-bind="command: submitCommand, tooltip: 'LOGIN/BUTTON_LOGIN'">
<button type="submit" class="btn-submit-icon-wrp" data-bind="visible: '' !== password()"> <i class="icon-key" data-bind="visible: '' === password()"></i>
<i class="icon-right-middle login-submit-icon"></i> <button type="submit" class="btn-submit-icon-wrp" data-bind="visible: '' !== password()">
</button> <i class="icon-right-middle login-submit-icon"></i>
</span> </button>
</div> </span>
</div> </div>
<div class="controls controls-submit-wrp" data-bind="hidden: hideSubmitButton"> </div>
<button type="submit" class="btn btn-large btn-block buttonLogin" data-bind="command: submitCommand"> <div class="controls controls-submit-wrp" data-bind="hidden: hideSubmitButton">
<span data-i18n="LOGIN/BUTTON_LOGIN"></span> <button type="submit" class="btn btn-large btn-block buttonLogin" data-bind="command: submitCommand">
</button> <span data-i18n="LOGIN/BUTTON_LOGIN"></span>
</div> </button>
</form> </div>
</div> </form>
</center> </div>
</div> </div>
<div> <div>

View file

@ -1,130 +1,128 @@
<div class="b-login-content"> <div class="b-login-content">
<div class="loginFormWrapper" data-bind="css: {'afterLoginHide': formHidden}"> <div class="loginFormWrapper" data-bind="css: {'afterLoginHide': formHidden}">
<center class="plugin-mark-Login-BeforeLogo"> <div class="descWrapper thm-login-desc plugin-mark-Login-AfterLogoDescription"
<div class="alert alertError" data-bind="hidden: !submitError()" hidden=""> data-bind="visible: '' !== loadingDesc">
<button type="button" class="close" data-bind="click: function () { submitError('') }">&times;</button> <span class="desc" data-bind="text: loadingDesc"></span>
<span data-bind="text: submitError"></span> </div>
<div data-bind="visible: '' !== submitErrorAddidional()"> <div class="alert alertError" data-bind="hidden: !submitError()" hidden="">
<br /> <button type="button" class="close" data-bind="click: function () { submitError('') }">&times;</button>
<span data-bind="text: submitErrorAddidional"></span> <span data-bind="text: submitError"></span>
<div data-bind="visible: '' !== submitErrorAddidional()">
<br />
<span data-bind="text: submitErrorAddidional"></span>
</div>
</div>
<div class="wrapper-parent">
<form class="wrapper submitting-pane loginForm thm-login thm-login-text" action="#/"
data-bind="submit: submitForm, css: {'errorAnimated': formError, 'submitting': submitRequest()}">
<div class="controls plugin-mark-Login-TopControlGroup"
data-bind="css: {'error': emailError, 'animated': emailErrorAnimation}">
<div class="input-append">
<input type="email" class="i18n input-block-level inputEmail"
name="RainLoopEmail" id="RainLoopEmail"
autofocus=""
autocomplete="email" autocorrect="off" autocapitalize="off" spellcheck="false"
data-bind="textInput: email, disable: submitRequest"
data-i18n="[placeholder]LOGIN/LABEL_EMAIL" />
<span class="add-on">
<i class="icon-mail"></i>
</span>
</div>
</div> </div>
</div> <div class="controls" data-bind="css: {'error': passwordError, 'animated': passwordErrorAnimation}">
<div class="wrapper-parent"> <div class="input-append">
<div class="wrapper loginWelcomeForm thm-login-text" data-bind="css: {'welcome-on': welcome}"> <input type="password" class="i18n input-block-level inputPassword"
<!-- ko template: { name: 'LoginWelcome' } --> name="RainLoopPassword" id="RainLoopPassword"
<!-- /ko --> autocomplete="current-password" autocorrect="off" autocapitalize="off" spellcheck="false"
data-bind="textInput: password, disable: submitRequest"
data-i18n="[placeholder]LOGIN/LABEL_PASSWORD" />
<span class="add-on" tabindex="-1"
data-bind="command: submitCommand, tooltip: 'LOGIN/BUTTON_SIGN_IN'">
<i class="icon-key" data-bind="visible: '' === password()"></i>
<button type="submit" class="btn-submit-icon-wrp" data-bind="visible: '' !== password()">
<i class="icon-right-middle login-submit-icon"></i>
</button>
</span>
</div>
</div> </div>
<form class="wrapper submitting-pane loginForm thm-login thm-login-text" action="#/" <div class="controls"
data-bind="submit: submitForm, css: {'errorAnimated': formError, 'welcome-off': welcome, 'submitting': submitRequest()}"> data-bind="visible: additionalCodeVisibility(), css: {'error': additionalCodeError, 'animated': additionalCodeErrorAnimation}">
<div class="controls plugin-mark-Login-TopControlGroup" <div class="input-append">
data-bind="css: {'error': emailError, 'animated': emailErrorAnimation}"> <input type="text" class="i18n input-block-level inputAdditionalCode" autocomplete="off"
<div class="input-append"> autocorrect="off" autocapitalize="off" spellcheck="false" style="padding-right: 35px;"
<input type="email" class="i18n input-block-level inputEmail" data-bind="textInput: additionalCode, disable: submitRequest"
name="RainLoopEmail" id="RainLoopEmail" data-i18n="[placeholder]LOGIN/LABEL_VERIFICATION_CODE" />
autofocus="" <span class="add-on">
autocomplete="email" autocorrect="off" autocapitalize="off" spellcheck="false" <i class="icon-key"></i>
data-bind="textInput: email, disable: submitRequest" </span>
data-i18n="[placeholder]LOGIN/LABEL_EMAIL" />
<span class="add-on">
<i class="icon-mail"></i>
</span>
</div>
</div> </div>
<div class="controls" data-bind="css: {'error': passwordError, 'animated': passwordErrorAnimation}"> </div>
<div class="input-append"> <div class="controls plugin-mark-Login-BottomControlGroup"
<input type="password" class="i18n input-block-level inputPassword" data-bind="visible: additionalCodeVisibility()">
name="RainLoopPassword" id="RainLoopPassword" <div class="additionalCodeSignMeLabel" data-bind="component: {
autocomplete="current-password" autocorrect="off" autocapitalize="off" spellcheck="false" name: 'CheckboxSimple',
data-bind="textInput: password, disable: submitRequest" params: {
data-i18n="[placeholder]LOGIN/LABEL_PASSWORD" /> label: 'LOGIN/LABEL_DONT_ASK_VERIFICATION_CODE',
<span class="add-on" tabindex="-1" value: additionalCodeSignMe
data-bind="command: submitCommand, tooltip: 'LOGIN/BUTTON_SIGN_IN'"> }
<i class="icon-key" data-bind="visible: '' === password()"></i> }"></div>
<button type="submit" class="btn-submit-icon-wrp" data-bind="visible: '' !== password()"> </div>
<i class="icon-right-middle login-submit-icon"></i> <div class="controls controls-submit-wrp" data-bind="hidden: hideSubmitButton">
</button> <button type="submit" class="btn btn-large btn-block buttonLogin" data-bind="command: submitCommand">
</span> <span class="i18n i18n-animation" data-i18n="LOGIN/BUTTON_SIGN_IN"></span>
</div> </button>
</div>
<div class="controls clearfix" style="margin-bottom: 10px">
<div class="pull-right language-buttons">
<a href="#" tabindex="-1" class="language-button"
data-bind="visible: allowLanguagesOnLogin, click: selectLanguage, tooltip: 'POPUPS_LANGUAGES/TITLE_LANGUAGES'">
<i data-bind="css: langRequest() ? 'icon-spinner animated' : 'icon-world'"></i>
</a>
</div> </div>
<div class="controls"
data-bind="visible: additionalCodeVisibility(), css: {'error': additionalCodeError, 'animated': additionalCodeErrorAnimation}">
<div class="input-append">
<input type="text" class="i18n input-block-level inputAdditionalCode" autocomplete="off"
autocorrect="off" autocapitalize="off" spellcheck="false" style="padding-right: 35px;"
data-bind="textInput: additionalCode, disable: submitRequest"
data-i18n="[placeholder]LOGIN/LABEL_VERIFICATION_CODE" />
<span class="add-on">
<i class="icon-key"></i>
</span>
</div>
</div>
<div class="controls plugin-mark-Login-BottomControlGroup"
data-bind="visible: additionalCodeVisibility()">
<div class="additionalCodeSignMeLabel" data-bind="component: {
name: 'CheckboxSimple',
params: {
label: 'LOGIN/LABEL_DONT_ASK_VERIFICATION_CODE',
value: additionalCodeSignMe
}
}"></div>
</div>
<div class="controls controls-submit-wrp" data-bind="hidden: hideSubmitButton">
<button type="submit" class="btn btn-large btn-block buttonLogin" data-bind="command: submitCommand">
<span class="i18n i18n-animation" data-i18n="LOGIN/BUTTON_SIGN_IN"></span>
</button>
</div>
<div class="controls clearfix" style="margin-bottom: 10px">
<div class="pull-right social-buttons">
<a href="#" tabindex="-1" class="language-button"
data-bind="visible: allowLanguagesOnLogin, click: selectLanguage, tooltip: 'POPUPS_LANGUAGES/TITLE_LANGUAGES'">
<i data-bind="css: langRequest() ? 'icon-spinner animated' : 'icon-world'"></i>
</a>
</div>
<div class="signMeLabel" data-bind="visible: signMeVisibility, component: { <div class="signMeLabel" data-bind="visible: signMeVisibility, component: {
name: 'CheckboxSimple', name: 'CheckboxSimple',
params: { params: {
label: 'LOGIN/LABEL_SIGN_ME', label: 'LOGIN/LABEL_SIGN_ME',
labelAnimated: true, labelAnimated: true,
value: signMe value: signMe
} }
}"></div> }"></div>
</div>
<div class="controls clearfix"
data-bind="visible: '' !== forgotPasswordLinkUrl || '' !== registrationLinkUrl">
<div class="forgot-link thm-forgot pull-left" data-bind="visible: '' !== forgotPasswordLinkUrl"
style="text-align: center">
<a href="#" target="_blank" class="g-ui-link"
data-bind="attr: {href: forgotPasswordLinkUrl}, css: {'pull-right': '' !== registrationLinkUrl}"><span
class="i18n" data-i18n="LOGIN/LABEL_FORGOT_PASSWORD"></span></a>
</div> </div>
<div class="controls clearfix" &nbsp;
data-bind="visible: '' !== forgotPasswordLinkUrl || '' !== registrationLinkUrl"> <div class="registration-link thm-registration pull-right"
<div class="forgot-link thm-forgot pull-left" data-bind="visible: '' !== forgotPasswordLinkUrl" data-bind="visible: '' !== registrationLinkUrl" style="text-align: center">
style="text-align: center"> <a href="#" target="_blank" class="g-ui-link"
<a href="#" target="_blank" class="g-ui-link" data-bind="attr: {href: registrationLinkUrl}, css: {'pull-left': '' !== forgotPasswordLinkUrl}"><span
data-bind="attr: {href: forgotPasswordLinkUrl}, css: {'pull-right': '' !== registrationLinkUrl}"><span class="i18n" data-i18n="LOGIN/LABEL_REGISTRATION"></span></a>
class="i18n" data-i18n="LOGIN/LABEL_FORGOT_PASSWORD"></span></a>
</div>
&nbsp;
<div class="registration-link thm-registration pull-right"
data-bind="visible: '' !== registrationLinkUrl" style="text-align: center">
<a href="#" target="_blank" class="g-ui-link"
data-bind="attr: {href: registrationLinkUrl}, css: {'pull-left': '' !== forgotPasswordLinkUrl}"><span
class="i18n" data-i18n="LOGIN/LABEL_REGISTRATION"></span></a>
</div>
</div> </div>
</form> </div>
</div> </form>
<div class="e-mobile-switcher thm-mobile-switcher"> </div>
<span data-bind="visible: !mobile"> <div class="e-mobile-switcher thm-mobile-switcher">
<i class="icon-mobile"></i> <span data-bind="visible: !mobile">
&nbsp; <i class="icon-mobile"></i>
<a href="./?/MobileVersion/" tabindex="-1"> &nbsp;
<span class="i18n" data-i18n="MOBILE/BUTTON_MOBILE_VERSION"></span> <a href="./?/MobileVersion/" tabindex="-1">
</a> <span class="i18n" data-i18n="MOBILE/BUTTON_MOBILE_VERSION"></span>
</span> </a>
<span data-bind="visible: mobile"> </span>
<i class="icon-laptop"></i> <span data-bind="visible: mobile">
&nbsp; <i class="icon-laptop"></i>
<a href="./?/DesktopVersion/" tabindex="-1"> &nbsp;
<span class="i18n" data-i18n="MOBILE/BUTTON_DESKTOP_VERSION"></span> <a href="./?/DesktopVersion/" tabindex="-1">
</a> <span class="i18n" data-i18n="MOBILE/BUTTON_DESKTOP_VERSION"></span>
</span> </a>
</div> </span>
</center> </div>
</div> </div>
</div> </div>

View file

@ -1,4 +0,0 @@
<div class="b-login--welcome-content">
<i class="icon-mail iconsize50" style="cursor: pointer" data-bind="click: displayMainForm"></i>
<br /><br />
</div>

View file

@ -1,18 +0,0 @@
.b-login-content .loginFormWrapper {
width: 90%;
.wrapper {
padding: 30px 30px 10px 30px;
}
}
.thm-login {
width: 100% !important;
width: calc(~'100% - 60px') !important;
max-width: 303px !important;
box-shadow: 0 1px 4px #ccc !important;
box-shadow: 0 1px 5px rgba(0,0,0,.2) !important;
box-shadow: 0 0 0 1px rgba(0,0,0,.04),0 1px 5px rgba(0,0,0,.1) !important;
}