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