@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
@@ -4,25 +4,25 @@
4
4
  v-model:first="dfirst"
5
5
  v-model:rowsPerPage="dsize"
6
6
  v-model:isMobile="isMobile"
7
- :text-count="showCount && podcasts.length > 1 ? $t('Number podcasts', { nb: totalCount }) + sortText : undefined"
7
+ :text-count="
8
+ showCount && podcasts.length > 1
9
+ ? $t('Number podcasts', { nb: totalCount }) + sortText
10
+ : undefined
11
+ "
8
12
  :total-count="totalCount"
9
13
  :loading="loading"
10
- :loading-text="loading?$t('Loading podcasts ...'):undefined"
11
- :error-text="!loading && !podcasts.length?$t(`No podcast match your query`):undefined"
14
+ :loading-text="loading ? $t('Loading podcasts ...') : undefined"
15
+ :error-text="
16
+ !loading && !podcasts.length
17
+ ? $t(`No podcast match your query`)
18
+ : undefined
19
+ "
12
20
  :just-size-chosen="justSizeChosen"
13
21
  >
14
22
  <template #list>
15
- <div
16
- class="podcast-list"
17
- >
18
- <template
19
- v-for="p in displayArray"
20
- :key="p.podcastId"
21
- >
22
- <PodcastItem
23
- v-if="0!==p.podcastId"
24
- :podcast="p"
25
- />
23
+ <div class="podcast-list">
24
+ <template v-for="p in displayArray" :key="p.podcastId">
25
+ <PodcastItem v-if="0 !== p.podcastId" :podcast="p" />
26
26
  </template>
27
27
  </div>
28
28
  </template>
@@ -30,52 +30,52 @@
30
30
  </template>
31
31
 
32
32
  <script lang="ts">
