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.

199 lines
9.2 KiB

5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
  1. <!DOCTYPE html>
  2. <html xmlns:th="http://www.thymeleaf.org">
  3. <head>
  4. <script src="https://code.jquery.com/jquery-2.1.4.min.js" th:if="false"></script>
  5. <script src="http://blackpeppersoftware.github.io/thymeleaf-fragment.js/thymeleaf-fragment.js" defer="defer"
  6. th:if="false"></script>
  7. <div th:replace="fragments/head :: headFragment">
  8. <meta charset="UTF-8">
  9. <title id="pageTitle">Chat</title>
  10. </div>
  11. <script src="./../../javascript/bundle.js" th:src="@{'/js/' + ${@environment.getProperty('chat-bundle')}}"
  12. defer></script>
  13. <link rel="stylesheet" th:href="@{/css/chat.css}" href="../../resources/static/css/chat.css">
  14. </head>
  15. <body>
  16. <div th:include="fragments/navbar :: navbarFragment"></div>
  17. <header id="chat-section" hidden>
  18. <div class="dark-overlay">
  19. <div class="chat-inner container bg-primary">
  20. <div class="row">
  21. <div class="col-sm d-lg-block">
  22. <h1 class="display-4">Chat with your friends</h1>
  23. <div class="d-flex">
  24. <div class="p-4 align-self-start">
  25. </div>
  26. <div class="p-4 align-self-end">
  27. Lorem ipsum dolor sit, amet consectetur adipisicing elit. Laboriosam dolorem nostrum
  28. consequatur eos voluptates. Ipsam ullam quos illo qui. Quaerat corrupti nisi numquam
  29. rerum quasi nesciunt deserunt fugit commodi consequatur!
  30. </div>
  31. </div>
  32. </div>
  33. </div>
  34. </div>
  35. </div>
  36. </header>
  37. <div class="container-fluid h-100 mt-4 pt-4">
  38. <div class="row justify-content-center h-100 mt-3">
  39. <div class="col-md-4 col-xl-3 chat">
  40. <div class="card mb-sm-3 mb-md-0 contacts_card chat-height" id="contactsCard">
  41. <div class="card-header">
  42. <form action="#" id="user-search">
  43. <div class="input-group">
  44. <input type="text" placeholder="Search..." id="user-search-term"
  45. class="form-control search">
  46. <button class="search-cancel" id="user-search-cancel" hidden><i
  47. class="fas fa-times"></i></button>
  48. <div class="input-group-prepend">
  49. <button class="input-group-text search_btn"><i class="fas fa-search"></i></button>
  50. </div>
  51. </div>
  52. </form>
  53. </div>
  54. <div class="card-body contacts_body">
  55. <ui class="contacts" id="contacts-box">
  56. <li class="text-center ">
  57. <div class="spinner-grow spinner-grow-lg text-info "
  58. style="width: 100px; height: 100px;"></div>
  59. </li>
  60. </ui>
  61. </div>
  62. <div class="card-footer"></div>
  63. </div>
  64. </div>
  65. <div class="col-md-8 col-xl-6 chat">
  66. <div class="card chat-height" id="no-user-selected">
  67. <div class="m-auto">
  68. <div class="d-flex justify-content-center">
  69. <div class="align-self-center">
  70. <h2 class="display-4 no-user-selected-h2">Please select a user</h2>
  71. </div>
  72. </div>
  73. </div>
  74. </div>
  75. <div class="card chat-height" id="chat-card" hidden>
  76. <div class="card-header msg_head">
  77. <div class="d-flex bd-highlight">
  78. <div class="img_cont">
  79. <img src="https://static.turbosquid.com/Preview/001292/481/WV/_D.jpg"
  80. class="rounded-circle user_img">
  81. <!-- <span class="online_icon"></span> -->
  82. </div>
  83. <div class="user_info">
  84. <span id="user-name-span">Chat with Khalid</span>
  85. <p id="num-messages-p"></p>
  86. </div>
  87. </div>
  88. <span id="action_menu_btn"><i class="fas fa-ellipsis-v"></i></span>
  89. <div class="action_menu">
  90. <ul>
  91. <li><i class="fas fa-user-circle"></i> View profile</li>
  92. <li><i class="fas fa-users"></i> Add to close friends</li>
  93. <li><i class="fas fa-plus"></i> Add to group</li>
  94. <li><i class="fas fa-ban"></i> Block</li>
  95. </ul>
  96. </div>
  97. </div>
  98. <div class="card-body msg_card_body" id="chat-area-new">
  99. </div>
  100. <div class="card-footer">
  101. <form action="#" th:object="${chatMessageDTO}" method="post" id="chatMessageForm"
  102. class="needs-validation" novalidate>
  103. <div class="input-group">
  104. <div class="input-group-append">
  105. <span class="input-group-text attach_btn"><i class="fas fa-paperclip"
  106. hidden></i></span>
  107. </div>
  108. <textarea name="" id="chatInput" class="form-control type_msg"
  109. placeholder="Type your message..." required></textarea>
  110. <div class="input-group-append">
  111. <button class="input-group-text send_btn"><i
  112. class="fas fa-location-arrow"></i></button>
  113. </div>
  114. </div>
  115. </form>
  116. </div>
  117. </div>
  118. </div>
  119. </div>
  120. </div>
  121. <template id="msg_container_template">
  122. <div class="d-flex justify-content-start mb-4">
  123. <div class="img_cont_msg">
  124. <img src="https://static.turbosquid.com/Preview/001292/481/WV/_D.jpg"
  125. class="rounded-circle user_img_msg">
  126. </div>
  127. <div class="msg msg_container">
  128. {{{message}}}
  129. <span class="msg_time">{{msgDateFormat messageTime}}</span>
  130. </div>
  131. </div>
  132. </template>
  133. <template id="msg_container_send_template">
  134. <div class="d-flex justify-content-end mb-4">
  135. <div class="msg msg_container_send">
  136. {{{message}}}
  137. <span class="msg_time_send">{{msgDateFormat messageTime}}</span>
  138. </div>
  139. <!-- <div class="img_cont_msg">
  140. <img src="https://static.turbosquid.com/Preview/001292/481/WV/_D.jpg"
  141. class="rounded-circle user_img_msg">
  142. </div> -->
  143. {{{avatar}}}
  144. </div>
  145. </template>
  146. <template id="user-contact-online-template">
  147. <li name="user-box" class="user-box">
  148. <div class="d-flex bd-highlight">
  149. <div class="img_cont">
  150. <img src="https://static.turbosquid.com/Preview/001292/481/WV/_D.jpg"
  151. class="rounded-circle user_img">
  152. <span class="online_icon"></span>
  153. </div>
  154. <div class="user_info">
  155. <span class="to-user-span">{{userName}}</span><span> {{{lockIcon unlocked}}}</span>
  156. <p>{{userName}} is online</p>
  157. </div>
  158. <div class="d-flex flex-column ml-auto">
  159. <div class="text-right">{{moment lastMessageTime "MMM DD"}}</div>
  160. <div style="color: rgba(255,255,255,0.7);">{{lastMessageText}}</div>
  161. </div>
  162. </div>
  163. </li>
  164. </template>
  165. <template id="user-contact-offline-template">
  166. <li name="user-box" class="user-box">
  167. <div class="d-flex bd-highlight">
  168. <div class="img_cont">
  169. <img src="https://static.turbosquid.com/Preview/001292/481/WV/_D.jpg"
  170. class="rounded-circle user_img">
  171. </div>
  172. <div class="user_info">
  173. <span class="to-user-span">{{userName}}</span><span> {{{lockIcon unlocked}}}</span>
  174. <p>Last active {{fromNow lastActive}}</p>
  175. </div>
  176. <div class="d-flex flex-column ml-auto">
  177. <div class="text-right">{{moment lastMessageTime "MMM DD"}}</div>
  178. <div style="color: rgba(255,255,255,0.7);">{{lastMessageText}}</div>
  179. </div>
  180. </div>
  181. </li>
  182. </template>
  183. </body>
  184. <script src="../static/js/chatStatic.js" th:if="false"></script>
  185. </html>