finished team component

This commit is contained in:
rchrist 2019-05-09 21:36:49 +02:00
parent ab7f3de3f9
commit d3a49d677c
2 changed files with 65 additions and 18 deletions

View File

@ -109,8 +109,8 @@ module.exports = function (ctx) {
}, },
env: ctx.dev env: ctx.dev
? { // Base URL for API-Calls: DEV ? { // Base URL for API-Calls: DEV
//API: JSON.stringify('http://localhost:8080'), API: JSON.stringify('http://localhost:8080'),
API: JSON.stringify('https://seserver.se.hs-heilbronn.de:9443/buga19geocaching'), //API: JSON.stringify('https://seserver.se.hs-heilbronn.de:9443/buga19geocaching'),
USER_API: JSON.stringify('https://seserver.se.hs-heilbronn.de:9443/buga19usermanagement') USER_API: JSON.stringify('https://seserver.se.hs-heilbronn.de:9443/buga19usermanagement')
} }
: { // Base URL for API-Calls: PRODUCTION (build) : { // Base URL for API-Calls: PRODUCTION (build)

View File

@ -58,7 +58,9 @@
</q-item-section> </q-item-section>
<q-item-section> <q-item-section>
<q-item-label v-show="!boolAlreadyInTeam">Neues Team erstellen</q-item-label> <q-item-label v-show="!boolAlreadyInTeam">Neues Team erstellen</q-item-label>
<q-item-label v-show="boolAlreadyInTeam">Neues Team erstellen<br/>(Team verlassen um Option zu nutzen)</q-item-label> <q-item-label v-show="boolAlreadyInTeam">Neues Team erstellen<br/>(Team verlassen um Option zu
nutzen)
</q-item-label>
</q-item-section> </q-item-section>
</q-item> </q-item>
</q-list> </q-list>
@ -76,7 +78,7 @@
/> />
<br/> <br/>
<p class="text-h5"> Einladungen </p> <p class="text-h5"> Einladungen </p>
<q-input outlined filled stack-label v-model="inviteMail" <q-input lazy-rules outlined filled stack-label v-model="inviteMail"
type="text" label="Email des Nutzers" type="text" label="Email des Nutzers"
:rules="[val=>validateEmail(val)||'Bitte Email verwenden']"/> :rules="[val=>validateEmail(val)||'Bitte Email verwenden']"/>
<div align="center"> <div align="center">
@ -89,7 +91,7 @@
<br/> <br/>
<p class="text-h5"> Teamstatus </p> <p class="text-h5"> Teamstatus </p>
<p>{{currentTeamStatus}}</p> <p>{{currentTeamStatus}}</p>
<q-input outlined filled stack-label v-model="teamStatus" <q-input lazy-rules outlined filled stack-label v-model="teamStatus"
type="text" label="Neuer Teamstatus" type="text" label="Neuer Teamstatus"
:rules="[val=>val.length<=160||'Status zu lang!']"/> :rules="[val=>val.length<=160||'Status zu lang!']"/>
<div align="center"> <div align="center">
@ -99,6 +101,17 @@
color="primary" color="primary"
type="submit"/> type="submit"/>
</div> </div>
<br/>
<q-input lazy-rules outlined filled stack-label v-model="leaveTeamCheck"
type="text" label="BESTÄTIGEN eingeben um das Team zu verlassen"
:rules="[val=>val==='BESTÄTIGEN'||'Schreibweise beachten']"/>
<div align="center">
<q-btn label="Team verlassen"
:disabled="!leaveConfirmed"
@click="leaveTeam()"
color="negative"
type="submit"/>
</div>
</div> </div>
<div v-show="boolInvites"> <div v-show="boolInvites">
<q-list> <q-list>
@ -122,7 +135,7 @@
</q-list> </q-list>
</div> </div>
<div v-show="boolCreateTeam"> <div v-show="boolCreateTeam">
<q-input outlined filled stack-label v-model="newTeamName" type="text" <q-input lazy-rules outlined filled stack-label v-model="newTeamName" type="text"
label="Teamname eingeben" label="Teamname eingeben"
:rules="[val=>val.length>=2||'Name muss mindestens 5 Zeichen lang sein!']"/> :rules="[val=>val.length>=2||'Name muss mindestens 5 Zeichen lang sein!']"/>
<q-btn <q-btn
@ -176,6 +189,7 @@
boolInvites: false, boolInvites: false,
boolCreateTeam: false, boolCreateTeam: false,
newTeamName: "", newTeamName: "",
leaveTeamCheck: "",
teamMembers: [], teamMembers: [],
teamInvites: [], teamInvites: [],
columns: [ columns: [
@ -240,18 +254,7 @@
sortable: true, sortable: true,
} }
], ],
teamData: [ teamData: [],
{
name: 'BuGaCacher2018',
email: 'buga@buga.com',
ranking: 10,
},
{
name: 'BuGaCacher2019',
email: 'buga@buga.de',
ranking: 9,
},
],
pagination: { pagination: {
sortBy: 'ranking', sortBy: 'ranking',
descending: false, descending: false,
@ -285,6 +288,12 @@
} }
return false; return false;
}, },
leaveConfirmed() {
if (this.leaveTeamCheck === 'BESTÄTIGEN'){
return true;
}
return false;
}
}, },
created: function () { created: function () {
this.$store.commit('auth/SET_AUTHENTICATED'); this.$store.commit('auth/SET_AUTHENTICATED');
@ -381,16 +390,53 @@
this.handleError(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() { fetchTeamMembers() {
let name = this.teamName; let name = this.teamName;
this.$axios.get('/api/getTeamMembers', {params: {name}}) this.$axios.get('/api/getTeamMembers', {params: {name}})
.then((response) => { .then((response) => {
console.log(response.data); console.log(response.data);
this.teamMembers = 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) => { }).catch((error) => {
this.handleError(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() { fetchTeamInvites() {
let token; let token;
if (localStorage.getItem('userToken')) { if (localStorage.getItem('userToken')) {
@ -422,6 +468,7 @@
title: "Teambeitrittsanfrage", title: "Teambeitrittsanfrage",
color: "blue" color: "blue"
}); });
this.getTeamData();
}).catch((error) => { }).catch((error) => {
this.handleError(error); this.handleError(error);
}) })