From 13e645fa4b3dd79cacc8ded3136cb1b9aafd0167 Mon Sep 17 00:00:00 2001 From: SabreCat Date: Tue, 1 Feb 2022 20:42:51 -0600 Subject: [PATCH] fix(teams): correct some unassignment bugs --- website/client/src/components/tasks/taskModal.vue | 12 ++++++++++++ website/server/models/group.js | 4 ++++ 2 files changed, 16 insertions(+) diff --git a/website/client/src/components/tasks/taskModal.vue b/website/client/src/components/tasks/taskModal.vue index 218c4e3d53..13a72bad19 100644 --- a/website/client/src/components/tasks/taskModal.vue +++ b/website/client/src/components/tasks/taskModal.vue @@ -456,6 +456,7 @@ {{ $t('clear') }} @@ -1523,6 +1524,17 @@ export default { }); } }, + async clearAssignments () { + if (this.purpose === 'edit') { + for (const assignedMember of this.assignedMembers) { + await this.$store.dispatch('tasks:unassignTask', { // eslint-disable-line no-await-in-loop + taskId: this.task._id, + userId: assignedMember, + }); + } + } + this.assignedMembers = []; + }, focusInput () { this.$refs.inputToFocus.focus(); }, diff --git a/website/server/models/group.js b/website/server/models/group.js index c28050215c..d2e332fb45 100644 --- a/website/server/models/group.js +++ b/website/server/models/group.js @@ -1588,7 +1588,11 @@ schema.methods.unlinkTask = async function groupUnlinkTask ( }; delete unlinkingTask.group.assignedUsers[user._id]; + if (Object.keys(unlinkingTask.group.assignedUsers).length === 0) { + unlinkingTask.group.assignedUsers = undefined; + } unlinkingTask.markModified('group.assignedUsers'); + const promises = [unlinkingTask.save()]; if (keep === 'keep-all') {