@saooti/octopus-sdk 37.0.5 → 37.0.7

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 (263) hide show
  1. package/README.md +2 -2
  2. package/index.html +1 -0
  3. package/index.ts +21 -21
  4. package/package.json +26 -20
  5. package/public/css/fonts/icomoon.eot +0 -0
  6. package/public/css/fonts/icomoon.svg +1 -1
  7. package/public/css/fonts/icomoon.ttf +0 -0
  8. package/public/css/fonts/icomoon.woff +0 -0
  9. package/public/css/fonts/montserrat/Montserrat-Black.ttf +0 -0
  10. package/public/css/fonts/montserrat/Montserrat-BlackItalic.ttf +0 -0
  11. package/public/css/fonts/montserrat/Montserrat-Bold.ttf +0 -0
  12. package/public/css/fonts/montserrat/Montserrat-BoldItalic.ttf +0 -0
  13. package/public/css/fonts/montserrat/Montserrat-ExtraBold.ttf +0 -0
  14. package/public/css/fonts/montserrat/Montserrat-ExtraBoldItalic.ttf +0 -0
  15. package/public/css/fonts/montserrat/Montserrat-ExtraLight.ttf +0 -0
  16. package/public/css/fonts/montserrat/Montserrat-ExtraLightItalic.ttf +0 -0
  17. package/public/css/fonts/montserrat/Montserrat-Italic.ttf +0 -0
  18. package/public/css/fonts/montserrat/Montserrat-Light.ttf +0 -0
  19. package/public/css/fonts/montserrat/Montserrat-LightItalic.ttf +0 -0
  20. package/public/css/fonts/montserrat/Montserrat-Medium.ttf +0 -0
  21. package/public/css/fonts/montserrat/Montserrat-MediumItalic.ttf +0 -0
  22. package/public/css/fonts/montserrat/Montserrat-Regular.ttf +0 -0
  23. package/public/css/fonts/montserrat/Montserrat-SemiBold.ttf +0 -0
  24. package/public/css/fonts/montserrat/Montserrat-SemiBoldItalic.ttf +0 -0
  25. package/public/css/fonts/montserrat/Montserrat-Thin.ttf +0 -0
  26. package/public/css/fonts/montserrat/Montserrat-ThinItalic.ttf +0 -0
  27. package/public/css/fonts/montserrat/style.css +28 -0
  28. package/public/css/fonts/style.css +5 -5
  29. package/src/App.vue +69 -60
  30. package/src/api/classicCrud.ts +12 -12
  31. package/src/api/initialize.ts +1 -1
  32. package/src/assets/bootstrap.scss +9 -0
  33. package/src/assets/general.scss +1 -1
  34. package/src/assets/share.scss +1 -1
  35. package/src/components/display/aggregator/RssSection.vue +3 -3
  36. package/src/components/display/categories/CategoryChooser.vue +73 -60
  37. package/src/components/display/categories/CategoryFilter.vue +134 -90
  38. package/src/components/display/categories/CategoryList.vue +76 -62
  39. package/src/components/display/comments/AddCommentModal.vue +44 -44
  40. package/src/components/display/comments/CommentBasicView.vue +38 -30
  41. package/src/components/display/comments/CommentInput.vue +122 -110
  42. package/src/components/display/comments/CommentItem.vue +144 -102
  43. package/src/components/display/comments/CommentList.vue +117 -85
  44. package/src/components/display/comments/CommentParentInfo.vue +18 -15
  45. package/src/components/display/comments/CommentPlayer.vue +39 -41
  46. package/src/components/display/comments/CommentSection.vue +68 -53
  47. package/src/components/display/edit/EditBox.vue +7 -7
  48. package/src/components/display/edit/EditBoxRadio.vue +3 -4
  49. package/src/components/display/edit/EditCommentBox.vue +34 -36
  50. package/src/components/display/emission/EmissionInlineList.vue +75 -63
  51. package/src/components/display/emission/EmissionItem.vue +47 -35
  52. package/src/components/display/emission/EmissionList.vue +111 -83
  53. package/src/components/display/emission/EmissionPlayerItem.vue +89 -89
  54. package/src/components/display/filter/AdvancedSearch.vue +81 -73
  55. package/src/components/display/filter/CategorySearchFilter.vue +27 -25
  56. package/src/components/display/filter/DateFilter.vue +38 -38
  57. package/src/components/display/filter/MonetizableFilter.vue +16 -14
  58. package/src/components/display/filter/ProductorSearch.vue +55 -47
  59. package/src/components/display/filter/RubriqueChoice.vue +42 -27
  60. package/src/components/display/filter/RubriqueFilter.vue +130 -85
  61. package/src/components/display/filter/SearchOrder.vue +16 -11
  62. package/src/components/display/list/ListPaginate.vue +72 -70
  63. package/src/components/display/list/PaginateParams.vue +29 -30
  64. package/src/components/display/list/PaginateSection.vue +210 -0
  65. package/src/components/display/list/SwiperList.vue +28 -32
  66. package/src/components/display/live/CountDown.vue +12 -14
  67. package/src/components/display/live/LiveHorizontalList.vue +60 -50
  68. package/src/components/display/live/LiveItem.vue +42 -26
  69. package/src/components/display/live/LiveList.vue +92 -65
  70. package/src/components/display/live/RadioCurrently.vue +47 -42
  71. package/src/components/display/live/RadioImage.vue +40 -42
  72. package/src/components/display/live/RadioItem.vue +15 -22
  73. package/src/components/display/live/RadioList.vue +24 -21
  74. package/src/components/display/live/RadioPlanning.vue +105 -68
  75. package/src/components/display/organisation/OrganisationChooser.vue +58 -42
  76. package/src/components/display/organisation/OrganisationChooserLight.vue +27 -19
  77. package/src/components/display/participant/ParticipantItem.vue +89 -76
  78. package/src/components/display/participant/ParticipantList.vue +90 -60
  79. package/src/components/display/playlist/PlaylistItem.vue +32 -35
  80. package/src/components/display/playlist/PlaylistList.vue +70 -52
  81. package/src/components/display/playlist/PodcastList.vue +61 -50
  82. package/src/components/display/playlist/PodcastPlaylistInlineList.vue +47 -38
  83. package/src/components/display/podcasts/AnimatorsItem.vue +17 -15
  84. package/src/components/display/podcasts/ParticipantDescription.vue +21 -22
  85. package/src/components/display/podcasts/PodcastFilterList.vue +28 -26
  86. package/src/components/display/podcasts/PodcastImage.vue +129 -138
  87. package/src/components/display/podcasts/PodcastInlineList.vue +33 -29
  88. package/src/components/display/podcasts/PodcastInlineListClassic.vue +91 -71
  89. package/src/components/display/podcasts/PodcastInlineListTemplate.vue +94 -85
  90. package/src/components/display/podcasts/PodcastItem.vue +96 -90
  91. package/src/components/display/podcasts/PodcastItemInfo.vue +63 -65
  92. package/src/components/display/podcasts/PodcastList.vue +115 -84
  93. package/src/components/display/podcasts/PodcastModuleBox.vue +95 -104
  94. package/src/components/display/podcasts/PodcastPlayBar.vue +45 -32
  95. package/src/components/display/podcasts/PodcastSwiperList.vue +65 -55
  96. package/src/components/display/podcasts/TagList.vue +33 -37
  97. package/src/components/display/rubriques/RubriqueChooser.vue +70 -51
  98. package/src/components/display/rubriques/RubriqueList.vue +117 -89
  99. package/src/components/display/sharing/PlayerParameters.vue +45 -42
  100. package/src/components/display/sharing/QrCode.vue +52 -46
  101. package/src/components/display/sharing/ShareButtons.vue +25 -27
  102. package/src/components/display/sharing/ShareButtonsIntern.vue +182 -155
  103. package/src/components/display/sharing/ShareDistribution.vue +101 -67
  104. package/src/components/display/sharing/SharePlayer.vue +207 -127
  105. package/src/components/display/sharing/SharePlayerColors.vue +15 -15
  106. package/src/components/display/sharing/SharePlayerRadio.vue +62 -39
  107. package/src/components/display/sharing/SharePlayerTypes.vue +93 -55
  108. package/src/components/display/sharing/SubscribeButtons.vue +83 -32
  109. package/src/components/display/studio/RecordingItemButton.vue +3 -3
  110. package/src/components/form/ClassicCheckbox.vue +32 -31
  111. package/src/components/form/ClassicDatePicker.vue +47 -49
  112. package/src/components/form/ClassicInputText.vue +99 -98
  113. package/src/components/form/ClassicLoading.vue +11 -14
  114. package/src/components/form/ClassicMultiselect.vue +125 -126
  115. package/src/components/form/ClassicRadio.vue +15 -18
  116. package/src/components/form/ClassicSearch.vue +17 -23
  117. package/src/components/form/ClassicSelect.vue +35 -27
  118. package/src/components/form/{Wysiwyg.vue → ClassicWysiwyg.vue} +94 -109
  119. package/src/components/misc/AcpmImage.vue +26 -0
  120. package/src/components/misc/ClassicAccordion.vue +69 -0
  121. package/src/components/misc/ClassicNav.vue +117 -0
  122. package/src/components/misc/ClassicPopover.vue +212 -0
  123. package/src/components/misc/{Spinner.vue → ClassicSpinner.vue} +14 -15
  124. package/src/components/misc/ErrorMessage.vue +9 -17
  125. package/src/components/misc/FooterSection.vue +198 -0
  126. package/src/components/misc/HomeDropdown.vue +67 -64
  127. package/src/components/misc/LeftMenu.vue +115 -79
  128. package/src/components/misc/ProgressBar.vue +36 -32
  129. package/src/components/misc/SnackBar.vue +169 -0
  130. package/src/components/misc/TopBar.vue +161 -115
  131. package/src/components/misc/modal/ClassicModal.vue +99 -103
  132. package/src/components/misc/modal/ClipboardModal.vue +21 -23
  133. package/src/components/misc/modal/MessageModal.vue +22 -28
  134. package/src/components/misc/modal/NewsletterModal.vue +139 -113
  135. package/src/components/misc/modal/QrCodeModal.vue +14 -17
  136. package/src/components/misc/modal/ShareModalPlayer.vue +44 -60
  137. package/src/components/misc/player/PlayerCompact.vue +47 -62
  138. package/src/components/misc/player/{Player.vue → PlayerComponent.vue} +54 -46
  139. package/src/components/misc/player/PlayerLarge.vue +66 -62
  140. package/src/components/misc/player/PlayerProgressBar.vue +40 -30
  141. package/src/components/misc/player/PlayerTimeline.vue +32 -36
  142. package/src/components/misc/player/radio/RadioHistory.vue +62 -59
  143. package/src/components/misc/player/radio/RadioProgressBar.vue +44 -35
  144. package/src/components/mixins/cookies.ts +11 -10
  145. package/src/components/mixins/displayMethods.ts +5 -4
  146. package/src/components/mixins/handle403.ts +9 -9
  147. package/src/components/mixins/imageProxy.ts +14 -7
  148. package/src/components/mixins/init.ts +31 -16
  149. package/src/components/mixins/orgaComputed.ts +7 -7
  150. package/src/components/mixins/organisationFilter.ts +36 -22
  151. package/src/components/mixins/player/playerComment.ts +46 -37
  152. package/src/components/mixins/player/playerDisplay.ts +122 -87
  153. package/src/components/mixins/player/playerLive.ts +65 -43
  154. package/src/components/mixins/player/playerLogic.ts +133 -88
  155. package/src/components/mixins/player/playerTranscript.ts +48 -30
  156. package/src/components/mixins/radio/fetchRadioData.ts +40 -23
  157. package/src/components/mixins/selenium.ts +2 -2
  158. package/src/components/mixins/tagOfMixins.ts +11 -11
  159. package/src/components/pages/CategoryPage.vue +43 -0
  160. package/src/components/pages/{Emission.vue → EmissionPage.vue} +98 -67
  161. package/src/components/pages/{Emissions.vue → EmissionsPage.vue} +51 -44
  162. package/src/components/pages/Error403Page.vue +20 -19
  163. package/src/components/pages/HomePage.vue +144 -0
  164. package/src/components/pages/LivesPage.vue +66 -0
  165. package/src/components/pages/PageNotFound.vue +33 -22
  166. package/src/components/pages/{Participant.vue → ParticipantPage.vue} +63 -49
  167. package/src/components/pages/{Participants.vue → ParticipantsPage.vue} +9 -9
  168. package/src/components/pages/PlaylistPage.vue +175 -0
  169. package/src/components/pages/{Playlists.vue → PlaylistsPage.vue} +16 -14
  170. package/src/components/pages/PodcastPage.vue +365 -0
  171. package/src/components/pages/PodcastsPage.vue +152 -0
  172. package/src/components/pages/RadioPage.vue +131 -0
  173. package/src/components/pages/RubriquePage.vue +45 -0
  174. package/src/components/pages/{Search.vue → SearchPage.vue} +19 -19
  175. package/src/helper/dom.ts +1 -1
  176. package/src/helper/duration.ts +10 -4
  177. package/src/helper/useEventListener.ts +7 -8
  178. package/src/i18n.ts +31 -30
  179. package/src/locale/de.ts +263 -257
  180. package/src/locale/educationen.ts +13 -13
  181. package/src/locale/educationfr.ts +1 -1
  182. package/src/locale/en.ts +323 -324
  183. package/src/locale/es.ts +325 -318
  184. package/src/locale/fr.ts +330 -324
  185. package/src/locale/it.ts +332 -328
  186. package/src/locale/messages.ts +9 -9
  187. package/src/locale/sl.ts +315 -319
  188. package/src/main.ts +28 -31
  189. package/src/router/router.ts +218 -198
  190. package/src/shims-tsx.d.ts +1 -1
  191. package/src/shims-vue.d.ts +1 -1
  192. package/src/stores/ApiStore.ts +44 -44
  193. package/src/stores/AuthStore.ts +24 -16
  194. package/src/stores/CommentStore.ts +13 -11
  195. package/src/stores/FilterStore.ts +25 -15
  196. package/src/stores/GeneralStore.ts +15 -15
  197. package/src/stores/ParamSdkStore.ts +179 -137
  198. package/src/stores/PlayerStore.ts +139 -125
  199. package/src/stores/class/adserver/adserverConfig.ts +1 -1
  200. package/src/stores/class/adserver/adserverOtherEmission.ts +9 -9
  201. package/src/stores/class/cartouchier/cartouche.ts +4 -4
  202. package/src/stores/class/cartouchier/cartouchier.ts +2 -2
  203. package/src/stores/class/conference/conference.ts +10 -9
  204. package/src/stores/class/conference/conferenceMessage.ts +2 -2
  205. package/src/stores/class/conference/conferenceParticipant.ts +1 -1
  206. package/src/stores/class/conference/studioCall.ts +6 -6
  207. package/src/stores/class/contract/contractOrganisation.ts +5 -5
  208. package/src/stores/class/ftp/ftpEmission.ts +9 -9
  209. package/src/stores/class/ftp/testFtpEmission.ts +4 -4
  210. package/src/stores/class/general/audioView.ts +19 -19
  211. package/src/stores/class/general/category.ts +1 -1
  212. package/src/stores/class/general/classicSelectType.ts +2 -3
  213. package/src/stores/class/general/customPlayer.ts +8 -8
  214. package/src/stores/class/general/emission.ts +20 -21
  215. package/src/stores/class/general/fetchParam.ts +8 -2
  216. package/src/stores/class/general/initState.ts +31 -31
  217. package/src/stores/class/general/interfacePageable.ts +13 -13
  218. package/src/stores/class/general/ituneCategory.ts +4 -4
  219. package/src/stores/class/general/listReturn.ts +12 -12
  220. package/src/stores/class/general/media.ts +7 -7
  221. package/src/stores/class/general/organisation.ts +9 -10
  222. package/src/stores/class/general/pageable.ts +10 -10
  223. package/src/stores/class/general/participant.ts +7 -7
  224. package/src/stores/class/general/player.ts +30 -28
  225. package/src/stores/class/general/playlist.ts +17 -19
  226. package/src/stores/class/general/podcast.ts +19 -19
  227. package/src/stores/class/general/sortPageable.ts +4 -4
  228. package/src/stores/class/general/soundcastCategory.ts +7 -7
  229. package/src/stores/class/ouestFrance/ofTag.ts +34 -34
  230. package/src/stores/class/ouestFrance/ofTagInfo.ts +9 -9
  231. package/src/stores/class/ouestFrance/ofTagPage.ts +7 -7
  232. package/src/stores/class/ouestFrance/ofTagSeo.ts +7 -7
  233. package/src/stores/class/ouestFrance/ofTagVente.ts +6 -6
  234. package/src/stores/class/ouestFrance/ofTagWithParents.ts +20 -20
  235. package/src/stores/class/radio/canal.ts +4 -4
  236. package/src/stores/class/radio/live.ts +6 -6
  237. package/src/stores/class/radio/mix.ts +16 -16
  238. package/src/stores/class/radio/playlistMedia.ts +7 -7
  239. package/src/stores/class/radio/recurrence.ts +54 -54
  240. package/src/stores/class/rss/rssEmission.ts +13 -13
  241. package/src/stores/class/rss/rssInfo.ts +7 -7
  242. package/src/stores/class/rubrique/rubriquage.ts +2 -2
  243. package/src/stores/class/rubrique/rubrique.ts +1 -1
  244. package/src/stores/class/stat/statArrayIncome.ts +5 -5
  245. package/src/stores/class/stat/statArrayObject.ts +26 -26
  246. package/src/stores/class/stat/statGraph.ts +6 -6
  247. package/src/stores/class/user/person.ts +4 -2
  248. package/src/stores/class/user/profile.ts +4 -2
  249. package/src/stores/class/user/userKeycloak.ts +4 -5
  250. package/src/components/display/list/Paginate.vue +0 -181
  251. package/src/components/misc/Accordion.vue +0 -78
  252. package/src/components/misc/Footer.vue +0 -165
  253. package/src/components/misc/Nav.vue +0 -119
  254. package/src/components/misc/Popover.vue +0 -193
  255. package/src/components/misc/Snackbar.vue +0 -168
  256. package/src/components/pages/Category.vue +0 -41
  257. package/src/components/pages/Home.vue +0 -125
  258. package/src/components/pages/Lives.vue +0 -64
  259. package/src/components/pages/Playlist.vue +0 -164
  260. package/src/components/pages/Podcast.vue +0 -307
  261. package/src/components/pages/Podcasts.vue +0 -146
  262. package/src/components/pages/Radio.vue +0 -122
  263. package/src/components/pages/Rubrique.vue +0 -42
