Anzeige (index.html):
- Mitgliederkoordinator-Bericht-Modus: 4x2 Kacheln mit
Jahreszielen, Sparkline-Trend und Monatswerte-Reihe pro
Kennzahl; jüngste Jahres-JSON-Datei wird automatisch gewählt
- QR-Code wird auf Abwesenheits- und Bericht-Anzeige
ausgeblendet (war zuvor vom letzten Mitglied übrig)
- Abwesenheits-Namen skalieren dynamisch (2.2rem bei wenigen
Einträgen bis 0.75rem bei vollen Listen)
- Fotos für Besucher und Vertreter in Runde 2: getDisplayData
fällt für Besucher zusätzlich auf loadExtras() zurück, damit
Stammvertreter-Fotos (photoB64) erscheinen; Besucher-Queue
nutzt dieselbe Fallback-Kette
Admin (admin.html):
- Karte "Mitgliederkoordinator-Bericht": Jahresziele und
Monatswerte je Chapter und BNI-Jahr erfassen
- _coordStatus()-Helfer für einheitliches Speicher-Feedback;
explizite Fehlermeldungen bei fehlendem Chapter/Monat,
HTTP-Detail bei Server-Fehlern, fehlendes Admin-Token auch
im Statusfeld
- Sort-Crash bei alten entries-Datensätzen ohne month-Feld
behoben (null-sicher) + Bereinigung beim Laden
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Blob-URL-Ansatz rückgängig gemacht (localStorage-Problem), stattdessen
beide Dateien gemeinsam per showSaveFilePicker aktualisieren.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Chapter können die Zeitanzeige deaktivieren. Update-Funktion ersetzt Datei direkt im richtigen Ordner.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Timer kann chapter-weit deaktiviert werden – Display-Ring, Countdown und Zeitbadges werden ausgeblendet.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Neues admin.html: eigenständiges Admin-Panel mit Tabs für Stammvertreter, Mitglieder, Superadmin, Einstellungen
- Stammvertreter-Feature in index.html: Profilvorrat für schnelle Vertreterauswahl, localStorage-basiert, chapter-spezifisch
- Stammvertreter-Picker im Vertretungs-Modal: Felder werden automatisch befüllt
- Superadmin: alle Chapter einsehen, version.json für Rollout pushen
- Import aus anderen Chaptern: Mitglied aus fremdem Chapter als Stammvertreter übernehmen
- Admin-Tab in index.html vereinfacht (Link zu admin.html)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- buildMembersJson() bettet Offline-Fotos (Base64) aus extras ein
- uploadMembersToGitea() lädt members.json via API hoch
- Admin-Panel: Token-Eingabe + Upload-Button + Status
- fetchChapterMembersFromGitea speichert photoData in extras
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Aktivierungsscreen mit Lizenzcode-Eingabe
- Hintergrund-Lizenzprüfung bei jedem Start
- Admin-Tab mit Mitglieder-Sync und Update-Check
- version.json + chapters/sonne-7x4m9k/ Struktur
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>