fix(teams): make selectSingle workflows functional

This commit is contained in:
Sabe Jones
2021-04-13 16:42:50 -05:00
committed by SabreCat
parent 7dbee4caed
commit 74345adf6b
3 changed files with 31 additions and 25 deletions

View File

@@ -301,6 +301,7 @@ export default {
taskEdited (task) { taskEdited (task) {
const index = findIndex(this.tasksByType[task.type], taskItem => taskItem._id === task._id); const index = findIndex(this.tasksByType[task.type], taskItem => taskItem._id === task._id);
this.tasksByType[task.type].splice(index, 1, task); this.tasksByType[task.type].splice(index, 1, task);
this.loadTasks();
}, },
taskDestroyed (task) { taskDestroyed (task) {
const index = findIndex(this.tasksByType[task.type], taskItem => taskItem._id === task._id); const index = findIndex(this.tasksByType[task.type], taskItem => taskItem._id === task._id);

View File

@@ -24,6 +24,11 @@
v-markdown="allItemsMap[selectedItem].name" v-markdown="allItemsMap[selectedItem].name"
class="label" class="label"
></div> ></div>
<div
v-else
>
{{ emptyMessage }}
</div>
</template> </template>
<div <div
v-if="addNew || availableToSelect.length > 0" v-if="addNew || availableToSelect.length > 0"
@@ -211,21 +216,19 @@ export default {
return obj; return obj;
}, },
selectedItemAsObject () { selectedItemAsObject () {
return this.selected ? this.allItemsMap[this.selected] : null; return this.selectedItem ? this.allItemsMap[this.selectedItem] : null;
}, },
availableToSelect () { availableToSelect () {
const availableItems = this.allItems.filter(t => t.id !== this.selected);
const searchString = this.search.toLowerCase(); const searchString = this.search.toLowerCase();
const filteredItems = availableItems.filter(i => i.name.toLowerCase().includes(searchString)); const filteredItems = this.allItems.filter(i => i.name.toLowerCase().includes(searchString));
return filteredItems; return filteredItems;
}, },
}, },
watch: { watch: {
selected () { selected () {
this.$emit('changed', this.selected); this.$emit('changed', this.selectedItem);
}, },
}, },
created () { created () {
@@ -253,14 +256,13 @@ export default {
$event.preventDefault(); $event.preventDefault();
} }
}, },
closeIfOpen () {
this.closeSelectPopup();
},
selectItem (item) { selectItem (item) {
this.$emit('toggle', item.id); if (item.id === this.selectedItem) {
}, this.$emit('toggle', null);
removeItem () { } else {
this.$emit('toggle', null); this.$emit('toggle', item.id);
}
this.closeSelectPopup();
}, },
hideCallback ($event) { hideCallback ($event) {
if (this.preventHide) { if (this.preventHide) {

View File

@@ -1489,20 +1489,23 @@ export default {
this.$emit('cancel'); this.$emit('cancel');
}, },
async toggleAssignment (memberId) { async toggleAssignment (memberId) {
if (this.purpose === 'create') { if (this.purpose !== 'create') {
return; if (this.assignedMember === null) {
} await this.$store.dispatch('tasks:unassignTask', {
taskId: this.task._id,
userId: memberId,
});
} else {
await this.$store.dispatch('tasks:unassignTask', {
taskId: this.task._id,
userId: this.assignedMember,
});
if (this.assignedMember === null) { await this.$store.dispatch('tasks:assignTask', {
await this.$store.dispatch('tasks:unassignTask', { taskId: this.task._id,
taskId: this.task._id, userId: memberId,
userId: memberId, });
}); }
} else {
await this.$store.dispatch('tasks:assignTask', {
taskId: this.task._id,
userId: memberId,
});
} }
this.assignedMember = memberId; this.assignedMember = memberId;