diff --git a/backend/.idea/workspace.xml b/backend/.idea/workspace.xml
index c0cb9cd..c7a54fb 100644
--- a/backend/.idea/workspace.xml
+++ b/backend/.idea/workspace.xml
@@ -5,11 +5,7 @@
-
-
-
-
@@ -107,7 +103,9 @@
-
+
+
+
@@ -271,6 +269,16 @@
52
+
+ file://$PROJECT_DIR$/src/main/java/core/services/TaskScheduleService.java
+ 86
+
+
+
+ file://$PROJECT_DIR$/src/main/java/core/services/TaskScheduleService.java
+ 93
+
+
diff --git a/backend/src/main/java/core/api/models/timemanager/taskgroup/RecursiveTaskgroupInfo.java b/backend/src/main/java/core/api/models/timemanager/taskgroup/RecursiveTaskgroupInfo.java
index 2cfd127..3e5e8e5 100644
--- a/backend/src/main/java/core/api/models/timemanager/taskgroup/RecursiveTaskgroupInfo.java
+++ b/backend/src/main/java/core/api/models/timemanager/taskgroup/RecursiveTaskgroupInfo.java
@@ -32,7 +32,7 @@ public class RecursiveTaskgroupInfo {
for(Task task : taskgroup.getActiveTasks()) {
this.activeTasks.add(new TaskOverviewInfo(task));
- if(task.getDeadline().isBefore(LocalDate.now())) {
+ if(task.getDeadline() != null && task.getDeadline().isBefore(LocalDate.now())) {
this.hasOverdueTask = true;
}
}
diff --git a/backend/src/main/java/core/api/models/timemanager/tasks/TaskEntityInfo.java b/backend/src/main/java/core/api/models/timemanager/tasks/TaskEntityInfo.java
index 6fb9121..3fcf030 100644
--- a/backend/src/main/java/core/api/models/timemanager/tasks/TaskEntityInfo.java
+++ b/backend/src/main/java/core/api/models/timemanager/tasks/TaskEntityInfo.java
@@ -28,7 +28,9 @@ public class TaskEntityInfo {
this.eta = task.getEta();
this.startDate = task.getStartDate();
this.deadline = task.getDeadline();
- this.overdue = LocalDate.now().isAfter(task.getDeadline());
+ if(task.getDeadline() != null) {
+ this.overdue = LocalDate.now().isAfter(task.getDeadline());
+ }
this.finished = task.isFinished();
this.workTime = task.getWorkTime();
}
diff --git a/backend/src/main/java/core/api/models/timemanager/tasks/TaskOverviewInfo.java b/backend/src/main/java/core/api/models/timemanager/tasks/TaskOverviewInfo.java
index 22d5dc7..d4d701b 100644
--- a/backend/src/main/java/core/api/models/timemanager/tasks/TaskOverviewInfo.java
+++ b/backend/src/main/java/core/api/models/timemanager/tasks/TaskOverviewInfo.java
@@ -19,7 +19,9 @@ public class TaskOverviewInfo {
this.activeMinutes = task.getWorkTime();
this.eta = task.getEta();
this.limit = task.getDeadline();
- this.overdue = LocalDate.now().isAfter(task.getDeadline());
+ if(task.getDeadline() != null) {
+ this.overdue = LocalDate.now().isAfter(task.getDeadline());
+ }
}
public long getTaskID() {
diff --git a/backend/src/main/java/core/services/TaskScheduleService.java b/backend/src/main/java/core/services/TaskScheduleService.java
index 85562b4..933dca4 100644
--- a/backend/src/main/java/core/services/TaskScheduleService.java
+++ b/backend/src/main/java/core/services/TaskScheduleService.java
@@ -82,7 +82,8 @@ public class TaskScheduleService {
public ServiceResult scheduleTaskNow(Task task) {
//Check if task has already an active schedule
- if(task.hasActiveSchedule()) {
+ ServiceResult activeSchedule = getActiveSchedule(task.getTaskgroup().getUser().getUsername());
+ if(task.hasActiveSchedule() || activeSchedule.getExitCode() != ServiceExitCode.MISSING_ENTITY) {
return new ServiceResult<>(ServiceExitCode.ENTITY_ALREADY_EXIST);
} else {
BasicTaskSchedule basicTaskSchedule = new BasicTaskSchedule(task, LocalDate.now());
diff --git a/frontend/src/app/tasks/task-editor/task-editor.component.ts b/frontend/src/app/tasks/task-editor/task-editor.component.ts
index 7c18112..dd5d4c6 100644
--- a/frontend/src/app/tasks/task-editor/task-editor.component.ts
+++ b/frontend/src/app/tasks/task-editor/task-editor.component.ts
@@ -72,11 +72,13 @@ export class TaskEditorComponent implements OnInit {
}
editTask() {
+ const startingDate = this.startDate.value.length == 0? null:this.startDate.value.length
+ const deadline = this.endDate.value.length == 0? null:this.endDate.value.length
this.taskService.tasksTaskIDPost(this.editorData.task!.taskID, {
taskName: this.nameCtrl.value,
eta: this.etaCtrl.value,
- startDate: this.startDate.value,
- deadline: this.endDate.value
+ startDate: startingDate,
+ deadline: deadline
}).subscribe({
next: resp => {
this.editorData.task!.taskName = this.nameCtrl.value;