Files
date-wizard/public/admin.html
T

118 lines
6.1 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<!DOCTYPE html>
<html lang="de">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0" />
<title>Terminverwaltung - Date-Planer</title>
<link rel="preconnect" href="https://fonts.googleapis.com" />
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin />
<link href="https://fonts.googleapis.com/css2?family=Nunito:wght@400;600;700&family=Quicksand:wght@600;700&display=swap" rel="stylesheet" />
<link rel="stylesheet" href="style.css" />
<link rel="stylesheet" href="admin.css" />
</head>
<body class="page-admin">
<main class="admin-shell">
<section id="loginView" class="login-view" aria-labelledby="loginTitle">
<p class="eyebrow">Date-Planer</p>
<h1 id="loginTitle">Terminverwaltung</h1>
<p class="login-copy">Melde dich an, um verfügbare Tage zu verwalten.</p>
<form id="loginForm" class="login-form">
<label for="passwordInput">Passwort</label>
<input id="passwordInput" name="password" type="password" autocomplete="current-password" required />
<button class="btn btn-primary" type="submit">Anmelden</button>
</form>
<p id="loginMessage" class="form-message" role="status" aria-live="polite"></p>
</section>
<section id="adminView" class="admin-view hidden" aria-labelledby="adminTitle">
<header class="admin-header">
<div>
<p class="eyebrow">Date-Planer</p>
<h1 id="adminTitle">Verfügbare Tage</h1>
</div>
<button id="logoutBtn" class="text-action" type="button">Abmelden</button>
</header>
<nav class="admin-nav" aria-label="Verwaltung">
<button class="admin-nav-btn is-active" type="button" data-view="datesView">Termine</button>
<button class="admin-nav-btn" type="button" data-view="bookingsView">Gebuchte Termine</button>
<button class="admin-nav-btn" type="button" data-view="activitiesView">Aktivitäten</button>
</nav>
<div id="datesView" class="admin-panel">
<section class="admin-section add-date-section" aria-labelledby="addDateTitle">
<div class="section-heading">
<h2 id="addDateTitle">Verfügbare Tage planen</h2>
<p>Einmal klicken für kurz, zweimal für lang und ein drittes Mal zum Entfernen.</p>
</div>
<div class="admin-calendar" aria-label="Kalender zur Terminplanung">
<div class="calendar-header">
<button id="prevMonthBtn" class="month-nav-btn" type="button" aria-label="Vorheriger Monat">‹</button>
<h3 id="monthLabel" class="month-label">Monat Jahr</h3>
<button id="nextMonthBtn" class="month-nav-btn" type="button" aria-label="Nächster Monat">›</button>
</div>
<div class="weekday-row" id="weekdayRow"></div>
<div class="day-grid" id="dayGrid"></div>
</div>
<div class="calendar-legend" aria-label="Legende">
<span><i class="legend-dot is-short"></i>Kurz</span>
<span><i class="legend-dot is-long"></i>Lang</span>
</div>
<button id="saveDatesBtn" class="btn btn-primary" type="button">Änderungen speichern</button>
<p id="addDateMessage" class="form-message" role="status" aria-live="polite"></p>
</section>
<section class="admin-section dates-section" aria-labelledby="datesTitle">
<div class="section-heading dates-heading">
<div>
<h2 id="datesTitle">Eingetragene Tage</h2>
<p id="dateCount">Lade Termine...</p>
</div>
</div>
<ul id="datesList" class="dates-list" aria-live="polite"></ul>
<p id="emptyDates" class="empty-dates hidden">Noch keine Termine eingetragen.</p>
</section>
</div>
<div id="bookingsView" class="admin-panel hidden">
<section class="admin-section" aria-labelledby="bookingsTitle">
<div class="section-heading">
<h2 id="bookingsTitle">Gebuchte Termine</h2>
<p>Neueste Buchungen stehen oben.</p>
</div>
<ul id="bookingsList" class="bookings-list" aria-live="polite"></ul>
<p id="emptyBookings" class="empty-dates hidden">Noch keine Termine gebucht.</p>
</section>
</div>
<div id="activitiesView" class="admin-panel hidden">
<section class="admin-section" aria-labelledby="activitiesTitle">
<div class="section-heading">
<h2 id="activitiesTitle">Aktivitäten verwalten</h2>
<p>Aktive Aktivitäten werden Besucherinnen und Besuchern zur Auswahl angezeigt.</p>
</div>
</section>
<section class="admin-section" aria-labelledby="activityListTitle">
<div class="section-heading">
<h2 id="activityListTitle">Vorhandene Aktivitäten</h2>
<p id="activityMessage" class="form-message" role="status" aria-live="polite"></p>
</div>
<form id="activityAddRow" class="activity-row activity-add-row">
<div class="activity-identity activity-add-identity">
<button id="newActivityIcon" class="activity-row-icon" type="button" title="Icon auswählen" aria-label="Icon für neue Aktivität auswählen">🧺</button>
<input id="newActivityName" class="activity-name-input" type="text" maxlength="100" placeholder="Neue Aktivität" aria-label="Name der neuen Aktivität" required />
</div>
<div class="activity-actions">
<button id="newActivityType" class="row-action type-action is-short" type="button" title="Auf lang ändern" aria-label="Neue Aktivität: auf lang ändern"><span class="duration-indicator"></span></button>
<button class="row-action" type="submit" title="Aktivität hinzufügen" aria-label="Aktivität hinzufügen">+</button>
</div>
</form>
<ul id="activitiesList" class="activities-list" aria-live="polite"></ul>
<p id="emptyActivities" class="empty-dates hidden">Noch keine Aktivitäten angelegt.</p>
</section>
</div>
</section>
</main>
<script src="admin.js" defer></script>
</body>
</html>