index.html 3.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394
  1. <!doctype html>
  2. <html lang="es" xmlns="http://www.w3.org/1999/xhtml" xmlns:th="http://www.thymeleaf.org">
  3. <head>
  4. <meta charset="utf-8">
  5. <meta name="viewport" content="width=device-width, initial-scale=1">
  6. <title>Meetup</title>
  7. <link href="/dist/css/bootstrap.min.css" rel="stylesheet">
  8. </head>
  9. <body>
  10. <header>
  11. <div class="collapse bg-dark" id="navbarHeader">
  12. <div class="container">
  13. </div>
  14. </div>
  15. <div class="navbar navbar-dark bg-dark shadow-sm">
  16. <div class="container">
  17. <div class="dropdown">
  18. <button th:text="#{index.lang}" class="btn btn-secondary dropdown-toggle" type="button" id="dropdownMenuButton1" data-bs-toggle="dropdown" aria-expanded="false"></button>
  19. <ul class="dropdown-menu" aria-labelledby="dropdownMenuButton1">
  20. <li><a class="dropdown-item" href="/?lang=en">EN</a></li>
  21. <li><a class="dropdown-item" href="/?lang=es">ES</a></li>
  22. </ul>
  23. </div>
  24. </div>
  25. </div>
  26. </header>
  27. <main>
  28. <section class="py-5 text-center container">
  29. <div class="row py-lg-5">
  30. <div class="col-lg-6 col-md-8 mx-auto">
  31. <h1 class="fw-light" th:text="#{index.title}">Meetup</h1>
  32. <p>
  33. <span class="btn btn-primary my-2" data-bs-toggle="modal" data-bs-target="#newMeetingModal" th:text="#{index.btn.add}">Add Meeting</span>
  34. </p>
  35. </div>
  36. </div>
  37. </section>
  38. <div class="album py-5 bg-light">
  39. <div class="container">
  40. <div class="row row-cols-1 row-cols-sm-2 row-cols-md-3 g-3">
  41. <div class="col" th:each="item : ${meetings}">
  42. <div class="card shadow-sm">
  43. <div class="card-body">
  44. <p class="card-text" th:text="${item.subject}">Meeting subject</p>
  45. <p class="card-text" th:text="${item.date}">Meeting date</p>
  46. <div class="d-flex justify-content-between align-items-center">
  47. <div class="btn-group">
  48. <a type="button" class="btn btn-sm btn-outline-secondary" th:href="@{'/remove/' + ${item.id}}" th:text="#{index.btn.remove}">Remove</a>
  49. </div>
  50. </div>
  51. </div>
  52. </div>
  53. </div>
  54. </div>
  55. </div>
  56. </div>
  57. </main>
  58. <div class="modal fade" id="newMeetingModal" role="dialog" aria-labelledby="newMeetingModal" aria-hidden="true">
  59. <div class="modal-dialog modal-lg">
  60. <div class="modal-content">
  61. <div class="modal-header">
  62. <h5 class="modal-title">New Meeting</h5>
  63. <button type="button" class="close" data-bs-dismiss="modal" aria-label="Close">
  64. <span aria-hidden="true">&times;</span>
  65. </button>
  66. </div>
  67. <div class="modal-body">
  68. <div class="container-fluid">
  69. <form id="newMeetingForm" enctype='multipart/form-data' method="POST" action="/" style="margin-top:25px;">
  70. <div class="form-group">
  71. <label>Subject</label>
  72. <input class="form-control" type="text" value="" name="subject">
  73. </div>
  74. <div class="form-group">
  75. <label>Date</label>
  76. <input class="form-control" type="text" value="" name="date" placeholder="DD/MM/YYYY HH:MM">
  77. </div>
  78. </form>
  79. </div>
  80. </div>
  81. <div class="modal-footer">
  82. <button type="button" class="btn btn-secondary" data-bs-dismiss="modal">Cancel</button>
  83. <button class="btn btn-success" type="submit" form="newMeetingForm">Confirm</button>
  84. </div>
  85. </div>
  86. </div>
  87. </div>
  88. <script src="/dist/js/bootstrap.bundle.min.js"></script>
  89. </body>
  90. </html>