@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,7 +1,5 @@
1
1
  <template>
2
- <div
3
- class="emission-player-container"
4
- >
2
+ <div class="emission-player-container">
5
3
  <router-link
6
4
  :to="{
7
5
  name: 'emission',
@@ -10,27 +8,19 @@
10
8
  }"
11
9
  class="d-flex flex-column text-dark"
12
10
  >
13
- <div
14
- v-if="rubriqueName"
15
- class="emissionPlayerItem-info"
16
- >
11
+ <div v-if="rubriqueName" class="emissionPlayerItem-info">
17
12
  {{ rubriqueName }}
18
13
  </div>
19
- <div
20
- class="img-box rounded-0"
21
- >
14
+ <div class="img-box rounded-0">
22
15
  <img
23
16
  v-lazy="proxyImageUrl(emission.imageUrl, '330')"
24
17
  width="330"
25
18
  height="330"
26
- :title="$t('Emission name image', {name:emission.name})"
27
- :alt="$t('Emission name image', {name:emission.name})"
19
+ :title="$t('Emission name image', { name: emission.name })"
20
+ :alt="$t('Emission name image', { name: emission.name })"
28
21
  class="img-box rounded-0"
29
- >
30
- <div
31
- v-if="titleInImage"
32
- class="titleInImage"
33
- >
22
+ />
23
+ <div v-if="titleInImage" class="titleInImage">
34
24
  {{ emission.name }}
35
25
  </div>
36
26
  </div>
@@ -82,45 +72,31 @@
82
72
  {{ p.title }}
83
73
  </div>
84
74
  <div
85
- :ref="'descriptionPodcastContainer'+ p.podcastId"
75
+ :ref="'descriptionPodcastContainer' + p.podcastId"
86
76
  class="emission-description html-wysiwyg-content"
87
77
  >
88
78
  <!-- eslint-disable vue/no-v-html -->
89
79
  <div
90
- :ref="'descriptionPodcast'+ p.podcastId"
80
+ :ref="'descriptionPodcast' + p.podcastId"
91
81
  v-html="urlify(p.description)"
92
82
  />
93
83
  <!-- eslint-enable -->
94
84
  </div>
95
85
  </router-link>
96
- <PodcastPlayBar
97
- :podcast-id="p.podcastId"
98
- :duration="p.duration"
99
- />
86
+ <PodcastPlayBar :podcast-id="p.podcastId" :duration="p.duration" />
100
87
  </div>
101
88
  <button
102
89
  v-if="
103
90
  playerPodcast !== p ||
104
- (playerPodcast === p &&
105
- 'PAUSED' === playerStatus)
91
+ (playerPodcast === p && 'PAUSED' === playerStatus)
106
92
  "
107
93
  class="play-button-box bg-secondary"
108
94
  @click="play(p)"
109
95
  >
110
- <div
111
- class="text-light saooti-play"
112
- :title="$t('Play')"
113
- />
96
+ <div class="text-light saooti-play" :title="$t('Play')" />
114
97
  </button>
115
- <button
116
- v-else
117
- class="play-button-box bg-secondary"
118
- @click="pause(p)"
119
- >
120
- <div
121
- class="text-light saooti-pause"
122
- :title="$t('Pause')"
123
- />
98
+ <button v-else class="play-button-box bg-secondary" @click="pause(p)">
99
+ <div class="text-light saooti-pause" :title="$t('Pause')" />
124
100
  </button>
125
101
  </div>
126
102
  </div>
@@ -136,35 +112,35 @@
136
112
  }"
137
113
  class="btn"
138
114
  >
139
- {{ $t('More episodes') }}
115
+ {{ $t("More episodes") }}
140
116
  </router-link>
141
117
  </div>
142
118
  </div>
143
119
  </template>
144
120
 
145
121
  <script lang="ts">
