Files
admin 67dc253cd9 docs: anleitung.html aus ANLEITUNG.md aktualisiert
Führungsbuch statt Logbuch, Statistik-Sektion mit 4 Kacheln und
Grafik-Button, Suchfeld-Beschreibung aktualisiert.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-05 18:03:51 +02:00

350 lines
16 KiB
HTML
Raw Permalink 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" />
<title>Bedienungsanleitung Führungsbuch Sternwarte Welzheim</title>
<style>
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
body {
font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
font-size: 15px;
line-height: 1.65;
color: #1a1a2e;
background: #f4f6fb;
}
.page {
max-width: 860px;
margin: 0 auto;
padding: 2rem 1.5rem 4rem;
}
header {
background: linear-gradient(135deg, #1a2d5a 0%, #2e4e8a 100%);
color: #fff;
padding: 2.5rem 2rem 2rem;
border-radius: 12px;
margin-bottom: 2.5rem;
display: flex;
align-items: center;
gap: 1.2rem;
}
header .star { font-size: 2.8rem; flex-shrink: 0; line-height: 1; }
header h1 { font-size: 1.6rem; font-weight: 700; letter-spacing: -0.02em; line-height: 1.25; }
header p { margin-top: 0.3rem; font-size: 0.9rem; opacity: 0.75; }
nav.toc {
background: #fff;
border: 1px solid #d8e0f0;
border-radius: 10px;
padding: 1.4rem 1.8rem;
margin-bottom: 2.5rem;
}
nav.toc h2 {
font-size: 0.75rem; font-weight: 700; text-transform: uppercase;
letter-spacing: 0.08em; color: #6b7a9b; margin-bottom: 0.75rem;
}
nav.toc ol {
list-style: none; counter-reset: toc;
display: grid; grid-template-columns: 1fr 1fr; gap: 0.3rem 2rem;
}
nav.toc li { counter-increment: toc; display: flex; align-items: baseline; gap: 0.5rem; }
nav.toc li::before {
content: counter(toc) "."; font-size: 0.8rem; color: #85b7d7;
font-weight: 700; min-width: 1.4rem;
}
nav.toc a { color: #2e4e8a; text-decoration: none; font-size: 0.92rem; }
nav.toc a:hover { text-decoration: underline; }
section {
background: #fff;
border: 1px solid #d8e0f0;
border-radius: 10px;
padding: 1.8rem 2rem;
margin-bottom: 1.5rem;
}
h2.section-title {
font-size: 1.15rem; font-weight: 700; color: #1a2d5a;
margin-bottom: 1.2rem; padding-bottom: 0.6rem;
border-bottom: 2px solid #85b7d7;
display: flex; align-items: center; gap: 0.6rem;
}
h2.section-title .num {
background: #85b7d7; color: #1a2d5a; font-size: 0.78rem; font-weight: 800;
width: 1.6rem; height: 1.6rem; border-radius: 50%;
display: inline-flex; align-items: center; justify-content: center; flex-shrink: 0;
}
h3 {
font-size: 0.95rem; font-weight: 700; color: #2e4e8a;
margin: 1.3rem 0 0.5rem; text-transform: uppercase; letter-spacing: 0.05em;
}
h3:first-child { margin-top: 0; }
p { margin-bottom: 0.7rem; }
p:last-child { margin-bottom: 0; }
ul, ol { padding-left: 1.4rem; margin-bottom: 0.7rem; }
li { margin-bottom: 0.35rem; }
li:last-child { margin-bottom: 0; }
table { width: 100%; border-collapse: collapse; font-size: 0.88rem; margin: 0.8rem 0; }
th {
background: #eef2fa; color: #2e4e8a; font-weight: 700;
text-align: left; padding: 0.5rem 0.9rem; border: 1px solid #d0d8ee;
}
td { padding: 0.45rem 0.9rem; border: 1px solid #e0e6f5; vertical-align: top; }
tr:nth-child(even) td { background: #f7f9fd; }
code {
background: #eef2fa; color: #1a2d5a;
font-family: 'SF Mono', 'Fira Code', monospace;
font-size: 0.85em; padding: 0.1em 0.35em; border-radius: 4px;
}
.callout {
background: #eef6fb; border-left: 4px solid #85b7d7;
border-radius: 0 8px 8px 0; padding: 0.8rem 1rem;
margin: 0.9rem 0; font-size: 0.9rem;
}
.callout.warn { background: #fff8ec; border-left-color: #f5a623; }
.callout.danger { background: #fff0f0; border-left-color: #e05252; }
strong { font-weight: 700; }
.back-btn {
display: inline-flex; align-items: center; gap: 0.4rem;
margin-bottom: 1.5rem; padding: 0.5rem 1rem;
background: #fff; border: 1px solid #d8e0f0; border-radius: 8px;
color: #2e4e8a; font-size: 0.9rem; font-weight: 600;
text-decoration: none; cursor: pointer;
}
.back-btn:hover { background: #eef2fa; }
@media (max-width: 600px) {
nav.toc ol { grid-template-columns: 1fr; }
header h1 { font-size: 1.25rem; }
section { padding: 1.2rem 1rem; }
}
@media print {
body { background: #fff; font-size: 12pt; }
.page { max-width: none; padding: 0; }
header { border-radius: 0; background: #1a2d5a !important; -webkit-print-color-adjust: exact; print-color-adjust: exact; }
section { border: 1px solid #ccc; break-inside: avoid; }
nav.toc { break-after: page; }
a { color: inherit; text-decoration: none; }
.back-btn { display: none; }
}
</style>
</head>
<body>
<div class="page">
<a href="/" class="back-btn">← Zurück zum Führungsbuch</a>
<header>
<div class="star"></div>
<div>
<h1>Bedienungsanleitung</h1>
<p>Führungsbuch Sternwarte Welzheim</p>
</div>
</header>
<nav class="toc">
<h2>Inhaltsverzeichnis</h2>
<ol>
<li><a href="#s1">Anmelden</a></li>
<li><a href="#s2">Grundaufbau der App</a></li>
<li><a href="#s3">Eintrag erfassen (Tab „Eingabe")</a></li>
<li><a href="#s4">Einträge einsehen und verwalten (Tab „Liste")</a></li>
<li><a href="#s5">Jahresstatistik (Tab „Statistik")</a></li>
<li><a href="#s6">Drucken</a></li>
<li><a href="#s7">Administration (nur Admins)</a></li>
</ol>
</nav>
<!-- ── 1. Anmelden ── -->
<section id="s1">
<h2 class="section-title"><span class="num">1</span> Anmelden</h2>
<p>Die App ist passwortgeschützt. Beim ersten Aufruf erscheint die Anmeldeseite.</p>
<ul>
<li><strong>Kürzel</strong> das persönliche BEO-Kürzel (z. B. <code>RXF</code>)</li>
<li><strong>Passwort</strong> individuell gesetztes Passwort</li>
</ul>
<div class="callout warn">
Wurde das Passwort noch nicht geändert, muss nach dem ersten Login sofort ein neues Passwort vergeben werden. Das Standard-Passwort lautet <code>welzheim</code>.
</div>
</section>
<!-- ── 2. Grundaufbau ── -->
<section id="s2">
<h2 class="section-title"><span class="num">2</span> Grundaufbau der App</h2>
<h3>Kuppel-Auswahl</h3>
<p>Oben befinden sich vier Reiter für die vier Kuppeln:</p>
<table>
<thead><tr><th>Reiter</th><th>Bedeutung</th></tr></thead>
<tbody>
<tr><td>West</td><td>West-Kuppel</td></tr>
<tr><td>Ost</td><td>Ost-Kuppel</td></tr>
<tr><td>Süd</td><td>Süd-Kuppel</td></tr>
<tr><td>Pluto</td><td>Pluto-Kuppel</td></tr>
</tbody>
</table>
<p>Alle Einträge, Listen und Statistiken beziehen sich immer auf die gerade gewählte Kuppel.</p>
<h3>Funktions-Tabs</h3>
<p>Unterhalb der Kuppelauswahl gibt es drei Tabs:</p>
<table>
<thead><tr><th>Tab</th><th>Funktion</th></tr></thead>
<tbody>
<tr><td><strong>Eingabe</strong></td><td>Neuen Eintrag anlegen oder bestehenden bearbeiten</td></tr>
<tr><td><strong>Liste</strong></td><td>Alle Einträge monatsweise ansehen, bearbeiten oder löschen</td></tr>
<tr><td><strong>Statistik</strong></td><td>Jahresübersicht Besucher und Führungen</td></tr>
</tbody>
</table>
</section>
<!-- ── 3. Eingabe ── -->
<section id="s3">
<h2 class="section-title"><span class="num">3</span> Eintrag erfassen (Tab „Eingabe")</h2>
<h3>Pflichtfelder</h3>
<p><strong>Art der Führung</strong> Auswahl aus dem Dropdown:</p>
<table>
<thead><tr><th>Anzeige</th><th>Bedeutung</th></tr></thead>
<tbody>
<tr><td>Reguläre Führung</td><td>Reguläre öffentliche Führung</td></tr>
<tr><td>Sonderführung</td><td>Für Gruppen, Schulen etc.</td></tr>
<tr><td>Sonnenführung</td><td>Führung mit Sonnenbeobachtung</td></tr>
<tr><td>Privatführung</td><td>Private Führung</td></tr>
<tr><td>BEOS</td><td>BEO-Sitzung (keine Besucher/Objekte)</td></tr>
<tr><td>TD</td><td>Treff/Diskussion (keine Besucher/Objekte)</td></tr>
<tr><td>Beobachtung</td><td>Reine Beobachtung ohne Führung</td></tr>
<tr><td>ToT</td><td>Teleskop ohne Termin</td></tr>
<tr><td>Sonstiges</td><td>Sonstige Veranstaltung</td></tr>
</tbody>
</table>
<p><strong>Datum</strong> Datum der Veranstaltung (Standardwert: heute).</p>
<p><strong>Startzeit / Endzeit</strong> Uhrzeit von Beginn und Ende. Die Startzeit ist beim Laden leer und erhält automatisch den Fokus; die Endzeit wird auf die aktuelle Uhrzeit aufgerundet auf die nächste 5-Minuten-Marke vorausgefüllt. Wird nur die Stundenzahl eingegeben (z. B. <code>8</code> oder <code>23</code>) und das Feld verlassen, werden die Minuten automatisch auf <code>00</code> gesetzt.</p>
<p><strong>Besucher</strong> Anzahl der Besucher (nicht sichtbar bei BEOS und TD).</p>
<h3>Optionale Felder</h3>
<p><strong>Name / Gruppe</strong> erscheint nur bei Sonderführung; Name der Gruppe oder Person.</p>
<p><strong>BEOs</strong> beteiligte Beobachter. Der eigene Name ist automatisch vorausgewählt. Weitere BEOs können über das Suchfeld hinzugefügt werden; ein Klick auf × entfernt sie wieder.</p>
<p><strong>Beobachtete Objekte</strong> nicht sichtbar bei BEOS und TD; bei Sonnenführungen fest auf „Sonne" gesetzt. Für alle anderen Arten:</p>
<ul>
<li>Bekannte Objekte durch Eintippen suchen und aus dem Dropdown auswählen.</li>
<li>Das Dropdown bleibt nach der Auswahl offen, sodass mehrere Objekte ohne erneutes Öffnen hintereinander ausgewählt werden können. Durch Klick außerhalb schließt es sich.</li>
<li>Noch unbekannte Objekte einfach eintippen am Ende der Dropdown-Liste erscheint dann <strong>+ „[Name]" hinzufügen</strong>. Ein Klick (oder Enter bei leerem Suchergebnis) legt das Objekt neu an.</li>
<li>Ausgewählte Objekte erscheinen als grüne Chips; × entfernt sie.</li>
</ul>
<p><strong>Bemerkungen</strong> freier Text, max. 500 Zeichen.</p>
<p><strong>Wetterdaten</strong> Temperatur (°C), Luftfeuchtigkeit (%) und Luftdruck (hPa) werden automatisch vom lokalen Wetterdienst vorausgefüllt und können manuell korrigiert werden. Negative Temperaturen (z. B. <code>-5</code>) können direkt eingegeben werden.</p>
<h3>Eintrag speichern</h3>
<p>Schaltfläche <strong>Eintrag speichern</strong> unten im Formular. Eine grüne Meldung bestätigt die Speicherung; das Formular wird zurückgesetzt.</p>
<div class="callout">
Auf Desktop-Geräten erscheinen unterhalb des Formulars die letzten 5 Einträge der aktuellen Kuppel als kompakte Vorschau.
</div>
<h3>Eintrag bearbeiten</h3>
<p>Im Tab „Liste" das Stift-Symbol (✎) anklicken. Die App springt zum Tab „Eingabe" und zeigt einen gelben Hinweis „Eintrag bearbeiten (ID …)". Nach der Änderung <strong>Änderungen speichern</strong> klicken oder mit <strong>Abbrechen</strong> verwerfen.</p>
</section>
<!-- ── 4. Liste ── -->
<section id="s4">
<h2 class="section-title"><span class="num">4</span> Einträge einsehen und verwalten (Tab „Liste")</h2>
<h3>Werkzeugleiste</h3>
<p>Die Werkzeugleiste oben in der Liste enthält in einer Zeile:</p>
<ul>
<li><strong>Monatsnavigation</strong> Pfeiltasten ← → wechseln den Monat; Monatseingabe im Feld direkt möglich; <strong>Aktueller Monat</strong> springt zurück auf den laufenden Monat. Zukünftige Monate können nicht gewählt werden. Während einer aktiven Suche wird die Monatsnavigation ausgeblendet (der Platz bleibt frei, damit sich nichts verschiebt).</li>
<li><strong>Suchfeld</strong> Freitextsuche über alle Einträge des Führungsbuchs (Bemerkungen, Objekte und BEOs). Die Ergebnisse erscheinen monatsübergreifend in absteigender Datumsreihenfolge. Das × im Suchfeld löscht die Eingabe und kehrt zur Monatsansicht zurück.</li>
<li><strong>🖨 Drucken</strong> siehe Abschnitt <a href="#s6">Drucken</a>.</li>
</ul>
<h3>Tabelleninhalt</h3>
<p>Die Tabelle zeigt pro Eintrag: Datum, Uhrzeit (BeginnEnde), Art der Führung, Besucher, beteiligte BEOs, beobachtete Objekte, Bemerkungen und Wetterdaten. Der Ersteller des Eintrags ist in der BEO-Spalte <strong>fettgedruckt</strong> und steht an erster Stelle. Wetterdaten werden nur angezeigt, wenn mindestens ein Wert ungleich null ist.</p>
<h3>Eintrag bearbeiten</h3>
<p>Stift-Symbol ✎ rechts in der Zeile.</p>
<h3>Eintrag löschen</h3>
<p>× rechts in der Zeile es erscheint ein Bestätigungsdialog.</p>
<div class="callout danger">Das Löschen ist <strong>unwiderruflich</strong>.</div>
<h3>Seitennavigation</h3>
<p>Bei mehr als 10 Einträgen erscheinen Vor/Zurück-Schaltflächen am unteren Rand.</p>
</section>
<!-- ── 5. Statistik ── -->
<section id="s5">
<h2 class="section-title"><span class="num">5</span> Jahresstatistik (Tab „Statistik")</h2>
<p>Zeigt eine Monatstabelle mit Anzahl der Führungen und Besuchern, aufgeschlüsselt nach Art der Führung.</p>
<ul>
<li><strong>Jahr</strong> oben links änderbar (Eingabefeld).</li>
<li>Darunter vier Kennzahlen-Kacheln:
<ul>
<li>Kumulierte Besucher des Jahres für die gewählte Kuppel</li>
<li>Führungstage des Jahres für die gewählte Kuppel</li>
<li>Kumulierte Besucher für die gesamte Sternwarte (alle Kuppeln)</li>
<li>Führungstage für die gesamte Sternwarte</li>
</ul>
</li>
</ul>
<div class="callout">
Über den Button <strong>📊 Grafik</strong> kann die Statistik-Grafik in einem separaten Fenster aufgerufen werden.
</div>
</section>
<!-- ── 6. Drucken ── -->
<section id="s6">
<h2 class="section-title"><span class="num">6</span> Drucken</h2>
<p><strong>Im Tab „Liste"</strong> Schaltfläche <strong>🖨 Drucken</strong> oben rechts in der Werkzeugleiste:</p>
<ul>
<li>Es werden <strong>alle Einträge des aktuell gewählten Monats</strong> geladen (nicht nur die angezeigte Seite).</li>
<li>Die Reihenfolge ist beim Ausdruck <strong>chronologisch</strong> (ältester Eintrag zuerst).</li>
<li>Navigations- und Aktionselemente werden ausgeblendet; oben erscheint eine Kopfzeile mit Kuppelname und Druckdatum.</li>
<li>Seitenformat: A4 Hochformat, Rand 1,5 cm.</li>
</ul>
<p><strong>Im Tab „Statistik"</strong> ebenfalls eine <strong>🖨 Drucken</strong>-Schaltfläche für die Jahresstatistik.</p>
</section>
<!-- ── 7. Administration ── -->
<section id="s7">
<h2 class="section-title"><span class="num">7</span> Administration <small style="font-size:0.7em;font-weight:500;color:#6b7a9b;">(nur Admins)</small></h2>
<p>Erreichbar über die Schaltfläche <strong>Admin</strong> oben rechts (nur für Benutzer mit Admin-Rolle sichtbar). Die Admin-Seite hat zwei Tabs:</p>
<h3>Benutzerverwaltung</h3>
<p>Die Tabelle zeigt alle BEOs mit Kürzel, Name, Vorname, Rolle und Passwortstatus.</p>
<p><strong>Passwort zurücksetzen</strong> Schaltfläche „Zurücksetzen" neben dem jeweiligen Benutzer. Das Passwort wird auf NULL gesetzt; beim nächsten Login muss der Benutzer das Standard-Passwort <code>welzheim</code> verwenden und wird anschließend aufgefordert, ein neues Passwort zu vergeben.</p>
<h3>Objektverwaltung</h3>
<p>Zeigt alle bekannten Objekte mit ID, Name und Datum der letzten Verwendung.</p>
<ul>
<li><strong>Neues Objekt anlegen</strong> Feld unten ausfüllen und <strong>Hinzufügen</strong> klicken.</li>
<li><strong>Objekt umbenennen</strong> Stift-Symbol ✎ in der Zeile anklicken, Namen ändern und mit <strong>Speichern</strong> bestätigen oder mit <strong>Abbrechen</strong> verwerfen.</li>
<li><strong>Objekt löschen</strong> × in der Zeile; es erscheint ein Bestätigungsdialog.</li>
</ul>
<div class="callout danger">Das Löschen ist <strong>unwiderruflich</strong> und entfernt das Objekt aus allen bestehenden Führungsbucheinträgen.</div>
</section>
</div>
</body>
</html>