Commit Graph

25 Commits

Author SHA1 Message Date
admin 9e2f430d4a v1.7.4: Suche in Listenansicht (Bemerkungen, Objekte, BEOs)
Suchfeld in der Toolbar der Listenansicht: Suche über alle Einträge
der Kuppel in Bemerkungen, Objekte und BEOs. Monatsauswahl, Suchfeld
und Drucken-Button in einer Zeile; Monatsauswahl wird bei aktiver
Suche unsichtbar aber platzhaltend ausgeblendet.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-14 21:45:09 +02:00
admin edb324719b feat: Admin – Objektverwaltung mit Tab-Navigation
Admins können Objekte anlegen, umbenennen und löschen.
Die Admin-Seite ist in zwei Tabs aufgeteilt: Benutzerverwaltung (?tab=benutzer)
und Objektverwaltung (?tab=objekte), navigierbar per URL-Parameter.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-14 20:36:56 +02:00
admin 845b634804 v1.7.1: Druck – kleinere Schrift und schmalere Tabelle
Beim Drucken: Schrift 0.72rem (!important gegen Inline-Style),
Tabellenbreite 95%.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-13 21:50:51 +02:00
admin 8fabf7bb30 feat: Druck – kleinere Schrift und chronologische Reihenfolge
Beim Drucken wird die Tabellenschrift auf 0.72rem verkleinert.
Der Drucken-Button lädt vorab alle Einträge des Monats in
aufsteigender Reihenfolge (älteste zuerst) und ruft dann
window.print() auf. API unterstützt jetzt order=asc.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-13 21:19:06 +02:00
admin 070ea75369 fix: NaN-Fallback für limit/offset bei ungültigem URL-Parameter
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-13 08:14:47 +02:00
admin 40bf029fc9 v1.7.0: Ersteller-BEO in Listenansicht fett und an erster Stelle
Der BEO, der einen Eintrag erstellt hat (created_by), wird in der
BEOs-Spalte fett hervorgehoben und immer als erster angezeigt.
API liefert created_by_kuerzel via JOIN auf beos-Tabelle.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-12 22:15:07 +02:00
admin 3d3346de76 v1.6.3: 403-Fehler bei Einträgen ohne created_by (NULL) beheben
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-11 20:55:52 +02:00
admin 9bea0a11de v1.6.1: Sicherheit – Rate Limiting, Default-PW via Env, AUTH_SECRET Pflicht, Bcrypt 12 2026-05-11 13:26:51 +02:00
admin 0ea960259c v1.6.0: Admin-Passwort-Reset, Login per Nachname, Default-PW-Sperre 2026-05-11 12:20:44 +02:00
admin 419ad39ead bump version to 1.5.1; make logout button red 2026-05-10 15:40:04 +02:00
admin 1a85f0ae36 wetter: fetch real data from weather station API 2026-05-10 15:32:13 +02:00
admin 1451f45711 add Statistik component and API route 2026-05-10 14:55:27 +02:00
admin c04935a117 v1.4.0: Monatsfilter, Pagination, Rollenverwaltung, DB-Bereinigung
- Liste: Monatsfilter mit ←/→ Navigation, Standard = aktueller Monat
- Liste: Pagination (10 Einträge/Seite)
- BEO-Auswahl filtert nur role='guide'
- logbuch_objekte: ObjektName entfernt, JOIN auf objekte
- utf8mb4 Migration und DB-Charset-Umstellung
- SSH-Tunnel-Support: MySQL auf 127.0.0.1:3336
- phpMyAdmin unter /myadmin

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-09 10:39:11 +02:00
admin 3fc5c9ff7a v1.5.0: utf8mb4-Migration, Rollen, phpMyAdmin, DB-Bereinigung
- Datenbank auf utf8mb4_unicode_ci migriert (migrate_to_utf8mb4.sh)
- beos: Spalte 'role' (kommagetrennte Rollen: guide, admin, key, deleted)
- BEO-Auswahl im Formular filtert nur noch role='guide'
- logbuch_objekte: ObjektName-Spalte entfernt, stattdessen JOIN auf objekte
- lib/db.ts: charset utf8mb4 in Connection-Pool
- Session und Auth um role-Feld erweitert
- compose.yml: phpMyAdmin mit Traefik unter /myadmin
- compose.yml: MySQL auf 127.0.0.1:3336 für SSH-Tunnel (lokale Entwicklung)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-09 09:34:38 +02:00
admin 8bff795247 v1.4.0: Sonderführung, Zeiterfassung, Enter-Navigation, Objektsuche
- Sonderführung: neues Feld 'Name/Gruppe' (DB-Spalte SonderName), in Liste sichtbar
- Wetter: Race-Condition behoben (API überschreibt DB-Werte beim Bearbeiten nicht mehr)
- Zeiterfassung: TimePicker5 ersetzt durch freie Texteingabe (TimeInput) mit Validierung
- Enter-Taste: navigiert zum nächsten Feld statt die Form abzuschicken; Luftdruck → zurück zu Art; Bemerkungen bleibt normal
- Objektsuche: Freitext-Suche im ObjektSelector, filtert nach Präfix (case-insensitive)
- UI-Anpassungen: kompakteres Layout (space-y-2, kleinere Abstände)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-04 08:50:51 +02:00
admin 07d2a13014 v1.2.0: Formular-Redesign und Listen-Verbesserungen
- Eingabe: alle 5 Felder (Führung, Datum, Start, Ende, Besucher) in einer Zeile
- Eingabe: Datum einmalig, Start- und Endzeit getrennt
- Führungsarten: Kürzel werden nur in DB gespeichert, Anzeige als Klartext
- Liste: Datum und Zeit getrennt in eigenen Spalten
- Hintergrundfarbe #EEF4FF auf Login- und Passwort-Seite übertragen
- Alle Inputfelder gleich hoch (text-sm durchgehend)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-01 11:00:19 +02:00
admin 0e3c5ca835 v1.1.0: Druck-Optimierung, UI-Verbesserungen
- Drucklayout: kein innerer Rahmen, volle DIN-A4-Breite, @page-Regel
- Besucher-Spalte: zeigt keine 0 an wenn kein Wert eingetragen
- Beginn-Zeit synchronisiert automatisch die Ende-Zeit
- Hintergrundfarbe auf helles Blau (#EEF4FF)
- Listen-Tab und kompakte Vorschau mit weißem Rahmen
- Besucher-Spalte schmaler, Header als "Bes." abgekürzt
- Drucken-Button im Listen-Tab, Navigation bei Druck ausgeblendet

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-01 10:25:11 +02:00
admin 30c734220a Fix iOS text color, viewport meta tag, and security improvements
- Add viewport meta tag to prevent iOS zoom/scaling issues
- Fix text color on iOS Safari (explicit text-gray-900 on buttons, inputs, TimePicker5)
- Add session checks to /api/beos, /api/objekte, /api/wetter
- Revert iframe embedding (X-Frame-Options: DENY, SameSite: lax)
- docker-compose.prod.yml: fix DB_PORT=3306 for production
- Add docker-compose.prod.yml, .env.prod.example, dump/import scripts

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-30 17:38:08 +02:00
admin a0fb6d8089 Various UX improvements and bug fixes
- Fix mustChangePassword session flag for users with pw=NULL
- Add PrF (Private Führung) as new ArtFuehrung type
- Split datetime-local into separate date + TimePicker5 (5-min steps, auto-repeat)
- Responsive Beginn/Ende layout: stacked on mobile, inline on desktop
- Sort BEOs alphabetically by Kürzel in selector
- Title shows active kuppel; hide user display in header
- Selected BEOs show Kürzel only (name stays in dropdown)
- Session timeout reduced to 1 hour
- Add CLAUDE.md

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-29 18:02:47 +02:00
admin 34a2c6b90d Compact preview list below form on desktop; Beginn/Ende/Besucher in one row
- Eingabe tab shows last 5 entries below form on lg+ screens (compact mode
  hides Objekte and Bemerkungen columns); Liste tab shows full 20 entries
- Beginn, Ende, Besucher fields moved into a single flex row
- LogbuchList accepts limit and compact props

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-28 07:55:46 +02:00
admin e7f2266a35 Rename dome tabs to 'West-Kuppel' style
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-27 20:19:58 +02:00
admin 6a655212bf Apply Anpassung_1: art-specific object logic, responsive design, remove Kuppel field
- Sonnenführung: fixes Sonne as sole object, no selector shown
- BEO-Sitzung / Technischer Dienst: object field hidden, DB stays empty
- Kuppel field removed from form (determined by active tab)
- Responsive layout: single-column on mobile, side-by-side on sm+
- Touch-friendly input sizes (py-3, text-base)
- Compact header and tab labels on small screens

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-27 18:05:40 +02:00
admin 12be2f1db2 Adapt to existing beos table in database sternwarte
Column mapping: id, name/vorname, kürzel (with umlaut), pw instead of
the planned schema. DB_NAME changed to sternwarte. create_table.sql
no longer creates beos, only the three new logbuch tables.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-27 17:34:45 +02:00
admin 4e53a7a5cd Initial implementation: Logbuch Sternwarte Welzheim
Vollständige Next.js 16 Webanwendung als Logbuch für die Sternwarte Welzheim.
4 Kuppeln (West/Ost/Süd/Pluto), BEO-basierte Authentifizierung mit erzwungenem
Passwort-Wechsel beim Erstlogin, MySQL-Backend, Docker-Deployment.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-27 17:11:27 +02:00
admin f0a86627e5 Initial commit from Create Next App 2026-04-27 17:03:41 +02:00