ClubHUB
ClubHUB
← Dashboard

Changelog

Alle Änderungen an ClubHUB, neueste zuerst.

v1.33.0 2026-09-24
  • Feedback: Der Admin bekommt jetzt mit, wenn jemand über den schwebenden Feedback-Button einen Bug oder Wunsch meldet, ohne täglich in die Feedback-Liste schauen zu müssen. Bisher löste das Absenden gar keine Benachrichtigung aus. Unter Verwaltung → Benachrichtigungen → „Feedback-Benachrichtigung“ lässt sich ein Kanal (Gotify, ntfy oder Signal) wählen, an den bei jedem neuen Feedback eine Nachricht mit Titel, Absender, Priorität und Beschreibung geht (bei Priorität „Hoch“ mit erhöhter Priorität; Screenshots stehen weiter nur in der Verwaltung). Dafür genügt ein eigener Kanal ohne Gruppen-Zuordnung. „Testnachricht senden“ prüft Token und Basis-URL. Ohne gewählten Kanal ändert sich nichts; wird der gewählte Kanal gelöscht, wird die Auswahl automatisch geleert. Intern: der Versand je Kanal ist jetzt eine eigene Funktion (`send_to_channel`), die auch die Gruppen-Benachrichtigungen nutzen (Gotify kennt dabei nun auch erhöhte Prioritäten; bisher war sie fest 5). Neue Spalte `app_settings.feedback_channel_id` wird beim Start angelegt.
v1.32.0 2026-09-24
  • Meldungen: Kommentarzwang beim Erledigen. Rückmeldung aus dem Betrieb: Meldungen wurden ohne jede Angabe auf „Erledigt“ gestellt. Wer eine Meldung jetzt auf „Erledigt“ setzt, bekommt einen Dialog „Was wurde gemacht?“ und muss eine Kurzbeschreibung eingeben (mindestens 5 Zeichen, optional mit Foto, z. B. als Nachweis). Erst damit wird der Status gespeichert; „Abbrechen“ setzt das Auswahlfeld auf den alten Status zurück. Die Beschreibung erscheint als Kommentar im Thread, im Verlauf und direkt auf der erledigten Karte („Erledigt: …“), und die Push-Benachrichtigung „Erledigt“ enthält sie ebenfalls. Gilt für alle Nutzer inklusive Admins und wird zusätzlich serverseitig durchgesetzt (nicht nur im Dialog). „In Bearbeitung“ und „Wieder öffnen“ brauchen weiterhin keine Angabe; beim Wiederöffnen verschwindet die Erledigt-Notiz von der Karte (der Kommentar bleibt als Historie). Bereits erledigte Meldungen bleiben unverändert. Neue Spalte `reports.resolved_note` wird beim Start automatisch angelegt.
v1.31.0 2026-09-23
  • Meldungen: die Bild-Hinzufügen-Funktion ist jetzt direkt in die Kommentarfunktion eingebaut, statt (wie in 1.30.1 gedacht) nur ersatzlos von der Karte zu verschwinden. Beim Kommentieren lässt sich optional ein Bild anhängen (z. B. ein „Beweisbild“ nach der Reparatur) – ein Kommentar kann Text, Bild(er) oder beides enthalten, nie beides leer. Angehängte Bilder erscheinen als kleine Vorschau direkt unter dem jeweiligen Kommentar und öffnen per Klick dieselbe Lightbox wie das Karten-Vorschaubild; letzteres zeigt weiterhin alle Fotos der Meldung zusammen (Erstellung, Produkt-Link-Vorschau und jetzt auch Kommentare). Push-Benachrichtigungen für einen reinen Foto-Kommentar ohne Text zeigen „hat ein Foto hinzugefügt“ statt eines leeren Texts.
v1.30.1 2026-09-23
  • Meldungen: die zusätzliche Foto-Reihe unter der Beschreibung war doppelt gemoppelt (das erste Bild stand schon als Vorschau in der Kopfzeile) und der eigene „Bild hinzufügen“-Button wieder entfernt – Fotos sollen künftig über einen Kommentar ergänzt werden (z. B. ein „Beweisbild“ nach der Reparatur), nicht direkt auf der Karte. Das Vorschaubild in der Kopfzeile ist stattdessen jetzt klickbar: es öffnet alle Fotos der Meldung an den Bildschirm angepasst, mit „Originalgröße“-Link und – bei mehreren Fotos – Vor/Zurück-Navigation.
v1.30.0 2026-09-23
  • Meldungen: Beschreibung, Fotos und ein hinterlegter Produkt-Link stehen jetzt direkt auf der Karte, ohne „Details“ aufzuklappen (Nutzer-Feedback: die Beschreibung ging dort unter – ein Kollege hatte sie schlicht nicht gesehen, weil er nie aufgeklappt hatte). Hinter „Details“ bleiben nur noch die eher administrativen bzw. Verlaufs-Inhalte: Zuständigkeit ändern, Bereichsgruppe, exakte Zeitstempel, Kommentare und Verlauf.
v1.29.0 2026-09-20
  • Meldungen: Angleichung an die Termine-Seite. Statt des freistehenden Mülleimer-Buttons gibt es an jeder Meldungskarte ein Drei-Punkte-Menü (•••) mit der Aktion „Löschen“ in Rot – sichtbar wie bisher nur für den Ersteller und Admins, mit derselben Sicherheitsabfrage. Das Menü schließt bei Klick daneben oder mit Esc; es ist per Event-Delegation angebunden und funktioniert deshalb auch nach dem Verschieben einer Karte zwischen „Offene“ und „Erledigte Meldungen“.
  • Erledigte Meldungen sind wie vergangene Termine optisch zurückgenommen: `opacity-60` (vorher 75 %) und ein grauer linker Rand statt der Prioritätsfarbe. Beim Statuswechsel per Auswahlfeld wird das ohne Neuladen umgeschaltet, beim Wiederöffnen kehrt die Prioritätsfarbe zurück.
v1.28.0 2026-09-20
  • Sicherungen enthalten jetzt auch die Bilder. Bisher steckte nur die SQLite-Datenbank in den Sicherungen; die hochgeladenen Bilder (Meldungs-, Inventar-, Aufbau-, Feedback-Fotos, Profilbilder unter `uploads/`) fehlten in jeder Sicherung – nach einem Verlust des Datenverzeichnisses, einem Server-Umzug oder einer Wiederherstellung aus der Nextcloud wären alle Bilder weg gewesen (die Einträge hätten kaputte Bilder gezeigt).
  • Entwicklung: `deploy-nas.sh` heißt jetzt `deploy-staging.sh` und deployt auf den neuen Docker-Host (Proxmox-VM) statt aufs NAS: das Image wird lokal gebaut, per `docker save | load` übertragen und der bestehende Stack neu gestartet (README aktualisiert).
v1.27.0 2026-09-20
  • Meldungen: Titel und Beschreibung sind jetzt getrennt. Beim Erstellen gibt es ein kurzes Pflichtfeld „Titel“ (max. 80 Zeichen), die Beschreibung ist optional. Die Karte zeigt eingeklappt nur den Titel mit Badges und Metadaten; erst unter „Details“ erscheint die vollständige Beschreibung (weich eingeblendet, bei aktivierter Bewegungsreduzierung ohne Animation) – der Text steht dort nicht mehr zusätzlich als abgeschnittene Vorschau in der Kopfzeile. Dashboard-Vorschau und Push-Benachrichtigungen nutzen ebenfalls den Titel. Der Produkt-Link-Assistent trägt den Produktnamen als Titel und den Produkttext als Beschreibung ein. Automatische Kühlzellen-Meldungen bekommen einen eigenen Titel.
  • Bestehende Meldungen bleiben unverändert: ihr Titel wird beim Anzeigen aus dem Text abgeleitet (erste Zeile bzw. erster Satz, gekürzt auf 80 Zeichen); eine dabei doppelte erste Zeile fällt aus der Beschreibung heraus. Kurze Alt-Meldungen zeigen darum nur noch den Titel. Neue Spalte `reports.title` wird beim Start automatisch angelegt (kein Backfill).
v1.26.2 2026-09-20
  • Bugfix: Der rote Zähler an „Meldungen“ in der Navigation zählte alle offenen Meldungen des ganzen Betriebs, auch solche, die der Nutzer gar nicht sehen darf – Liste und Dashboard zeigten dann eine niedrigere Zahl. Der Zähler nutzt jetzt dieselbe Sichtbarkeitsprüfung wie die Meldungsliste (eigene Gruppen, Betriebsweit, selbst erstellte Meldungen; Admin und Schichtleiter sehen weiterhin alle).
v1.26.1 2026-09-20
  • Bugfix Meldungen: Wer eine Meldung an eine fremde Gruppe richtete (z. B. an die Toilettenbetreuung, ohne selbst dazuzugehören), sah sie danach selbst nicht mehr und bekam nicht mit, ob sie bearbeitet oder erledigt wurde. Selbst erstellte Meldungen sind jetzt immer für den Ersteller sichtbar – unabhängig von Zuständigkeit und Gruppen. Für alle anderen ändert sich nichts: Unbeteiligte sehen die Meldung weiterhin nicht.
v1.26.0 2026-09-19
  • Nextcloud-Offsite-Kopie: automatische Aufbewahrung. Nach jedem erfolgreichen Upload werden Sicherungen im Zielordner gelöscht, die älter als die eingestellte Aufbewahrung sind (Standard 7 Tage; Feld „Aufbewahrung in der Nextcloud“ bzw. `NEXTCLOUD_RETENTION_DAYS`, `0` = nie löschen). Bewusst eng gefasst, da dies die einzige Stelle ist, an der ClubHUB Dateien in der Nextcloud löscht: angefasst werden ausschließlich Dateien exakt nach dem Muster `auto-JJJJMMTT-HHMMSS.db` (Zeitpunkt aus dem Dateinamen), alles andere im Ordner bleibt unberührt, ebenso die gerade hochgeladene Datei. Ein fehlgeschlagenes Aufräumen macht den Upload nicht zum Fehler (nur Log-Eintrag). Hinweis: die Nextcloud verschiebt gelöschte Dateien zunächst in ihren Papierkorb.
v1.25.0 2026-09-19
  • Offsite-Kopie der automatischen Sicherungen per WebDAV in eine Nextcloud (optional, standardmäßig aus): Unter Verwaltung → System → Datenbank-Sicherungen → „Offsite-Kopie (Nextcloud)“ lassen sich WebDAV-Ordner-URL, Benutzer und App-Passwort hinterlegen und per „Verbindung testen“ prüfen – auch mit noch ungespeicherten Eingaben. Der Test legt eine kleine Testdatei an und löscht sie wieder (weist also Schreibrechte nach, nicht nur Lesezugriff), ein fehlender Zielordner wird dabei angelegt; Fehler werden verständlich erklärt (falsche Zugangsdaten, Browser-URL statt WebDAV-Pfad, Zertifikatsproblem, Server nicht erreichbar usw.). Nach der lokalen Sicherung wird sie – einmal pro Kalendertag (der erste erfolgreiche Lauf, sonst erneuter Versuch beim nächsten) – hochgeladen. Ein fehlgeschlagener oder hängender Upload (Timeout 10 s Verbindungsaufbau) gefährdet die lokale Sicherung nie und erscheint nur als Warnung auf derselben Karte sowie im Log. Das Passwort wird verschlüsselt gespeichert (aus `SECRET_KEY` abgeleitet, nie wieder angezeigt, nicht im Audit-Log). Alternativ per Umgebungsvariablen `NEXTCLOUD_ENABLED`/`URL`/`USER`/`PASSWORD` konfigurierbar (in der Verwaltung gespeicherte Werte haben Vorrang). Das Aufräumen alter Dateien in der Nextcloud übernimmt ClubHUB nicht.
v1.24.2 2026-09-16
  • Hilfe & FAQ: der iPhone-Benachrichtigungs-Hinweis war als einziger Punkt standardmäßig aufgeklappt – jetzt wie alle anderen Fragen zugeklappt, für ein einheitliches Bild der Seite.
v1.24.1 2026-09-16
  • Bugfix: Eine lange, zusammenhängende Meldungs-Nachricht ohne Zeilenumbrüche sprengte auf dem Dashboard (v.a. am Handy) die komplette Seitenbreite und zerschoss das Layout, statt wie vorgesehen mit "…" abgeschnitten zu werden. Ursache: mehrere ineinander verschachtelte Flex-/Grid-Container hatten kein `min-width: 0` gesetzt – eine bekannte CSS-Eigenheit, bei der ein Flex-/Grid-Element sich standardmäßig nie unter die Breite seines eigenen Inhalts verkleinert, wodurch der Textabschneide-Effekt (`truncate`) wirkungslos blieb. Behoben an allen betroffenen Dashboard-Kacheln (Meldungen-Vorschau, Termine, Letzte Reinigungen).
v1.24.0 2026-09-16
  • Meldungen: Ein neuer Kommentar ging bisher komplett unbemerkt unter (nur als kleine Zahl versteckt hinter "Details" sichtbar) und benachrichtigte niemanden. Jetzt zeigt jede Meldungs-Karte direkt in der Kopfzeile ein Sprechblasen-Symbol mit Anzahl, sobald kommentiert wurde, und ein neuer Kommentar benachrichtigt – wie bei einem Statuswechsel – die zuständige(n) Gruppe(n) sowie zusätzlich den Melder und alle bisher Mitdiskutierenden einzeln (unabhängig von deren Gruppen-Zugehörigkeit).
v1.23.0 2026-09-16
  • Historie: Admins können jetzt neben "Erledigt von" auch Datum und Uhrzeit einer Erledigung nachträglich korrigieren (Stift-Symbol neben dem Datum). Wie beim Umtragen ausschließlich für Admins und im Audit-Log dokumentiert (alter und neuer Zeitpunkt).
v1.22.0 2026-09-16
  • Neue Seite „Hilfe & FAQ" (`/help`, Menüpunkt mit ?-Icon in Sidebar und mobilem „Mehr"-Menü): kurze Bedienungsanleitung für Mitarbeiter direkt in der App statt nur als separat verschickter Link – Erste Schritte, Bereiche/Ampel-System, Meldungen, Historie, weitere Module sowie Profil, als aufklappbare Fragen. Die Abschnitte zu Urlaub und Zeiterfassung blenden sich automatisch aus, wenn das jeweilige Modul in den Admin-Einstellungen deaktiviert ist.
v1.21.0 2026-09-16
  • Nutzernamen werden beim Anlegen und Bearbeiten (Verwaltung → Nutzer) jetzt automatisch einheitlich formatiert ("uwe" → "Uwe", "jean-luc" → "Jean-Luc"), damit Kleinschreibung nicht mehr in Historie, Nutzerlisten und anderen UI-Stellen auftaucht. Der Login bleibt dabei unabhängig von Groß-/Kleinschreibung möglich – "Uwe" kann sich weiterhin mit "uwe" oder "Uwe" anmelden.
v1.20.1 2026-09-15
  • Meldungen: Zuständigkeit nachträglich ändern (Details-Tab) zeigte bisher ein natives `<select multiple>` mit sichtbarer Scroll-Liste – passte optisch nicht ins UI. Ersetzt durch dieselben Checkbox-Chips wie im "Neue Meldung"-Formular, kompakt hinter einem Dropdown-Button (zeigt die aktuelle Zuständigkeit als Text, öffnet auf Klick ein kleines Auswahl-Panel mit "Übernehmen"-Button) – gleiches Muster wie das bereits vorhandene "Sichtbarkeit anpassen" bei Bereichen/Inventar/Terminen.
