Versionsnummer im Sidebar-Kopf anzeigen

Version aus der pom.xml per Resource-Filtering in die Anwendung
übernehmen und klein in Mittelgrau rechts unten neben "AIT" anzeigen;
"AIT" bleibt zentriert. Projektversion auf 0.9.0 gesetzt.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
2026-07-09 17:55:47 +02:00
parent 0e65203ad7
commit 34be24f8ed
3 changed files with 24 additions and 4 deletions

View File

@@ -13,7 +13,7 @@
<groupId>de.assecutor</groupId>
<artifactId>pdf-tool</artifactId>
<version>1.0.0-SNAPSHOT</version>
<version>0.9.0</version>
<name>pdf-tool</name>
<description>ZUGFeRD E-Rechnungs-Konverter (PDF zu PDF/A-3 mit eingebettetem EN16931-XML)</description>

View File

@@ -4,12 +4,14 @@ import com.vaadin.flow.component.applayout.AppLayout;
import com.vaadin.flow.component.applayout.DrawerToggle;
import com.vaadin.flow.component.html.H1;
import com.vaadin.flow.component.html.H2;
import com.vaadin.flow.component.html.Span;
import com.vaadin.flow.component.icon.VaadinIcon;
import com.vaadin.flow.component.orderedlayout.Scroller;
import com.vaadin.flow.component.sidenav.SideNav;
import com.vaadin.flow.component.sidenav.SideNavItem;
import com.vaadin.flow.router.PageTitle;
import com.vaadin.flow.theme.lumo.LumoUtility;
import org.springframework.beans.factory.annotation.Value;
/**
* Rahmenlayout der Anwendung mit linker Sidebar: Navigation zwischen der
@@ -22,13 +24,28 @@ public class MainLayout extends AppLayout {
/** Titel der aktiven Seite in der Navbar. */
private final H2 viewTitle = new H2();
public MainLayout() {
public MainLayout(@Value("${pdftool.version:}") String version) {
setPrimarySection(Section.DRAWER);
H1 appName = new H1("AIT");
H1 appName = new H1();
appName.add(new Span("AIT"));
if (!version.isBlank()) {
Span versionLabel = new Span("(" + version + ")");
// Absolut positioniert an ihrer natürlichen Stelle rechts neben "AIT":
// die Version nimmt keinen Platz im Layout ein, "AIT" bleibt exakt mittig.
versionLabel.getStyle()
.set("font-size", "var(--lumo-font-size-s)")
.set("font-weight", "normal")
.set("color", "var(--lumo-secondary-text-color)")
.set("position", "absolute")
.set("margin-left", "0.3em")
// unten an der Schriftlinie von "AIT" ausrichten
.set("bottom", "0.2em");
appName.add(versionLabel);
}
appName.addClassNames(LumoUtility.FontSize.LARGE, LumoUtility.Margin.Vertical.MEDIUM);
appName.setWidth("100%");
appName.getStyle().set("text-align", "center");
appName.getStyle().set("text-align", "center").set("position", "relative");
SideNav nav = new SideNav();
nav.addItem(new SideNavItem("E-Rechnung erzeugen", MainView.class, VaadinIcon.INVOICE.create()));

View File

@@ -1,6 +1,9 @@
spring.application.name=pdf-tool
server.port=8080
# Wird beim Build durch die Version aus der pom.xml ersetzt (Resource-Filtering)
pdftool.version=@project.version@
spring.servlet.multipart.max-file-size=25MB
spring.servlet.multipart.max-request-size=30MB