first commit
This commit is contained in:
70
server/front/register/js.js
Normal file
70
server/front/register/js.js
Normal file
@@ -0,0 +1,70 @@
|
||||
document.getElementById('registerForm').addEventListener('submit', async function (e) {
|
||||
e.preventDefault();
|
||||
|
||||
const email = document.getElementById('email').value;
|
||||
const password = document.getElementById('password').value;
|
||||
const confirmPassword = document.getElementById('confirm_password').value;
|
||||
|
||||
if (password !== confirmPassword) {
|
||||
showError(['Passwords are different!']);
|
||||
return;
|
||||
}
|
||||
|
||||
const userData = {
|
||||
email,
|
||||
description: "string",
|
||||
activated: true,
|
||||
password
|
||||
};
|
||||
|
||||
try {
|
||||
const response = await fetch('http://localhost:8000/user_create', {
|
||||
method: 'POST',
|
||||
headers: { 'Content-Type': 'application/json' },
|
||||
body: JSON.stringify(userData)
|
||||
});
|
||||
|
||||
if (response.ok) {
|
||||
window.location.href = './../login/index.html';
|
||||
} else {
|
||||
const err = await response.json();
|
||||
if (Array.isArray(err.detail)) {
|
||||
const messages = err.detail.map(e => {
|
||||
const field = e.loc.filter(locPart => locPart !== 'body').join(' -> ');
|
||||
return `${field}: ${e.msg}`;
|
||||
});
|
||||
showError(messages);
|
||||
} else if (typeof err.detail === 'string') {
|
||||
showError([err.detail]);
|
||||
}
|
||||
}
|
||||
} catch {
|
||||
showError(['Connection timeout']);
|
||||
}
|
||||
});
|
||||
|
||||
function showError(messages) {
|
||||
let errorElem = document.getElementById('formError');
|
||||
let container = document.getElementById('glass-container');
|
||||
if (!errorElem) {
|
||||
errorElem = document.createElement('div');
|
||||
errorElem.style.transition = "3s";
|
||||
errorElem.id = 'formError';
|
||||
errorElem.style.color = 'red';
|
||||
errorElem.style.marginTop = '20px';
|
||||
errorElem.style.fontSize = "14px";
|
||||
errorElem.style.fontWeight="100";
|
||||
errorElem.style.marginBottom='20px';
|
||||
errorElem.style.lineHeight = "120%";
|
||||
container.style.height = "auto";
|
||||
const form = document.getElementById('registerForm');
|
||||
form.insertAdjacentElement('afterend', errorElem);
|
||||
}
|
||||
errorElem.innerHTML = '';
|
||||
messages.forEach(msg => {
|
||||
const li = document.createElement('li');
|
||||
li.style.listStyleType="none";
|
||||
li.textContent = msg;
|
||||
errorElem.appendChild(li);
|
||||
});
|
||||
}
|
||||
Reference in New Issue
Block a user