From 84647010827866341e3236efde13fd40d6f9d23d Mon Sep 17 00:00:00 2001 From: Patrick Toal Date: Fri, 5 Apr 2024 20:50:56 -0400 Subject: [PATCH] Added task functionality --- src/components/task/TaskEditComponent.vue | 20 +---- src/components/task/TaskTableComponent.vue | 77 ++++++++++++++++--- .../{NewTaskPage.vue => TaskEditPage.vue} | 2 +- src/router/routes.ts | 6 +- src/stores/task.ts | 33 ++++++-- 5 files changed, 104 insertions(+), 34 deletions(-) rename src/pages/task/{NewTaskPage.vue => TaskEditPage.vue} (85%) diff --git a/src/components/task/TaskEditComponent.vue b/src/components/task/TaskEditComponent.vue index 4e5e0a2..32cbdb1 100644 --- a/src/components/task/TaskEditComponent.vue +++ b/src/components/task/TaskEditComponent.vue @@ -48,7 +48,7 @@ (); +const props = defineProps<{ taskId?: string }>(); const taskStore = useTaskStore(); const defaultTask = { @@ -188,12 +188,7 @@ const tasks = ref(taskStore.tasks); const boatList = ref(useBoatStore().boats); const skillTagOptions = ref(); -const skillTagList = ref([]); - const taskTagOptions = ref(); -const taskTagList = ref([]); - -const dependsList = ref([]); function filterSkillTags(val: string, update: (cb: () => void) => void): void { return filterTags(skillTagOptions, taskStore.skillTags, val, update); @@ -251,13 +246,6 @@ const router = useRouter(); async function onSubmit() { console.log(modifiedTask); try { - // It would probably be more performant to store the tags as objects in the - // form, and then extract the ID's before submitting. - modifiedTask.required_skills = skillTagList.value.map((s) => s['$id']); - modifiedTask.tags = taskTagList.value.map((s) => s['$id']); - modifiedTask.depends_on = dependsList.value.map( - (d) => d['$id'] - ) as string[]; await taskStore.addTask(modifiedTask); console.log('Created Task'); router.go(-1); diff --git a/src/components/task/TaskTableComponent.vue b/src/components/task/TaskTableComponent.vue index 5afc594..b409127 100644 --- a/src/components/task/TaskTableComponent.vue +++ b/src/components/task/TaskTableComponent.vue @@ -6,13 +6,15 @@ row-key="$id" no-data-label="I didn't find anything for you" no-results-label="The filter didn't uncover any results" + selection="multiple" + v-model:selected="selected" > + + + @@ -42,8 +95,9 @@