Skip to content

Commit f66d556

Browse files
committed
[FIX] the login/register form
1 parent 5e5dddf commit f66d556

File tree

16 files changed

+370
-19
lines changed

16 files changed

+370
-19
lines changed
1.61 KB
Binary file not shown.

html/api/v1/oauth/callback/index.html

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,8 @@
3232
<link rel="stylesheet" href="../../../../assets/css/OpenDyslexic3.css">
3333
<link rel="stylesheet" href="../../../../assets/css/OpenDyslexicAlta.css">
3434
<link rel="stylesheet" href="../../../../assets/css/OpenDyslexicMono.css">
35+
<link rel="stylesheet" href="../../../../assets/css/Cookie-Banner-CookieBanner.css">
36+
<link rel="stylesheet" href="../../../../assets/css/Cookie-Banner.css">
3537
<link rel="stylesheet" href="../../../../assets/css/dropdown.css">
3638
<link rel="stylesheet" href="../../../../assets/css/Login-Form-Basic-icons.css">
3739
</head>
Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
.cookiealert {
2+
position: fixed;
3+
bottom: 0;
4+
left: 0;
5+
width: 100%;
6+
margin: 0 !important;
7+
z-index: 9999;
8+
opacity: 0;
9+
border-radius: 0;
10+
background: #111111;
11+
transform: translateY(100%);
12+
transition: all 500ms ease-out;
13+
color: #ffffff;
14+
}
15+
16+
.cookiealert.show {
17+
opacity: 1;
18+
transform: translateY(0%);
19+
transition: 1000ms;
20+
}
21+
22+
.cookiealert a {
23+
text-decoration: underline;
24+
}
25+
26+
.cookiealert .acceptcookies {
27+
margin-left: 10px;
28+
vertical-align: baseline;
29+
}
30+

html/assets/css/Cookie-Banner.css

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
.cookiealert {
2+
position: fixed;
3+
bottom: 0;
4+
left: 0;
5+
width: 100%;
6+
margin: 0 !important;
7+
z-index: 9999;
8+
opacity: 0;
9+
border-radius: 0;
10+
background: #111111;
11+
transform: translateY(100%);
12+
transition: all 500ms ease-out;
13+
color: #ffffff;
14+
}
15+
16+
.cookiealert a {
17+
text-decoration: underline;
18+
}
19+
20+
.cookiealert .acceptcookies {
21+
margin-left: 10px;
22+
vertical-align: baseline;
23+
}
24+

html/assets/css/login.css

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -19,18 +19,17 @@ body {
1919
/*align-items: center;*/
2020
/*height: 100vh;*/
2121
top: 0;
22-
background-color: #f4f4f4;
2322
}
2423

2524
.my_container {
26-
background: #fff;
2725
padding: 20px;
2826
border-radius: 10px;
2927
box-shadow: 0 0 10px rgba(0, 0, 0, 0.1);
3028
text-align: center;
3129
width: 320px;
3230
overflow: hidden;
3331
position: relative;
32+
border: 1px solid #ccc;
3433
}
3534

3635
/* Toggle Switch */
@@ -67,9 +66,10 @@ body {
6766
left: 0;
6867
right: 0;
6968
bottom: 0;
70-
background-color: #ccc;
7169
transition: 0.4s;
7270
border-radius: 25px;
71+
background-color: #ccc;
72+
border: 1px solid #ccc;
7373
}
7474

7575
.slider:before {
@@ -79,17 +79,17 @@ body {
7979
width: 18px;
8080
left: 4px;
8181
bottom: 3.5px;
82-
background-color: white;
8382
transition: 0.4s;
8483
border-radius: 50%;
84+
background-color: white;
8585
}
8686

8787
input:checked + .slider {
8888
background-color: #4CAF50;
8989
}
9090

9191
input:checked + .slider:before {
92-
transform: translateX(24px);
92+
transform: translateX(4px);
9393
}
9494

9595
/* Form Wrapper */
@@ -131,7 +131,6 @@ form button {
131131
padding: 10px;
132132
width: 100%;
133133
background-color: #4CAF50;
134-
color: white;
135134
border: none;
136135
border-radius: 5px;
137136
cursor: pointer;

html/assets/js/login/initializer.js

Lines changed: 25 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -6,14 +6,31 @@
66
*/
77

88
function inject_submit_actions() {
9-
document.getElementById("loginForm").addEventListener("submit", function (event) {
10-
event.preventDefault();
11-
log_user_in();
12-
});
13-
document.getElementById("registerForm").addEventListener("submit", function (event) {
14-
event.preventDefault();
15-
register_user();
16-
});
9+
const personal = "submit";
10+
const professional = "submit_professional";
11+
if (document.getElementById("loginForm") === null) {
12+
console.error("No login form found");
13+
return;
14+
}
15+
if (document.getElementById("registerForm").querySelector('input[type="submit"]')) {
16+
document.getElementById("loginForm").addEventListener(personal, function (event) {
17+
event.preventDefault();
18+
log_user_in();
19+
});
20+
document.getElementById("registerForm").addEventListener(personal, function (event) {
21+
event.preventDefault();
22+
register_user();
23+
});
24+
} else {
25+
document.getElementById("loginForm").addEventListener(professional, function (event) {
26+
event.preventDefault();
27+
log_user_in_professional();
28+
});
29+
document.getElementById("registerForm").addEventListener(professional, function (event) {
30+
event.preventDefault();
31+
register_user_professional();
32+
});
33+
}
1734
}
1835

1936
// Add a a rule to only run once the page is loaded

html/assets/js/login/log_user_in.js

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,3 +20,19 @@ async function log_user_in() {
2020
update_error_message("Login failed: " + response.message);
2121
}
2222
}
23+
24+
async function log_user_in_professional() {
25+
const email = document.getElementById("loginEmail").value;
26+
const password = document.getElementById("loginPassword").value;
27+
28+
const response = await window.update_server.login_professional(email, password);
29+
30+
console.log(`login: JSON response: ${JSON.stringify(response)}`);
31+
32+
if (response.ok) {
33+
console.log("Login successful:", response);
34+
window.location.href = window.constants.dashboard_page;
35+
} else {
36+
update_error_message("Login failed: " + response.message);
37+
}
38+
}

html/assets/js/login/register_user.js

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,3 +29,27 @@ async function register_user() {
2929
update_error_message("Registration failed: " + response.message);
3030
}
3131
}
32+
async function register_user_professional() {
33+
const username = document.getElementById("registerUsername").value;
34+
const email = document.getElementById("registerEmail").value;
35+
const password = document.getElementById("registerPassword").value;
36+
const password_confirmation = document.getElementById("registerPasswordConfirmation").value;
37+
38+
if (password !== password_confirmation) {
39+
update_error_message("Passwords do not match !");
40+
return;
41+
}
42+
43+
console.log("passwords match");
44+
45+
const response = await window.update_server.register(username, email, password);
46+
47+
console.log(`register: JSON response: ${JSON.stringify(response)}`);
48+
49+
if (response.ok) {
50+
console.log("Registration successful:", response);
51+
window.location.href = window.constants.dashboard_page;
52+
} else {
53+
update_error_message("Registration failed: " + response.message);
54+
}
55+
}

