Visualize Advanced Schedules in ScheduleDashboard
All checks were successful
Java CI with Maven / build (push) Successful in 49s

This commit is contained in:
Sebastian Böckelmann 2023-11-12 10:45:47 +01:00
parent 5b62986029
commit 6485a42a6a
4 changed files with 41 additions and 10 deletions

View File

@ -41,7 +41,7 @@ public class ScheduleController {
@GetMapping("/schedules/{taskID}")
public ResponseEntity<?> loadAllSchedulesOfTask(@PathVariable long taskID) {
PermissionResult<Task> permissionResult = taskService.getTaskPermissions(taskID, SecurityContextHolder.getContext().getAuthentication().getName());
if(permissionResult.isHasPermissions()) {
if(!permissionResult.isHasPermissions()) {
return ResponseEntity.status(403).body(new SimpleStatusResponse("failed"));
}
@ -126,7 +126,7 @@ public class ScheduleController {
@DeleteMapping("/schedules/{scheduleID}")
public ResponseEntity<?> deleteSchedule(@PathVariable long scheduleID) {
PermissionResult<AbstractSchedule> permissionResult = taskScheduleService.getSchedulePermissions(scheduleID, SecurityContextHolder.getContext().getAuthentication().getName());
if(permissionResult.isHasPermissions()) {
if(!permissionResult.isHasPermissions()) {
return ResponseEntity.status(403).body(new SimpleStatusResponse("failed"));
}
@ -148,7 +148,7 @@ public class ScheduleController {
@PostMapping("/schedules/{taskID}/now")
public ResponseEntity<?> scheduleNow(@PathVariable long taskID) {
PermissionResult<Task> permissionResult = taskService.getTaskPermissions(taskID, SecurityContextHolder.getContext().getAuthentication().getName());
if(permissionResult.isHasPermissions()) {
if(!permissionResult.isHasPermissions()) {
return ResponseEntity.status(403).body(new SimpleStatusResponse("failed"));
}
@ -177,7 +177,7 @@ public class ScheduleController {
@PostMapping("/schedules/{scheduleID}/activate")
public ResponseEntity<?> activateSchedule(@PathVariable long scheduleID) {
PermissionResult<AbstractSchedule> permissionResult = taskScheduleService.getSchedulePermissions(scheduleID, SecurityContextHolder.getContext().getAuthentication().getName());
if(permissionResult.isHasPermissions()) {
if(!permissionResult.isHasPermissions()) {
return ResponseEntity.status(403).body(new SimpleStatusResponse("failed"));
}
@ -192,7 +192,7 @@ public class ScheduleController {
@PostMapping("/schedules/{scheduleID}/stop/{finish}")
public ResponseEntity<?> stopSchedule(@PathVariable long scheduleID, @PathVariable boolean finish) {
PermissionResult<AbstractSchedule> permissionResult = taskScheduleService.getSchedulePermissions(scheduleID, SecurityContextHolder.getContext().getAuthentication().getName());
if(permissionResult.isHasPermissions()) {
if(!permissionResult.isHasPermissions()) {
return ResponseEntity.status(403).body(new SimpleStatusResponse("failed"));
}
@ -207,7 +207,7 @@ public class ScheduleController {
@PostMapping("/schedules/{taskID}/forgotten")
public ResponseEntity<?> registerForgottenSchedule(@PathVariable long taskID, @RequestBody @Valid ForgottenScheduleInfo forgottenScheduleInfo) {
PermissionResult<Task> permissionResult = taskService.getTaskPermissions(taskID, SecurityContextHolder.getContext().getAuthentication().getName());
if(permissionResult.isHasPermissions()) {
if(!permissionResult.isHasPermissions()) {
return ResponseEntity.status(403).body(new SimpleStatusResponse("failed"));
}
@ -234,7 +234,7 @@ public class ScheduleController {
List<PermissionResult<AbstractSchedule>> permissionResults = new ArrayList<>();
for(long scheduleID: scheduleIDs) {
PermissionResult<AbstractSchedule> permissionResult = taskScheduleService.getSchedulePermissions(scheduleID, SecurityContextHolder.getContext().getAuthentication().getName());
if(permissionResult.isHasPermissions()) {
if(!permissionResult.isHasPermissions()) {
return ResponseEntity.status(403).body(new SimpleStatusResponse("failed"));
}

View File

@ -12,3 +12,7 @@
.scheduleContainer {
margin-bottom: 5px;
}
.advanced-info {
color: #6e6e6e;
}

View File

@ -1,6 +1,6 @@
<mat-card *ngFor="let schedule of schedules" class="scheduleContainer">
<mat-card-content>
<ng-container *ngIf="schedule.scheduleType == 'BASIC'">
<div *ngIf="schedule.scheduleType == 'BASIC'">
<div class="basicScheduleContainer">
<p class="basicScheduleContent">{{ toBasicSchedule(schedule).scheduleDate | date:'EEEE, d MMM. y'}}</p>
<div class="basicScheduleContent">
@ -8,8 +8,23 @@
<button mat-icon-button color="warn" (click)="deleteSchedule(schedule)"><mat-icon>delete</mat-icon></button>
</div>
</div>
</ng-container>
</div>
<div *ngIf="schedule.scheduleType == 'ADVANCED'">
<div class="basicScheduleContainer">
<div class="basicScheduleContent">
<p>
<span>{{ toAdvancedSchedule(schedule).scheduleStartTime | date:'EEEE, d MMM. y'}}</span>
<span> to </span>
<span>{{ toAdvancedSchedule(schedule).scheduleStopTime | date:'EEEE, d MMM. y'}}</span>
</p>
<p class="advanced-info">Minutes: {{calcDurationOfAdvancedSchedule(schedule)}}</p>
</div>
<div class="basicScheduleContent">
<button mat-icon-button color="primary" [routerLink]="['/taskgroups', taskgroup!.taskgroupID, 'tasks', task!.taskID, 'schedule', schedule.scheduleID]"><mat-icon>edit</mat-icon></button>
<button mat-icon-button color="warn" (click)="deleteSchedule(schedule)"><mat-icon>delete</mat-icon></button>
</div>
</div>
</div>

View File

@ -1,5 +1,6 @@
import {Component, Input, OnInit} from '@angular/core';
import {
AdvancedScheduleInfo,
BasicScheduleEntityInfo, BasicScheduleInfo,
ScheduleInfo,
ScheduleService,
@ -7,6 +8,7 @@ import {
TaskgroupEntityInfo
} from "../../../api";
import {MatSnackBar} from "@angular/material/snack-bar";
import {AdvancedSchedulerComponent} from "../advanced-scheduler/advanced-scheduler.component";
@Component({
selector: 'app-schedule-dashboard',
@ -57,4 +59,14 @@ export class ScheduleDashboardComponent implements OnInit{
toBasicSchedule(schedule: ScheduleInfo) {
return schedule as BasicScheduleInfo
}
toAdvancedSchedule(schedule: ScheduleInfo) {
return schedule as AdvancedScheduleInfo
}
calcDurationOfAdvancedSchedule(schedule: ScheduleInfo) {
const advancedSchedule = schedule as AdvancedScheduleInfo
const diffMs = new Date(advancedSchedule.scheduleStopTime).getTime() - new Date(advancedSchedule.scheduleStartTime).getTime();
return Math.floor((diffMs / 1000) / 60);
}
}