From 4da2139f15972a35aa160df66f68306a7ad34367 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Filip=20Kalu=C5=BEa?= Date: Fri, 3 Feb 2023 12:19:25 +0100 Subject: [PATCH] napojenie modalov na tasks screene --- app/src/plugins/app/_config/App.vue | 12 +++++-- .../tm@dashboard/_components/z-timeline.vue | 16 +++++++-- app/src/plugins/tm@dashboard/tasks/tasks.vue | 35 +++++++++++++++---- .../plugins/tm@modal/task/z-task-modal.vue | 1 + 4 files changed, 52 insertions(+), 12 deletions(-) diff --git a/app/src/plugins/app/_config/App.vue b/app/src/plugins/app/_config/App.vue index c322478..6de527d 100644 --- a/app/src/plugins/app/_config/App.vue +++ b/app/src/plugins/app/_config/App.vue @@ -8,10 +8,10 @@ - + - + @@ -90,6 +90,14 @@ export default { this.$events.emit('on-task-deleted', task) }, + onTaskCompleted(task) { + this.$events.emit('on-task-completed', task) + }, + + onTaskEdited(task) { + this.$events.emit('on-task-edited', task) + }, + onMasterTaskDeleted(masterTask){ this.$events.emit('on-master-task-deleted', masterTask) } diff --git a/app/src/plugins/tm@dashboard/_components/z-timeline.vue b/app/src/plugins/tm@dashboard/_components/z-timeline.vue index 563c8b1..a723dab 100644 --- a/app/src/plugins/tm@dashboard/_components/z-timeline.vue +++ b/app/src/plugins/tm@dashboard/_components/z-timeline.vue @@ -71,7 +71,7 @@ @@ -190,8 +190,18 @@ export default { // console.log(`Focused: ${event.task_id}`) }, - clickCompleteTask(event) { - if (event.completed) this.completeTask(event) + async clickCompleteTask(event) { + if (!event.completed) { + this.completeTask(event) + } else { + event.completed = !event.completed + try { + await this.$axios.patch_auth(`v1/tasks/${event.id}`, event) + this.$emit('reopenTask', event) + } catch (error) { + this.$toast.error(error) + } + } }, completeTask(task) { diff --git a/app/src/plugins/tm@dashboard/tasks/tasks.vue b/app/src/plugins/tm@dashboard/tasks/tasks.vue index 6dfc60e..9ef3778 100644 --- a/app/src/plugins/tm@dashboard/tasks/tasks.vue +++ b/app/src/plugins/tm@dashboard/tasks/tasks.vue @@ -3,7 +3,7 @@ - + @@ -31,6 +31,20 @@ export default { } }, + mounted() { + this.$events.on('on-task-deleted', (task) => { + this.deleteTask(task) + }) + + this.$events.on('on-task-completed', (task) => { + this.toggleCompleteTask(task) + }) + + this.$events.on('on-task-edited', (task) => { + this.editTask(task) + }) + }, + methods: { async getTimelineData(data) { this.config.date = data.firstDay @@ -147,13 +161,20 @@ export default { } }, - // deleteTask(id) { - // const task = this.timelineData.find(task => task.id == id) - // this.$refs['z-delete-task-modal'].delete(task) + deleteTask(task) { + const id = task.id + this.timelineData.tasks.splice(this.timelineData.tasks.findIndex(item => item.id === id), 1) + }, - // // TODO: Remove after BE integration - // this.timelineData.tasks.splice(this.timelineData.tasks.findIndex(item => item.id === id), 1) - // } + toggleCompleteTask(task) { + const taskInTasks = this.timelineData.tasks.find(e => e.id == task.id) + taskInTasks.completed = !taskInTasks.completed + }, + + editTask(task) { + const taskIndex = this.timelineData.tasks.findIndex(item => item.id === task.id) + this.timelineData.tasks[taskIndex] = task + }, } } 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 04cea04..3ecad71 100644 --- a/app/src/plugins/tm@modal/task/z-task-modal.vue +++ b/app/src/plugins/tm@modal/task/z-task-modal.vue @@ -420,6 +420,7 @@ export default { try { if (this.task.id) { await this.$axios.put_auth(`v1/mastertasks/${this.task.id}`, this.task) + this.$events.emit('on-task-edited', this.task) } else { await this.$axios.post_auth('v1/mastertasks', this.task) }