Initial Release: Lütte Planer mit Google-Login-Vorbereitung

- Login-System (Mock für Tests, Google OAuth vorbereitet)
- Reisen erstellen mit Emoji, Ziel und Datum
- Ablauf (Timeline), Packliste, Ideen, Notizen, Dokumente
- Team-System: Personen einladen per E-Mail + Einladungslinks
- Berechtigungen: Nur lesen / Bearbeiten / Admin
- E-Mail-Benachrichtigungen beim Einladen

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-06-26 20:56:30 +02:00
co-authored by Claude Sonnet 4.6
commit bd8a322fc0
21 changed files with 1647 additions and 0 deletions
+3
View File
@@ -0,0 +1,3 @@
<script src="/Develop/PlanerGoogel/assets/js/app.js"></script>
</body>
</html>
+50
View File
@@ -0,0 +1,50 @@
<?php
// Erwartet: $pageTitle, $trip (optional), $activeTab (optional)
$user = currentUser();
$tripId = $trip['id'] ?? '';
?>
<!DOCTYPE html>
<html lang="de">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title><?= h($pageTitle ?? SITE_TITLE) ?> <?= SITE_TITLE ?></title>
<link rel="manifest" href="/Develop/PlanerGoogel/manifest.json">
<meta name="theme-color" content="#1d4ed8">
<link rel="preconnect" href="https://fonts.googleapis.com">
<link href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600&family=Playfair+Display:ital,wght@0,400;1,400&display=swap" rel="stylesheet">
<link rel="stylesheet" href="/Develop/PlanerGoogel/assets/css/style.css">
</head>
<body>
<header class="site-header">
<a href="/Develop/PlanerGoogel/" class="header-home" title="Alle Reisen">
<span><?= SITE_ICON ?></span>
<span class="header-title"><?= $trip ? h($trip['cover_emoji'] . ' ' . $trip['name']) : SITE_TITLE ?></span>
</a>
<div class="header-right">
<span class="header-user">
<?= avatarHtml($user, '28px') ?>
</span>
<a href="/Develop/PlanerGoogel/logout.php" class="header-logout" title="Abmelden">↩</a>
</div>
</header>
<?php if ($trip): ?>
<nav class="nav-bar">
<?php
$tabs = [
'ablauf' => ['label' => 'Ablauf', 'url' => '/Develop/PlanerGoogel/ablauf.php?trip=' . $tripId],
'packen' => ['label' => 'Packen', 'url' => '/Develop/PlanerGoogel/packen.php?trip=' . $tripId],
'ideen' => ['label' => 'Ideen', 'url' => '/Develop/PlanerGoogel/ideen.php?trip=' . $tripId],
'notizen' => ['label' => 'Notizen', 'url' => '/Develop/PlanerGoogel/notizen.php?trip=' . $tripId],
'dokumente' => ['label' => 'Dokumente', 'url' => '/Develop/PlanerGoogel/dokumente.php?trip=' . $tripId],
'team' => ['label' => 'Team', 'url' => '/Develop/PlanerGoogel/team.php?trip=' . $tripId],
];
foreach ($tabs as $key => $tab):
$active = ($activeTab ?? '') === $key ? ' active' : '';
?>
<a href="<?= $tab['url'] ?>" class="<?= $active ?>"><?= $tab['label'] ?></a>
<?php endforeach; ?>
</nav>
<?php endif; ?>