Fix: breeder.js _esc undefined → ReferenceError → 🚧; Admin-Profil in öffentlicher Suche; Welpen-Chip klickbar (SW by-v896)
This commit is contained in:
parent
0f230b9ddc
commit
8b5805a8ca
7 changed files with 14 additions and 12 deletions
|
|
@ -406,7 +406,7 @@ async def serve_media(path: str, request: _Request):
|
|||
raise _HE(404, "Nicht gefunden.")
|
||||
return _media_response(filepath)
|
||||
|
||||
APP_VER = "895" # muss mit APP_VER in app.js übereinstimmen
|
||||
APP_VER = "896" # muss mit APP_VER in app.js übereinstimmen
|
||||
|
||||
@app.get("/.well-known/assetlinks.json")
|
||||
async def assetlinks():
|
||||
|
|
|
|||
|
|
@ -315,8 +315,8 @@ async def breeder_public_profile(zwingername: str):
|
|||
FROM breeder_profiles bp
|
||||
JOIN users u ON u.id = bp.user_id
|
||||
WHERE LOWER(bp.zwingername) = LOWER(?)
|
||||
AND u.rolle = 'breeder'
|
||||
AND u.breeder_status = 'approved'
|
||||
AND u.rolle IN ('breeder', 'admin')
|
||||
AND (u.breeder_status = 'approved' OR u.rolle = 'admin')
|
||||
""", (zwingername,)).fetchone()
|
||||
if not row:
|
||||
raise HTTPException(404, "Züchter nicht gefunden.")
|
||||
|
|
|
|||
|
|
@ -591,10 +591,10 @@
|
|||
<div id="modal-container"></div>
|
||||
|
||||
<!-- JS: Reihenfolge ist wichtig — erst Basis, dann Features -->
|
||||
<script src="/js/api.js?v=895"></script>
|
||||
<script src="/js/ui.js?v=895"></script>
|
||||
<script src="/js/app.js?v=895"></script>
|
||||
<script src="/js/worlds.js?v=895"></script>
|
||||
<script src="/js/api.js?v=896"></script>
|
||||
<script src="/js/ui.js?v=896"></script>
|
||||
<script src="/js/app.js?v=896"></script>
|
||||
<script src="/js/worlds.js?v=896"></script>
|
||||
|
||||
<!-- Feature-Seiten werden lazy geladen -->
|
||||
|
||||
|
|
|
|||
|
|
@ -3,7 +3,7 @@
|
|||
Router, State-Management, Navigation, Initialisierung.
|
||||
============================================================ */
|
||||
|
||||
const APP_VER = '895'; // ← bei jedem Deploy mit Frontend-Änderungen erhöhen
|
||||
const APP_VER = '896'; // ← bei jedem Deploy mit Frontend-Änderungen erhöhen
|
||||
const APP_VERSION = '1.5.1'; // ← semantische Version, wird bei make release gesetzt
|
||||
const IS_STAGING = location.hostname === 'staging.banyaro.app';
|
||||
// Cache-Bust-Parameter nach Update-Reload sofort entfernen
|
||||
|
|
|
|||
|
|
@ -8,6 +8,8 @@ window.Page_breeder = (() => {
|
|||
let _container = null;
|
||||
let _appState = null;
|
||||
|
||||
const _esc = s => UI.esc ? UI.esc(s) : String(s ?? '').replace(/[&<>"']/g, c => ({'&':'&','<':'<','>':'>','"':'"',"'":'''}[c]));
|
||||
|
||||
// ----------------------------------------------------------
|
||||
// INIT
|
||||
// ----------------------------------------------------------
|
||||
|
|
|
|||
|
|
@ -146,13 +146,13 @@ window.Page_litters = (() => {
|
|||
{ icon: 'list-bullets', label: 'Alle Würfe', val: total, filter: null },
|
||||
{ icon: 'baby', label: 'Aktiv', val: aktiv, filter: ['verfuegbar','geboren'], color: 'var(--c-success)' },
|
||||
{ icon: 'calendar-dots',label: 'Geplant', val: geplant, filter: ['geplant'] },
|
||||
{ icon: 'dog', label: 'Welpen ges.', val: welpen, filter: null },
|
||||
{ icon: 'dog', label: 'Welpen ges.', val: welpen, filter: null, noClick: true },
|
||||
{ icon: 'tag', label: 'Verfügbar', val: verfuegb,filter: ['verfuegbar'], color: verfuegb > 0 ? 'var(--c-primary)' : undefined },
|
||||
];
|
||||
bar.style.display = 'flex';
|
||||
bar.innerHTML = statItems.map((s, i) => {
|
||||
const isActive = JSON.stringify(_filterStatus) === JSON.stringify(s.filter);
|
||||
const clickable = s.filter !== undefined && !(s.label === 'Welpen ges.');
|
||||
const clickable = !s.noClick;
|
||||
return `
|
||||
<div data-stat-idx="${i}"
|
||||
style="background:${isActive ? 'var(--c-primary)' : 'var(--c-bg-secondary)'};
|
||||
|
|
@ -171,7 +171,7 @@ window.Page_litters = (() => {
|
|||
|
||||
bar.querySelectorAll('[data-stat-idx]').forEach(chip => {
|
||||
const s = statItems[parseInt(chip.dataset.statIdx)];
|
||||
if (!s.filter && s.label !== 'Alle Würfe') return;
|
||||
if (s.noClick) return;
|
||||
chip.addEventListener('click', () => {
|
||||
_filterStatus = JSON.stringify(_filterStatus) === JSON.stringify(s.filter) ? null : s.filter;
|
||||
_renderStats();
|
||||
|
|
|
|||
|
|
@ -3,7 +3,7 @@
|
|||
Offline-Cache + Push Notifications + Tile-Cache
|
||||
============================================================ */
|
||||
|
||||
const CACHE_VERSION = 'by-v895';
|
||||
const CACHE_VERSION = 'by-v896';
|
||||
const CACHE_STATIC = `${CACHE_VERSION}-static`;
|
||||
const CACHE_TILES = 'ban-yaro-tiles-v1'; // bleibt über SW-Updates erhalten
|
||||
const CACHE_API = 'ban-yaro-api-v1'; // API-Response-Cache
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue