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 @@ - + @@ -25,13 +25,6 @@

-