From b04ddd219d954c81785d3e76649c529e1d5920c3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Filip=20Kalu=C5=BEa?= Date: Wed, 11 Jan 2023 11:46:11 +0100 Subject: [PATCH] [timeline] delete a complete task --- app/public/mock/v1/overview/tasks.GET.json | 27 ++++-- app/public/mock/v1/overview/teams.GET.json | 84 +++++++++++-------- app/src/plugins/app@vendor/vue-cal/index.vue | 2 - .../tasks/_components/z-timeline.vue | 24 ++++-- app/src/plugins/tm@dashboard/tasks/tasks.vue | 14 +++- .../tm@modal/task/z-complete-task-modal.vue | 1 + .../tm@modal/task/z-delete-task-modal.vue | 1 + 7 files changed, 98 insertions(+), 55 deletions(-) diff --git a/app/public/mock/v1/overview/tasks.GET.json b/app/public/mock/v1/overview/tasks.GET.json index 8d9873c..d0655d9 100644 --- a/app/public/mock/v1/overview/tasks.GET.json +++ b/app/public/mock/v1/overview/tasks.GET.json @@ -43,7 +43,8 @@ "ends_at": "2023-01-08T09:00:00+00:00", "title": "Task DNES", "project_code": "CO-2201", - "master_task_color": "#E9FFE6" + "master_task_color": "#E9FFE6", + "completed": false }, { @@ -53,7 +54,8 @@ "ends_at": "2023-01-08T09:00:00+00:00", "title": "Kratky 30min Lorem ipsum dolor sit amet, consectetur adipiscing e", "project_code": "CO-2201", - "master_task_color": "#f27e57" + "master_task_color": "#f27e57", + "completed": false }, { @@ -63,7 +65,8 @@ "ends_at": "2023-01-08T10:45:00+00:00", "title": "Kratky 15min", "project_code": "CO-2201", - "master_task_color": "#57e0f2" + "master_task_color": "#57e0f2", + "completed": false }, { @@ -73,7 +76,8 @@ "ends_at": "2023-01-08T10:00:00+00:00", "title": "Task 2", "project_code": "CO-2201", - "master_task_color": "#FDE1FF" + "master_task_color": "#FDE1FF", + "completed": false }, { @@ -83,7 +87,8 @@ "ends_at": "2023-01-09T12:00:00+00:00", "title": "Task 6", "project_code": "CO-2201", - "master_task_color": "#57e0f2" + "master_task_color": "#57e0f2", + "completed": false }, { @@ -93,7 +98,8 @@ "ends_at": "2023-01-10T16:00:00+00:00", "title": "Task 7", "project_code": "CO-2201", - "master_task_color": "#E7DBF8" + "master_task_color": "#E7DBF8", + "completed": true }, { @@ -103,7 +109,8 @@ "ends_at": "2023-01-08T09:00:00+00:00", "title": "Task 8", "project_code": "CO-2201", - "master_task_color": "#57e0f2" + "master_task_color": "#57e0f2", + "completed": false }, { @@ -113,7 +120,8 @@ "ends_at": "2023-01-09T12:00:00+00:00", "title": "Task 9", "project_code": "CO-2201", - "master_task_color": "#E9FFE6" + "master_task_color": "#E9FFE6", + "completed": false }, { @@ -123,7 +131,8 @@ "ends_at": "2023-01-08T13:00:00+00:00", "title": "Task 10", "project_code": "CO-2201", - "master_task_color": "#57e0f2" + "master_task_color": "#57e0f2", + "completed": false } ] diff --git a/app/public/mock/v1/overview/teams.GET.json b/app/public/mock/v1/overview/teams.GET.json index 01e1711..1f38bbb 100644 --- a/app/public/mock/v1/overview/teams.GET.json +++ b/app/public/mock/v1/overview/teams.GET.json @@ -11,31 +11,34 @@ { "id": 1, "task_id": 1, - "starts_at": "2023-01-10T08:01:00+00:00", - "ends_at": "2023-01-10T09:00:00+00:00", + "starts_at": "2023-01-11T08:01:00+00:00", + "ends_at": "2023-01-11T09:00:00+00:00", "title": "Task DNES", "project_code": "CO-2201", - "master_task_color": "#E9FFE6" + "master_task_color": "#E9FFE6", + "completed": false }, { "id": 2, "task_id": 2, - "starts_at": "2023-01-10T08:30:00+00:00", - "ends_at": "2023-01-10T09:00:00+00:00", + "starts_at": "2023-01-11T08:30:00+00:00", + "ends_at": "2023-01-11T09:00:00+00:00", "title": "Kratky 30min Lorem ipsum dolor sit amet, consectetur adipiscing e", "project_code": "CO-2201", - "master_task_color": "#f27e57" + "master_task_color": "#f27e57", + "completed": false }, { "id": 3, "task_id": 3, - "starts_at": "2023-01-10T10:30:00+00:00", - "ends_at": "2023-01-10T10:45:00+00:00", + "starts_at": "2023-01-11T10:30:00+00:00", + "ends_at": "2023-01-11T10:45:00+00:00", "title": "Kratky 15min", "project_code": "CO-2201", - "master_task_color": "#57e0f2" + "master_task_color": "#57e0f2", + "completed": false } ] }, @@ -50,31 +53,34 @@ { "id": 1, "task_id": 1, - "starts_at": "2023-01-10T08:01:00+00:00", - "ends_at": "2023-01-10T09:00:00+00:00", + "starts_at": "2023-01-11T08:01:00+00:00", + "ends_at": "2023-01-11T09:00:00+00:00", "title": "Task DNES", "project_code": "CO-2201", - "master_task_color": "#E9FFE6" + "master_task_color": "#E9FFE6", + "completed": false }, { "id": 2, "task_id": 2, - "starts_at": "2023-01-10T08:30:00+00:00", - "ends_at": "2023-01-10T09:00:00+00:00", + "starts_at": "2023-01-11T08:30:00+00:00", + "ends_at": "2023-01-11T09:00:00+00:00", "title": "Kratky 30min Lorem ipsum dolor sit amet, consectetur adipiscing e", "project_code": "CO-2201", - "master_task_color": "#f27e57" + "master_task_color": "#f27e57", + "completed": false }, { "id": 3, "task_id": 3, - "starts_at": "2023-01-10T10:30:00+00:00", - "ends_at": "2023-01-10T10:45:00+00:00", + "starts_at": "2023-01-11T10:30:00+00:00", + "ends_at": "2023-01-11T10:45:00+00:00", "title": "Kratky 15min", "project_code": "CO-2201", - "master_task_color": "#57e0f2" + "master_task_color": "#57e0f2", + "completed": false } ] }, @@ -89,31 +95,34 @@ { "id": 1, "task_id": 1, - "starts_at": "2023-01-10T08:01:00+00:00", - "ends_at": "2023-01-10T09:00:00+00:00", + "starts_at": "2023-01-11T08:01:00+00:00", + "ends_at": "2023-01-11T09:00:00+00:00", "title": "Task DNES", "project_code": "CO-2201", - "master_task_color": "#E9FFE6" + "master_task_color": "#E9FFE6", + "completed": false }, { "id": 2, "task_id": 2, - "starts_at": "2023-01-10T08:30:00+00:00", - "ends_at": "2023-01-10T09:00:00+00:00", + "starts_at": "2023-01-11T08:30:00+00:00", + "ends_at": "2023-01-11T09:00:00+00:00", "title": "Kratky 30min Lorem ipsum dolor sit amet, consectetur adipiscing e", "project_code": "CO-2201", - "master_task_color": "#f27e57" + "master_task_color": "#f27e57", + "completed": false }, { "id": 3, "task_id": 3, - "starts_at": "2023-01-10T10:30:00+00:00", - "ends_at": "2023-01-10T10:45:00+00:00", + "starts_at": "2023-01-11T10:30:00+00:00", + "ends_at": "2023-01-11T10:45:00+00:00", "title": "Kratky 15min", "project_code": "CO-2201", - "master_task_color": "#57e0f2" + "master_task_color": "#57e0f2", + "completed": false } ] }, @@ -128,31 +137,34 @@ { "id": 1, "task_id": 1, - "starts_at": "2023-01-10T08:01:00+00:00", - "ends_at": "2023-01-10T09:00:00+00:00", + "starts_at": "2023-01-11T08:01:00+00:00", + "ends_at": "2023-01-11T09:00:00+00:00", "title": "Task DNES", "project_code": "CO-2201", - "master_task_color": "#E9FFE6" + "master_task_color": "#E9FFE6", + "completed": false }, { "id": 2, "task_id": 2, - "starts_at": "2023-01-10T08:30:00+00:00", - "ends_at": "2023-01-10T09:00:00+00:00", + "starts_at": "2023-01-11T08:30:00+00:00", + "ends_at": "2023-01-11T09:00:00+00:00", "title": "Kratky 30min Lorem ipsum dolor sit amet, consectetur adipiscing e", "project_code": "CO-2201", - "master_task_color": "#f27e57" + "master_task_color": "#f27e57", + "completed": false }, { "id": 3, "task_id": 3, - "starts_at": "2023-01-10T10:30:00+00:00", - "ends_at": "2023-01-10T10:45:00+00:00", + "starts_at": "2023-01-11T10:30:00+00:00", + "ends_at": "2023-01-11T10:45:00+00:00", "title": "Kratky 15min", "project_code": "CO-2201", - "master_task_color": "#57e0f2" + "master_task_color": "#57e0f2", + "completed": false } ] } diff --git a/app/src/plugins/app@vendor/vue-cal/index.vue b/app/src/plugins/app@vendor/vue-cal/index.vue index bd424b1..6d928bc 100644 --- a/app/src/plugins/app@vendor/vue-cal/index.vue +++ b/app/src/plugins/app@vendor/vue-cal/index.vue @@ -1237,8 +1237,6 @@ export default { }, created() { - console.log(this.splitDays) - this.utils.cell = new CellUtils(this) this.utils.event = new EventUtils(this, this.utils.date) diff --git a/app/src/plugins/tm@dashboard/tasks/_components/z-timeline.vue b/app/src/plugins/tm@dashboard/tasks/_components/z-timeline.vue index 9ff343c..32604c3 100644 --- a/app/src/plugins/tm@dashboard/tasks/_components/z-timeline.vue +++ b/app/src/plugins/tm@dashboard/tasks/_components/z-timeline.vue @@ -66,7 +66,7 @@ @@ -81,8 +81,8 @@ - - + + @@ -146,10 +146,6 @@ export default { weekChanged() { const scrollContainer = document.getElementsByClassName('vuecal__scrollable-body')[0] scrollContainer.scrollLeft = 0 - - this.$nextTick(() => { - this.scrollToYesterday() - }) }, async eventMoved(e) { @@ -206,6 +202,14 @@ export default { this.focusedEventId = event.task_id // console.log(`Focused: ${event.task_id}`) }, + + completeTask(id) { + this.$emit('completeTask', id) + }, + + deleteTask(id) { + this.$emit('deleteTask', id) + } } } @@ -335,6 +339,9 @@ export default { min-height: 40px transition: min-height .4s, height .4s, box-shadow .4s, width .4s, left .4s + // &:has(.completed) + // filter: grayscale(.9) !important + &:has(.non-working-event) background: repeating-linear-gradient(135deg, rgba(215, 215, 215, 1), rgba(215, 215, 215, 1) 1px, rgba(224, 224, 224, 1) 1px, rgba(224, 224, 224, 1) 20px) border: 1px solid rgba(215, 215, 215, 1) @@ -441,6 +448,9 @@ export default { min-width: fit-content width: fit-content + &.completed + background: #00B3A6 + img width: 18px diff --git a/app/src/plugins/tm@dashboard/tasks/tasks.vue b/app/src/plugins/tm@dashboard/tasks/tasks.vue index ec8340e..5199dfa 100644 --- a/app/src/plugins/tm@dashboard/tasks/tasks.vue +++ b/app/src/plugins/tm@dashboard/tasks/tasks.vue @@ -3,7 +3,7 @@ - + { + if (task.id == id) { + task.completed = true + } + }) + }, + + deleteTask(id) { + this.timelineData.tasks.splice(this.timelineData.tasks.findIndex(item => item.id === id), 1) } } } diff --git a/app/src/plugins/tm@modal/task/z-complete-task-modal.vue b/app/src/plugins/tm@modal/task/z-complete-task-modal.vue index e78d170..f6438d1 100644 --- a/app/src/plugins/tm@modal/task/z-complete-task-modal.vue +++ b/app/src/plugins/tm@modal/task/z-complete-task-modal.vue @@ -44,6 +44,7 @@ export default { await this.$axios.post(`v1/tasks/${task.id}`, task) this.show = false + this.$emit('completeTask', task.id) } catch (error) { this.$toast.error(error) } diff --git a/app/src/plugins/tm@modal/task/z-delete-task-modal.vue b/app/src/plugins/tm@modal/task/z-delete-task-modal.vue index 116b1f3..5c4fea0 100644 --- a/app/src/plugins/tm@modal/task/z-delete-task-modal.vue +++ b/app/src/plugins/tm@modal/task/z-delete-task-modal.vue @@ -39,6 +39,7 @@ export default { try { await this.$axios.delete(`v1/tasks/${this.task.id}`) this.show = false + this.$emit('deleteTask', this.task.id) } catch (error) { this.$toast.error(error) }