From a3f3d8f861e0de9365e1429b2aeb5f865de2f9fa Mon Sep 17 00:00:00 2001 From: LilleBRG Date: Tue, 25 Mar 2025 16:11:14 +0100 Subject: [PATCH] changes to updateuser, added logout button --- backend/Api/BusinessLogic/UserLogic.cs | 6 ---- backend/Api/DBAccess/DBAccess.cs | 8 +++-- frontend/devices/index.html | 36 +++++++++++++++++++ frontend/home/index.html | 8 +++-- frontend/img/logout.png | Bin 0 -> 10056 bytes frontend/login/index.html | 3 -- frontend/profile/index.html | 14 +++++--- frontend/register/index.html | 2 +- frontend/scripts/devices.js | 26 ++++++++++++++ frontend/scripts/home.js | 22 +----------- frontend/scripts/login.js | 10 +----- frontend/scripts/profile.js | 12 +++---- frontend/scripts/services/devices.service.js | 7 ++-- frontend/shared/utils.js | 6 ++++ frontend/styles/auth.css | 26 ++++++++++---- frontend/styles/devices.css | 0 16 files changed, 119 insertions(+), 67 deletions(-) create mode 100644 frontend/img/logout.png create mode 100644 frontend/scripts/devices.js create mode 100644 frontend/styles/devices.css diff --git a/backend/Api/BusinessLogic/UserLogic.cs b/backend/Api/BusinessLogic/UserLogic.cs index 77b1800..1e8b282 100644 --- a/backend/Api/BusinessLogic/UserLogic.cs +++ b/backend/Api/BusinessLogic/UserLogic.cs @@ -75,12 +75,6 @@ namespace Api.BusinessLogic public async Task EditProfile(EditUserRequest userRequest, int userId) { - if (!new Regex(@".+@.+\..+").IsMatch(userRequest.Email)) - { - return new ConflictObjectResult(new { message = "Invalid email address" }); - } - - return await _dbAccess.UpdateUser(userRequest, userId); } diff --git a/backend/Api/DBAccess/DBAccess.cs b/backend/Api/DBAccess/DBAccess.cs index e550f11..aa51634 100644 --- a/backend/Api/DBAccess/DBAccess.cs +++ b/backend/Api/DBAccess/DBAccess.cs @@ -91,9 +91,13 @@ namespace Api.DBAccess } } - profile.UserName = user.UserName; + if(user.Email != "" && user.Email != null) + profile.Email = user.Email; + + if (user.UserName != "" && user.UserName != null) + profile.UserName = user.UserName; + - profile.Email = user.Email; bool saved = await _context.SaveChangesAsync() == 1; diff --git a/frontend/devices/index.html b/frontend/devices/index.html index e69de29..282e280 100644 --- a/frontend/devices/index.html +++ b/frontend/devices/index.html @@ -0,0 +1,36 @@ + + + + + + Temperature-Alarm-Web + + + + + + + + +
+
+ Home + Devices +
+ Profile + + + +
+
+ + + + + + + +
IdPlacementLatest Meassurement
+
+ + diff --git a/frontend/home/index.html b/frontend/home/index.html index fec875b..1072dd0 100644 --- a/frontend/home/index.html +++ b/frontend/home/index.html @@ -8,15 +8,19 @@ +
diff --git a/frontend/img/logout.png b/frontend/img/logout.png new file mode 100644 index 0000000000000000000000000000000000000000..e4930493c505fe2258c4166d51332f32403f4f74 GIT binary patch literal 10056 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
- Dont have an account? Register diff --git a/frontend/profile/index.html b/frontend/profile/index.html index a5752d3..1fb7dc1 100644 --- a/frontend/profile/index.html +++ b/frontend/profile/index.html @@ -7,14 +7,18 @@ +
- Home + Home + Devices
- Devices - Profile + Profile + + +
@@ -32,10 +36,10 @@
- + - + diff --git a/frontend/register/index.html b/frontend/register/index.html index 666fe02..94e358c 100644 --- a/frontend/register/index.html +++ b/frontend/register/index.html @@ -10,7 +10,7 @@
-

Create Account

+

Sign Up

