chat.pug 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. aside.chat(
  2. ng-controller="ChatController",
  3. ng-if="!anonymous"
  4. )
  5. .messages(
  6. infinite-scroll="loadMoreMessages()"
  7. infinite-scroll-disabled="chat.loading || chat.atEnd || chat.errored"
  8. infinite-scroll-initialize="ui.chatOpen"
  9. infinite-scroll-upwards="true"
  10. update-scroll-bottom-on="updateScrollPosition"
  11. )
  12. .infinite-scroll-inner
  13. .loading(ng-show="chat.loading")
  14. i.fa.fa-fw.fa-spin.fa-refresh
  15. |   #{translate("loading")}…
  16. .no-messages.text-center.small(ng-show='!chat.loading && chat.messages.length == 0')
  17. | #{translate("no_messages")}
  18. .first-message.text-center(ng-show='!chat.loading && chat.messages.length == 0')
  19. | #{translate("send_first_message")}
  20. br
  21. i.fa.fa-arrow-down
  22. ul.list-unstyled(
  23. ng-click="resetUnreadMessages()"
  24. )
  25. li.message(
  26. ng-repeat="message in chat.messages"
  27. ng-controller="ChatMessageController"
  28. ng-class="{'self': message.user.id == user.id }"
  29. )
  30. div.date(ng-if="$index == 0 || (message.timestamp - chat.messages[$index - 1].timestamp) > 5 * 60 * 1000") {{ message.timestamp | formatDate:'h:mm a' }} {{ message.timestamp | relativeDate }}
  31. div.message-wrapper
  32. .name(ng-if="message.user.id != user.id")
  33. span(ng-if="message.user.first_name") {{ message.user.first_name }}
  34. span(ng-if="!message.user.first_name") {{ message.user.email }}
  35. .message(
  36. ng-style="getMessageStyle(message.user);"
  37. )
  38. .arrow(ng-if="message.user.id != user.id" ng-style="getArrowStyle(message.user)")
  39. .message-content
  40. p(
  41. mathjax,
  42. mathjax-allow-html="true",
  43. ng-repeat="content in message.contents track by $index"
  44. )
  45. span(ng-bind-html="content | linky:'_blank':{rel: 'noreferrer noopener'}")
  46. .new-message
  47. textarea(
  48. placeholder=translate('your_message')+"…",
  49. on-enter="sendMessage()",
  50. ng-model="newMessageContent",
  51. ng-click="resetUnreadMessages()"
  52. )