A self hosted chat application with end-to-end encrypted messaging.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

520 lines
29 KiB

  1. <!DOCTYPE html>
  2. <html xmlns:th="http://www.thymeleaf.org" xmlns:sec="http://www.thymeleaf.org/extras/spring-security">
  3. <head>
  4. <!-- <div th:replace="head :: headFragment">
  5. <meta charset="UTF-8">
  6. <title id="pageTitle">Navbar Fragment</title>
  7. </div> -->
  8. <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.4.1/jquery.min.js" th:if="false"></script>
  9. <script src="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/4.3.1/js/bootstrap.bundle.js"
  10. th:if="false"></script>
  11. <link href="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/4.3.1/css/bootstrap.css" th:if="false"
  12. rel="stylesheet" type="text/css">
  13. <script src="https://code.jquery.com/jquery-2.1.4.min.js" th:if="false"></script>
  14. <script src="http://blackpeppersoftware.github.io/thymeleaf-fragment.js/thymeleaf-fragment.js" defer="defer"
  15. th:if="false"></script>
  16. <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.11.2/css/all.min.css"
  17. th:if="false">
  18. <th:block th:fragment="headFragment">
  19. <!-- <script src="https://code.jquery.com/jquery-3.3.1.min.js"
  20. integrity="sha256-FgpCb/KJQlLNfOu91ta32o/NMZxltwRo8QtmkMRdAu8=" crossorigin="anonymous" defer></script> -->
  21. <script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.7/umd/popper.min.js"
  22. integrity="sha384-UO2eT0CpHqdSJQ6hJty5KVphtPhzWj9WO1clHTMGa3JDZwrnQq4sF86dIHNDz0W1" crossorigin="anonymous"
  23. defer></script>
  24. <script src="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/js/bootstrap.min.js"
  25. integrity="sha384-JjSmVgyd0p3pXB1rRibZUAYoIIy6OrQ6VrjIEaFf/nJGzIxFDsf4x0xIM+B07jRM" crossorigin="anonymous"
  26. defer></script>
  27. <!-- <script src="https://unpkg.com/bootstrap-table@1.17.1/dist/bootstrap-table.min.js" defer></script> -->
  28. <!-- <script src="https://cdnjs.cloudflare.com/ajax/libs/datatables/1.10.21/js/jquery.dataTables.min.js"
  29. integrity="sha512-BkpSL20WETFylMrcirBahHfSnY++H2O1W+UnEEO4yNIl+jI2+zowyoGJpbtk6bx97fBXf++WJHSSK2MV4ghPcg=="
  30. crossorigin="anonymous"></script> -->
  31. <!-- <script src="https://cdnjs.cloudflare.com/ajax/libs/datatables/1.10.21/js/dataTables.bootstrap.min.js"
  32. integrity="sha512-F0E+jKGaUC90odiinxkfeS3zm9uUT1/lpusNtgXboaMdA3QFMUez0pBmAeXGXtGxoGZg3bLmrkSkbK1quua4/Q=="
  33. crossorigin="anonymous"></script> -->
  34. <!-- <link rel="stylesheet"
  35. href="https://cdnjs.cloudflare.com/ajax/libs/datatables/1.10.21/css/dataTables.bootstrap4.min.css"
  36. integrity="sha512-PT0RvABaDhDQugEbpNMwgYBCnGCiTZMh9yOzUsJHDgl/dMhD9yjHAwoumnUk3JydV3QTcIkNDuN40CJxik5+WQ=="
  37. crossorigin="anonymous" /> -->
  38. <!-- <script th:src="@{/js/admin.js}" src="../../static/js/admin.js" defer="defer"></script> -->
  39. <script th:src="@{/js/sb-admin-2.js}" src="../../static/js/sb-admin-2.js" defer="defer"></script>
  40. <link href="https://use.fontawesome.com/releases/v5.6.3/css/all.css" rel="stylesheet">
  41. <link href="http://fonts.googleapis.com/css?family=Roboto:400,700,300" rel="stylesheet" type="text/css">
  42. <link th:href="@{/css/sb-admin-2.css}" href="../../static/css/sb-admin-2.css" rel="stylesheet">
  43. <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css"
  44. integrity="sha384-ggOyR0iXCbMQv3Xipma34MD+dH/1fQ784/j6cY/iJTQUOhcWr7x9JvoRxT2MZw1T" crossorigin="anonymous">
  45. <link rel="stylesheet" href="https://use.fontawesome.com/releases/v5.6.3/css/all.css"
  46. integrity="sha384-UHRtZLI+pbxtHCWp1t77Bi1L4ZtiqrqD80Kn4Z8NTSRyMA2Fd33n5dQ8lWUE00s/" crossorigin="anonymous">
  47. <!-- <link rel="stylesheet" href="https://unpkg.com/bootstrap-table@1.17.1/dist/bootstrap-table.min.css"> -->
  48. <!-- <link rel="stylesheet"
  49. href="https://cdnjs.cloudflare.com/ajax/libs/datatables/1.10.21/css/jquery.dataTables.min.css"
  50. integrity="sha512-1k7mWiTNoyx2XtmI96o+hdjP8nn0f3Z2N4oF/9ZZRgijyV4omsKOXEnqL1gKQNPy2MTSP9rIEWGcH/CInulptA=="
  51. crossorigin="anonymous" /> -->
  52. <!-- <link rel="stylesheet" th:href="@{/css/admin-table.css}" href="../../../resources/static/css/admin-table.css"> -->
  53. <link rel="stylesheet" type="text/css"
  54. href="https://cdn.datatables.net/v/bs4/jszip-2.5.0/dt-1.10.21/b-1.6.2/b-html5-1.6.2/datatables.min.css" />
  55. <script type="text/javascript"
  56. src="https://cdnjs.cloudflare.com/ajax/libs/pdfmake/0.1.36/pdfmake.min.js"></script>
  57. <script type="text/javascript"
  58. src="https://cdnjs.cloudflare.com/ajax/libs/pdfmake/0.1.36/vfs_fonts.js"></script>
  59. <script type="text/javascript"
  60. src="https://cdn.datatables.net/v/bs4/jszip-2.5.0/dt-1.10.21/b-1.6.2/b-html5-1.6.2/datatables.min.js"></script>
  61. <script src="https://cdn.datatables.net/select/1.3.1/js/dataTables.select.min.js"></script>
  62. <link rel="stylesheet" href="https://cdn.datatables.net/select/1.3.1/css/select.dataTables.min.css">
  63. <link th:href="@{/css/admin-custom.css}" href="../../static/css/admin-custom.css" rel="stylesheet">
  64. <script th:src="@{'/js/' + ${@environment.getProperty('admin-bundle')}}" src="../../static/js/adminBundle.js"
  65. defer="defer"></script>
  66. </th:block>
  67. <link href="../../static/css/sb-admin-2.css" rel="stylesheet" th:if="false">
  68. <link href="../../static/css/admin-custom.css" rel="stylesheet" th:if="false">
  69. </head>
  70. <body id="page-top">
  71. <!-- Page Wrapper -->
  72. <div id="wrapper">
  73. <th:block th:fragment="sidebar-fragment">
  74. <!-- Sidebar -->
  75. <ul class="navbar-nav bg-gradient-primary sidebar sidebar-dark accordion" id="accordionSidebar">
  76. <!-- Sidebar - Brand -->
  77. <a class="sidebar-brand d-flex align-items-center justify-content-center" th:href="@{/admin}"
  78. href="../admin/home.html">
  79. <div class="sidebar-brand-icon rotate-n-15">
  80. <i class="fas fa-laugh-wink"></i>
  81. </div>
  82. <div class="sidebar-brand-text mx-3">SB Admin <sup>2</sup></div>
  83. </a>
  84. <!-- Divider -->
  85. <hr class="sidebar-divider my-0">
  86. <!-- Nav Item - Dashboard -->
  87. <li class="nav-item active">
  88. <a class="nav-link" th:href="@{/admin}" href="../admin/home.html">
  89. <i class="fas fa-fw fa-tachometer-alt"></i>
  90. <span>Dashboard</span></a>
  91. </li>
  92. <!-- Divider -->
  93. <hr class="sidebar-divider">
  94. <!-- Heading -->
  95. <div class="sidebar-heading">
  96. Administration
  97. </div>
  98. <!-- Nav Item - Pages Collapse Menu -->
  99. <li class="nav-item">
  100. <a class="nav-link collapsed" href="#" data-toggle="collapse" data-target="#collapseOne"
  101. aria-expanded="true" aria-controls="collapseTwo">
  102. <i class="fas fa-fw fa-cog"></i>
  103. <span>Users</span>
  104. </a>
  105. <div id="collapseOne" class="collapse" aria-labelledby="headingTwo" data-parent="#accordionSidebar">
  106. <div class="bg-dark py-2 collapse-inner rounded">
  107. <h6 class="collapse-header">Settings:</h6>
  108. <a class="collapse-item" th:href="@{/admin/change-passphrase}"
  109. href="../admin/change-passphrase.html">Change Passphrase</a>
  110. <a class="collapse-item" th:href="@{/admin/users}">View users</a>
  111. </div>
  112. </div>
  113. </li>
  114. <!-- Divider -->
  115. <hr class="sidebar-divider">
  116. <!-- Heading -->
  117. <div class="sidebar-heading">
  118. Interface
  119. </div>
  120. <!-- Nav Item - Pages Collapse Menu -->
  121. <li class="nav-item">
  122. <a class="nav-link collapsed" href="#" data-toggle="collapse" data-target="#collapseTwo"
  123. aria-expanded="true" aria-controls="collapseTwo">
  124. <i class="fas fa-fw fa-cog"></i>
  125. <span>Components</span>
  126. </a>
  127. <div id="collapseTwo" class="collapse" aria-labelledby="headingTwo" data-parent="#accordionSidebar">
  128. <div class="bg-dark py-2 collapse-inner rounded">
  129. <h6 class="collapse-header">Custom Components:</h6>
  130. <a class="collapse-item" href="buttons.html"> <span class="text-white"> Buttons </span></a>
  131. <a class="collapse-item" href="cards.html"> <span class="text-white"> Cards </span></a>
  132. </div>
  133. </div>
  134. </li>
  135. <!-- Nav Item - Utilities Collapse Menu -->
  136. <li class="nav-item">
  137. <a class="nav-link collapsed" href="#" data-toggle="collapse" data-target="#collapseUtilities"
  138. aria-expanded="true" aria-controls="collapseUtilities">
  139. <i class="fas fa-fw fa-wrench"></i>
  140. <span>Utilities</span>
  141. </a>
  142. <div id="collapseUtilities" class="collapse" aria-labelledby="headingUtilities"
  143. data-parent="#accordionSidebar">
  144. <div class="bg-dark py-2 collapse-inner rounded">
  145. <h6 class="collapse-header">Custom Utilities:</h6>
  146. <a class="collapse-item" href="utilities-color.html">Colors</a>
  147. <a class="collapse-item" href="utilities-border.html">Borders</a>
  148. <a class="collapse-item" href="utilities-animation.html">Animations</a>
  149. <a class="collapse-item" href="utilities-other.html">Other</a>
  150. </div>
  151. </div>
  152. </li>
  153. <!-- Divider -->
  154. <hr class="sidebar-divider">
  155. <!-- Heading -->
  156. <div class="sidebar-heading">
  157. Addons
  158. </div>
  159. <!-- Nav Item - Pages Collapse Menu -->
  160. <li class="nav-item">
  161. <a class="nav-link collapsed" href="#" data-toggle="collapse" data-target="#collapsePages"
  162. aria-expanded="true" aria-controls="collapsePages">
  163. <i class="fas fa-fw fa-folder"></i>
  164. <span>Pages</span>
  165. </a>
  166. <div id="collapsePages" class="collapse" aria-labelledby="headingPages"
  167. data-parent="#accordionSidebar">
  168. <div class="bg-dark py-2 collapse-inner rounded">
  169. <h6 class="collapse-header">Login Screens:</h6>
  170. <a class="collapse-item" href="login.html">Login</a>
  171. <a class="collapse-item" href="register.html">Register</a>
  172. <a class="collapse-item" href="forgot-password.html">Forgot Password</a>
  173. <div class="collapse-divider"></div>
  174. <h6 class="collapse-header">Other Pages:</h6>
  175. <a class="collapse-item" href="404.html">404 Page</a>
  176. <a class="collapse-item" href="blank.html">Blank Page</a>
  177. </div>
  178. </div>
  179. </li>
  180. <!-- Nav Item - Charts -->
  181. <li class="nav-item">
  182. <a class="nav-link" href="charts.html">
  183. <i class="fas fa-fw fa-chart-area"></i>
  184. <span>Charts</span></a>
  185. </li>
  186. <!-- Nav Item - Tables -->
  187. <li class="nav-item">
  188. <a class="nav-link" href="tables.html">
  189. <i class="fas fa-fw fa-table"></i>
  190. <span>Tables</span></a>
  191. </li>
  192. <!-- Divider -->
  193. <hr class="sidebar-divider d-none d-md-block">
  194. <!-- Sidebar Toggler (Sidebar) -->
  195. <div class="text-center d-none d-md-inline">
  196. <button class="rounded-circle border-0" id="sidebarToggle"></button>
  197. </div>
  198. </ul>
  199. <!-- End of Sidebar -->
  200. </th:block>
  201. <!-- Content Wrapper -->
  202. <div id="content-wrapper" class="d-flex flex-column">
  203. <!-- Main Content -->
  204. <div id="content">
  205. <th:block th:fragment="topbar-fragment">
  206. <!-- Topbar -->
  207. <nav class="navbar navbar-expand navbar-dark bg-dark topbar mb-4 static-top shadow">
  208. <!-- Sidebar Toggle (Topbar) -->
  209. <button id="sidebarToggleTop" class="btn btn-link d-md-none rounded-circle mr-3">
  210. <i class="fa fa-bars"></i>
  211. </button>
  212. <!-- Topbar Search -->
  213. <form
  214. class="d-none d-sm-inline-block form-inline mr-auto ml-md-3 my-2 my-md-0 mw-100 navbar-search">
  215. <div class="input-group">
  216. <input type="text" class="form-control bg-light border-0 small"
  217. placeholder="Search for..." aria-label="Search" aria-describedby="basic-addon2">
  218. <div class="input-group-append">
  219. <button class="btn btn-primary" type="button">
  220. <i class="fas fa-search fa-sm"></i>
  221. </button>
  222. </div>
  223. </div>
  224. </form>
  225. <!-- <div th:include="fragments/navbar :: navbarContent"></div> -->
  226. <!-- Topbar Navbar -->
  227. <ul class="navbar-nav ml-auto">
  228. <!-- Nav Item - Search Dropdown (Visible Only XS) -->
  229. <li class="nav-item dropdown no-arrow d-sm-none">
  230. <a class="nav-link dropdown-toggle" href="#" id="searchDropdown" role="button"
  231. data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
  232. <i class="fas fa-search fa-fw"></i>
  233. </a>
  234. <!-- Dropdown - Messages -->
  235. <div class="dropdown-menu dropdown-menu-right p-3 shadow animated--grow-in"
  236. aria-labelledby="searchDropdown">
  237. <form class="form-inline mr-auto w-100 navbar-search">
  238. <div class="input-group">
  239. <input type="text" class="form-control bg-light border-0 small"
  240. placeholder="Search for..." aria-label="Search"
  241. aria-describedby="basic-addon2">
  242. <div class="input-group-append">
  243. <button class="btn btn-primary" type="button">
  244. <i class="fas fa-search fa-sm"></i>
  245. </button>
  246. </div>
  247. </div>
  248. </form>
  249. </div>
  250. </li>
  251. <div class="d-none d-lg-block" th:include="fragments/navbar :: navbarContent"></div>
  252. <th:block th:if="false">
  253. <th:block th:include="navbar :: navbarContent" class="d-none d-lg-block"></th:block>
  254. </th:block>
  255. <!-- <th:block th:include="fragments/navbar :: navbarFragment"></th:block> -->
  256. <!-- Nav Item - Alerts -->
  257. <li class="nav-item dropdown no-arrow mx-1">
  258. <a class="nav-link dropdown-toggle" href="#" id="alertsDropdown" role="button"
  259. data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
  260. <i class="fas fa-bell fa-fw"></i>
  261. <!-- Counter - Alerts -->
  262. <span class="badge badge-danger badge-counter">3+</span>
  263. </a>
  264. <!-- Dropdown - Alerts -->
  265. <div class="dropdown-list dropdown-menu dropdown-menu-right shadow animated--grow-in"
  266. aria-labelledby="alertsDropdown">
  267. <h6 class="dropdown-header">
  268. Alerts Center
  269. </h6>
  270. <a class="dropdown-item d-flex align-items-center" href="#">
  271. <div class="mr-3">
  272. <div class="icon-circle bg-primary">
  273. <i class="fas fa-file-alt text-white"></i>
  274. </div>
  275. </div>
  276. <div>
  277. <div class="small text-gray-500">December 12, 2019</div>
  278. <span class="font-weight-bold">A new monthly report is ready to
  279. download!</span>
  280. </div>
  281. </a>
  282. <a class="dropdown-item d-flex align-items-center" href="#">
  283. <div class="mr-3">
  284. <div class="icon-circle bg-success">
  285. <i class="fas fa-donate text-white"></i>
  286. </div>
  287. </div>
  288. <div>
  289. <div class="small text-gray-500">December 7, 2019</div>
  290. $290.29 has been deposited into your account!
  291. </div>
  292. </a>
  293. <a class="dropdown-item d-flex align-items-center" href="#">
  294. <div class="mr-3">
  295. <div class="icon-circle bg-warning">
  296. <i class="fas fa-exclamation-triangle text-white"></i>
  297. </div>
  298. </div>
  299. <div>
  300. <div class="small text-gray-500">December 2, 2019</div>
  301. Spending Alert: We've noticed unusually high spending for your account.
  302. </div>
  303. </a>
  304. <a class="dropdown-item text-center small text-gray-500" href="#">Show All
  305. Alerts</a>
  306. </div>
  307. </li>
  308. <!-- Nav Item - Messages -->
  309. <li class="nav-item dropdown no-arrow mx-1">
  310. <a class="nav-link dropdown-toggle" href="#" id="messagesDropdown" role="button"
  311. data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
  312. <i class="fas fa-envelope fa-fw"></i>
  313. <!-- Counter - Messages -->
  314. <span class="badge badge-danger badge-counter">7</span>
  315. </a>
  316. <!-- Dropdown - Messages -->
  317. <div class="dropdown-list dropdown-menu dropdown-menu-right shadow animated--grow-in"
  318. aria-labelledby="messagesDropdown">
  319. <h6 class="dropdown-header">
  320. Message Center
  321. </h6>
  322. <a class="dropdown-item d-flex align-items-center" href="#">
  323. <div class="dropdown-list-image mr-3">
  324. <img class="rounded-circle"
  325. src="https://source.unsplash.com/fn_BT9fwg_E/60x60" alt="">
  326. <div class="status-indicator bg-success"></div>
  327. </div>
  328. <div class="font-weight-bold">
  329. <div class="text-truncate">Hi there! I am wondering if you can help me with
  330. a problem I've been having.</div>
  331. <div class="small text-gray-500">Emily Fowler · 58m</div>
  332. </div>
  333. </a>
  334. <a class="dropdown-item d-flex align-items-center" href="#">
  335. <div class="dropdown-list-image mr-3">
  336. <img class="rounded-circle"
  337. src="https://source.unsplash.com/AU4VPcFN4LE/60x60" alt="">
  338. <div class="status-indicator"></div>
  339. </div>
  340. <div>
  341. <div class="text-truncate">I have the photos that you ordered last month,
  342. how would you like them sent to you?</div>
  343. <div class="small text-gray-500">Jae Chun · 1d</div>
  344. </div>
  345. </a>
  346. <a class="dropdown-item d-flex align-items-center" href="#">
  347. <div class="dropdown-list-image mr-3">
  348. <img class="rounded-circle"
  349. src="https://source.unsplash.com/CS2uCrpNzJY/60x60" alt="">
  350. <div class="status-indicator bg-warning"></div>
  351. </div>
  352. <div>
  353. <div class="text-truncate">Last month's report looks great, I am very happy
  354. with the progress so far, keep up the good work!</div>
  355. <div class="small text-gray-500">Morgan Alvarez · 2d</div>
  356. </div>
  357. </a>
  358. <a class="dropdown-item d-flex align-items-center" href="#">
  359. <div class="dropdown-list-image mr-3">
  360. <img class="rounded-circle"
  361. src="https://source.unsplash.com/Mv9hjnEUHR4/60x60" alt="">
  362. <div class="status-indicator bg-success"></div>
  363. </div>
  364. <div>
  365. <div class="text-truncate">Am I a good boy? The reason I ask is because
  366. someone told me that people say this to all dogs, even if they aren't
  367. good...</div>
  368. <div class="small text-gray-500">Chicken the Dog · 2w</div>
  369. </div>
  370. </a>
  371. <a class="dropdown-item text-center small text-gray-500" href="#">Read More
  372. Messages</a>
  373. </div>
  374. </li>
  375. <div class="topbar-divider d-none d-sm-block"></div>
  376. <!-- Nav Item - User Information -->
  377. <li class="nav-item dropdown no-arrow">
  378. <a class="nav-link dropdown-toggle" href="#" id="userDropdown" role="button"
  379. data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
  380. <span class="mr-2 d-none d-lg-inline text-white small" th:text="${#authentication.name}">Valerie Luna</span>
  381. <img class="img-profile rounded-circle" src="https://source.unsplash.com/QAB-WJcbgJk/60x60">
  382. </a>
  383. <!-- Dropdown - User Information -->
  384. <div class="dropdown-menu dropdown-menu-right shadow animated--grow-in" aria-labelledby="userDropdown">
  385. <a class="dropdown-item" href="#">
  386. <i class="fas fa-user fa-sm fa-fw mr-2 text-gray-400"></i> Profile
  387. </a>
  388. <a class="dropdown-item" href="#">
  389. <i class="fas fa-cogs fa-sm fa-fw mr-2 text-gray-400"></i> Settings
  390. </a>
  391. <a class="dropdown-item" href="#">
  392. <i class="fas fa-list fa-sm fa-fw mr-2 text-gray-400"></i> Activity Log
  393. </a>
  394. <div class="dropdown-divider"></div>
  395. <a class="dropdown-item" href="#" data-toggle="modal" data-target="#logoutModal">
  396. <i class="fas fa-sign-out-alt fa-sm fa-fw mr-2 text-gray-400"></i> Logout
  397. </a>
  398. </div>
  399. </li>
  400. </ul>
  401. </nav>
  402. <!-- End of Topbar -->
  403. </th:block>
  404. <!-- Begin Page Content -->
  405. <div class="container-fluid">
  406. <!-- Page Heading -->
  407. <h1 class="h3 mb-4 text-gray-800">Blank Page</h1>
  408. </div>
  409. <!-- /.container-fluid -->
  410. </div>
  411. <!-- End of Main Content -->
  412. <th:block th:fragment="footer">
  413. <!-- Footer -->
  414. <footer class="sticky-footer bg-dark">
  415. <div class="container my-auto">
  416. <div class="copyright text-center my-auto">
  417. <span class="text-white">Copyright &copy; Your Website 2019</span>
  418. </div>
  419. </div>
  420. </footer>
  421. <!-- End of Footer -->
  422. </th:block>
  423. </div>
  424. <!-- End of Content Wrapper -->
  425. </div>
  426. <!-- End of Page Wrapper -->
  427. <th:block th:fragment="modal">
  428. <!-- Scroll to Top Button-->
  429. <a class="scroll-to-top rounded" href="#page-top">
  430. <i class="fas fa-angle-up"></i>
  431. </a>
  432. <!-- Logout Modal-->
  433. <div class="modal fade" id="logoutModal" tabindex="-1" role="dialog" aria-labelledby="exampleModalLabel" aria-hidden="true">
  434. <div class="modal-dialog" role="document">
  435. <div class="modal-content bg-primary">
  436. <div class="modal-header">
  437. <h5 class="modal-title" id="exampleModalLabel">Ready to Leave?</h5>
  438. <button class="close" type="button" data-dismiss="modal" aria-label="Close">
  439. <span aria-hidden="true">×</span>
  440. </button>
  441. </div>
  442. <div class="modal-body">Select "Logout" below if you are ready to end your current session.</div>
  443. <div class="modal-footer">
  444. <button class="btn btn-secondary" type="button" data-dismiss="modal">Cancel</button>
  445. <a class="btn btn-danger" href="login.html">Logout</a>
  446. </div>
  447. </div>
  448. </div>
  449. </div>
  450. </th:block>
  451. </body>
  452. </html>