Messages.vue 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  1. <template>
  2. <div v-if="!messages">
  3. <p>No messages available...</p>
  4. </div>
  5. <div v-else>
  6. <p>Messages:</p>
  7. <div
  8. v-for="(message, index) in messages"
  9. v-bind:key="index"
  10. class="message"
  11. >
  12. <p>🗨 {{ message.content }}</p>
  13. <small>
  14. <span style="display: none;"
  15. >{{ message.interactionId }} {{ message.eventId }}</span
  16. >
  17. {{ message.subject }} {{ message.date }}
  18. </small>
  19. <ul>
  20. <li v-for="(file, index) in message.attachments" v-bind:key="index">
  21. <FileDownload
  22. v-bind:endpoint="downloadService"
  23. v-bind:filename="file.filename"
  24. v-bind:id="file.id"
  25. ></FileDownload>
  26. </li>
  27. </ul>
  28. </div>
  29. </div>
  30. </template>
  31. <script>
  32. import FileDownload from "@/components/FileDownload.vue";
  33. import { mapGetters } from "vuex";
  34. export default {
  35. name: "Messages",
  36. components: {
  37. FileDownload
  38. },
  39. props: ["messages"],
  40. computed: {
  41. ...mapGetters(["api", "readonly"]),
  42. downloadService: function() {
  43. return this.api.download;
  44. }
  45. }
  46. };
  47. </script>
  48. <style scoped>
  49. .message {
  50. margin: 10px 0;
  51. padding: 0 10px;
  52. }
  53. .message p {
  54. background-color: #eeeeee;
  55. border-radius: 4px 10px;
  56. font-size: 120%;
  57. }
  58. .message small {
  59. margin-left: 2%;
  60. font-weight: bold;
  61. }
  62. .message ul {
  63. font-size: 85%;
  64. font-weight: bold;
  65. }
  66. </style>