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

@ -86,14 +86,14 @@
<title>Ban Yaro</title>
<!-- Theme + theme-color Statusleiste vor CSS setzen -->
<script src="/js/boot-early.js?v=1265"></script>
<script src="/js/boot-early.js?v=1266"></script>
<!-- CSS: Reihenfolge ist wichtig — ?v= zwingt Browser zur Neuladung -->
<link rel="stylesheet" href="/css/design-system.css?v=1265">
<link rel="stylesheet" href="/css/layout.css?v=1265">
<link rel="stylesheet" href="/css/components.css?v=1265">
<link rel="stylesheet" href="/css/utilities.css?v=1265">
<link rel="stylesheet" href="/css/lists.css?v=1265">
<link rel="stylesheet" href="/css/design-system.css?v=1266">
<link rel="stylesheet" href="/css/layout.css?v=1266">
<link rel="stylesheet" href="/css/components.css?v=1266">
<link rel="stylesheet" href="/css/utilities.css?v=1266">
<link rel="stylesheet" href="/css/lists.css?v=1266">
</head>
<body>
@ -511,6 +511,10 @@
<div class="page-body page-container"></div>
</section>
<section class="page" id="page-breeder-dashboard">
<div class="page-body page-container"></div>
</section>
<section class="page" id="page-jobs">
<div class="page-body page-container"></div>
</section>
@ -616,11 +620,11 @@
<div id="modal-container"></div>
<!-- JS: Reihenfolge ist wichtig — erst Basis, dann Features -->
<script src="/js/api.js?v=1265"></script>
<script src="/js/ui.js?v=1265"></script>
<script src="/js/app.js?v=1265"></script>
<script src="/js/worlds.js?v=1265"></script>
<script src="/js/offline-indicator.js?v=1265"></script>
<script src="/js/api.js?v=1266"></script>
<script src="/js/ui.js?v=1266"></script>
<script src="/js/app.js?v=1266"></script>
<script src="/js/worlds.js?v=1266"></script>
<script src="/js/offline-indicator.js?v=1266"></script>
<!-- Feature-Seiten werden lazy geladen -->
@ -630,7 +634,7 @@
<!-- Boot: Offline-Banner + SW-Registration (extrahiert für CSP) -->
<script src="/js/boot.js?v=1265"></script>
<script src="/js/boot.js?v=1266"></script>
</body>