summaryrefslogtreecommitdiff
path: root/Static/Js
diff options
context:
space:
mode:
authorDebulois <quentin@debulois.fr>2022-04-06 21:37:53 +0200
committerDebulois <quentin@debulois.fr>2022-04-06 21:37:53 +0200
commit6ee8ad125692175ddfb705080a4bc54b76c5a4f6 (patch)
treed8321eab73354eeea2b2ca7ea5ee16175a71ff43 /Static/Js
parent5582d242d03692a7e1b2c631e1b4ff3f52e8b72c (diff)
Finalisation, affinage du css et ajout d'un système de vérification pour les mdp pour qu'ils soient forts.
Diffstat (limited to 'Static/Js')
-rw-r--r--Static/Js/index.js12
-rw-r--r--Static/Js/main.js26
-rw-r--r--Static/Js/message.js15
-rw-r--r--Static/Js/register.js43
-rw-r--r--Static/Js/userinfo.js37
5 files changed, 100 insertions, 33 deletions
diff --git a/Static/Js/index.js b/Static/Js/index.js
index a9889b2..31ee34f 100644
--- a/Static/Js/index.js
+++ b/Static/Js/index.js
@@ -1,9 +1,13 @@
+// ############################################################################
+// # #
+// # Description: JS uniquement utile dans l'index #
+// # #
+// ############################################################################
+
// ****************************************************************************
-// INDEX
+// SLIDESHOW
// ****************************************************************************
-
-// Slideshow
// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Functions/Default_parameters
function slideshow_start(slideNumber = 1) {
let images = [
@@ -15,8 +19,8 @@ function slideshow_start(slideNumber = 1) {
setInterval(() => {
// Changement de l'image de fond de de la div
document.getElementById("secSlides").style.backgroundImage = `url("${images[slideNumber]}")`;
- // Untoggle les précedents
// 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");
document.getElementById(`slideDot_${slideNumber !== 0 ? slideNumber - 1 : images.length - 1}`).classList.toggle("slideDotSelected");
// Toggle le nouveau texte & selecteur
diff --git a/Static/Js/main.js b/Static/Js/main.js
index 7f3935c..3a6c3e5 100644
--- a/Static/Js/main.js
+++ b/Static/Js/main.js
@@ -1,17 +1,25 @@
-// ****************************************************************************
-// Main
-// ****************************************************************************
-
+
+// ############################################################################
+// # #
+// # Description: JS utile un peu de partout #
+// # #
+// ############################################################################
// Site web utilisés pour JS:
// https://www.w3schools.com/js/default.asp
// https://stackoverflow.com/
-// Changement de langue
+
+// ****************************************************************************
+// CHANGEMENT DE LANGUE
+// ****************************************************************************
document.getElementById("navSelLang").addEventListener("change", () => {
document.getElementById("navFormLang").submit();
});
-// TODO: A commenter
+
+// ****************************************************************************
+// TOGGLE UNE CLASSE SUR UN ELEMENT PARMIS PLUSIEURS IDENTIQUES
+// ****************************************************************************
function show(parentId, element, id, className) {
let elements = document.getElementById(parentId).getElementsByTagName(element);
elements[id].classList.add(className);
@@ -22,8 +30,12 @@ function show(parentId, element, id, className) {
}
}
+
+// ****************************************************************************
+// AFFICHER LA BAR DE NAVIGATION
+// ****************************************************************************
function showNavButtons() {
document.getElementsByTagName("nav")[0].classList.toggle("showNav")
// first-child à chaque fois
document.getElementsByTagName("header")[0].getElementsByTagName("a")[0].getElementsByTagName("i")[0].classList.toggle("navLinkClicked")
-} \ No newline at end of file
+}
diff --git a/Static/Js/message.js b/Static/Js/message.js
index 97f39ef..06ba511 100644
--- a/Static/Js/message.js
+++ b/Static/Js/message.js
@@ -1,14 +1,21 @@
+// ############################################################################
+// # #
+// # Description: JS utile sur la page des messages #
+// # #
+// ############################################################################
+
+
// ****************************************************************************
-// MESSAGES
+// REDIRECTION
// ****************************************************************************
-
-// Redirection
function redirect(page) {
window.location.href = `/${page}.php`;
}
-// Timer pour message
+// ****************************************************************************
+// DECLENCHEMENT DU TIMER POUR UNE REDIRECTION
+// ****************************************************************************
function start_timer(page) {
let seconds = 2;
let text = document.getElementById("redirect").innerHTML;
diff --git a/Static/Js/register.js b/Static/Js/register.js
new file mode 100644
index 0000000..c751b77
--- /dev/null
+++ b/Static/Js/register.js
@@ -0,0 +1,43 @@
+
+// ############################################################################
+// # #
+// # Description: JS de la partie inscription #
+// # #
+// ############################################################################
+
+// 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) {
+ // Si la regex est bonne on selectionne la class css pour l'afficher
+ if (condition) {
+ document.getElementById(element).classList.remove("invalid");
+ document.getElementById(element).classList.add("valid");
+ return true;
+ } else {
+ document.getElementById(element).classList.remove("valid");
+ document.getElementById(element).classList.add("invalid");
+ return false;
+ }
+}
+
+function check_pass() {
+ // On récupère les éléments dans la page et on test nos regex sur le mdp
+ 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");
+
+ // 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;
+ }
+} \ No newline at end of file
diff --git a/Static/Js/userinfo.js b/Static/Js/userinfo.js
index 29c92d0..8f1e239 100644
--- a/Static/Js/userinfo.js
+++ b/Static/Js/userinfo.js
@@ -1,7 +1,9 @@
-// ****************************************************************************
-// USERINFO
-// ****************************************************************************
+// ############################################################################
+// # #
+// # 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
@@ -13,21 +15,17 @@
// On passe par du JSON pour passer la liste des emplois du pro
// ****************************************************************************
-// GLOBAL
-// ****************************************************************************
-var payload = [];
-
-// ****************************************************************************
-// FONCTIONS PRINCIPALES
+// GESTION AJOUT/SUPPRESSION D'UN EMPLOI ET PASSAGE A L'INPUT
+// DES VALEURS SELECTIONNEES
// ****************************************************************************
+var payload = [];
-// TODO: Revoir les commentaires
// Initiation
function init() {
// Récupération des emplois déja présent
let jobs = document.getElementsByClassName("jobsListElem");
- // Pour chaque emploi disponible
+ // Pour chaque emploi disponible récupération de sa valeur
for (i = 0; i < jobs.length; i ++) {
if (jobs[i].getAttribute("data-value") !== "") {
payload.push(jobs[i].getAttribute("data-value"));
@@ -42,28 +40,29 @@ function init() {
// Ajout d'un emploi
function add() {
- // Récupération du nom du choix dans le "select" des emplois
+ // Récupération du nom et de la valeur du choix dans le "select" des emplois
let jobName = document.getElementById("jobsSel").options[jobsSel.selectedIndex].text;
let jobValue = document.getElementById("jobsSel").options[jobsSel.selectedIndex].value;
- // Si l'emploi n'est pas deja dans "payload"
- // et si il fait bien partie du dictionnaire de tous les emplois
+ // Si l'emploi n'est pas deja dans "payload" et que sa valeur est non nul (choix par défaut)
if (!payload.includes(jobValue) && jobValue !== "") {
// Ajout à payload
payload.push(jobValue);
- // Création, configuration et ajout du nouveau "li"
+ // Création, configuration et ajout d'une nouvelle div pour l'emploi choisi
+ // Création du "i"
let i = document.createElement("i");
i.className = "fas fa-ban";
-
+ // Création, configuration de la div et ajout du "i"
let div = document.createElement("div");
div.className = "jobsListElem";
div.dataset.value = jobValue;
div.onclick = (ptrEvent) => {remove(ptrEvent)};
div.appendChild(document.createTextNode(jobName));
div.appendChild(i);
-
+ // Enfin, ajout au document
document.getElementById("jobsListGrid").appendChild(div);
+
// Transformation de la liste des emplois choisis en JSON
// et inscription de ce dernier dans la "value" de l'input "jobs".
document.getElementById("jobs").value = JSON.stringify(payload);
@@ -73,9 +72,11 @@ function add() {
function remove(ptrEvent) {
// Suppression de l'emploi dans "payload"
payload.splice(payload.indexOf(ptrEvent.srcElement.getAttribute("data-value")), 1);
+
// Suppression du "div" de l'emploi
document.getElementById("jobsListGrid").removeChild(ptrEvent.srcElement);
+
// Transformation de la liste des emplois choisis en JSON
// et inscription de ce dernier dans la "value" de l'input "jobs".
document.getElementById("jobs").value = JSON.stringify(payload);
-} \ No newline at end of file
+}