v1.20.0 2026-09-14
  • Alle nativen Browser-Bestätigungsdialoge (`confirm()`, je nach Betriebssystem/Browser unterschiedlich aussehend und optisch ein Fremdkörper) durch ein einheitliches, ins ClubHUB-Design passendes Modal ersetzt – u.a. beim Zurückziehen einer Erledigung in der Historie, beim Löschen (Aufgaben, Artikel, Buchungen, Termine, Nutzer-Geräte, Kühlungs-Messungen, …) und beim Wiederherstellen eines Backups. Abgedunkelter, leicht verwischter Hintergrund, klare Ja/Abbrechen-Buttons (destruktive Aktionen rot, neutrale grün), per ESC oder Klick auf den Hintergrund abbrechbar. Neue global verfügbare `customConfirm()`-Funktion (siehe `static/confirm_modal.js`) für zukünftige Bestätigungen.
v1.19.0 2026-09-14
  • Meldungen: Zuständigkeit kann jetzt mit mehreren Gruppen gleichzeitig markiert werden statt nur einer – hilfreich, wenn beim Melden nicht klar ist, wer genau zuständig ist. Sowohl im "Neue Meldung"-Formular (Gruppen-Chips jetzt einzeln antippbar, mehrere gleichzeitig möglich) als auch nachträglich im Details-Tab einer bestehenden Meldung. Alle ausgewählten Gruppen werden benachrichtigt und sehen die Meldung.
  • Meldungen: Es wird jetzt angezeigt, wer eine Meldung auf "In Bearbeitung" gestellt hat (Name + Zeitpunkt, in der Kopfzeile und im Verlauf-Tab) – bisher war nur erkennbar, wer sie erstellt bzw. wer sie als erledigt markiert hat. Bleibt auch nach "Erledigt" als Verlaufs-Eintrag sichtbar, wird nur beim erneuten Öffnen (zurück auf "Offen") zurückgesetzt.
v1.18.0 2026-09-14
  • Bereichs-Übersicht (Mobil): dieselbe Gruppenfarben-Hervorhebung wie seit 1.17.3/1.17.4 auf Desktop jetzt auch auf dem Handy – bisher blieb die mobile Zeilenansicht unverändert und zeigte weiterhin überall das textuelle Gruppen-Badge (z.B. "Hausmeister") statt der neuen farblichen Hervorhebung. Badge entfernt, Bereichs-Name in Gruppenfarbe + fett, dezenter Hintergrund-Tint in der Zeile, farbiger linker Rahmenstreifen bleibt zusätzlich erhalten.
v1.17.4 2026-09-14
  • Bereichs-Karten (Desktop), Nachbesserung zu 1.17.3: die Gruppenfarbe des Bereichs-Namens war im hellen Design so stark abgedunkelt, dass sie kaum noch als Farbe erkennbar war und wie normales Schwarz/Grau wirkte. Abdunkelung deutlich reduziert (Farbton bleibt jetzt klar erkennbar), Titel zusätzlich fett gesetzt und die komplette Titelzeile bekommt einen dezenten, transparenten Hintergrund-Tint in der Gruppenfarbe – Zuständigkeit springt dadurch sofort ins Auge, auch ohne auf maximale Abdunkelung zu setzen. Kontrast liegt je nach Gruppenfarbe zwischen 4:1 und 6.4:1 gegen den Kartenhintergrund (WCAG-AA verlangt 4.5:1 für Fließtext, 3:1 für UI-Elemente/fetten Text ab 14pt) – bewusster Kompromiss zugunsten der Wiedererkennbarkeit, wie gewünscht.
v1.17.3 2026-09-14
  • Bereichs-Karten (Desktop): Name des Bereichs wird jetzt zusätzlich in der Farbe der zuständigen Gruppe eingefärbt (bisher nur der Kartenrahmen), damit die Zuständigkeit sofort ins Auge fällt. Im hellen Design wird die Gruppenfarbe dafür deutlich mit Schwarz abgedunkelt (Kartenhintergrund dort sehr hell, sonst zu wenig Kontrast – geprüft, alle fünf Standardfarben liegen danach über 7:1 Kontrast, WCAG-AA verlangt 4.5:1), im dunklen Design bleibt der volle, unveränderte Farbton wie bisher bei Rahmen/Badges.
v1.17.2 2026-09-14
  • Bereichs-Karten (Desktop): Gruppen-Badge aus der Titelzeile entfernt, da es bei längeren Bereichsnamen (z.B. "Gästefahrstuhl & Vorraum") den Namen unschön abgeschnitten hat. Der Titel nutzt jetzt die volle Kartenbreite; welcher Gruppe ein Bereich zugeordnet ist, zeigt weiterhin der seit 1.17.0 vorhandene farbige Kartenrahmen.
v1.17.1 2026-09-14
  • Bereichs-Karten (Desktop): linke Statuskante (Überfällig/Bald fällig/Erledigt) von 4px auf 5px verstärkt, damit sie gegenüber dem seit 1.17.0 neuen, dünneren Gruppenrahmen (oben/rechts/unten, 1px) weiterhin sofort ins Auge sticht und das operative Handlungsbedarf-Signal nicht untergeht.
v1.17.0 2026-09-14
  • Bugfix: Beim Erstellen einer Meldung wurde ein per Kamera/Foto-Auswahl hinzugefügtes Bild doppelt angehängt. Ursache: der native Datei-Dialog hatte `input.files` bereits gesetzt, bevor die Dropzone-Komponente die Auswahl übernahm, wodurch dieselbe Datei einmal als "bereits vorhanden" und einmal als "neu hinzugekommen" gezählt wurde. Drag&Drop und Einfügen per Zwischenablage waren nicht betroffen und funktionieren wie bisher.
  • Hinweis für iPhone/iPad: das Benachrichtigungs-Glockensymbol fehlte auf iOS komplett, ohne Erklärung – Apple erlaubt Push-Benachrichtigungen dort grundsätzlich nur für Apps, die zuvor zum Home-Bildschirm hinzugefügt wurden, nie in einem normalen Safari-Tab. Die Glocke erscheint auf iOS jetzt trotzdem (deaktiviert-wirkend) und zeigt beim Antippen eine kurze Anleitung, wie ClubHUB zum Home-Bildschirm hinzugefügt wird, damit Benachrichtigungen danach aktivierbar sind.
  • Bereichs-Übersicht (Dashboard/„Bereiche“, Desktop & Mobil): Bereiche, für die man selbst zuständig ist, werden jetzt farblich mit der eigenen Gruppenfarbe hervorgehoben (dieselben Farben, die auch bei den Gruppen-Badges verwendet werden) – auf einen Blick erkennbar, ohne jede Karte einzeln lesen zu müssen. Der bestehende grün/gelb/rot-Status je Bereich bleibt davon unabhängig und weiterhin sichtbar.
  • Historie: Admins können jetzt direkt in der Tabelle per Dropdown ändern, wer eine Aufgabe tatsächlich erledigt hat – z.B. wenn versehentlich mehrere Erledigungen unter dem eigenen Admin-Konto statt dem des tatsächlich putzenden Mitarbeiters gespeichert wurden. Bisher blieb dafür nur Löschen und neu Anlegen. Die Änderung greift sofort ohne Neuladen und wird im Audit-Log protokolliert.
v1.16.1 2026-09-14
  • Bugfix: Neue Meldung ohne Beschreibung erstellen zeigte auf dem iPhone eine rohe, unverständliche Fehlermeldung statt eines normalen Hinweises. Ursache: iOS Safari setzt das `required`-Attribut auf `<textarea>`-Feldern nicht zuverlässig durch (bekannte WebKit-Eigenheit, besonders als installierte PWA), wodurch die Meldung komplett ohne Beschreibung beim Server ankam und dort eine harte Validierungsfehlermeldung auslöste statt der üblichen Inline-Meldung. Jetzt serverseitig wie die anderen Pflichtfelder dieser Seite behandelt (freundlicher Hinweis „Bitte eine Beschreibung eingeben.“ statt Absturz) sowie zusätzlich clientseitig per JavaScript abgesichert, damit der Hinweis schon vor dem Absenden erscheint.
v1.16.0 2026-09-14
  • Historie: Wochentag jetzt bei jedem Datum dabei ("heute (Mo)", "gestern (So)", "Fr, 11.09.2026") – macht Lücken übers Wochenende beim Scrollen sofort nachvollziehbar, ohne nachzurechnen. Samstage/Sonntage zusätzlich dezent ausgegraut. Neuer, eigenständiger Filter (`reldate_weekday`) nur für die Historie – die anderen Stellen mit dem bisherigen `reldate`-Filter (Dashboard, Bereichs-Kacheln, Profil-Passkeys) bleiben bewusst unverändert, dort wäre der Wochentag nur zusätzliches visuelles Rauschen.
v1.15.1 2026-09-12
  • Logo-Farbe angepasst: Sidebar/mobile Kopfzeile zeigen jetzt einen sanften diagonalen Verlauf von Minzgrün zu Teal statt des bisherigen einfarbigen Grüntons, der optisch an ein Haltestellenschild erinnerte. Favicon/Apple-Touch-Icon/PWA-Icon (dunkelgrün, für Browser-Tab/Startbildschirm) bleiben bewusst unverändert – andere Farbentscheidung aus einem separaten Kontext.
v1.15.0 2026-09-11
  • Admins können jetzt ohne Gruppen-Zuordnung existieren (Verwaltung → Nutzer, Anlegen und Bearbeiten): neue Option "Keine Gruppe" – sinnvoll, damit ein Admin nicht versehentlich operative Aufgaben einer Team-Gruppe (z.B. Büro-Reinigungen) zugewiesen bekommt. Für alle anderen Rollen bleibt eine Gruppe weiterhin Pflicht, da nur Admin/Schichtleiter unabhängig von der Gruppen-Zuordnung alles sehen. Geprüft, dass ein gruppenloser Nutzer nirgends (Dashboard, Verwaltung, Bereiche, Meldungen) zu Fehlern führt – Gruppen-Badges/-Listen sind bereits durchgängig leer-sicher gebaut.
v1.14.0 2026-09-11
  • Passwort-Sicherheitsabfragen ergänzt: Beim eigenen Passwort ändern (Profil) muss jetzt zusätzlich das aktuelle Passwort korrekt eingegeben werden, bevor eine Änderung möglich ist – verhindert, dass an einem kurz unbeaufsichtigten, eingeloggten Gerät faktisch das Passwort gekapert werden kann. Neues Passwort und Bestätigung werden sowohl clientseitig (native Browser-Validierung) als auch serverseitig auf Übereinstimmung geprüft. Beim Admin-Passwort-Reset für andere Nutzer (Verwaltung → Nutzer) wird bewusst weiterhin kein altes Passwort verlangt (der Admin kennt es ja nicht), aber jetzt ebenfalls eine Bestätigung des neuen Passworts abgefragt, um Tippfehler zu verhindern.
v1.13.0 2026-09-11
  • Live-Update per Polling für Dashboard, Bereichs-Übersicht, einzelne Bereichs-Seite und Meldungen: erledigt z.B. eine Kollegin eine Aufgabe auf dem Handy, aktualisiert sich die auf dem Laptop offene Ansicht innerhalb weniger Sekunden von selbst – kein manuelles Neuladen mehr nötig, um den aktuellen Stand zu sehen. Bewusst per periodischem Abfragen (kein WebSocket/Server-Sent-Events) umgesetzt, da ClubHUB je nach Kunde hinter unterschiedlichen, teils nicht selbst kontrollierten Reverse-Proxies/Portfreigaben läuft – ein normaler wiederholter Seitenaufruf funktioniert dort garantiert, ein WebSocket-Upgrade oder eine dauerhaft offene Verbindung könnte dagegen unbemerkt hängenbleiben. Neuer, sehr leichtgewichtiger `/api/live-version`-Endpunkt (ein einzelner In-Memory-Zähler) wird alle 15 Sekunden abgefragt; nur bei tatsächlicher Änderung wird der betroffene Seiteninhalt ohne echten Reload nachgeladen (Scroll-Position bleibt erhalten). Pausiert automatisch, während der Tab im Hintergrund ist oder gerade ein Textfeld fokussiert ist.
v1.12.2 2026-09-09
  • Termine-Sortierung angepasst: anstehende Termine (inkl. heute) stehen jetzt aufsteigend nach Datum oben (der nächste bevorstehende Termin an erster Stelle), vergangene Termine folgen danach absteigend (jüngster zuerst). Bisher waren alle Termine schlicht chronologisch aufsteigend sortiert, wodurch lange vergangene Termine ganz oben standen statt der nächste anstehende.
v1.12.1 2026-09-08
  • HANDOFF.md/docker-compose.yml an die neuen Verbindungseinstellungen (siehe 1.12.0) angepasst: ntfy/Gotify/Signal sind jetzt reine In-App-Konfiguration und daher aus der Server-Übergabe-Checkliste entfernt (Abschnitt "Danach, in Ruhe" ersatzlos gestrichen, da er nur noch diesen einen Punkt enthielt) sowie im Stack-Template als optionaler, auskommentierter Fallback statt aktiver Standardwerte hinterlegt.
v1.12.0 2026-09-08
  • Verbindungseinstellungen für Benachrichtigungskanäle (ntfy-/Gotify-/Signal-Basis-URL, Signal-Absendernummer) sind jetzt direkt in der Verwaltung pflegbar (Benachrichtigungen → „Verbindungen“, nur für Admins) statt zwingend per Umgebungsvariable im Docker-Stack gesetzt werden zu müssen – relevant z.B. wenn eine externe IT-Firma den Server betreut. Bereits per Umgebungsvariable gesetzte Werte bleiben unverändert als Fallback gültig, solange in der App nichts eingetragen ist (Hinweistext zeigt, welcher Wert dann aktiv wäre). README ergänzt: HTTPS/Reverse-Proxy sind nur für Browser-Push zwingend nötig, nicht für ntfy/Gotify/Signal (reiner ausgehender Traffic); `https://ntfy.sh` als Basis-URL funktioniert komplett ohne eigene Infrastruktur.
v1.11.0 2026-09-08
  • Benachrichtigungskanäle deaktivierbar: neuer Aktiv/Inaktiv-Schalter je Kanal (`NotificationChannel.is_active`, Standard aktiv) – deaktivierte Kanäle werden beim automatischen Versand (Überfällig-/Erledigt-Pushs, Termine, Meldungsstatus …) übersprungen, bleiben aber inklusive Gruppen-Zuordnung erhalten statt gelöscht werden zu müssen. Schalter läuft per `fetch()` ohne Reload (Karte graut sich beim Deaktivieren leicht aus, „Inaktiv“-Badge erscheint), analog zum bestehenden Nutzer-Aktivieren/Deaktivieren. Struktur-Export/-Import berücksichtigt den Status ebenfalls.
v1.10.1 2026-09-07
  • PWA-/Mobile-Icons nachgezogen, damit der "App installieren"-Dialog (Android/Chrome/Vivaldi) und Browser-Tab-Icons das neue Logo sofort zeigen statt eines gecachten alten Stands: `manifest.json` verweist jetzt auf zwei eigens erzeugte, standardgerechte Icon-Größen (192×192, 512×512) statt eines einzelnen 750×750-Icons; alle Icon-Referenzen im HTML-Kopf (`link rel="icon"`, `link rel="apple-touch-icon"`, `link rel="manifest"`) tragen jetzt Cache-Busting (`?v={{ app_build_hash }}`), analog zu CSS/JS. Der Service Worker (`sw.js`) hält bewusst keinen Asset-Cache (reiner Passthrough für Push/Installierbarkeit, siehe Kommentar dort) – hier gab es also keine Cache-Version zum Erhöhen.
