Feature: Bottom-Nav umgebaut, Dog-Avatar→Welcome, Routen-Filter-Panel, Recording-Fix

- Bottom-Nav: Tagebuch | Routen | [+] | Forum | Benachrichtigungen (mit Badge)
- Benachrichtigungs-Badge auch in Bottom-Nav (notif-nav-badge)
- Dog-Avatar-Klick → Welcome-Seite (Name bleibt → Hund-Profil)
- Routen: Filter in aufklappbarem Panel, aktive Filter zeigen roten Punkt
- Routen: Start/Stop-Button fragt Page_map.isRecording() ab, kein veralteter lokaler State
- SW by-v232, APP_VER 209
This commit is contained in:
rene 2026-04-19 10:09:02 +02:00
parent 0113ee2fbb
commit b6d2606a23
5 changed files with 137 additions and 57 deletions

View file

@ -3,7 +3,7 @@
Router, State-Management, Navigation, Initialisierung.
============================================================ */
const APP_VER = '208'; // ← bei jedem Deploy mit Frontend-Änderungen erhöhen
const APP_VER = '209'; // ← bei jedem Deploy mit Frontend-Änderungen erhöhen
const App = (() => {
@ -440,9 +440,15 @@ const App = (() => {
try {
const { count } = await API.notifications.unreadCount();
const badge = document.getElementById('notif-badge');
if (!badge) return;
badge.textContent = count;
badge.style.display = count > 0 ? '' : 'none';
if (badge) {
badge.textContent = count;
badge.style.display = count > 0 ? '' : 'none';
}
const navBadge = document.getElementById('notif-nav-badge');
if (navBadge) {
navBadge.textContent = count;
navBadge.classList.toggle('hidden', count === 0);
}
} catch { /* ignorieren */ }
}
@ -611,9 +617,9 @@ const App = (() => {
<span class="${titleClass} dog-sw-title" style="cursor:pointer" title="${UI.escape(dog.name)} bearbeiten">${UI.escape(dog.name)}</span>
${othersHtml}`;
// Klick aktiver Avatar oder Name → Hund-Profil
// Klick aktiver Avatar → Welcome-Seite; Klick Name → Hund-Profil
el.querySelector(`#dog-sw-active-${ctxId}`)?.addEventListener('click', () => {
navigate('dog-profile');
navigate('welcome');
});
el.querySelector(`.dog-sw-title`)?.addEventListener('click', () => {
navigate('dog-profile');