messenger.conversation.html 5.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192
  1. <div id="conversation" class="drag-container">
  2. <drag-file
  3. ng-if="!ctrl.locked"
  4. submit="ctrl.submit"
  5. on-uploading="ctrl.onUploading"></drag-file>
  6. <div id="conversation-header" class="detail-header">
  7. <ng-include src="'partials/messenger.backbutton.html'"></ng-include>
  8. <div class="header-avatar" ng-click="ctrl.showReceiver()">
  9. <eee-avatar eee-type="ctrl.type" eee-receiver="ctrl.receiver"
  10. eee-resolution="'low'"></eee-avatar>
  11. </div>
  12. <div class="header-details" ng-click="ctrl.showReceiver()">
  13. <div class="conversation-header-details-name" ng-bind-html="ctrl.receiver.displayName | escapeHtml | emojify"></div>
  14. <div class="conversation-header-details-detail" ng-if="ctrl.type == 'contact'">
  15. <eee-verification-level ng-if="ctrl.type == 'contact'"
  16. contact="ctrl.receiver"></eee-verification-level>
  17. </div>
  18. <div class="conversation-header-details-detail" ng-if="ctrl.type == 'group'"
  19. title="{{ ctrl.receiver.members | idsToNames }}">
  20. <span>{{ ctrl.receiver.members | idsToNames }}</span>
  21. </div>
  22. </div>
  23. </div>
  24. <div id="conversation-is-private" ng-if="ctrl.locked">
  25. <md-card>
  26. <md-toolbar class="md-warn">
  27. <div class="md-toolbar-tools">
  28. <h2 class="md-flex" translate>messenger.PRIVATE_CHAT</h2>
  29. </div>
  30. </md-toolbar>
  31. <md-card-content>
  32. <span translate>messenger.PRIVATE_CHAT_DESCRIPTION</span>
  33. </md-card-content>
  34. </md-card>
  35. </div>
  36. <div id="conversation-chat" scroll-glue in-view-container ng-show="!ctrl.locked">
  37. <ul class="chat">
  38. <li in-view="$inview && !ctrl.locked && ctrl.topOfChat()" class="load-more">
  39. <div ng-if="ctrl.hasMoreMessages()" class="loading">
  40. <img ng-src="img/spinner.gif" alt="...">
  41. </div>
  42. </li>
  43. <li ng-repeat="message in ctrl.messages" id="message-{{message.id}}">
  44. <eee-message eee-receiver="ctrl.receiver" eee-type="ctrl.type" eee-message="message"
  45. in-view="$inview && !ctrl.locked && ctrl.msgRead(message.id)"
  46. in-view-options="{ considerPageVisibility: true }"></eee-message>
  47. </li>
  48. <li ng-if="ctrl.isTyping()" class="typing-indicator">
  49. <!-- Non status messages -->
  50. <article class="message message-in">
  51. <div class="bubble-triangle"></div>
  52. <section class="message-body text-message-body">
  53. <div class="typing-animation"/>
  54. </section>
  55. </article>
  56. </li>
  57. </ul>
  58. </div>
  59. <div id="scrolljump" ng-click="ctrl.scrollDown()" ng-if="ctrl.showScrollJump && !ctrl.receiver.locked"
  60. translate translate-attr-title="messenger.SCROLL_DOWN">
  61. <svg x="0" y="0" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 50 50" width="100" height="100" style="fill: rgb(66, 66, 66);"><g fill="none" stroke="none" stroke-width="1" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="10" stroke-dasharray="" stroke-dashoffset="0" font-family="sans-serif" font-weight="normal" font-size="12" text-anchor="start" mix-blend-mode="normal"><g><g><path d="M0,50l0,-50l50,0l0,50z" fill="none"/><path d="M25,46.5c-11.87412,0 -21.5,-9.62588 -21.5,-21.5l0,0c0,-11.87412 9.62588,-21.5 21.5,-21.5l0,0c11.87412,0 21.5,9.62588 21.5,21.5l0,0c0,11.87412 -9.62588,21.5 -21.5,21.5z" fill="#ffffff"/><g fill="#424242"><path d="M25,0.16c-13.69656,0 -24.84,11.14344 -24.84,24.84c0,13.69764 11.14344,24.84 24.84,24.84c13.69764,0 24.84,-11.14236 24.84,-24.84c0,-13.69656 -11.14236,-24.84 -24.84,-24.84z M36.56356,22.52356l-10.8,10.8c-0.2106,0.2106 -0.48708,0.31644 -0.76356,0.31644c-0.27648,0 -0.55296,-0.10584 -0.76356,-0.31644l-10.8,-10.8c-0.42228,-0.42228 -0.42228,-1.10484 0,-1.52712c0.42228,-0.42228 1.10484,-0.42228 1.52712,0l10.03644,10.03644l10.03644,-10.03644c0.42228,-0.42228 1.10484,-0.42228 1.52712,0c0.42228,0.42228 0.42228,1.10484 0,1.52712z"/></g></g></g></g></svg>
  62. </div>
  63. <div id="conversation-footer" ng-if="ctrl.isEnabled() && !ctrl.receiver.locked">
  64. <div ng-if="ctrl.isQuoting()" id="conversation-quote">
  65. <eee-message-quote
  66. class="message-quote"
  67. eee-quote="ctrl.getQuote()">
  68. </eee-message-quote>
  69. <md-button aria-label="Cancel Quoting" class="md-icon-button" ng-click="ctrl.cancelQuoting()">
  70. <i class="material-icons md-dark md-24" translate translate-attr-title="common.CANCEL">clear</i>
  71. </md-button>
  72. </div>
  73. <div class="chat-input">
  74. <compose-area
  75. submit="ctrl.submit"
  76. initial-data="ctrl.initialData"
  77. on-typing="ctrl.onTyping"
  78. start-typing="ctrl.startTyping"
  79. stop-typing="ctrl.stopTyping"
  80. on-uploading="ctrl.onUploading"
  81. max-text-length="ctrl.maxTextLength">
  82. </compose-area>
  83. </div>
  84. </div>
  85. </div>