chat.jade 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839
  1. aside.chat(
  2. ng-controller="ChatController"
  3. )
  4. .messages(
  5. infinite-scroll="loadMoreMessages()"
  6. infinite-scroll-disabled="chat.loading || chat.atEnd"
  7. infinite-scroll-initialize="ui.chatOpen"
  8. infinite-scroll-upwards="true"
  9. update-scroll-bottom-on="updateScrollPosition"
  10. )
  11. .infinite-scroll-inner
  12. .loading(ng-show="chat.loading")
  13. i.fa.fa-fw.fa-spin.fa-refresh
  14. | Loading...
  15. ul.list-unstyled
  16. li.message(
  17. ng-repeat="message in chat.messages"
  18. ng-controller="ChatMessageController"
  19. ng-class="{'self': message.user.id == user.id }"
  20. )
  21. div.date(ng-if="$index == 0 || (message.timestamp - chat.messages[$index - 1].timestamp) > 5 * 60 * 1000")
  22. {{ message.timestamp | formatDate:'h:mm a' }} {{ message.timestamp | relativeDate }}
  23. span.avatar
  24. img(ng-src="{{message.user.gravatar_url}}")
  25. div.message-wrapper
  26. .name(ng-if="message.user.id != user.id") {{ message.user.first_name }}
  27. .message(
  28. ng-style="{\
  29. 'border-color': 'hsl({{ hue(message.user) }}, 60%, 80%)',\
  30. 'background-color': 'hsl({{ hue(message.user) }}, 60%, 97%)'\
  31. }"
  32. )
  33. .arrow(ng-style="{'border-color': 'hsl({{ hue(message.user) }}, 60%, 80%)'}")
  34. p(ng-repeat="content in message.contents track by $index") {{ content }}
  35. .new-message
  36. textarea(placeholder="Your message...", on-enter="sendMessage()", ng-model="newMessageContent")