@saooti/octopus-sdk 37.0.6 → 37.0.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (236) hide show
  1. package/README.md +2 -2
  2. package/index.ts +22 -22
  3. package/package.json +26 -22
  4. package/src/App.vue +69 -60
  5. package/src/api/classicCrud.ts +12 -12
  6. package/src/api/initialize.ts +1 -1
  7. package/src/assets/transition.scss +34 -22
  8. package/src/components/display/aggregator/RssSection.vue +3 -3
  9. package/src/components/display/categories/CategoryChooser.vue +73 -60
  10. package/src/components/display/categories/CategoryFilter.vue +134 -90
  11. package/src/components/display/categories/CategoryList.vue +76 -62
  12. package/src/components/display/comments/AddCommentModal.vue +44 -44
  13. package/src/components/display/comments/CommentBasicView.vue +38 -30
  14. package/src/components/display/comments/CommentInput.vue +121 -106
  15. package/src/components/display/comments/CommentItem.vue +144 -102
  16. package/src/components/display/comments/CommentList.vue +117 -85
  17. package/src/components/display/comments/CommentParentInfo.vue +18 -15
  18. package/src/components/display/comments/CommentPlayer.vue +39 -41
  19. package/src/components/display/comments/CommentSection.vue +68 -53
  20. package/src/components/display/edit/EditBox.vue +7 -7
  21. package/src/components/display/edit/EditBoxRadio.vue +3 -4
  22. package/src/components/display/edit/EditCommentBox.vue +34 -36
  23. package/src/components/display/emission/EmissionInlineList.vue +75 -63
  24. package/src/components/display/emission/EmissionItem.vue +47 -35
  25. package/src/components/display/emission/EmissionList.vue +118 -83
  26. package/src/components/display/emission/EmissionPlayerItem.vue +89 -89
  27. package/src/components/display/filter/AdvancedSearch.vue +81 -73
  28. package/src/components/display/filter/CategorySearchFilter.vue +27 -25
  29. package/src/components/display/filter/DateFilter.vue +38 -38
  30. package/src/components/display/filter/MonetizableFilter.vue +16 -14
  31. package/src/components/display/filter/ProductorSearch.vue +55 -47
  32. package/src/components/display/filter/RubriqueChoice.vue +42 -27
  33. package/src/components/display/filter/RubriqueFilter.vue +130 -85
  34. package/src/components/display/filter/SearchOrder.vue +16 -11
  35. package/src/components/display/list/ListPaginate.vue +72 -70
  36. package/src/components/display/list/PaginateParams.vue +29 -30
  37. package/src/components/display/list/PaginateSection.vue +210 -0
  38. package/src/components/display/list/SwiperList.vue +28 -32
  39. package/src/components/display/live/CountDown.vue +12 -14
  40. package/src/components/display/live/LiveHorizontalList.vue +60 -50
  41. package/src/components/display/live/LiveItem.vue +42 -26
  42. package/src/components/display/live/LiveList.vue +92 -65
  43. package/src/components/display/live/RadioCurrently.vue +47 -42
  44. package/src/components/display/live/RadioImage.vue +40 -42
  45. package/src/components/display/live/RadioItem.vue +15 -22
  46. package/src/components/display/live/RadioList.vue +24 -21
  47. package/src/components/display/live/RadioPlanning.vue +105 -68
  48. package/src/components/display/organisation/OrganisationChooser.vue +58 -42
  49. package/src/components/display/organisation/OrganisationChooserLight.vue +27 -19
  50. package/src/components/display/participant/ParticipantItem.vue +89 -77
  51. package/src/components/display/participant/ParticipantList.vue +90 -60
  52. package/src/components/display/playlist/PlaylistItem.vue +32 -35
  53. package/src/components/display/playlist/PlaylistList.vue +70 -52
  54. package/src/components/display/playlist/PodcastList.vue +61 -50
  55. package/src/components/display/playlist/PodcastPlaylistInlineList.vue +47 -38
  56. package/src/components/display/podcasts/AnimatorsItem.vue +17 -15
  57. package/src/components/display/podcasts/ParticipantDescription.vue +21 -22
  58. package/src/components/display/podcasts/PodcastFilterList.vue +28 -26
  59. package/src/components/display/podcasts/PodcastImage.vue +129 -131
  60. package/src/components/display/podcasts/PodcastInlineList.vue +33 -29
  61. package/src/components/display/podcasts/PodcastInlineListClassic.vue +91 -71
  62. package/src/components/display/podcasts/PodcastInlineListTemplate.vue +94 -85
  63. package/src/components/display/podcasts/PodcastItem.vue +96 -90
  64. package/src/components/display/podcasts/PodcastItemInfo.vue +61 -65
  65. package/src/components/display/podcasts/PodcastList.vue +115 -84
  66. package/src/components/display/podcasts/PodcastModuleBox.vue +95 -104
  67. package/src/components/display/podcasts/PodcastPlayBar.vue +45 -32
  68. package/src/components/display/podcasts/PodcastSwiperList.vue +65 -55
  69. package/src/components/display/podcasts/TagList.vue +33 -37
  70. package/src/components/display/rubriques/RubriqueChooser.vue +70 -51
  71. package/src/components/display/rubriques/RubriqueList.vue +117 -89
  72. package/src/components/display/sharing/PlayerParameters.vue +45 -42
  73. package/src/components/display/sharing/QrCode.vue +52 -46
  74. package/src/components/display/sharing/ShareButtons.vue +18 -18
  75. package/src/components/display/sharing/ShareButtonsIntern.vue +100 -78
  76. package/src/components/display/sharing/ShareDistribution.vue +101 -67
  77. package/src/components/display/sharing/SharePlayer.vue +207 -127
  78. package/src/components/display/sharing/SharePlayerColors.vue +15 -15
  79. package/src/components/display/sharing/SharePlayerRadio.vue +62 -39
  80. package/src/components/display/sharing/SharePlayerTypes.vue +93 -55
  81. package/src/components/display/sharing/SubscribeButtons.vue +83 -32
  82. package/src/components/display/studio/RecordingItemButton.vue +3 -3
  83. package/src/components/form/ClassicCheckbox.vue +32 -31
  84. package/src/components/form/ClassicDatePicker.vue +47 -49
  85. package/src/components/form/ClassicInputText.vue +99 -98
  86. package/src/components/form/ClassicLoading.vue +11 -14
  87. package/src/components/form/ClassicMultiselect.vue +125 -126
  88. package/src/components/form/ClassicRadio.vue +15 -18
  89. package/src/components/form/ClassicSearch.vue +17 -23
  90. package/src/components/form/ClassicSelect.vue +35 -27
  91. package/src/components/form/{Wysiwyg.vue → ClassicWysiwyg.vue} +103 -118
  92. package/src/components/misc/AcpmImage.vue +6 -6
  93. package/src/components/misc/ClassicAccordion.vue +73 -0
  94. package/src/components/misc/ClassicNav.vue +117 -0
  95. package/src/components/misc/ClassicPopover.vue +212 -0
  96. package/src/components/misc/{Spinner.vue → ClassicSpinner.vue} +14 -15
  97. package/src/components/misc/ErrorMessage.vue +9 -17
  98. package/src/components/misc/FooterSection.vue +198 -0
  99. package/src/components/misc/HomeDropdown.vue +60 -60
  100. package/src/components/misc/LeftMenu.vue +115 -79
  101. package/src/components/misc/ProgressBar.vue +36 -32
  102. package/src/components/misc/SnackBar.vue +169 -0
  103. package/src/components/misc/TopBar.vue +162 -116
  104. package/src/components/misc/modal/ClassicModal.vue +99 -103
  105. package/src/components/misc/modal/ClipboardModal.vue +21 -23
  106. package/src/components/misc/modal/MessageModal.vue +22 -28
  107. package/src/components/misc/modal/NewsletterModal.vue +139 -113
  108. package/src/components/misc/modal/QrCodeModal.vue +14 -17
  109. package/src/components/misc/modal/ShareModalPlayer.vue +44 -60
  110. package/src/components/misc/player/PlayerCompact.vue +47 -62
  111. package/src/components/misc/player/{Player.vue → PlayerComponent.vue} +54 -46
  112. package/src/components/misc/player/PlayerLarge.vue +62 -61
  113. package/src/components/misc/player/PlayerProgressBar.vue +40 -30
  114. package/src/components/misc/player/PlayerTimeline.vue +32 -36
  115. package/src/components/misc/player/radio/RadioHistory.vue +62 -59
  116. package/src/components/misc/player/radio/RadioProgressBar.vue +44 -35
  117. package/src/components/mixins/cookies.ts +11 -10
  118. package/src/components/mixins/displayMethods.ts +5 -4
  119. package/src/components/mixins/handle403.ts +9 -9
  120. package/src/components/mixins/imageProxy.ts +14 -7
  121. package/src/components/mixins/init.ts +31 -16
  122. package/src/components/mixins/orgaComputed.ts +7 -7
  123. package/src/components/mixins/organisationFilter.ts +36 -22
  124. package/src/components/mixins/player/playerComment.ts +46 -37
  125. package/src/components/mixins/player/playerDisplay.ts +122 -87
  126. package/src/components/mixins/player/playerLive.ts +65 -43
  127. package/src/components/mixins/player/playerLogic.ts +133 -88
  128. package/src/components/mixins/player/playerTranscript.ts +48 -30
  129. package/src/components/mixins/radio/fetchRadioData.ts +40 -23
  130. package/src/components/mixins/selenium.ts +2 -2
  131. package/src/components/mixins/tagOfMixins.ts +11 -11
  132. package/src/components/pages/CategoryPage.vue +43 -0
  133. package/src/components/pages/{Emission.vue → EmissionPage.vue} +98 -67
  134. package/src/components/pages/{Emissions.vue → EmissionsPage.vue} +51 -44
  135. package/src/components/pages/Error403Page.vue +20 -19
  136. package/src/components/pages/HomePage.vue +144 -0
  137. package/src/components/pages/LivesPage.vue +66 -0
  138. package/src/components/pages/PageNotFound.vue +33 -22
  139. package/src/components/pages/{Participant.vue → ParticipantPage.vue} +63 -49
  140. package/src/components/pages/{Participants.vue → ParticipantsPage.vue} +9 -9
  141. package/src/components/pages/PlaylistPage.vue +175 -0
  142. package/src/components/pages/{Playlists.vue → PlaylistsPage.vue} +16 -14
  143. package/src/components/pages/PodcastPage.vue +365 -0
  144. package/src/components/pages/PodcastsPage.vue +152 -0
  145. package/src/components/pages/RadioPage.vue +131 -0
  146. package/src/components/pages/RubriquePage.vue +45 -0
  147. package/src/components/pages/{Search.vue → SearchPage.vue} +19 -19
  148. package/src/helper/dom.ts +1 -1
  149. package/src/helper/duration.ts +10 -4
  150. package/src/helper/useEventListener.ts +7 -8
  151. package/src/i18n.ts +31 -30
  152. package/src/locale/de.ts +272 -257
  153. package/src/locale/educationen.ts +13 -13
  154. package/src/locale/educationfr.ts +1 -1
  155. package/src/locale/en.ts +332 -324
  156. package/src/locale/es.ts +334 -318
  157. package/src/locale/fr.ts +339 -324
  158. package/src/locale/it.ts +341 -328
  159. package/src/locale/messages.ts +9 -9
  160. package/src/locale/sl.ts +324 -319
  161. package/src/main.ts +28 -31
  162. package/src/router/router.ts +218 -198
  163. package/src/shims-tsx.d.ts +1 -1
  164. package/src/shims-vue.d.ts +1 -1
  165. package/src/stores/ApiStore.ts +44 -44
  166. package/src/stores/AuthStore.ts +21 -15
  167. package/src/stores/CommentStore.ts +13 -11
  168. package/src/stores/FilterStore.ts +25 -15
  169. package/src/stores/GeneralStore.ts +15 -15
  170. package/src/stores/ParamSdkStore.ts +179 -137
  171. package/src/stores/PlayerStore.ts +139 -125
  172. package/src/stores/class/adserver/adserverConfig.ts +1 -1
  173. package/src/stores/class/adserver/adserverOtherEmission.ts +9 -9
  174. package/src/stores/class/cartouchier/cartouche.ts +4 -4
  175. package/src/stores/class/cartouchier/cartouchier.ts +2 -2
  176. package/src/stores/class/conference/conference.ts +10 -9
  177. package/src/stores/class/conference/conferenceMessage.ts +2 -2
  178. package/src/stores/class/conference/conferenceParticipant.ts +1 -1
  179. package/src/stores/class/conference/studioCall.ts +6 -6
  180. package/src/stores/class/contract/contractOrganisation.ts +5 -5
  181. package/src/stores/class/ftp/ftpEmission.ts +9 -9
  182. package/src/stores/class/ftp/testFtpEmission.ts +4 -4
  183. package/src/stores/class/general/audioView.ts +19 -19
  184. package/src/stores/class/general/category.ts +1 -1
  185. package/src/stores/class/general/classicSelectType.ts +2 -3
  186. package/src/stores/class/general/customPlayer.ts +8 -8
  187. package/src/stores/class/general/emission.ts +20 -20
  188. package/src/stores/class/general/fetchParam.ts +8 -2
  189. package/src/stores/class/general/initState.ts +31 -31
  190. package/src/stores/class/general/interfacePageable.ts +13 -13
  191. package/src/stores/class/general/ituneCategory.ts +4 -4
  192. package/src/stores/class/general/listReturn.ts +12 -12
  193. package/src/stores/class/general/media.ts +7 -7
  194. package/src/stores/class/general/organisation.ts +9 -9
  195. package/src/stores/class/general/pageable.ts +10 -10
  196. package/src/stores/class/general/participant.ts +7 -7
  197. package/src/stores/class/general/player.ts +30 -28
  198. package/src/stores/class/general/playlist.ts +17 -19
  199. package/src/stores/class/general/podcast.ts +19 -19
  200. package/src/stores/class/general/sortPageable.ts +4 -4
  201. package/src/stores/class/general/soundcastCategory.ts +7 -7
  202. package/src/stores/class/ouestFrance/ofTag.ts +34 -34
  203. package/src/stores/class/ouestFrance/ofTagInfo.ts +9 -9
  204. package/src/stores/class/ouestFrance/ofTagPage.ts +7 -7
  205. package/src/stores/class/ouestFrance/ofTagSeo.ts +7 -7
  206. package/src/stores/class/ouestFrance/ofTagVente.ts +6 -6
  207. package/src/stores/class/ouestFrance/ofTagWithParents.ts +20 -20
  208. package/src/stores/class/radio/canal.ts +4 -4
  209. package/src/stores/class/radio/live.ts +6 -6
  210. package/src/stores/class/radio/mix.ts +16 -16
  211. package/src/stores/class/radio/playlistMedia.ts +7 -7
  212. package/src/stores/class/radio/recurrence.ts +54 -54
  213. package/src/stores/class/rss/rssEmission.ts +13 -13
  214. package/src/stores/class/rss/rssInfo.ts +7 -7
  215. package/src/stores/class/rubrique/rubriquage.ts +2 -2
  216. package/src/stores/class/rubrique/rubrique.ts +1 -1
  217. package/src/stores/class/stat/statArrayIncome.ts +5 -5
  218. package/src/stores/class/stat/statArrayObject.ts +26 -26
  219. package/src/stores/class/stat/statGraph.ts +6 -6
  220. package/src/stores/class/user/person.ts +4 -2
  221. package/src/stores/class/user/profile.ts +4 -2
  222. package/src/stores/class/user/userKeycloak.ts +4 -5
  223. package/src/components/display/list/Paginate.vue +0 -181
  224. package/src/components/misc/Accordion.vue +0 -78
  225. package/src/components/misc/Footer.vue +0 -169
  226. package/src/components/misc/Nav.vue +0 -119
  227. package/src/components/misc/Popover.vue +0 -193
  228. package/src/components/misc/Snackbar.vue +0 -168
  229. package/src/components/pages/Category.vue +0 -41
  230. package/src/components/pages/Home.vue +0 -125
  231. package/src/components/pages/Lives.vue +0 -64
  232. package/src/components/pages/Playlist.vue +0 -164
  233. package/src/components/pages/Podcast.vue +0 -307
  234. package/src/components/pages/Podcasts.vue +0 -146
  235. package/src/components/pages/Radio.vue +0 -122
  236. package/src/components/pages/Rubrique.vue +0 -42
