feat: App-Version aus pom.xml im Header anzeigen

- Versionsnummer neben "Workflow Editor" in Klammern und kleinerer Schrift
- tasklist.app-version per Maven-Resource-Filtering (@project.version@) gefüllt
- @Value-Injection in MainView; Anzeige nur bei real gefülltem Wert

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-06-30 09:49:18 +02:00
parent cdfc779bc8
commit 5f85074653
3 changed files with 19 additions and 2 deletions

View File

@@ -13,7 +13,7 @@
<groupId>de.assecutor</groupId> <groupId>de.assecutor</groupId>
<artifactId>tasklist-editor</artifactId> <artifactId>tasklist-editor</artifactId>
<version>0.2.0</version> <version>0.9.0</version>
<name>TaskList Editor</name> <name>TaskList Editor</name>
<description>n8n-inspired editor for task list workflows</description> <description>n8n-inspired editor for task list workflows</description>

View File

@@ -46,6 +46,7 @@ import elemental.json.JsonArray;
import elemental.json.JsonObject; import elemental.json.JsonObject;
import com.fasterxml.jackson.databind.JsonNode; import com.fasterxml.jackson.databind.JsonNode;
import org.springframework.beans.factory.annotation.Value;
import java.time.ZoneId; import java.time.ZoneId;
import java.time.format.DateTimeFormatter; import java.time.format.DateTimeFormatter;
@@ -79,6 +80,7 @@ public class MainView extends VerticalLayout implements BeforeEnterObserver {
private final Map<Integer, BlockInstance> instances = new HashMap<>(); private final Map<Integer, BlockInstance> instances = new HashMap<>();
private Div palettePanel; private Div palettePanel;
private String currentListName; private String currentListName;
private final String appVersion;
public MainView(BlockTypeRegistry registry, public MainView(BlockTypeRegistry registry,
TaskListService taskListService, TaskListService taskListService,
@@ -87,7 +89,9 @@ public class MainView extends VerticalLayout implements BeforeEnterObserver {
CanvasService canvasService, CanvasService canvasService,
CustomTypeService customTypeService, CustomTypeService customTypeService,
ElementSettingsService elementSettingsService, ElementSettingsService elementSettingsService,
ObjectMapper objectMapper) { ObjectMapper objectMapper,
@Value("${tasklist.app-version:}") String appVersion) {
this.appVersion = appVersion;
this.registry = registry; this.registry = registry;
this.taskListService = taskListService; this.taskListService = taskListService;
this.taskListImporter = taskListImporter; this.taskListImporter = taskListImporter;
@@ -146,6 +150,15 @@ public class MainView extends VerticalLayout implements BeforeEnterObserver {
title.addClassName("tasklist-title"); title.addClassName("tasklist-title");
title.getStyle().set("white-space", "nowrap"); title.getStyle().set("white-space", "nowrap");
if (appVersion != null && !appVersion.isBlank() && !appVersion.startsWith("@")) {
Span version = new Span(" (v" + appVersion + ")");
version.getStyle()
.set("font-size", "0.7em")
.set("color", "var(--lumo-secondary-text-color)")
.set("white-space", "nowrap");
title.add(version);
}
Button clear = new Button("Workflow löschen", new Icon(VaadinIcon.TRASH)); Button clear = new Button("Workflow löschen", new Icon(VaadinIcon.TRASH));
clear.addThemeVariants(ButtonVariant.LUMO_TERTIARY); clear.addThemeVariants(ButtonVariant.LUMO_TERTIARY);
clear.addClickListener(e -> { clear.addClickListener(e -> {

View File

@@ -1,5 +1,9 @@
server.port=8080 server.port=8080
# Anwendungsversion: wird beim Build per Maven-Resource-Filtering
# (spring-boot-starter-parent, @...@-Delimiter) aus der pom.xml gefüllt.
tasklist.app-version=@project.version@
vaadin.launch-browser=true vaadin.launch-browser=true
vaadin.allowed-packages=de.assecutor.tasklisteditor vaadin.allowed-packages=de.assecutor.tasklisteditor