From 3924c87b93b8e2fa2c87dfc22c80ecbb0d0ccedd Mon Sep 17 00:00:00 2001 From: AINDUSTRIES Date: Sat, 28 Sep 2024 23:27:44 +0200 Subject: [PATCH] register page --- static/css/register.css | 7 +++++ static/html/register.html | 15 +++++++++-- static/js/register.js | 55 ++++++++++++++++++++++++++++++++++++--- 3 files changed, 71 insertions(+), 6 deletions(-) create mode 100644 static/css/register.css diff --git a/static/css/register.css b/static/css/register.css new file mode 100644 index 0000000..747a067 --- /dev/null +++ b/static/css/register.css @@ -0,0 +1,7 @@ +.error { + color: red; +} + +.ok { + color: green; +} \ No newline at end of file diff --git a/static/html/register.html b/static/html/register.html index a916f9d..df83562 100644 --- a/static/html/register.html +++ b/static/html/register.html @@ -8,6 +8,7 @@ + Register @@ -19,14 +20,24 @@

+

Le nom d'utilisateur doit ne pas contenir de caractères spéciaux.


-
+

Le mot de passe doit contenir plus de 8 caractères et doit contenir au minimum: +
+ 1 Majuscule +
+ 1 Symbole +
+ 1 Minuscule +
+ 1 Nombre +


-
+

Les mots de passe doivent être les mêmes.

Tu as déjà un compte?

diff --git a/static/js/register.js b/static/js/register.js index 176866a..1da754c 100644 --- a/static/js/register.js +++ b/static/js/register.js @@ -1,11 +1,58 @@ -async function register() {} +async function register() { + let username = document.getElementById("username").value; + let password = document.getElementById("password").value; + let passwordConfirm = document.getElementById("passwordConfirm").value; + if (!check_username(username) || !check_password(password) || password !== passwordConfirm) { + return; + } + let status = await fetch("/register", {method: "POST", body: JSON.stringify({"username": username, "password": password})}).then(r => r.status) + if (status === 200) { + window.location.href = "/login"; + } else if (status === 400) { + document.getElementById("message").textContent = "Cet utilisateur existe déjà!" + } +} -function check_username() {} +function check_username(username) { + return username.match(/^[0-9a-zA-Z]+$/); +} -function check_password() {} +function check_password(password) { + return password.match(/^(?=.*\d)(?=.*[a-z])(?=.*[A-Z])(?=.*[!-/:-@[-`{-~]).{8,}$/) +} let button = document.getElementById("register"); button.addEventListener("click", () => { let _ = register(); -}) \ No newline at end of file +}) + +let username = document.getElementById("username"); + +username.addEventListener("input", () => { + if (check_username(username.value)) { + document.getElementById("usernameNotice").className = "ok"; + } else { + document.getElementById("usernameNotice").className = "error"; + } +}) + +let password = document.getElementById("password"); + +password.addEventListener("input", () => { + if (check_password(password.value)) { + document.getElementById("passwordNotice").className = "ok"; + } else { + document.getElementById("passwordNotice").className = "error"; + } +}) + +let passwordConfirm = document.getElementById("passwordConfirm"); + +passwordConfirm.addEventListener("input", () => { + if (passwordConfirm.value === password.value) { + document.getElementById("passwordConfirmNotice").className = "ok"; + } else { + document.getElementById("passwordConfirmNotice").className = "error"; + } +})