Skip to content

Commit e0f052b

Browse files
committed
[ADD] the general architecture for the website pages
1 parent 39a9d24 commit e0f052b

File tree

10 files changed

+1048
-4
lines changed

10 files changed

+1048
-4
lines changed
1014 Bytes
Binary file not shown.

html/assets/js/login/log_user_in.js

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,8 @@ async function log_user_in() {
1515

1616
if (response.ok) {
1717
console.log("Login successful:", response);
18-
window.location.href = window.constants.dashboard_page;
18+
// window.location.pathname = window.constants.dashboard_page;
19+
window.location.pathname = "/user/dashboard";
1920
} else {
2021
update_error_message("Login failed: " + response.message);
2122
}
@@ -31,7 +32,8 @@ async function log_user_in_professional() {
3132

3233
if (response.ok) {
3334
console.log("Login successful:", response);
34-
window.location.href = window.constants.dashboard_page;
35+
// window.location.pathname = window.constants.dashboard_page;
36+
window.location.pathname = "/dashboard/pro/suivi";
3537
} else {
3638
update_error_message("Login failed: " + response.message);
3739
}

html/assets/js/modules/manage_server.mjs

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,9 @@ async function register(username, email, password) {
1313
console.log("username:", username);
1414
console.log("email:", email);
1515
console.log("password:", password);
16-
let response = await window.querier.post("/register", { username, email, password });
16+
// let response = await window.querier.post("/register", { username, email, password });
17+
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.");
18+
let response = { "ok": true, "resp": { "id": 1, "token": "Not a token", "username": email.split("@")[0] } };
1719
console.log("response:", response);
1820
console.log(`(register, before response) JSON response: ${JSON.stringify(response)}`);
1921
if (response.ok) {
@@ -46,7 +48,9 @@ async function login(email, password) {
4648
console.log("login called");
4749
console.log("email:", email);
4850
console.log("password:", password);
49-
let response = await window.querier.post(`${window.constants.user_login_endpoint}`, { email, password });
51+
// let response = await window.querier.post(`${window.constants.user_login_endpoint}`, { email, password });
52+
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.");
53+
let response = { "ok": true, "resp": { "id": 1, "token": "Not a token", "username": email.split("@")[0] } };
5054
console.log("response:", response);
5155
console.log(`JSON response: ${JSON.stringify(response)}`);
5256
console.log("login finished");
Lines changed: 170 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,170 @@
1+
<!DOCTYPE html>
2+
<html data-bs-theme="light" lang="en">
3+
4+
<head>
5+
<meta charset="utf-8">
6+
<meta name="viewport" content="width=device-width, initial-scale=1.0, shrink-to-fit=no">
7+
<title>Asperboard</title>
8+
<meta name="theme-color" content="#86c8ed">
9+
<link rel="canonical" href="https://asperboard.pingpal.news/dashboard/pro/creation/">
10+
<meta property="og:url" content="https://asperboard.pingpal.news/dashboard/pro/creation/">
11+
<meta name="twitter:title" content="Asperboard">
12+
<meta name="author" content="Henry LETELLIER, Flavien Maillard">
13+
<meta name="robots" content="index, follow, max-image-preview:standard">
14+
<meta name="copyright" content="© Henry Letellier">
15+
<meta name="publisher" content="Henry Letellier">
16+
<meta property="og:type" content="website">
17+
<meta name="twitter:card" content="summary_large_image">
18+
<meta name="twitter:description" content="This is the mockup of the project Asperboard. So far it contains the connection page, a mockup for the asperboard, discuss, follow up, logout. This mockup is front-end only, any data is only stored locally.">
19+
<meta name="description" content="This is the mockup of the project Asperboard. So far it contains the connection page, a mockup for the asperboard, discuss, follow up, logout. This mockup is front-end only, any data is only stored locally.">
20+
<meta property="og:image" content="https://asperboard.pingpal.news/assets/img/DashBoard logo.png">
21+
<script>
22+
(function() {
23+
24+
// JavaScript snippet handling Dark/Light mode switching
25+
26+
const getStoredTheme = () => localStorage.getItem('theme');
27+
const setStoredTheme = theme => localStorage.setItem('theme', theme);
28+
const forcedTheme = document.documentElement.getAttribute('data-bss-forced-theme');
29+
30+
const getPreferredTheme = () => {
31+
32+
if (forcedTheme) return forcedTheme;
33+
34+
const storedTheme = getStoredTheme();
35+
if (storedTheme) {
36+
return storedTheme;
37+
}
38+
39+
const pageTheme = document.documentElement.getAttribute('data-bs-theme');
40+
41+
if (pageTheme) {
42+
return pageTheme;
43+
}
44+
45+
return window.matchMedia('(prefers-color-scheme: dark)').matches ? 'dark' : 'light';
46+
}
47+
48+
const setTheme = theme => {
49+
if (theme === 'auto' && window.matchMedia('(prefers-color-scheme: dark)').matches) {
50+
document.documentElement.setAttribute('data-bs-theme', 'dark');
51+
} else {
52+
document.documentElement.setAttribute('data-bs-theme', theme);
53+
}
54+
}
55+
56+
setTheme(getPreferredTheme());
57+
58+
const showActiveTheme = (theme, focus = false) => {
59+
const themeSwitchers = [].slice.call(document.querySelectorAll('.theme-switcher'));
60+
61+
if (!themeSwitchers.length) return;
62+
63+
document.querySelectorAll('[data-bs-theme-value]').forEach(element => {
64+
element.classList.remove('active');
65+
element.setAttribute('aria-pressed', 'false');
66+
});
67+
68+
for (const themeSwitcher of themeSwitchers) {
69+
70+
const btnToActivate = themeSwitcher.querySelector('[data-bs-theme-value="' + theme + '"]');
71+
72+
if (btnToActivate) {
73+
btnToActivate.classList.add('active');
74+
btnToActivate.setAttribute('aria-pressed', 'true');
75+
}
76+
}
77+
}
78+
79+
window.matchMedia('(prefers-color-scheme: dark)').addEventListener('change', () => {
80+
const storedTheme = getStoredTheme();
81+
if (storedTheme !== 'light' && storedTheme !== 'dark') {
82+
setTheme(getPreferredTheme());
83+
}
84+
});
85+
86+
window.addEventListener('DOMContentLoaded', () => {
87+
showActiveTheme(getPreferredTheme());
88+
89+
document.querySelectorAll('[data-bs-theme-value]')
90+
.forEach(toggle => {
91+
toggle.addEventListener('click', (e) => {
92+
e.preventDefault();
93+
const theme = toggle.getAttribute('data-bs-theme-value');
94+
setStoredTheme(theme);
95+
setTheme(theme);
96+
showActiveTheme(theme);
97+
})
98+
})
99+
});
100+
})();
101+
</script>
102+
<link rel="icon" type="image/png" sizes="912x1036" href="../../../assets/img/DashBoard%20logo.png">
103+
<link rel="icon" type="image/png" sizes="912x1036" href="../../../assets/img/DashBoard%20logo.png" media="(prefers-color-scheme: dark)">
104+
<link rel="icon" type="image/png" sizes="912x1036" href="../../../assets/img/DashBoard%20logo.png">
105+
<link rel="icon" type="image/png" sizes="912x1036" href="../../../assets/img/DashBoard%20logo.png" media="(prefers-color-scheme: dark)">
106+
<link rel="icon" type="image/png" sizes="912x1036" href="../../../assets/img/DashBoard%20logo.png">
107+
<link rel="icon" type="image/png" sizes="912x1036" href="../../../assets/img/DashBoard%20logo.png">
108+
<link rel="icon" type="image/png" sizes="912x1036" href="../../../assets/img/DashBoard%20logo.png">
109+
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/css/bootstrap.min.css">
110+
<link rel="manifest" href="../../../manifest.json" crossorigin="use-credentials">
111+
<link rel="stylesheet" href="../../../assets/css/OpenDyslexic.css">
112+
<link rel="stylesheet" href="../../../assets/css/OpenDyslexic%203.css">
113+
<link rel="stylesheet" href="../../../assets/css/OpenDyslexic3.css">
114+
<link rel="stylesheet" href="../../../assets/css/OpenDyslexicAlta.css">
115+
<link rel="stylesheet" href="../../../assets/css/OpenDyslexicMono.css">
116+
<link rel="stylesheet" href="https://use.fontawesome.com/releases/v5.12.0/css/all.css">
117+
<link rel="stylesheet" href="../../../assets/css/banner.css">
118+
<link rel="stylesheet" href="../../../assets/css/dashboard.css">
119+
<link rel="stylesheet" href="../../../assets/css/detabelifyer.css">
120+
<link rel="stylesheet" href="../../../assets/css/dropdown.css">
121+
<link rel="stylesheet" href="../../../assets/css/github.css">
122+
<link rel="stylesheet" href="../../../assets/css/Login-Form-Basic-icons.css">
123+
<link rel="stylesheet" href="../../../assets/css/widget.css">
124+
</head>
125+
126+
<body>
127+
<section class="header">
128+
<aside class="widget_button"><img src="../../../assets/img/DashBoard%20logo.png" width="45" height="45"></aside><i class="far fa-trash-alt" style="display:none;"></i>
129+
<aside>
130+
<p class="center_text">Welcome&nbsp;<span id="username_field" class="usrname">Text</span></p>
131+
</aside>
132+
<div class="theme-switcher dropdown" id="themeToggler"><button class="btn btn-link dropdown-toggle" aria-expanded="false" data-bs-toggle="dropdown" type="button" style="color: var(--bs-body-color);"><svg xmlns="http://www.w3.org/2000/svg" width="1em" height="1em" fill="currentColor" viewBox="0 0 16 16" class="bi bi-sun-fill mb-1">
133+
<path d="M8 12a4 4 0 1 0 0-8 4 4 0 0 0 0 8M8 0a.5.5 0 0 1 .5.5v2a.5.5 0 0 1-1 0v-2A.5.5 0 0 1 8 0m0 13a.5.5 0 0 1 .5.5v2a.5.5 0 0 1-1 0v-2A.5.5 0 0 1 8 13m8-5a.5.5 0 0 1-.5.5h-2a.5.5 0 0 1 0-1h2a.5.5 0 0 1 .5.5M3 8a.5.5 0 0 1-.5.5h-2a.5.5 0 0 1 0-1h2A.5.5 0 0 1 3 8m10.657-5.657a.5.5 0 0 1 0 .707l-1.414 1.415a.5.5 0 1 1-.707-.708l1.414-1.414a.5.5 0 0 1 .707 0m-9.193 9.193a.5.5 0 0 1 0 .707L3.05 13.657a.5.5 0 0 1-.707-.707l1.414-1.414a.5.5 0 0 1 .707 0zm9.193 2.121a.5.5 0 0 1-.707 0l-1.414-1.414a.5.5 0 0 1 .707-.707l1.414 1.414a.5.5 0 0 1 0 .707M4.464 4.465a.5.5 0 0 1-.707 0L2.343 3.05a.5.5 0 1 1 .707-.707l1.414 1.414a.5.5 0 0 1 0 .708z"></path>
134+
</svg></button>
135+
<div class="dropdown-menu"><a class="dropdown-item d-flex align-items-center" href="#" data-bs-theme-value="light"><svg xmlns="http://www.w3.org/2000/svg" width="1em" height="1em" fill="currentColor" viewBox="0 0 16 16" class="bi bi-sun-fill opacity-50 me-2">
136+
<path d="M8 12a4 4 0 1 0 0-8 4 4 0 0 0 0 8M8 0a.5.5 0 0 1 .5.5v2a.5.5 0 0 1-1 0v-2A.5.5 0 0 1 8 0m0 13a.5.5 0 0 1 .5.5v2a.5.5 0 0 1-1 0v-2A.5.5 0 0 1 8 13m8-5a.5.5 0 0 1-.5.5h-2a.5.5 0 0 1 0-1h2a.5.5 0 0 1 .5.5M3 8a.5.5 0 0 1-.5.5h-2a.5.5 0 0 1 0-1h2A.5.5 0 0 1 3 8m10.657-5.657a.5.5 0 0 1 0 .707l-1.414 1.415a.5.5 0 1 1-.707-.708l1.414-1.414a.5.5 0 0 1 .707 0m-9.193 9.193a.5.5 0 0 1 0 .707L3.05 13.657a.5.5 0 0 1-.707-.707l1.414-1.414a.5.5 0 0 1 .707 0zm9.193 2.121a.5.5 0 0 1-.707 0l-1.414-1.414a.5.5 0 0 1 .707-.707l1.414 1.414a.5.5 0 0 1 0 .707M4.464 4.465a.5.5 0 0 1-.707 0L2.343 3.05a.5.5 0 1 1 .707-.707l1.414 1.414a.5.5 0 0 1 0 .708z"></path>
137+
</svg>Light</a><a class="dropdown-item d-flex align-items-center" href="#" data-bs-theme-value="dark"><svg xmlns="http://www.w3.org/2000/svg" width="1em" height="1em" fill="currentColor" viewBox="0 0 16 16" class="bi bi-moon-stars-fill opacity-50 me-2">
138+
<path d="M6 .278a.768.768 0 0 1 .08.858 7.208 7.208 0 0 0-.878 3.46c0 4.021 3.278 7.277 7.318 7.277.527 0 1.04-.055 1.533-.16a.787.787 0 0 1 .81.316.733.733 0 0 1-.031.893A8.349 8.349 0 0 1 8.344 16C3.734 16 0 12.286 0 7.71 0 4.266 2.114 1.312 5.124.06A.752.752 0 0 1 6 .278"></path>
139+
<path d="M10.794 3.148a.217.217 0 0 1 .412 0l.387 1.162c.173.518.579.924 1.097 1.097l1.162.387a.217.217 0 0 1 0 .412l-1.162.387a1.734 1.734 0 0 0-1.097 1.097l-.387 1.162a.217.217 0 0 1-.412 0l-.387-1.162A1.734 1.734 0 0 0 9.31 6.593l-1.162-.387a.217.217 0 0 1 0-.412l1.162-.387a1.734 1.734 0 0 0 1.097-1.097l.387-1.162zM13.863.099a.145.145 0 0 1 .274 0l.258.774c.115.346.386.617.732.732l.774.258a.145.145 0 0 1 0 .274l-.774.258a1.156 1.156 0 0 0-.732.732l-.258.774a.145.145 0 0 1-.274 0l-.258-.774a1.156 1.156 0 0 0-.732-.732l-.774-.258a.145.145 0 0 1 0-.274l.774-.258c.346-.115.617-.386.732-.732L13.863.1z"></path>
140+
</svg>Dark</a><a class="dropdown-item d-flex align-items-center" href="#" data-bs-theme-value="auto"><svg xmlns="http://www.w3.org/2000/svg" width="1em" height="1em" fill="currentColor" viewBox="0 0 16 16" class="bi bi-circle-half opacity-50 me-2">
141+
<path d="M8 15A7 7 0 1 0 8 1zm0 1A8 8 0 1 1 8 0a8 8 0 0 1 0 16"></path>
142+
</svg>Auto</a></div>
143+
</div><select id="fontSelector" onchange="updateFont(this);"></select>
144+
<aside><button class="button_desing" type="button" onclick="logout();">Logout</button></aside>
145+
</section>
146+
<section id="cookie_banner"></section>
147+
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/js/bootstrap.bundle.min.js"></script>
148+
<script src="../../../assets/js/modules/cookie_manager.mjs" type="module"></script>
149+
<script src="../../../assets/js/modules/indexeddb_manager.mjs" type="module"></script>
150+
<script src="../../../assets/js/modules/local_storage_manager.mjs" type="module"></script>
151+
<script src="../../../assets/js/font-selector.js"></script>
152+
<script src="../../../assets/js/modules/manage_server.mjs" type="module"></script>
153+
<script src="../../../assets/js/modules/querier.mjs" type="module"></script>
154+
<script src="../../../assets/js/sleep.js"></script>
155+
<script src="../../../assets/js/modules/widget_manager.mjs" type="module"></script>
156+
<script src="../../../assets/js/spacer.js"></script>
157+
<script src="../../../assets/js/clearer.js"></script>
158+
<script src="../../../assets/js/modules/constants.mjs" type="module"></script>
159+
<script src="../../../assets/js/theme_toggler.js"></script>
160+
<script src="../../../assets/js/banners/cookies.js"></script>
161+
<script src="../../../assets/js/dashboard/get_weather.js"></script>
162+
<script src="../../../assets/js/dashboard/load_widgets.js"></script>
163+
<script src="../../../assets/js/dashboard/logout.js"></script>
164+
<script src="../../../assets/js/dashboard/my_onload.js"></script>
165+
<script src="../../../assets/js/dashboard/refresh.js"></script>
166+
<script src="../../../assets/js/dashboard/update_username.js"></script>
167+
<script src="../../../assets/js/dashboard/widget_dropdown.js"></script>
168+
</body>
169+
170+
</html>

0 commit comments

Comments
 (0)