v1.10.0 2026-09-07
  • Neues Logo (CH-Monogramm) app-weit eingeführt: mintgrünes Logo (`logo-icon.png`) ersetzt das bisherige handgezeichnete SVG-Monogramm in der Desktop-Sidebar sowie das Icon in der mobilen Kopfzeile – bester Kontrast auf dem in beiden Themes dunklen Sidebar-Hintergrund (Frannz-Petrol im Light-, Fast-Schwarz im Dark-Theme). Das dunkelgrüne Logo ersetzt `favicon.png` und versorgt darüber automatisch Browser-Favicon, Apple-Touch-Icon, PWA-Icon (`manifest.json`) sowie Push-Icon/Badge.
  • Beide neuen Logo-Dateien auf eine kleine Farbpalette optimiert (Favicon 356 KB → 49 KB, Sidebar-Logo 375 KB → 77 KB) ohne sichtbaren Qualitätsverlust.
v1.9.1 2026-09-05
  • Struktur-Import: Hinweistext unter der Kategorie-Auswahl, sobald "Historie" angehakt, aber "Nutzer" abgewählt ist – macht sichtbar, dass Erledigungen dann nur für bereits im System vorhandene Nutzer (Namensabgleich) übernommen werden.
  • Struktur-Import "Termine": Ersteller-Zuordnung an das Verhalten der Historie angeglichen – ist der ursprüngliche Ersteller-Name in der Ziel-Instanz nicht vorhanden, wird der Termin jetzt übersprungen statt ihn stillschweigend dem importierenden Admin zuzuschreiben (nur bei Export-Dateien ganz ohne Ersteller-Feld greift weiterhin der importierende Admin als Ersatzwert).
v1.9.0 2026-09-04
  • Großes AJAX-Refactoring: Löschen, Statuswechsel und Aktivieren/Deaktivieren laufen jetzt app-weit über `fetch()` statt Formular-Reload, mit flüssigem Karten-/Zeilen-Ausblenden und live mitlaufenden Zählern (Header-Badges, Offen-/Erledigt-Zähler) statt vollständigem Neuladen der Seite. Betroffen: Meldungen (Löschen + Statuswechsel, inkl. Verschieben zwischen "Offen"/"Erledigt" und Sync der Navigations-Badges), Gruppen/Bereiche/NFC-Tags/Benachrichtigungskanäle löschen, Nutzer aktivieren/deaktivieren, Push-Geräte und Passkeys entfernen, Termine/Urlaub löschen, Zeiterfassungs-Buchungen löschen (Nutzer- und Admin-Ansicht), Kühlgerät löschen, Aufgaben/Aufbauten löschen.
  • Neues gemeinsames Modul `static/ajax_actions.js` für den Standardfall (Löschen mit Bestätigung + Zeilen-Entfernung + Zähler-Update; Toggle/Status mit generischem Erfolgs-Event) – künftige einfache Lösch-/Toggle-Buttons brauchen dafür kein eigenes JS mehr, nur die passenden `data-*`-Attribute im Markup.
  • Bewusst unverändert (klassischer Reload) belassen: Datenbank-Wiederherstellung (Neustart der Anwendung ohnehin nötig), Zeiterfassungs-Geräteautorisierung (seltene Einmal-Einrichtung), bereichsübergreifendes Sammel-Abhaken auf dem Dashboard (Bulk-Aktion über viele Karten hinweg, kein einzelner Datensatz).
v1.8.0 2026-09-04
  • "Später erinnern" (Snooze) bei Aufgaben läuft jetzt komplett über `fetch()` statt Formular-Reload: Pausieren und "aufheben" aktualisieren nur noch den betroffenen kleinen Bereich der Aufgaben-Zeile, keine ganze Seite mehr. Serverseitig teilen sich Anzeige und Fetch-Antwort jetzt dasselbe Fragment-Template (`_task_snooze_area.html`), keine doppelte Markup-Pflege mehr.
v1.7.2 2026-09-04
  • "Export-/Import-Verlauf"-Vorschau auf der Struktur-Export & -Import-Karte wieder entfernt – überflüssig, da die eigene "Audit-Log"-Kachel in der Verwaltung (mit Nutzer-/Kategorie-Filter) dieselben Einträge bereits vollständig abdeckt. Das Protokollieren der Export-/Import-Aktionen selbst (log_audit) bleibt unverändert, landet weiterhin im allgemeinen Audit-Log.
v1.7.1 2026-09-03
  • Namenskollision auf der Struktur-Export & -Import-Karte behoben: die kleine Protokoll-Sektion (wer hat wann exportiert/importiert) hieß bisher ebenfalls "Historie" wie die neue Auswahl-Kategorie von eben – jetzt umbenannt in "Export-/Import-Verlauf" zur klaren Unterscheidung. Zusätzlich als einklappbaren Bereich (eingeklappt per Standard) umgesetzt, damit sie die Karte nicht unnötig in die Länge zieht.
v1.7.0 2026-09-03
  • Struktur-Export & -Import: neue Kategorie "Historie" (wer hat wann welche Aufgabe abgehakt) als zusätzliche Auswahl-Chip. Löst ein Missverständnis von letztem Mal auf – gemeint war nicht das Aktivitätsprotokoll der Karte selbst, sondern eine eigene, gezielt wähl- und importierbare Kategorie innerhalb von "Struktur importieren" (z.B. um ausschließlich die Erledigungs-Historie auf eine andere Instanz zu übertragen). Wie "Nutzer" standardmäßig abgewählt, da sie Aufgaben/Nutzer per Name voraussetzt und für einen reinen Struktur-Umzug meist nicht gebraucht wird.
v1.6.1 2026-09-03
  • Systemseite-Grid nochmal umstrukturiert: statt zwei durchlaufender Spalten jetzt zwei getrennte, symmetrische Zeilen – Zeile 1 (System & Status + Module & Features, gleiche Höhe) und Zeile 2 (Datenbank-Sicherungen + Struktur-Export & -Import, jeweils eigene natürliche Höhe). Homogeneres Layout ohne Lücken.
  • Der Link zur Historie bei Struktur-Export & -Import ist jetzt ein richtiger, klar erkennbarer Button (wie "Herunterladen" gestylt) statt eines dezenten Text-Links.
v1.6.0 2026-09-03
  • Systemseite-Layout richtig repariert: das 4-Karten-Grid mit Auto-Placement wich einem "Loch" unter "System & Status", weil bei CSS-Grid die Zeilenhöhe von der jeweils höchsten Karte einer Zeile bestimmt wird – die kürzere Spalte konnte also nicht einfach nach oben rücken, egal ob die einzelne Karte selbst stretchte oder nicht. Jetzt zwei echte, unabhängige Spalten-Container statt eines einzelnen Grids – jede Spalte rückt nur nach ihrer eigenen Höhe zusammen.
  • Struktur-Export & -Import: neue "Historie"-Sektion zeigt die letzten Export-/Import-Aktionen direkt auf der Karte (nutzt das bestehende Aktivitätsprotokoll, keine neue Tabelle), mit Link aufs vollständige Audit-Log. Dabei auch den Export selbst erstmals protokolliert – bisher loggte nur der Import.
v1.5.2 2026-09-03
  • Systemseite (Verwaltung → System) final aufgeräumt: "Module & Features" steht jetzt in der linken Spalte direkt unter "System & Status" statt als eigene volle Zeile ganz unten. Das Datei-Feld bei "Struktur importieren" nutzt jetzt dieselbe moderne Upload-Dropzone wie die DB-Sicherungen statt des nackten Standard-Datei-Inputs. Dabei nebenbei behoben: alle vier Karten behalten jetzt ihre eigene natürliche Höhe (kein sinnloser Leerraum mehr, wenn eine Karte deutlich kürzer ist als ihre Nachbarin in derselben Zeile).
v1.5.1 2026-09-03
  • Backup-Verwaltung (Verwaltung → System) übersichtlicher gemacht: die bisher getrennten Karten "Automatische Sicherungen" und "Backup & Wiederherstellung" sind zu einer Karte "Datenbank-Sicherungen" zusammengefasst (Kopf: manueller Download + Auto-Backup-Einstellungen, Mittelteil: Liste der automatischen Sicherungen, Fuß: optisch klar abgesetztes manuelles Wiedereinspielen mit neu gestylter Datei-Dropzone statt nacktem Datei-Feld).
v1.5.0 2026-09-03
  • Neue "Später erinnern"-Funktion bei bald fälligen/überfälligen Aufgaben (Bereichs-Ansicht): verschiebt gezielt nur die nächste Push-Benachrichtigung für genau diese Aufgabe (in 3 Tagen / 1 Woche / 2 Wochen / eigenes Datum), ohne sie als erledigt zu markieren – sie bleibt in Dashboard und Bereich weiterhin ganz normal gelb/rot sichtbar. Gedacht für seit längerem bekannte, bewusst aufgeschobene Arbeiten (z.B. eine noch nicht begonnene Grundreinigung), die sonst bei jedem Ablauf des 4-Stunden-Drossel-Fensters erneut eine Sammel-Push auslösen, obwohl sich nichts geändert hat. Für jeden eingeloggten Nutzer verfügbar, nicht nur Admin/Schichtleiter. Auslöser: Aufgaben, die noch nie abgehakt wurden, gelten sofort als überfällig (Absicht, damit sie nicht unsichtbar bleiben) – bei länger aufgeschobenen Grundreinigungen führte das zu wiederholten, verwirrenden Erinnerungen an bereits bekannte offene Punkte.
v1.4.3 2026-09-02
  • Passkey-Login: der vollwandige, hellgrüne Riesen-Balken über dem Anmeldeformular (Dashboard, nicht angemeldet) ist weg. Passkey-Anmeldung steht jetzt als dezenter, kleiner Link unterhalb des normalen Formulars ("oder mit Passkey anmelden"), statt als aufdringliche Option davor. Conditional UI (Passkey-Vorschlag direkt im Browser-Autofill des Benutzernamen-Felds) war bereits korrekt eingerichtet und bleibt unverändert bestehen.
v1.4.2 2026-09-02
  • Inventar: die "Box-in-Box"-Optik der Gruppen-Abschnitte (siehe 1.4.0) entfernt – kein umschließender Card-Rahmen mehr um eine Gruppe, stattdessen ein schlanker, freistehender Header mit dünner Trennlinie; die Artikel-Karten stehen wie vor der Gliederung direkt im normalen Seiten-Stack.
  • Die Gruppen-Gliederung selbst ist jetzt ebenfalls nur für Admins/Schichtleiter aktiv. Für alle anderen Rollen (die ohnehin immer nur die eigene, einzige Gruppe sehen) gibt es keinen Gruppen-Header mehr, sondern wieder die flache Liste wie vor dem ursprünglichen Umbau.
  • Bugfix dabei entdeckt und behoben: die Such-/Status-Filterung griff für Nicht-Admin/Schichtleiter-Rollen nicht mehr, weil die Filterlogik ausschließlich über Gruppen-Abschnitte iterierte, die für diese Rollen gar nicht existieren.
v1.4.1 2026-09-02
  • "Sichtbarkeit anpassen" (Bereiche + Inventar) ist jetzt nur noch für Admins/Schichtleiter sichtbar. Für alle anderen Rollen ergab die Funktion keinen Sinn – sie sehen ohnehin nur die eigene (einzige) Gruppe, es gäbe also nichts sinnvoll auszublenden außer der eigenen, gesamten Sicht.
v1.4.0 2026-09-02
  • Inventar: die Artikel-Liste ist jetzt nach Zuständigkeits-Gruppe gegliedert (z.B. "Hausmeister", "Küche", "Gastronomie" als eigene, einklappbare Abschnitte mit Artikel-Anzahl im Header, Artikel ohne Gruppe als "Ohne Gruppe" am Ende). Vor allem für Admins/Schichtleiter gedacht, die standardmäßig das Inventar aller Gruppen sehen – bisher eine einzige, rein alphabetische Liste ohne erkennbare Trennung zwischen den Gruppen. Suche und Status-Filter funktionieren weiterhin wie gewohnt, leere Abschnitte blenden sich beim Filtern automatisch mit aus.
v1.3.1 2026-09-02
  • Meldungen: dieselbe Einschränkung wie bei den Bereichen (siehe 1.3.0) jetzt auch hier – normale Mitarbeiter sehen bei einer Meldung zu einem geteilten Bereich (z.B. Küche + Gastronomie) nur die eigene Gruppe als Badge bzw. unter "Bereichsgruppe", nicht die volle Liste. Admin/Schichtleiter unverändert vollständig.
  • Bugfix: die Sidebar zeigte unter dem eigenen Namen fälschlich "Mitglied" statt der tatsächlichen Rolle – zeigt jetzt korrekt "Mitarbeiter" bzw. "Pauschalkraft".
v1.3.0 2026-09-02
  • Kühlungen ist jetzt pro Gruppe freischaltbar statt für jeden sichtbar: neuer Schalter "Zugriff auf Kühlungen" bei den Gruppen (Verwaltung → Gruppen), standardmäßig für alle Gruppen aus. Admins/Schichtleiter sehen das Modul davon unabhängig immer. Ohne Zugriff verschwindet der Menüpunkt aus Navigation und mobiler "Mehr"-Ansicht, ein direkter Aufruf leitet mit Hinweis aufs Dashboard um.
  • Bereichs-Ansicht: die "Zuständigkeiten"-Zeile unter dem Bereichsnamen zeigt normalen Mitarbeitern jetzt nur noch die eigene(n) Gruppe(n) statt aller einem Bereich zugeordneten Gruppen. Bei Bereichen, die sich mehrere Gruppen teilen (z.B. Küche + Gastronomie), soll so vermieden werden, dass sich eine Gruppe auf die andere verlässt ("das kann ja auch die Gastro machen"). Admins/Schichtleiter sehen weiterhin alle zugeordneten Gruppen.
v1.2.0 2026-09-02
  • Bereiche-Übersicht (`/rooms`): neue "Sichtbarkeit anpassen"-Klappe, analog zur bereits bestehenden Funktion im Inventar. Damit jeder Nutzer – gerade jetzt, wo Schichtleiter alle Bereiche sehen – gezielt Gruppen ausblenden kann, die ihn nicht interessieren (z.B. ein Gastro-Schichtleiter blendet die Bereiche der Hausmeister-Gruppe aus, kann sie sich aber jederzeit wieder einblenden, um dort nach dem Rechten zu sehen). Rein persönliche Einstellung, ändert nichts für andere; wirkt auch auf das Dashboard, da beide dieselbe Filterfunktion nutzen. Ein Bereich mehrerer Gruppen bleibt sichtbar, solange mindestens eine seiner Gruppen nicht ausgeblendet ist.
v1.1.1 2026-09-02
  • Bugfix Rollenkonzept: ein Schichtleiter ohne eigene Gruppen-Mitgliedschaft (oder ohne Überschneidung mit den Gruppen eines Bereichs) sah bisher weder die bereits angelegten Bereiche noch das zugehörige Inventar, Kühlzellen oder Meldungen – die Sichtbarkeits-Prüfung für diese Inhalte kannte bislang nur "Admin sieht alles", nicht "Schichtleiter sieht alles" (unabhängig von der eigenen Rollen-Rechte-Überarbeitung, die nur die Verwaltungsseiten selbst betraf). Schichtleiter sehen jetzt wie vorgesehen wirklich alle Bereiche, Inventar, Kühlzellen, Meldungen und betrieblichen Termine – als privat markierte Termine von Kollegen bleiben davon bewusst ausgenommen.
