chat.jade 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  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"
  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") {{ message.user.first_name }}
  35. .message(
  36. ng-style="{\
  37. 'border-color': 'hsl({{ hue(message.user) }}, 70%, 70%)',\
  38. 'background-color': 'hsl({{ hue(message.user) }}, 60%, 97%)'\
  39. }"
  40. )
  41. .arrow(ng-style="{'border-color': 'hsl({{ hue(message.user) }}, 70%, 70%)'}")
  42. p(
  43. mathjax,
  44. ng-repeat="content in message.contents track by $index"
  45. ) {{ content }}
  46. .new-message
  47. textarea(
  48. placeholder="#{translate('your_message')}...",
  49. on-enter="sendMessage()",
  50. ng-model="newMessageContent",
  51. ng-click="resetUnreadMessages()"
  52. )