<div class="settings"> <h1>Paramètres du compte</h1> </br> <div class="homepanel"> <div class="row w-100"> <div class="hbox col"> <p class="title"><i class="fa fa-id-card"></i> Mes informations</p> <div class="settings-content"> <p>Photo de profil :</p> <div id="*accountpicture"></div> <input id='user_files' accept="image/png, image/jpeg" name="apic" type="file" id="logo"/> <p style="color: rgb(255, 76, 76);" id="user_ainfo"></p> <p class="fullnameinfo">Nom complet <i>(max 18 caractères)</i> :</p> <p>Actuel : <span id="*accountname"></span></p> <input id="user_fullname" class="inp" type="text"> <div style="color: rgb(255, 76, 76);" id="user_finfo"></div> </div> <p class="title"><i class="fa fa-key"></i> Mot de passe :</p> <div class="settings-content"> <p>Mot de passe actuel : </p> <input class="inp" type="password" id="user_lastpassword"> <p>Nouveau mot de passe : </p> <input class="inp" type="password" id="user_newpassword"> <div style="color: rgb(255, 76, 76);" id="user_pinfo"></div> </div> <button id="user_actBtn" class="ubutton">Sauvegarder</button> </div> </div> </div> <script> if(typeof user_sub == 'undefined') { const user_sub = document.getElementById("user_actBtn"); const user_oldp = document.getElementById("user_lastpassword"); const user_newp = document.getElementById("user_newpassword"); const user_fullname = document.getElementById("user_fullname"); const user_pinfo = document.getElementById("user_pinfo"); const user_finfo = document.getElementById("user_finfo"); const user_ainfo = document.getElementById("user_ainfo"); const user_files = document.getElementById("user_files") const fID = document.getElementById("*accountname"); const aID = document.getElementById("*accountpicture"); const dID = document.getElementById("*dashaccountname") user_sub.addEventListener("click", () => { user_finfo.innerHTML = ""; user_pinfo.innerHTML = ""; user_ainfo.innerHTML = ""; if(user_files.files[0] != null) { const image_acc = new FormData(); image_acc.append("apic", user_files.files[0]) fetch('/upload', { method: 'POST', mode:"cors", cache:"no-cache", credentials:"same-origin", referrerPolicy:"no-referrer", redirect: 'follow', body: image_acc }) .then(response => response.json()) .then(response => resp(response)) function resp(response) { if(response.result == "failed") { content.innerHTML = ' <h1 style="color:red;"><i style="color:yellow; font-size: 2vw;" class="fa fa-warning"></i> Erreur de chargement des données - Erreur : ' + response.content + '</h1>' console.log("FAILED") } else if(response.result == "success") { user_files.value = "" user_ainfo.innerHTML = response.content fetch('/get', { method: 'POST', redirect: 'follow', headers: { 'Accept': 'application/json', 'Content-Type': 'application/json' }, body: JSON.stringify({"request":"username", "name": ""}) }) .then(response => response.json()) .then(response => load(response)) function load(response) { if(response.result == "failed") { content.innerHTML = ' <h1 style="color:red;"><i style="color:yellow; font-size: 2vw;" class="fa fa-warning"></i> Erreur de chargement des données - Erreur : ' + response.content + '</h1>' console.log("FAILED") } else if(response.result == "success") { const daID = document.getElementById("*dashaccountpicture") var randomNum = new Date().getTime(); daID.innerHTML = '<img class="w-25 sidebar-image noside" src="/images/userspics/' + response.content + '.png?' + randomNum + '">' aID.innerHTML = "<img style='border-radius: 100%;' src='/images/userspics/" + response.content + ".png?" + randomNum + "'>" } } } } } if(user_oldp.value != "" | user_newp.value != "") { console.log("test") if(user_oldp.value != "" && user_newp.value != "") { if(user_oldp.value != user_newp.value) { fetch('/set', { method: 'POST', redirect: 'follow', headers: { 'Accept': 'application/json', 'Content-Type': 'application/json' }, body: JSON.stringify({"request":"password", "value": user_newp.value, "additional":user_oldp.value}) }) .then(response => response.json()) .then(response => load(response)) function load(response) { if(response.result == "failed") { content.innerHTML = ' <h1 style="color:red;"><i style="color:yellow; font-size: 2vw;" class="fa fa-warning"></i> Erreur de chargement des données - Erreur : ' + response.content + '</h1>' console.log("FAILED") } else if(response.result == "success") { user_oldp.value = "" user_newp.value = "" user_pinfo.innerHTML = response.content } } } else { user_pinfo.innerHTML = "<p>Le nouveau et l'ancien mot de passe ne peuvent pas être le même</p>" } } else { user_pinfo.innerHTML = "<p>Le nouveau et l'ancien mot de passe doivent être rempli</p>" } } if(user_fullname.value.length >= 18) { user_finfo.innerHTML = "<p>Le nom complet ne doit pas dépasser 18 caractères</p>" } else if(user_fullname.value != "") { fetch('/set', { method: 'POST', redirect: 'follow', headers: { 'Accept': 'application/json', 'Content-Type': 'application/json' }, body: JSON.stringify({"request":"fullname", "value": user_fullname.value, "additional":"empty"}) }) .then(response => response.json()) .then(response => load(response)) function load(response) { if(response.result == "failed") { content.innerHTML = ' <h1 style="color:red;"><i style="color:yellow; font-size: 2vw;" class="fa fa-warning"></i> Erreur de chargement des données - Erreur : ' + response.content + '</h1>' console.log("FAILED") } else if(response.result == "success") { user_fullname.value = "" dID.innerHTML = response.additional fID.innerHTML = response.additional document.title = "Neutral - " + response.additional user_finfo.innerHTML = response.content } } } }) } </script> <!-- Style--> <style> .ubutton { border-style:solid; border-radius: 1vw; border-color: white; padding: 1%; transition: all 0.2s ease 0s; color: white; background-color: transparent; } .ubutton:hover { background: white; color: black; border-color: transparent; box-shadow: 2px 2px 5px rgba(0, 174, 255, 0.477); } .ubutton:active { border-style:solid; border-radius: 1vw; padding: 1%; transition: all 0.2s ease 0s; color: white; background-color: transparent; border-color: white; box-shadow: none; } .hbox .title{ font-size: larger; } .fullnameinfo { margin-top: 2%; } .settings-content { padding: 1%; } .settings-content input { margin-bottom: 1%; } .settings-content .inp { border-style: hidden; border-radius: 1vw; padding-left: 1vw; transition: all 0.2s ease 0s; } .settings-content .inp:hover { box-shadow: 2px 2px 5px rgba(255, 255, 255, 0.477) ; } .settings-content .inp:focus { box-shadow: 5px 5px 5px rgba(0, 174, 255, 0.477) ; } .hbox { margin: 1%; padding: 1%; background-color: rgb(80, 80, 80); border-radius: 1vw; box-shadow: 5px 5px 5px rgba(80, 80, 80, 0.477) ; } </style>