diff --git a/app/src/plugins/tm@dashboard/tasks/_utils/timeline.utils.ts b/app/src/plugins/tm@dashboard/tasks/_utils/timeline.utils.ts
index 05bebf8..2b69081 100644
--- a/app/src/plugins/tm@dashboard/tasks/_utils/timeline.utils.ts
+++ b/app/src/plugins/tm@dashboard/tasks/_utils/timeline.utils.ts
@@ -3,10 +3,15 @@ import moment from 'moment'
export default {
generateTimelineTasks(subtasks, date, employee) {
- return [
- ...this.generateTimelineEvents(subtasks, employee, date),
- ...this.generateTimelineNonWorkingHours(date, employee)
- ]
+ const { tasks, blockers, homeoffices } = this.generateTimelineEvents(subtasks, employee, date)
+ const { nonWorkingHours } = this.generateTimelineNonWorkingHours(date, employee)
+
+ return {
+ tasks,
+ blockers,
+ nonWorkingHours,
+ homeoffices
+ }
},
getUnscheduledTime(subtasks) {
@@ -21,19 +26,24 @@ export default {
},
generateTimelineEvents(subtasks, employee, date) {
- let events = []
+ let blockers = []
+ const tasks = []
subtasks.forEach(subtask => {
if (['blocker', 'adhoc', 'home_office', 'vacation', 'free_day'].includes(subtask.type)) {
- events = [...events, ...this._generateEventsFromBlocker(subtask, date)]
+ blockers = [...blockers, ...this._generateEventsFromBlocker(subtask, date)]
} else {
subtask.timeblocks?.forEach((timeblock) => {
- events.push(this._composeTimelineEvent(subtask, employee, date, timeblock))
+ tasks.push(this._composeTimelineEvent(subtask, employee, date, timeblock))
})
}
})
- return events
+ return {
+ tasks,
+ blockers: blockers.filter(blocker => blocker.type != 'home_office'),
+ homeoffices: blockers.filter(blocker => blocker.type == 'home_office')
+ }
},
_composeTimelineEvent(subtask, employee, date, timeblock) {
@@ -118,7 +128,7 @@ export default {
})
}
- return events
+ return {nonWorkingHours: events}
},
_getSplitFromDate(date, start) {
diff --git a/app/src/plugins/tm@dashboard/tasks/tasks.vue b/app/src/plugins/tm@dashboard/tasks/tasks.vue
index 5d92219..9c20ce2 100644
--- a/app/src/plugins/tm@dashboard/tasks/tasks.vue
+++ b/app/src/plugins/tm@dashboard/tasks/tasks.vue
@@ -44,16 +44,16 @@ export default {
if (!workingHours[task.split])
workingHours[task.split] = 0
- if (task.type == 'home_office') {
- return homeoffice[task.split] = true
- }
-
if (task.type == 'non-working-hours' || task.subtask?.is_finished || task.blocker?.is_finished)
return
workingHours[task.split] += timelineUtils._getDifferenceInHours(task.end, task.start)
})
+ this.timelineData.homeoffices.forEach(task => {
+ homeoffice[task.split] = true
+ })
+
for (let i = 0; i < 7; i++) {
days.push({
id: i + 1,
@@ -80,11 +80,14 @@ export default {
if (!this.subtasks || !this.filter)
return null
+ const { tasks, blockers, nonWorkingHours, homeoffices } = timelineUtils.generateTimelineTasks(this.subtasks, new Date(this.filter.start), this.filter.employee)
+
return {
name: this.filter.employee.name,
surname: this.filter.employee.surname,
unscheduledTime: this.unscheduledTime,
- tasks: timelineUtils.generateTimelineTasks(this.subtasks, new Date(this.filter.start), this.filter.employee)
+ tasks: [...tasks, ...blockers, ...nonWorkingHours],
+ homeoffices
}
}
},
diff --git a/app/src/plugins/tm@modal/master-task/z-master-task-modal.vue b/app/src/plugins/tm@modal/master-task/z-master-task-modal.vue
index f332169..d489944 100644
--- a/app/src/plugins/tm@modal/master-task/z-master-task-modal.vue
+++ b/app/src/plugins/tm@modal/master-task/z-master-task-modal.vue
@@ -12,7 +12,7 @@
- {{ subtask._initials }} -
-