67dc253cd9
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>
350 lines
16 KiB
HTML
350 lines
16 KiB
HTML
<!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 (Beginn–Ende), 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>
|