Fix: Design-System-Regression v1102 — .hidden(!important) vs style.display app-weit

Rene: 'Tagebuch Kalenderansicht/Karte nicht mehr da' — Root-Cause: 459cd42
ersetzte style="display:none" durch class="hidden", aber die Show-Pfade
setzten weiter style.display. .hidden hat !important und gewinnt immer
(gleiche Klasse wie Filter-Panel-Hotfix v1242). Prod-Logs bewiesen: kein
einziger /diary/calendar- oder /locations-Request kam je an.

Unsichtbar seit v1102, jetzt per classList gefixt:
- diary: Stats-Bar mit View-Switcher (Liste/Medien/Kalender/Karte) + Medien-Grid neuer Eintrag
- health: KI-Tierarzt-Ergebnis erschien nie
- walks: Challenge-/Stamm-Gassi-Tabs leer
- welcome: iOS-Panel der Desktop-Install-Anleitung
- wiki: Fotos-Mod-Badge + Foto-Fallback (via app.js data-fb show-el/sibling-Handler)
- routes: Filter-Badge; breeder: Fotos-Section

Zweite Fehlerklasse aus demselben Sprint: doppelte class-Attribute
(class="x" id=… class="hidden") — Browser verwirft das zweite Attribut.
87 Vorkommen in 23 Dateien zusammengeführt; betroffene Show/Hide-Pfade
(ev-map, rk-mine/nearby-group, chat-partner-dot, eh-panel, zh-section)
auf classList umgestellt.
This commit is contained in:
rene 2026-06-07 15:09:43 +02:00
parent 5acbaaa97b
commit 178aef7fb0
32 changed files with 197 additions and 188 deletions

View file

@ -385,8 +385,8 @@ window.Page_litters = (() => {
<button class="btn btn-ghost btn-sm litters-edit-btn" data-id="${l.id}" title="Bearbeiten">
${UI.icon('pencil-simple')}
</button>
<button class="btn btn-ghost btn-sm litters-delete-btn" data-id="${l.id}" title="Löschen"
class="text-danger">
<button class="btn btn-ghost btn-sm litters-delete-btn text-danger" data-id="${l.id}" title="Löschen"
>
${UI.icon('trash')}
</button>
</div>
@ -399,8 +399,8 @@ window.Page_litters = (() => {
<div id="puppies-inner-${l.id}">
<p class="text-sm-muted">Lädt</p>
</div>
<button class="btn btn-secondary btn-sm litters-add-puppy-btn" data-id="${l.id}"
class="mt-3">
<button class="btn btn-secondary btn-sm litters-add-puppy-btn mt-3" data-id="${l.id}"
>
${UI.icon('plus')} Welpen hinzufügen
</button>
</div>
@ -410,8 +410,8 @@ window.Page_litters = (() => {
<div id="waitlist-inner-${l.id}">
<p class="text-sm-muted">Lädt</p>
</div>
<button class="btn btn-secondary btn-sm litters-add-waitlist-btn" data-id="${l.id}"
class="mt-3">
<button class="btn btn-secondary btn-sm litters-add-waitlist-btn mt-3" data-id="${l.id}"
>
${UI.icon('plus')} Interessent eintragen
</button>
</div>
@ -468,7 +468,7 @@ window.Page_litters = (() => {
<span class="litters-puppy-name">${p.name ? UI.escape(p.name) : '<em class="text-muted">Unbenannt</em>'}</span>
${p.farbe ? `<span style="color:var(--c-text-secondary);font-size:var(--text-xs)">${UI.escape(p.farbe)}</span>` : ''}
${_puppyStatusBadge(p.status)}
<span class="litters-puppy-last-weight" id="puppy-last-weight-${p.id}" class="text-xs-secondary"></span>
<span class="litters-puppy-last-weight text-xs-secondary" id="puppy-last-weight-${p.id}"></span>
</div>
<div class="litters-puppy-actions">
<button class="btn btn-ghost btn-xs litters-puppy-photo-btn" data-litter-id="${litterId}" data-puppy-id="${p.id}"
@ -787,7 +787,7 @@ window.Page_litters = (() => {
</div>
<div style="display:flex;gap:var(--space-1);flex-shrink:0">
<button class="btn btn-ghost btn-xs wl-edit-btn" data-entry-id="${e.id}" title="Bearbeiten">${UI.icon('pencil-simple')}</button>
<button class="btn btn-ghost btn-xs wl-delete-btn" data-entry-id="${e.id}" title="Entfernen" class="text-danger">${UI.icon('trash')}</button>
<button class="btn btn-ghost btn-xs wl-delete-btn text-danger" data-entry-id="${e.id}" title="Entfernen">${UI.icon('trash')}</button>
</div>
</div>`).join('')}
</div>`;
@ -918,7 +918,7 @@ window.Page_litters = (() => {
return `<option value="${h.id}" data-name="${UI.escape(h.name)}" ${currentId == h.id ? 'selected' : ''}>${UI.escape(label)}</option>`;
}).join('');
return `
<select class="form-control" name="${idName}" id="${idName}-sel" class="mb-2">
<select class="form-control mb-2" name="${idName}" id="${idName}-sel">
<option value=""> ${placeholder} </option>
${opts}
</select>
@ -1496,7 +1496,7 @@ window.Page_litters = (() => {
Trotzdem fortfahren
</button>
</div>` : `
<button class="btn btn-primary" data-modal-close class="w-full">
<button class="btn btn-primary w-full" data-modal-close>
${UI.icon('check')} Verstanden
</button>`,
});