diff --git a/frontend/scripts/devices.js b/frontend/scripts/devices.js new file mode 100644 index 0000000..821c1c0 --- /dev/null +++ b/frontend/scripts/devices.js @@ -0,0 +1,26 @@ +import { getDevicesOnUserId } from "./services/devices.service.js"; + +let idlocation = localStorage.getItem("rememberLogin") +let id; +if(idlocation){ + id = localStorage.getItem("id"); +} +else{ + id = localStorage.getItem("id"); +} +getDevicesOnUserId(id).then(res => { + buildTable(res) +}) + + +function buildTable(data) { + var table = document.getElementById(`deviceTable`); + data.forEach((device) => { + var row = ` + Name + ${device.id} + ${device.name} + `; + table.innerHTML += row; + }); + } \ No newline at end of file diff --git a/frontend/scripts/home.js b/frontend/scripts/home.js index 8538bbb..912ffa0 100644 --- a/frontend/scripts/home.js +++ b/frontend/scripts/home.js @@ -61,24 +61,4 @@ function buildTable(data) { `; table.innerHTML += row; }); -} - -// Get the modal -var modal = document.getElementById("chartModal"); -var btn = document.getElementById("myBtn"); -var span = document.getElementsByClassName("close")[0]; -btn.onclick = function () { - modal.style.display = "block"; -}; - -// When the user clicks on (x), close the modal -span.onclick = function () { - modal.style.display = "none"; -}; - -// When the user clicks anywhere outside of the modal, close it -window.onclick = function (event) { - if (event.target == modal) { - modal.style.display = "none"; - } -}; +} \ No newline at end of file diff --git a/frontend/scripts/login.js b/frontend/scripts/login.js index 2348cd0..5d661d5 100644 --- a/frontend/scripts/login.js +++ b/frontend/scripts/login.js @@ -17,15 +17,7 @@ document.getElementById("loginForm").addEventListener("submit", function(event) } else{ if (typeof(Storage) !== "undefined") { - if(document.getElementById("rememberId").checked == true){ - localStorage.setItem("id", response.id); - localStorage.setItem("rememberLogin", true); - } - else{ - localStorage.setItem("rememberLogin", false); - sessionStorage.setItem("id", response.id); - } - + localStorage.setItem("id", response.id); } } diff --git a/frontend/scripts/profile.js b/frontend/scripts/profile.js index 3e28c13..9587ac4 100644 --- a/frontend/scripts/profile.js +++ b/frontend/scripts/profile.js @@ -3,14 +3,8 @@ import { get } from "./services/users.service.js"; import { update } from "./services/users.service.js"; import { updatePassword } from "./services/users.service.js"; -let idlocation = localStorage.getItem("rememberLogin") -let id; -if(idlocation){ - id = localStorage.getItem("id"); -} -else{ - id = localStorage.getItem("id"); -} +let id = localStorage.getItem("id"); + get(id).then(res => { var table = document.getElementById(`profileCard`); table.innerHTML += ` @@ -40,6 +34,8 @@ 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"; }; }); diff --git a/frontend/scripts/services/devices.service.js b/frontend/scripts/services/devices.service.js index b2b18d8..bcef00a 100644 --- a/frontend/scripts/services/devices.service.js +++ b/frontend/scripts/services/devices.service.js @@ -1,12 +1,11 @@ -import { address } from "../../shared/constants"; +import { address } from "../../shared/constants.js"; -export function getDevicesOnUserId(id) { - fetch(`${address}/get-on-user-id`, { +export function getDevicesOnUserId(userId) { + fetch(`${address}/device/${userId}`, { method: "GET", headers: { "Content-Type": "application/json" }, - body: JSON.stringify({ id: id }) }) .then(response => response.json()) .then(data => console.log("Success:", data)) diff --git a/frontend/shared/utils.js b/frontend/shared/utils.js index 419b3c0..fa13ce0 100644 --- a/frontend/shared/utils.js +++ b/frontend/shared/utils.js @@ -10,3 +10,9 @@ export async function handleResponse(response) { return { error: "Request failed with HTTP code " + response.status }; } +document.querySelectorAll(".logoutContainer").forEach(closeBtn => { + closeBtn.onclick = () => { + localStorage.clear(); + window.location.href = "/index.html"; + }; +}); diff --git a/frontend/styles/auth.css b/frontend/styles/auth.css index 47b65ea..0ce6579 100644 --- a/frontend/styles/auth.css +++ b/frontend/styles/auth.css @@ -9,6 +9,7 @@ body { } .topnav a { + height: 20px; float: left; color: #f2f2f2; text-align: center; @@ -17,15 +18,16 @@ body { font-size: 17px; } - .topnav a:hover { + .topnav a:hover, .topnav span:hover { background-color: #ddd; color: black; - } - - .topnav a.active { + cursor: pointer; +} + +.topnav a.active { background-color: #04aa6d; color: white; - } +} /* Full-width input fields */ input[type=text], input[type=password], input[type=email] { @@ -60,7 +62,7 @@ button:hover { .details { display: flex; - justify-content: space-between; + justify-content: flex-end; margin-top: 0.5rem; } @@ -74,3 +76,15 @@ button:hover { margin-top: 1rem; } +.logoutContainer{ + display: flex; + justify-content: center; + align-items: center; + width: 50px; +} + +.logout{ + width: 20px; + height: 24px; +} + diff --git a/frontend/styles/devices.css b/frontend/styles/devices.css new file mode 100644 index 0000000..e69de29