v1.1.0 2026-09-02
  • Module "Zeiterfassung" und "Urlaub" sind jetzt global deaktivierbar – z.B. für Betriebe, die diese beiden Funktionen nicht brauchen. Neue Karte "Module & Features" unter Verwaltung → System (nur Admin): je ein Schalter pro Modul. Deaktiviert verschwinden die Menüpunkte aus Desktop-Sidebar und mobiler Navigation, die zugehörigen Dashboard-Widgets ("Einstempeln", "Wer ist gerade da?", "Wer hat gerade Urlaub?") sowie die Lohn/Sollzeit-Karte im Profil blenden sich aus, und ein direkter Aufruf von `/timeclock`/`/vacations` (Bookmark o.ä.) leitet mit Hinweis aufs Dashboard um. Bereits erfasste Daten bleiben dabei vollständig erhalten und sind sofort wieder da, sobald ein Modul erneut aktiviert wird. Bestehende Installationen, die diese Module schon aktiv nutzen, bleiben beim Update automatisch aktiviert – nur eine komplett neue Installation startet standardmäßig ohne beide Module.
v1.0.1 2026-09-02
  • Löschen-Rechte weiter angeglichen: wie schon bei erledigten Aufgaben darf jetzt auch bei Kühlungs-Messwerten, Meldungen, Terminen und Urlaubsanträgen jede Rolle außer Admin nur noch den eigenen Eintrag löschen, nicht mehr die von Kollegen. Anlegen und Bearbeiten (auch fremder Einträge) bleibt für Schichtleiter unverändert möglich – nur das Löschen ist jetzt enger gefasst.
v1.0.0 2026-09-02
  • Rollenkonzept überarbeitet: die separate "Entwickler"-Rolle wurde wieder entfernt – ein Admin, der alles kann, reicht aus. Der Schichtleiter sieht/verwaltet dafür jetzt wieder praktisch alles wie ein Admin (Bereiche, Gruppen, Inventar, Aufgaben, Kühlungen, Benachrichtigungskanäle, Nutzer anlegen/bearbeiten), darf aber gezielt nicht löschen: keine Nutzer deaktivieren, keine Stammdaten (Bereiche/Gruppen/Inventar/Aufgaben/Kanäle/Kühlzellen) löschen und keine Backups wiederherstellen/importieren – das bleibt Admin-only.
  • Erledigte Aufgaben in der Historie: ab sofort darf jede Rolle (außer Admin) nur noch die eigene Erledigung zurückziehen, nicht mehr die von Kollegen. Der Admin kann weiterhin jede beliebige zurückziehen.
v0.99.0 2026-08-27
  • Überfällige Aufgaben lassen sich jetzt auch direkt vom Dashboard aus abhaken (Handy-Block "Heute anstehend" + Desktop-Widget "Überfällige Aufgaben"), ohne erst in den Bereich wechseln zu müssen: die Karte blendet sich flüssig aus, der Zähler "Heute stehen X Reinigungen an" sowie die Kennzahlen "Erledigt heute"/"Überfällig" aktualisieren sich live, und sobald nichts mehr überfällig ist, erscheint automatisch "Aktuell nichts überfällig 🎉" – alles ohne Neuladen der Seite.
  • Bereichs-Ansicht (`/room/<id>`): die "Alles erledigt"-Meldung erscheint jetzt ebenfalls automatisch, sobald die letzte offene Aufgabe per Klick abgehakt wird, statt erst nach einem Neuladen sichtbar zu werden.
v0.98.1 2026-08-25
  • Bugfix Wareneingang-Scan: nach einer erfolgreichen Buchung erkannte die Kamera denselben Barcode oft noch ein zweites Mal (falls der Artikel auch nur kurz weiter im Bild war) und buchte ihn dadurch versehentlich doppelt. Derselbe Code wird jetzt für 2,5 Sekunden nach einer Buchung/Zuweisung ignoriert.
v0.98.0 2026-08-23
  • "Erledigt"-Sammel-Pushes respektieren jetzt ebenfalls die Arbeitszeit der jeweiligen Gruppe – wer gerade nicht im Dienst ist, bekommt die (rein informative) Meldung nicht mehr außerhalb seiner Arbeitszeit.
  • Der Drossel-Zeitstempel für die "Überfällig"-Sammel-Push wird jetzt pro Kombination aus Bereich UND Gruppe gespeichert (neue Tabelle `room_group_throttles`) statt nur global pro Bereich. Dadurch verpasst eine später startende Schicht/Gruppe eine Benachrichtigung nicht mehr nur, weil eine andere Gruppe desselben Bereichs innerhalb der letzten 4 Stunden bereits informiert wurde.
v0.97.4 2026-08-23
  • Bugfix: die gebündelte "Überfällig"-Sammel-Push (siehe 0.96.0) respektierte die Arbeitszeit einer Gruppe nicht mehr korrekt, wenn ein Bereich mehreren Gruppen zugeordnet ist und mindestens eine davon kein eigenes Arbeitszeit-Fenster hat (z.B. "Gäste WCs": Hausmeister 6–14 Uhr + Toilettenbetreuung ohne Einschränkung) – die Prüfung "irgendeine der Gruppen ist gerade in ihrer Arbeitszeit" schickte den Push dann an alle zugeordneten Gruppen, auch außerhalb von deren eigenem Fenster. Die Meldung geht jetzt nur noch an die Gruppen raus, die gerade tatsächlich innerhalb ihrer eigenen Arbeitszeit sind.
v0.97.3 2026-08-23
  • Systemverwaltung: Die Unterkanten von "System & Status" und "Automatische Sicherungen" (obere Kartenreihe) fluchten jetzt exakt – zuvor variierte die Höhe je nach Zeilenumbruch der Erklärungstexte leicht zwischen beiden Karten. "Backup & Wiederherstellung" und "Struktur-Export & -Import" (untere Reihe) behalten bewusst weiterhin ihre eigene, unterschiedliche Höhe, statt die kürzere Karte mit Leerraum auf die Höhe der längeren zu strecken.
v0.97.2 2026-08-23
  • Audit-Log DSGVO-konform gemacht: Client-IP-Adressen werden nicht mehr erfasst und gespeichert (bereits vorhandene Einträge wurden beim Update einmalig bereinigt). Die IP-Spalte ist dadurch auch aus der Tabelle unter `/admin/audit-log` verschwunden – der frei gewordene Platz kommt der "Details"-Spalte zugute, die jetzt breiter und besser lesbar dargestellt wird.
  • Systemverwaltung: Die Kennzahlen-Zeilen der Karten "System & Status" und "Automatische Sicherungen" sind jetzt exakt auf gleicher Höhe ausgerichtet (gemeinsame Mindesthöhe für beide Listen), dadurch fluchten auch "Jetzt synchronisieren" und der Erklärungstext rechts daneben zeilengenau.
v0.97.1 2026-08-23
  • Systemverwaltung: die aufklappbare Liste "Einzelne Sicherungen" hat jetzt eine feste Maximalhöhe mit eigenem Scrollbalken, statt die Karte bei vielen automatischen Sicherungen beliebig in die Länge zu ziehen – das 2-Spalten-Grid bleibt dadurch stabil, die Nachbarkarten rutschen nicht mehr nach unten weg.
v0.97.0 2026-08-23
  • Neues Audit-Log in der Verwaltung (`/admin/audit-log`): protokolliert wichtige Verwaltungs-Aktionen (Login, Nutzer anlegen/bearbeiten/(de)aktivieren, Gruppen/Bereiche/Inventar-Stammdaten anlegen/bearbeiten/löschen, Backup-Download, Struktur-Import) mit Zeitpunkt, Nutzer, Aktion, Kategorie, Beschreibung und IP-Adresse. Übersichtliche Tabelle mit Stichwortsuche sowie Filter nach Nutzer und Kategorie, neue Kachel auf der Verwaltungs-Hauptseite. Nur für Admins/Schichtleiter sichtbar, wie die Nutzerverwaltung selbst. Vollständige Datenbank-Wiederherstellungen erscheinen bewusst nicht im Log (die Datenbankdatei wird dabei komplett ausgetauscht, ein Log-Eintrag ginge dabei sofort wieder verloren) - dafür stattdessen im Docker-Log nachvollziehbar.
v0.96.2 2026-08-23
  • Systemverwaltung (`/admin/system`): auf ein 2-Spalten-Grid umgestellt. "Version" und "Zeitsynchronisation" sind jetzt eine gemeinsame Karte "System & Status" (Version/Build als kompakte Badges im Karten-Kopf statt eigener Liste), daneben "Automatische Sicherungen"; darunter "Backup & Wiederherstellung" und "Struktur-Export & -Import" nebeneinander statt aller vier Karten in einer langen Spalte untereinander.
v0.96.1 2026-08-23
  • Profil (`/profile`): auf ein 2-Spalten-Grid ab Tablet-Breite umgestellt und thematisch neu gruppiert – "Konto & Sicherheit" fasst Profilbild, Passwort und Passkeys jetzt in einer Karte zusammen (per dezenten Trennlinien statt drei eigenen Karten), "Lohn & Sollzeit" bleibt eigenständig, und die Benachrichtigungs-Einstellung sitzt jetzt direkt als Kopfzeile über "Meine Geräte" in einer gemeinsamen Karte. Buttons innerhalb der Konto-Karte haben jetzt eine einheitliche Breite.
v0.96.0 2026-08-23
  • Überfällig-Benachrichtigungen aus dem Hintergrund-Job gebündelt: statt für jede überfällige Aufgabe einzeln zu benachrichtigen, sammelt ClubHUB jetzt alle aktuell überfälligen Aufgaben eines Bereichs und verschickt höchstens eine zusammengefasste Meldung (z.B. "Überfällig: Gäste WC – 3 Aufgaben sind überfällig (z.B. Mülleimer leeren, Sanitäranlagen reinigen...)."). Pro Bereich wird dieselbe Sammel-Meldung frühestens alle 4 Stunden erneut verschickt (per Umgebungsvariable `OVERDUE_BATCH_THROTTLE_HOURS` einstellbar), auch wenn zwischendurch weitere Aufgaben überfällig werden. "Bald fällig"-Hinweise bleiben unverändert sofortige Einzel-Benachrichtigungen.
  • "Erledigt"-Benachrichtigungen sind jetzt standardmäßig deaktiviert und lassen sich im Profil unter "Benachrichtigungs-Einstellungen" gezielt aktivieren ("Benachrichtigung erhalten, wenn Aufgaben erledigt werden"). Wer das nicht explizit einschaltet, bekommt diese eher informativen Sammel-Meldungen nicht mehr auf sein Gerät.
v0.95.4 2026-08-23
  • Kühlungen: Kopfzeile der Kühlzellen-Karte überarbeitet – der Messwert steht wieder wie gewohnt oberhalb der Soll-/Grenzwert-Zeile neben Name und Status statt in einer eigenen Zeile darunter, und Erfassungszeitpunkt/-person sind dort entfallen (stehen bereits bei "Letzte Messungen"/in der Historie, doppelt an der Kopfzeile also unnötig und zuvor Ursache der Kollision mit der Soll-/Grenzwert-Badge).
v0.95.3 2026-08-23
  • Kühlungen (mobile Ansicht): Messwert und Zeitstempel in der Kopfzeile stapeln sich jetzt als eigene Zeile unter Name/Badges, statt als gleichberechtigte Nachbarn um denselben Platz zu konkurrieren – dadurch landete der Zeitstempel je nach Zeilenumbruch zu dicht an der Soll-/Grenzwert-Badge. Ab Tablet-Breite bleibt der Messwert weiterhin gewohnt rechts neben Name/Badges.
v0.95.2 2026-08-23
  • Kühlungen (mobile Ansicht): den grünen "Kreis" um die Soll-/Grenzwert- und Status-Badges behoben – bei längeren Werten (z.B. Minus-Temperaturen) brach der Text innerhalb der Pillen-Badges auf mehrere Zeilen um, was sie durch die abgerundeten Ecken wie einen aufgeblähten Kreis statt einer sauberen Pille aussehen ließ. Außerdem den Chart-Tooltip korrigiert: er war zuletzt komplett deaktiviert, erscheint jetzt wie gewünscht wieder beim Antippen eines Messpunkts, verschwindet aber – anders als vorher – beim Antippen einer Stelle außerhalb des Diagramms, statt dauerhaft stehen zu bleiben.
v0.95.1 2026-08-23
  • Kühlungen (mobile Ansicht): zwei Layout-Fehler behoben. Erstens verdeckte der Chart.js-Tooltip auf dem Smartphone nach dem Antippen eines Messpunkts als schwarzer Kasten einen Großteil des Diagramms, weil er (anders als am Desktop per Maus-Hover) mangels "Mouse-Leave" einfach stehen blieb – er ist auf reinen Touch-Geräten jetzt deaktiviert. Zweitens zwang die eigene Mindestbreite des Chart-Canvas (Browser-Standard 300px, bevor Chart.js sie überschreibt) die Detail-Ansicht in die Breite, wodurch "30 Tage", "Nachtragen" sowie CSV/PDF-Buttons am rechten Bildschirmrand abgeschnitten wirkten – behoben durch die von Chart.js empfohlene Container-Struktur (`min-width: 0` auf den Grid-/Flex-Spalten, `position: relative` auf dem Canvas-Elternelement). Zusätzlich die Kreis-Buttons im Kopfbereich (Profil-Avatar, Design-/Benachrichtigungs-Umschalter) defensiv gegen Verzerrung abgesichert (feste Bildgrößen, konsequentes `shrink-0`).
v0.95.0 2026-08-23
  • Mobile Navigationsleiste: auf 5 Icons begrenzt (Dashboard, Bereiche, Inventar, Meldungen, Mehr) statt mit jedem neuen Modul weiter zu wachsen. „Mehr" öffnet ein Bottom-Sheet von unten mit allen weiteren Modulen (Historie, Kühlungen, Termine, Urlaub, Zeiterfassung, für Verwaltung Berechtigte zusätzlich Verwaltung) – inkl. Meldungs-Badge (z.B. Kühlungs-Alarm), die sonst in der Leiste nicht mehr sichtbar wären. Befindet sich der Nutzer auf einer Seite aus dem Mehr-Menü, wird der „Mehr"-Button selbst grün als aktiv hervorgehoben.