@@ -1,7 +1,5 @@
1
1
  <template>
2
- <div
3
- class="mt-3 emission-item-container"
4
- >
2
+ <div class="mt-3 emission-item-container">
5
3
  <router-link
6
4
  :to="{
7
5
  name: 'emission',
@@ -16,9 +14,9 @@
16
14
  width="330"
17
15
  height="330"
18
16
  class="img-box"
19
- :title="$t('Emission name image', {name:emission.name})"
20
- :alt="$t('Emission name image', {name:emission.name})"
21
- >
17
+ :title="$t('Emission name image', { name: emission.name })"
18
+ :alt="$t('Emission name image', { name: emission.name })"
19
+ />
22
20
  <div class="emission-item-text">
23
21
  <div class="d-flex align-items-center emission-name">
24
22
  <span
@@ -35,9 +33,9 @@
35
33
  <!-- eslint-disable vue/no-v-html -->
36
34
  <div
37
35
  ref="descriptionEmission"
38
- v-html="urlify(emission.description|| '')"
36
+ v-html="urlify(emission.description || '')"
39
37
  />
40
- <!-- eslint-enable -->
38
+ <!-- eslint-enable -->
41
39
  </div>
42
40
  <router-link
43
41
  v-if="!isPodcastmaker"
@@ -56,21 +54,21 @@
56
54
  </template>
