chat.pug 2.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  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="{\
  39. 'border-color': 'hsl({{ hue(message.user) }}, 70%, 70%)',\
  40. 'background-color': 'hsl({{ hue(message.user) }}, 60%, 97%)'\
  41. }"
  42. )
  43. .arrow(ng-style="{'border-color': 'hsl({{ hue(message.user) }}, 70%, 70%)'}")
  44. .message-content
  45. p(
  46. mathjax,
  47. ng-repeat="content in message.contents track by $index"
  48. )
  49. span(ng-bind-html="content | linky:'_blank'")
  50. .new-message
  51. textarea(
  52. placeholder=translate('your_message')+"...",
  53. on-enter="sendMessage()",
  54. ng-model="newMessageContent",
  55. ng-click="resetUnreadMessages()"
  56. )