v0.94.0 2026-08-23
  • Kühlungen: Temperaturmessungen lassen sich jetzt nachträglich erfassen und korrigieren. Beim Erfassen kann über das Uhr-Symbol optional ein abweichender Zeitpunkt gewählt werden (Standard bleibt „jetzt"); im Widget „Letzte Messungen" ermöglicht ein neuer „Nachtragen"-Button das gesammelte Eintragen mehrerer Werte über ein kleines Formular, und jede Messung lässt sich dort direkt bearbeiten oder löschen (z.B. bei Zahlendrehern). Rückdatierte oder korrigierte Werte lösen keine (dann irreführende) Live-Meldung mehr aus – nur eine tatsächlich neue, aktuellste Messung tut das; Status-Badge und „notified"-Zustand der Kühlzelle werden nach jeder Änderung korrekt neu bestimmt.
v0.93.0 2026-08-23
  • Neues Modul „Kühlungen" (`/kuehlungen`): digitale Temperaturdokumentation für Kühlzellen nach HACCP. Jede Kühlzelle bekommt eine Soll-Temperatur und einen Grenzwert; Temperaturen lassen sich über eine für Smartphone/Tablet optimierte Eingabemaske erfassen. Wird der Grenzwert überschritten, erscheint der Eintrag rot und es wird automatisch eine kritische Meldung an die zuständige Gruppe (oder betriebsweit) verschickt – solange die Überschreitung anhält, wird nicht erneut benachrichtigt, nach einer Rückkehr in den Soll-Bereich löst die nächste Überschreitung wieder eine neue Meldung aus. Der Temperaturverlauf wird pro Kühlzelle als Chart.js-Liniendiagramm mit 7-/30-Tage-Filter und eingezeichnetem Soll-/Grenzwert dargestellt. Für Prüfungen lässt sich der Monatsverlauf einer Kühlzelle als CSV oder PDF herunterladen, überschrittene Messungen sind darin farblich hervorgehoben.
v0.92.1 2026-08-22
  • Dashboard anpassen: Die Widget-Auswahl wird jetzt geräteseitig im Browser (`localStorage`) statt im Nutzerkonto gespeichert – die Ansicht ist dadurch pro Gerät/Browser individuell (nicht mehr geräteübergreifend synchron), kommt ganz ohne Server-Anfrage aus und funktioniert dadurch auch offline. Beim ersten Aufruf ohne gespeicherte Auswahl sind weiterhin alle Widgets sichtbar.
v0.92.0 2026-08-22
  • Dashboard anpassen: Neuer Button oben rechts öffnet ein Modal mit Schaltern für alle sechs Dashboard-Widgets (KPI-Karten, Nächste Termine, Bereiche, Meldungen, Letzte Reinigungen, Überfällige Aufgaben). Ausgeblendete Widgets verschwinden sofort, ganz ohne Neuladen der Seite, und die Auswahl wird pro Nutzer gespeichert – bleibt dadurch auch nach dem nächsten Login oder auf einem anderen Gerät erhalten.
v0.91.1 2026-08-22
  • Dashboard-Widget "Letzte Reinigungen": Zeilen sind jetzt in drei klare Spalten strukturiert (Bereich mit fester Mindestbreite, Mitarbeiter, Zeitpunkt) – alle Namen und Datumsangaben stehen dadurch bündig untereinander statt je nach Bereichsnamen-Länge zu verrutschen. Der Trennpunkt vor dem Namen ist entfallen.
v0.91.0 2026-08-22
  • Push-Benachrichtigungen für erledigte Aufgaben werden jetzt pro Bereich gebündelt: Statt bei mehreren Erledigungen (z.B. über den Sammel-Button oder mehreren schnellen Einzelabhakungen) für jede Aufgabe einzeln zu benachrichtigen, sammelt ClubHUB alle Erledigungen eines Bereichs innerhalb von 45 Sekunden und verschickt danach höchstens eine zusammengefasste Nachricht (z.B. "Erledigt: Gäste WCs – 5 Aufgaben wurden von Sebastian erledigt.") an die betroffenen Gruppenmitglieder.
v0.90.7 2026-08-21
  • Wareneingang-Scanner: Die Mengen-Auswahl erscheint jetzt erst, nachdem der erste Barcode erkannt wurde, statt schon direkt unter der Kamera sichtbar zu sein – vermeidet die Verwechslung mit einer Einstellung für "wie oft scannen".
v0.90.6 2026-08-21
  • Wareneingang-Scanner: Die "Menge je Scan" lässt sich jetzt wie im normalen Inventar per Minus-/Plus-Buttons einstellen, statt nur über das Zahlenfeld-Spinner-Steuerelement des Browsers – gleiche Bedienung, gleiches Aussehen wie beim regulären Buchen.
v0.90.5 2026-08-21
  • Barcode-/QR-Scanner: die wirkliche, seit der Fokus/FPS-Optimierung bestehende Ursache von "Kamera konnte nicht gestartet werden" gefunden und behoben. Die Kombination aus Rückkamera-Erzwingung und Autofokus-Einstellung wurde der Scanner-Bibliothek in einer Form übergeben, die sie grundsätzlich ablehnt (noch bevor überhaupt eine Kamera-Berechtigung angefragt wurde) – dadurch schlug jeder Scan-Versuch fehl, unabhängig vom Gerät oder der erteilten Berechtigung. Läuft jetzt korrekt über den dafür vorgesehenen Bibliotheks-Mechanismus. Zusätzlich zeigen Kamera-Fehler jetzt zuverlässig die richtige, spezifische Meldung (z.B. "Zugriff verweigert" statt der nichtssagenden generischen Meldung).
v0.90.4 2026-08-21
  • Barcode-/QR-Scanner: den eigentlichen Grund für "Kamera konnte nicht gestartet werden" gefunden und behoben – die feste Scan-Box-Größe (250×150px) konnte größer sein als das tatsächliche Kamerabild auf manchen Geräten, was die Bibliothek nach erfolgreichem Kamera-Start intern zum Absturz brachte (nicht die Kamera-Berechtigung selbst war das Problem). Die Scan-Box wird jetzt dynamisch anhand der tatsächlichen Bildgröße berechnet und kann diesen Fehler dadurch nicht mehr auslösen.
v0.90.3 2026-08-21
  • Barcode-/QR-Scanner: Fehler "Kamera konnte nicht gestartet werden" behoben – trat auf, weil ein fehlgeschlagener Rückkamera-Versuch (`facingMode: {exact: "environment"}`) dieselbe Scanner-Instanz für den Fallback-Versuch wiederverwendete, was die Bibliothek in einen inkonsistenten Zustand brachte. Jeder Versuch bekommt jetzt eine frische Instanz. Zusätzlich: aktive Kamera-Streams werden beim Öffnen/Schließen des Scan-Modals zuverlässig zuerst gestoppt (inkl. aller MediaStreamTracks), bevor eine neue Instanz startet; Kamera-Fehler (Berechtigung verweigert, keine Kamera, Kamera belegt) zeigen jetzt eine passende Meldung statt eines generischen Fehlers; ein Aufruf ohne HTTPS (außer localhost) zeigt sofort den Hinweis, dass Kamerazugriff eine sichere Verbindung braucht.
v0.90.2 2026-08-21
  • Barcode-/QR-Scanner: Genauigkeit verbessert, um Fehllesungen durch Unschärfe zu vermeiden. Ein Code wird jetzt erst als gültig übernommen, wenn er zweimal hintereinander innerhalb von 500ms identisch gelesen wurde (Mehrfach-Bestätigung), statt sofort beim ersten – noch unscharfen – Frame. Zusätzlich wird kontinuierlicher Autofokus angefordert (sofern Kamera/Browser das unterstützen) und die Auslesefrequenz auf 12 FPS gesetzt. Betrifft beide Scanner (Wareneingang im Inventar und den neuen Kamera-Button am Barcode-Feld), da beide denselben gemeinsamen Helfer nutzen.
v0.90.1 2026-08-20
  • Inventar-Verwaltung: Direkt neben dem Barcode-Feld im Artikel-Formular ("Neuer Artikel" / "Artikel bearbeiten") gibt es jetzt einen kleinen Kamera-Button – öffnet ein Scanner-Modal, der erkannte Barcode wird automatisch ins Feld übernommen, ganz ohne ihn abtippen zu müssen.
v0.90.0 2026-08-20
  • Inventar: Neue Barcode-Scan-Funktion für den Wareneingang ("Wareneingang / Scannen") – öffnet ein Kamera-Scanner-Modal (html5-qrcode), erkennt einen Barcode und bucht automatisch die eingestellte Menge auf den verknüpften Artikel, inkl. Erfolgston und Eintrag im Inventar-Log. Unbekannte Barcodes lassen sich direkt im selben Schritt per Dropdown einem bestehenden Artikel zuweisen. Barcodes können auch manuell in der Artikelverwaltung hinterlegt werden.
v0.89.0 2026-08-20
  • Eigenständige Login-Seite (`/login`) entfernt: Das Login-Formular (inkl. Passkey-Login) lebt jetzt ausschließlich im Dashboard (`/`), wohin bisher separate "Anmelden"-Links auch schon verwiesen haben. Nicht angemeldete Aufrufe geschützter Seiten leiten weiterhin mit `next`-Rücksprung dorthin um, damit man nach dem Login automatisch bei der eigentlich gewünschten Seite landet.
v0.88.2 2026-08-20
  • Passkey-Login: Der "Mit Passkey anmelden"-Button samt Autofill (Conditional UI) erscheint jetzt auch im ins Dashboard eingebetteten Mini-Login-Formular (`/`), nicht nur auf der eigenständigen `/login`-Seite – das ist für die meisten Nutzer der tatsächliche erste Anmelde-Ort. Ein Fehlschlag der unauffälligen Hintergrund-Autofill-Abfrage zeigt außerdem korrekterweise keine Fehlermeldung mehr an, da der Nutzer diesen Vorgang nie aktiv gestartet hat.
v0.88.1 2026-08-20
  • Passkey-Login: Autofill (Conditional UI) im Benutzername-Feld auf der Login-Seite – unterstützende Browser schlagen gespeicherte Passkeys direkt in der Tastatur-/Autofill-Leiste vor, ganz ohne den separaten "Mit Passkey anmelden"-Button antippen zu müssen.
v0.88.0 2026-08-20
  • Passkey-Login (WebAuthn/FIDO2): Im Profil lassen sich jetzt Passkeys (Fingerabdruck, Gesichtserkennung, Geräte-PIN oder Sicherheitsschlüssel) hinzufügen, benennen und entfernen. Auf der Login-Seite (`/login`) steht dafür ein neuer "Mit Passkey anmelden"-Button bereit, der ganz ohne vorherige Benutzernamen-Eingabe funktioniert. Der Terminal-Modus für die Zeiterfassung bleibt davon unberührt und nutzt weiterhin ausschließlich die PIN-Eingabe.
v0.87.0 2026-08-20
  • Meldungen: Produkt-/Shop-Links werden jetzt in der Detail-Karte angezeigt – ein gespeicherter Produkt-Link erscheint als anklickbarer "Zum Shop / Produkt"-Button, und URLs, die direkt im Beschreibungstext getippt wurden, werden beim Anzeigen automatisch in klickbare Links umgewandelt.
v0.86.0 2026-08-20
  • Dashboard/Bereichsübersicht: Der grüne Haken-Quick-Button auf einer Bereichs-Kachel ("Tägliche erledigen") läuft jetzt per fetch() ohne Full-Page-Reload – nur diese eine Kachel (Status-Punkt, Rahmenfarbe, Text) aktualisiert sich, die Scroll-Position bleibt exakt erhalten, egal ob mobil oder am Desktop. Betrifft `/` und `/rooms`, da beide dasselbe Bereichs-Grid nutzen.
v0.85.2 2026-08-20
  • Historie (`/history`): "Rückgängig" läuft jetzt per fetch() ohne Full-Page-Reload – die betroffene Zeile verschwindet direkt aus der Tabelle, Seitenzahl/Filter und Scroll-Position bleiben dabei exakt erhalten statt wie bisher auf Seite 1 zurückzuspringen. Klassischer Formular-Fallback (ohne JS) respektiert jetzt ebenfalls den aktuellen Filter-/Seiten-Zustand statt immer auf die unfilterte erste Seite umzuleiten.
v0.85.1 2026-08-20
  • Historie (`/history`): Gruppen-Badges in der Spalte „Erledigt von" springen nicht mehr je nach Namenslänge hin und her – Name steht links, Badges sind rechtsbündig auf einer festen vertikalen Linie ausgerichtet (`flex justify-between`). Nebenbei behoben: Bei mehreren/langen Badges liefen sie vorher über den Zellenrand hinaus statt sauber umzubrechen.
v0.85.0 2026-08-19
  • Neu: Nutzer deaktivieren statt löschen (Soft-Delete). Der "Löschen"-Button in der Nutzerverwaltung ist jetzt ein "Deaktivieren"/"Aktivieren"-Umschalter – deaktivierte Konten können sich nicht mehr einloggen oder einstempeln (auch eine bereits offene Sitzung wird sofort beendet), tauchen aber weiterhin mit vollem Namen und Gruppen-Badge in Historie und Zeiterfassung auf sowie in der "Urlaub für jemand anderen eintragen"-Auswahl bereits bestehender Einträge. Neu angelegt werden können sie dort nicht mehr, bis das Konto reaktiviert wird.
  • Der letzte verbleibende aktive Admin sowie das eigene Konto lassen sich nicht deaktivieren, damit niemand versehentlich alle aussperrt.
v0.84.0 2026-08-19
  • Meldungen (`/reports`, Kategorie „Materialwunsch / Anschaffung"): neues optionales Feld „Produkt-Link / Shop-URL". Sobald eine gültige URL eingefügt wird, ruft die App im Hintergrund die Open-Graph-Daten der Seite ab und befüllt die Beschreibung automatisch mit Titel/Beschreibung (nur falls das Feld noch leer ist) sowie das Produktbild als Vorschau, das beim Absenden automatisch als Foto an die Meldung angehängt wird.
v0.83.2 2026-08-19
  • Meldungen (`/reports`, Formular „Neue Meldung"): Der Bild-Upload nutzt jetzt dieselbe Dropzone-Komponente wie an anderen Stellen der App (gestrichelter Rahmen, Icon, „Fotos hierher ziehen oder klicken / antippen", Drag&Drop, Einfügen per Strg+V) statt des nackten Datei-Auswahl-Felds – inklusive Vorschau-Thumbnails mit „✕"-Button zum Entfernen einzelner Fotos vor dem Absenden.
v0.83.1 2026-08-19
  • Meldungen (`/reports`, Formular „Neue Meldung"): Der Placeholder im Beschreibungsfeld passt sich jetzt der Kategorie an – bei „Materialwunsch / Anschaffung" erscheint „Was wird benötigt? Z.B. Akku-Schrauber für die Werkstatt oder neue Kaffeemaschine…" statt des Standard-Placeholders.
v0.83.0 2026-08-19
  • Meldungen (`/reports`, Formular „Neue Meldung"): Das „Gruppe"-Dropdown ist jetzt wie bei Terminen eine anklickbare Chip-Auswahl (Automatisch (Bereich), Alle (Betriebsweit), einzelne Gruppen) statt eines Auswahlmenüs. Anders als bei Terminen bleibt es dabei Single-Select (Radio-Verhalten) für eine eindeutige Zuständigkeit – der aktive Chip ist grün/dunkel hervorgehoben.
v0.82.1 2026-08-19
  • Historie (`/history`): Der farbige Gruppen-Badge sitzt jetzt in der Spalte „Erledigt von" direkt neben dem Namen des ausführenden Mitarbeiters (z.B. Sebastian `Hausmeister`) statt in der Spalte „Bereich" – zeigt damit die Gruppenzugehörigkeit der Person statt der Bereichsgruppen. Spalte „Datum" unverändert.
v0.82.0 2026-08-19
  • Nutzer-Verwaltung: Beim Anlegen und Bearbeiten ist jetzt mindestens eine Gruppe Pflicht – ohne Gruppe war ein Nutzer bisher versehentlich von Bereichen/Meldungen/Terminen ausgesperrt, sobald die gruppenbasierte Sichtbarkeit griff.
  • Neu: Gruppenfarben. Jede Gruppe bekommt in der Gruppen-Verwaltung eine eigene Farbe aus einer festen Palette (10 Farben) zugewiesen – bestehende Gruppen automatisch reihum vorbelegt. Namens-Badges nutzen diese Farbe jetzt systemweit: Historie (neu), Termine, Meldungen, Inventar-Artikel sowie die Nutzer-/Bereichsverwaltung zeigen auf einen Blick farblich, zu welcher Gruppe ein Eintrag oder Nutzer gehört.
v0.81.0 2026-08-19
  • Gruppen-Auswahl bei Meldungen und Terminen vereinheitlicht: Auswahlfeld heißt jetzt in beiden Modulen "Gruppe", beide bieten neu "Alle (Betriebsweit)" für eine bewusste betriebsweite Freigabe (bei Meldungen zusätzlich zu "Automatisch (Bereich)" und einer einzelnen Gruppe).
  • Termine erlauben jetzt die Auswahl mehrerer Gruppen gleichzeitig (z.B. Gastro + Küche) statt nur einer einzigen - "- Nur ich (Privat) -" und "Alle (Betriebsweit)" bleiben als eigene, sich gegenseitig ausschließende Optionen erhalten.
  • Neu: Gruppenbasierte Sichtbarkeit für Bereiche, Meldungen und Termine (analog zum bereits bestehenden Verhalten im Inventar) - Schichtleiter/Mitarbeiter ohne Admin-Rechte sehen nur noch Bereiche/Meldungen/Termine ihrer eigenen Gruppe(n) sowie ungruppierte bzw. "Alle (Betriebsweit)"-Einträge; eigene private Termine bleiben wie bisher nur für sich selbst sichtbar. Admins behalten uneingeschränkten Zugriff auf alle Module und Gruppen.
  • Technisch: neue m:n-Tabelle für Termin-Gruppen (Altdaten aus der bisherigen Einzel-Gruppe automatisch übernommen), Gruppen-Benachrichtigungen bei mehreren Zielgruppen bzw. "Alle (Betriebsweit)" jetzt dedupliziert (kein doppelter Push mehr, wenn jemand in mehreren Zielgruppen ist oder ein Kanal mehrfach betroffen wäre).
v0.80.1 2026-08-19
  • Die "±X gegenüber gestern"-Anzeige bei der Dashboard-Kachel „Erledigt heute“ entfernt: Bei „Nach Bedarf“-Aufgaben (an einem Tag nötig, am nächsten nicht) erweckte der Vergleich fälschlich den Eindruck, es sei weniger gearbeitet worden.
v0.80.0 2026-08-19
  • Aufgaben-Sortierung in der Bereichsansicht (`/room/{id}`) an die praktische Arbeitsweise angepasst: Turnus kurz vor lang (Täglich/Wöchentlich zuerst, Monatlich/Quartalsweise darunter), „Nach Bedarf“-Aufgaben jetzt bewusst am Ende statt am ursprünglichen Anlage-Zeitpunkt. Innerhalb desselben Turnus alphabetisch nach Name, damit die Liste eine feste Reihenfolge behält statt bei jedem Aufruf in Anlage-Reihenfolge zu erscheinen. Bereits erledigte Aufgaben bleiben wie bisher vollständig ausgeblendet, bis sie erneut fällig werden.
v0.79.1 2026-08-19
  • Fix: Das Buchen von Inventar-Bestand (`/inventar`, „Buchen“-Button je Artikel) lief per echtem Formular-POST und sprang danach an den Seitenanfang zurück. Läuft jetzt per fetch() ohne Full-Page-Reload: Scroll-Position bleibt exakt erhalten, nur die betroffene Artikel-Karte (Ist-Bestand, Fortschrittsbalken, Status-Badge „Im Soll“/„Niedriger Bestand“) wird ausgetauscht statt des gesamten Grids – eine aufgeklappte „Details“-Ansicht bleibt dabei offen.
v0.79.0 2026-08-19
  • Monats-/Freier-Zeitraum-Filter und PDF-Export in der Zeiterfassung sind jetzt in Mitarbeiter- (`/timeclock`) und Admin-Ansicht (`/admin/timeclock`) identisch implementiert (gemeinsame Filterleiste + gemeinsames JS-Modul statt zweier Parallel-Implementierungen).
  • Admin kann jetzt ebenfalls zwischen „Monat“ und „Freier Zeitraum“ (Von/Bis) umschalten, um flexible Abrechnungszeiträume oder Berichte einzusehen – vorher war die Admin-Ansicht fest auf Monate beschränkt.
  • PDF-Export (Mitarbeiter & Admin) und der neue CSV-Export der Admin-Ansicht folgen jetzt strikt dem gerade aktiven Filter (Monat oder Von/Bis) statt PDF immer die komplette Historie bzw. CSV immer nur den Monat zu exportieren.
  • Buchung hinzufügen/bearbeiten/löschen sowie der App-Import kehren in der Admin-Ansicht jetzt ebenfalls in den zuvor gewählten Zeitraum zurück (Monat oder Von/Bis) statt immer auf den aktuellen Monat zurückzuspringen.
v0.78.0 2026-08-19
  • Neue Meldungs-Kategorie „Materialwunsch / Anschaffung“ unter `/reports`: für einmalige Anschaffungen, die an keinen Bereich gebunden sind (z.B. "neue Kaffeemaschine fürs Personal"), sondern nur an eine zuständige Gruppe – man bestellt für seine Gruppe, nicht für einen Raum. Beim Erstellen werden Bereich und Priorität automatisch ausgeblendet/nicht verlangt, die zuständige Gruppe wird stattdessen zur Pflichtangabe.
  • Kennzeichnung mit blauem "Anschaffung"-Badge; über den Status-Regler wie jede andere Meldung auf "Erledigt" setzbar – wandert dann ins bestehende Archiv ("Erledigte Meldungen"), ohne das Inventar zu berühren.
  • Technisch: `reports.room_id` ist jetzt nullable (SQLite-Tabellen-Rebuild-Migration beim Start, Altdaten bleiben unverändert erhalten); alle Anzeigen mit Bereichs-/Prioritätsbezug (Meldungskarten, Dashboard, Benachrichtigungen) sind entsprechend gegen einen fehlenden Bereich abgesichert.
v0.77.0 2026-08-19
  • Mitarbeiter-Zeiterfassung (`/timeclock`) auf das UI-Muster der Admin-Zeiterfassung umgestellt: gleiche Whitecard mit Monats-Pfeilen `<`/`>` und Datepicker, jetzt zusätzlich umschaltbar auf einen freien Von/Bis-Zeitraum. KPI-Kacheln ("Heute verdient", "Verdient im Monat/Zeitraum", "Überstunden" bzw. "Erfasste Buchungen" im freien Zeitraum) sitzen wie im Admin-Bereich direkt in der Whitecard.
  • Verlauf ist jetzt eine Tabelle (Datum/Kommen/Gehen/Dauer/Aktionen) statt einer Liste, zeigt den kompletten gewählten Zeitraum statt nur der letzten 20 Buchungen, kein Mitarbeiter-Dropdown (nur eigene Daten). "Als PDF exportieren" sitzt oben rechts in der Tabellenleiste, an der Position des "Daten"-Buttons im Admin-Bereich.
  • Monats-/Zeitraum-/Moduswechsel läuft komplett ohne Full-Page-Reload (fetch()), inkl. URL-Synchronisation; Bearbeiten/Löschen einer eigenen Buchung kehrt danach in den zuvor gewählten Zeitraum zurück statt auf den aktuellen Monat zurückzuspringen.
v0.76.1 2026-08-19
  • Fix: Der 2-Farben-Inventarstatus aus 0.76.0 verglich den Ist-Bestand fälschlich mit dem Soll-Bestand statt mit dem Mindestbestand – dadurch wurde z.B. „3/3 Kanister“ fälschlich rot als „Niedriger Bestand“ angezeigt. Vergleich läuft jetzt korrekt gegen den Mindestbestand (mit Fallback auf die Hälfte des Soll-Bestands, falls nicht gesetzt); die Detail-Ansicht zeigt Soll-Bestand und Mindestbestand wieder als getrennte Werte.
v0.76.0 2026-08-19
  • Inventar-Statusanzeige auf klares 2-Farben-System vereinfacht: nur noch grün „Im Soll“ (Bestand über Mindestbestand) oder rot „Niedriger Bestand“ (Bestand auf oder unter Mindestbestand) – die bisherigen Zwischenstufen „Kritisch“ (orange) und „Bestand leer“ sowie die Prozentanzeige im Detailbereich entfallen. Badge, Fortschrittsbalken und „Nachbestellen“-Button sind jetzt einheitlich rot eingefärbt und der Button ist bei „Im Soll“ ausgeblendet.
  • Fix: Die Bestands-Benachrichtigung an Gruppen (vorher an die inzwischen entfernte „Kritisch“-Stufe gekoppelt) löst jetzt korrekt bei „Niedriger Bestand“ aus.
v0.75.0 2026-08-18
  • Inventar-Verwaltung (`/admin/inventory`): Anlegen, Bearbeiten und Löschen von Artikeln laufen jetzt per fetch() ohne Full-Page-Reload – nur die Tabelle wird aktualisiert, die aktuell gewählte Sortierung bleibt dabei erhalten (auch der Sortierungs-Wechsel selbst läuft jetzt ohne Reload). Bei einem fehlgeschlagenen Speichern bleibt der Bearbeiten-Drawer offen und zeigt eine Fehlermeldung statt Datenverlust.
  • Fix: Das ⋮-Kebab-Menü einer Artikelzeile klappt jetzt automatisch nach oben auf (`bottom-full`), wenn am Tabellenende nicht mehr genug Platz nach unten ist – vorher wurde es vom horizontal scrollbaren Tabellen-Wrapper abgeschnitten.
v0.74.1 2026-08-18
  • Termine ohne Gruppe ("– nur ich –") sind jetzt privat: sichtbar nur für den/die Ersteller:in selbst und Admins, nicht mehr für andere Kolleg:innen oder Schichtleiter – weder unter `/appointments` noch im Dashboard. Termine mit Gruppe bleiben wie bisher für alle sichtbar.
v0.74.0 2026-08-18
  • Aufgaben abhaken (Bereichsansicht) läuft jetzt ohne Full-Page-Reload: "Erledigt" sendet per fetch() an den Server, die Karte zeigt sofort ein Haken-Icon + grüne Hervorhebung und blendet danach sanft aus (Höhe/Deckkraft-Animation, kein Layout-Sprung).
  • Neuer Toast am unteren Bildschirmrand bestätigt "„Aufgabe“ als erledigt markiert" mit "Rückgängig"-Option (macht die Buchung serverseitig innerhalb weniger Minuten wieder rückgängig); bei einem Fehler erscheint die Karte automatisch wieder und ein roter Fehler-Toast informiert.
  • Fix: "Nach Bedarf"-Aufgaben verschwinden nach dem Abhaken jetzt ebenfalls aus der offenen Liste (vorher blieben sie stehen, was wie ein kaputter Button wirkte) und tauchen automatisch am nächsten Tag wieder auf.
v0.73.1 2026-08-18
  • Fix: Aufgaben-Karten auf der Bereichs-Detailseite liefen auf schmalen Bildschirmen über den rechten Rand hinaus, sobald zusätzlich zum Aufgabennamen ein "Nach Bedarf"- oder Wochentags-Badge angezeigt wurde – dabei wurden "Erledigt"-Button und Kebab-Menü teilweise oder komplett aus dem sichtbaren Bereich gedrängt. Die Titelzeile bricht jetzt sauber um.
v0.73.0 2026-08-18
  • Mobiles Dashboard neu priorisiert: ganz oben direkt unter dem Header steht jetzt ein "Heute anstehend"-Block mit Terminen für heute und überfälligen Reinigungen, danach folgen die KPI-Kacheln (2x2), Bereiche-Schnellzugriff, eine Termine-Vorschau samt offenen Meldungen und ganz unten die letzten Reinigungen. Desktop-Ansicht unverändert.
  • Sidebar: Versionsnummer (`v{{ app_version }}`) steht jetzt als kleiner, dezenter Subtext direkt unter dem "ClubHUB"-Schriftzug statt rechts daneben.
v0.72.0 2026-08-18
  • Zeiterfassung (Verwaltung): Monatswechsel (Pfeile, Monats-Picker, "Aktueller Monat") läuft jetzt ohne Full-Page-Reload – die Tabelle samt KPIs wird per fetch() nachgeladen, während des Ladens dezent abgedunkelt (opacity-50, kein Layout-Sprung), die URL wird dabei lautlos per history.replaceState synchron gehalten (Link bleibt teilbar). Pilot-Umsetzung für ein Muster, das bei Bedarf auf weitere Seiten (Historie, Inventar, Bereiche) übertragen werden kann.
v0.71.2 2026-08-18
  • "Daten"-Dropdown (Zeiterfassung): Beschriftungen vereinheitlicht ("Importieren (.txt / .csv)" / "Exportieren (.txt / .csv)")
  • CSV-Export ist jetzt strukturgleich mit dem Import und direkt re-importierbar: Kopfzeile beginnt mit "#" und benennt die Zeit-Spalten CHECKIN/CHECKOUT statt Kommen/Gehen, damit der Import-Parser die exportierte Datei unverändert wieder einlesen kann
v0.71.1 2026-08-18
  • Feinschliff am "Daten"-Dropdown (Zeiterfassung): Emoji-Icons durch saubere System-Icons ersetzt (Cloud-Upload, Tabellenblatt, Dokument) und das Menü explizit rechtsbündig unter dem Button ausgerichtet
v0.71.0 2026-08-18
  • Steuerungselemente unter Verwaltung > Zeiterfassung aufgeräumt: "App-Import" und "Buchung hinzufügen" aus dem Seiten-Header entfernt, alle Aktionen jetzt in einer gemeinsamen Leiste direkt über der Tabelle (Mitarbeiter-Filter links, Dropdown "Daten" mit Importieren/CSV-Export/PDF-Export sowie der grüne "Buchung hinzufügen"-Button rechts)
v0.70.0 2026-08-18
  • Neu: CSV-Export unter Verwaltung > Zeiterfassung, im selben Pipe-getrennten Format wie der App-Import (Spalten: Datum|Mitarbeiter|Kommen|Gehen|Dauer_Minuten|Dauer_Formatiert|Notizen), respektiert den gewählten Monat und optional den Mitarbeiter-Filter, UTF-8 mit BOM für saubere Umlaut-Darstellung in Excel
v0.69.0 2026-08-18
  • Zeiterfassungs-Import um intelligente Duplikat-Erkennung und Konflikt-Lösung erweitert: 100% identische Zeilen werden automatisch übersprungen, neue Tage automatisch übernommen; bei abweichenden Zeiten am selben Tag öffnet sich vor dem Speichern ein Konflikt-Modal mit Gegenüberstellung (Bestehend vs. Import), Einzelentscheidung (Bestehenden behalten / Durch Import ersetzen / Beide behalten) und globalen Sammel-Aktionen für alle Konflikte
  • Nichts wird gespeichert, solange ungelöste Konflikte offen sind - erst nach der Entscheidung landet der komplette Import (inkl. eindeutig neuer Zeilen) gesammelt in der Datenbank
  • Abschluss-Toast fasst jetzt auch gelöste Konflikte mit auf (z.B. "1 Konflikt gelöst (1 ersetzt)")
v0.68.0 2026-08-18
  • Neue einheitliche Dropzone-Upload-Komponente (gestrichelter Rahmen, Drag & Drop, Screenshot-Einfügen per Strg+V, Miniaturvorschau mit Dateiname/Größe, ✕ zum Entfernen) app-weit auf allen Datei-Uploads eingeführt: Feedback-/Bug-Modal, Artikelbild-Upload (Inventar), Aufbau-Fotos (Bereichs-Detailseite) und Zeiterfassungs-Import
v0.67.0 2026-08-18
  • Feedback-/Bug-Modal: Screenshots lassen sich jetzt optional anhängen (mehrere möglich), erscheinen als Thumbnails in Verwaltung > Feedback und werden im "Als Claude-Prompt kopieren"-Text erwähnt
  • Entwickler sehen jetzt wie Admins die komplette Backup/Wiederherstellung-Sektion unter Verwaltung > System (automatische Sicherungen, manuelles Backup, Struktur-Export/-Import) inkl. aller zugehörigen Aktionen - Schichtleiter weiterhin ausgeschlossen
  • Fix: Kebab-Button bei Urlaub/Terminen hatte einen dauerhaft sichtbaren Rahmen statt wie überall sonst nur beim Hover farblich hervorzutreten
v0.66.1 2026-08-18
  • Fix: Kebab-Menü bei Urlaub und Terminen war oben statt vertikal mittig ausgerichtet, wenn die Karte durch Datum/Status-Badges zweizeilig wurde
v0.66.0 2026-08-18
  • Schwebender Feedback-Button verkleinert: statt einer Pille mit Dauertext jetzt ein kompaktes rundes 💬-Icon unten rechts, der Text "Feedback / Bug melden" erscheint nur noch als Tooltip-Label beim Hover - verdeckt dadurch keine Tabellen-Paginierung oder andere Interaktionselemente mehr
v0.65.0 2026-08-18
  • Kebab-Menü (⋮) als einheitlicher Standard für Bearbeiten/Löschen in der ganzen App etabliert: Bereiche, Nutzer, Gruppen, Benachrichtigungen, Inventar, Zeiterfassung (Verwaltung + Selbstbedienung), Urlaub und Termine zeigen jetzt statt direkter Stift-/Mülleimer-Icons ein dezentes Menü mit "Bearbeiten" (Stift-Icon) und "Löschen" (rot, Mülleimer-Icon)
  • Menü bleibt weiterhin nur für Nutzer mit den jeweils passenden Bearbeitungs-/Admin-Rechten sichtbar, unverändert gegenüber der bisherigen Berechtigungslogik je Seite
  • Bereichs-Detailseite (Aufgaben): Kebab-Einträge um dieselben Icons ergänzt für volle Konsistenz mit den anderen Seiten
v0.64.1 2026-08-17
  • Fix: Umami-Tracking läuft nicht mehr auf localhost/bei rohen Datei-Vorschauen mit (verfälschte sonst die echte Statistik)
v0.64.0 2026-08-17
  • Umami-Analytics-Tracking eingebunden (self-hosted auf stats.nifflheim.de)
v0.63.0 2026-08-17
  • Bereichs-Detailseite: Stift-Icon direkt neben dem "Erledigt"-Button entfernt (verhindert versehentliche Klicks beim Abhaken), stattdessen dezentes Kebab-Menü (⋮) am rechten Rand mit "Bearbeiten"/"Löschen"
  • Kebab-Menü nur für Admins/Schichtleiter/Entwickler sichtbar - normale Mitarbeiter sehen an der Aufgaben-Karte ausschließlich den "Erledigt"-Button
v0.62.0 2026-08-17
  • Änderungsprotokoll unter Verwaltung > Zeiterfassung für lange Historien optimiert: schlankere Kopfzeile mit Info-Icon (Tooltip statt Fließtext-Erklärung), "Kette prüfen"-Button + Status-Badge ("Kette intakt") jetzt direkt oben rechts in der Kopfzeile
  • Textliste durch strukturierte Tabelle ersetzt (Zeitpunkt, Aktion, Bearbeiter, Mitarbeiter, betroffene Schicht inkl. "vorher"-Angabe bei Bearbeitungen)
  • Anzeige initial auf die 10 neuesten Einträge begrenzt, "Ältere Einträge laden (+10)"-Button blendet weitere bei Bedarf ein
v0.61.0 2026-08-17
  • Neu: App-Import unter Verwaltung > Zeiterfassung. Buchungen aus dem Export der "Zeiterfassung Pro" App (DynamicG, z.B. `timerec-workunits-pro.txt`) lassen sich per Datei-Upload einem Mitarbeiter zuordnen und importieren
  • Bereits vorhandene Buchungen (gleicher Mitarbeiter + exakt gleiche Kommen-Zeit) werden automatisch als Duplikat übersprungen, ungültige/leere Zeilen werden ignoriert
  • Rückmeldung per Toast (z.B. "14 Buchungen für Sebastian importiert, 2 Duplikate übersprungen"), bei fehlerhafter Datei erscheint ein roter Fehler-Toast
v0.60.1 2026-08-17
  • Zeiterfassung skaliert jetzt für viele Mitarbeiter: Einzelkacheln pro Person oben ersetzt durch 3 kompakte Monats-KPIs (Gesamtstunden, Buchungen, aktive Mitarbeiter); die Monatsstunden je Person stehen stattdessen direkt im "Alle Mitarbeiter"-Dropdown (z.B. "Sebastian (16 Std. 42 Min.)")
  • Alle Arbeitszeiten (Tabelle, KPIs, Dropdown) als "X Std. Y Min." statt Dezimalwert
  • Tabellenspalte "Datum" zeigt jetzt den Wochentag (z.B. "Do, 23.07.2026")
  • PDF-Export folgt jetzt der Mitarbeiter-Auswahl im Filter-Dropdown
v0.60.0 2026-08-17
  • Verwaltung > Zeiterfassung neu strukturiert für bessere Skalierbarkeit: Monatsfilter (Standard aktueller Monat, mit Vor/Zurück-Navigation) ersetzt die per-Nutzer-Akkordeons durch eine zentrale, nach Mitarbeiter filterbare Tabelle aller Buchungen des gewählten Monats
  • Neue Übersicht der Monats-Gesamtstunden pro Mitarbeiter oben auf der Seite
  • Bearbeiten und "Buchung hinzufügen" laufen jetzt über einen Slide-Over-Drawer statt Inline-Datumsfeldern in der Liste; der gewählte Monat bleibt nach dem Speichern/Löschen erhalten
v0.59.1 2026-08-17
  • Verwaltung > Nutzer: Rollen-Auswahl (Anlegen + Bearbeiten) alphabetisch sortiert (Admin, Entwickler, Mitarbeiter, Pauschalkraft, Schichtleiter)
v0.59.0 2026-08-17
  • Neu: internes Feedback-System. Schwebender "💬 Feedback / Bug melden"-Button (für jeden eingeloggten Nutzer) öffnet ein Modal für Bug-Meldungen und Funktionswünsche mit Titel, Beschreibung und Priorität - Seite, Nutzer und Zeitpunkt werden automatisch erfasst
  • Verwaltung > Feedback: Listenansicht aller Meldungen mit änderbarem Status (Offen/In Bearbeitung/Erledigt) sowie einem Button, der die Ticket-Details als fertigen Claude-Prompt in die Zwischenablage kopiert
v0.58.0 2026-08-17
  • Bereichs-Detailseite (/room/{id}): Admins/Schichtleiter/Entwickler sehen dort jetzt "Aufgabe hinzufügen" sowie Bearbeiten-Icons je Aufgabe, Verwaltung läuft über einen Slide-Over-Drawer direkt auf der Seite - kein Wechsel mehr in die Verwaltung nötig
  • Verwaltung > Bereiche wieder schlank: nur noch Bereiche anlegen/löschen und Gruppenzuweisung, keine Aufgabenverwaltung mehr dort
v0.57.0 2026-08-17
  • Verwaltung > Inventar überarbeitet: Anlegen/Bearbeiten läuft jetzt über einen Slide-Over-Drawer statt Inline-Aufklapp-Formularen, gegliedert in Stammdaten / Bestände / Gebinde & Einheiten / Einkauf
  • Artikelliste ist jetzt eine kompakte Tabelle statt einer Akkordeon-Liste
v0.56.0 2026-08-17
  • Aufgabenverwaltung auf raumzentrierte Logik umgestellt (Kopieren statt Verlinken): Verwaltung > Bereiche zeigt jetzt links eine klickbare Bereichsliste, rechts direkt die eigene Aufgabenliste des ausgewählten Bereichs zum Anlegen/Bearbeiten/Löschen
  • Neue Aufgaben in mehreren Bereichen gleichzeitig erzeugen ab sofort unabhängige, unverknüpfte Kopien statt gemeinsam bearbeitbarer Aufgaben - Bearbeiten und Löschen betreffen immer nur die Aufgabe des jeweiligen Bereichs
  • Einmalige Migration löst bestehende bereichsübergreifende Verknüpfungen auf (keine Datenänderung, nur Entkopplung)
  • Alte globale Aufgaben-Seite samt Kachel in der Verwaltungsübersicht entfernt
v0.55.1 2026-08-17
  • Fix: Sammel-Buttons ("Tägliche erledigen" / "Tägliche abhaken") erledigen jetzt nur noch Aufgaben mit Turnus "Täglich" statt aller fälligen/überfälligen Aufgaben unabhängig vom Turnus - wöchentliche/monatliche Aufgaben wurden dabei bisher versehentlich mit abgehakt
v0.55.0 2026-08-17
  • Aufgaben: Sammel-Button "Alle erledigen" auf jeder Bereichs-Card markiert alle aktuell fälligen/überfälligen Aufgaben des Bereichs auf einmal als erledigt
  • Dashboard: sekundärer Button "Alle abhaken" im Header von "Überfällige Aufgaben" erledigt bereichsübergreifend alle überfälligen Aufgaben auf einmal (mit Sicherheitsabfrage)
  • Beide Sammel-Aktionen zeigen danach eine kurze Toast-Bestätigung mit Anzahl und Bereich
v0.54.0 2026-08-15
  • Neues Logo (logo.svg) ersetzt das Platzhalter-Icon in der Sidebar-Kopfzeile, Icon/"ClubHUB"/Versionsnummer stehen jetzt sauber in einer Reihe
  • Favicon (inkl. Apple-Touch-Icon und PWA-Icon) auf das neue Logo umgestellt
v0.53.0 2026-08-15
  • Aufgaben: Turnus lässt sich jetzt auf bestimmte Wochentage einschränken ("Aktive Wochentage"). Damit lassen sich geteilte Zuständigkeiten (z.B. Hausmeisterei Mo-Fr, Toilettenbetreuung Sa+So) oder reine Wochenend-Aufgaben sauber abbilden - die Fälligkeit überspringt inaktive Tage, statt übers Wochenende hinweg fälschlich fällig zu werden
v0.52.1 2026-08-14
  • Fix: nie erledigte Aufgaben zeigten dauerhaft "Überfällig seit unter 1 Minute" statt der tatsächlichen (unbekannten) Wartezeit - due_at wurde bei jeder Anzeige neu auf "jetzt" gesetzt. Zeigt jetzt korrekt "Noch nie erledigt"
v0.52.0 2026-08-14
  • Dashboard: doppelte "Aktuelle Meldungen"-Sektion entfernt, Meldungen-Kachel zeigt die obersten offenen Meldungen jetzt direkt an
  • Dashboard: KPI-Kacheln "Erledigt heute" (Vergleich zu gestern) und "Bereiche gesamt" (Anzahl Gruppen) mit zusätzlichem Kontext
v0.51.2 2026-08-13
  • Aufgaben und Historie: Pfeil-Buttons zum Vor-/Zurückblättern bei den Seiten ergänzt (zusätzlich zu den anklickbaren Seitenzahlen)
v0.51.1 2026-08-13
  • Historie: Suche/Filter/Seiten laufen jetzt als echte Datenbank-Abfrage statt clientseitig - bei ca. 30-40 Erledigungen/Tag über alle Bereiche wäre die vorherige Variante (alles auf einmal laden, im Browser filtern) binnen ein bis zwei Jahren spürbar langsam geworden. Jede Seite bleibt jetzt unabhängig von der Gesamtgröße der Historie gleich leicht
v0.51.0 2026-08-13
  • Historie: starres 200-Einträge-Limit entfernt, stattdessen Suche + Filter nach Bereich/Nutzer/Zeitraum + Seiten (25/50/100/Alle) - kein Eintrag geht mehr verloren, egal wie alt
v0.50.3 2026-08-13
  • Erledigungs-Datum zeigt jetzt "heute"/"gestern" statt des Datums, wenn zutreffend (Historie, Bereichsseite, Dashboard, Bereiche-Übersicht) - ältere Erledigungen weiterhin als TT.MM.JJJJ
v0.50.2 2026-08-13
  • Historie, Bereichsseite, "Letzte Reinigungen" auf dem Dashboard und die Bereiche-Übersicht zeigen jetzt nur noch das Datum statt Datum+Uhrzeit - Turnus-Berechnung und Benachrichtigungen nutzen intern weiterhin die volle Uhrzeit
v0.50.1 2026-08-13
  • Bereichsseite: erledigte Aufgaben verschwinden jetzt aus der Liste, statt grün stehen zu bleiben - tauchen erst beim nächsten Turnus-Alarm (gelb/rot) wieder auf, "Nach Bedarf"-Aufgaben bleiben immer sichtbar. Bereits Erledigtes bleibt über einen einklappbaren Abschnitt einsehbar
v0.50.0 2026-08-13
  • Nutzerverwaltung: Pauschalkraft ist jetzt eine eigene Rolle im "Rolle"-Auswahlmenü statt einer separaten Checkbox
  • Inventar: jeder kann für sich selbst Gruppen ausblenden, die ihn nicht interessieren ("Sichtbarkeit anpassen") - rein persönliche Einstellung, ändert nichts für andere und erweitert nicht die ohnehin erlaubte Sicht
v0.49.1 2026-08-13
  • Aufgaben: baugleiche Aufgabe kann jetzt "aus der Gruppe gelöst" werden, um Turnus/Name/Notiz nur für einen einzelnen Bereich abweichend einzustellen, ohne die anderen Bereiche oder die Erledigungs-Historie zu beeinflussen
v0.49.0 2026-08-12
  • Aufgaben: optional zuständige Gruppen zuweisbar (zusätzlich zum Bereich) – ohne Auswahl gelten automatisch alle Gruppen des Bereichs wie bisher; neue Spalte + Filter "Gruppen" in der Aufgaben-Tabelle
  • Fix: Überfällig-Benachrichtigungen gingen bislang an alle Gruppen eines Bereichs, auch wenn eine Aufgabe nur eine davon betrifft (z.B. Gastronomie bei einer reinen Hausmeister-Aufgabe im gemeinsam genutzten Ausschank) – berücksichtigt jetzt die explizite Gruppen-Zuordnung, falls gesetzt
v0.48.0 2026-08-12
  • Aufgaben: Verwaltung auf kompakte, filterbare Tabelle umgestellt (Suche, Bereich/Turnus/Status-Filter, Seiten) statt langer Aufklapp-Liste – skaliert für 100+ Aufgaben, Bearbeiten bleibt weiterhin inline
v0.47.2 2026-08-12
  • Aufgaben: Bereiche im Bearbeiten-Formular jetzt einfach an-/abwählbar (statt separater "hinzufügen"-Liste) – Abwählen entfernt die Aufgabe aus dem Bereich (mit Bestätigungsabfrage, da die Erledigungs-Historie dabei verloren geht)
v0.47.1 2026-08-12
  • Aufgaben: beim Bearbeiten nachträglich weitere Bereiche zuweisen möglich, statt nur beim Anlegen
v0.47.0 2026-08-12
  • Aufgaben: mehrere Bereiche auf einmal auswählbar beim Anlegen – für baugleiche Aufgaben (z.B. "Lüftung reinigen" in mehreren Räumen) reicht ein Formular; jeder Bereich behält eigene Erledigungen, Name/Turnus/Notiz bleiben beim Bearbeiten für alle gemeinsam änderbar
v0.46.0 2026-08-12
  • Aufgaben: neuer Turnus "Nach Bedarf" für Aufgaben ohne festen Rhythmus – wird nie automatisch gelb/rot, löst keine Erinnerung aus
v0.45.0 2026-08-12
  • Aufgaben: optionale Notiz (Stichpunkte) ergänzen, sichtbar direkt auf der Bereichsseite
v0.44.0 2026-08-12
  • Aufgaben: neuer Turnus "Alle 2 Wochen" ergänzt
v0.43.1 2026-08-12
  • Fix: "Erledigt"-Button gab keine sichtbare Rückmeldung, was zu versehentlichem Mehrfach-Abhaken führte – Button sperrt jetzt beim Klick, erledigte Aufgabe wird kurz hervorgehoben
v0.43.0 2026-08-10
  • Aufbauten können jetzt mehrere Bereiche gleichzeitig betreffen (z.B. eine Party in mehreren Räumen) – gemeinsamer Name, aber jeder Bereich behält eigene Fotos/Notiz; bestehende Aufbauten werden automatisch migriert
v0.42.1 2026-08-09
  • Aufbauten: Bearbeiten-Möglichkeit ergänzt, Notizen als Stichpunktliste statt Fließtext
  • Löschbestätigung für "Meine Geräte" (Push-Abos) ergänzt, die bislang fehlte
v0.42.0 2026-08-09
  • Neue Funktion "Aufbauten": Referenzfotos je Bereich, wie für bestimmte Veranstaltungen umgebaut werden soll; Pauschalkräfte dürfen keine anlegen (neues Nutzer-Flag)
v0.41.0 2026-08-09
  • Neue Rolle "Entwickler": voller Zugriff auf Bereiche/Aufgaben/Inventar/Meldungen/Termine/Gruppen/System-Status, aber explizit kein Zugriff auf Benutzerverwaltung oder Zeiterfassung (weder Einsicht noch Bearbeitung)
v0.40.0 2026-08-08
  • Zeiterfassung: Änderungsprotokoll per Hash-Kette verkettet (erkennt nachträgliche Manipulation direkt an der Datenbank) + PDF-Export je Nutzer
  • Neuer selektiver Struktur-Export/-Import (JSON): Gruppen/Bereiche/Aufgaben/Inventar/Termine gezielt auf eine neue Instanz übernehmen, ohne Test-Nutzer mitzuschleppen
v0.39.0 2026-08-08
  • Zeiterfassung: Änderungsprotokoll für nachträgliche Korrekturen (wer hat wann welche Buchung hinzugefügt, geändert oder gelöscht)
v0.38.0 2026-08-08
  • Neue Funktion "Urlaub": Selbsteintragung + Eintragung für andere durch Admin/Schichtleiter, "Wer hat gerade Urlaub?"-Kachel im Dashboard
v0.37.0 2026-08-07
  • Neue Funktion "Termine": wiederkehrende/einmalige Termine (z.B. Mülltonnen-Abholung) mit Erinnerung, Dashboard-Widget und eigener Verwaltungsseite
v0.36.0 2026-08-03
  • Changelog in der App sichtbar unter /changelog, Versionsnummer in der Sidebar verlinkt dorthin
v0.35.0 2026-08-03
  • Neue Aufgaben: Turnus kann rückdatiert werden ("Zuletzt erledigt am"), falls schon vor dem Anlegen geputzt wurde
v0.34.3 2026-08-03
  • Cache-Busting für style.css (Build-Hash als Query-Parameter), damit CSS-Änderungen nach einem Update nicht per Hard-Reload erzwungen werden müssen
v0.34.2 2026-08-03
  • Sidebar im Desktop-Modus jetzt sticky, scrollt nicht mehr mit dem Seiteninhalt
v0.34.1 2026-08-02
  • Login-Formular direkt ins Dashboard eingebettet (kein Umweg mehr über die separate Anmelden-Seite)
v0.34.0 2026-07-26
  • Login: PIN+Dropdown durch Benutzername/Personalnummer+Passwort ersetzt
v0.33.0 2026-07-26
  • Meldungen löschen (bisher gar nicht möglich)
v0.32.1 2026-07-26
  • Fehlerhafte ntfy/Gotify/Signal-Zustellung wird jetzt geloggt
v0.32.0 2026-07-26
  • Zeiterfassung: Umschaltbarer Terminal-/Nutzer-Modus
v0.31.0 2026-07-26
  • "Meine Geräte"-Übersicht für Push-Benachrichtigungen
v0.30.1 2026-07-26
  • Push-Glocke zeigt aktiven Status jetzt farblich klar an
v0.30.0 2026-07-26
  • Benachrichtigungen springen direkt zum auslösenden Element
v0.29.2 2026-07-26
  • Fix: Browser-Benachrichtigungen aktivieren funktionierte gar nicht mehr
v0.29.1 2026-07-25
  • Benachrichtigung bei Statusänderung einer Meldung
v0.29.0 2026-07-25
  • ClubHUB als installierbare PWA (Android/iOS Homescreen-Icon)
v0.28.6 2026-07-25
  • Bereich-Auswahl bei "Neue Meldung" alphabetisch sortiert
v0.28.5 2026-07-25
  • Fix: Datei-Feld im Profil lief über den Kartenrand hinaus (mobil)
v0.28.4 2026-07-25
  • Einheitlicher, eingerückter Auswahlpfeil für alle `<select>`-Felder
v0.28.3 2026-07-25
  • docker-compose.override.yml wieder in eine einzelne Datei zusammengeführt
v0.28.2 2026-07-25
  • Docker HEALTHCHECK hinzugefügt (`/healthz` inkl. DB-Check)
v0.28.1 2026-07-25
  • Deployment auf NAS umbenannt: Ordner/Projekt/Container jetzt "clubhub"/"ClubHUB"
v0.28.0 2026-07-25
  • Sollzeit jetzt auch im Profil pflegbar; Status-Dropdown-Pfeil eingerückt
v0.27.2 2026-07-25
  • ClubHUB-Logo/Titel in Kopfzeile führt jetzt zum Dashboard
v0.27.1 2026-07-25
  • Dashboard-Meldungen-Kachel zeigt jetzt auch "In Bearbeitung" an
v0.27.0 2026-07-25
  • Neue Profil-Seite: eigene PIN, Profilbild und Stundensatz selbst verwalten
v0.26.0 2026-07-25
  • Meldungen: Status "In Bearbeitung" für Reparaturen mit Wartezeit
v0.25.3 2026-07-25
  • Fix: "Erledigt"-Button überlagerte Meldungskarte auf dem Smartphone
v0.25.2 2026-07-25
  • Fix: Zeitstempel in Historie/Meldungen/Inventar/Bereichen liefen der echten Zeit hinterher
v0.25.1 2026-07-25
  • Sichtbare Live-Uhr entfernt, NTP-Sync läuft weiter unsichtbar im Hintergrund
v0.25.0 2026-07-25
  • Einheitliche aufklappbare "Neu anlegen"-Formulare in der Verwaltung
v0.24.1 2026-07-24
  • Doppelte Anmelden-Buttons für anonyme Besucher entfernt
v0.24.0 2026-07-24
  • Login jetzt für alle Seiten außer Dashboard-Kurzansicht erforderlich
v0.23.0 2026-07-24
  • Automatische Sicherungen direkt wiederherstellbar (kein Umweg über Upload)
v0.22.0 2026-07-24
  • Verwaltung: Seitenbreite an Dashboard/Inventar/Meldungen angeglichen
v0.21.3 2026-07-24
  • Inventar-Verwaltung: Label "Gebinde" statt "Gebinde (Verpackung)"
v0.21.2 2026-07-24
  • Aufgaben: Turnus-Label ergänzt; Inventar: Gebinde-Felder in einer Zeile
v0.21.1 2026-07-24
  • Verpackungseinheit-Formular als Grid statt gequetschter Zeile, Verwaltungs-Suche entfernt
v0.21.0 2026-07-24
  • Inventar: eigener Mindestbestand statt nur Soll-Bestand, 4-stufiger Status
v0.20.4 2026-07-24
  • Seitenleiste/mobile Kopfzeile in Frannz-Petrol statt Weiß/Schwarz
v0.20.3 2026-07-24
  • Light-Mode: Farbgebung an Frannz-Club-Website angelehnt
v0.20.2 2026-07-24
  • Einzahl/Mehrzahl in Dashboard-Begrüßung und Verwaltungs-Kacheln korrigiert
v0.20.1 2026-07-24
  • Sortierung: Bereiche nach Status/Name, Verwaltungslisten nach Name
v0.20.0 2026-07-24
  • Browser-Push (Web Push) für Gruppenbenachrichtigungen
v0.19.0 2026-07-24
  • Meldungen: Zuständigkeit (Gruppe) je Meldung zuweisbar
v0.18.0 2026-07-24
  • UX-Feinschliff: Nav-Badges, schlankere mobile Nav, Dashboard- und Verwaltungs-Verbesserungen
v0.17.2 2026-07-24
  • Inventar: Mehrzahlform für Gebinde hinterlegbar (z.B. Rolle/Rollen)
v0.17.1 2026-07-24
  • Inventar: Nachkommastelle bei Mengen nur zeigen, wenn tatsächlich gesetzt
v0.17.0 2026-07-24
  • Automatische Sicherungen (4x täglich, 3 Tage Aufbewahrung)
v0.16.4 2026-07-24
  • Sidebar-Logo wieder auf ursprünglichen Schriftzug zurückgesetzt
v0.16.3 2026-07-24
  • Fix Löschen-Bug, Zurück-Buttons ergänzt, Logo-Hintergrund transparent
v0.16.2 2026-07-24
  • Logo und Favicon einbinden
v0.16.1 2026-07-23
  • Inventar: Ist-/Soll-Bestand in die Verpackungseinheit-Box integriert
v0.16.0 2026-07-23
  • Inventar: Verpackungseinheit als eigener, einklappbarer Abschnitt
v0.15.0 2026-07-23
  • Inventar: Gebindegröße anzeigen (z.B. "Kanister à 10 Liter")
v0.14.0 2026-07-23
  • Inventar: Sichtbarkeit nach Gruppenzugehörigkeit filtern
v0.13.3 2026-07-23
  • Inventar: Hinweis bei fehlgeschlagenem automatischen Produktbild-Abruf
v0.13.2 2026-07-23
  • Historie: versehentlich erledigte Aufgaben rückgängig machen (nur Admin)
v0.13.1 2026-07-23
  • Aufgaben: Fälligkeit als "Überfällig seit ..." / "Fällig in ..." anzeigen
v0.13.0 2026-07-23
  • Zeiterfassung: Ein-/Ausstempeln-Button im Dashboard
v0.12.2 2026-07-23
  • Fix: Live-Uhr überlagerte rechtsbündige Kopfzeilen-Buttons (Inventar, Verwaltung)
v0.12.1 2026-07-23
  • Fix: Lightmode-Kontrast für slate-200/slate-500 verbessert
v0.12.0 2026-07-23
  • Zeiterfassung: NFC-Stempeln durch autorisiertes Geräte-Terminal ersetzt
v0.11.1 2026-07-23
  • Inventar: eigene +/- Buttons zum Bestand anpassen (Mobile-Fix)
v0.11.0 2026-07-23
  • NFC-Tags: Verwaltungs-Registry mit Web-NFC-Lesen/Schreiben
v0.10.0 2026-07-23
  • Inventar: Produktbild automatisch vom Kauflink übernehmen
v0.9.2 2026-07-23
  • Fix: Auto-Theme-Icon als "A", "Gute Nacht" durch "Guten Abend" ersetzt
v0.9.1 2026-07-23
  • Zeiterfassung: nachträgliche Korrektur durch Admin
v0.9.0 2026-07-23
  • Zeiterfassung: NFC-Ein-/Ausstempeln, Verdienst & Überstunden
v0.8.0 2026-07-22
  • Inventar: Artikelbild per Klick auf das Icon setzen
v0.7.1 2026-07-22
  • Inventar: Nachbestellen-Button im Detailbereich zurückgeholt
v0.7.0 2026-07-22
  • Rebrand zu ClubHUB, personalisierte Dashboard-Begrüßung
v0.6.0 2026-07-22
  • Meldungen: Aufklapp-Stil wie Inventar, Kommentare, Verlauf, mehr Fotos
v0.5.0 2026-07-22
  • Inventar-Feinschliff: Chips, Suche/Filter, Artikel hinzufügen
v0.4.1 2026-07-22
  • Inventar: Details klappt inline auf statt als Seiten-Drawer
v0.4.0 2026-07-22
  • Redesign Inventar: Kategorie, Lagerort, farbiger Bestandsbalken, Drawer, Nachbestell-Link
v0.3.0 2026-07-22
  • Redesign Dashboard: Bereich-Buttons entfernt, Meldungen sichtbar gemacht
v0.2.0 2026-07-22
  • Erweiterte Meldungen: mehrere Fotos, Priorität, Kategorie, einklappbares Formular
v0.1.0 2026-07-22
  • SemVer-Versionsverfolgung mit Git-Build-Hash eingeführt
  • Konzept entwickelt: Räume mit Aufgaben, Abhaken per NFC-Tag (Nutzer + Datum automatisch erfasst), grafische Übersicht wer/wann/was erledigt hat, Erinnerungen per ntfy/Gotify, turnusabhängige Fälligkeit mit Ampel-Status (grün/gelb/rot) auf dem Dashboard.
  • Datenmodell im Dialog verfeinert: rollierende Fälligkeit (letzte Erledigung + Intervall) statt fixem Wochentag; Gelb-Warnfenster als Prozentsatz des Intervalls; NFC-Tag pro Raum (nicht pro Aufgabe) mit Aufgabenauswahl beim Scan; PIN-Login pro Person, öffentlich einsehbares Dashboard ohne Login, Login nur zum Abhaken; Gruppen (Hausmeister/Küche/Gastronomie) mit Räumen in n:m-Beziehung, Benachrichtigungen an alle Gruppenmitglieder; eigene Admin-Rolle für Verwaltung.
  • Erstes Grundgerüst gebaut und lokal getestet: FastAPI-Backend, SQLite, Datenmodell (Groups/Users/Rooms/Tasks/Completions), PIN-Login, öffentliches Dashboard, Scan-Seite pro Raum mit Ampel-Status, Historie-Liste, responsives UI, automatische Admin-Anlage beim ersten Start.
  • Deploy auf die Synology-NAS eingerichtet (Docker Compose, über Dockhand), inkl. Fehlersuche bei Build-Kontext/Mounts und Port-Mapping (fest auf Host-Port 8055).
  • Erstes echtes Dashboard-Redesign (Stat-Karten, Raum-Kacheln, Aktivitäts-Panels statt unstyled HTML); Bugfix Styling (Tailwind lief instabil über externes CDN → fest im Docker-Image mitgebautes CSS).
  • Raumkarten erweitert: Icon, Status mit Zeitangabe ("seit 43 Minuten"), "Letzte Reinigung: Uhrzeit • Name".
  • Turnus als Dropdown (Täglich/Wöchentlich/Monatlich/Quartalsweise) statt freier Zahleneingabe; Gelb-Warnprozentsatz-Feld beschriftet ("Warnung vorher (%)") und mit Richtwert-Erklärung pro Turnus versehen.
  • Icons neben den Raumnamen auf Wunsch wieder entfernt.
  • Entscheidung, das Projekt an Claude Code zu übergeben, um den Zyklus "Code ändern → ZIP schicken → entpacken → NAS neu bauen" zu vermeiden.
  • Bereiche & Aufgaben: Dashboard, Bereichsübersicht, Bereichs-Detailansicht, Aufgaben abhaken
  • Inventar: Übersicht mit Bestandsanpassung
  • Meldungen: Fotos, Auflösen/Erledigt-Markierung
  • Historie-Ansicht
  • Benutzerverwaltung: Login/Logout, Rollen Admin und Schichtleiter, Gruppen
  • Verwaltungsbereich (Admin): Nutzer, Gruppen, Bereiche, Aufgaben, Inventar, Benachrichtigungskanäle, System
  • Benachrichtigungskanäle: ntfy, Gotify, Signal
  • System: NTP-Zeitkorrektur, Backup/Restore
  • Design: Light-/Dark-/Auto-Theme, mobile-responsive