-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -119,15 +175,23 @@
data() {
return {
tab: 'profile',
- startedCaches: [],
inviteMail: "",
- currentTeamStatus: "Dienstag 15:00 Treffen zum Blumencache",
+ currentTeamStatus: "",
teamStatus: "",
+ userName: "",
email: null,
userRanking: null,
teamName: null,
+ boolAlreadyInTeam: false,
teamRanking: null,
dropDownSelectedItem: null,
+ boolMyTeam: true,
+ boolInvites: false,
+ boolCreateTeam: false,
+ newTeamName: "",
+ leaveTeamCheck: "",
+ teamMembers: [],
+ teamInvites: [],
columns: [
{
name: 'desc',
@@ -144,6 +208,10 @@
}
],
data: [
+ {
+ name: 'Benutzername',
+ userData: this.userName,
+ },
{
name: 'E-Mail',
userData: this.email,
@@ -170,43 +238,25 @@
field: row => row.name,
format: val => `${val}`,
},
+ {
+ name: 'email',
+ label: 'Email',
+ required: true,
+ align: 'left',
+ field: 'email',
+ },
{
name: 'ranking',
- label: 'Solo-Ranglistenpunkte',
+ label: 'Rangliste (Solo)',
required: true,
align: 'left',
field: 'ranking',
sortable: true,
}
],
- teamData: [
- {
- name: 'BuGaCacher2019',
- ranking: 10,
- },
- {
- name: 'Max',
- ranking: 5,
- },
- {
- name: 'Timo',
- ranking: 4,
- },
- {
- name: 'Katharina',
- ranking: 3,
- },
- {
- name: 'Michael',
- ranking: 2,
- },
- {
- name: 'Robin',
- ranking: 1,
- },
- ],
+ teamData: [],
pagination: {
- sortBy: 'name',
+ sortBy: 'ranking',
descending: false,
page: 1,
rowsPerPage: 10
@@ -220,19 +270,41 @@
hasAdminState() {
return this.$store.getters['auth/GET_ADMINSTATE'];
},
+ newTeamNameValidationSuccesful() {
+ if (this.newTeamName.length >= 5) {
+ return true;
+ }
+ return false;
+ },
+ teamInviteChecked() {
+ if (this.validateEmail(this.inviteMail)) {
+ return true;
+ }
+ return false;
+ },
+ teamStatusChecked() {
+ if (this.teamStatus.length <= 160) {
+ return true;
+ }
+ return false;
+ },
+ leaveConfirmed() {
+ if (this.leaveTeamCheck === 'BESTÄTIGEN'){
+ return true;
+ }
+ return false;
+ }
},
created: function () {
this.$store.commit('auth/SET_AUTHENTICATED');
this.$store.commit('auth/SET_USER');
+ this.userName = JSON.parse(localStorage.getItem('userToken')).name;
+ this.data[0].userData = this.userName;
this.email = JSON.parse(localStorage.getItem('userMail'));
- this.data[0].userData = this.email;
- this.userRanking = "1234";
- this.data[1].userData = this.userRanking;
- this.teamName = "BuGa19Community";
- this.data[2].userData = this.teamName;
- this.dropDownSelectedItem = this.teamName;
- this.teamRanking = "2019";
- this.data[3].userData = this.teamRanking;
+ this.data[1].userData = this.email;
+ this.getPersonalRanking();
+ this.getTeamData();
+ this.fetchTeamInvites();
},
methods: {
validateEmail(email) {
@@ -240,72 +312,243 @@
return re.test(String(email).toLowerCase());
},
getPersonalRanking() {
- const name = JSON.parse(localStorage.getItem('userToken')).name;
- console.log(JSON.parse(localStorage.getItem('userToken')).name);
- this.$axios.get('/api/hello', {params: {name}})
+ let email = this.email;
+ this.$axios.get('/api/getRankingPlace', {params: {email}})
.then((response) => {
this.userRanking = response.data;
- console.log(response.data);
+ this.data[2].userData = this.userRanking;
}).catch((error) => {
- // Error
- let msg;
- let title;
- if (error.response) {
- // The request was made and the server responded with a status code
- title = "Problem with response!";
- msg = error.response;
- } else if (error.request) {
- // The request was made but no response was received
- title = "Problem with request!";
- msg = "Error occured due to wrong server request!"
- console.log(error.request);
- } else {
- // Something happened in setting up the request that triggered an Error
- title = "Error";
- msg = error.message;
- console.log('Error', error.message);
- }
- console.log(error.config);
- this.$store.commit('dialog/NEW_MESSAGE_DIALOG', {message: msg, title: title,});
+ this.handleError(error);
})
},
getTeamData() {
- const userName = {name: JSON.parse(localStorage.getItem('userToken')).name};
- this.$axios.get('/api/getTeam', {params: userName})
+ 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.teamRanking = response.data.teamRanking;
+ this.fetchTeamMembers();
+ }
+ this.data[3].userData = this.teamName;
+ this.dropDownSelectedItem = this.teamName;
+ this.data[4].userData = this.teamRanking;
console.log("getTeam: " + response);
}).catch((error) => {
- // Error
- let msg;
- let title;
- if (error.response) {
- // The request was made and the server responded with a status code
- title = "Problem with response!";
- msg = error.response;
- } else if (error.request) {
- // The request was made but no response was received
- title = "Problem with request!";
- msg = "Error occured due to wrong server request!"
- console.log(error.request);
- } else {
- // Something happened in setting up the request that triggered an Error
- title = "Error";
- msg = error.message;
- console.log('Error', error.message);
- }
- console.log(error.config);
- this.$store.commit('dialog/NEW_MESSAGE_DIALOG', {message: msg, title: title,});
+ this.handleError(error);
})
-
},
dropDownSelectItem(item) {
if (item === 'team') {
this.dropDownSelectedItem = this.teamName;
+ this.boolMyTeam = true;
+ this.boolInvites = false;
+ this.boolCreateTeam = false;
+ } else if (item === 'Offene Teameinladungen') {
+ this.dropDownSelectedItem = item;
+ this.boolMyTeam = false;
+ this.boolInvites = true;
+ this.boolCreateTeam = false;
} else {
this.dropDownSelectedItem = item;
+ this.boolMyTeam = false;
+ this.boolInvites = false;
+ this.boolCreateTeam = true;
}
},
+ createTeam() {
+ let params = {};
+ if (localStorage.getItem('userToken')) {
+ params.token = JSON.parse(localStorage.getItem('userToken')).token;
+ } else {
+ return;
+ }
+ params.name = this.newTeamName;
+ this.$axios.post('/api/createTeam', null, {params})
+ .then((response) => {
+ console.log("createTeam: " + response);
+ this.$store.commit('dialog/NEW_MESSAGE_DIALOG', {
+ message: "Das Team " + this.newTeamName + " wurde erfolgreich erstellt!",
+ title: "Teamerstellung",
+ color: "blue"
+ });
+ }).catch((error) => {
+ this.handleError(error);
+ })
+ },
+ leaveTeam() {
+ let params = {};
+ if (localStorage.getItem('userToken')) {
+ params.token = JSON.parse(localStorage.getItem('userToken')).token;
+ } else {
+ return;
+ }
+ this.$axios.put('/api/leaveTeam', null, {params})
+ .then((response) => {
+ console.log("createTeam: " + response);
+ this.$store.commit('dialog/NEW_MESSAGE_DIALOG', {
+ message: "Dus hast das Team " + this.teamName + " verlassen!",
+ title: "Team verlassen",
+ color: "blue"
+ });
+ this.getTeamData();
+ }).catch((error) => {
+ this.handleError(error);
+ })
+ },
+ fetchTeamMembers() {
+ 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);
+ })
+ },
+ 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);
+ });
+ },
+ 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);
+ })
+ },
+ joinTeam(teamInvite) {
+ let params = {};
+ if (localStorage.getItem('userToken')) {
+ params.token = JSON.parse(localStorage.getItem('userToken')).token;
+ } else {
+ return;
+ }
+ params.teamID = teamInvite.team.id;
+ this.$axios.put('/api/joinTeam', null, {params})
+ .then((response) => {
+ console.log(response.data);
+ this.$store.commit('dialog/NEW_MESSAGE_DIALOG', {
+ message: "Du bist dem Team " + teamInvite.team.name + " erfolgreich beigetreten!",
+ title: "Teambeitrittsanfrage",
+ color: "blue"
+ });
+ this.getTeamData();
+ }).catch((error) => {
+ this.handleError(error);
+ })
+ },
+ deleteTeamInvite(teamInvite) {
+ let params = {};
+ if (localStorage.getItem('userToken')) {
+ params.token = JSON.parse(localStorage.getItem('userToken')).token;
+ } else {
+ return;
+ }
+ params.teamInviteID = teamInvite.id;
+ this.$axios.delete('/api/deleteTeamInvite', {params})
+ .then((response) => {
+ this.$store.commit('dialog/NEW_MESSAGE_DIALOG', {
+ message: "Du hast die Anfrage von Team " + teamInvite.team.name + " gelöscht!",
+ title: "Teambeitrittsanfrage",
+ color: "blue"
+ });
+ this.getTeamData();
+ }).catch((error) => {
+ this.handleError(error);
+ })
+ },
+ sendTeamInvite() {
+ let params = {};
+ if (localStorage.getItem('userToken')) {
+ params.token = JSON.parse(localStorage.getItem('userToken')).token;
+ } else {
+ return;
+ }
+ params.invitedUserEmail = this.inviteMail;
+ this.$axios.post('/api/sendTeamInvite', null, {params})
+ .then((response) => {
+ this.$store.commit('dialog/NEW_MESSAGE_DIALOG', {
+ message: "Du hast " + params.invitedUserEmail + " eingeladen!",
+ title: "Einladung ins Team",
+ color: "blue"
+ });
+ }).catch((error) => {
+ this.handleError(error);
+ })
+ },
+ setTeamStatus() {
+ let params = {};
+ if (localStorage.getItem('userToken')) {
+ params.token = JSON.parse(localStorage.getItem('userToken')).token;
+ } else {
+ return;
+ }
+ params.teamStatus = this.teamStatus;
+ this.$axios.put('/api/setTeamStatus', null, {params})
+ .then((response) => {
+ this.getTeamData();
+ }).catch((error) => {
+ this.handleError(error);
+ })
+ },
+ handleError(error) {
+ // Error
+ let msg;
+ let title;
+ if (error.response) {
+ // The request was made and the server responded with a status code
+ title = "Problem with response!";
+ msg = error.response;
+ } else if (error.request) {
+ // The request was made but no response was received
+ title = "Problem with request!";
+ msg = "Error occured due to wrong server request!";
+ console.log(error.request);
+ } else {
+ // Something happened in setting up the request that triggered an Error
+ title = "Error";
+ msg = error.message;
+ console.log('Error', error.message);
+ }
+ console.log(error.config);
+ this.$store.commit('dialog/NEW_MESSAGE_DIALOG', {message: msg, title: title,});
+ }
}
}
diff --git a/frontend/src/pages/Register.vue b/frontend/src/pages/Register.vue
index 48b3b0c..ccd2b3f 100644
--- a/frontend/src/pages/Register.vue
+++ b/frontend/src/pages/Register.vue
@@ -3,6 +3,14 @@