diff --git a/backend/routes/friends.py b/backend/routes/friends.py index 724c2b4..8db5701 100644 --- a/backend/routes/friends.py +++ b/backend/routes/friends.py @@ -224,6 +224,7 @@ async def get_activity(user=Depends(get_current_user)): diary_rows = conn.execute(f""" SELECT 'diary' AS type, + dg.id AS entry_id, u.id AS user_id, u.name AS user_name, u.avatar_url, @@ -261,6 +262,7 @@ async def get_activity(user=Depends(get_current_user)): walk_rows = conn.execute(f""" SELECT 'walk' AS type, + w.id AS entry_id, u.id AS user_id, u.name AS user_name, u.avatar_url, @@ -310,6 +312,7 @@ async def get_activity(user=Depends(get_current_user)): t = d["type"] items.append({ "type": t, + "entry_id": d.get("entry_id"), "user_id": d["user_id"], "user_name": d["user_name"], "avatar_url": d.get("avatar_url"), diff --git a/backend/static/js/app.js b/backend/static/js/app.js index 14435df..031ce33 100644 --- a/backend/static/js/app.js +++ b/backend/static/js/app.js @@ -3,7 +3,7 @@ Router, State-Management, Navigation, Initialisierung. ============================================================ */ -const APP_VER = '219'; // ← bei jedem Deploy mit Frontend-Änderungen erhöhen +const APP_VER = '220'; // ← bei jedem Deploy mit Frontend-Änderungen erhöhen const App = (() => { diff --git a/backend/static/js/pages/diary.js b/backend/static/js/pages/diary.js index 0bc4300..5209648 100644 --- a/backend/static/js/pages/diary.js +++ b/backend/static/js/pages/diary.js @@ -1187,6 +1187,6 @@ window.Page_diary = (() => { .trim(); } - return { init, refresh, openNew, onDogChange }; + return { init, refresh, openNew, onDogChange, openDetail: _openDetail }; })(); diff --git a/backend/static/js/pages/friends.js b/backend/static/js/pages/friends.js index f233217..da6a40b 100644 --- a/backend/static/js/pages/friends.js +++ b/backend/static/js/pages/friends.js @@ -249,8 +249,17 @@ window.Page_friends = (() => { el.querySelectorAll('.fr-activity-item[data-nav]').forEach(btn => { btn.addEventListener('click', () => { - const page = btn.dataset.nav; - if (page) App.navigate(page); + const page = btn.dataset.nav; + const entryId = btn.dataset.entryId ? parseInt(btn.dataset.entryId) : null; + const type = btn.dataset.type; + if (!page) return; + if (entryId && type === 'diary') { + App.callModule('diary', 'openDetail', entryId); + } else if (entryId && type === 'walk') { + App.callModule('walks', 'openDetail', entryId); + } else { + App.navigate(page); + } }); }); } @@ -283,7 +292,9 @@ window.Page_friends = (() => { const tag = page ? `button type="button"` : `div`; return ` <${tag} class="fr-activity-item${page ? ' fr-activity-item--link' : ''}" - ${page ? `data-nav="${page}"` : ''}> + ${page ? `data-nav="${page}"` : ''} + ${item.entry_id ? `data-entry-id="${item.entry_id}"` : ''} + data-type="${item.type}">