1
0

layout.php 3.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  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. <link rel="stylesheet" href="/assets/css/app.css">
  17. <link rel="stylesheet"
  18. href="https://code.jquery.com/ui/1.13.3/themes/base/jquery-ui.css">
  19. <script src="https://code.jquery.com/jquery-3.7.1.min.js"></script>
  20. <script src="https://code.jquery.com/ui/1.13.3/jquery-ui.min.js"></script>
  21. <script src="/assets/js/app.js" defer></script>
  22. </head>
  23. <body class="bg-slate-50 text-slate-900 antialiased">
  24. <header class="border-b bg-white">
  25. <div class="max-w-7xl mx-auto px-4 py-3 flex items-center gap-4">
  26. <a href="/" class="font-semibold tracking-tight">Sprint Planner</a>
  27. <nav class="ml-auto flex items-center gap-4 text-sm">
  28. <?php if ($currentUser !== null): ?>
  29. <a href="/" class="text-slate-600 hover:text-slate-900 hover:underline">Sprints</a>
  30. <?php if ($currentUser->isAdmin): ?>
  31. <a href="/workers" class="text-slate-600 hover:text-slate-900 hover:underline">Workers</a>
  32. <a href="/users" class="text-slate-600 hover:text-slate-900 hover:underline">Users</a>
  33. <a href="/sprints/new" class="text-slate-600 hover:text-slate-900 hover:underline">New sprint</a>
  34. <a href="/audit" class="text-slate-600 hover:text-slate-900 hover:underline">Audit log</a>
  35. <?php endif; ?>
  36. <span class="text-slate-400">·</span>
  37. <span class="text-slate-600">
  38. <?= e($currentUser->displayName) ?>
  39. <?php if ($currentUser->isAdmin): ?>
  40. <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>
  41. <?php endif; ?>
  42. </span>
  43. <form method="post" action="/auth/logout" class="inline">
  44. <input type="hidden" name="_csrf" value="<?= e($csrfToken) ?>">
  45. <button type="submit"
  46. class="text-slate-600 hover:text-slate-900 hover:underline">
  47. Sign out
  48. </button>
  49. </form>
  50. <?php else: ?>
  51. <a href="/auth/login"
  52. class="text-blue-700 hover:underline">Sign in</a>
  53. <?php endif; ?>
  54. </nav>
  55. </div>
  56. </header>
  57. <main class="max-w-7xl mx-auto px-4 py-6">
  58. <?= $content ?>
  59. </main>
  60. </body>
  61. </html>