1
0

fix(task): do not move task dates when undoing a repeated task

Resolves https://community.vikunja.io/t/undo-on-repeated-task-moves-dates-forward/970
This commit is contained in:
kolaente 2024-06-17 15:49:28 +02:00
parent 06c3a64594
commit 657e9a5413
No known key found for this signature in database
GPG Key ID: F40E70337AB24C9B
2 changed files with 16 additions and 3 deletions

View File

@ -296,11 +296,21 @@ useIntervalFn(updateDueDate, 60_000, {
}) })
onMounted(updateDueDate) onMounted(updateDueDate)
let oldTask
async function markAsDone(checked: boolean) { async function markAsDone(checked: boolean, wasReverted: boolean = false) {
const updateFunc = async () => { const updateFunc = async () => {
oldTask = {...task.value}
const newTask = await taskStore.update(task.value) const newTask = await taskStore.update(task.value)
task.value = newTask task.value = newTask
updateDueDate()
if (wasReverted) {
success({message: t('task.revertSuccess')})
return
}
if (checked && useAuthStore().settings.frontendSettings.playSoundWhenDone) { if (checked && useAuthStore().settings.frontendSettings.playSoundWhenDone) {
playPopSound() playPopSound()
} }
@ -315,7 +325,6 @@ async function markAsDone(checked: boolean) {
title: t('task.undo'), title: t('task.undo'),
callback: () => undoDone(checked), callback: () => undoDone(checked),
}]) }])
updateDueDate()
} }
if (checked) { if (checked) {
@ -326,8 +335,11 @@ async function markAsDone(checked: boolean) {
} }
function undoDone(checked: boolean) { function undoDone(checked: boolean) {
if (isRepeating.value) {
task.value = {...oldTask}
}
task.value.done = !task.value.done task.value.done = !task.value.done
markAsDone(!checked) markAsDone(!checked, true)
} }
async function toggleFavorite() { async function toggleFavorite() {

View File

@ -733,6 +733,7 @@
"addReminder": "Add a reminder…", "addReminder": "Add a reminder…",
"doneSuccess": "The task was successfully marked as done.", "doneSuccess": "The task was successfully marked as done.",
"undoneSuccess": "The task was successfully un-marked as done.", "undoneSuccess": "The task was successfully un-marked as done.",
"revertSuccess": "The task change was successfully undone.",
"undo": "Undo", "undo": "Undo",
"openDetail": "Open task detail view", "openDetail": "Open task detail view",
"checklistTotal": "{checked} of {total} tasks", "checklistTotal": "{checked} of {total} tasks",