From ddb2b4af9f7a8938b3fdb103df4ed98325bcab87 Mon Sep 17 00:00:00 2001 From: MarcWieland Date: Tue, 9 Jun 2026 00:15:06 +0200 Subject: [PATCH 1/2] Neue agb seite implementiert --- .../Components/Layout/MainLayout.razor | 16 +- timetracker.Client/Components/Pages/Agb.razor | 139 ++++++++++++++++++ .../Components/Pages/Changelog.razor | 2 +- .../Components/Pages/Login.razor | 13 +- 4 files changed, 164 insertions(+), 6 deletions(-) create mode 100644 timetracker.Client/Components/Pages/Agb.razor diff --git a/timetracker.Client/Components/Layout/MainLayout.razor b/timetracker.Client/Components/Layout/MainLayout.razor index 61f2632..0b214b4 100644 --- a/timetracker.Client/Components/Layout/MainLayout.razor +++ b/timetracker.Client/Components/Layout/MainLayout.razor @@ -13,7 +13,11 @@ - + + + + + - - - + + + + + + + diff --git a/timetracker.Client/Components/Pages/Agb.razor b/timetracker.Client/Components/Pages/Agb.razor new file mode 100644 index 0000000..427a80c --- /dev/null +++ b/timetracker.Client/Components/Pages/Agb.razor @@ -0,0 +1,139 @@ +@page "/agb" +@rendermode InteractiveWebAssembly +@attribute [AllowAnonymous] + +AGB – Timetracker + + + + + @* ── Header ── *@ + + + + + Allgemeine Geschäftsbedingungen (AGB) + + Rechtlich absolut unverbindliches Kauderwelsch und Flachwitze + + + + + + @* ── Paragraphs with Flachwitze ── *@ + + + + § 1 Geltungsbereich & Transparenz + + + Diese Bedingungen gelten für die gesamte Nutzung dieses Zeiterfassungs-Tools. Transparenz ist uns extrem wichtig. + + + Warum können Geister eigentlich so schlecht lügen?
+ Weil sie einfach extrem leicht zu durchschauen sind! +
+
+
+ + + + + § 2 Pflichten des Nutzers & Gärtnerklauseln + + + Jeder Nutzer verpflichtet sich, seine Arbeitszeiten wahrheitsgemäß und pünktlich einzutragen. Bei Zuwiderhandlung behalten wir uns vor, den Garten des Nutzers aufzuräumen. + + + Was sagt ein Gärtner, wenn er seinen Arbeitsplatz vorzeitig verlässt?
+ "Ich mach mich dann mal vom Acker!" +
+
+
+ + + + + § 3 Haftungsausschluss & Straßenverkehr + + + Wir übernehmen keinerlei Haftung für vergessene Pausenzeiten, verpasste Feierabende oder schlechtes Wetter. + + + Was ist rot, rund und steht am Straßenrand?
+ Eine Spargelampel!

+ Und warum dürfen Bienen eigentlich nicht in die Kirche?
+ Weil sie in der Sekte sind! +
+
+
+ + + + + § 4 Datensicherheit & Physikalische Grundgesetze + + + Ihre Daten werden nach modernsten Verschlüsselungsstandards (nicht) an Dritte weitergegeben. Unsere Magnetbänder sind streng gesichert. + + + Treffen sich zwei Magnete im Rechenzentrum. Sagt der eine ganz verzweifelt:
+ "Du, sag mal... Was soll ich heute bloß anziehen?" +
+
+
+ + + + + § 5 Rückgaberecht & Büroalltag + + + Erfasste Arbeitszeiten können nicht zurückgenommen, umgetauscht oder bar ausgezahlt werden. + + + Was macht ein gelangweilter Clown im Büro?
+ Er macht Faxen!

+ Und warum steht ein einsamer Pilz mitten im tiefen Wald?
+ Weil die Tannen zapfen! +
+
+
+ + + + + § 6 Schlussbestimmungen & Salatgesetze + + + Sollten einzelne Bestimmungen dieser AGB unwirksam sein, bleibt die Fröhlichkeit aller anderen Bestimmungen unberührt. + + + Wie nennt man ein plötzlich spurlos verschwundenes Stück Rindfleisch?
+ Gulasch!

+ Was ist grün, gesund und klopft nachts an die Haustür?
+ Ein Klopfsalat!

+ Und zu guter Letzt: Warum fliegen Vögel im Winter eigentlich nach Süden?
+ Weil es zu Fuß einfach viel zu weit wäre! +
+
+
+ + @* ── Back Button ── *@ + + + Zurück zur Anmeldung + + + +
+
+ +@code { + [Inject] private NavigationManager Nav { get; set; } = default!; + + private void GoBack() + { + Nav.NavigateTo("/login"); + } +} diff --git a/timetracker.Client/Components/Pages/Changelog.razor b/timetracker.Client/Components/Pages/Changelog.razor index 49d4603..95a81e9 100644 --- a/timetracker.Client/Components/Pages/Changelog.razor +++ b/timetracker.Client/Components/Pages/Changelog.razor @@ -1,6 +1,6 @@ @page "/changelog" @rendermode InteractiveWebAssembly -@attribute [Authorize] +@attribute [AllowAnonymous] Changelog – Timetracker diff --git a/timetracker.Client/Components/Pages/Login.razor b/timetracker.Client/Components/Pages/Login.razor index 93d765b..1c004e1 100644 --- a/timetracker.Client/Components/Pages/Login.razor +++ b/timetracker.Client/Components/Pages/Login.razor @@ -107,6 +107,11 @@ Required="true" HelperText="Mindestens 6 Zeichen" /> + + + Ich akzeptiere die AGB. + + + Disabled="_loading || !_acceptAgb"> @if (_loading) { @@ -134,6 +139,7 @@ private string? _error; private bool _loading; private string _honeypot = ""; + private bool _acceptAgb; private readonly AuthModel _loginModel = new(); private readonly AuthModel _registerModel = new(); @@ -189,6 +195,11 @@ private async Task HandleRegister() { + if (!_acceptAgb) + { + _error = "Du musst die AGB akzeptieren."; + return; + } _loading = true; _error = null; try From 94c10aebdd461dd6a1320ce84d11e626c8daddd1 Mon Sep 17 00:00:00 2001 From: MarcWieland Date: Tue, 9 Jun 2026 00:22:30 +0200 Subject: [PATCH 2/2] Onboarding --- .../Components/Layout/NavMenu.razor | 2 +- .../Components/Layout/NavMenu.razor.css | 36 +++- .../Components/Pages/Changelog.razor | 3 +- .../Components/Pages/Home.razor | 32 +++- .../Components/Pages/Login.razor | 2 + .../Components/Pages/OnboardingTour.razor | 179 ++++++++++++++++++ .../Components/Pages/Settings.razor | 44 +++++ timetracker.Server/Components/App.razor | 28 +++ 8 files changed, 316 insertions(+), 10 deletions(-) create mode 100644 timetracker.Client/Components/Pages/OnboardingTour.razor diff --git a/timetracker.Client/Components/Layout/NavMenu.razor b/timetracker.Client/Components/Layout/NavMenu.razor index f5118f8..eb9121c 100644 --- a/timetracker.Client/Components/Layout/NavMenu.razor +++ b/timetracker.Client/Components/Layout/NavMenu.razor @@ -1,4 +1,4 @@ -