mirror of
https://github.com/DCsunset/taskwarrior-webui.git
synced 2025-08-20 19:33:06 +02:00
Add scheduled field to the UI
This commit is contained in:
parent
1d79a90ffb
commit
1136d94e77
2 changed files with 23 additions and 2 deletions
|
@ -24,6 +24,10 @@
|
|||
hide-selected
|
||||
label="Project"
|
||||
/>
|
||||
<v-text-field
|
||||
v-model="formData.scheduled"
|
||||
label="Scheduled"
|
||||
/>
|
||||
<v-text-field
|
||||
v-model="formData.due"
|
||||
:label="recur ? 'Due*' : 'Due'"
|
||||
|
@ -127,6 +131,7 @@ export default defineComponent({
|
|||
const formData = ref({
|
||||
description: '',
|
||||
project: '',
|
||||
scheduled: '',
|
||||
due: '',
|
||||
until: '',
|
||||
wait: '',
|
||||
|
@ -140,6 +145,7 @@ export default defineComponent({
|
|||
formData.value = {
|
||||
description: '',
|
||||
project: '',
|
||||
scheduled: '',
|
||||
due: '',
|
||||
until: '',
|
||||
wait: '',
|
||||
|
@ -168,6 +174,7 @@ export default defineComponent({
|
|||
await context.root.$store.dispatch('updateTasks', [{
|
||||
...formData.value,
|
||||
project: formData.value.project || undefined,
|
||||
scheduled: formData.value.scheduled || undefined,
|
||||
due: formData.value.due || undefined,
|
||||
until: formData.value.until || undefined,
|
||||
wait: formData.value.wait || undefined,
|
||||
|
|
|
@ -121,6 +121,9 @@
|
|||
<template v-if="status === 'waiting'" v-slot:item.wait="{ item }">
|
||||
{{ displayDate(item.wait) }}
|
||||
</template>
|
||||
<template v-slot:item.scheduled="{ item }">
|
||||
{{ displayDate(item.scheduled) }}
|
||||
</template>
|
||||
<template v-slot:item.due="{ item }">
|
||||
{{ displayDate(item.due) }}
|
||||
</template>
|
||||
|
@ -226,6 +229,14 @@ function expiredDate(str?: string) {
|
|||
return date.isBefore(moment());
|
||||
}
|
||||
|
||||
function futureDate(str?: string) {
|
||||
if (!str)
|
||||
return false;
|
||||
|
||||
const date = moment(str);
|
||||
return date.isAfter(moment());
|
||||
}
|
||||
|
||||
function linkify(text: string) {
|
||||
const regex = urlRegex();
|
||||
|
||||
|
@ -271,6 +282,7 @@ export default defineComponent({
|
|||
{ text: 'Project', value: 'project' },
|
||||
{ text: 'Description', value: 'description' },
|
||||
{ text: 'Priority', value: 'priority' },
|
||||
{ text: 'Scheduled', value: 'scheduled' },
|
||||
...(status.value === 'recurring'
|
||||
? [{ text: 'Recur', value: 'recur' }]
|
||||
: []),
|
||||
|
@ -286,8 +298,10 @@ export default defineComponent({
|
|||
const tempTasks: { [key: string]: ComputedRef<Task[]> } = {};
|
||||
for (const status of allStatus) {
|
||||
tempTasks[status] = computed((): Task[] => props.tasks?.filter(task => {
|
||||
if (status === "waiting") {
|
||||
return task.status === "pending" && task.wait && !expiredDate(task.wait);
|
||||
if (status === "waiting" || status === "pending") {
|
||||
const waiting = (task.wait && !expiredDate(task.wait))
|
||||
|| (task.scheduled && futureDate(task.scheduled));
|
||||
return task.status === "pending" && (status === "pending" ? !waiting : waiting);
|
||||
}
|
||||
else if (status === "pending") {
|
||||
return task.status === "pending" && !(task.wait && !expiredDate(task.wait));
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue