From 9eae13b5d8a13e20d72de2963bacf0f6ef557b8d Mon Sep 17 00:00:00 2001 From: Sven Carstensen Date: Mon, 15 Sep 2025 11:32:29 +0200 Subject: [PATCH] Erweiterungen --- .../votianlt/pages/view/JobSummaryView.java | 32 +++++++++++-------- 1 file changed, 18 insertions(+), 14 deletions(-) diff --git a/src/main/java/de/assecutor/votianlt/pages/view/JobSummaryView.java b/src/main/java/de/assecutor/votianlt/pages/view/JobSummaryView.java index 6cd4466..d135db9 100644 --- a/src/main/java/de/assecutor/votianlt/pages/view/JobSummaryView.java +++ b/src/main/java/de/assecutor/votianlt/pages/view/JobSummaryView.java @@ -81,20 +81,21 @@ public class JobSummaryView extends Main implements HasUrlParameter { LumoUtility.FlexDirection.COLUMN, LumoUtility.Padding.MEDIUM, LumoUtility.Gap.SMALL); - add(new ViewToolbar("Zusammenfassung")); content = new VerticalLayout(); content.setSpacing(true); content.setPadding(true); content.setWidthFull(); - add(content); } @Override public void setParameter(BeforeEvent event, String parameter) { content.removeAll(); + removeAll(); // Remove existing toolbar if (parameter == null || parameter.isBlank()) { + add(new ViewToolbar("Zusammenfassung")); content.add(new Span("Fehler: Keine Job-ID angegeben")); + add(content); return; } @@ -102,20 +103,35 @@ public class JobSummaryView extends Main implements HasUrlParameter { try { jobId = new ObjectId(parameter); } catch (Exception e) { + add(new ViewToolbar("Zusammenfassung")); content.add(new Span("Fehler: Ungültige Job-ID Format: " + parameter)); + add(content); return; } Job job = jobRepository.findById(jobId).orElse(null); if (job == null) { + add(new ViewToolbar("Zusammenfassung")); content.add(new Span("Fehler: Job mit ID " + parameter + " nicht gefunden")); + add(content); return; } + // Create Job History Button for toolbar + Button jobHistoryButton = new Button("Job History"); + jobHistoryButton.addThemeVariants(ButtonVariant.LUMO_PRIMARY); + jobHistoryButton.addClickListener(e -> { + getUI().ifPresent(ui -> ui.navigate("job_history/" + job.getId().toHexString())); + }); + + // Add toolbar with Job History button in top right + add(new ViewToolbar("Zusammenfassung", jobHistoryButton)); + List cargo = cargoItemRepository.findByJobId(jobId); List tasks = taskRepository.findByJobIdOrderByTaskOrderAsc(jobId); render(job, cargo, tasks); + add(content); } private void render(Job job, List cargoItems, List tasks) { @@ -222,18 +238,6 @@ public class JobSummaryView extends Main implements HasUrlParameter { // Google Maps Karte mit Route addRouteMap(job); - - // Job History Button - Button jobHistoryButton = new Button("Job History"); - jobHistoryButton.addThemeVariants(ButtonVariant.LUMO_PRIMARY); - jobHistoryButton.getStyle().set("margin-top", "var(--lumo-space-m)"); - jobHistoryButton.addClickListener(e -> { - getUI().ifPresent(ui -> ui.navigate("job_history/" + job.getId().toHexString())); - }); - - HorizontalLayout buttonLayout = new HorizontalLayout(jobHistoryButton); - buttonLayout.setJustifyContentMode(HorizontalLayout.JustifyContentMode.CENTER); - content.add(buttonLayout); } private VerticalLayout borderedBox() {