Files
hcrb/private/fahrt.html
T
guyg1474andClaude Opus 5.5 819219fb2d Rollen (Admin/Mitglied), Seite Kooperationen, Textanpassungen
- Gemeinsame Zugänge mit Rollen: Admin darf alles, Mitglied nutzt Kalender,
  Fahrtplaner, Treffpunkte und bearbeitet Mitglieder (kein Hinzufügen,
  Löschen, Import, keine Patches, keine Statistik-Korrektur)
- Server prüft die Rechte (403), Konten ohne Rolle gelten als Admin
- npm run user: add <name> [admin|mitglied], role <name> <rolle>
- Neue öffentliche Seite Kooperationen mit Titelbild, Anführer,
  Social-Media-Links und Beschreibung, Pflege durch Admin
- Kopfzeile bleibt bei mittlerer Breite einzeilig
- Texte auf Wunsch gekürzt

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-12 19:47:03 +02:00

108 lines
4.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">
<title>Fahrtplaner – HCRB</title>
<link rel="stylesheet" href="/css/style.css">
</head>
<body>
<main>
<header class="page-head no-print">
<div>
<span class="eyebrow">Fahrgemeinschaften</span>
<h1>Fahrtplaner</h1>
<p>Wer fährt, wer steigt wo zu, wann geht es los.</p>
</div>
</header>
<div id="from-event" class="notice no-print" hidden></div>
<div class="split">
<div class="col">
<div class="card no-print">
<div class="card-head">
<h2>Fahrt</h2>
<button type="button" id="reset-btn" class="small">Eingabe zurücksetzen</button>
</div>
<div class="grid2">
<label>Ziel / Event
<input type="text" id="trip-title" placeholder="z. B. Spieltag Waldfeld">
</label>
<label>Datum
<input type="date" id="trip-date">
</label>
</div>
<label>Treffpunkt (Standard)
<select id="trip-point"></select>
</label>
<p id="trip-points-empty" class="muted" hidden>Treffpunkte legst du unter <a href="/gruppe">Gruppe</a> an.</p>
<div class="grid2">
<label>Abfahrt
<input type="time" id="trip-departure" value="07:00" required>
</label>
<label>Treffzeit
<input type="time" id="trip-meet" value="06:45" required>
</label>
</div>
</div>
<div class="card no-print">
<h2>Weitere Personen (nur diese Fahrt)</h2>
<form id="guest-form" class="row wrap">
<input type="text" id="guest-name" placeholder="Vorname" required autocomplete="off">
<label class="inline"><input type="checkbox" id="guest-hascar"> Hat Auto</label>
<input type="number" id="guest-seats" min="1" max="8" value="4" title="Freie Plätze (ohne Fahrer)" hidden>
<select id="guest-rideswith" title="Fährt am liebsten mit bei"></select>
<button type="submit">Hinzufügen</button>
</form>
<ul id="guests-list" class="list"></ul>
</div>
<div class="card no-print">
<h2>Feste Zuteilung (nur diese Fahrt)</h2>
<p class="muted">Wer hier eingetragen ist, fährt sicher bei diesem Fahrer mit – der Fahrer fährt dann auf jeden Fall.
Alle anderen werden bei der Berechnung automatisch verteilt.</p>
<form id="fixed-form" class="row wrap">
<select id="fixed-passenger" title="Wer"></select>
<span class="muted">fährt bei</span>
<select id="fixed-driver" title="Fahrer"></select>
<button type="submit">Festlegen</button>
</form>
<ul id="fixed-list" class="list"></ul>
</div>
</div>
<div class="col">
<div class="card no-print">
<div class="card-head">
<h2>Wer kommt mit?</h2>
<div class="row">
<button type="button" id="select-all" class="small">Alle</button>
<button type="button" id="select-none" class="small">Keine</button>
</div>
</div>
<p id="trip-members-empty" class="muted" hidden>Noch keine Mitglieder. Der Admin legt sie unter <a href="/gruppe">Gruppe</a> an.</p>
<ul id="trip-members" class="list"></ul>
</div>
</div>
</div>
<div class="card" style="margin-top: 20px">
<h2 class="no-print">Einteilung</h2>
<div class="no-print">
<label class="inline">
<input type="checkbox" id="opt-min-cars" checked> Möglichst wenige Autos verwenden
</label>
<p class="muted">Wer „fährt immer“ hat und sein Auto dabei hat, fährt trotzdem selbst und bekommt zuerst Mitfahrer.</p>
<p class="muted">Treffpunkt und Zeiten kannst du danach bei jedem Auto einzeln ändern.
Fahrer mit eigenem Standard-Treffpunkt (unter Gruppe) starten automatisch dort.</p>
<div class="row">
<button id="plan-btn" class="primary">Fahrgemeinschaften berechnen</button>
</div>
</div>
<div id="result"></div>
</div>
</main>
<script type="module" src="/js/fahrt.js"></script>
</body>
</html>