chat.pug 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  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. span.avatar
  32. img(ng-src="{{message.user.gravatar_url}}?d=mm&s=50")
  33. div.message-wrapper
  34. .name(ng-if="message.user.id != user.id")
  35. span(ng-if="message.user.first_name") {{ message.user.first_name }}
  36. span(ng-if="!message.user.first_name") {{ message.user.email }}
  37. .message(
  38. ng-style="getMessageStyle(message.user);"
  39. )
  40. .arrow(ng-style="getArrowStyle(message.user)")
  41. .message-content
  42. p(
  43. mathjax,
  44. mathjax-allow-html="true",
  45. ng-repeat="content in message.contents track by $index"
  46. )
  47. span(ng-bind-html="content | linky:'_blank':{rel: 'noreferrer noopener'}")
  48. .new-message
  49. textarea(
  50. placeholder=translate('your_message')+"...",
  51. on-enter="sendMessage()",
  52. ng-model="newMessageContent",
  53. ng-click="resetUnreadMessages()"
  54. )