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 @@
+
+
+
+
+
+
+ Edit profile
+
+
+
+
+
+
+
+
+
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");
});