@@ -1,43 +1,35 @@
1
1
  <template>
2
- <div
3
- v-if="isPresent"
4
- class="d-flex flex-column comment-input-container mt-3"
5
- >
2
+ <div v-if="isPresent" class="d-flex flex-column comment-input-container mt-3">
6
3
  <strong
7
4
  v-if="knownIdentity && !editName"
8
5
  class="h6 mt-1 c-hand"
9
6
  @click="changeIdentity"
10
- >{{ knownIdentity }}</strong>
11
- <div
12
- v-if="editName"
13
- class="d-flex"
7
+ >{{ knownIdentity }}</strong
14
8
  >
9
+ <div v-if="editName" class="d-flex">
15
10
  <div class="d-flex flex-column">
16
11
  <input
17
12
  v-model="temporaryName"
18
13
  class="h6 mt-1"
19
14
  type="text"
20
15
  :class="{ 'border border-danger': 0 === countName || !validName }"
21
- >
16
+ />
22
17
  <p
23
18
  class="d-flex justify-content-end h6 mb-0"
24
19
  :class="{ 'text-danger': !validName }"
25
20
  >
26
- {{ countName + ' / ' + maxName }}
21
+ {{ countName + " / " + maxName }}
27
22
  </p>
28
23
  </div>
29
- <button
30
- class="btn m-1"
31
- @click="editName = false"
32
- >
33
- {{ $t('Cancel') }}
24
+ <button class="btn m-1" @click="editName = false">
25
+ {{ $t("Cancel") }}
34
26
  </button>
