issue-52 #64
@ -6,9 +6,8 @@
|
||||
<component name="ChangeListManager">
|
||||
<list default="true" id="3a869f59-290a-4ab2-b036-a878ce801bc4" name="Changes" comment="Fix parsing datetime (diesmal hoffentlich wirklich)">
|
||||
<change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/src/main/java/core/api/controller/ScheduleController.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/core/api/controller/ScheduleController.java" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/src/main/java/core/api/models/timemanager/taskSchedule/scheduleInfos/BasicScheduleFieldInfo.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/core/api/models/timemanager/taskSchedule/scheduleInfos/BasicScheduleFieldInfo.java" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/../frontend/src/app/app.module.ts" beforeDir="false" afterPath="$PROJECT_DIR$/../frontend/src/app/app.module.ts" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/src/main/java/core/api/models/timemanager/tasks/TaskOverviewInfo.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/core/api/models/timemanager/tasks/TaskOverviewInfo.java" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/../openapi.yaml" beforeDir="false" afterPath="$PROJECT_DIR$/../openapi.yaml" afterDir="false" />
|
||||
</list>
|
||||
<option name="SHOW_DIALOG" value="false" />
|
||||
<option name="HIGHLIGHT_CONFLICTS" value="true" />
|
||||
|
@ -1,8 +1,11 @@
|
||||
package core.api.models.timemanager.tasks;
|
||||
|
||||
import core.api.models.timemanager.taskgroup.TaskgroupEntityInfo;
|
||||
import core.entities.timemanager.Task;
|
||||
import core.entities.timemanager.Taskgroup;
|
||||
|
||||
import java.time.LocalDate;
|
||||
import java.util.List;
|
||||
|
||||
public class TaskOverviewInfo {
|
||||
|
||||
@ -13,6 +16,7 @@ public class TaskOverviewInfo {
|
||||
private LocalDate limit;
|
||||
private boolean overdue;
|
||||
|
||||
|
||||
public TaskOverviewInfo(Task task) {
|
||||
this.taskID = task.getTaskID();
|
||||
this.taskName = task.getTaskName();
|
||||
|
@ -3,15 +3,16 @@
|
||||
* No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
|
||||
*
|
||||
* The version of the OpenAPI document: 1.0
|
||||
*
|
||||
*
|
||||
*
|
||||
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
|
||||
* https://openapi-generator.tech
|
||||
* Do not edit the class manually.
|
||||
*/
|
||||
import { TaskgroupEntityInfo } from './taskgroupEntityInfo';
|
||||
|
||||
|
||||
export interface TaskOverviewInfo {
|
||||
export interface TaskOverviewInfo {
|
||||
/**
|
||||
* internal id of task
|
||||
*/
|
||||
|
@ -22,28 +22,29 @@
|
||||
</mwl-calendar-week-view>
|
||||
</div>
|
||||
<div style="width: 23%;">
|
||||
<app-taskgroup-overview (taskgroupSelected)="onSelectTaskgroup($event)"></app-taskgroup-overview>
|
||||
|
||||
<div *ngIf="tasks.length > 0">
|
||||
<mat-action-list style="padding: 0; margin-top: 20px" >
|
||||
<mat-action-list style="padding: 0;">
|
||||
<button mat-list-item class="lightBlueBtn" [routerLink]="['/scheduler']">Tasks</button>
|
||||
</mat-action-list>
|
||||
<div mwlDroppable
|
||||
(drop)="externalDrop($event.dropData.event)"
|
||||
dragOverClass="drag-over">
|
||||
<div *ngFor="let event of tasks" mwlDraggable
|
||||
[dropData]="{event: event}"
|
||||
[touchStartLongPress]="{ delay: 300, delta: 30 }"
|
||||
dragActiveClass="drag-active" class="task-card">
|
||||
<div>
|
||||
<a href="javascript:;" [style.color]="event.color" style="text-decoration: none; color: black; margin-left: 20px">
|
||||
{{ event.title }}
|
||||
</a>
|
||||
<div style="margin-bottom: 20px">
|
||||
<div mwlDroppable
|
||||
(drop)="externalDrop($event.dropData.event)"
|
||||
dragOverClass="drag-over">
|
||||
<div *ngFor="let event of tasks" mwlDraggable
|
||||
[dropData]="{event: event}"
|
||||
[touchStartLongPress]="{ delay: 300, delta: 30 }"
|
||||
dragActiveClass="drag-active" class="task-card">
|
||||
<div>
|
||||
<a href="javascript:;" [style.color]="event.color" style="text-decoration: none; color: black; margin-left: 20px">
|
||||
{{ event.title }}
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<app-taskgroup-overview (taskgroupSelected)="onSelectTaskgroup($event)"></app-taskgroup-overview>
|
||||
</div>
|
||||
|
||||
|
||||
|
@ -7,7 +7,7 @@ import {
|
||||
ScheduleService,
|
||||
TaskEntityInfo,
|
||||
TaskgroupEntityInfo,
|
||||
TaskOverviewInfo
|
||||
TaskOverviewInfo, TaskShortInfo
|
||||
} from "../../../api";
|
||||
import {Subject} from "rxjs";
|
||||
import {CalendarEvent, CalendarEventTimesChangedEvent, CalendarView} from "angular-calendar";
|
||||
@ -80,7 +80,7 @@ export class DraggableSchedulerComponent {
|
||||
if(schedule.scheduleType == 'BASIC') {
|
||||
const basicSchedule = schedule as BasicScheduleInfo
|
||||
this.events.push({
|
||||
title: schedule.task.taskName,
|
||||
title: this.computeTaskPath(schedule.taskgroupPath, schedule.task),
|
||||
color: colors['red'],
|
||||
start: new Date(basicSchedule.scheduleDate),
|
||||
allDay: true,
|
||||
@ -97,7 +97,7 @@ export class DraggableSchedulerComponent {
|
||||
} else {
|
||||
const advancedSchedule = schedule as AdvancedScheduleInfo
|
||||
this.events.push({
|
||||
title: schedule.task.taskName,
|
||||
title: this.computeTaskPath(schedule.taskgroupPath, schedule.task),
|
||||
color: colors['red'],
|
||||
start: new Date(advancedSchedule.scheduleStartTime),
|
||||
end: new Date(advancedSchedule.scheduleStopTime),
|
||||
@ -176,7 +176,8 @@ export class DraggableSchedulerComponent {
|
||||
}).subscribe({
|
||||
next: resp => {
|
||||
event.meta.scheduleID = resp.scheduleID;
|
||||
event.color = colors['red']
|
||||
event.color = colors['red'];
|
||||
event.title = this.computeTaskPath(resp.taskgroupPath, resp.task)
|
||||
}
|
||||
})
|
||||
} else {
|
||||
@ -191,7 +192,8 @@ export class DraggableSchedulerComponent {
|
||||
}).subscribe({
|
||||
next: resp => {
|
||||
event.meta.scheduleID = resp.scheduleID;
|
||||
event.color = colors['red']
|
||||
event.color = colors['red'];
|
||||
event.title = this.computeTaskPath(resp.taskgroupPath, resp.task)
|
||||
}
|
||||
})
|
||||
}
|
||||
@ -217,5 +219,13 @@ export class DraggableSchedulerComponent {
|
||||
}
|
||||
}
|
||||
|
||||
computeTaskPath(taskgroupPath: TaskgroupEntityInfo[], task: TaskShortInfo | TaskEntityInfo) {
|
||||
let result = "";
|
||||
taskgroupPath.forEach(taskgroupPathPart => {
|
||||
result += taskgroupPathPart.taskgroupName + "/"
|
||||
});
|
||||
result += task!.taskName
|
||||
return result;
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -2421,6 +2421,7 @@ components:
|
||||
- eta
|
||||
- limit
|
||||
- overdue
|
||||
- taskgroupPath
|
||||
additionalProperties: false
|
||||
properties:
|
||||
taskID:
|
||||
@ -2448,6 +2449,10 @@ components:
|
||||
type: number
|
||||
description: number in minutes that was already worked on this task
|
||||
example: 10
|
||||
taskgroupPath:
|
||||
type: array
|
||||
items:
|
||||
$ref: '#/components/schemas/TaskgroupEntityInfo'
|
||||
ScheduleStatus:
|
||||
required:
|
||||
- activeMinutes
|
||||
|
Loading…
Reference in New Issue
Block a user