diff --git a/frontend/profile/index.html b/frontend/profile/index.html index 9c740e4..1ad1402 100644 --- a/frontend/profile/index.html +++ b/frontend/profile/index.html @@ -4,6 +4,7 @@ Register - Temperature Alarm + @@ -67,7 +68,7 @@ -
+
diff --git a/frontend/scripts/profile.js b/frontend/scripts/profile.js index 1f824d6..47724dd 100644 --- a/frontend/scripts/profile.js +++ b/frontend/scripts/profile.js @@ -8,10 +8,10 @@ var username; var email; get().then((res) => { - username = res.userName; - email = res.email; - var table = document.getElementById(`profileCard`); - table.innerHTML += ` + username = res.userName; + email = res.email; + var table = document.getElementById(`profileCard`); + table.innerHTML += `
@@ -43,79 +43,76 @@ usernameInput.addEventListener("input", checkForChanges); // Open modals editIconbtn.onclick = () => { - document.getElementById("uname").value = username; - document.getElementById("email").value = email; - submitBtn.disabled = true; - editModal.style.display = "block"; + document.getElementById("uname").value = username; + document.getElementById("email").value = email; + submitBtn.disabled = true; + editModal.style.display = "block"; }; passwordBtn.onclick = () => (pswModal.style.display = "block"); // Close modals when clicking on any close button document.querySelectorAll(".close").forEach((closeBtn) => { - closeBtn.onclick = () => { - pswModal.style.display = "none"; - editModal.style.display = "none"; - document.getElementById("form-error").innerText = ""; - document.getElementById("form-error").style.display = "none"; - }; + closeBtn.onclick = () => { + pswModal.style.display = "none"; + editModal.style.display = "none"; + document.getElementById("form-error").innerText = ""; + document.getElementById("form-error").style.display = "none"; + }; }); // Close modals when clicking outside window.onclick = (event) => { - if (event.target == pswModal || event.target == editModal) { - pswModal.style.display = "none"; - editModal.style.display = "none"; - document.getElementById("form-error").innerText = ""; - document.getElementById("form-error").style.display = "none"; - } + if (event.target == pswModal || event.target == editModal) { + pswModal.style.display = "none"; + editModal.style.display = "none"; + document.getElementById("form-error").innerText = ""; + document.getElementById("form-error").style.display = "none"; + } }; document - .getElementById("editForm") - .addEventListener("submit", function (event) { - event.preventDefault(); // Prevents default form submission + .getElementById("editForm") + .addEventListener("submit", function (event) { + event.preventDefault(); // Prevents default form submission - document.getElementById("form-error").style.display = "none"; + document.getElementById("form-error").style.display = "none"; - // Call function with form values - update(emailInput.value, usernameInput.value).then((response) => { - if (response?.error) { - document.getElementById("form-error").innerText = response.error; - document.getElementById("form-error").style.display = "block"; + // Call function with form values + update(emailInput.value, usernameInput.value).then((response) => { + if (response?.error) { + document.getElementById("form-error").innerText = response.error; + document.getElementById("form-error").style.display = "block"; - return; - } + return; + } - location.href = "/profile"; + location.href = "/profile"; + }); }); - }); document - .getElementById("PasswordForm") - .addEventListener("submit", function (event) { - event.preventDefault(); // Prevents default form submission + .getElementById("PasswordForm") + .addEventListener("submit", function (event) { + event.preventDefault(); // Prevents default form submission - document.getElementById("form-error").style.display = "none"; + document.getElementById("password-error").style.display = "none"; - const oldPassword = document.getElementById("oldpsw").value; - const newPassword = document.getElementById("psw").value; - const repeatPassword = document.getElementById("rpsw").value; + const oldPassword = document.getElementById("oldpsw").value; + const newPassword = document.getElementById("psw").value; + const repeatPassword = document.getElementById("rpsw").value; - if (newPassword !== repeatPassword) { - let errorDiv = document.getElementById("form-error"); - errorDiv.style.display = "block"; - errorDiv.innerText = "Passwords do not match!"; - return; - } + if (newPassword !== repeatPassword) { + document.getElementById("password-error").style.display = "block"; + document.getElementById("password-error").innerText = "Passwords do not match!"; + return; + } - updatePassword(oldPassword, newPassword).then((response) => { - //error messages do not work - if (response.error) { - document.getElementById("form-error").innerText = response.message; - document.getElementById("form-error").style.display = "block"; - return; - } + updatePassword(oldPassword, newPassword) + .then(() => location.reload()) + .catch(error => { + document.getElementById("password-error").innerText = error; + document.getElementById("password-error").style.display = "block"; + }); }); - }); document.querySelector(".logout-container").addEventListener("click", logout); diff --git a/frontend/scripts/services/users.service.js b/frontend/scripts/services/users.service.js index c228c2c..ad5c7a9 100644 --- a/frontend/scripts/services/users.service.js +++ b/frontend/scripts/services/users.service.js @@ -39,7 +39,7 @@ export function update(email, username){ } export function updatePassword(oldPassword, newPassword){ - return request("PUT", "/user/update-password", { + return request("PUT", "/user/change-password", { oldPassword, newPassword, }); diff --git a/frontend/shared/utils.js b/frontend/shared/utils.js index e04c46d..c0c94c0 100644 --- a/frontend/shared/utils.js +++ b/frontend/shared/utils.js @@ -41,36 +41,36 @@ export async function request(method, path, body = null) { export function checkTokens() { var token = document.cookie.match(/\bauth-token=([^;\s]+)/); - if(token != null){ - return token[1] + if (token != null) { + return token[1]; } + const match = document.cookie.match(/\brefresh-token=([^;\s]+)/); token = match ? match[1] : null; - console.log("refresh "+token); - if(token != null){ - return fetch(`${address}/user/refreshtoken/${token}`, { - method: "POST", - headers: { - "Content-Type": "application/json" - }, - }) - .then(async response => { - if (!response.ok) { - window.location.href = "/login"; - return; - } - - const json = await response.json() - - document.cookie = `auth-token=${json.token}; Path=/`; - document.cookie = `refresh-token=${json.refreshToken}; Path=/`; - - return json.token; - }); - } - else{ - window.location.href = "/login"; - } + + if (token != null) { + return fetch(`${address}/user/refreshtoken/${token}`, { + method: "POST", + headers: { + "Content-Type": "application/json" + }, + }) + .then(async response => { + if (!response.ok) { + location.href = "/login"; + return; + } + + const json = await response.json() + + document.cookie = `auth-token=${json.token}; Path=/`; + document.cookie = `refresh-token=${json.refreshToken}; Path=/`; + + return json.token; + }); + } + + location.href = "/login"; } export function logout() {