summaryrefslogtreecommitdiff
path: root/Static/Js
diff options
context:
space:
mode:
authorDebulois <quentin@debulois.fr>2022-04-10 21:25:00 +0200
committerDebulois <quentin@debulois.fr>2022-04-10 21:25:00 +0200
commit2923e6fca634231533cca11e43a9091344ff4ba5 (patch)
tree7181e1b0e26ddb072530adec7d55f77e9e389783 /Static/Js
parent9939f74c0b274ee916f742a45a32d3c843e0960b (diff)
Ajout d'un système de notification pour alerter les pro et finition
Diffstat (limited to 'Static/Js')
-rw-r--r--Static/Js/index.js6
-rw-r--r--Static/Js/main.js12
-rw-r--r--Static/Js/message.js11
-rw-r--r--Static/Js/notification.js18
-rw-r--r--Static/Js/register.js64
-rw-r--r--Static/Js/userinfo.js2
6 files changed, 83 insertions, 30 deletions
diff --git a/Static/Js/index.js b/Static/Js/index.js
index 31ee34f..0f15b3d 100644
--- a/Static/Js/index.js
+++ b/Static/Js/index.js
@@ -5,11 +5,13 @@
// # #
// ############################################################################
+
// ****************************************************************************
// SLIDESHOW
// ****************************************************************************
// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Functions/Default_parameters
-function slideshow_start(slideNumber = 1) {
+function slideshow_start() {
+ let slideNumber = 1;
let images = [
"/Media/Images/slide0.jpg",
"/Media/Images/slide1.jpg",
@@ -18,7 +20,7 @@ function slideshow_start(slideNumber = 1) {
setInterval(() => {
// Changement de l'image de fond de de la div
- document.getElementById("secSlides").style.backgroundImage = `url("${images[slideNumber]}")`;
+ document.getElementById("secSlides").style.backgroundImage = "url(" + images[slideNumber] + ")";
// Utilisation de ternary, utilisation: condition ? Sivrai : Sifaux
// Untoggle les précedents
document.getElementById(`slide_${slideNumber !== 0 ? slideNumber - 1 : images.length - 1}`).classList.toggle("show_block");
diff --git a/Static/Js/main.js b/Static/Js/main.js
index 3a6c3e5..84f7151 100644
--- a/Static/Js/main.js
+++ b/Static/Js/main.js
@@ -12,6 +12,7 @@
// ****************************************************************************
// CHANGEMENT DE LANGUE
// ****************************************************************************
+// https://developer.mozilla.org/en-US/docs/Web/API/EventTarget/addEventListener
document.getElementById("navSelLang").addEventListener("change", () => {
document.getElementById("navFormLang").submit();
});
@@ -21,8 +22,11 @@ document.getElementById("navSelLang").addEventListener("change", () => {
// TOGGLE UNE CLASSE SUR UN ELEMENT PARMIS PLUSIEURS IDENTIQUES
// ****************************************************************************
function show(parentId, element, id, className) {
+ // Récupération des tags dans l'élément parent (souvent table dans main)
let elements = document.getElementById(parentId).getElementsByTagName(element);
+ // Rajout de la classe pour l'élément avec l'id donné
elements[id].classList.add(className);
+ // Suppression de cette même classe pour les autres tags
for (i = 0; i < elements.length; i++) {
if (elements[i].id !== id) {
elements[i].classList.remove(className);
@@ -39,3 +43,11 @@ function showNavButtons() {
// first-child à chaque fois
document.getElementsByTagName("header")[0].getElementsByTagName("a")[0].getElementsByTagName("i")[0].classList.toggle("navLinkClicked")
}
+
+
+// ****************************************************************************
+// REDIRECTION
+// ****************************************************************************
+function redirect(page) {
+ window.location.href = `/${page}.php`;
+}
diff --git a/Static/Js/message.js b/Static/Js/message.js
index 06ba511..8043a67 100644
--- a/Static/Js/message.js
+++ b/Static/Js/message.js
@@ -7,13 +7,6 @@
// ****************************************************************************
-// REDIRECTION
-// ****************************************************************************
-function redirect(page) {
- window.location.href = `/${page}.php`;
-}
-
-// ****************************************************************************
// DECLENCHEMENT DU TIMER POUR UNE REDIRECTION
// ****************************************************************************
function start_timer(page) {
@@ -21,10 +14,10 @@ function start_timer(page) {
let text = document.getElementById("redirect").innerHTML;
setInterval(() => {
if (seconds > 0) {
- document.getElementById("redirect").innerHTML = `${text} ${seconds} .`;
+ document.getElementById("redirect").innerHTML = text + seconds + " .";
seconds --;
} else {
- document.getElementById("redirect").innerHTML = `${text} ${seconds} .`;
+ document.getElementById("redirect").innerHTML = text + seconds + " .";
redirect(page);
}
},
diff --git a/Static/Js/notification.js b/Static/Js/notification.js
new file mode 100644
index 0000000..c15760a
--- /dev/null
+++ b/Static/Js/notification.js
@@ -0,0 +1,18 @@
+
+// ############################################################################
+// # #
+// # Description: JS utile sur la page des messages #
+// # #
+// ############################################################################
+
+
+// Ajout de la class show_notif pour faire disparaitre ou apparaitre la bulle de notification
+function toggle_notif() {
+ document.getElementById("notif").classList.toggle("show_notif");
+}
+
+// Timeout pour ne pas non plus agressé le client
+setTimeout(() => {
+ toggle_notif()
+ }
+, 1500)
diff --git a/Static/Js/register.js b/Static/Js/register.js
index c751b77..b22f4de 100644
--- a/Static/Js/register.js
+++ b/Static/Js/register.js
@@ -5,12 +5,38 @@
// # #
// ############################################################################
-// Regex pour vérifier la validité du mdp
-const numb = new RegExp(/[0-9]/)
-const upper = new RegExp(/[A-Z]/)
-const special = new RegExp(/[`!@#$%^&*()_+\-=\[\]{};':"\\|,.<>\/?~µ°€£]/)
-function is_valid(condition, element) {
+// Num - N'importe quel chiffre entre 0 et 9 [0-9]
+// Upper - N'importe quel lettre majuscule entre A et Z [A-Z]
+// Spe - N'importe quel symbole présent entre les deux brackets [`!@#$%^&*()_+\-=\[\]{};':"\\|,.<>\/?~µ°€£]
+// Email - ^ -> Debut de la ligne obligatoire, doit contenir entre premiers brackets "[a-z]" "[0-9]" ou _, -, .
+// Ensuite il doit y avoir un @ et une suite de charcactère sans charactère speciaux "+@[a-zA-Z0-9-]"
+// et pour finir l'extension "+.[a-z]", "+$" pour la fin de la ligne.
+const regNum = new RegExp(/[0-9]/);
+const regUpper = new RegExp(/[A-Z]/);
+const regSpecial = new RegExp(/[`!@#$%^&*()_+\-=\[\]{};':"\\|,.<>\/?~µ°€£]/);
+const regEmail = new RegExp(/^[a-z0-9._-]+@[a-z0-9-]+.[a-z]+$/)
+
+// Initialisation des variables
+let validEmail;
+let validNumb;
+let validUpper;
+let validSpecial;
+let validLength;
+
+function valid_all() {
+ let submitButton = document.getElementById("submit");
+ // Si tout est validé on active le button sumbit
+ if (validLength && validUpper && validNumb && validSpecial && validEmail) {
+ submitButton.classList.remove("deactivate");
+ submitButton.disabled = false;
+ } else {
+ submitButton.classList.add("deactivate");
+ submitButton.disabled = true;
+ }
+}
+
+function valid_reg(condition, element) {
// Si la regex est bonne on selectionne la class css pour l'afficher
if (condition) {
document.getElementById(element).classList.remove("invalid");
@@ -23,21 +49,21 @@ function is_valid(condition, element) {
}
}
+function check_email() {
+ // On récupère l'email par id dans la page et on test notre regex
+ let email = document.getElementById("email").value;
+ validEmail = valid_reg(regEmail.test(email), "mailNotice");
+
+ valid_all();
+}
+
function check_pass() {
- // On récupère les éléments dans la page et on test nos regex sur le mdp
+ // On récupère la valeur par id du mdp dans la page et on test nos regex
let pass = document.getElementById("password").value;
- let submitButton = document.getElementById("submit");
- let validNumb = is_valid(numb.test(pass), "passNumb");
- let validUpper = is_valid(upper.test(pass), "passUpper");
- let validSpecial = is_valid(special.test(pass), "passSpecial");
- let validLength = is_valid((pass.length >= 8), "passLength");
+ validNumb = valid_reg(regNum.test(pass), "passNumb");
+ validUpper = valid_reg(regUpper.test(pass), "passUpper");
+ validSpecial = valid_reg(regSpecial.test(pass), "passSpecial");
+ validLength = valid_reg((pass.length >= 8), "passLength");
- // Si tout est validé on active le button sumbit
- if (validLength && validUpper && validNumb && validSpecial) {
- submitButton.classList.remove("deactivate");
- submitButton.disabled = false;
- } else {
- submitButton.classList.add("deactivate");
- submitButton.disabled = true;
- }
+ valid_all();
} \ No newline at end of file
diff --git a/Static/Js/userinfo.js b/Static/Js/userinfo.js
index 8f1e239..460c91b 100644
--- a/Static/Js/userinfo.js
+++ b/Static/Js/userinfo.js
@@ -4,6 +4,7 @@
// # Description: JS utile sur la page user infos #
// # #
// ############################################################################
+
// Mes sources pour créer cette partie:
// https://stackoverflow.com/questions/1085801/get-selected-value-in-dropdown-list-using-javascript
// https://stackoverflow.com/questions/47951287/dynamically-add-li-to-ul-javascript
@@ -14,6 +15,7 @@
// https://www.w3docs.com/snippets/javascript/how-to-remove-an-element-from-an-array-in-javascript.html
// On passe par du JSON pour passer la liste des emplois du pro
+
// ****************************************************************************
// GESTION AJOUT/SUPPRESSION D'UN EMPLOI ET PASSAGE A L'INPUT
// DES VALEURS SELECTIONNEES