[Bugfix] Remove team member from master-task modal

This commit is contained in:
Matej Glasnák committed 2023-06-02 10:46:55 +02:00
1 parent fcd8199d86
commit 7dfac0f155
4 files changed
+13 -56

No files matched your search

@@ -15,11 +15,6 @@
.modal-input .modal-input
width: 100% !important width: 100% !important
flex: 0 0 auto flex: 0 0 auto
min-height: 60px
input,
.v-field
min-height: 60px
.modal-content .modal-content
flex: 1 1 100% flex: 1 1 100%
@@ -7,7 +7,7 @@
<v-card-text>{{ member.name + ' ' + member.surname }} bude odstránený/á z teamu.</v-card-text> <v-card-text>{{ member.name + ' ' + member.surname }} bude odstránený/á z teamu.</v-card-text>
<v-card-actions> <v-card-actions>
<v-btn <v-btn
class="button primary" class="button secondary"
variant="text" variant="text"
@click="closeModal()" @click="closeModal()"
> >
@@ -34,8 +34,6 @@ export default {
return { return {
visible: false, visible: false,
member: null, member: null,
allMembers: null,
teamId: null,
team: null team: null
} }
}, },
@@ -43,8 +41,6 @@ export default {
methods: { methods: {
async showModal({ member, team }) { async showModal({ member, team }) {
this.member = member this.member = member
this.allMembers = team.employees
this.teamId = team.id
this.team = team this.team = team
this.visible = true this.visible = true
}, },
@@ -53,32 +49,19 @@ export default {
this.visible = false this.visible = false
}, },
editDatepicker(type) {
const calendarElement = document.getElementsByClassName('dp__instance_calendar')[0]
const switchBtn = calendarElement.lastChild.querySelectorAll('.dp__button')[0]
if (!calendarElement) return
if (type == 'date') {
calendarElement.lastChild.remove()
} else if (type == 'time') {
switchBtn.click()
//calendarElement.lastChild.remove()
}
},
async deleteMember() { async deleteMember() {
const filteredMembers = this.allMembers.filter(obj => obj !== this.member) this.team.employees = [...this.team.employees].filter(employee => employee.id !== this.member.id)
this.team.employees = filteredMembers
try { try {
if (this.teamId) { if (this.team.id) {
const { team } = await this.$axios.put_auth(`v1/teams/${this.teamId}`, this.team) const { team } = await this.$axios.put_auth(`v1/teams/${this.team.id}`, this.team)
this.$store.commit('tm/update_team', team) this.$store.commit('tm/update_team', team)
} else { } else {
const { team } = await this.$axios.post_auth(`v1/teams`, this.team) const { team } = await this.$axios.post_auth(`v1/teams`, this.team)
this.$store.commit('tm/save_team', team) this.$store.commit('tm/save_team', team)
} }
this.$events.emit('memberDeleted', { filteredMembers }) this.$events.emit('master-task:team-member-deleted', { teamId: this.team.id, memberId: this.member.id })
this.closeModal() this.closeModal()
} catch (error) { } catch (error) {
this.$toast.error(error) this.$toast.error(error)
@@ -14,7 +14,7 @@
<div class="splitted-inputs"> <div class="splitted-inputs">
<!-- TODO: Bialko validacie --> <!-- TODO: Bialko validacie -->
<Datepicker @open="editDatepicker('date')" v-model="mastertask.deadline" @focus="onDateFocus" :min-date="new Date()" class="modal-input left" format="dd.MM.yyyy" locale="sk" select-text="Vybrať" cancel-text="Zrušiť" placeholder="Dátum" <Datepicker v-model="mastertask.deadline" :auto-apply="true" @focus="onDateFocus" :min-date="new Date()" class="modal-input left" format="dd.MM.yyyy" locale="sk" select-text="Vybrať" cancel-text="Zrušiť" placeholder="Dátum"
:class="{ error: v$.mastertask.deadline.$errors?.length }" :validations="v$.mastertask.deadline" /> :class="{ error: v$.mastertask.deadline.$errors?.length }" :validations="v$.mastertask.deadline" />
<v-text-field class="modal-input right" variant="solo" v-model="mastertask._deadline_time" label="Čas" append-inner-icon="mdi-clock-outline" type="time" @focus="onInputFocus" <v-text-field class="modal-input right" variant="solo" v-model="mastertask._deadline_time" label="Čas" append-inner-icon="mdi-clock-outline" type="time" @focus="onInputFocus"
@@ -180,9 +180,11 @@ export default {
}, },
mounted() { mounted() {
this.$events.on('memberDeleted', (filteredMembers) => { this.$events.on('master-task:team-member-deleted', ({ teamId, memberId }) => {
console.log() if (this.mastertask?.team_id != teamId)
//this.mastertask.employees = filteredMembers return
this.mastertask.employees = this.mastertask.employees.filter(employee => employee.id != memberId)
}), }),
this.$events.on('on-mastertask-deleted', (mastertask) => { this.$events.on('on-mastertask-deleted', (mastertask) => {
@@ -209,6 +211,7 @@ export default {
this.$events.off('on-mastertask-deleted') this.$events.off('on-mastertask-deleted')
this.$events.off('on-subtask-deleted') this.$events.off('on-subtask-deleted')
this.$events.off('on-subtask-edited') this.$events.off('on-subtask-edited')
this.$events.off('master-task:team-member-deleted')
}, },
methods: { methods: {
@@ -217,18 +220,6 @@ export default {
this.$events.emit('show-delete-team-member-modal', { member, team }) this.$events.emit('show-delete-team-member-modal', { member, team })
}, },
editDatepicker(type) {
const calendarElement = document.getElementsByClassName('dp__instance_calendar')[0]
const switchBtn = calendarElement.lastChild.querySelectorAll('.dp__button')[0]
if (!calendarElement) return
if (type == 'date') {
calendarElement.lastChild.remove()
} else if (type == 'time') {
switchBtn.click()
//calendarElement.lastChild.remove()
}
},
async showModal({mastertask, editMode = false}) { async showModal({mastertask, editMode = false}) {
this.editMode = null this.editMode = null
this.visible = true this.visible = true
+1 -13
View File
@@ -16,7 +16,7 @@
<div class="splitted-inputs"> <div class="splitted-inputs">
<!-- TODO: Bialko validacie --> <!-- TODO: Bialko validacie -->
<Datepicker @open="editDatepicker('date')" v-model="subtask.deadline" @focus="onDateFocus" :min-date="new Date()" class="modal-input left" format="dd.MM.yyyy" locale="sk" select-text="Vybrať" cancel-text="Zrušiť" placeholder="Dátum" <Datepicker v-model="subtask.deadline" :auto-apply="true" @focus="onDateFocus" :min-date="new Date()" class="modal-input left" format="dd.MM.yyyy" locale="sk" select-text="Vybrať" cancel-text="Zrušiť" placeholder="Dátum"
:class="{ error: v$.subtask.deadline.$errors?.length }" :validations="v$.subtask.deadline" /> :class="{ error: v$.subtask.deadline.$errors?.length }" :validations="v$.subtask.deadline" />
<v-text-field class="modal-input right" variant="solo" v-model="subtask._deadline_time" label="Čas" append-inner-icon="mdi-clock-outline" type="time" @focus="onInputFocus" <v-text-field class="modal-input right" variant="solo" v-model="subtask._deadline_time" label="Čas" append-inner-icon="mdi-clock-outline" type="time" @focus="onInputFocus"
@@ -207,18 +207,6 @@ export default {
this.subtask.timeblocks.splice(i, 1) this.subtask.timeblocks.splice(i, 1)
}, },
editDatepicker(type) {
const calendarElement = document.getElementsByClassName('dp__instance_calendar')[0]
const switchBtn = calendarElement.lastChild.querySelectorAll('.dp__button')[0]
if (!calendarElement) return
if (type == 'date') {
calendarElement.lastChild.remove()
} else if (type == 'time') {
switchBtn.click()
//calendarElement.lastChild.remove()
}
},
closeModal() { closeModal() {
this.visible = false this.visible = false
this.$router.replace({name: this.$route.name}) this.$router.replace({name: this.$route.name})