issue-93 #108

Merged
sebastian merged 2 commits from issue-93 into master 2024-03-17 09:34:13 +01:00
4 changed files with 35 additions and 14 deletions

View File

@ -55,19 +55,22 @@ public class TaskSchedulingService {
public void sendRunningTaskNotification(AbstractSchedule abstractSchedule) { public void sendRunningTaskNotification(AbstractSchedule abstractSchedule) {
HttpClient httpClient = HttpClient.newHttpClient(); HttpClient httpClient = HttpClient.newHttpClient();
User user = abstractSchedule.getTask().getTaskgroup().getUser(); User user = abstractSchedule.getTask().getTaskgroup().getUser();
try { if(user.getNtfy_host() != null && user.getNtfy_topic() != null) {
HttpRequest request = HttpRequest.newBuilder() try {
.uri(new URI(user.getNtfy_host()+ "/" + user.getNtfy_topic())) HttpRequest request = HttpRequest.newBuilder()
.POST(HttpRequest.BodyPublishers.ofString("Running Task " + abstractSchedule.getTask().getTaskName())) .uri(new URI(user.getNtfy_host()+ "/" + user.getNtfy_topic()))
.header("Tags", "heavy_check_mark") .POST(HttpRequest.BodyPublishers.ofString("Running Task " + abstractSchedule.getTask().getTaskName()))
.header("Title", "Task Running") .header("Tags", "heavy_check_mark")
.header("Actions", "view, Open TimeScheduler, "+frontend_domain+", clear=true") .header("Title", "Task Running")
.build(); .header("Actions", "view, Open TimeScheduler, "+frontend_domain+", clear=true")
.build();
httpClient.sendAsync(request, HttpResponse.BodyHandlers.ofString()); httpClient.sendAsync(request, HttpResponse.BodyHandlers.ofString());
} catch (URISyntaxException e) { } catch (URISyntaxException e) {
throw new RuntimeException(e); throw new RuntimeException(e);
}
} }
} }
private static Date calculateDelayInMillis(LocalDateTime executionTime) { private static Date calculateDelayInMillis(LocalDateTime executionTime) {

View File

@ -23,3 +23,8 @@
table { table {
width: 100%; width: 100%;
} }
.mat-column-delete {
width: 32px;
text-align: center;
}

View File

@ -35,6 +35,10 @@
<th mat-header-cell *matHeaderCellDef> Duration </th> <th mat-header-cell *matHeaderCellDef> Duration </th>
<td mat-cell *matCellDef="let element"> {{calcDuration(element.startTime, element.finishedTime)}} </td> <td mat-cell *matCellDef="let element"> {{calcDuration(element.startTime, element.finishedTime)}} </td>
</ng-container> </ng-container>
<ng-container matColumnDef="delete">
<th mat-header-cell *matHeaderCellDef> </th>
<td mat-cell *matCellDef="let element"> <button mat-icon-button color="warn" (click)="deleteSchedule(element)"><mat-icon>delete</mat-icon></button> </td>
</ng-container>

View File

@ -1,5 +1,5 @@
import {Component, OnInit} from '@angular/core'; import {Component, OnInit} from '@angular/core';
import {HistoryService, ScheduleInfo, TaskgroupEntityInfo} from "../../../api"; import {HistoryService, ScheduleInfo, ScheduleService, TaskgroupEntityInfo} from "../../../api";
import * as moment from "moment"; import * as moment from "moment";
import {NavigationLink} from "../../navigation-link-list/navigation-link-list.component"; import {NavigationLink} from "../../navigation-link-list/navigation-link-list.component";
@ -27,7 +27,7 @@ export class ScheduleHistoryComponent implements OnInit{
selectedDate: Date = new Date(); selectedDate: Date = new Date();
schedules: ScheduleInfo[] = [] schedules: ScheduleInfo[] = []
displayedColumns: string[] = ['taskgroup', 'task', 'start', 'end', 'duration']; displayedColumns: string[] = ['taskgroup', 'task', 'start', 'end', 'duration', 'delete'];
ngOnInit() { ngOnInit() {
this.historyService.historySchedulesDateGet(moment(this.selectedDate).format("YYYY-MM-DD")).subscribe({ this.historyService.historySchedulesDateGet(moment(this.selectedDate).format("YYYY-MM-DD")).subscribe({
@ -37,7 +37,8 @@ export class ScheduleHistoryComponent implements OnInit{
}) })
} }
constructor(private historyService: HistoryService) { constructor(private historyService: HistoryService,
private scheduleService: ScheduleService) {
} }
computeTaskgroupPath(taskgroupPath: TaskgroupEntityInfo[]) { computeTaskgroupPath(taskgroupPath: TaskgroupEntityInfo[]) {
@ -67,4 +68,12 @@ export class ScheduleHistoryComponent implements OnInit{
} }
}) })
} }
deleteSchedule(deletedSchedule: ScheduleInfo) {
this.scheduleService.schedulesScheduleIDDelete(deletedSchedule.scheduleID).subscribe({
next: resp => {
this.schedules = this.schedules.filter(schedule => schedule.scheduleID !== deletedSchedule.scheduleID)
}
})
}
} }