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)
}