33
- import ListPaginate from '../list/ListPaginate.vue';
34
- import { handle403 } from '../../mixins/handle403';
35
- import octopusApi from '@saooti/octopus-api';
36
- import PodcastItem from './PodcastItem.vue';
37
- import { state } from '../../../stores/ParamSdkStore';
38
- import { useAuthStore } from '@/stores/AuthStore';
39
- import { useFilterStore } from '@/stores/FilterStore';
40
- import { mapState } from 'pinia';
41
- import { Podcast, emptyPodcastData } from '@/stores/class/general/podcast';
42
- import { defineComponent } from 'vue'
43
- import { FetchParam } from '@/stores/class/general/fetchParam';
44
- import { AxiosError } from 'axios';
33
+ import ListPaginate from "../list/ListPaginate.vue";
34
+ import { handle403 } from "../../mixins/handle403";
35
+ import octopusApi from "@saooti/octopus-api";
36
+ import PodcastItem from "./PodcastItem.vue";
37
+ import { state } from "../../../stores/ParamSdkStore";
38
+ import { useAuthStore } from "@/stores/AuthStore";
39
+ import { useFilterStore } from "@/stores/FilterStore";
40
+ import { mapState } from "pinia";
41
+ import { Podcast, emptyPodcastData } from "@/stores/class/general/podcast";
42
+ import { defineComponent } from "vue";
43
+ import { FetchParam } from "@/stores/class/general/fetchParam";
44
+ import { AxiosError } from "axios";
45
45
  export default defineComponent({
46
- name: 'PodcastList',
46
+ name: "PodcastList",
47
47
 
48
48
  components: {
49
49
  PodcastItem,
50
- ListPaginate
50
+ ListPaginate,
51
51
  },
52
52
 
53
53
  mixins: [handle403],
54
54
 
55
55
  props: {
56
- first: { default: 0, type: Number},
57
- size: { default: 30, type: Number},
58
- organisationId: { default: () => [], type: Array as ()=> Array<string>},
59
- emissionId: { default: undefined, type: Number},
60
- iabId: { default: undefined, type: Number},
61
- participantId: { default: undefined, type: Number},
62
- query: { default: undefined, type: String},
63
- monetization: { default: undefined, type: String},
64
- popularSort: { default: false, type: Boolean},
65
- reload: { default: false, type: Boolean},
66
- before: { default: undefined, type: String},
67
- after: { default: undefined, type: String},
68
- includeHidden: { default: false, type: Boolean},
56
+ first: { default: 0, type: Number },
57
+ size: { default: 30, type: Number },
58
+ organisationId: { default: () => [], type: Array as () => Array<string> },
59
+ emissionId: { default: undefined, type: Number },
60
+ iabId: { default: undefined, type: Number },
61
+ participantId: { default: undefined, type: Number },
62
+ query: { default: undefined, type: String },
63
+ monetization: { default: undefined, type: String },
64
+ popularSort: { default: false, type: Boolean },
65
+ reload: { default: false, type: Boolean },
66
+ before: { default: undefined, type: String },
67
+ after: { default: undefined, type: String },
68
+ includeHidden: { default: false, type: Boolean },
69
69
  showCount: { default: false, type: Boolean },
70
70
  displaySortText: { default: true, type: Boolean },
71
- sortCriteria: { default: undefined, type: String},
72
- notValid: { default: undefined , type: Boolean},
73
- rubriqueId: { default: () => [], type: Array as ()=>Array<number> },
74
- rubriquageId:{ default: () => [], type: Array as ()=>Array<number> },
75
- noRubriquageId: { default: () => [], type: Array as ()=>Array<number> },
76
- justSizeChosen:{default: false, type: Boolean}
71
+ sortCriteria: { default: undefined, type: String },
72
+ notValid: { default: undefined, type: Boolean },
73
+ rubriqueId: { default: () => [], type: Array as () => Array<number> },
74
+ rubriquageId: { default: () => [], type: Array as () => Array<number> },
75
+ noRubriquageId: { default: () => [], type: Array as () => Array<number> },
76
+ justSizeChosen: { default: false, type: Boolean },
77
77
  },
78
- emits: ['fetch', 'emptyList'],
78
+ emits: ["fetch", "emptyList"],
79
79
 
80
80
  data() {
81
81
  return {
@@ -89,37 +89,44 @@ export default defineComponent({
89
89
  },
90
90
 
91
91
  computed: {
92
- ...mapState(useFilterStore, ['filterOrgaId']),
93
- ...mapState(useAuthStore, ['authProfile']),
94
- displayArray(): Array<Podcast>{
95
- if(this.isMobile || this.justSizeChosen){
92
+ ...mapState(useFilterStore, ["filterOrgaId"]),
93
+ ...mapState(useAuthStore, ["authProfile"]),
94
+ displayArray(): Array<Podcast> {
95
+ if (this.isMobile || this.justSizeChosen) {
96
96
  return this.podcasts;
97
97
  }
98
- return this.podcasts.slice(this.dfirst, Math.min(this.dfirst + this.dsize,this.totalCount));
99
- },
98
+ return this.podcasts.slice(
99
+ this.dfirst,
100
+ Math.min(this.dfirst + this.dsize, this.totalCount),
101
+ );
102
+ },
100
103
  changed(): string {
101
104
  return `${this.first}|${this.size}|${this.organisation}|${this.emissionId}|${this.sortCriteria}|${this.sort}
102
105
  ${this.iabId}|${this.participantId}|${this.query}|${this.monetization}|${this.popularSort}|
103
106
  ${this.rubriqueId}|${this.rubriquageId}|${this.before}|${this.after}|${this.includeHidden}|${this.noRubriquageId}|${this.notValid}`;
104
107
  },
105
108
  organisation(): Array<string> {
106
- if(this.organisationId){
109
+ if (this.organisationId) {
107
110
  return this.organisationId;
108
111
  }
109
112
  return this.filterOrgaId ? [this.filterOrgaId] : [];
110
113
  },
111
114
  sort(): string {
112
- return this.popularSort? "POPULARITY" : this.sortCriteria??'DATE';
115
+ return this.popularSort ? "POPULARITY" : this.sortCriteria ?? "DATE";
113
116
  },
114
117
  sortText(): string {
115
- if(!this.displaySortText){
118
+ if (!this.displaySortText) {
116
119
  return "";
117
120
  }
118
121
  switch (this.sortCriteria) {
119
- case 'SCORE':return " "+this.$t('sort by score');
120
- case 'DATE':return " "+this.$t('sort by date');
121
- case 'NAME':return " "+this.$t('sort by alphabetical');
122
- default:return " "+this.$t('sort by date');
122
+ case "SCORE":
123
+ return " " + this.$t("sort by score");
124
+ case "DATE":
125
+ return " " + this.$t("sort by date");
126
+ case "NAME":
127
+ return " " + this.$t("sort by alphabetical");
128
+ default:
129
+ return " " + this.$t("sort by date");
123
130
  }
124
131
  },
125
132
  },
@@ -130,20 +137,23 @@ export default defineComponent({
130
137
  reload(): void {
131
138
  this.reloadList();
132
139
  },
133
- dsize():void{
140
+ dsize(): void {
134
141
  this.reloadList();
135
- },
136
- dfirst(): void{
137
- if(!this.podcasts[this.dfirst] || 0===this.podcasts[this.dfirst].podcastId){
138
- this.fetchContent(false);
139
- }
140
- },
142
+ },
143
+ dfirst(): void {
144
+ if (
145
+ !this.podcasts[this.dfirst] ||
146
+ 0 === this.podcasts[this.dfirst].podcastId
147
+ ) {
148
+ this.fetchContent(false);
149
+ }
150
+ },
141
151
  },
142
152
  async created() {
143
153
  await this.fetchContent(true);
144
154
  },
145
155
  methods: {
146
- reloadList(){
156
+ reloadList() {
147
157
  this.dfirst = 0;
148
158
  this.fetchContent(true);
149
159
  },
@@ -161,41 +171,62 @@ export default defineComponent({
161
171
  sort: this.sort,
162
172
  before: this.before,
163
173
  after: this.after,
164
- noRubriquageId: this.noRubriquageId.length ? this.noRubriquageId : undefined,
174
+ noRubriquageId: this.noRubriquageId.length
175
+ ? this.noRubriquageId
176
+ : undefined,
165
177
  rubriqueId: this.rubriqueId.length ? this.rubriqueId : undefined,
166
178
  rubriquageId: this.rubriquageId.length ? this.rubriquageId : undefined,
167
179
  includeHidden: this.includeHidden,
168
- validity: undefined !== this.notValid?!this.notValid: undefined,
169
- publisherId:this.notValid && !(state.generalParameters.isProduction as boolean)?this.authProfile.userId:undefined,
170
- includeStatus:["READY","PROCESSING"]
180
+ validity: undefined !== this.notValid ? !this.notValid : undefined,
181
+ publisherId:
182
+ this.notValid && !(state.generalParameters.isProduction as boolean)
183
+ ? this.authProfile?.userId
184
+ : undefined,
185
+ includeStatus: ["READY", "PROCESSING"],
171
186
  };
172
187
  try {
173
- const data =await octopusApi.fetchDataWithParams<{count: number;result:Array<Podcast>;sort: string;}>(0, 'podcast/search',param, true);
188
+ const data = await octopusApi.fetchDataWithParams<{
189
+ count: number;
190
+ result: Array<Podcast>;
191
+ sort: string;
192
+ }>(0, "podcast/search", param, true);
174
193
  this.afterFetching(reset, data);
175
194
  } catch (error) {
176
- this.handle403((error as AxiosError));
195
+ this.handle403(error as AxiosError);
177
196
  }
178
197
  },
179
- afterFetching(reset: boolean, data: {count: number, result: Array<Podcast>, sort: string}): void {
198
+ afterFetching(
199
+ reset: boolean,
200
+ data: { count: number; result: Array<Podcast>; sort: string },
201
+ ): void {
180
202
  if (reset) {
181
203
  this.podcasts.length = 0;
182
204
  }
183
- if(this.dfirst > this.podcasts.length){
184
- for (let i = this.podcasts.length-1, len = this.dfirst + this.dsize; i < len; i++) {
205
+ if (this.dfirst > this.podcasts.length) {
206
+ for (
207
+ let i = this.podcasts.length - 1, len = this.dfirst + this.dsize;
208
+ i < len;
209
+ i++
210
+ ) {
185
211
  this.podcasts.push(emptyPodcastData());
186
212
  }
187
213
  }
188
- const responsePodcasts= data.result.filter((p: Podcast|null) => {
214
+ const responsePodcasts = data.result.filter((p: Podcast | null) => {
189
215
  return null !== p;
190
216
  });
191
- this.podcasts = this.podcasts.slice(0, this.dfirst).concat(responsePodcasts).concat(this.podcasts.slice(this.dfirst+this.dsize, this.podcasts.length));
192
- this.$emit('fetch', this.podcasts);
217
+ this.podcasts = this.podcasts
218
+ .slice(0, this.dfirst)
219
+ .concat(responsePodcasts)
220
+ .concat(
221
+ this.podcasts.slice(this.dfirst + this.dsize, this.podcasts.length),
222
+ );
223
+ this.$emit("fetch", this.podcasts);
193
224
  this.totalCount = this.justSizeChosen ? this.size : data.count;
194
225
  if (0 === this.podcasts.length) {
195
- this.$emit('emptyList');
226
+ this.$emit("emptyList");
196
227
  }
197
228
  this.loading = false;
198
229
  },
199
230
  },
200
- })
201
- </script>
231
+ });
232
+ </script>
@@ -5,9 +5,9 @@
5
5
  <PodcastImage
6
6
  :class="[
7
7
  isLiveReadyToRecord &&
8
- fetchConference &&
9
- 'null' !== fetchConference &&
10
- fetchConference.status
8
+ fetchConference &&
9
+ 'null' !== fetchConference &&
10
+ fetchConference.status
11
11
  ? fetchConference.status.toLowerCase() + '-shadow'
12
12
  : '',
13
13
  ]"
@@ -17,30 +17,20 @@
17
17
  :playing-podcast="playingPodcast"
18
18
  :fetch-conference="fetchConference"
19
19
  :is-animator-live="isOctopusAndAnimator"
20
- @playPodcast="playPodcast"
20
+ @play-podcast="playPodcast"
21
21
  />
22
- <div
23
- class="d-flex justify-content-between flex-wrap mb-2"
24
- >
25
- <div
26
- v-if="0 !== date.length"
27
- :class="!isLiveReady ? 'me-5' : ''"
28
- >
22
+ <div class="d-flex justify-content-between flex-wrap mb-2">
23
+ <div v-if="0 !== date.length" :class="!isLiveReady ? 'me-5' : ''">
29
24
  {{ date }}
30
25
  </div>
31
26
  <div>
32
27
  {{ duration }}
33
28
  </div>
34
- <div
35
- v-if="isLiveReady"
36
- class="text-danger"
37
- >
38
- {{ $t('Episode record in live') }}
29
+ <div v-if="isLiveReady" class="text-danger">
30
+ {{ $t("Episode record in live") }}
39
31
  </div>
40
32
  </div>
41
- <div
42
- class="text-uppercase h2 mb-3"
43
- >
33
+ <div class="text-uppercase h2 mb-3">
44
34
  {{ podcast.title }}
45
35
  </div>
46
36
  <!-- eslint-disable vue/no-v-html -->
@@ -55,7 +45,7 @@
55
45
  :participants="podcast.animators"
56
46
  />
57
47
  <div class="mb-1">
58
- {{ $t('Emission') + ' : ' }}
48
+ {{ $t("Emission") + " : " }}
59
49
  <router-link
60
50
  :to="{
61
51
  name: 'emission',
@@ -68,11 +58,8 @@
68
58
  {{ podcast.emission.name }}
69
59
  </router-link>
70
60
  </div>
71
- <div
72
- v-if="!isPodcastmaker"
73
- class="mb-1"
74
- >
75
- {{ $t('Producted by : ') }}
61
+ <div v-if="!isPodcastmaker" class="mb-1">
62
+ {{ $t("Producted by : ") }}
76
63
  <router-link
77
64
  :to="{
78
65
  name: 'productor',
@@ -85,17 +72,11 @@
85
72
  {{ podcast.organisation.name }}
86
73
  </router-link>
87
74
  </div>
88
- <div
89
- v-if="''!==photoCredit"
90
- class="mb-1"
91
- >
92
- {{ $t('Photo credits') + " : "+ photoCredit }}
75
+ <div v-if="'' !== photoCredit" class="mb-1">
76
+ {{ $t("Photo credits") + " : " + photoCredit }}
93
77
  </div>
94
- <div
95
- v-if="''!==audioCredit"
96
- class="mb-1"
97
- >
98
- {{ $t('Audio credits') + " : "+ audioCredit }}
78
+ <div v-if="'' !== audioCredit" class="mb-1">
79
+ {{ $t("Audio credits") + " : " + audioCredit }}
99
80
  </div>
100
81
  <a
101
82
  v-if="podcast.article"
@@ -105,7 +86,7 @@
105
86
  target="_blank"
106
87
  >
107
88
  <span class="saooti-newspaper me-1" />
108
- <div>{{ $t('See associated article') }}</div>
89
+ <div>{{ $t("See associated article") }}</div>
109
90
  </a>
110
91
  <ParticipantDescription
111
92
  class="mb-1"
@@ -118,61 +99,60 @@
118
99
  />
119
100
  <div v-if="editRight && !isPodcastmaker">
120
101
  <div
121
- v-if="podcast.annotations && 'RSS'===podcast.annotations.SOURCE_KIND"
102
+ v-if="
103
+ podcast.annotations && 'RSS' === podcast.annotations.SOURCE_KIND
104
+ "
122
105
  class="me-5 text-secondary"
123
106
  >
124
- {{ $t('From RSS') }}
107
+ {{ $t("From RSS") }}
125
108
  </div>
126
- <ErrorMessage
127
- v-if="''!==errorMessage"
128
- :message="errorMessage"
129
- />
109
+ <ErrorMessage v-if="'' !== errorMessage" :message="errorMessage" />
130
110
  </div>
131
111
  </div>
132
112
  </div>
133
113
  </div>
134
114
  <RecordingItemButton
135
- v-if="
136
- !!fetchConference &&
137
- isLiveReadyToRecord &&
138
- isOctopusAndAnimator
139
- "
115
+ v-if="!!fetchConference && isLiveReadyToRecord && isOctopusAndAnimator"
140
116
  :podcast="podcast"
141
117
  :live="true"
142
118
  :recording="fetchConference"
143
- @deleteItem="removeDeleted"
144
- @validatePodcast="$emit('updatePodcast', $event)"
119
+ @delete-item="removeDeleted"
120
+ @validate-podcast="$emit('updatePodcast', $event)"
145
121
  />
146
122
  <EditBox
147
123
  v-else-if="editRight && isEditBox"
148
124
  :podcast="podcast"
149
125
  :display-studio-access="isDebriefing"
150
- @validatePodcast="$emit('updatePodcast', $event)"
151
- />
152
- <TagList
153
- :tag-list="podcast.tags"
126
+ @validate-podcast="$emit('updatePodcast', $event)"
154
127
  />
128
+ <TagList :tag-list="podcast.tags" />
155
129
  </div>
156
130
  </template>
157
131
 
158
132
  <script lang="ts">
159
- import PodcastPlayBar from './PodcastPlayBar.vue';
160
- import PodcastImage from './PodcastImage.vue';
161
- import ParticipantDescription from './ParticipantDescription.vue';
162
- import TagList from './TagList.vue';
163
- import { state } from '../../../stores/ParamSdkStore';
164
- import dayjs from 'dayjs';
133
+ import PodcastPlayBar from "./PodcastPlayBar.vue";
134
+ import PodcastImage from "./PodcastImage.vue";
135
+ import ParticipantDescription from "./ParticipantDescription.vue";
136
+ import TagList from "./TagList.vue";
137
+ import { state } from "../../../stores/ParamSdkStore";
138
+ import dayjs from "dayjs";
165
139
  // @ts-ignore
166
- import humanizeDuration from 'humanize-duration';
167
- import displayMethods from '../../mixins/displayMethods';
168
- import { orgaComputed } from '../../mixins/orgaComputed';
169
- import { Podcast } from '@/stores/class/general/podcast';
170
- import { Conference } from '@/stores/class/conference/conference';
140
+ import humanizeDuration from "humanize-duration";
141
+ import displayMethods from "../../mixins/displayMethods";
142
+ import { orgaComputed } from "../../mixins/orgaComputed";
143
+ import { Podcast } from "@/stores/class/general/podcast";
144
+ import { Conference } from "@/stores/class/conference/conference";
171
145
 
172
- import { defineComponent, defineAsyncComponent } from 'vue';
173
- const ErrorMessage = defineAsyncComponent(() => import('../../misc/ErrorMessage.vue'));
174
- const RecordingItemButton = defineAsyncComponent(() => import('@/components/display/studio/RecordingItemButton.vue'));
175
- const EditBox = defineAsyncComponent(() => import('@/components/display/edit/EditBox.vue'));
146
+ import { defineComponent, defineAsyncComponent } from "vue";
147
+ const ErrorMessage = defineAsyncComponent(
148
+ () => import("../../misc/ErrorMessage.vue"),
149
+ );
150
+ const RecordingItemButton = defineAsyncComponent(
151
+ () => import("@/components/display/studio/RecordingItemButton.vue"),
152
+ );
153
+ const EditBox = defineAsyncComponent(
154
+ () => import("@/components/display/edit/EditBox.vue"),
155
+ );
176
156
  export default defineComponent({
177
157
  name: "PodcastModuleBox",
178
158
  components: {
@@ -181,41 +161,41 @@ export default defineComponent({
181
161
  TagList,
182
162
  ErrorMessage,
183
163
  PodcastPlayBar,
184
- EditBox,
185
- RecordingItemButton
164
+ EditBox,
165
+ RecordingItemButton,
186
166
  },
187
167
 
188
- mixins:[displayMethods, orgaComputed],
168
+ mixins: [displayMethods, orgaComputed],
189
169
 
190
170
  props: {
191
- playingPodcast: { default: undefined, type: Object as ()=> Podcast},
192
- podcast: { default: undefined, type: Object as ()=> Podcast},
193
- fetchConference: { default: undefined, type: Object as ()=> Conference},
171
+ playingPodcast: { default: undefined, type: Object as () => Podcast },
172
+ podcast: { default: undefined, type: Object as () => Podcast },
173
+ fetchConference: { default: undefined, type: Object as () => Conference },
194
174
  },
195
175
 
196
- emits: ['playPodcast', 'updatePodcast'],
176
+ emits: ["playPodcast", "updatePodcast"],
197
177
 
198
178
  computed: {
199
- errorMessage(): string{
200
- if(!this.podcast?.availability.visibility){
201
- return this.$t('Podcast is not visible for listeners');
179
+ errorMessage(): string {
180
+ if (!this.podcast?.availability.visibility) {
181
+ return this.$t("Podcast is not visible for listeners");
202
182
  }
203
- if('ERROR' === this.podcast?.processingStatus){
204
- return this.$t('Podcast in ERROR, please contact Saooti');
183
+ if ("ERROR" === this.podcast?.processingStatus) {
184
+ return this.$t("Podcast in ERROR, please contact Saooti");
205
185
  }
206
- return this.podcastNotValid ? this.$t('Podcast not validated') : '';
186
+ return this.podcastNotValid ? this.$t("Podcast not validated") : "";
207
187
  },
208
188
  isPodcastmaker(): boolean {
209
- return (state.generalParameters.podcastmaker as boolean);
189
+ return state.generalParameters.podcastmaker as boolean;
210
190
  },
211
191
  date(): string {
212
- if (this.podcast && 1970 !== dayjs(this.podcast.pubDate).year()){
213
- return dayjs(this.podcast.pubDate).format('D MMMM YYYY');
192
+ if (this.podcast && 1970 !== dayjs(this.podcast.pubDate).year()) {
193
+ return dayjs(this.podcast.pubDate).format("D MMMM YYYY");
214
194
  }
215
- return '';
195
+ return "";
216
196
  },
217
197
  duration(): string {
218
- if (!this.podcast || this.podcast.duration <= 1) return '';
198
+ if (!this.podcast || this.podcast.duration <= 1) return "";
219
199
  if (this.podcast.duration > 600000) {
220
200
  return humanizeDuration(this.podcast.duration, {
221
201
  language: this.$i18n.locale,
@@ -230,23 +210,31 @@ export default defineComponent({
230
210
  });
231
211
  },
232
212
  editRight(): boolean {
233
- return (true===this.authenticated &&
234
- this.myOrganisationId === this.podcast?.organisation.id) ||true===state.generalParameters.isAdmin
213
+ return (
214
+ (true === this.authenticated &&
215
+ this.myOrganisationId === this.podcast?.organisation.id) ||
216
+ true === state.generalParameters.isAdmin
217
+ );
235
218
  },
236
219
  isLiveReadyToRecord(): boolean {
237
- return (undefined!==this.podcast && undefined!==this.podcast.conferenceId && 0 !== this.podcast.conferenceId && 'READY_TO_RECORD' === this.podcast.processingStatus);
220
+ return (
221
+ undefined !== this.podcast &&
222
+ undefined !== this.podcast.conferenceId &&
223
+ 0 !== this.podcast.conferenceId &&
224
+ "READY_TO_RECORD" === this.podcast.processingStatus
225
+ );
238
226
  },
239
227
  isLiveReady(): boolean {
240
228
  return (
241
- undefined!==this.podcast?.conferenceId &&
229
+ undefined !== this.podcast?.conferenceId &&
242
230
  0 !== this.podcast?.conferenceId &&
243
- 'READY' === this.podcast?.processingStatus
231
+ "READY" === this.podcast?.processingStatus
244
232
  );
245
233
  },
246
234
  isDebriefing(): boolean {
247
235
  return (
248
- undefined!==this.fetchConference &&
249
- 'DEBRIEFING' === this.fetchConference.status
236
+ undefined !== this.fetchConference &&
237
+ "DEBRIEFING" === this.fetchConference.status
250
238
  );
251
239
  },
252
240
  isOctopusAndAnimator(): boolean {
@@ -257,29 +245,32 @@ export default defineComponent({
257
245
  );
258
246
  },
259
247
  podcastNotValid(): boolean {
260
- return undefined!==this.podcast?.availability && false === this.podcast?.valid;
248
+ return (
249
+ undefined !== this.podcast?.availability &&
250
+ false === this.podcast?.valid
251
+ );
261
252
  },
262
- photoCredit():string{
263
- return (this.podcast?.annotations?.photoCredit as string) ?? '';
253
+ photoCredit(): string {
254
+ return (this.podcast?.annotations?.photoCredit as string) ?? "";
264
255
  },
265
- audioCredit():string{
266
- return (this.podcast?.annotations?.audioCredit as string) ?? '';
256
+ audioCredit(): string {
257
+ return (this.podcast?.annotations?.audioCredit as string) ?? "";
267
258
  },
268
- isEditBox(): boolean{
269
- return (state.podcastPage.EditBox as boolean)?? false;
259
+ isEditBox(): boolean {
260
+ return (state.podcastPage.EditBox as boolean) ?? false;
270
261
  },
271
262
  },
272
263
  methods: {
273
264
  playPodcast(podcast: Podcast): void {
274
- this.$emit('playPodcast', podcast);
265
+ this.$emit("playPodcast", podcast);
275
266
  },
276
267
  removeDeleted(): void {
277
268
  if (window.history.length > 1) {
278
269
  this.$router.go(-1);
279
270
  } else {
280
- this.$router.push('/');
271
+ this.$router.push("/");
281
272
  }
282
273
  },
283
274
  },
284
- })
285
- </script>
275
+ });
276
+ </script>