Merge branch 'improve/passwordManagers' into maintenance
This commit is contained in:
commit
9e3d2bed65
4 changed files with 53 additions and 11 deletions
File diff suppressed because one or more lines are too long
|
|
@ -106,12 +106,6 @@ $(function() {
|
|||
self.login();
|
||||
};
|
||||
|
||||
self.onKeyUp = function(data, event) {
|
||||
if (event && event.keyCode == 13) {
|
||||
$('#loginForm').submit();
|
||||
}
|
||||
}
|
||||
|
||||
self.onAllBound = function(allViewModels) {
|
||||
self.allViewModels = allViewModels;
|
||||
};
|
||||
|
|
@ -125,6 +119,28 @@ $(function() {
|
|||
self.elementUsernameInput = $("#login_user");
|
||||
self.elementPasswordInput = $("#login_pass");
|
||||
self.elementLoginButton = $("#login_button");
|
||||
|
||||
var toggle = $("li.dropdown#navbar_login");
|
||||
var button = $("a", toggle);
|
||||
|
||||
button.on("click", function(e) {
|
||||
$(this).parent().toggleClass("open");
|
||||
});
|
||||
|
||||
$("body").on("click", function(e) {
|
||||
var anyFormLinkOrButton = $("#login_dropdown_loggedout a, #login_dropdown_loggedin a, #login_dropdown_loggedout button, #login_dropdown_loggedin button");
|
||||
var dropdown = $("li.dropdown#navbar_login");
|
||||
var anyLastpassButton = $("#__lpform_login_user, #__lpform_login_pass");
|
||||
|
||||
var isLinkOrButton = anyFormLinkOrButton.is(e.target) || anyFormLinkOrButton.has(e.target).length !== 0;
|
||||
var isDropdown = dropdown.is(e.target) || dropdown.has(e.target).length === 0;
|
||||
var isLastpass = anyLastpassButton.is(e.target) || anyLastpassButton.has(e.target).length === 0;
|
||||
|
||||
if (isLinkOrButton || !(isDropdown || isLastpass)) {
|
||||
toggle.removeClass("open");
|
||||
}
|
||||
});
|
||||
|
||||
if (self.elementUsernameInput && self.elementUsernameInput.length
|
||||
&& self.elementLoginButton && self.elementLoginButton.length) {
|
||||
self.elementLoginButton.blur(function() {
|
||||
|
|
|
|||
|
|
@ -1139,3 +1139,29 @@ input[type=number] {
|
|||
width: 100%;
|
||||
}
|
||||
}
|
||||
|
||||
// Navbar loginForm
|
||||
// Make the overlay always visible so that extensions are able to auto-submit (i.e. password-managers)
|
||||
#navbar_login:not(.open) #login_dropdown_loggedout {
|
||||
display: block;
|
||||
z-index: -1;
|
||||
height: 0;
|
||||
width: 0;
|
||||
padding: 0 !important;
|
||||
overflow: hidden;
|
||||
border: 0;
|
||||
box-shadow: none;
|
||||
left: -9999px;
|
||||
|
||||
&.hide {
|
||||
display: none;
|
||||
}
|
||||
}
|
||||
|
||||
#loginForm {
|
||||
margin: 0;
|
||||
|
||||
button {
|
||||
margin-top: 20px;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,13 +1,13 @@
|
|||
<a href="#" class="dropdown-toggle" data-toggle="dropdown">
|
||||
<a href="#" class="dropdown-toggle">
|
||||
<i class="icon-user"></i> <span data-bind="text: loginState.userMenuText">{{ _('Login') }}</span>
|
||||
<b class="caret"></b>
|
||||
</a>
|
||||
<div id="login_dropdown_loggedout" style="padding: 15px" class="dropdown-menu" data-bind="css: {hide: loginState.loggedIn(), 'dropdown-menu': !loginState.loggedIn()}">
|
||||
<form id="loginForm" data-bind="event: {'submit': loginState.prepareLogin }" autocomplete="on">
|
||||
<form id="loginForm" data-bind="event: {'submit': loginState.prepareLogin }">
|
||||
<label for="login_user">{{ _('Username') }}</label>
|
||||
<input type="text" id="login_user" name="username" data-bind="valueWithInit: loginState.loginUser, event: {'keyup': loginState.onKeyUp }" placeholder="{{ _('Username') }}" autocapitalize="none" autocomplete="on">
|
||||
<input type="text" id="login_user" name="username" data-bind="valueWithInit: loginState.loginUser" placeholder="{{ _('Username') }}" autocapitalize="none">
|
||||
<label for="login_pass">{{ _('Password') }}</label>
|
||||
<input type="password" id="login_pass" name="password" data-bind="valueWithInit: loginState.loginPass, event: {'keyup': loginState.onKeyUp }" placeholder="{{ _('Password') }}" autocomplete="on">
|
||||
<input type="password" id="login_pass" name="password" data-bind="valueWithInit: loginState.loginPass" placeholder="{{ _('Password') }}">
|
||||
<label class="checkbox">
|
||||
<input type="checkbox" id="login_remember" data-bind="checked: loginState.loginRemember"> {{ _('Remember me') }}
|
||||
</label>
|
||||
|
|
|
|||
Loading…
Reference in a new issue