From 390c44b7ef374def39fc0d13821d5106aee25f7c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Patrick=20Ha=C3=9Fel?= Date: Mon, 19 Jun 2023 09:46:00 +0200 Subject: [PATCH] manual bulk execution --- src/main/angular/src/app/api/bulk/BulkService.ts | 4 ++++ .../src/app/pages/bulk/list/bulk-list.component.html | 4 ++++ .../src/app/pages/bulk/list/bulk-list.component.ts | 10 +++++++++- .../de/ph87/homeautomation/bulk/BulkController.java | 5 +++++ .../java/de/ph87/homeautomation/bulk/BulkWriter.java | 7 +++++++ 5 files changed, 29 insertions(+), 1 deletion(-) diff --git a/src/main/angular/src/app/api/bulk/BulkService.ts b/src/main/angular/src/app/api/bulk/BulkService.ts index dd11d4c..4a7c526 100644 --- a/src/main/angular/src/app/api/bulk/BulkService.ts +++ b/src/main/angular/src/app/api/bulk/BulkService.ts @@ -62,6 +62,10 @@ export class BulkService implements ISearchService { this.api.getReturnItem("bulk/delete/" + bulk.id, _ => _, next); } + run(bulk: Bulk, next?: () => void): void { + this.api.getReturnItem("bulk/run/" + bulk.id, _ => _, next); + } + setEntry(entry: BulkEntry, key: string, value: any, next: (result: BulkEntry) => void = NO_OP): void { this.api.putReturnItem("BulkEntry/" + entry.id + "/set/" + key, value, next); } diff --git a/src/main/angular/src/app/pages/bulk/list/bulk-list.component.html b/src/main/angular/src/app/pages/bulk/list/bulk-list.component.html index 6dd90c3..cb4c463 100644 --- a/src/main/angular/src/app/pages/bulk/list/bulk-list.component.html +++ b/src/main/angular/src/app/pages/bulk/list/bulk-list.component.html @@ -15,6 +15,10 @@ {{bulk.name}} + + + + diff --git a/src/main/angular/src/app/pages/bulk/list/bulk-list.component.ts b/src/main/angular/src/app/pages/bulk/list/bulk-list.component.ts index 6f5c216..361146f 100644 --- a/src/main/angular/src/app/pages/bulk/list/bulk-list.component.ts +++ b/src/main/angular/src/app/pages/bulk/list/bulk-list.component.ts @@ -1,7 +1,7 @@ import {Component, OnInit} from '@angular/core'; import {BulkService} from "../../../api/bulk/BulkService"; import {Bulk} from "../../../api/bulk/Bulk"; -import {faCheckCircle, faCircle, faTimesCircle} from "@fortawesome/free-regular-svg-icons"; +import {faCheckCircle, faCircle, faPlayCircle, faTimesCircle} from "@fortawesome/free-regular-svg-icons"; @Component({ selector: 'app-bulk-list', @@ -16,6 +16,8 @@ export class BulkListComponent implements OnInit { readonly faTimes = faTimesCircle; + readonly faPlay = faPlayCircle; + readonly Bulk = Bulk; bulks: Bulk[] = []; @@ -52,6 +54,12 @@ export class BulkListComponent implements OnInit { this.bulkService.create(bulk => this.addOrReplace(bulk)); } + run(bulk: Bulk): void { + if (confirm("Zeitplan \"" + bulk.name + "\" wirklich ausführen?")) { + this.bulkService.run(bulk); + } + } + delete(bulk: Bulk): void { if (confirm("Zeitplan \"" + bulk.name + "\" wirklich löschen?")) { this.bulkService.delete(bulk, () => this.remove(bulk)); diff --git a/src/main/java/de/ph87/homeautomation/bulk/BulkController.java b/src/main/java/de/ph87/homeautomation/bulk/BulkController.java index 0a2e8e2..63f1e02 100644 --- a/src/main/java/de/ph87/homeautomation/bulk/BulkController.java +++ b/src/main/java/de/ph87/homeautomation/bulk/BulkController.java @@ -32,6 +32,11 @@ public class BulkController implements ISearchController { bulkWriter.delete(id); } + @GetMapping("run/{id}") + public void run(@PathVariable final long id) { + bulkWriter.run(id); + } + @PostMapping("set/{id}/name") public BulkDto name(@PathVariable final long id, @RequestBody final String name) { return bulkWriter.set(id, bulk -> bulk.setName(name)); diff --git a/src/main/java/de/ph87/homeautomation/bulk/BulkWriter.java b/src/main/java/de/ph87/homeautomation/bulk/BulkWriter.java index f774fce..87fc401 100644 --- a/src/main/java/de/ph87/homeautomation/bulk/BulkWriter.java +++ b/src/main/java/de/ph87/homeautomation/bulk/BulkWriter.java @@ -19,6 +19,8 @@ public class BulkWriter { private final BulkMapper bulkMapper; + private final BulkExecutor bulkExecutor; + public Bulk create(final BulkCreateDto dto) { final Bulk bulk = bulkRepository.save(new Bulk(dto)); log.info("Bulk created: {}", bulk); @@ -31,6 +33,11 @@ public class BulkWriter { log.info("Bulk deleted: {}", bulk); } + public void run(final long id) { + final Bulk bulk = bulkReader.getById(id); + bulkExecutor.execute(bulk); + } + public BulkDto set(final long id, final Consumer consumer) { final Bulk bulk = bulkReader.getById(id); consumer.accept(bulk);