Züchter-Bereich (Hub) + Settings-Partner-Karte raus + Admin: alle Code-Einlösungen mit Kanal

- Neue Seite #breeder-dashboard (Welten-Chip 'Züchter' role:breeder in HUND,
  ersetzt die Einzel-Chips Zuchtkartei + Wurfverw.; beide FABs wandern an den
  neuen Chip; Läufigkeit bleibt eigener Chip in HUND, Rene-Vorgabe):
  Zwinger-Karte (Name, verifiziert-Badge, Profil-Editor), Wurfverwaltung mit
  Wurf-Anzahl, Zuchtkartei mit Hunde-Anzahl. Einzelseiten bleiben erreichbar.
- Settings: Partner-Karte entfernt — der 🤝-Welten-Chip ist der Einstieg.
- Admin 'Aktive Codes': 👥 zeigt jetzt ALLE Einlösungen eines Codes mit
  Kanal-Badge (QR #seq aus Kontingent vs. Link/manuell), Datum und
  Bestätigt-Status — Endpoint /admin/partner/codes/{id}/registrations.
Suite: 55 passed.
This commit is contained in:
rene 2026-06-07 19:55:51 +02:00
parent 6a6a09d879
commit ed7c469c6a
11 changed files with 241 additions and 44 deletions

View file

@ -665,25 +665,6 @@ window.Page_settings = (() => {
<!-- Züchter-Profil Slot -->
<div id="breeder-card-slot"></div>
${u.is_partner ? `
<!-- Partner-Bereich -->
<div class="card mb-4">
<div class="by-card-section-header">${UI.icon('handshake')} Partner</div>
<div class="p-4">
<p class="text-sm-secondary" style="margin:0 0 var(--space-3)">
Als Partner hast du vollen Pro-Zugang und eine öffentliche Karte auf der
Partner-Seite. Deine Zahlen und QR-Codes findest du im Partner-Bereich.
</p>
<div style="display:flex;gap:var(--space-2);flex-wrap:wrap">
<button class="btn btn-primary btn-sm" id="settings-partner-dashboard-btn">
${UI.icon('handshake')} Partner-Bereich
</button>
<button class="btn btn-secondary btn-sm" id="settings-partner-profile-btn">
${UI.icon('pencil-simple')} Öffentliches Profil
</button>
</div>
</div>
</div>` : ''}
<div class="card mb-4">
<div class="by-card-section-header">Trophäen</div>
@ -1681,10 +1662,6 @@ window.Page_settings = (() => {
_loadReferral();
_loadBreederCard();
document.getElementById('settings-partner-dashboard-btn')
?.addEventListener('click', () => App.navigate('partner-dashboard'));
document.getElementById('settings-partner-profile-btn')
?.addEventListener('click', () => App.navigate('partner-profil'));
}
// ----------------------------------------------------------