101 lines
4.6 KiB
Plaintext
101 lines
4.6 KiB
Plaintext
@page "/changelog"
|
||
@rendermode InteractiveWebAssembly
|
||
@attribute [Authorize]
|
||
|
||
<PageTitle>Changelog – Timetracker</PageTitle>
|
||
|
||
<MudStack Spacing="4">
|
||
|
||
@* ── Header ── *@
|
||
<MudPaper Elevation="4" Class="pa-5 rounded-xl"
|
||
Style="background: linear-gradient(135deg, #3F51B5 0%, #1A237E 100%); color:white;">
|
||
<MudStack Row="true" AlignItems="AlignItems.Center" Spacing="3">
|
||
<MudIcon Icon="@Icons.Material.Filled.NewReleases" Style="color:white; font-size:2rem" />
|
||
<MudStack Spacing="0">
|
||
<MudText Typo="Typo.h5" Style="color:white; font-weight:700">Changelog</MudText>
|
||
<MudText Typo="Typo.caption" Style="color:rgba(255,255,255,0.72)">Versionshistorie & Änderungen</MudText>
|
||
</MudStack>
|
||
</MudStack>
|
||
</MudPaper>
|
||
|
||
@foreach (var release in _releases)
|
||
{
|
||
<MudCard Elevation="2" Class="rounded-xl">
|
||
<MudCardContent>
|
||
<MudStack Row="true" AlignItems="AlignItems.Center" Spacing="2" Class="mb-3">
|
||
<MudChip T="string" Color="@(release.IsLatest ? Color.Primary : Color.Default)"
|
||
Variant="Variant.Filled" Size="Size.Medium" Style="font-weight:700">
|
||
@release.Version
|
||
</MudChip>
|
||
@if (release.IsLatest)
|
||
{
|
||
<MudChip T="string" Color="Color.Success" Variant="Variant.Outlined" Size="Size.Small">
|
||
Aktuell
|
||
</MudChip>
|
||
}
|
||
<MudText Typo="Typo.body2" Color="Color.Secondary">@release.Date</MudText>
|
||
</MudStack>
|
||
<MudDivider Class="mb-3" />
|
||
<MudStack Spacing="1">
|
||
@foreach (var entry in release.Entries)
|
||
{
|
||
<MudStack Row="true" AlignItems="AlignItems.Start" Spacing="2">
|
||
<MudChip T="string" Color="@GetTagColor(entry.Tag)" Variant="Variant.Outlined"
|
||
Size="Size.Small" Style="min-width:72px; justify-content:center; font-size:0.7rem;">
|
||
@entry.Tag
|
||
</MudChip>
|
||
<MudText Typo="Typo.body2" Style="padding-top:2px">@entry.Text</MudText>
|
||
</MudStack>
|
||
}
|
||
</MudStack>
|
||
</MudCardContent>
|
||
</MudCard>
|
||
}
|
||
|
||
</MudStack>
|
||
|
||
@code {
|
||
private record ChangeEntry(string Tag, string Text);
|
||
private record Release(string Version, string Date, bool IsLatest, List<ChangeEntry> Entries);
|
||
|
||
private static Color GetTagColor(string tag) => tag switch
|
||
{
|
||
"Neu" => Color.Success,
|
||
"Fix" => Color.Error,
|
||
"Upgrade" => Color.Info,
|
||
_ => Color.Default
|
||
};
|
||
|
||
private readonly List<Release> _releases =
|
||
[
|
||
new("1.2", "08.06.2026", true,
|
||
[
|
||
new("Upgrade", "Architektur-Migration auf Hosted Blazor WebAssembly (.NET 10) mit sauberer Projektstruktur (Client, Server, Shared)"),
|
||
new("Neu", "Unterstützung für PostgreSQL-Datenbanken als produktive und skalierbare Alternative zu SQLite"),
|
||
new("Neu", "Dynamische DB-Provider-Weiche (SQLite vs. PostgreSQL) über Konfigurations- und Umgebungsvariablen"),
|
||
new("Neu", "Docker-Compose-Konfiguration inklusive PostgreSQL-Container für vereinfachten Deployment-Betrieb"),
|
||
new("Neu", "Lokales Ausführungsskript (run-local.sh) für einfaches Testen auf dem Entwicklungsrechner"),
|
||
]),
|
||
new("1.1", "08.06.2026", false,
|
||
[
|
||
new("Neu", "Versionsnummer in der Navbar mit Link zum Changelog"),
|
||
new("Neu", "Changelog-Seite"),
|
||
new("Neu", "Live-Aktualisierung der Benutzerliste bei neuer Registrierung"),
|
||
new("Neu", "Automatisches Abmelden gelöschter Benutzer"),
|
||
new("Neu", "Benutzernamen in der Benutzerverwaltung umbenennen"),
|
||
new("Upgrade", "Navbar: Benutzer und Abmelden-Button unten fixiert"),
|
||
]),
|
||
new("1.0", "20.05.2026", false,
|
||
[
|
||
new("Neu", "Erste Version des Timetrackers"),
|
||
new("Neu", "Wochenübersicht mit Arbeitszeiten und Pausen"),
|
||
new("Neu", "Monatsübersicht"),
|
||
new("Neu", "Feiertage-Verwaltung"),
|
||
new("Neu", "Urlaubs-Maximizer"),
|
||
new("Neu", "Einstellungen"),
|
||
new("Neu", "Benutzerverwaltung für Admins"),
|
||
new("Neu", "Registrierung und Login"),
|
||
]),
|
||
];
|
||
}
|