57
55
 
58
56
  <script lang="ts">
59
- import { orgaComputed } from '../../mixins/orgaComputed';
60
- import { Emission } from '@/stores/class/general/emission';
61
- import { state } from '../../../stores/ParamSdkStore';
62
- import octopusApi from '@saooti/octopus-api';
63
- import imageProxy from '../../mixins/imageProxy';
64
- import displayMethods from '../../mixins/displayMethods';
65
- import { defineComponent } from 'vue'
66
- import { Podcast } from '@/stores/class/general/podcast';
57
+ import { orgaComputed } from "../../mixins/orgaComputed";
58
+ import { Emission } from "@/stores/class/general/emission";
59
+ import { state } from "../../../stores/ParamSdkStore";
60
+ import octopusApi from "@saooti/octopus-api";
61
+ import imageProxy from "../../mixins/imageProxy";
62
+ import displayMethods from "../../mixins/displayMethods";
63
+ import { defineComponent } from "vue";
64
+ import { Podcast } from "@/stores/class/general/podcast";
67
65
  export default defineComponent({
68
- name: 'EmissionItem',
66
+ name: "EmissionItem",
69
67
 
70
68
  mixins: [displayMethods, orgaComputed, imageProxy],
71
69
 
72
70
  props: {
73
- emission: { default: ()=>({}), type: Object as ()=> Emission},
71
+ emission: { default: () => ({}), type: Object as () => Emission },
74
72
  },
75
73
 
76
74
  data() {
@@ -78,46 +76,60 @@ export default defineComponent({
78
76
  activeEmission: true as boolean,
79
77
  };
80
78
  },
81
-
79
+
82
80
  computed: {
83
81
  isPodcastmaker(): boolean {
84
- return (state.generalParameters.podcastmaker as boolean);
82
+ return state.generalParameters.podcastmaker as boolean;
85
83
  },
86
84
  organisation(): string {
87
- return this.emission?.publisher?.organisation?.name ?? '';
85
+ return this.emission?.publisher?.organisation?.name ?? "";
88
86
  },
89
87
  editRight(): boolean {
90
- return (true === this.authenticated && this.myOrganisationId === this.emission.orga.id) ||
88
+ return (
89
+ (true === this.authenticated &&
90
+ this.myOrganisationId === this.emission.orga.id) ||
91
91
  true === state.generalParameters.isAdmin
92
+ );
92
93
  },
93
94
  },
94
95
 
95
96
  created() {
96
- if(!this.editRight)return;
97
+ if (!this.editRight) return;
97
98
  this.hasPodcast();
98
99
  },
99
100
  mounted() {
100
- const emissionDesc = (this.$refs.descriptionEmission as HTMLElement);
101
- const emissionDescContainer = (this.$refs.descriptionEmissionContainer as HTMLElement);
101
+ const emissionDesc = this.$refs.descriptionEmission as HTMLElement;
102
+ const emissionDescContainer = this.$refs
103
+ .descriptionEmissionContainer as HTMLElement;
102
104
  if (
103
- null !== emissionDesc && null !== emissionDescContainer &&
105
+ null !== emissionDesc &&
106
+ null !== emissionDescContainer &&
104
107
  emissionDesc.clientHeight > emissionDescContainer.clientHeight
105
108
  ) {
106
- emissionDescContainer.classList.add('after-emission-description');
109
+ emissionDescContainer.classList.add("after-emission-description");
107
110
  }
108
111
  },
109
112
  methods: {
110
113
  async hasPodcast(): Promise<void> {
111
- const data = await octopusApi.fetchDataWithParams<{count: number;result:Array<Podcast>;sort: string;}>(0, 'podcast/search',{
112
- emissionId: this.emission.emissionId,
113
- first: 0,
114
- size: 0,
115
- includeStatus:["READY","PROCESSING"]
116
- }, true);
114
+ const data = await octopusApi.fetchDataWithParams<{
115
+ count: number;
116
+ result: Array<Podcast>;
117
+ sort: string;
118
+ }>(
119
+ 0,
120
+ "podcast/search",
121
+ {
122
+ emissionId: this.emission.emissionId,
123
+ first: 0,
124
+ size: 0,
125
+ includeStatus: ["READY", "PROCESSING"],
126
+ },
127
+ true,
128
+ );
117
129
  if (0 === data.count) {
118
130
  this.activeEmission = false;
119
131
  }
120
132
  },
121
133
  },
122
- })
123
- </script>
134
+ });
135
+ </script>
@@ -4,10 +4,14 @@
4
4
  v-model:first="dfirst"
