message_media.html 3.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283
  1. <!-- Thumbnail -->
  2. <!-- Images, Gifs & Videos -->
  3. <span class="in-view-indicator" in-view="ctrl.thumbnailInView($inview)"></span>
  4. <div ng-if="ctrl.uploading">
  5. <! -- Loading indicator -->
  6. <div class="circle active center">
  7. <i class="material-icons md-24">file_upload</i>
  8. <div class="loading active"></div>
  9. </div>
  10. </div>
  11. <div ng-if="!ctrl.uploading">
  12. <div ng-if="ctrl.showThumbnail" class="thumbnail {{ctrl.type}}" ng-click="ctrl.download()" ng-style="ctrl.thumbnailStyle">
  13. <div class="loading-wrapper" ng-class="{active: ctrl.downloading || ctrl.thumbnailDownloading}">
  14. <div class="loading"></div>
  15. <div class="loading-text" translate>messenger.DOWNLOADING</div>
  16. </div>
  17. <div class="overlay video" ng-if="ctrl.type === 'video' && !ctrl.downloading">
  18. <i class="material-icons md-light">play_circle_outline</i>
  19. </div>
  20. <div class="overlay gif" ng-if="ctrl.type === 'file' && ctrl.message.file.type === 'image/gif' && !ctrl.downloading">
  21. <i class="material-icons md-light">play_circle_outline</i>
  22. </div>
  23. <img ng-if="ctrl.thumbnail !== null" ng-src="{{ctrl.thumbnail}}">
  24. <div ng-if="ctrl.message.thumbnail != undefined" class="thumbnail-loader">
  25. <img ng-src="{{ ctrl.message.thumbnail.preview | bufferToUrl: 'image/png' }}">
  26. </div>
  27. </div>
  28. <!-- Location -->
  29. <location ng-if="ctrl.type === 'location'" location="ctrl.location"></location>
  30. <!-- Audio file -->
  31. <div class="file-message" ng-if="ctrl.type === 'audio'">
  32. <! -- Loading indicator -->
  33. <div class="circle" ng-click="ctrl.download()"
  34. ng-class="{active: !ctrl.downloading}"
  35. ng-if="!ctrl.downloaded">
  36. <i class="material-icons md-24">file_download</i>
  37. <div class="loading" ng-class="{active: ctrl.downloading}"></div>
  38. </div>
  39. <! -- Play Indicator -->
  40. <div class="circle" ng-click="ctrl.download()" ng-if="ctrl.downloaded">
  41. <i class="material-icons md-24">play_arrow</i>
  42. </div>
  43. <div class="info" translate>messageTypes.AUDIO_MESSAGE</div>
  44. </div>
  45. <!-- Anim GIF -->
  46. <div class="animgif" ng-if="ctrl.downloaded && ctrl.isAnimGif">
  47. <img ng-src="{{ ctrl.blobBuffer | bufferToUrl: 'image/gif'}}" />
  48. </div>
  49. <!-- Other file messages -->
  50. <div class="file-message" ng-if="ctrl.type === 'file' && !ctrl.isAnimGif" ng-click="ctrl.download()">
  51. <! -- Loading indicator -->
  52. <div class="circle"
  53. ng-class="{active: !ctrl.downloading}"
  54. ng-if="!ctrl.downloaded"
  55. ng-style="{'background-image': 'url({{ctrl.message.thumbnail.preview | bufferToUrl: 'image/png'}})' }">
  56. <i class="material-icons md-24">file_download</i>
  57. <div class="loading" ng-class="{active: ctrl.downloading}"></div>
  58. </div>
  59. <! -- Open Indicator -->
  60. <div class="circle"
  61. ng-if="ctrl.downloaded && ctrl.message.thumbnail.preview !== undefined"
  62. ng-style="{'background-image': 'url({{ctrl.message.thumbnail.preview | bufferToUrl: 'image/png'}})' }">
  63. </div>
  64. <div class="circle"
  65. ng-if="ctrl.downloaded && ctrl.message.thumbnail.preview == undefined">
  66. <img ng-src="{{ ctrl.message.file.type | mimeType: false }}"/>
  67. </div>
  68. <div class="info">
  69. <p>{{ctrl.message.file.name}}</p>
  70. <p>{{ctrl.message.file.type | mimeType: true}}</p>
  71. <p>{{ctrl.message.file.size | fileSize}}</p>
  72. </div>
  73. </div>
  74. </div>
  75. <!-- Ballot -->
  76. <span ng-if="ctrl.type === 'ballot'"><em>Ballot messages are not yet supported.</em></span> <!-- TODO -->