summaryrefslogtreecommitdiff
path: root/Static/Js/userinfo.js
diff options
context:
space:
mode:
authorDebulois <quentin@debulois.fr>2022-04-04 22:58:43 +0200
committerDebulois <quentin@debulois.fr>2022-04-04 22:58:43 +0200
commit5582d242d03692a7e1b2c631e1b4ff3f52e8b72c (patch)
treec1e0242053a46d7b4145111a78a3e86e3cfd2f0d /Static/Js/userinfo.js
parentb637d625216e50602d0bde8a544c281ca00af5fa (diff)
Révision complète du css et modification du js principalement
Diffstat (limited to 'Static/Js/userinfo.js')
-rw-r--r--Static/Js/userinfo.js81
1 files changed, 81 insertions, 0 deletions
diff --git a/Static/Js/userinfo.js b/Static/Js/userinfo.js
new file mode 100644
index 0000000..29c92d0
--- /dev/null
+++ b/Static/Js/userinfo.js
@@ -0,0 +1,81 @@
+
+// ****************************************************************************
+// USERINFO
+// ****************************************************************************
+// 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
+// https://developer.mozilla.org/en-US/docs/Web/API/Document/createTextNode
+// https://www.encodedna.com/javascript/how-to-get-all-li-elements-in-ul-using-javascript.htm
+// https://www.geeksforgeeks.org/javascript-convert-an-array-to-json/
+// https://stackoverflow.com/questions/17785592/difference-between-json-stringify-and-json-parse
+// 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
+
+// ****************************************************************************
+// GLOBAL
+// ****************************************************************************
+var payload = [];
+
+// ****************************************************************************
+// FONCTIONS PRINCIPALES
+// ****************************************************************************
+
+// 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
+ for (i = 0; i < jobs.length; i ++) {
+ if (jobs[i].getAttribute("data-value") !== "") {
+ payload.push(jobs[i].getAttribute("data-value"));
+ jobs[i].onclick = (ptrEvent) => {remove(ptrEvent)};
+ }
+ }
+
+ // 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);
+}
+
+// Ajout d'un emploi
+function add() {
+ // Récupération du nom 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
+ if (!payload.includes(jobValue) && jobValue !== "") {
+ // Ajout à payload
+ payload.push(jobValue);
+
+ // Création, configuration et ajout du nouveau "li"
+ let i = document.createElement("i");
+ i.className = "fas fa-ban";
+
+ 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);
+
+ 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);
+ }
+}
+
+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