From d9d12bc6bd52ba715e85a76da38bd565c3dfd249 Mon Sep 17 00:00:00 2001 From: JakubPapso <“jakubpapso@gmail.com”> Date: Fri, 6 Sep 2024 19:21:27 +0200 Subject: [PATCH] [deadline fix] --- .../_components/a-task-spent-time.vue | 16 +++++++++++++--- .../_components/a-task-timeblocks.vue | 17 ++++++++++++++--- app/src/plugins/tm@modal/task/z-task-modal.vue | 9 +++++++-- 3 files changed, 34 insertions(+), 8 deletions(-) diff --git a/app/src/plugins/tm@modal/task/_components/_components/a-task-spent-time.vue b/app/src/plugins/tm@modal/task/_components/_components/a-task-spent-time.vue index 5d69bb3..18127d9 100644 --- a/app/src/plugins/tm@modal/task/_components/_components/a-task-spent-time.vue +++ b/app/src/plugins/tm@modal/task/_components/_components/a-task-spent-time.vue @@ -110,7 +110,7 @@ export default { time: typeof this.form.hours == 'string' ? parseFloat(this.form.hours) : this.form.hours }) - if(subtask.deadline) subtask.deadline = tmUtils.formatDateTimeForBackend(subtask.deadline) + if(subtask.deadline) subtask.deadline = tmUtils.formatDateTimeForBackend(this._mergeDeadlineTimeDate()) this._update(subtask) }, @@ -118,7 +118,7 @@ export default { async deleteTimesheet({ id }) { const subtask = JSON.parse(JSON.stringify(this.subtask)) subtask.timesheets = subtask.timesheets.filter(timesheet => timesheet.id != id) - if(subtask.deadline) subtask.deadline = tmUtils.formatDateTimeForBackend(subtask.deadline) + if(subtask.deadline) subtask.deadline = tmUtils.formatDateTimeForBackend(this._mergeDeadlineTimeDate()) this._update(subtask) }, @@ -145,7 +145,17 @@ export default { } catch (error) { this.$toast.error(error.message || error) } - } + }, + + _mergeDeadlineTimeDate() { + const date = new Date(this.subtask.deadline) + const timeParts = this.subtask._deadline_time.split(':') + + date.setHours(parseInt(timeParts[0])) + date.setMinutes(parseInt(timeParts[1])) + + return date + }, } } diff --git a/app/src/plugins/tm@modal/task/_components/_components/a-task-timeblocks.vue b/app/src/plugins/tm@modal/task/_components/_components/a-task-timeblocks.vue index c57cbaf..8f34994 100644 --- a/app/src/plugins/tm@modal/task/_components/_components/a-task-timeblocks.vue +++ b/app/src/plugins/tm@modal/task/_components/_components/a-task-timeblocks.vue @@ -144,7 +144,7 @@ export default { start: tmUtils.formatDateTimeForBackend(start) }) - if(subtask.deadline) subtask.deadline = tmUtils.formatDateTimeForBackend(subtask.deadline) + if(subtask.deadline) subtask.deadline = tmUtils.formatDateTimeForBackend(this._mergeDeadlineTimeDate()) const isAfterDeadline = this.isAfterDeadline() @@ -177,7 +177,7 @@ export default { start: tmUtils.formatDateTimeForBackend(start) }) - if(subtask.deadline) subtask.deadline = tmUtils.formatDateTimeForBackend(subtask.deadline) + if(subtask.deadline) subtask.deadline = tmUtils.formatDateTimeForBackend(this._mergeDeadlineTimeDate()) if (!subtask.id) { this.$emit('update-unfinished-subtask', subtask) @@ -218,8 +218,9 @@ export default { async deleteTimeblock({ id }) { const subtask = JSON.parse(JSON.stringify(this.subtask)) + subtask.timeblocks = subtask.timeblocks.filter(timeblock => timeblock.id != id) - if(subtask.deadline) subtask.deadline = tmUtils.formatDateTimeForBackend(subtask.deadline) + if(subtask.deadline) subtask.deadline = tmUtils.formatDateTimeForBackend(this._mergeDeadlineTimeDate()) this._update(subtask) }, @@ -268,6 +269,16 @@ export default { return subtask.master_task_deadline }, + _mergeDeadlineTimeDate() { + const date = new Date(this.subtask.deadline) + const timeParts = this.subtask._deadline_time.split(':') + + date.setHours(parseInt(timeParts[0])) + date.setMinutes(parseInt(timeParts[1])) + + return date + }, + closeModal() { this.form = { date: null, diff --git a/app/src/plugins/tm@modal/task/z-task-modal.vue b/app/src/plugins/tm@modal/task/z-task-modal.vue index 71270c3..0cf154a 100644 --- a/app/src/plugins/tm@modal/task/z-task-modal.vue +++ b/app/src/plugins/tm@modal/task/z-task-modal.vue @@ -220,7 +220,12 @@ export default { }) this.$events.on('on-subtask-edited', (subtask) => { - if (subtask?.id == this.subtask?.id) this.subtask = this._enrichTask(subtask) + if (subtask?.id !== this.subtask?.id) return + const data = JSON.parse(JSON.stringify(subtask)) + const splittedDeadline = data.deadline.split(' ') + data.deadline = splittedDeadline[0] + data._deadline_time = splittedDeadline[1] + this.subtask = this._enrichTask(data) // TODO: Remove? riesil som neodstranovanie jedineho zanamu v trvani a odpracovanom case this.$forceUpdate() @@ -268,7 +273,7 @@ export default { } const splittedDeadline = data.deadline.split(' ') - data.deadline = moment(splittedDeadline[0]) + data.deadline = splittedDeadline[0] data._deadline_time = splittedDeadline[1] this.subtask = this._enrichTask(data)