diff --git a/frontend/src/pages/Profile.vue b/frontend/src/pages/Profile.vue index 911acb4..d5bef62 100644 --- a/frontend/src/pages/Profile.vue +++ b/frontend/src/pages/Profile.vue @@ -12,7 +12,7 @@ switch-indicator > - + @@ -23,24 +23,28 @@

{{userName}}

-

{{email}}

+

Meine Email: {{email}}

Mein Rang: {{userRanking}}

Mein Team: {{teamName}}

- - +
+ + +
+
+

Teameinladungen

-
- -
+ +

{{teamName}}

Unser Rang: {{teamRanking}}

- {{currentTeamStatus}} + Unser Status: {{currentTeamStatus}}

-
+

Teammitglieder


- - +
+ + +

()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/; return re.test(String(email).toLowerCase()); @@ -287,31 +302,38 @@ this.handleError(error); }) }, + async updateTeamData() { + await this.getTeamData(); + this.boolTable = false; + this.boolTable = await this.fetchTeamMembers(); + await this.fetchTeamInvites(); + }, getTeamData() { - let token; - if (localStorage.getItem('userToken')) { - token = JSON.parse(localStorage.getItem('userToken')).token; - } else { - return; - } - this.$axios.get('/api/getTeamOfUser', {params: {token}}) - .then(response => { - if (response.data === '') { - this.boolAlreadyInTeam = false; - this.teamName = "Aktuell in keinem Team"; - this.currentTeamStatus = ""; - this.teamRanking = "-"; - this.dropDownSelectItem('Offene Teameinladungen'); - } else { - this.boolAlreadyInTeam = true; - this.teamName = response.data.name; - this.currentTeamStatus = response.data.teamStatus; - this.fetchTeamMembers(); - } - console.log("getTeam: " + response); - }).catch((error) => { - this.handleError(error); - }); + return new Promise(resolve => { + let token; + if (localStorage.getItem('userToken')) { + token = JSON.parse(localStorage.getItem('userToken')).token; + } else { + return; + } + this.$axios.get('/api/getTeamOfUser', {params: {token}}) + .then(response => { + if (response.data === '') { + this.boolAlreadyInTeam = false; + this.teamName = "Aktuell in keinem Team"; + this.currentTeamStatus = ""; + this.teamRanking = "-"; + } else { + this.boolAlreadyInTeam = true; + this.teamName = response.data.name; + this.currentTeamStatus = response.data.teamStatus; + this.teamRanking = "-"; + } + console.log("getTeam: " + response); + }).catch((error) => { + this.handleError(error); + }).finally(() => resolve(true)); + }) }, createTeam() { let params = {}; @@ -329,6 +351,7 @@ title: "Teamerstellung", color: "blue" }); + this.updateTeamData(); }).catch((error) => { this.handleError(error); }) @@ -344,56 +367,63 @@ .then((response) => { console.log("createTeam: " + response); this.$store.commit('dialog/NEW_MESSAGE_DIALOG', { - message: "Dus hast das Team " + this.teamName + " verlassen!", + message: "Du hast das Team " + this.teamName + " verlassen!", title: "Team verlassen", color: "blue" }); - this.getTeamData(); + this.updateTeamData(); }).catch((error) => { this.handleError(error); }) }, fetchTeamMembers() { - this.teamData = []; - let name = this.teamName; - this.$axios.get('/api/getTeamMembers', {params: {name}}) - .then((response) => { - console.log(response.data); - this.teamMembers = response.data; - for (var i = 0; i < this.teamMembers.length; i++) { - let member = {}; - member.name = this.teamMembers[i].username; - member.email = this.teamMembers[i].email; - this.getMemberRanking(member, member.email); - this.teamData.push(member); - } - }).catch((error) => { - this.handleError(error); + return new Promise(resolve => { + this.teamData = []; + let name = this.teamName; + this.$axios.get('/api/getTeamMembers', {params: {name}}) + .then(async (response) => { + console.log(response.data); + this.teamMembers = response.data; + for (var i = 0; i < this.teamMembers.length; i++) { + let member = {}; + member.name = this.teamMembers[i].username; + member.email = this.teamMembers[i].email; + await this.getMemberRanking(member, member.email); + this.teamData.push(member); + } + }).catch((error) => { + this.handleError(error); + }).finally(() => resolve(true)) }) }, getMemberRanking(member, email) { - let ranking; - this.$axios.get('/api/getRankingPlace', {params: {email}}) - .then((response) => { - ranking = response.data; - member.ranking = ranking; - }).catch((error) => { - this.handleError(error); - }); + return new Promise(resolve => { + this.updateTable(); + let ranking; + this.$axios.get('/api/getRankingPlace', {params: {email}}) + .then((response) => { + ranking = response.data; + member.ranking = ranking; + }).catch((error) => { + this.handleError(error); + }).finally(() => resolve(true)) + }) }, fetchTeamInvites() { - let token; - if (localStorage.getItem('userToken')) { - token = JSON.parse(localStorage.getItem('userToken')).token; - } else { - return; - } - this.$axios.get('/api/getMyTeamInvites', {params: {token}}) - .then((response) => { - this.teamInvites = response.data; - console.log(this.teamInvites); - }).catch((error) => { - this.handleError(error); + return new Promise(resolve => { + let token; + if (localStorage.getItem('userToken')) { + token = JSON.parse(localStorage.getItem('userToken')).token; + } else { + return; + } + this.$axios.get('/api/getMyTeamInvites', {params: {token}}) + .then((response) => { + this.teamInvites = response.data; + console.log(this.teamInvites); + }).catch((error) => { + this.handleError(error); + }).finally(() => resolve(true)) }) }, joinTeam(teamInvite) { @@ -412,7 +442,7 @@ title: "Teambeitrittsanfrage", color: "blue" }); - this.getTeamData(); + this.updateTeamData(); }).catch((error) => { this.handleError(error); }) @@ -432,7 +462,7 @@ title: "Teambeitrittsanfrage", color: "blue" }); - this.getTeamData(); + this.updateTeamData(); }).catch((error) => { this.handleError(error); }) @@ -466,7 +496,7 @@ params.teamStatus = this.teamStatus; this.$axios.put('/api/setTeamStatus', null, {params}) .then((response) => { - this.getTeamData(); + this.updateTeamData(); }).catch((error) => { this.handleError(error); }) diff --git a/frontend/src/pages/Register.vue b/frontend/src/pages/Register.vue index 2a9d9ae..868d5b7 100644 --- a/frontend/src/pages/Register.vue +++ b/frontend/src/pages/Register.vue @@ -6,7 +6,7 @@
-