From 76e2eeff0e88e111d27e22391b70ede24ee1ba78 Mon Sep 17 00:00:00 2001 From: Daniel Michelberger Date: Mon, 7 Sep 2026 23:23:54 +0200 Subject: [PATCH] refactor: Offline-Meldung in die Zeitnahme-Leiste, ganze Zeile klickbar MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Die Offline-Meldung stand als eigener Streifen unter der Kopfleiste — eine zweite Statusflaeche neben der, die es dafuer schon gibt. Sie sitzt jetzt in der Leiste unten rechts, ganz oben und mit fallender Dringlichkeit darunter: fehlende Verbindung, nicht uebertragene Zeiten, laufende Uhren. Das Symbol in der Kopfleiste wird offline weiss auf rot. In der Zeitentabelle ist die ganze Zeile anklickbar statt nur die Spalte "Zeit" — und nur, solange die Uhr laeuft. Eine gewertete Zeit hat im Zeit-Dialog nichts zu holen; was an ihr noch zu aendern waere, aendert die Korrektur nebenan. Name und Korrektur halten den Klick auf: Der Name fuehrt zum Fahrer, nicht in den Dialog. Die Zeit bleibt bei laufender Uhr ein echter Knopf, denn ein nimmt keinen Fokus — ohne ihn waere die Zeile mit der Tastatur nicht erreichbar. Co-Authored-By: Claude Opus 5 (1M context) Claude-Session: https://claude.ai/code/session_01P32KoesVtABd6xWsqMKzhr --- .../src/lib/components/OfflineBanner.svelte | 61 ----------------- .../lib/components/RunningTimesToast.svelte | 68 ++++++++++++++++--- frontend/src/routes/dashboard/+layout.svelte | 9 ++- .../events/[id]/stages/[stageId]/+page.svelte | 57 ++++++++++++---- 4 files changed, 105 insertions(+), 90 deletions(-) delete mode 100644 frontend/src/lib/components/OfflineBanner.svelte diff --git a/frontend/src/lib/components/OfflineBanner.svelte b/frontend/src/lib/components/OfflineBanner.svelte deleted file mode 100644 index 2595f66..0000000 --- a/frontend/src/lib/components/OfflineBanner.svelte +++ /dev/null @@ -1,61 +0,0 @@ - - -{#if !connection.online} -
-
- - - - Keine Verbindung zum Server - {#if connection.offlineFor !== null} - - ({since(connection.offlineFor)}) - - {/if} - - - - Zeitnahme läuft weiter — gestoppt wird auf diesem Gerät und übertragen, - sobald der Server wieder antwortet. - {#if timeOutbox.pending > 0} - {timeOutbox.pending} - {timeOutbox.pending === 1 ? 'Zeit wartet' : 'Zeiten warten'}. - {/if} - - - -
-
-{/if} diff --git a/frontend/src/lib/components/RunningTimesToast.svelte b/frontend/src/lib/components/RunningTimesToast.svelte index f9ff685..d41ac4f 100644 --- a/frontend/src/lib/components/RunningTimesToast.svelte +++ b/frontend/src/lib/components/RunningTimesToast.svelte @@ -1,9 +1,13 @@ -{#if running.length > 0 || timeOutbox.pending > 0} +{#if running.length > 0 || timeOutbox.pending > 0 || !connection.online}
@@ -116,9 +129,44 @@
+ {#if !connection.online} +
+ +
+

+ Keine Verbindung + {#if connection.offlineFor !== null} + + ({since(connection.offlineFor)}) + + {/if} +

+

+ Die Zeitnahme läuft weiter. Gestoppt wird auf diesem Gerät, + übertragen, sobald der Server wieder antwortet. +

+
+ +
+ {/if} + + {#if timeOutbox.pending > 0}
@@ -129,8 +177,6 @@ Gerät. {#if timeOutbox.error} {timeOutbox.error} - {:else if !timeOutbox.isOnline} - Kein Netz. {/if} + {#if live} + + {:else} + + {t.formattedTime} + + {/if}