From 5e47c59acf27943a05ecb5992c7226d035698c1a Mon Sep 17 00:00:00 2001 From: BinarySandia04 Date: Fri, 2 Aug 2024 00:06:29 +0200 Subject: [PATCH] Falta fer que al fer refresh s'en recordin de la pos de les finestres --- client/src/views/managers/WindowManager.vue | 19 +++++- client/src/views/partials/EditUserPartial.vue | 38 +++++++++-- .../src/views/windows/EditProfileWindow.vue | 63 +++++++++++++++++++ client/src/views/windows/ExampleWindow.vue | 4 +- 4 files changed, 114 insertions(+), 10 deletions(-) create mode 100644 client/src/views/windows/EditProfileWindow.vue diff --git a/client/src/views/managers/WindowManager.vue b/client/src/views/managers/WindowManager.vue index 8e465740..68ff1c12 100644 --- a/client/src/views/managers/WindowManager.vue +++ b/client/src/views/managers/WindowManager.vue @@ -6,6 +6,7 @@ import LoginWindow from '@/views/windows/LoginWindow.vue' import RegisterWindow from '@/views/windows/RegisterWindow.vue' import ExampleWindow from '@/views/windows/ExampleWindow.vue' import MainMenuWindow from '@/views/windows/MainMenuWindow.vue' +import EditProfileWindow from '@/views/windows/EditProfileWindow.vue' // Gestionem ventanas import useEmitter from '@/services/Emitter'; @@ -18,6 +19,7 @@ const windows = { register: reactive([]), test: reactive([]), main_menu: reactive([]), + edit_profile: reactive([]), }; emitter.on("create-window", (data) => { @@ -26,8 +28,20 @@ emitter.on("create-window", (data) => { return; } - windows[data.type].push(data); - reload.value += 1; + let contains = false; + for (var i = 0; i < windows[data.type].length; i++) { + if(windows[data.type][i].id == data.id){ + contains = true; + break; + } + } + + console.log(contains); + + if(!contains) { + windows[data.type].push(data); + // reload.value += 1; + } }) @@ -44,6 +58,7 @@ emitter.on("clear-windows", (data) => { + diff --git a/client/src/views/partials/EditUserPartial.vue b/client/src/views/partials/EditUserPartial.vue index a5736e46..10b498ef 100644 --- a/client/src/views/partials/EditUserPartial.vue +++ b/client/src/views/partials/EditUserPartial.vue @@ -4,7 +4,7 @@ import VersionRender from '@/views/others/VersionRender.vue' import ErrorMessage from '@/views/others/ErrorMessage.vue' import { onMounted, ref } from 'vue'; -import { GetUser } from '@/services/User' +import { GetUser, LogoutUser } from '@/services/User' import Api from '@/services/Api' import url from '@/services/BackendURL' @@ -18,12 +18,21 @@ username.value = GetUser().username; function retrieveAvatar(){ let userAvatarDisplay = document.getElementById("upload-image"); Api().get('/user/retrieve-avatar?username=' + GetUser().username).then((response) => { - console.log(response.data.image); - userAvatarDisplay.src = url + "public/" + response.data.image; }).catch((err) => console.log("Internal error")); } +function LogOut(){ + LogoutUser(); + + emitter.emit("clear-windows", {type: "main_menu"}); + emitter.emit("create-window", {type: "login", id: "login"}) +} + +function EditProfile(){ + emitter.emit("create-window", {type: "edit_profile", id: "edit_profile"}) +} + onMounted(() => { let userAvatarDisplay = document.getElementById("upload-image"); let sendAvatarForm = document.getElementById("send-avatar-form"); @@ -38,15 +47,15 @@ onMounted(() => { Api().post('/user/upload-avatar', formData, { headers: { "Content-Type": "multipart/form-data" } }).then((response) => { - console.log(response); retrieveAvatar(); }).catch((err) => console.log("Internal error")); }); userAvatarDisplay.addEventListener("click", (event) => { - console.log("Clicked"); sendAvatarFileUploader.click(); - }) + }); + + retrieveAvatar(); }); @@ -62,6 +71,11 @@ onMounted(() => {
{{ username }}
Miauler
+ +
+ + +
@@ -72,6 +86,12 @@ onMounted(() => { display: none; } +.button-small { + height: 32px; + margin-bottom: 0px; + padding: 10px; +} + .main-user-container { background-color: var(--color-background-softer); width: 100%; @@ -82,6 +102,8 @@ onMounted(() => { padding: 10px; display: flex; align-items: center; + + justify-content: center; } .main-user-info { @@ -93,4 +115,8 @@ onMounted(() => { width: 40px; height: 40px; } + +.main-user-actions { + margin-left: auto; +} diff --git a/client/src/views/windows/EditProfileWindow.vue b/client/src/views/windows/EditProfileWindow.vue new file mode 100644 index 00000000..7a62f634 --- /dev/null +++ b/client/src/views/windows/EditProfileWindow.vue @@ -0,0 +1,63 @@ + + + + + + + diff --git a/client/src/views/windows/ExampleWindow.vue b/client/src/views/windows/ExampleWindow.vue index d3fa6cb6..2aa5ea83 100644 --- a/client/src/views/windows/ExampleWindow.vue +++ b/client/src/views/windows/ExampleWindow.vue @@ -19,8 +19,8 @@ let title = data.title; onMounted(() => { SetupHandle(id); - SetSize(700, 630); - SetPosition("center"); + SetSize(id, {x: 500, y: 380}); + SetPosition(id, "center"); });