Вы не можете выбрать более 25 тем Темы должны начинаться с буквы или цифры, могут содержать дефисы(-) и должны содержать не более 35 символов.

100 строки
4.0KB

  1. <!doctype html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="utf-8" />
  5. <title><?= e($board->name) ?> &mdash; Kanban</title>
  6. <meta name="viewport" content="width=device-width, initial-scale=1" />
  7. <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/css/bootstrap.min.css" rel="stylesheet" />
  8. <link href="https://cdn.jsdelivr.net/npm/bootstrap-icons@1.11.3/font/bootstrap-icons.css" rel="stylesheet" />
  9. <link href="https://fonts.googleapis.com/css2?family=Manrope:wght@400;500;600;700;800&family=Fraunces:opsz,wght@9..144,600&display=swap" rel="stylesheet" />
  10. <link rel="preconnect" href="https://fonts.googleapis.com" />
  11. <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin />
  12. <link href="/css/site.css" rel="stylesheet" />
  13. <link href="/css/kanban.css" rel="stylesheet" />
  14. </head>
  15. <body class="kanban-page">
  16. <!-- Top bar -->
  17. <nav class="navbar navbar-dark rk-topnav px-3 py-2">
  18. <div class="d-flex align-items-center gap-3 flex-grow-1 board-header-main">
  19. <a href="/boards" class="btn btn-sm btn-outline-secondary text-white border-secondary">
  20. <i class="bi bi-arrow-left"></i>
  21. </a>
  22. <span class="navbar-brand mb-0 h5 kanban-board-title"><?= e($board->name) ?></span>
  23. </div>
  24. <div class="board-header-search">
  25. <label for="job-search-input" class="visually-hidden">Search jobs</label>
  26. <div class="input-group input-group-sm">
  27. <span class="input-group-text"><i class="bi bi-search"></i></span>
  28. <input type="search" id="job-search-input" class="form-control"
  29. placeholder="Search job #, name, customer..." autocomplete="off" />
  30. </div>
  31. </div>
  32. <div class="d-flex align-items-center gap-2 board-header-actions">
  33. <button class="btn btn-sm btn-outline-light" id="btn-add-card"
  34. data-board-id="<?= e((string) $board->id) ?>">
  35. <i class="bi bi-plus-lg me-1"></i>Add Card
  36. </button>
  37. <button class="btn btn-sm btn-outline-light" id="btn-settings" title="Board Settings">
  38. <i class="bi bi-gear"></i>
  39. </button>
  40. <a href="/auth/logout" class="btn btn-sm btn-outline-light" title="Sign Out">
  41. <i class="bi bi-box-arrow-right"></i>
  42. </a>
  43. </div>
  44. </nav>
  45. <!-- Kanban grid -->
  46. <div class="kanban-wrapper">
  47. <div class="kanban-grid" id="kanban-grid">
  48. <div class="kanban-corner"></div>
  49. <?php foreach ($columns as $col): ?>
  50. <div class="kanban-col-header" data-col-id="<?= e((string) $col->id) ?>">
  51. <span class="col-label"><?= e($col->name) ?></span>
  52. </div>
  53. <?php endforeach; ?>
  54. <?php foreach ($lanes as $lane): ?>
  55. <div class="kanban-lane-header" data-lane-id="<?= e((string) $lane->id) ?>">
  56. <button type="button" class="lane-toggle"
  57. title="Collapse or expand swim lane"
  58. aria-label="Collapse or expand swim lane"
  59. aria-expanded="true">
  60. <i class="bi bi-chevron-down" aria-hidden="true"></i>
  61. </button>
  62. <span class="lane-label"><?= e($lane->name) ?></span>
  63. </div>
  64. <?php foreach ($columns as $col): ?>
  65. <div class="kanban-cell"
  66. data-col-id="<?= e((string) $col->id) ?>"
  67. data-lane-id="<?= e((string) $lane->id) ?>">
  68. </div>
  69. <?php endforeach; ?>
  70. <?php endforeach; ?>
  71. </div>
  72. </div>
  73. <?php require __DIR__ . '/../partials/card-modal.php'; ?>
  74. <?php require __DIR__ . '/../partials/settings-panel.php'; ?>
  75. <script>
  76. var KANBAN = {
  77. boardId: <?= (int) $board->id ?>,
  78. boardSlug: "<?= e($board->slug) ?>",
  79. cards: <?= $cardsJson ?>
  80. };
  81. var KANBAN_COLS = <?= json_encode(array_map(fn($c) => ['id' => $c->id, 'name' => $c->name, 'position' => $c->position], $columns)) ?>;
  82. var KANBAN_LANES = <?= json_encode(array_map(fn($l) => ['id' => $l->id, 'name' => $l->name, 'position' => $l->position], $lanes)) ?>;
  83. </script>
  84. <script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/js/bootstrap.bundle.min.js"></script>
  85. <script src="https://cdn.jsdelivr.net/npm/sortablejs@1.15.2/Sortable.min.js"></script>
  86. <script src="/js/kanban-modal.js"></script>
  87. <script src="/js/kanban-settings.js"></script>
  88. <script src="/js/kanban-board.js"></script>
  89. </body>
  90. </html>

Powered by TurnKey Linux.