Express + SQLite (node:sqlite, no native build step) family calendar: parent accounts with household invites, per-child calendars with save/duplicate/print, a token-gated read-only kiosk view for tablets, and polling to keep parent and kiosk views in sync. Defaults to port 3007.
39 lines
1.2 KiB
HTML
39 lines
1.2 KiB
HTML
<!DOCTYPE html>
|
|
<html lang="en">
|
|
<head>
|
|
<meta charset="UTF-8">
|
|
<title>My Week</title>
|
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
<link rel="preconnect" href="https://fonts.googleapis.com">
|
|
<link href="https://fonts.googleapis.com/css2?family=Baloo+2:wght@500;700;800&family=Nunito:wght@500;700;800&display=swap" rel="stylesheet">
|
|
<link rel="stylesheet" href="/css/shared.css">
|
|
<style>
|
|
/* Kiosk is touch-first and has nothing to edit — bigger targets, no toolbar chrome. */
|
|
header{ justify-content: center; text-align: center; }
|
|
.toolbar{ display:none; }
|
|
.board{ grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); }
|
|
.task-text{ font-size: 1.02rem; }
|
|
</style>
|
|
</head>
|
|
<body>
|
|
|
|
<header>
|
|
<div>
|
|
<h1 id="childName">…</h1>
|
|
<div class="subtitle" id="calTitle"></div>
|
|
</div>
|
|
</header>
|
|
|
|
<div class="board" id="weekdayBoard"></div>
|
|
<div class="weekend-toggle-wrap" id="weekendWrap"></div>
|
|
|
|
<div id="emptyState" class="empty-state" style="display:none; max-width:600px; margin:60px auto;">
|
|
No calendar has been set up yet. Ask a parent to create one.
|
|
</div>
|
|
|
|
<script src="/js/calendarRender.js"></script>
|
|
<script src="/js/kiosk.js"></script>
|
|
|
|
</body>
|
|
</html>
|