improved login page

This commit is contained in:
AdrienLSH 2024-01-11 09:56:38 +01:00
parent 8c43864b26
commit cd82162ebe
3 changed files with 19 additions and 11 deletions

View File

@ -18,6 +18,6 @@ class LoginView(APIView):
serializer.is_valid(raise_exception=True) serializer.is_valid(raise_exception=True)
user = serializer.get_user(data) user = serializer.get_user(data)
if user is None: if user is None:
return Response({'user': ['Username or password wrong.']}, status.HTTP_200_OK) return Response({'error': ['Username or password wrong.']}, status.HTTP_400_BAD_REQUEST)
login(request, user) login(request, user)
return Response({'id': user.pk}, status=status.HTTP_200_OK) return Response({'id': user.pk}, status=status.HTTP_200_OK)

View File

@ -133,7 +133,7 @@ class Client
if (response.status == 200) if (response.status == 200)
await this._update_logged(true); await this._update_logged(true);
return response.status; return response;
} }
async logout() async logout()

View File

@ -7,14 +7,13 @@ async function login()
let username = document.getElementById("username-input").value; let username = document.getElementById("username-input").value;
let password = document.getElementById("password-input").value; let password = document.getElementById("password-input").value;
let response_data = await client.login(username, password); let response = await client.login(username, password);
if (response_data == 200) { if (response.status == 200) {
navigateTo("/home"); navigateTo("/home");
} else { } else {
//TODO: error field let error = await response.json();
clear("innerHTML", ["username", "user", "password"]); fill_errors(error, "innerHTML");
fill_errors(response_data, "innerHTML");
} }
} }
@ -25,6 +24,17 @@ export default class extends AbstractNonAuthentifiedView {
async postInit() async postInit()
{ {
let usernameField = document.getElementById('username-input');
usernameField.addEventListener('keydown', ev => {
if (ev.key === 'Enter')
login();
});
usernameField.focus();
let passwordField = document.getElementById('password-input');
passwordField.addEventListener('keydown', ev => {
if (ev.key === 'Enter')
login();
});
document.getElementById("login-button").onclick = login; document.getElementById("login-button").onclick = login;
} }
@ -34,11 +44,9 @@ export default class extends AbstractNonAuthentifiedView {
<label>Login</label> <label>Login</label>
<link rel="stylesheet" href="/static/css/accounts/login.css"> <link rel="stylesheet" href="/static/css/accounts/login.css">
<input type="text" id="username-input" placeholder="username"> <input type="text" id="username-input" placeholder="username">
<span id="username"></span>
<input type="password" id="password-input" placeholder="password"> <input type="password" id="password-input" placeholder="password">
<span id="password"></span>
<input type="button" value="Login" id="login-button"> <input type="button" value="Login" id="login-button">
<span id="user"></span> <span id="error"></span>
<a href="/register" class="nav__link" data-link>Register</a> <a href="/register" class="nav__link" data-link>Register</a>
</div> </div>
`; `;