5
5
  v-model:rowsPerPage="dsize"
6
6
  v-model:isMobile="isMobile"
7
- :text-count="showCount && emissions.length > 1 ? $t('Number emissions', { nb: displayCount }) + sortText : undefined"
7
+ :text-count="
8
+ showCount && emissions.length > 1
9
+ ? $t('Number emissions', { nb: displayCount }) + sortText
10
+ : undefined
11
+ "
8
12
  :total-count="totalCount"
9
13
  :loading="loading"
10
- :loading-text="loading?$t('Loading emissions ...'):undefined"
14
+ :loading-text="loading ? $t('Loading emissions ...') : undefined"
11
15
  >
12
16
  <template #list>
13
17
  <div
@@ -15,27 +19,18 @@
15
19
  class="emission-list"
16
20
  :class="smallItems ? 'three-emissions' : 'two-emissions'"
17
21
  >
18
- <template
19
- v-for="e in displayArray"
20
- :key="e.emissionId"
21
- >
22
- <EmissionItem
23
- v-if="0!==e.emissionId"
24
- :emission="e"
25
- />
22
+ <template v-for="e in displayArray" :key="e.emissionId">
23
+ <EmissionItem v-if="0 !== e.emissionId" :emission="e" />
26
24
  </template>
27
25
  </div>
