accounts: anthentifyView: add: enter button

This commit is contained in:
starnakin 2024-02-13 12:53:38 +01:00 committed by AdrienLSH
parent cf9bd41dd0
commit d21ec87b88
2 changed files with 34 additions and 26 deletions

View File

@ -16,18 +16,15 @@ class Account
/**
* @param {String} username
* @param {String} password
* @returns {?Promise<Object>}
* @returns {Response}
*/
async create(username, password)
{
let response = await this.client._post("/api/accounts/register", {username: username, password: password});
let response_data = await response.json()
if (response_data == "user created")
{
if (response.status === 201)
await this.client._update_logged(true);
return null;
}
return response_data
}

View File

@ -25,17 +25,26 @@ export default class extends AbstractNonAuthentifiedView
this.update_mode(new_mode);
document.getElementById("button").onclick = this.authentificate.bind(this);
let username_input = document.getElementById('username-input'),
password_input = document.getElementById('password-input');
[username_input, password_input].forEach(input => {
input.addEventListener('keydown', async ev => {
if (ev.key === 'Enter')
await this.authentificate.bind(this)()
});
});
}
/**
* Check if field is normal
* @returns {null | Object<String>}
* @param username {String}
* @param password {String}
* @returns {Boolean}
*/
basic_verif()
basic_verif(username, password)
{
let username = document.getElementById('username-input').value;
let password = document.getElementById('password-input').value;
if (username === '')
document.getElementById('username').innerHTML = lang.get('errorEmptyField', 'This field may not be blank.');
@ -43,9 +52,9 @@ export default class extends AbstractNonAuthentifiedView
document.getElementById('password').innerHTML = lang.get('errorEmptyField', 'This field may not be blank.');
if (username === '' || password === '')
return null;
return false;
return { username, password };
return true
}
/**
@ -102,29 +111,31 @@ export default class extends AbstractNonAuthentifiedView
*/
async authentificate()
{
let ret = this.basic_verif();
let username = document.getElementById("username-input").value,
password = document.getElementById("password-input").value;
if (ret === null)
return
if (!this.basic_verif())
return;
let {username, password} = ret;
let response_data;
let response;
if (this.current_mode === "register")
response_data = await client.account.create(username, password)
response = await client.account.create(username, password)
else
response_data = await client.login(username, password);
response = await client.login(username, password);
if (response_data !== null)
if (response.status === 200 || response.status === 201)
{
navigateTo(this.redirectTo);
return;
}
clear("innerHTML", ["username", "password", 'register']);
fill_errors(response_data, "innerHTML");
let response_data = await response.json()
console.log(response_data);
clear("innerHTML", ["username", "password", 'login']);
fill_errors(response_data, "innerHTML");
}
async getHtml()
@ -147,7 +158,7 @@ export default class extends AbstractNonAuthentifiedView
</div>
<div class='d-flex'>
<button type='button' class='btn btn-primary mt-3 mb-2' id='button'>Loading...</button>
<span class='text-danger my-auto mx-2' id='register'></span>
<span class='text-danger my-auto mx-2' id='login'></span>
<div class='ms-auto mt-auto flex-row d-flex gap-2' id="toogle">
<p id='toogle-register-login-label'>Loading...</p>
<a id="toogle-register-login" href='#'>Loading...</a>