1
0

layout.php 2.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. <?php
  2. /** @var string $content */
  3. /** @var string $title */
  4. /** @var \App\Domain\User|null $currentUser */
  5. /** @var string $csrfToken */
  6. use function App\Http\e;
  7. $currentUser = $currentUser ?? null;
  8. $csrfToken = $csrfToken ?? '';
  9. ?>
  10. <!doctype html>
  11. <html lang="en">
  12. <head>
  13. <meta charset="utf-8">
  14. <meta name="viewport" content="width=device-width,initial-scale=1">
  15. <title><?= e($title ?? 'Sprint Planner') ?></title>
  16. <script src="https://cdn.tailwindcss.com"></script>
  17. <script src="https://code.jquery.com/jquery-3.7.1.min.js"></script>
  18. <link rel="stylesheet"
  19. href="https://code.jquery.com/ui/1.13.3/themes/base/jquery-ui.css">
  20. <script src="https://code.jquery.com/ui/1.13.3/jquery-ui.min.js"></script>
  21. </head>
  22. <body class="bg-slate-50 text-slate-900 antialiased">
  23. <header class="border-b bg-white">
  24. <div class="max-w-7xl mx-auto px-4 py-3 flex items-center gap-4">
  25. <a href="/" class="font-semibold tracking-tight">Sprint Planner</a>
  26. <nav class="ml-auto flex items-center gap-4 text-sm">
  27. <?php if ($currentUser !== null): ?>
  28. <a href="/" class="text-slate-600 hover:text-slate-900 hover:underline">Sprints</a>
  29. <?php if ($currentUser->isAdmin): ?>
  30. <a href="/workers" class="text-slate-600 hover:text-slate-900 hover:underline">Workers</a>
  31. <a href="/sprints/new" class="text-slate-600 hover:text-slate-900 hover:underline">New sprint</a>
  32. <?php endif; ?>
  33. <span class="text-slate-400">·</span>
  34. <span class="text-slate-600">
  35. <?= e($currentUser->displayName) ?>
  36. <?php if ($currentUser->isAdmin): ?>
  37. <span class="ml-1 inline-block px-1.5 py-0.5 text-[10px] font-semibold uppercase tracking-wider bg-amber-100 text-amber-800 rounded">admin</span>
  38. <?php endif; ?>
  39. </span>
  40. <form method="post" action="/auth/logout" class="inline">
  41. <input type="hidden" name="_csrf" value="<?= e($csrfToken) ?>">
  42. <button type="submit"
  43. class="text-slate-600 hover:text-slate-900 hover:underline">
  44. Sign out
  45. </button>
  46. </form>
  47. <?php else: ?>
  48. <a href="/auth/login"
  49. class="text-blue-700 hover:underline">Sign in</a>
  50. <?php endif; ?>
  51. </nav>
  52. </div>
  53. </header>
  54. <main class="max-w-7xl mx-auto px-4 py-6">
  55. <?= $content ?>
  56. </main>
  57. </body>
  58. </html>