28
26
  <div
29
27
  v-else
30
- v-show="(displayRubriquage && rubriques)||!displayRubriquage"
28
+ v-show="(displayRubriquage && rubriques) || !displayRubriquage"
31
29
  class="d-flex flex-wrap justify-content-around"
32
30
  >
33
- <template
34
- v-for="e in displayArray"
35
- :key="e.emissionId"
36
- >
31
+ <template v-for="e in displayArray" :key="e.emissionId">
37
32
  <EmissionPlayerItem
38
- v-if="0!==e.emissionId"
33
+ v-if="0 !== e.emissionId"
39
34
  :emission="e"
40
35
  class="m-3 flex-shrink-0"
41
36
  :class="mainRubriquage(e)"
@@ -48,27 +43,29 @@
48
43
  </template>
49
44
 
50
45
  <script lang="ts">
51
- import ListPaginate from '../list/ListPaginate.vue';
52
- import octopusApi from '@saooti/octopus-api';
53
- import { handle403 } from '../../mixins/handle403';
54
- import { state } from '../../../stores/ParamSdkStore';
55
- import { Emission, emptyEmissionData } from '@/stores/class/general/emission';
56
- import { Rubrique } from '@/stores/class/rubrique/rubrique';
57
- import { defineComponent, defineAsyncComponent } from 'vue';
58
- import { FetchParam } from '@/stores/class/general/fetchParam';
59
- import { AxiosError } from 'axios';
60
- import { Rubriquage } from '@/stores/class/rubrique/rubriquage';
61
- import { useFilterStore } from '@/stores/FilterStore';
62
- import { mapState } from 'pinia';
63
- const EmissionItem = defineAsyncComponent(() => import('./EmissionItem.vue'));
64
- const EmissionPlayerItem = defineAsyncComponent(() => import('./EmissionPlayerItem.vue'));
46
+ import ListPaginate from "../list/ListPaginate.vue";
47
+ import octopusApi from "@saooti/octopus-api";
48
+ import { handle403 } from "../../mixins/handle403";
49
+ import { state } from "../../../stores/ParamSdkStore";
50
+ import { Emission, emptyEmissionData } from "@/stores/class/general/emission";
51
+ import { Rubrique } from "@/stores/class/rubrique/rubrique";
52
+ import { defineComponent, defineAsyncComponent } from "vue";
53
+ import { FetchParam } from "@/stores/class/general/fetchParam";
54
+ import { AxiosError } from "axios";
55
+ import { Rubriquage } from "@/stores/class/rubrique/rubriquage";
56
+ import { useFilterStore } from "@/stores/FilterStore";
57
+ import { mapState } from "pinia";
58
+ const EmissionItem = defineAsyncComponent(() => import("./EmissionItem.vue"));
59
+ const EmissionPlayerItem = defineAsyncComponent(
60
+ () => import("./EmissionPlayerItem.vue"),
61
+ );
65
62
  export default defineComponent({
66
- name: 'EmissionList',
63
+ name: "EmissionList",
67
64
 
68
65
  components: {
69
66
  EmissionItem,
70
67
  EmissionPlayerItem,
71
- ListPaginate
68
+ ListPaginate,
72
69
  },
73
70
 
74
71
  mixins: [handle403],
@@ -76,18 +73,18 @@ export default defineComponent({
76
73
  props: {
77
74
  first: { default: 0, type: Number },
78
75
  size: { default: 30, type: Number },
79
- query: { default: undefined, type: String},
76
+ query: { default: undefined, type: String },
80
77
  iabId: { default: undefined, type: Number },
81
- organisationId: { default: undefined, type: String},
82
- monetization: { default: 'UNDEFINED', type: String},
83
- before: { default: undefined, type: String},
84
- after: { default: undefined, type: String},
85
- sort: { default: 'DATE', type: String},
78
+ organisationId: { default: undefined, type: String },
79
+ monetization: { default: "UNDEFINED", type: String },
80
+ before: { default: undefined, type: String },
81
+ after: { default: undefined, type: String },
82
+ sort: { default: "DATE", type: String },
86
83
  showCount: { default: false, type: Boolean },
87
84
  includeHidden: { default: false, type: Boolean },
88
- rubriqueId: { default: () => [], type: Array as ()=> Array<number> },
89
- rubriquageId:{ default: () => [], type: Array as ()=> Array<number> },
90
- noRubriquageId: { default: () => [], type: Array as ()=> Array<number> },
85
+ rubriqueId: { default: () => [], type: Array as () => Array<number> },
86
+ rubriquageId: { default: () => [], type: Array as () => Array<number> },
87
+ noRubriquageId: { default: () => [], type: Array as () => Array<number> },
91
88
  },
92
89
 
93
90
  data() {
@@ -98,26 +95,29 @@ export default defineComponent({
98
95
  totalCount: 0 as number,
99
96
  displayCount: 0 as number,
100
97
  emissions: [] as Array<Emission>,
101
- rubriques: undefined as Array<Rubrique>|undefined,
98
+ rubriques: undefined as Array<Rubrique> | undefined,
102
99
  isMobile: false as boolean,
103
100
  };
104
101
  },
105
102
 
106
103
  computed: {
107
- ...mapState(useFilterStore, ['filterOrgaId']),
108
- displayArray(): Array<Emission>{
109
- if(this.isMobile){
104
+ ...mapState(useFilterStore, ["filterOrgaId"]),
105
+ displayArray(): Array<Emission> {
106
+ if (this.isMobile) {
110
107
  return this.emissions;
111
108
  }
112
- return this.emissions.slice(this.dfirst, Math.min(this.dfirst + this.dsize,this.totalCount));
113
- },
109
+ return this.emissions.slice(
110
+ this.dfirst,
111
+ Math.min(this.dfirst + this.dsize, this.totalCount),
112
+ );
113
+ },
114
114
  smallItems(): boolean {
115
- return (state.emissionsPage.smallItems as boolean);
115
+ return state.emissionsPage.smallItems as boolean;
116
116
  },
117
117
  itemPlayer(): boolean {
118
- return (state.emissionsPage.itemPlayer as boolean);
118
+ return state.emissionsPage.itemPlayer as boolean;
119
119
  },
120
- displayRubriquage(): number|undefined {
120
+ displayRubriquage(): number | undefined {
121
121
  return state.emissionsPage.rubriquage;
122
122
  },
123
123
  changed(): string {
@@ -126,32 +126,35 @@ export default defineComponent({
126
126
  },
127
127
  sortText(): string {
128
128
  switch (this.sort) {
129
- case 'SCORE':
130
- return " "+this.$t('sort by score');
131
- case 'LAST_PODCAST_DESC':
132
- return " "+this.$t('sort by date');
133
- case 'NAME':
134
- return " "+this.$t('sort by alphabetical');
129
+ case "SCORE":
130
+ return " " + this.$t("sort by score");
131
+ case "LAST_PODCAST_DESC":
132
+ return " " + this.$t("sort by date");
133
+ case "NAME":
134
+ return " " + this.$t("sort by alphabetical");
135
135
  default:
136
- return " "+this.$t('sort by date');
136
+ return " " + this.$t("sort by date");
137
137
  }
138
138
  },
139
- organisation(): string|undefined {
140
- return this.organisationId ?this.organisationId:this.filterOrgaId;
139
+ organisation(): string | undefined {
140
+ return this.organisationId ? this.organisationId : this.filterOrgaId;
141
141
  },
142
142
  },
143
143
  watch: {
144
144
  changed(): void {
145
145
  this.reloadList();
146
146
  },
147
- dsize():void{
147
+ dsize(): void {
148
148
  this.reloadList();
149
- },
150
- dfirst(): void{
151
- if(!this.emissions[this.dfirst] || 0===this.emissions[this.dfirst].emissionId){
152
- this.fetchContent(false);
153
- }
154
- },
149
+ },
150
+ dfirst(): void {
151
+ if (
152
+ !this.emissions[this.dfirst] ||
153
+ 0 === this.emissions[this.dfirst].emissionId
154
+ ) {
155
+ this.fetchContent(false);
156
+ }
157
+ },
155
158
  },
156
159
 
157
160
  mounted() {
@@ -161,7 +164,7 @@ export default defineComponent({
161
164
  }
162
165
  },
163
166
  methods: {
164
- reloadList(){
167
+ reloadList() {
165
168
  this.dfirst = 0;
166
169
  this.fetchContent(true);
167
170
  },
@@ -177,46 +180,69 @@ export default defineComponent({
177
180
  before: this.before,
178
181
  after: this.after,
179
182
  sort: this.sort,
180
- noRubriquageId: this.noRubriquageId.length ? this.noRubriquageId : undefined,
183
+ noRubriquageId: this.noRubriquageId.length
184
+ ? this.noRubriquageId
185
+ : undefined,
181
186
  rubriqueId: this.rubriqueId.length ? this.rubriqueId : undefined,
182
187
  rubriquageId: this.rubriquageId.length ? this.rubriquageId : undefined,
183
- includeHidden:this.includeHidden,
188
+ includeHidden: this.includeHidden,
184
189
  };
185
190
  try {
186
- const data = await octopusApi.fetchDataWithParams<{count: number;result:Array<Emission>;sort: string;}>(0, 'emission/search',param, true);
191
+ const data = await octopusApi.fetchDataWithParams<{
192
+ count: number;
193
+ result: Array<Emission>;
194
+ sort: string;
195
+ }>(0, "emission/search", param, true);
187
196
  this.afterFetching(reset, data);
188
197
  } catch (error) {
189
- this.handle403((error as AxiosError));
198
+ this.handle403(error as AxiosError);
190
199
  }
191
200
  },
192
- afterFetching(reset: boolean, data: {count: number, result: Array<Emission>, sort: string}): void {
201
+ afterFetching(
202
+ reset: boolean,
203
+ data: { count: number; result: Array<Emission>; sort: string },
204
+ ): void {
193
205
  if (reset) {
194
206
  this.emissions.length = 0;
195
207
  }
196
- if(this.dfirst > this.emissions.length){
197
- for (let i = this.emissions.length-1, len = this.dfirst + this.dsize; i < len; i++) {
208
+ if (this.dfirst > this.emissions.length) {
209
+ for (
210
+ let i = this.emissions.length - 1, len = this.dfirst + this.dsize;
211
+ i < len;
212
+ i++
213
+ ) {
198
214
  this.emissions.push(emptyEmissionData());
199
215
  }
200
216
  }
201
217
  this.displayCount = data.count;
202
- const responseEmissions = data.result.filter((e: Emission|null) => {
218
+ const responseEmissions = data.result.filter((e: Emission | null) => {
203
219
  if (null === e) {
204
220
  this.displayCount--;
205
221
  }
206
222
  return null !== e;
207
223
  });
208
- this.emissions = this.emissions.slice(0, this.dfirst).concat(responseEmissions).concat(this.emissions.slice(this.dfirst+this.dsize, this.emissions.length));
224
+ this.emissions = this.emissions
225
+ .slice(0, this.dfirst)
226
+ .concat(responseEmissions)
227
+ .concat(
228
+ this.emissions.slice(this.dfirst + this.dsize, this.emissions.length),
229
+ );
209
230
  this.totalCount = data.count;
210
231
  this.loading = false;
211
232
  },
212
233
  async fetchRubriques(): Promise<void> {
213
- const data = await octopusApi.fetchData<Rubriquage>(0, 'rubriquage/'+this.displayRubriquage);
234
+ const data = await octopusApi.fetchData<Rubriquage>(
235
+ 0,
236
+ "rubriquage/" + this.displayRubriquage,
237
+ );
214
238
  this.rubriques = data.rubriques;
215
239
  },
216
240
  mainRubriquage(emission: Emission): string {
217
- return emission.rubriqueIds?.[0] === state.emissionsPage.mainRubrique? 'partenaireRubrique': '';
241
+ return emission.rubriqueIds?.[0] === state.emissionsPage.mainRubrique
242
+ ? "partenaireRubrique"
243
+ : "";
218
244
  },
219
- rubriquesId(emission: Emission): string|undefined {
245
+ rubriquesId(emission: Emission): string | undefined {
220
246
  if (
221
247
  !this.displayRubriquage ||
222
248
  !emission.rubriqueIds ||
@@ -226,11 +252,13 @@ export default defineComponent({
226
252
  )
227
253
  return undefined;
228
254
  const rubrique = this.rubriques.find(
229
- (element: Rubrique) => element.rubriqueId === emission.rubriqueIds[0]
255
+ (element: Rubrique) => element.rubriqueId === emission.rubriqueIds[0],
230
256
  );
231
- if(!rubrique){ return undefined; }
257
+ if (!rubrique) {
258
+ return undefined;
259
+ }
232
260
  return rubrique.name;
233
261
  },
234
262
  },
235
- })
236
- </script>
263
+ });
264
+ </script>