Vous ne pouvez pas sélectionner plus de 25 sujets Les noms de sujets doivent commencer par une lettre ou un nombre, peuvent contenir des tirets ('-') et peuvent comporter jusqu'à 35 caractères.

108 lignes
3.4KB

  1. <div class="row mb-4 align-items-center">
  2. <div class="col">
  3. <h1 class="h3 mb-0">Dashboard</h1>
  4. </div>
  5. <div class="col-auto">
  6. <a href="/boards/create" class="btn btn-primary btn-sm">
  7. <i class="bi bi-plus-lg me-1"></i>New Board
  8. </a>
  9. </div>
  10. </div>
  11. <!-- Summary stat cards -->
  12. <div class="row g-3 mb-4">
  13. <div class="col-6 col-md-3">
  14. <div class="card text-center shadow-sm h-100">
  15. <div class="card-body py-4">
  16. <div class="display-5 fw-bold text-primary"><%= totalBoards %></div>
  17. <div class="text-muted small mt-1">
  18. <i class="bi bi-kanban me-1"></i>Boards
  19. </div>
  20. </div>
  21. </div>
  22. </div>
  23. <div class="col-6 col-md-3">
  24. <div class="card text-center shadow-sm h-100">
  25. <div class="card-body py-4">
  26. <div class="display-5 fw-bold text-success"><%= totalCards %></div>
  27. <div class="text-muted small mt-1">
  28. <i class="bi bi-card-text me-1"></i>Total Cards
  29. </div>
  30. </div>
  31. </div>
  32. </div>
  33. </div>
  34. <!-- Per-board breakdown -->
  35. <div class="row">
  36. <div class="col-lg-8">
  37. <div class="card shadow-sm">
  38. <div class="card-header fw-semibold">
  39. <i class="bi bi-bar-chart-line me-1"></i>Cards per Board
  40. </div>
  41. <% If boardSummaries.Count = 0 Then %>
  42. <div class="card-body text-muted">
  43. No boards yet. <a href="/boards/create">Create one</a> to get started.
  44. </div>
  45. <% Else %>
  46. <div class="table-responsive">
  47. <table class="table table-hover align-middle mb-0">
  48. <thead class="table-light">
  49. <tr>
  50. <th>Board</th>
  51. <th class="text-end" style="width:100px">Cards</th>
  52. <th style="width:90px"></th>
  53. </tr>
  54. </thead>
  55. <tbody>
  56. <%
  57. Dim summaryIter : Set summaryIter = boardSummaries.Iterator()
  58. Do While summaryIter.HasNext()
  59. Dim summary : Set summary = summaryIter.GetNext()
  60. Dim cardCount : cardCount = CLng(summary("card_count"))
  61. %>
  62. <tr>
  63. <td>
  64. <a href="/board/<%= H(summary("slug")) %>" class="text-decoration-none fw-medium">
  65. <%= H(summary("name")) %>
  66. </a>
  67. </td>
  68. <td class="text-end">
  69. <% If cardCount = 0 Then %>
  70. <span class="text-muted">—</span>
  71. <% Else %>
  72. <span class="badge bg-secondary rounded-pill"><%= cardCount %></span>
  73. <% End If %>
  74. </td>
  75. <td class="text-end">
  76. <a href="/board/<%= H(summary("slug")) %>" class="btn btn-sm btn-outline-primary">
  77. Open
  78. </a>
  79. </td>
  80. </tr>
  81. <% Loop %>
  82. </tbody>
  83. </table>
  84. </div>
  85. <% End If %>
  86. </div>
  87. </div>
  88. <div class="col-lg-4 mt-3 mt-lg-0">
  89. <div class="card shadow-sm">
  90. <div class="card-header fw-semibold">
  91. <i class="bi bi-lightning me-1"></i>Quick Links
  92. </div>
  93. <div class="list-group list-group-flush">
  94. <a href="/boards" class="list-group-item list-group-item-action">
  95. <i class="bi bi-kanban me-2 text-muted"></i>All Boards
  96. </a>
  97. <a href="/boards/create" class="list-group-item list-group-item-action">
  98. <i class="bi bi-plus-circle me-2 text-muted"></i>New Board
  99. </a>
  100. </div>
  101. </div>
  102. </div>
  103. </div>

Powered by TurnKey Linux.