accounts: anthentifyView: add: enter button
This commit is contained in:
parent
da0b8e4edb
commit
0e9bfb1fed
@ -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
|
||||
}
|
||||
|
||||
|
@ -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>
|
||||
|
Loading…
Reference in New Issue
Block a user