146
- import octopusApi from '@saooti/octopus-api';
147
- import { Emission } from '@/stores/class/general/emission';
148
- import { Podcast } from '@/stores/class/general/podcast';
149
- import { state } from '../../../stores/ParamSdkStore';
150
- import PodcastPlayBar from '../podcasts/PodcastPlayBar.vue';
151
- import imageProxy from '../../mixins/imageProxy';
152
- import displayMethods from '../../mixins/displayMethods';
153
- import { usePlayerStore } from '@/stores/PlayerStore';
154
- import { useFilterStore } from '@/stores/FilterStore';
155
- import { mapState, mapActions } from 'pinia';
156
- import { defineComponent } from 'vue'
122
+ import octopusApi from "@saooti/octopus-api";
123
+ import { Emission } from "@/stores/class/general/emission";
124
+ import { Podcast } from "@/stores/class/general/podcast";
125
+ import { state } from "../../../stores/ParamSdkStore";
126
+ import PodcastPlayBar from "../podcasts/PodcastPlayBar.vue";
127
+ import imageProxy from "../../mixins/imageProxy";
128
+ import displayMethods from "../../mixins/displayMethods";
129
+ import { usePlayerStore } from "@/stores/PlayerStore";
130
+ import { useFilterStore } from "@/stores/FilterStore";
131
+ import { mapState, mapActions } from "pinia";
132
+ import { defineComponent } from "vue";
157
133
  export default defineComponent({
158
- name: 'EmissionPlayerItem',
134
+ name: "EmissionPlayerItem",
159
135
 
160
- components:{
161
- PodcastPlayBar
136
+ components: {
137
+ PodcastPlayBar,
162
138
  },
163
139
  mixins: [displayMethods, imageProxy],
164
140
  props: {
165
- emission: { default: ()=>({}), type: Object as ()=>Emission },
141
+ emission: { default: () => ({}), type: Object as () => Emission },
166
142
  nbPodcasts: { default: undefined, type: Number },
167
- rubriqueName: { default: undefined, type: String},
143
+ rubriqueName: { default: undefined, type: String },
168
144
  },
169
145
 
170
146
  data() {
@@ -173,28 +149,31 @@ export default defineComponent({
173
149
  podcasts: [] as Array<Podcast>,
174
150
  };
175
151
  },
176
-
152
+
177
153
  computed: {
178
- ...mapState(useFilterStore, ['filterOrgaId']),
179
- ...mapState(usePlayerStore, ['playerPodcast', 'playerStatus']),
180
- isProgressBar(): boolean{
181
- return (state.emissionsPage.progressBar as boolean);
154
+ ...mapState(useFilterStore, ["filterOrgaId"]),
155
+ ...mapState(usePlayerStore, ["playerPodcast", "playerStatus"]),
156
+ isProgressBar(): boolean {
157
+ return state.emissionsPage.progressBar as boolean;
182
158
  },
183
159
  buttonMore(): boolean {
184
- return (state.emissionsPage.buttonMore as boolean);
160
+ return state.emissionsPage.buttonMore as boolean;
185
161
  },
186
162
  titleInImage(): boolean {
187
- return (state.emissionsPage.titleInImage as boolean);
163
+ return state.emissionsPage.titleInImage as boolean;
188
164
  },
189
165
  authenticated(): boolean {
190
- return state.generalParameters.authenticated??false;
166
+ return state.generalParameters.authenticated ?? false;
191
167
  },
192
- organisationId(): string|undefined {
168
+ organisationId(): string | undefined {
193
169
  return state.generalParameters.organisationId;
194
170
  },
195
171
  editRight(): boolean {
196
- return (true===this.authenticated && this.organisationId === this.emission.orga.id) ||
172
+ return (
173
+ (true === this.authenticated &&
174
+ this.organisationId === this.emission.orga.id) ||
197
175
  true === state.generalParameters.isAdmin
176
+ );
198
177
  },
199
178
  },
200
179
 
@@ -202,17 +181,19 @@ export default defineComponent({
202
181
  this.loadPodcasts();
203
182
  },
204
183
  mounted() {
205
- const emissionDesc = (this.$refs.descriptionEmission as HTMLElement);
206
- const emissionDescContainer = (this.$refs.descriptionEmissionContainer as HTMLElement);
184
+ const emissionDesc = this.$refs.descriptionEmission as HTMLElement;
185
+ const emissionDescContainer = this.$refs
186
+ .descriptionEmissionContainer as HTMLElement;
207
187
  if (
208
- null !== emissionDesc && null !== emissionDescContainer &&
188
+ null !== emissionDesc &&
189
+ null !== emissionDescContainer &&
209
190
  emissionDesc.clientHeight > emissionDescContainer.clientHeight
210
191
  ) {
211
- emissionDescContainer.classList.add('after-emission-description');
192
+ emissionDescContainer.classList.add("after-emission-description");
212
193
  }
213
194
  },
214
195
  methods: {
215
- ...mapActions(usePlayerStore, ['playerPlay', 'playerChangeStatus']),
196
+ ...mapActions(usePlayerStore, ["playerPlay", "playerChangeStatus"]),
216
197
  play(podcast: Podcast): void {
217
198
  if (podcast === this.playerPodcast) {
218
199
  this.playerChangeStatus(false);
@@ -225,34 +206,54 @@ export default defineComponent({
225
206
  },
226
207
  async loadPodcasts(): Promise<void> {
227
208
  const nb = this.nbPodcasts ? this.nbPodcasts : 2;
228
- const data = await octopusApi.fetchDataWithParams<{count: number;result:Array<Podcast>;sort: string;}>(0, 'podcast/search',{
229
- emissionId: this.emission.emissionId,
230
- size: nb,
231
- includeStatus:["READY","PROCESSING"]
232
- }, true);
209
+ const data = await octopusApi.fetchDataWithParams<{
210
+ count: number;
211
+ result: Array<Podcast>;
212
+ sort: string;
213
+ }>(
214
+ 0,
215
+ "podcast/search",
216
+ {
217
+ emissionId: this.emission.emissionId,
218
+ size: nb,
219
+ includeStatus: ["READY", "PROCESSING"],
220
+ },
221
+ true,
222
+ );
233
223
  if (0 === data.count) {
234
224
  this.activeEmission = false;
235
225
  }
236
226
  this.podcasts = data.result;
237
227
  this.$nextTick(() => {
238
- for (let index = 0, len = this.podcasts.length; index < len; index++) {
239
- const podcastDesc = (this.$refs['descriptionPodcast'+this.podcasts[index].podcastId] as Array<HTMLElement>)?.[0] ?? null;
240
- const podcastDescContainer = (this.$refs['descriptionPodcastContainer'+this.podcasts[index].podcastId] as Array<HTMLElement>)?.[0] ?? null;
241
- if (
242
- null !== podcastDesc && null !== podcastDescContainer &&
243
- podcastDesc.clientHeight > podcastDescContainer.clientHeight
244
- ) {
245
- podcastDescContainer.classList.add('after-emission-description');
228
+ for (let index = 0, len = this.podcasts.length; index < len; index++) {
229
+ const podcastDesc =
230
+ (
231
+ this.$refs[
232
+ "descriptionPodcast" + this.podcasts[index].podcastId
233
+ ] as Array<HTMLElement>
234
+ )?.[0] ?? null;
235
+ const podcastDescContainer =
236
+ (
237
+ this.$refs[
238
+ "descriptionPodcastContainer" + this.podcasts[index].podcastId
239
+ ] as Array<HTMLElement>
240
+ )?.[0] ?? null;
241
+ if (
242
+ null !== podcastDesc &&
243
+ null !== podcastDescContainer &&
244
+ podcastDesc.clientHeight > podcastDescContainer.clientHeight
245
+ ) {
246
+ podcastDescContainer.classList.add("after-emission-description");
247
+ }
246
248
  }
247
- }
248
249
  });
249
250
  },
250
251
  },
251
- })
252
+ });
252
253
  </script>
253
254
 
254
255
  <style lang="scss">
255
- @import '@scss/_variables.scss';
256
+ @import "@scss/_variables.scss";
256
257
  .emission-player-container {
257
258
  list-style: none;
258
259
  background: #fff;
@@ -274,7 +275,7 @@ export default defineComponent({
274
275
  max-height: 3.5rem;
275
276
  position: relative;
276
277
  &.after-emission-description:after {
277
- content: '...';
278
+ content: "...";
278
279
  position: absolute;
279
280
  padding-left: 1rem;
280
281
  right: 0;
@@ -298,5 +299,4 @@ export default defineComponent({
298
299
  max-width: $octopus-mobile-item-size;
299
300
  }
300
301
  }
301
-
302
- </style>
302
+ </style>
@@ -4,35 +4,32 @@
4
4
  class="d-flex justify-content-center align-items-center mb-3 text-secondary btn-transparent"
5
5
  @click="showFilters = !showFilters"
6
6
  >
7
- <div>{{ $t('Advanced filters') }}</div>
8
- <div
7
+ <div>{{ $t("Advanced filters") }}</div>
8
+ <div
9
9
  class="saooti-down mx-1"
10
10
  :class="{ 'arrow-transform': showFilters }"
11
11
  />
12
12
  </button>
13
- <div
14
- v-show="showFilters"
15
- class="advanced-search-container"
16
- >
13
+ <div v-show="showFilters" class="advanced-search-container">
17
14
  <div class="d-flex flex-column">
18
15
  <div class="text-primary mb-2">
19
- {{ $t('Filter') }}
16
+ {{ $t("Filter") }}
20
17
  </div>
21
18
  <MonetizableFilter
22
19
  v-if="sdkParameters.isMonetizableFilter && !isEducation"
23
20
  :is-emission="isEmission"
24
- @updateMonetization="updateMonetization"
21
+ @update-monetization="updateMonetization"
25
22
  />
26
- <CategorySearchFilter @updateCategory="updateCategory" />
27
- <RubriqueFilter
23
+ <CategorySearchFilter @update-category="updateCategory" />
24
+ <RubriqueFilter
28
25
  :reset-rubriquage="resetRubriquage"
29
26
  :organisation-id="organisationId"
30
- @updateRubriquageFilter="updateRubriquageFilter"
27
+ @update-rubriquage-filter="updateRubriquageFilter"
31
28
  />
32
29
  <DateFilter
33
30
  :is-emission="isEmission"
34
- @updateToDate="updateToDate"
35
- @updateFromDate="updateFromDate"
31
+ @update-to-date="updateToDate"
32
+ @update-from-date="updateFromDate"
36
33
  />
37
34
  <div
38
35
  v-if="organisation && organisationRight && !isPodcastmaker"
@@ -46,10 +43,7 @@
46
43
  :is-disabled="isCheckboxNotValidate && isNotValidate"
47
44
  />
48
45
  </div>
49
- <div
50
- v-if="isCheckboxNotValidate"
51
- class="d-flex flex-column mt-3"
52
- >
46
+ <div v-if="isCheckboxNotValidate" class="d-flex flex-column mt-3">
53
47
  <ClassicCheckbox
54
48
  v-model:textInit="isNotValidate"
55
49
  class="flex-shrink-0"
@@ -60,12 +54,12 @@
60
54
  </div>
61
55
  <div class="d-flex flex-column">
62
56
  <div class="text-primary mb-2">
63
- {{ $t('Sort') }}
57
+ {{ $t("Sort") }}
64
58
  </div>
65
59
  <SearchOrder
66
60
  :is-emission="isEmission"
67
61
  :sort-criteria="sortCriteria"
68
- @updateSortCriteria="updateSortCriteria"
62
+ @update-sort-criteria="updateSortCriteria"
69
63
  />
70
64
  </div>
71
65
  </div>
@@ -73,16 +67,18 @@
73
67
  </template>
74
68
 
75
69
  <script lang="ts">
76
- import { state } from '../../../stores/ParamSdkStore';
77
- import { orgaComputed } from '../../mixins/orgaComputed';
78
- import CategorySearchFilter from './CategorySearchFilter.vue';
79
- import DateFilter from './DateFilter.vue';
80
- import SearchOrder from './SearchOrder.vue';
81
- import RubriqueFilter from './RubriqueFilter.vue';
82
- import ClassicCheckbox from '../../form/ClassicCheckbox.vue';
83
- import { RubriquageFilter } from '@/stores/class/rubrique/rubriquageFilter';
84
- import { defineComponent, defineAsyncComponent } from 'vue';
85
- const MonetizableFilter = defineAsyncComponent(() => import('./MonetizableFilter.vue'));
70
+ import { state } from "../../../stores/ParamSdkStore";
71
+ import { orgaComputed } from "../../mixins/orgaComputed";
72
+ import CategorySearchFilter from "./CategorySearchFilter.vue";
73
+ import DateFilter from "./DateFilter.vue";
74
+ import SearchOrder from "./SearchOrder.vue";
75
+ import RubriqueFilter from "./RubriqueFilter.vue";
76
+ import ClassicCheckbox from "../../form/ClassicCheckbox.vue";
77
+ import { RubriquageFilter } from "@/stores/class/rubrique/rubriquageFilter";
78
+ import { defineComponent, defineAsyncComponent } from "vue";
79
+ const MonetizableFilter = defineAsyncComponent(
80
+ () => import("./MonetizableFilter.vue"),
81
+ );
86
82
  export default defineComponent({
87
83
  components: {
88
84
  MonetizableFilter,
@@ -90,26 +86,28 @@ export default defineComponent({
90
86
  RubriqueFilter,
91
87
  ClassicCheckbox,
92
88
  DateFilter,
93
- SearchOrder
89
+ SearchOrder,
94
90
  },
95
91
  mixins: [orgaComputed],
96
92
  props: {
97
- organisationId: { default: undefined, type: String},
98
- isEmission: { default: false, type: Boolean},
99
- resetRubriquage: { default: false, type: Boolean},
100
- isEducation: { default: false, type: Boolean},
101
- includeHidden: { default: false, type: Boolean},
102
- sortCriteria: { default: 'DATE', type: String},
93
+ organisationId: { default: undefined, type: String },
94
+ isEmission: { default: false, type: Boolean },
95
+ resetRubriquage: { default: false, type: Boolean },
96
+ isEducation: { default: false, type: Boolean },
97
+ includeHidden: { default: false, type: Boolean },
98
+ sortCriteria: { default: "DATE", type: String },
103
99
  },
104
100
 
105
- emits: ['updateToDate',
106
- 'updateFromDate',
107
- 'updateMonetization',
108
- 'updateCategory',
109
- 'updateSortCriteria',
110
- 'includeHidden',
111
- 'notValid',
112
- 'updateRubriquageFilter'],
101
+ emits: [
102
+ "updateToDate",
103
+ "updateFromDate",
104
+ "updateMonetization",
105
+ "updateCategory",
106
+ "updateSortCriteria",
107
+ "includeHidden",
108
+ "notValid",
109
+ "updateRubriquageFilter",
110
+ ],
113
111
  data() {
114
112
  return {
115
113
  isNotVisible: this.includeHidden,
@@ -120,28 +118,33 @@ export default defineComponent({
120
118
 
121
119
  computed: {
122
120
  isPodcastmaker(): boolean {
123
- return (state.generalParameters.podcastmaker as boolean);
121
+ return state.generalParameters.podcastmaker as boolean;
124
122
  },
125
- sdkParameters(){
123
+ sdkParameters() {
126
124
  return {
127
- isMonetizableFilter : (state.podcastsPage.MonetizableFilter as boolean),
128
- isProduction : (state.generalParameters.isProduction as boolean),
129
- isContribution : (state.generalParameters.isContribution as boolean)
130
- }
125
+ isMonetizableFilter: state.podcastsPage.MonetizableFilter as boolean,
126
+ isProduction: state.generalParameters.isProduction as boolean,
127
+ isContribution: state.generalParameters.isContribution as boolean,
128
+ };
131
129
  },
132
130
  organisationRight(): boolean {
133
- return (true===this.authenticated && this.myOrganisationId === this.organisationId) ||
134
- true === state.generalParameters.isAdmin;
131
+ return (
132
+ (true === this.authenticated &&
133
+ this.myOrganisationId === this.organisationId) ||
134
+ true === state.generalParameters.isAdmin
135
+ );
135
136
  },
136
- organisation(): string|undefined {
137
- return this.organisationId??this.filterOrgaId;
137
+ organisation(): string | undefined {
138
+ return this.organisationId ?? this.filterOrgaId;
138
139
  },
139
140
  textNotVisible(): string {
140
- return this.isEmission? this.$t('Consider podcasts no visible') : this.$t('See podcasts no visible');
141
+ return this.isEmission
142
+ ? this.$t("Consider podcasts no visible")
143
+ : this.$t("See podcasts no visible");
141
144
  },
142
145
  isCheckboxNotValidate(): boolean {
143
146
  return (
144
- undefined!==this.organisation &&
147
+ undefined !== this.organisation &&
145
148
  this.organisationRight &&
146
149
  this.sdkParameters.isContribution &&
147
150
  !this.isPodcastmaker &&
@@ -150,39 +153,44 @@ export default defineComponent({
150
153
  );
151
154
  },
152
155
  textNotValidate(): string {
153
- return this.sdkParameters.isProduction? this.$t('Display all podcasts to validate') : this.$t('Display my podcasts to validate');
156
+ return this.sdkParameters.isProduction
157
+ ? this.$t("Display all podcasts to validate")
158
+ : this.$t("Display my podcasts to validate");
154
159
  },
155
160
  },
156
161
  watch: {
157
162
  organisation(): void {
158
- this.isNotVisible = undefined!==this.organisation && this.organisationRight && !this.isEmission;
163
+ this.isNotVisible =
164
+ undefined !== this.organisation &&
165
+ this.organisationRight &&
166
+ !this.isEmission;
159
167
  },
160
- isNotVisible(): void{
161
- this.$emit('includeHidden', this.isNotVisible);
168
+ isNotVisible(): void {
169
+ this.$emit("includeHidden", this.isNotVisible);
162
170
  },
163
171
  isNotValidate(): void {
164
- this.$emit('notValid', this.isNotValidate);
172
+ this.$emit("notValid", this.isNotValidate);
165
173
  },
166
174
  },
167
175
  methods: {
168
176
  updateFromDate(value: string): void {
169
- this.$emit('updateFromDate', value);
177
+ this.$emit("updateFromDate", value);
170
178
  },
171
179
  updateToDate(value: string): void {
172
- this.$emit('updateToDate', value);
180
+ this.$emit("updateToDate", value);
173
181
  },
174
182
  updateMonetization(value: string): void {
175
- this.$emit('updateMonetization', value);
183
+ this.$emit("updateMonetization", value);
184
+ },
185
+ updateCategory(value: number) {
186
+ this.$emit("updateCategory", 0 !== value ? value : undefined);
176
187
  },
177
- updateCategory(value: number){
178
- this.$emit('updateCategory', 0!==value ? value : undefined);
188
+ updateRubriquageFilter(value: Array<RubriquageFilter>) {
189
+ this.$emit("updateRubriquageFilter", value);
179
190
  },
180
- updateRubriquageFilter(value: Array<RubriquageFilter>){
181
- this.$emit('updateRubriquageFilter', value);
191
+ updateSortCriteria(value: string) {
192
+ this.$emit("updateSortCriteria", value);
182
193
  },
183
- updateSortCriteria(value: string){
184
- this.$emit('updateSortCriteria', value);
185
- }
186
194
  },
187
- })
188
- </script>
195
+ });
196
+ </script>
@@ -15,17 +15,17 @@
15
15
  </template>
16
16
 
17
17
  <script lang="ts">
18
- import ClassicCheckbox from '../../form/ClassicCheckbox.vue';
19
- import CategoryChooser from '../categories/CategoryChooser.vue';
20
- import { useFilterStore } from '@/stores/FilterStore';
21
- import { mapState, mapActions } from 'pinia';
22
- import { defineComponent } from 'vue'
18
+ import ClassicCheckbox from "../../form/ClassicCheckbox.vue";
19
+ import CategoryChooser from "../categories/CategoryChooser.vue";
20
+ import { useFilterStore } from "@/stores/FilterStore";
21
+ import { mapState, mapActions } from "pinia";
22
+ import { defineComponent } from "vue";
23
23
  export default defineComponent({
24
24
  components: {
25
25
  CategoryChooser,
26
- ClassicCheckbox
26
+ ClassicCheckbox,
27
27
  },
28
- emits: ['updateCategory'],
28
+ emits: ["updateCategory"],
29
29
  data() {
30
30
  return {
31
31
  isCategory: false as boolean,
@@ -35,52 +35,52 @@ export default defineComponent({
35
35
  };
36
36
  },
37
37
  computed: {
38
- ...mapState(useFilterStore, ['filterIab']),
38
+ ...mapState(useFilterStore, ["filterIab"]),
39
39
  },
40
40
  watch: {
41
41
  isCategory(): void {
42
- if(this.isInternChanged ||this.isInit){
42
+ if (this.isInternChanged || this.isInit) {
43
43
  return;
44
44
  }
45
45
  this.isInternChanged = true;
46
- this.$emit('updateCategory', this.isCategory?this.iabId:0);
46
+ this.$emit("updateCategory", this.isCategory ? this.iabId : 0);
47
47
  this.resetCategoryFilter();
48
48
  this.$nextTick(() => {
49
49
  this.isInternChanged = false;
50
50
  });
51
51
  },
52
52
  iabId(): void {
53
- if(this.isInternChanged ||this.isInit){
53
+ if (this.isInternChanged || this.isInit) {
54
54
  return;
55
55
  }
56
56
  this.isInternChanged = true;
57
57
  this.resetCategoryFilter();
58
- if(this.isCategory){
59
- this.$emit('updateCategory', this.iabId);
58
+ if (this.isCategory) {
59
+ this.$emit("updateCategory", this.iabId);
60
60
  }
61
61
  this.$nextTick(() => {
62
62
  this.isInternChanged = false;
63
63
  });
64
64
  },
65
- filterIab:{
65
+ filterIab: {
66
66
  deep: true,
67
- handler(){
68
- if(this.isInternChanged){
67
+ handler() {
68
+ if (this.isInternChanged) {
69
69
  return;
70
70
  }
71
71
  this.isInternChanged = true;
72
72
  this.iabId = this.filterIab ? this.filterIab.id : 0;
73
73
  this.isCategory = this.filterIab ? true : false;
74
- this.$emit('updateCategory', this.iabId);
74
+ this.$emit("updateCategory", this.iabId);
75
75
  this.$nextTick(() => {
76
76
  this.isInternChanged = false;
77
77
  });
78
- }
78
+ },
79
79
  },
80
80
  },
81
81
 
82
82
  created() {
83
- if(this.filterIab){
83
+ if (this.filterIab) {
84
84
  this.iabId = this.filterIab.id;
85
85
  this.isCategory = true;
86
86
  }
@@ -89,17 +89,19 @@ export default defineComponent({
89
89
  });
90
90
  },
91
91
  methods: {
92
- ...mapActions(useFilterStore, ['filterUpdateIab']),
93
- resetCategoryFilter(): void{
94
- if(!this.filterIab || this.isInit){
92
+ ...mapActions(useFilterStore, ["filterUpdateIab"]),
93
+ resetCategoryFilter(): void {
94
+ if (!this.filterIab || this.isInit) {
95
95
  return;
96
96
  }
97
97
  const queries = this.$route.query;
98
98
  if (queries.iabId) {
99
- this.$router.replace({ query: {...queries, ...{iabId: undefined} } });
99
+ this.$router.replace({
100
+ query: { ...queries, ...{ iabId: undefined } },
101
+ });
100
102
  }
101
103
  this.filterUpdateIab();
102
- }
104
+ },
103
105
  },
104
- })
106
+ });
105
107
  </script>