35
27
  <button
36
28
  class="btn btn-primary m-1"
37
29
  :disabled="0 === countName || !validName"
38
30
  @click="validEdit"
39
31
  >
40
- {{ $t('Validate') }}
32
+ {{ $t("Validate") }}
41
33
  </button>
42
34
  </div>
43
35
  <textarea
@@ -54,14 +46,11 @@
54
46
  class="d-flex justify-content-end h6"
55
47
  :class="{ 'text-danger': !validComment }"
56
48
  >
57
- {{ countComment + ' / ' + maxComment }}
49
+ {{ countComment + " / " + maxComment }}
58
50
  </p>
59
51
  <div class="d-flex justify-content-end mt-1">
60
- <button
61
- class="btn me-2"
62
- @mousedown="cancelAction"
63
- >
64
- {{ $t('Cancel') }}
52
+ <button class="btn me-2" @mousedown="cancelAction">
53
+ {{ $t("Cancel") }}
65
54
  </button>
66
55
  <button
67
56
  class="btn btn-primary"
@@ -89,106 +78,122 @@
89
78
  </template>
90
79
 
91
80
  <script lang="ts">
92
- import octopusApi from '@saooti/octopus-api';
93
- import crudApi from '@/api/classicCrud';
94
- import cookies from '../../mixins/cookies';
95
- import { state } from '../../../stores/ParamSdkStore';
96
- import { Podcast } from '@/stores/class/general/podcast';
97
- import { Conference } from '@/stores/class/conference/conference';
98
- import { CommentPodcast } from '@/stores/class/general/comment';
99
- import Constants from '../../../../public/config';
100
- import { usePlayerStore } from '@/stores/PlayerStore';
101
- import { useAuthStore } from '@/stores/AuthStore';
102
- import { mapState } from 'pinia';
103
- import { defineComponent, defineAsyncComponent } from 'vue';
104
- const AddCommentModal = defineAsyncComponent(() => import('./AddCommentModal.vue'));
105
- const MessageModal = defineAsyncComponent(() => import('../../misc/modal/MessageModal.vue'));
81
+ import octopusApi from "@saooti/octopus-api";
82
+ import crudApi from "@/api/classicCrud";
83
+ import cookies from "../../mixins/cookies";
84
+ import { state } from "../../../stores/ParamSdkStore";
85
+ import { Podcast } from "@/stores/class/general/podcast";
86
+ import { Conference } from "@/stores/class/conference/conference";
87
+ import { CommentPodcast } from "@/stores/class/general/comment";
88
+ import Constants from "../../../../public/config";
89
+ import { usePlayerStore } from "@/stores/PlayerStore";
90
+ import { useAuthStore } from "@/stores/AuthStore";
91
+ import { mapState } from "pinia";
92
+ import { defineComponent, defineAsyncComponent } from "vue";
93
+ const AddCommentModal = defineAsyncComponent(
94
+ () => import("./AddCommentModal.vue"),
95
+ );
96
+ const MessageModal = defineAsyncComponent(
97
+ () => import("../../misc/modal/MessageModal.vue"),
98
+ );
106
99
  export default defineComponent({
107
- name: 'CommentInput',
100
+ name: "CommentInput",
108
101
  components: {
109
102
  AddCommentModal,
110
103
  MessageModal,
111
104
  },
112
- mixins:[cookies],
105
+ mixins: [cookies],
113
106
 
114
107
  props: {
115
- podcast: { default: undefined, type: Object as ()=>Podcast },
108
+ podcast: { default: undefined, type: Object as () => Podcast },
116
109
  knownIdentity: { default: undefined, type: String },
117
110
  focus: { default: false, type: Boolean },
118
- comment: { default: undefined, type: Object as ()=>CommentPodcast },
119
- fetchConference: { default: undefined, type: Object as ()=>Conference },
111
+ comment: { default: undefined, type: Object as () => CommentPodcast },
112
+ fetchConference: { default: undefined, type: Object as () => Conference },
120
113
  },
121
- emits: ['update:knownIdentity', 'cancelAction', 'newComment'],
114
+ emits: ["update:knownIdentity", "cancelAction", "newComment"],
122
115
 
123
116
  data() {
124
117
  return {
125
- newComment: '' as string,
118
+ newComment: "" as string,
126
119
  textareaFocus: false as boolean,
127
120
  checkIdentityModal: false as boolean,
128
121
  postError: false as boolean,
129
122
  isOneLine: true as boolean,
130
123
  editName: false as boolean,
131
- temporaryName: '' as string,
132
- maxComment : Constants.MAX_COMMENT as number,
133
- maxName : Constants.MAX_COMMENT_NAME as number
124
+ temporaryName: "" as string,
125
+ maxComment: Constants.MAX_COMMENT as number,
126
+ maxName: Constants.MAX_COMMENT_NAME as number,
134
127
  };
135
128
  },
136
129
 
137
130
  computed: {
138
- ...mapState(usePlayerStore, ['playerPodcast', 'playerLive', 'playerElapsed', 'playerTotal']),
139
- ...mapState(useAuthStore, ['authProfile']),
140
- validName(): boolean{
131
+ ...mapState(usePlayerStore, [
132
+ "playerPodcast",
133
+ "playerLive",
134
+ "playerElapsed",
135
+ "playerTotal",
136
+ ]),
137
+ ...mapState(useAuthStore, ["authProfile"]),
138
+ validName(): boolean {
141
139
  return this.countName <= this.maxName;
142
140
  },
143
- countName(): number{
141
+ countName(): number {
144
142
  return this.temporaryName.length;
145
143
  },
146
- validComment(): boolean{
144
+ validComment(): boolean {
147
145
  return this.countComment <= this.maxComment;
148
146
  },
149
- countComment(): number{
147
+ countComment(): number {
150
148
  return this.newComment.length;
151
149
  },
152
150
  isPresent(): boolean {
153
151
  if (!this.podcast) return true;
154
- let podcastComment = this.podcast.annotations?.COMMENTS ?? 'INHERIT';
155
- let organisationComment = this.podcast.organisation.comments??'LIVE_ONLY';
156
- return !(('LIVE_ONLY' === podcastComment &&
157
- 'READY_TO_RECORD' !== this.podcast.processingStatus) ||
158
- ('INHERIT' === podcastComment &&
159
- 'LIVE_ONLY' === organisationComment &&
160
- 'READY_TO_RECORD' !== this.podcast.processingStatus));
152
+ let podcastComment = this.podcast.annotations?.COMMENTS ?? "INHERIT";
153
+ let organisationComment =
154
+ this.podcast.organisation.comments ?? "LIVE_ONLY";
155
+ return !(
156
+ ("LIVE_ONLY" === podcastComment &&
157
+ "READY_TO_RECORD" !== this.podcast.processingStatus) ||
158
+ ("INHERIT" === podcastComment &&
159
+ "LIVE_ONLY" === organisationComment &&
160
+ "READY_TO_RECORD" !== this.podcast.processingStatus)
161
+ );
161
162
  },
162
163
  placeholder(): string {
163
- return this.comment?.comId? this.$t('Answer a comment') : this.$t('Write a comment');
164
+ return this.comment?.comId
165
+ ? this.$t("Answer a comment")
166
+ : this.$t("Write a comment");
164
167
  },
165
168
  isCertified(): boolean {
166
- return (true === state.generalParameters.isCommments &&
167
- state.generalParameters.organisationId === this.podcastOrga) ||
168
- true === state.generalParameters.isAdmin;
169
+ return (
170
+ (true === state.generalParameters.isCommments &&
171
+ state.generalParameters.organisationId === this.podcastOrga) ||
172
+ true === state.generalParameters.isAdmin
173
+ );
169
174
  },
170
- phase(): string|undefined {
171
- if(undefined === this.podcast){
175
+ phase(): string | undefined {
176
+ if (undefined === this.podcast) {
172
177
  return this.comment ? this.comment.phase : undefined;
173
178
  }
174
179
  if (
175
180
  !this.podcast.conferenceId ||
176
181
  0 === this.podcast.conferenceId ||
177
- 'READY_TO_RECORD' !== this.podcast.processingStatus
182
+ "READY_TO_RECORD" !== this.podcast.processingStatus
178
183
  )
179
- return 'Podcast';
184
+ return "Podcast";
180
185
  if (
181
186
  this.fetchConference &&
182
- ('PLANNED' === this.fetchConference.status ||
183
- 'PENDING' === this.fetchConference.status)
187
+ ("PLANNED" === this.fetchConference.status ||
188
+ "PENDING" === this.fetchConference.status)
184
189
  )
185
- return 'Prelive';
186
- return 'Live';
190
+ return "Prelive";
191
+ return "Live";
187
192
  },
188
- podcastOrga(): string|undefined{
189
- const commentOrga = this.comment?.organisationId ??'';
193
+ podcastOrga(): string | undefined {
194
+ const commentOrga = this.comment?.organisationId ?? "";
190
195
  return this.podcast?.organisation.id ?? commentOrga;
191
- }
196
+ },
192
197
  },
193
198
  watch: {
194
199
  textareaFocus(): void {
@@ -204,25 +209,29 @@ export default defineComponent({
204
209
  (this.$refs.textarea as HTMLElement).clientWidth -
205
210
  this.inputExceeded(
206
211
  this.newComment,
207
- '18px Montserrat, sans-serif, Helvetica Neue'
212
+ "18px Montserrat, sans-serif, Helvetica Neue",
208
213
  ) >
209
214
  padding;
210
215
  },
211
216
  },
212
217
  methods: {
213
218
  changeIdentity(): void {
214
- if(!this.knownIdentity){return}
219
+ if (!this.knownIdentity) {
220
+ return;
221
+ }
215
222
  this.temporaryName = this.knownIdentity;
216
223
  this.editName = true;
217
224
  },
218
225
  validEdit(): void {
219
- this.setCookie('comment-octopus-name', this.temporaryName);
220
- this.$emit('update:knownIdentity', this.temporaryName);
226
+ this.setCookie("comment-octopus-name", this.temporaryName);
227
+ this.$emit("update:knownIdentity", this.temporaryName);
221
228
  this.editName = false;
222
229
  },
223
230
  inputExceeded(text: string, font: string): number {
224
- const context = document.createElement('canvas').getContext('2d');
225
- if(null === context){return 0;}
231
+ const context = document.createElement("canvas").getContext("2d");
232
+ if (null === context) {
233
+ return 0;
234
+ }
226
235
  context.font = font;
227
236
  return context.measureText(text).width;
228
237
  },
@@ -234,40 +243,38 @@ export default defineComponent({
234
243
  }
235
244
  },
236
245
  cancelAction(): void {
237
- this.$emit('cancelAction');
246
+ this.$emit("cancelAction");
238
247
  },
239
- defineTimelineValue(): number{
240
- let timeline = 0;
248
+ defineTimelineValue(): number {
249
+ let timeline = 0;
241
250
  if (
242
- undefined !== this.podcast &&(
243
- (this.playerPodcast?.podcastId ===this.podcast.podcastId) ||
244
- (this.playerLive?.podcastId ===this.podcast.podcastId))
251
+ undefined !== this.podcast &&
252
+ (this.playerPodcast?.podcastId === this.podcast.podcastId ||
253
+ this.playerLive?.podcastId === this.podcast.podcastId)
245
254
  ) {
246
- timeline = Math.round(
247
- this.playerElapsed * this.playerTotal
248
- );
255
+ timeline = Math.round(this.playerElapsed * this.playerTotal);
249
256
  if (this.podcast.duration && this.playerPodcast) {
250
257
  timeline = Math.round(
251
- timeline - (this.playerTotal - this.podcast.duration / 1000)
258
+ timeline - (this.playerTotal - this.podcast.duration / 1000),
252
259
  );
253
260
  }
254
261
  }
255
- return timeline < 0? 0 : timeline;
262
+ return timeline < 0 ? 0 : timeline;
256
263
  },
257
264
  async postComment(name?: string): Promise<void> {
258
265
  if (name) {
259
- this.setCookie('comment-octopus-name', name);
260
- this.$emit('update:knownIdentity', name);
266
+ this.setCookie("comment-octopus-name", name);
267
+ this.$emit("update:knownIdentity", name);
261
268
  }
262
- const sendName = name??this.knownIdentity;
269
+ const sendName = name ?? this.knownIdentity;
263
270
  const commentPodcastId = this.comment?.podcastId ?? 0;
264
271
  const comment: CommentPodcast = {
265
272
  content: this.newComment,
266
- name: sendName ??'',
273
+ name: sendName ?? "",
267
274
  podcastId: this.podcast?.podcastId ?? commentPodcastId,
268
275
  timeline: this.defineTimelineValue(),
269
276
  organisationId: this.podcastOrga,
270
- commentIdReferer:this.comment?.comId,
277
+ commentIdReferer: this.comment?.comId,
271
278
  certified: this.isCertified,
272
279
  userId: this.authProfile?.userId,
273
280
  phase: this.phase,
@@ -275,25 +282,33 @@ export default defineComponent({
275
282
  try {
276
283
  let data;
277
284
  if (this.isCertified) {
278
- comment.status = 'Valid';
279
- data = await crudApi.postData<CommentPodcast>(2, 'registeredComment/' + comment.userId, {...comment, ...{userId: undefined}});
285
+ comment.status = "Valid";
286
+ data = await crudApi.postData<CommentPodcast>(
287
+ 2,
288
+ "registeredComment/" + comment.userId,
289
+ { ...comment, ...{ userId: undefined } },
290
+ );
280
291
  } else {
281
- data = await octopusApi.postDataPublic<CommentPodcast>(2,'unregisteredComment',comment);
292
+ data = await octopusApi.postDataPublic<CommentPodcast>(
293
+ 2,
294
+ "unregisteredComment",
295
+ comment,
296
+ );
282
297
  }
283
- this.$emit('newComment', data);
284
- this.newComment = '';
298
+ this.$emit("newComment", data);
299
+ this.newComment = "";
285
300
  } catch (error) {
286
301
  this.postError = true;
287
302
  }
288
303
  this.checkIdentityModal = false;
289
304
  },
290
305
  },
291
- })
306
+ });
292
307
  </script>
293
308
 
294
309
  <style lang="scss">
295
- @import '@scss/_variables.scss';
296
- .octopus-app{
310
+ @import "@scss/_variables.scss";
311
+ .octopus-app {
297
312
  .comment-input-container {
298
313
  textarea::placeholder {
299
314
  color: $octopus-primary-color;
@@ -310,10 +325,10 @@ export default defineComponent({
310
325
  box-shadow: unset !important;
311
326
  background: transparent !important;
312
327
  height: 50px;
313
- &.short{
328
+ &.short {
314
329
  max-height: 38px;
315
330
  }
316
331
  }
317
332
  }
318
333
  }
319
- </style>
334
+ </style>