html/assets/js/login/sso.js

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,3 +4,11 @@ async function sso() {
44
console.log(`Received url from /oauth/login: ${url.resp}`);
55
window.location.href = url.resp;
66
}
7+
8+
9+
async function sso_pro() {
10+
const url = await window.querier.get("/oauth/login/github");
11+
console.log(`content = ${JSON.stringify(url)}`);
12+
console.log(`Received url from /oauth/login: ${url.resp}`);
13+
window.location.href = url.resp;
14+
}

html/assets/js/modules/manage_server.mjs

Lines changed: 70 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -74,6 +74,74 @@ async function login(email, password) {
7474
return response;
7575
};
7676

77+
async function register_professional(username, email, password) {
78+
console.log("register called");
79+
console.log("username:", username);
80+
console.log("email:", email);
81+
console.log("password:", password);
82+
alert("Il s'agit d'un site de démonstration, votre compte n'existera que localement sur votre ordinateur. Vous pouvez utiliser l'adresse e-mail et le mot de passe de votre choix.");
83+
// let response = await window.querier.post("/register", { username, email, password });
84+
let response = { "ok": true, "resp": { "id": 1, "token": "Not a token", "username": username } };
85+
console.log("response:", response);
86+
console.log(`(register, before response) JSON response: ${JSON.stringify(response)}`);
87+
if (response.ok) {
88+
const user_id = response.resp.id;
89+
const user_token = response.resp.token;
90+
const user_username = response.resp.username;
91+
console.log(`user_id: ${user_id}, user_token: ${user_token}, user_username: ${user_username}`);
92+
if (user_id && user_token && user_username) {
93+
window.cookie_manager.create(window.constants.user_id_cookie_name, user_id);
94+
window.cookie_manager.create(window.constants.user_token_cookie_name, user_token);
95+
window.cookie_manager.create(window.constants.user_username_cookie_name, user_username);
96+
response.success = true;
97+
response.ok = true;
98+
return response;
99+
} else {
100+
response.success = false;
101+
response.ok = false;
102+
}
103+
} else {
104+
response.success = false;
105+
response.ok = false;
106+
}
107+
console.log("response:", response);
108+
console.log(`JSON response: ${JSON.stringify(response)}`);
109+
console.log("register finished");
110+
return response;
111+
};
112+
113+
async function login_professional(email, password) {
114+
console.log("login called");
115+
console.log("email:", email);
116+
console.log("password:", password);
117+
let response = await window.querier.post(`${window.constants.user_login_endpoint}`, { email, password });
118+
console.log("response:", response);
119+
console.log(`JSON response: ${JSON.stringify(response)}`);
120+
console.log("login finished");
121+
if (response.ok) {
122+
const user_id = response.resp.id;
123+
const user_token = response.resp.token;
124+
const user_username = response.resp.username;
125+
console.log(`user_id: ${user_id}, user_token: ${user_token}, user_username: ${user_username}`);
126+
if (user_token && user_id && user_username) {
127+
window.cookie_manager.create(window.constants.user_id_cookie_name, user_id);
128+
window.cookie_manager.create(window.constants.user_token_cookie_name, user_token);
129+
window.cookie_manager.create(window.constants.user_username_cookie_name, user_username);
130+
response.success = true;
131+
response.ok = true;
132+
return response;
133+
} else {
134+
response.success = false;
135+
}
136+
} else {
137+
response.success = false;
138+
response.ok = false;
139+
}
140+
console.log("response:", response);
141+
console.log("login finished");
142+
return response;
143+
};
144+
77145
async function provideMissingSsoInfo(username, password) {
78146
const token = window.cookie_manager.read(window.constants.user_token_cookie_name);
79147
if (!token) {
@@ -198,7 +266,9 @@ const update_server = {
198266
addWidgetToUser,
199267
getWidgetContent,
200268
updateUserWidgets,
269+
login_professional,
201270
getAvailableWidgets,
271+
register_professional,
202272
provideMissingSsoInfo,
203273
}
204274

0 commit comments

Comments
 (0)