// ── Dashboard Page ──
registerPage('dashboard', {
async init() {
const sessions = await apiGetSessions();
const grid = document.getElementById('sessionCards');
grid.innerHTML = '';
for (const s of sessions) {
const card = document.createElement('div');
card.className = 'card clickable';
card.innerHTML = `
${escHtml(s.name || 'Unbenannt')}
${formatDate(s.updatedAt)}
`;
card.addEventListener('click', () => {
navigateTo('session', { id: s.sessionId });
});
grid.appendChild(card);
}
// Neue Session Button
const btn = document.getElementById('newSessionBtn');
if (btn) {
btn.addEventListener('click', async () => {
const session = await apiCreateSession();
navigateTo('session', { id: session.sessionId });
});
}
},
destroy() {}
});
function escHtml(s) {
const d = document.createElement('div');
d.textContent = s;
return d.innerHTML;
}
function formatDate(iso) {
if (!iso) return '';
return new Date(iso).toLocaleString('de-AT', {
day: '2-digit', month: '2-digit', year: '2-digit',
hour: '2-digit', minute: '2-digit'
});
}