Change the colour to Red.
All checks were successful
Build BAB Application Deployment Artifact / build (push) Successful in 2m6s

This commit is contained in:
2024-04-04 16:17:56 -04:00
parent 55071318ca
commit b3ce8e59cb
3 changed files with 30 additions and 19 deletions

View File

@@ -2,7 +2,7 @@
<q-form @submit="onSubmit" @reset="onReset" class="q-gutter-md"> <q-form @submit="onSubmit" @reset="onReset" class="q-gutter-md">
<q-input <q-input
filled filled
v-model="newTask.title" v-model="modifiedTask.title"
label="Task Title" label="Task Title"
hint="A short description of the task" hint="A short description of the task"
lazy-rules lazy-rules
@@ -13,7 +13,7 @@
/> />
<q-editor <q-editor
filled filled
v-model="newTask.description" v-model="modifiedTask.description"
label="Detailed Description" label="Detailed Description"
hint="A detailed description of the task" hint="A detailed description of the task"
lazy-rules lazy-rules
@@ -22,7 +22,7 @@
<q-input <q-input
filled filled
v-model="newTask.due_date" v-model="modifiedTask.due_date"
mask="date" mask="date"
:rules="[dateRule]" :rules="[dateRule]"
hint="Enter the due date" hint="Enter the due date"
@@ -31,7 +31,11 @@
<template v-slot:append> <template v-slot:append>
<q-icon name="event" class="cursor-pointer"> <q-icon name="event" class="cursor-pointer">
<q-popup-proxy cover transition-show="scale" transition-hide="scale"> <q-popup-proxy cover transition-show="scale" transition-hide="scale">
<q-date v-model="newTask.due_date" @input="updateDateISO" today-btn> <q-date
v-model="modifiedTask.due_date"
@input="updateDateISO"
today-btn
>
<div class="row items-center justify-end"> <div class="row items-center justify-end">
<q-btn v-close-popup label="Close" color="primary" flat /> <q-btn v-close-popup label="Close" color="primary" flat />
</div> </div>
@@ -78,7 +82,7 @@
</div> </div>
<q-input <q-input
label="Estimated Duration" label="Estimated Duration"
v-model.number="newTask.duration" v-model.number="modifiedTask.duration"
type="number" type="number"
filled filled
suffix="hrs" suffix="hrs"
@@ -86,14 +90,14 @@
/> />
<q-input <q-input
label="Number of Required Volunteers" label="Number of Required Volunteers"
v-model.number="newTask.volunteers_required" v-model.number="modifiedTask.volunteers_required"
type="number" type="number"
filled filled
style="max-width: 200px" style="max-width: 200px"
/> />
<q-select <q-select
label="Status of Task" label="Status of Task"
v-model="newTask.status" v-model="modifiedTask.status"
:options="TASKSTATUS" :options="TASKSTATUS"
> >
</q-select> </q-select>
@@ -116,7 +120,7 @@
<q-select <q-select
label="Boat" label="Boat"
hint="Add a boat, if applicable" hint="Add a boat, if applicable"
v-model="newTask.boat" v-model="modifiedTask.boat"
use-input use-input
emit-value emit-value
input-debounce="250" input-debounce="250"
@@ -154,7 +158,10 @@ import type { TaskTag, SkillTag, Task } from 'src/stores/task';
import { date } from 'quasar'; import { date } from 'quasar';
import { Boat, useBoatStore } from 'src/stores/boat'; import { Boat, useBoatStore } from 'src/stores/boat';
const newTask = reactive<Task>({ const props = defineProps<{ taskId: string }>();
const taskStore = useTaskStore();
const defaultTask = <Task>{
description: '', description: '',
due_date: date.formatDate(Date.now(), 'YYYY-MM-DD'), due_date: date.formatDate(Date.now(), 'YYYY-MM-DD'),
required_skills: [], required_skills: [],
@@ -166,9 +173,11 @@ const newTask = reactive<Task>({
status: 'ready', status: 'ready',
depends_on: [], depends_on: [],
boat: '', boat: '',
}); };
const taskStore = useTaskStore(); const { taskId } = props;
const targetTask = taskId && taskStore.tasks.find((t) => t.$id === taskId);
const modifiedTask = reactive(targetTask ? targetTask : defaultTask);
taskStore.fetchSkillTags(); taskStore.fetchSkillTags();
taskStore.fetchTaskTags(); taskStore.fetchTaskTags();
@@ -230,7 +239,7 @@ function addTag(tag: string) {
} }
// Method to update the model in ISO 8601 format // Method to update the model in ISO 8601 format
const updateDateISO = (value: string) => { const updateDateISO = (value: string) => {
newTask.due_date = date.formatDate(value, 'YYYY-MM-DD'); modifiedTask.due_date = date.formatDate(value, 'YYYY-MM-DD');
}; };
const dateRule = (val: string) => { const dateRule = (val: string) => {
// Check if the date is valid using Quasar's date utils if needed // Check if the date is valid using Quasar's date utils if needed
@@ -240,14 +249,16 @@ const dateRule = (val: string) => {
const router = useRouter(); const router = useRouter();
async function onSubmit() { async function onSubmit() {
console.log(newTask); console.log(modifiedTask);
try { try {
// It would probably be more performant to store the tags as objects in the // It would probably be more performant to store the tags as objects in the
// form, and then extract the ID's before submitting. // form, and then extract the ID's before submitting.
newTask.required_skills = skillTagList.value.map((s) => s['$id']); modifiedTask.required_skills = skillTagList.value.map((s) => s['$id']);
newTask.tags = taskTagList.value.map((s) => s['$id']); modifiedTask.tags = taskTagList.value.map((s) => s['$id']);
newTask.depends_on = dependsList.value.map((d) => d['$id']) as string[]; modifiedTask.depends_on = dependsList.value.map(
await taskStore.addTask(newTask); (d) => d['$id']
) as string[];
await taskStore.addTask(modifiedTask);
console.log('Created Task'); console.log('Created Task');
router.go(-1); router.go(-1);
} catch (error) { } catch (error) {

View File

@@ -31,7 +31,7 @@
<q-chip square icon="verified" color="blue" text-color="white" <q-chip square icon="verified" color="blue" text-color="white"
>Capri25</q-chip >Capri25</q-chip
> >
<q-chip square icon="verified" color="yellow" text-color="white" <q-chip square icon="verified" color="red" text-color="white"
>Night</q-chip >Night</q-chip
> >
</q-item-section> </q-item-section>

View File

@@ -2,7 +2,7 @@
<ToolbarComponent pageTitle="Tasks" /> <ToolbarComponent pageTitle="Tasks" />
<q-page padding> <q-page padding>
<div class="q-pa-md" style="max-width: 400px"> <div class="q-pa-md" style="max-width: 400px">
<TaskEditComponent /> <TaskEditComponent taskId="660eb3627974223bb47a" />
</div> </div>
</q-page> </q-page>
</template> </template>