@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
@@ -14,7 +14,7 @@
14
14
  {{ organisation.name }}
15
15
  </option>
16
16
  <option :value="-1">
17
- {{ $t('No organisation filter') }}
17
+ {{ $t("No organisation filter") }}
18
18
  </option>
19
19
  </select>
20
20
  <label
@@ -26,22 +26,22 @@
26
26
  </template>
27
27
 
28
28
  <script lang="ts">
29
- import { Organisation } from '@/stores/class/general/organisation';
30
- import octopusApi from '@saooti/octopus-api';
31
- import { defineComponent } from 'vue'
29
+ import { Organisation } from "@/stores/class/general/organisation";
30
+ import octopusApi from "@saooti/octopus-api";
31
+ import { defineComponent } from "vue";
32
32
  export default defineComponent({
33
33
  props: {
34
- width: { default: '100%', type: String},
35
- value: { default: undefined, type: String},
36
- reset: { default: false, type: Boolean},
37
- page: { default: '', type: String},
34
+ width: { default: "100%", type: String },
35
+ value: { default: undefined, type: String },
36
+ reset: { default: false, type: Boolean },
37
+ page: { default: "", type: String },
38
38
  },
39
- emits: ['selected'],
39
+ emits: ["selected"],
40
40
 
41
41
  data() {
42
- return {
43
- actual: -1 as number|string,
44
- organisation: undefined as Organisation|undefined,
42
+ return {
43
+ actual: -1 as number | string,
44
+ organisation: undefined as Organisation | undefined,
45
45
  init: false as boolean,
46
46
  };
47
47
  },
@@ -64,26 +64,34 @@ export default defineComponent({
64
64
  },
65
65
 
66
66
  methods: {
67
- onOrganisationSelected(): void{
68
- this.$emit('selected', -1 === this.actual? undefined:this.organisation);
67
+ onOrganisationSelected(): void {
68
+ this.$emit(
69
+ "selected",
70
+ -1 === this.actual ? undefined : this.organisation,
71
+ );
69
72
  },
70
73
  async fetchOrganisation(): Promise<void> {
71
- if(!this.value){return;}
72
- const data = await octopusApi.fetchData<Organisation>(0,`organisation/${this.value}`);
74
+ if (!this.value) {
75
+ return;
76
+ }
77
+ const data = await octopusApi.fetchData<Organisation>(
78
+ 0,
79
+ `organisation/${this.value}`,
80
+ );
73
81
  this.organisation = data;
74
82
  this.actual = data.id;
75
83
  this.init = true;
76
84
  },
77
85
  },
78
- })
86
+ });
79
87
  </script>
80
88
 
81
89
  <style lang="scss">
82
- .octopus-app{
90
+ .octopus-app {
83
91
  .organisation-chooser-light select {
84
92
  -webkit-appearance: none;
85
93
  -moz-appearance: none;
86
94
  appearance: none;
87
95
  }
88
96
  }
89
- </style>
97
+ </style>
@@ -1,8 +1,5 @@
1
1
  <template>
2
- <div
3
- v-if="participant"
4
- class="participant-item-container"
5
- >
2
+ <div v-if="participant" class="participant-item-container">
6
3
  <router-link
7
4
  :to="{
8
5
  name: 'participant',
@@ -19,7 +16,7 @@
19
16
  :title="$t('Animator image')"
20
17
  :alt="$t('Animator image')"
21
18
  class="img-box border"
22
- >
19
+ />
23
20
  <div class="d-flex align-items-center h4 justify-content-center mt-2">
24
21
  <span
25
22
  v-if="!activeParticipant && !isPodcastmaker && editRight"
@@ -35,7 +32,7 @@
35
32
  <!-- eslint-disable vue/no-v-html -->
36
33
  <div
37
34
  ref="descriptionParticipant"
38
- v-html="urlify(participant.description|| '')"
35
+ v-html="urlify(participant.description || '')"
39
36
  />
40
37
  <!-- eslint-enable -->
41
38
  </div>
@@ -55,19 +52,19 @@
55
52
  </template>
56
53
 
57
54
  <script lang="ts">
58
- import octopusApi from '@saooti/octopus-api';
59
- import { Participant } from '@/stores/class/general/participant';
60
- import { state } from '../../../stores/ParamSdkStore';
61
- import imageProxy from '../../mixins/imageProxy';
62
- import displayMethods from '../../mixins/displayMethods';
63
- import { orgaComputed } from '../../mixins/orgaComputed';
64
- import { defineComponent } from 'vue'
65
- import { Podcast } from '@/stores/class/general/podcast';
55
+ import octopusApi from "@saooti/octopus-api";
56
+ import { Participant } from "@/stores/class/general/participant";
57
+ import { state } from "../../../stores/ParamSdkStore";
58
+ import imageProxy from "../../mixins/imageProxy";
59
+ import displayMethods from "../../mixins/displayMethods";
60
+ import { orgaComputed } from "../../mixins/orgaComputed";
61
+ import { defineComponent } from "vue";
62
+ import { Podcast } from "@/stores/class/general/podcast";
66
63
  export default defineComponent({
67
- name: 'ParticpantItem',
64
+ name: "ParticpantItem",
68
65
  mixins: [displayMethods, orgaComputed, imageProxy],
69
66
  props: {
70
- participant: { default: ()=>({}), type: Object as ()=> Participant},
67
+ participant: { default: () => ({}), type: Object as () => Participant },
71
68
  },
72
69
  data() {
73
70
  return {
@@ -76,97 +73,113 @@ export default defineComponent({
76
73
  },
77
74
  computed: {
78
75
  isPodcastmaker(): boolean {
79
- return (state.generalParameters.podcastmaker as boolean);
76
+ return state.generalParameters.podcastmaker as boolean;
80
77
  },
81
78
  name(): string {
82
- return (`${this.participant.firstName??''} ${this.participant.lastName??''}`).trim();
79
+ return `${this.participant.firstName ?? ""} ${
80
+ this.participant.lastName ?? ""
81
+ }`.trim();
83
82
  },
84
83
  editRight(): boolean {
85
- if(!this.participant || !this.participant.orga){
84
+ if (!this.participant || !this.participant.orga) {
86
85
  return false;
87
86
  }
88
- return (this.authenticated &&
89
- this.myOrganisationId === this.participant.orga.id) ||
87
+ return (
88
+ (this.authenticated &&
89
+ this.myOrganisationId === this.participant.orga.id) ||
90
90
  true === state.generalParameters.isAdmin
91
+ );
91
92
  },
92
93
  },
93
94
 
94
95
  created() {
95
- if(!this.editRight)return;
96
+ if (!this.editRight) return;
96
97
  this.hasPodcast();
97
98
  },
98
99
  mounted() {
99
- const participantDesc = (this.$refs.descriptionParticipant as HTMLElement);
100
- const participantDescContainer = (this.$refs.descriptionParticipantContainer as HTMLElement);
100
+ const participantDesc = this.$refs.descriptionParticipant as HTMLElement;
101
+ const participantDescContainer = this.$refs
102
+ .descriptionParticipantContainer as HTMLElement;
101
103
  if (
102
- null !== participantDesc && null !==participantDescContainer &&
104
+ null !== participantDesc &&
105
+ null !== participantDescContainer &&
103
106
  participantDesc.clientHeight > participantDescContainer.clientHeight
104
107
  ) {
105
- participantDescContainer.classList.add('after-participant-description');
108
+ participantDescContainer.classList.add("after-participant-description");
106
109
  }
107
110
  },
108
111
  methods: {
109
112
  async hasPodcast(): Promise<void> {
110
- const data = await octopusApi.fetchDataWithParams<{count: number;result:Array<Podcast>;sort: string;}>(0, 'podcast/search',{
111
- participantId: this.participant.participantId,
112
- first: 0,
113
- size: 0,
114
- includeStatus:["READY","PROCESSING"]
115
- }, true);
113
+ const data = await octopusApi.fetchDataWithParams<{
114
+ count: number;
115
+ result: Array<Podcast>;
116
+ sort: string;
117
+ }>(
118
+ 0,
119
+ "podcast/search",
120
+ {
121
+ participantId: this.participant.participantId,
122
+ first: 0,
123
+ size: 0,
124
+ includeStatus: ["READY", "PROCESSING"],
125
+ },
126
+ true,
127
+ );
116
128
  if (0 === data.count) {
117
129
  this.activeParticipant = false;
118
130
  }
119
131
  },
120
132
  },
121
- })
133
+ });
122
134
  </script>
123
135
  <style lang="scss">
124
- @import '@scss/_variables.scss';
125
- .octopus-app{
126
- .participant-item-container {
127
- list-style: none;
128
- border-radius: $octopus-borderradius;
129
- display: flex;
130
- flex-direction: column;
131
- margin: 1rem 0;
132
- align-items: center;
133
- width: $octopus-item-size;
136
+ @import "@scss/_variables.scss";
137
+ .octopus-app {
138
+ .participant-item-container {
139
+ list-style: none;
140
+ border-radius: $octopus-borderradius;
141
+ display: flex;
142
+ flex-direction: column;
143
+ margin: 1rem 0;
144
+ align-items: center;
145
+ width: $octopus-item-size;
134
146
 
135
- .participant-description {
136
- overflow: hidden;
137
- margin-top: 0.5em;
138
- word-break: break-word;
139
- max-height: 3rem;
140
- position: relative;
141
- &.after-participant-description:after {
142
- content: '...';
143
- position: absolute;
144
- padding-left: 1rem;
145
- right: 0;
146
- bottom: 0;
147
- width: 100%;
148
- font-size: 1rem;
149
- font-weight: bolder;
147
+ .participant-description {
148
+ overflow: hidden;
149
+ margin-top: 0.5em;
150
+ word-break: break-word;
151
+ max-height: 3rem;
152
+ position: relative;
150
153
  text-align: center;
151
- background: linear-gradient(
152
- to bottom,
153
- rgba(255, 255, 255, 0),
154
- white 40%
155
- );
154
+ &.after-participant-description:after {
155
+ content: "...";
156
+ position: absolute;
157
+ padding-left: 1rem;
158
+ right: 0;
159
+ bottom: 0;
160
+ width: 100%;
161
+ font-size: 1rem;
162
+ font-weight: bolder;
163
+ text-align: center;
164
+ background: linear-gradient(
165
+ to bottom,
166
+ rgba(255, 255, 255, 0),
167
+ white 40%
168
+ );
169
+ }
156
170
  }
157
- }
158
171
 
159
- .participant-producer {
160
- font-weight: 300;
161
- font-size: 0.6rem;
162
- margin-top: 0.5rem;
163
- }
164
- @media (max-width: 960px) {
165
- margin: 0;
166
- }
167
- @media (max-width: 450px) {
168
- margin: 1rem 0 0;
172
+ .participant-producer {
173
+ font-weight: 300;
174
+ font-size: 0.6rem;
175
+ margin-top: 0.5rem;
176
+ }
177
+ @media (max-width: 960px) {
178
+ margin: 0;
179
+ }
180
+ @media (max-width: 450px) {
181
+ margin: 1rem 0 0;
182
+ }
169
183
  }
170
184
  }
171
- }
172
- </style>
185
+ </style>
@@ -4,23 +4,21 @@
4
4
  v-model:first="dfirst"
5
5
  v-model:rowsPerPage="dsize"
6
6
  v-model:isMobile="isMobile"
7
- :text-count="showCount && displayCount > 1 ? `${$t('Number participants', { nb: displayCount })} ${$t('sort by score')}`: undefined"
7
+ :text-count="
8
+ showCount && displayCount > 1
9
+ ? `${$t('Number participants', { nb: displayCount })} ${$t(
10
+ 'sort by score',
11
+ )}`
12
+ : undefined
13
+ "
8
14
  :total-count="totalCount"
9
15
  :loading="loading"
10
- :loading-text="loading?$t('Loading participants ...'):undefined"
16
+ :loading-text="loading ? $t('Loading participants ...') : undefined"
11
17
  >
12
18
  <template #list>
13
- <div
14
- class="podcast-list"
15
- >
16
- <template
17
- v-for="p in displayArray"
18
- :key="p.participantId"
19
- >
20
- <ParticipantItem
21
- v-if="0!==p.participantId"
22
- :participant="p"
23
- />
19
+ <div class="podcast-list">
20
+ <template v-for="p in displayArray" :key="p.participantId">
21
+ <ParticipantItem v-if="0 !== p.participantId" :participant="p" />
24
22
  </template>
25
23
  </div>
26
24
  </template>
@@ -28,21 +26,24 @@
28
26
  </template>
29
27
 
30
28
  <script lang="ts">
31
- import ListPaginate from '../list/ListPaginate.vue';
32
- import { handle403 } from '../../mixins/handle403';
33
- import octopusApi from '@saooti/octopus-api';
34
- import ParticipantItem from './ParticipantItem.vue';
35
- import { useFilterStore } from '@/stores/FilterStore';
36
- import { mapState } from 'pinia';
37
- import { Participant, emptyParticipantData } from '@/stores/class/general/participant';
38
- import { defineComponent } from 'vue'
39
- import { AxiosError } from 'axios';
29
+ import ListPaginate from "../list/ListPaginate.vue";
30
+ import { handle403 } from "../../mixins/handle403";
31
+ import octopusApi from "@saooti/octopus-api";
32
+ import ParticipantItem from "./ParticipantItem.vue";
33
+ import { useFilterStore } from "@/stores/FilterStore";
34
+ import { mapState } from "pinia";
35
+ import {
36
+ Participant,
37
+ emptyParticipantData,
38
+ } from "@/stores/class/general/participant";
39
+ import { defineComponent } from "vue";
40
+ import { AxiosError } from "axios";
40
41
  export default defineComponent({
41
- name: 'ParticipantList',
42
+ name: "ParticipantList",
42
43
 
43
44
  components: {
44
45
  ParticipantItem,
45
- ListPaginate
46
+ ListPaginate,
46
47
  },
47
48
 
48
49
  mixins: [handle403],
@@ -50,8 +51,8 @@ export default defineComponent({
50
51
  props: {
51
52
  first: { default: 0, type: Number },
52
53
  size: { default: 30, type: Number },
53
- query: { default: undefined, type: String},
54
- organisationId: { default: undefined, type: String},
54
+ query: { default: undefined, type: String },
55
+ organisationId: { default: undefined, type: String },
55
56
  showCount: { default: false, type: Boolean },
56
57
  },
57
58
 
@@ -67,17 +68,19 @@ export default defineComponent({
67
68
  };
68
69
  },
69
70
 
70
-
71
71
  computed: {
72
- ...mapState(useFilterStore, ['filterOrgaId']),
73
- displayArray(): Array<Participant>{
74
- if(this.isMobile){
72
+ ...mapState(useFilterStore, ["filterOrgaId"]),
73
+ displayArray(): Array<Participant> {
74
+ if (this.isMobile) {
75
75
  return this.participants;
76
76
  }
77
- return this.participants.slice(this.dfirst, Math.min(this.dfirst + this.dsize,this.totalCount));
78
- },
79
- organisation(): string|undefined {
80
- return this.organisationId?this.organisationId:this.filterOrgaId;
77
+ return this.participants.slice(
78
+ this.dfirst,
79
+ Math.min(this.dfirst + this.dsize, this.totalCount),
80
+ );
81
+ },
82
+ organisation(): string | undefined {
83
+ return this.organisationId ? this.organisationId : this.filterOrgaId;
81
84
  },
82
85
  },
83
86
  watch: {
@@ -87,55 +90,82 @@ export default defineComponent({
87
90
  organisation(): void {
88
91
  this.reloadList();
89
92
  },
90
- dsize():void{
93
+ dsize(): void {
91
94
  this.reloadList();
92
- },
93
- dfirst(): void{
94
- if(!this.participants[this.dfirst] || 0===this.participants[this.dfirst].participantId){
95
- this.fetchContent(false);
96
- }
97
- },
95
+ },
96
+ dfirst(): void {
97
+ if (
98
+ !this.participants[this.dfirst] ||
99
+ 0 === this.participants[this.dfirst].participantId
100
+ ) {
101
+ this.fetchContent(false);
102
+ }
103
+ },
98
104
  },
99
105
 
100
106
  created() {
101
107
  this.fetchContent(true);
102
108
  },
103
109
  methods: {
104
- reloadList(){
110
+ reloadList() {
105
111
  this.dfirst = 0;
106
112
  this.fetchContent(true);
107
113
  },
108
114
  async fetchContent(reset: boolean): Promise<void> {
109
115
  this.loading = true;
110
116
  try {
111
- const data = await octopusApi.fetchDataWithParams<{count: number;result:Array<Participant>;sort: string;}>(0, 'participant/search',{
112
- first: this.dfirst,
113
- size: this.dsize,
114
- query: this.query,
115
- organisationId: this.organisation,
116
- }, true);
117
+ const data = await octopusApi.fetchDataWithParams<{
118
+ count: number;
119
+ result: Array<Participant>;
120
+ sort: string;
121
+ }>(
122
+ 0,
123
+ "participant/search",
124
+ {
125
+ first: this.dfirst,
126
+ size: this.dsize,
127
+ query: this.query,
128
+ organisationId: this.organisation,
129
+ },
130
+ true,
131
+ );
117
132
  if (reset) {
118
133
  this.participants.length = 0;
119
134
  }
120
135
  this.displayCount = data.count;
121
- if(this.dfirst > this.participants.length){
122
- for (let i = this.participants.length-1, len = this.dfirst + this.dsize; i < len; i++) {
136
+ if (this.dfirst > this.participants.length) {
137
+ for (
138
+ let i = this.participants.length - 1,
139
+ len = this.dfirst + this.dsize;
140
+ i < len;
141
+ i++
142
+ ) {
123
143
  this.participants.push(emptyParticipantData());
124
144
  }
125
145
  }
126
- const responseParticipants = data.result.filter((p: Participant | null) => {
127
- if (null === p) {
128
- this.displayCount--;
129
- }
130
- return null !== p;
131
- });
132
- this.participants = this.participants.slice(0, this.dfirst).concat(responseParticipants).concat(this.participants.slice(this.dfirst+this.dsize, this.participants.length));
146
+ const responseParticipants = data.result.filter(
147
+ (p: Participant | null) => {
148
+ if (null === p) {
149
+ this.displayCount--;
150
+ }
151
+ return null !== p;
152
+ },
153
+ );
154
+ this.participants = this.participants
155
+ .slice(0, this.dfirst)
156
+ .concat(responseParticipants)
157
+ .concat(
158
+ this.participants.slice(
159
+ this.dfirst + this.dsize,
160
+ this.participants.length,
161
+ ),
162
+ );
133
163
  this.totalCount = data.count;
134
164
  } catch (error) {
135
- this.handle403((error as AxiosError));
165
+ this.handle403(error as AxiosError);
136
166
  }
137
167
  this.loading = false;
138
168
  },
139
169
  },
140
- })
141
- </script>
170
+ });
171
+ </script>
@@ -1,8 +1,5 @@
1
1
  <template>
2
- <div
3
- v-if="editRight || activePlaylist"
4
- class="emission-item-container"
5
- >
2
+ <div v-if="editRight || activePlaylist" class="emission-item-container">
6
3
  <router-link
7
4
  :to="{
8
5
  name: 'playlist',
@@ -26,10 +23,7 @@
26
23
  class="emission-description html-wysiwyg-content"
27
24
  >
28
25
  <!-- eslint-disable vue/no-v-html -->
29
- <div
30
- ref="descriptionPlaylist"
31
- v-html="urlify(description)"
32
- />
26
+ <div ref="descriptionPlaylist" v-html="urlify(description)" />
33
27
  <!-- eslint-enable -->
34
28
  </div>
35
29
  <router-link
@@ -48,63 +42,66 @@
48
42
  v-lazy="proxyImageUrl(playlist.imageUrl, '330')"
49
43
  width="330"
50
44
  height="330"
51
- :title="$t('Playlist name image', {name:name})"
52
- :alt="$t('Playlist name image', {name:name})"
45
+ :title="$t('Playlist name image', { name: name })"
46
+ :alt="$t('Playlist name image', { name: name })"
53
47
  class="img-box"
54
- >
48
+ />
55
49
  </router-link>
56
50
  </div>
57
51
  </template>
58
52
 
59
53
  <script lang="ts">
60
- import { Playlist } from '@/stores/class/general/playlist';
61
- import { state } from '../../../stores/ParamSdkStore';
62
- import imageProxy from '../../mixins/imageProxy';
63
- import displayMethods from '../../mixins/displayMethods';
64
- import { useFilterStore } from '@/stores/FilterStore';
65
- import { mapState } from 'pinia';
66
- import { defineComponent } from 'vue'
54
+ import { Playlist } from "@/stores/class/general/playlist";
55
+ import { state } from "../../../stores/ParamSdkStore";
56
+ import imageProxy from "../../mixins/imageProxy";
57
+ import displayMethods from "../../mixins/displayMethods";
58
+ import { useFilterStore } from "@/stores/FilterStore";
59
+ import { mapState } from "pinia";
60
+ import { defineComponent } from "vue";
67
61
  export default defineComponent({
68
- name: 'PlaylistItem',
62
+ name: "PlaylistItem",
69
63
 
70
64
  mixins: [displayMethods, imageProxy],
71
65
 
72
66
  props: {
73
- playlist: { default: ()=>({}), type: Object as ()=>Playlist},
67
+ playlist: { default: () => ({}), type: Object as () => Playlist },
74
68
  },
75
-
69
+
76
70
  computed: {
77
- ...mapState(useFilterStore, ['filterOrgaId']),
71
+ ...mapState(useFilterStore, ["filterOrgaId"]),
78
72
  isPodcastmaker(): boolean {
79
- return (state.generalParameters.podcastmaker as boolean);
73
+ return state.generalParameters.podcastmaker as boolean;
80
74
  },
81
75
  organisation(): string {
82
- return this.playlist?.publisher?.organisation?.name ??'';
76
+ return this.playlist?.publisher?.organisation?.name ?? "";
83
77
  },
84
78
  description(): string {
85
- return this.playlist.description ?? '';
79
+ return this.playlist.description ?? "";
86
80
  },
87
81
  name(): string {
88
82
  return this.playlist.title;
89
83
  },
90
- organisationId(): string|undefined {
84
+ organisationId(): string | undefined {
91
85
  return state.generalParameters.organisationId;
92
86
  },
93
87
  editRight(): boolean {
94
- return (true===state.generalParameters.isPlaylist &&
95
- this.organisationId === this.playlist.organisation?.id) ||
96
- (state.generalParameters.isAdmin as boolean);
88
+ return (
89
+ (true === state.generalParameters.isPlaylist &&
90
+ this.organisationId === this.playlist.organisation?.id) ||
91
+ (state.generalParameters.isAdmin as boolean)
92
+ );
97
93
  },
98
94
  activePlaylist(): boolean {
99
- return 0 !== Object.keys(this.playlist.samplingViews??[]).length;
95
+ return 0 !== Object.keys(this.playlist.samplingViews ?? []).length;
100
96
  },
101
97
  },
102
98
  mounted() {
103
- const playlistDesc = (this.$refs.descriptionPlaylist as HTMLElement);
104
- const playlistDescContainer = (this.$refs.descriptionPlaylistContainer as HTMLElement);
99
+ const playlistDesc = this.$refs.descriptionPlaylist as HTMLElement;
100
+ const playlistDescContainer = this.$refs
101
+ .descriptionPlaylistContainer as HTMLElement;
105
102
  if (playlistDesc?.clientHeight > playlistDescContainer?.clientHeight) {
106
- playlistDescContainer.classList.add('after-emission-description');
103
+ playlistDescContainer.classList.add("after-emission-description");
107
104
  }
108
105
  },
109
- })
110
- </script>
106
+ });
107
+ </script>