/* BAN YARO — Widget-Vorschau (Home-Screen-Widget) */ window.Page_widget = (() => { let _container = null; let _appState = null; let _refreshTimer = null; async function init(container, appState) { _container = container; _appState = appState; await _render(); } async function refresh() { await _render(); } async function _render() { _container.innerHTML = `
Lade…
`; if (!_appState.activeDog) { _container.innerHTML = UI.emptyState({ icon: UI.icon('dog'), title: 'Kein Hund angelegt', text: 'Erstelle zuerst ein Hundeprofil.', action: ``, }); return; } let data; try { data = await API.widget.snapshot(); } catch (e) { _container.innerHTML = '

Fehler beim Laden.

'; return; } const dog = data.dog; const photo = data.random_photo; const rem = data.reminder; const photoHtml = photo ? `
${_esc(photo.titel || '')}
${_esc(photo.titel || '')} ${_fmtDate(photo.datum)}
` : `
Noch keine Fotos im Tagebuch
`; const reminderHtml = rem ? `
${_esc(rem.bezeichnung)}
${_fmtDate(rem.naechstes)}
` : data.overdue > 0 ? `
${data.overdue} überfällige Erinnerung${data.overdue > 1 ? 'en' : ''}
` : `
Keine offenen Erinnerungen
`; const dogAvatar = dog.foto_url ? `${_esc(dog.name)}` : `
🐕
`; _container.innerHTML = `
${dogAvatar}
${_esc(dog.name)}
${dog.rasse ? `
${_esc(dog.rasse)}
` : ''}
${reminderHtml} ${photoHtml}
Als Home-Screen-Widget nutzen

Füge diese Seite zum Home-Screen hinzu und öffne sie mit einem Tipp.

iOS Safari: Teilen-Symbol → „Zum Home-Bildschirm"
Android Chrome: Menü (⋮) → „Zum Startbildschirm hinzufügen"
`; _container.querySelector('#widget-refresh-btn')?.addEventListener('click', () => _render()); } function _esc(str) { if (!str) return ''; return String(str).replace(/&/g,'&').replace(//g,'>').replace(/"/g,'"'); } function _fmtDate(d) { if (!d) return ''; try { const [y, m, day] = d.split('-'); return `${parseInt(day)}.${parseInt(m)}.${y}`; } catch { return d; } } return { init, refresh }; })();