@saooti/octopus-sdk 35.1.7 → 35.2.1

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 (167) hide show
  1. package/package.json +3 -3
  2. package/src/App.vue +21 -12
  3. package/src/api/classicCrud.ts +6 -7
  4. package/src/components/display/categories/CategoryChooser.vue +5 -3
  5. package/src/components/display/categories/CategoryFilter.vue +25 -28
  6. package/src/components/display/categories/CategoryList.vue +19 -18
  7. package/src/components/display/comments/AddCommentModal.vue +5 -2
  8. package/src/components/display/comments/CommentBasicView.vue +1 -1
  9. package/src/components/display/comments/CommentInput.vue +17 -12
  10. package/src/components/display/comments/CommentItem.vue +10 -6
  11. package/src/components/display/comments/CommentList.vue +5 -5
  12. package/src/components/display/comments/CommentParentInfo.vue +1 -1
  13. package/src/components/display/comments/CommentPlayer.vue +8 -5
  14. package/src/components/display/comments/CommentSection.vue +10 -7
  15. package/src/components/display/edit/EditBox.vue +1 -1
  16. package/src/components/display/edit/EditCommentBox.vue +1 -1
  17. package/src/components/display/emission/EmissionChooser.vue +1 -1
  18. package/src/components/display/emission/EmissionInlineList.vue +4 -4
  19. package/src/components/display/emission/EmissionItem.vue +5 -5
  20. package/src/components/display/emission/EmissionList.vue +9 -6
  21. package/src/components/display/emission/EmissionPlayerItem.vue +26 -20
  22. package/src/components/display/filter/AdvancedSearch.vue +3 -3
  23. package/src/components/display/filter/CategorySearchFilter.vue +11 -11
  24. package/src/components/display/filter/ProductorSearch.vue +13 -12
  25. package/src/components/display/filter/RubriqueChoice.vue +2 -2
  26. package/src/components/display/filter/RubriqueFilter.vue +15 -17
  27. package/src/components/display/list/ListPaginate.vue +1 -1
  28. package/src/components/display/live/LiveHorizontalList.vue +1 -1
  29. package/src/components/display/live/LiveItem.vue +13 -11
  30. package/src/components/display/live/LiveList.vue +8 -8
  31. package/src/components/display/organisation/OrganisationChooser.vue +6 -4
  32. package/src/components/display/organisation/OrganisationChooserLight.vue +1 -1
  33. package/src/components/display/participant/ParticipantItem.vue +5 -5
  34. package/src/components/display/participant/ParticipantList.vue +5 -2
  35. package/src/components/display/playlist/PlaylistItem.vue +7 -4
  36. package/src/components/display/playlist/PlaylistList.vue +6 -4
  37. package/src/components/display/playlist/PodcastList.vue +3 -3
  38. package/src/components/display/playlist/PodcastPlaylistInlineList.vue +3 -3
  39. package/src/components/display/podcasts/AnimatorsItem.vue +6 -3
  40. package/src/components/display/podcasts/ParticipantDescription.vue +6 -3
  41. package/src/components/display/podcasts/PodcastFilterList.vue +2 -2
  42. package/src/components/display/podcasts/PodcastImage.vue +17 -21
  43. package/src/components/display/podcasts/PodcastInlineList.vue +1 -1
  44. package/src/components/display/podcasts/PodcastInlineListClassic.vue +7 -7
  45. package/src/components/display/podcasts/PodcastInlineListTemplate.vue +17 -13
  46. package/src/components/display/podcasts/PodcastItem.vue +2 -2
  47. package/src/components/display/podcasts/PodcastItemInfo.vue +4 -4
  48. package/src/components/display/podcasts/PodcastList.vue +10 -5
  49. package/src/components/display/podcasts/PodcastModuleBox.vue +5 -5
  50. package/src/components/display/podcasts/PodcastPlayBar.vue +12 -11
  51. package/src/components/display/podcasts/PodcastSwiperList.vue +7 -7
  52. package/src/components/display/rubriques/RubriqueChooser.vue +1 -1
  53. package/src/components/display/rubriques/RubriqueList.vue +16 -18
  54. package/src/components/display/sharing/QrCode.vue +10 -6
  55. package/src/components/display/sharing/ShareButtons.vue +4 -4
  56. package/src/components/display/sharing/ShareButtonsIntern.vue +4 -4
  57. package/src/components/display/sharing/ShareDistribution.vue +2 -2
  58. package/src/components/display/sharing/SharePlayer.vue +9 -6
  59. package/src/components/display/sharing/SharePlayerTypes.vue +6 -6
  60. package/src/components/display/sharing/SubscribeButtons.vue +1 -1
  61. package/src/components/misc/Footer.vue +21 -14
  62. package/src/components/misc/HomeDropdown.vue +7 -4
  63. package/src/components/misc/LeftMenu.vue +21 -22
  64. package/src/components/misc/TopBar.vue +23 -26
  65. package/src/components/misc/modal/ClipboardModal.vue +2 -2
  66. package/src/components/misc/modal/NewsletterModal.vue +12 -9
  67. package/src/components/misc/modal/ShareModalPlayer.vue +1 -1
  68. package/src/components/misc/player/Player.vue +17 -15
  69. package/src/components/misc/player/PlayerCompact.vue +5 -5
  70. package/src/components/misc/player/PlayerLarge.vue +1 -1
  71. package/src/components/misc/player/PlayerProgressBar.vue +9 -9
  72. package/src/components/misc/player/PlayerTimeline.vue +2 -2
  73. package/src/components/mixins/handle403.ts +6 -1
  74. package/src/components/mixins/imageProxy.ts +1 -1
  75. package/src/components/mixins/init.ts +7 -4
  76. package/src/components/mixins/orgaComputed.ts +4 -4
  77. package/src/components/mixins/organisationFilter.ts +8 -5
  78. package/src/components/mixins/player/playerComment.ts +24 -33
  79. package/src/components/mixins/player/playerDisplay.ts +38 -67
  80. package/src/components/mixins/player/playerLive.ts +16 -15
  81. package/src/components/mixins/player/playerLogic.ts +54 -64
  82. package/src/components/mixins/player/playerTranscript.ts +16 -10
  83. package/src/components/pages/Category.vue +8 -10
  84. package/src/components/pages/Emission.vue +3 -3
  85. package/src/components/pages/Emissions.vue +10 -7
  86. package/src/components/pages/Error403Page.vue +5 -2
  87. package/src/components/pages/Home.vue +17 -12
  88. package/src/components/pages/Lives.vue +13 -11
  89. package/src/components/pages/PageNotFound.vue +11 -6
  90. package/src/components/pages/Participant.vue +3 -3
  91. package/src/components/pages/Participants.vue +2 -2
  92. package/src/components/pages/Playlist.vue +3 -3
  93. package/src/components/pages/Playlists.vue +2 -2
  94. package/src/components/pages/Podcast.vue +11 -8
  95. package/src/components/pages/Podcasts.vue +11 -9
  96. package/src/components/pages/Rubrique.vue +1 -1
  97. package/src/components/pages/Search.vue +1 -1
  98. package/src/main.ts +6 -4
  99. package/src/stores/ApiStore.ts +65 -0
  100. package/src/stores/AuthStore.ts +43 -0
  101. package/src/stores/CommentStore.ts +40 -0
  102. package/src/stores/FilterStore.ts +63 -0
  103. package/src/stores/GeneralStore.ts +40 -0
  104. package/src/stores/PlayerStore.ts +134 -0
  105. package/src/{store → stores}/class/general/playlist.ts +1 -1
  106. package/tsconfig.json +0 -1
  107. package/src/store/ApiStore.ts +0 -33
  108. package/src/store/AppStore.ts +0 -76
  109. package/src/store/PlayerStore.ts +0 -87
  110. package/src/store/classStore/typeApiStore.ts +0 -43
  111. package/src/store/classStore/typeAppStore.ts +0 -81
  112. package/src/store/classStore/typeAuthStore.ts +0 -44
  113. package/src/store/classStore/typePlayerStore.ts +0 -15
  114. package/src/vuex-shim.d.ts +0 -8
  115. /package/src/{store/paramStore.ts → stores/ParamSdkStore.ts} +0 -0
  116. /package/src/{store → stores}/class/adserver/adserverConfig.ts +0 -0
  117. /package/src/{store → stores}/class/adserver/adserverOtherEmission.ts +0 -0
  118. /package/src/{store → stores}/class/adserver/adserverTiming.ts +0 -0
  119. /package/src/{store → stores}/class/cartouchier/cartouche.ts +0 -0
  120. /package/src/{store → stores}/class/cartouchier/cartouchier.ts +0 -0
  121. /package/src/{store → stores}/class/conference/conference.ts +0 -0
  122. /package/src/{store → stores}/class/conference/conferenceMessage.ts +0 -0
  123. /package/src/{store → stores}/class/conference/conferenceParticipant.ts +0 -0
  124. /package/src/{store → stores}/class/conference/pad.ts +0 -0
  125. /package/src/{store → stores}/class/conference/studioCall.ts +0 -0
  126. /package/src/{store → stores}/class/contract/contract.ts +0 -0
  127. /package/src/{store → stores}/class/contract/contractOrganisation.ts +0 -0
  128. /package/src/{store → stores}/class/ftp/ftpEmission.ts +0 -0
  129. /package/src/{store → stores}/class/ftp/ftpParam.ts +0 -0
  130. /package/src/{store → stores}/class/ftp/testFtpEmission.ts +0 -0
  131. /package/src/{store → stores}/class/general/audioView.ts +0 -0
  132. /package/src/{store → stores}/class/general/category.ts +0 -0
  133. /package/src/{store → stores}/class/general/classicSelectType.ts +0 -0
  134. /package/src/{store → stores}/class/general/comment.ts +0 -0
  135. /package/src/{store → stores}/class/general/customPlayer.ts +0 -0
  136. /package/src/{store → stores}/class/general/emission.ts +0 -0
  137. /package/src/{store → stores}/class/general/fetchParam.ts +0 -0
  138. /package/src/{store → stores}/class/general/initState.ts +0 -0
  139. /package/src/{store → stores}/class/general/interfacePageable.ts +0 -0
  140. /package/src/{store → stores}/class/general/ituneCategory.ts +0 -0
  141. /package/src/{store → stores}/class/general/listReturn.ts +0 -0
  142. /package/src/{store → stores}/class/general/media.ts +0 -0
  143. /package/src/{store → stores}/class/general/organisation.ts +0 -0
  144. /package/src/{store → stores}/class/general/pageable.ts +0 -0
  145. /package/src/{store → stores}/class/general/participant.ts +0 -0
  146. /package/src/{store → stores}/class/general/player.ts +0 -0
  147. /package/src/{store → stores}/class/general/podcast.ts +0 -0
  148. /package/src/{store → stores}/class/general/sortPageable.ts +0 -0
  149. /package/src/{store → stores}/class/general/soundcastCategory.ts +0 -0
  150. /package/src/{store → stores}/class/ouestFrance/ofTag.ts +0 -0
  151. /package/src/{store → stores}/class/ouestFrance/ofTagInfo.ts +0 -0
  152. /package/src/{store → stores}/class/ouestFrance/ofTagPage.ts +0 -0
  153. /package/src/{store → stores}/class/ouestFrance/ofTagSeo.ts +0 -0
  154. /package/src/{store → stores}/class/ouestFrance/ofTagVente.ts +0 -0
  155. /package/src/{store → stores}/class/ouestFrance/ofTagWithParents.ts +0 -0
  156. /package/src/{store → stores}/class/rss/aggregator.ts +0 -0
  157. /package/src/{store → stores}/class/rss/rssEmission.ts +0 -0
  158. /package/src/{store → stores}/class/rss/rssInfo.ts +0 -0
  159. /package/src/{store → stores}/class/rubrique/rubriquage.ts +0 -0
  160. /package/src/{store → stores}/class/rubrique/rubriquageFilter.ts +0 -0
  161. /package/src/{store → stores}/class/rubrique/rubrique.ts +0 -0
  162. /package/src/{store → stores}/class/stat/statArrayIncome.ts +0 -0
  163. /package/src/{store → stores}/class/stat/statArrayObject.ts +0 -0
  164. /package/src/{store → stores}/class/stat/statGraph.ts +0 -0
  165. /package/src/{store → stores}/class/user/person.ts +0 -0
  166. /package/src/{store → stores}/class/user/profile.ts +0 -0
  167. /package/src/{store → stores}/class/user/userKeycloak.ts +0 -0
@@ -1,6 +1,6 @@
1
1
  <template>
2
2
  <div
3
- v-if="filterOrga || organisationId"
3
+ v-if="filterOrgaId || organisationId"
4
4
  class="d-flex flex-column align-items-center"
5
5
  >
6
6
  <ClassicLoading
@@ -42,8 +42,10 @@ import octopusApi from '@saooti/octopus-api';
42
42
  import dayjs from 'dayjs';
43
43
  import localizedFormat from 'dayjs/plugin/localizedFormat';
44
44
  dayjs.extend(localizedFormat);
45
- import { state } from '../../../store/paramStore';
46
- import { Conference } from '@/store/class/conference/conference';
45
+ import { useFilterStore } from '@/stores/FilterStore';
46
+ import { mapState } from 'pinia';
47
+ import { state } from '../../../stores/ParamSdkStore';
48
+ import { Conference } from '@/stores/class/conference/conference';
47
49
  import { defineComponent } from 'vue'
48
50
  import { AxiosError } from 'axios';
49
51
  export default defineComponent({
@@ -69,6 +71,7 @@ export default defineComponent({
69
71
  },
70
72
 
71
73
  computed: {
74
+ ...mapState(useFilterStore, ['filterOrgaId']),
72
75
  livesArray(): Array<{status:string, title:string, lives:Array<Conference>}>{
73
76
  return [
74
77
  {status: "RECORDING", title:this.$t('In live'), lives:[]},
@@ -83,10 +86,7 @@ export default defineComponent({
83
86
  return this.loaded && !this.livesArray[0].lives.length && !this.livesArray[2].lives.length && !this.livesArray[3].lives.length;
84
87
  },
85
88
  filterOrgaUsed(): string|undefined {
86
- return this.filterOrga?this.filterOrga:this.organisationId;
87
- },
88
- filterOrga(): string {
89
- return this.$store.state.filter.organisationId;
89
+ return this.filterOrgaId?this.filterOrgaId:this.organisationId;
90
90
  },
91
91
  displayNextLiveMessage(): string {
92
92
  if (0 !== this.livesArray[0].lives.length) return '';
@@ -120,7 +120,7 @@ export default defineComponent({
120
120
  this.loaded = true;
121
121
  }
122
122
  },
123
- filterOrga(): void {
123
+ filterOrgaId(): void {
124
124
  if(!this.loading){
125
125
  this.fetchContent();
126
126
  }
@@ -119,9 +119,10 @@ import { orgaComputed } from '../../mixins/orgaComputed';
119
119
  //@ts-ignore
120
120
  import VueMultiselect from 'vue-multiselect';
121
121
  import octopusApi from '@saooti/octopus-api';
122
- import { state } from '../../../store/paramStore';
123
- import { Organisation } from '@/store/class/general/organisation';
124
-
122
+ import { state } from '../../../stores/ParamSdkStore';
123
+ import { Organisation } from '@/stores/class/general/organisation';
124
+ import { useAuthStore } from '@/stores/AuthStore';
125
+ import { mapState } from 'pinia';
125
126
  const ELEMENTS_COUNT = 50;
126
127
  const DEFAULT_ORGANISATION_ID = "";
127
128
  const DEFAULT_ORGANISATION_IMAGE = '/img/emptypodcast.webp';
@@ -163,6 +164,7 @@ export default defineComponent({
163
164
  },
164
165
 
165
166
  computed: {
167
+ ...mapState(useAuthStore, ['authOrganisation']),
166
168
  myOrganisation(): Organisation|undefined {
167
169
  if (!this.authenticated) return undefined;
168
170
  return {
@@ -188,7 +190,7 @@ export default defineComponent({
188
190
  async created() {
189
191
  if (
190
192
  this.authenticated &&
191
- undefined === this.$store.state.auth?.organisation.imageUrl
193
+ (undefined === this.authOrganisation.imageUrl ||'' === this.authOrganisation.imageUrl)
192
194
  ) {
193
195
  const data = await octopusApi.fetchData<Organisation>(0,`organisation/${this.myOrganisationId ?this.myOrganisationId:""}`);
194
196
  this.myImage = data.imageUrl;
@@ -26,7 +26,7 @@
26
26
  </template>
27
27
 
28
28
  <script lang="ts">
29
- import { Organisation } from '@/store/class/general/organisation';
29
+ import { Organisation } from '@/stores/class/general/organisation';
30
30
  import octopusApi from '@saooti/octopus-api';
31
31
  import { defineComponent } from 'vue'
32
32
  export default defineComponent({
@@ -7,7 +7,7 @@
7
7
  :to="{
8
8
  name: 'participant',
9
9
  params: { participantId: participant.participantId },
10
- query: { productor: filterOrga },
10
+ query: { productor: filterOrgaId },
11
11
  }"
12
12
  class="mt-3 text-dark"
13
13
  :title="$t('Participant')"
@@ -45,7 +45,7 @@
45
45
  :to="{
46
46
  name: 'productor',
47
47
  params: { productorId: participant.orga.id },
48
- query: { productor: filterOrga },
48
+ query: { productor: filterOrgaId },
49
49
  }"
50
50
  class="participant-producer"
51
51
  >
@@ -56,13 +56,13 @@
56
56
 
57
57
  <script lang="ts">
58
58
  import octopusApi from '@saooti/octopus-api';
59
- import { Participant } from '@/store/class/general/participant';
60
- import { state } from '../../../store/paramStore';
59
+ import { Participant } from '@/stores/class/general/participant';
60
+ import { state } from '../../../stores/ParamSdkStore';
61
61
  import imageProxy from '../../mixins/imageProxy';
62
62
  import displayMethods from '../../mixins/displayMethods';
63
63
  import { orgaComputed } from '../../mixins/orgaComputed';
64
64
  import { defineComponent } from 'vue'
65
- import { Podcast } from '@/store/class/general/podcast';
65
+ import { Podcast } from '@/stores/class/general/podcast';
66
66
  export default defineComponent({
67
67
  name: 'ParticpantItem',
68
68
  mixins: [displayMethods, orgaComputed, imageProxy],
@@ -32,7 +32,9 @@ import ListPaginate from '../list/ListPaginate.vue';
32
32
  import { handle403 } from '../../mixins/handle403';
33
33
  import octopusApi from '@saooti/octopus-api';
34
34
  import ParticipantItem from './ParticipantItem.vue';
35
- import { Participant, emptyParticipantData } from '@/store/class/general/participant';
35
+ import { useFilterStore } from '@/stores/FilterStore';
36
+ import { mapState } from 'pinia';
37
+ import { Participant, emptyParticipantData } from '@/stores/class/general/participant';
36
38
  import { defineComponent } from 'vue'
37
39
  import { AxiosError } from 'axios';
38
40
  export default defineComponent({
@@ -67,6 +69,7 @@ export default defineComponent({
67
69
 
68
70
 
69
71
  computed: {
72
+ ...mapState(useFilterStore, ['filterOrgaId']),
70
73
  displayArray(): Array<Participant>{
71
74
  if(this.isMobile){
72
75
  return this.participants;
@@ -74,7 +77,7 @@ export default defineComponent({
74
77
  return this.participants.slice(this.dfirst, Math.min(this.dfirst + this.dsize,this.totalCount));
75
78
  },
76
79
  organisation(): string|undefined {
77
- return this.organisationId?this.organisationId:this.$store.state.filter.organisationId;
80
+ return this.organisationId?this.organisationId:this.filterOrgaId;
78
81
  },
79
82
  },
80
83
  watch: {
@@ -7,7 +7,7 @@
7
7
  :to="{
8
8
  name: 'playlist',
9
9
  params: { playlistId: playlist.playlistId },
10
- query: { productor: $store.state.filter.organisationId },
10
+ query: { productor: filterOrgaId },
11
11
  }"
12
12
  :title="$t('Playlist')"
13
13
  class="d-flex flex-grow-1 text-dark"
@@ -45,7 +45,7 @@
45
45
  :to="{
46
46
  name: 'productor',
47
47
  params: { productorId: playlist.organisation.id },
48
- query: { productor: $store.state.filter.organisationId },
48
+ query: { productor: filterOrgaId },
49
49
  }"
50
50
  class="emission-producer text-primary mt-auto"
51
51
  >
@@ -57,10 +57,12 @@
57
57
  </template>
58
58
 
59
59
  <script lang="ts">
60
- import { Playlist } from '@/store/class/general/playlist';
61
- import { state } from '../../../store/paramStore';
60
+ import { Playlist } from '@/stores/class/general/playlist';
61
+ import { state } from '../../../stores/ParamSdkStore';
62
62
  import imageProxy from '../../mixins/imageProxy';
63
63
  import displayMethods from '../../mixins/displayMethods';
64
+ import { useFilterStore } from '@/stores/FilterStore';
65
+ import { mapState } from 'pinia';
64
66
  import { defineComponent } from 'vue'
65
67
  export default defineComponent({
66
68
  name: 'PlaylistItem',
@@ -72,6 +74,7 @@ export default defineComponent({
72
74
  },
73
75
 
74
76
  computed: {
77
+ ...mapState(useFilterStore, ['filterOrgaId']),
75
78
  isPodcastmaker(): boolean {
76
79
  return (state.generalParameters.podcastmaker as boolean);
77
80
  },
@@ -32,8 +32,10 @@ import ListPaginate from '../list/ListPaginate.vue';
32
32
  import { handle403 } from '../../mixins/handle403';
33
33
  import octopusApi from '@saooti/octopus-api';
34
34
  import PlaylistItem from './PlaylistItem.vue';
35
- import { Playlist, emptyPlaylistData } from '@/store/class/general/playlist';
36
- import { defineComponent } from 'vue'
35
+ import { Playlist, emptyPlaylistData } from '@/stores/class/general/playlist';
36
+ import { useFilterStore } from '@/stores/FilterStore';
37
+ import { mapState } from 'pinia';
38
+ import { defineComponent } from 'vue';
37
39
  import { AxiosError } from 'axios';
38
40
  export default defineComponent({
39
41
  name: 'PlaylistList',
@@ -63,9 +65,9 @@ export default defineComponent({
63
65
  isMobile: false as boolean,
64
66
  };
65
67
  },
66
-
67
68
 
68
69
  computed: {
70
+ ...mapState(useFilterStore, ['filterOrgaId']),
69
71
  displayArray(): Array<Playlist>{
70
72
  if(this.isMobile){
71
73
  return this.playlists;
@@ -79,7 +81,7 @@ export default defineComponent({
79
81
  return !this.query ?'NAME': 'SCORE';
80
82
  },
81
83
  organisation(): string|undefined {
82
- return this.organisationId ?this.organisationId: this.$store.state.filter.organisationId;
84
+ return this.organisationId ?this.organisationId: this.filterOrgaId;
83
85
  },
84
86
  },
85
87
  watch: {
@@ -46,10 +46,10 @@ import { handle403 } from '../../mixins/handle403';
46
46
  import { orgaComputed } from '../../mixins/orgaComputed';
47
47
  import octopusApi from '@saooti/octopus-api';
48
48
  import PodcastItem from '../podcasts/PodcastItem.vue';
49
- import { state } from '../../../store/paramStore';
49
+ import { state } from '../../../stores/ParamSdkStore';
50
50
  import ClassicSearch from '../../form/ClassicSearch.vue';
51
- import { Podcast } from '@/store/class/general/podcast';
52
- import { Playlist } from '@/store/class/general/playlist';
51
+ import { Podcast } from '@/stores/class/general/podcast';
52
+ import { Playlist } from '@/stores/class/general/playlist';
53
53
  import { defineComponent } from 'vue'
54
54
  import { AxiosError } from 'axios';
55
55
  export default defineComponent({
@@ -63,9 +63,9 @@ import domHelper from '../../../helper/dom';
63
63
  import PodcastItem from '../podcasts/PodcastItem.vue';
64
64
  import ClassicLoading from '../../form/ClassicLoading.vue';
65
65
  const PHONE_WIDTH = 960;
66
- import { state } from '../../../store/paramStore';
67
- import { Podcast } from '@/store/class/general/podcast';
68
- import { Playlist } from '@/store/class/general/playlist';
66
+ import { state } from '../../../stores/ParamSdkStore';
67
+ import { Podcast } from '@/stores/class/general/podcast';
68
+ import { Playlist } from '@/stores/class/general/playlist';
69
69
  import { defineComponent } from 'vue'
70
70
  export default defineComponent({
71
71
  name: 'PodcastPlaylistInlineList',
@@ -7,7 +7,7 @@
7
7
  :to="{
8
8
  name: 'participant',
9
9
  params: { participantId: animator.participantId },
10
- query: { productor: $store.state.filter.organisationId },
10
+ query: { productor: filterOrgaId },
11
11
  }"
12
12
  :title="$t('Participant')"
13
13
  class="podcast-item-animator text-dark"
@@ -18,8 +18,10 @@
18
18
  </template>
19
19
 
20
20
  <script lang="ts">
21
- import { Participant } from '@/store/class/general/participant';
22
- import { defineComponent } from 'vue'
21
+ import { Participant } from '@/stores/class/general/participant';
22
+ import { useFilterStore } from '@/stores/FilterStore';
23
+ import { mapState } from 'pinia';
24
+ import { defineComponent } from 'vue';
23
25
  export default defineComponent({
24
26
  name: 'AnimatorsItem',
25
27
 
@@ -27,6 +29,7 @@ export default defineComponent({
27
29
  animator: { default: undefined, type: Object as ()=> Participant},
28
30
  },
29
31
  computed:{
32
+ ...mapState(useFilterStore, ['filterOrgaId']),
30
33
  animatorName(): string{
31
34
  return (`${this.animator?.firstName??''} ${this.animator?.lastName??''}`).trim();
32
35
  }
@@ -41,7 +41,7 @@
41
41
  name: 'participant',
42
42
  params: { participantId: participant.participantId },
43
43
  query: {
44
- productor: $store.state.filter.organisationId,
44
+ productor: filterOrgaId,
45
45
  },
46
46
  }"
47
47
  >
@@ -52,8 +52,10 @@
52
52
 
53
53
  <script lang="ts">
54
54
  import Popover from '../../misc/Popover.vue';
55
- import { Participant } from '@/store/class/general/participant';
56
- import { defineComponent } from 'vue'
55
+ import { Participant } from '@/stores/class/general/participant';
56
+ import { useFilterStore } from '@/stores/FilterStore';
57
+ import { mapState } from 'pinia';
58
+ import { defineComponent } from 'vue';
57
59
  export default defineComponent({
58
60
  name: 'ParticipantDescription',
59
61
 
@@ -67,6 +69,7 @@ export default defineComponent({
67
69
  },
68
70
 
69
71
  computed:{
72
+ ...mapState(useFilterStore, ['filterOrgaId']),
70
73
  idPopover(): string{
71
74
  return this.isGuest ? "popover-guests-help" : "popover-animators-help";
72
75
  },
@@ -37,9 +37,9 @@
37
37
  <script lang="ts">
38
38
  import ClassicSearch from '../../form/ClassicSearch.vue';
39
39
  import PodcastList from './PodcastList.vue';
40
- import { Category } from '@/store/class/general/category';
40
+ import { Category } from '@/stores/class/general/category';
41
41
  import { defineComponent, defineAsyncComponent } from 'vue';
42
- import { Podcast } from '@/store/class/general/podcast';
42
+ import { Podcast } from '@/stores/class/general/podcast';
43
43
  const CategoryChooser = defineAsyncComponent(() => import('../categories/CategoryChooser.vue'));
44
44
  export default defineComponent({
45
45
  components: {
@@ -88,12 +88,12 @@
88
88
  </template>
89
89
 
90
90
  <script lang="ts">
91
- import { mapState } from 'vuex';
92
- import { state } from '../../../store/paramStore';
93
- import {StoreState} from '@/store/classStore/typeAppStore';
94
- import { Podcast } from '@/store/class/general/podcast';
95
- import { Conference } from '@/store/class/conference/conference';
91
+ import { state } from '../../../stores/ParamSdkStore';
92
+ import { Podcast } from '@/stores/class/general/podcast';
93
+ import { Conference } from '@/stores/class/conference/conference';
96
94
  import imageProxy from '../../mixins/imageProxy';
95
+ import { usePlayerStore } from '@/stores/PlayerStore';
96
+ import { mapState, mapActions } from 'pinia';
97
97
  import { defineComponent } from 'vue'
98
98
  export default defineComponent({
99
99
  name: 'PodcastImage',
@@ -113,19 +113,14 @@ export default defineComponent({
113
113
  };
114
114
  },
115
115
  computed: {
116
- ...mapState({
117
- playingPodcast(state: StoreState) {
118
- return (
119
- (state.player.podcast &&
120
- state.player.podcast.podcastId === this.podcast.podcastId) ||
121
- (this.fetchConference &&
122
- 'null' !== this.fetchConference &&
123
- state.player.live &&
124
- state.player.live.conferenceId ===
125
- this.fetchConference.conferenceId)
126
- );
127
- },
128
- }),
116
+ ...mapState(usePlayerStore, ['playerPodcast', 'playerLive', 'playerStatus']),
117
+ playingPodcast(){
118
+ return (
119
+ (this.playerPodcast?.podcastId === this.podcast.podcastId) ||
120
+ (this.fetchConference && 'null' !== this.fetchConference.toString() &&
121
+ this.playerLive?.conferenceId ===this.fetchConference.conferenceId)
122
+ );
123
+ },
129
124
  authenticated(): boolean {
130
125
  return (state.generalParameters.authenticated as boolean);
131
126
  },
@@ -252,18 +247,19 @@ export default defineComponent({
252
247
  },
253
248
 
254
249
  methods: {
250
+ ...mapActions(usePlayerStore, ['playerChangeStatus', 'playerPlay']),
255
251
  play(): void {
256
252
  if (this.isLiveToBeRecorded) {
257
253
  return;
258
254
  }
259
255
  if(this.playingPodcast){
260
- this.$store.commit('player/pause', "PLAYING"===this.$store.state.player.status);
256
+ this.playerChangeStatus("PLAYING"===this.playerStatus);
261
257
  return;
262
258
  }
263
259
  if (!this.recordingLive) {
264
- this.$store.commit('player/playPodcast', this.podcast);
260
+ this.playerPlay(this.podcast);
265
261
  }else{
266
- this.$store.commit('player/playPodcast', {
262
+ this.playerPlay({
267
263
  title: this.podcast.title,
268
264
  audioUrl: this.podcast.audioUrl,
269
265
  duration: this.podcast.duration,
@@ -37,7 +37,7 @@
37
37
  </template>
38
38
 
39
39
  <script lang="ts">
40
- import { state } from '../../../store/paramStore';
40
+ import { state } from '../../../stores/ParamSdkStore';
41
41
  import { defineAsyncComponent, defineComponent } from 'vue';
42
42
  const PodcastInlineListClassic = defineAsyncComponent(() => import('./PodcastInlineListClassic.vue'));
43
43
  const PodcastSwiperList = defineAsyncComponent(() => import('./PodcastSwiperList.vue'));
@@ -53,8 +53,10 @@ import domHelper from '../../../helper/dom';
53
53
  import PodcastItem from './PodcastItem.vue';
54
54
  import ClassicLoading from '../../form/ClassicLoading.vue';
55
55
  const PHONE_WIDTH = 960;
56
- import { state } from '../../../store/paramStore';
57
- import { Podcast } from '@/store/class/general/podcast';
56
+ import { useFilterStore } from '@/stores/FilterStore';
57
+ import { mapState } from 'pinia';
58
+ import { state } from '../../../stores/ParamSdkStore';
59
+ import { Podcast } from '@/stores/class/general/podcast';
58
60
  import imageProxy from '../../mixins/imageProxy';
59
61
  import { defineComponent } from 'vue'
60
62
  export default defineComponent({
@@ -98,6 +100,7 @@ export default defineComponent({
98
100
  };
99
101
  },
100
102
  computed: {
103
+ ...mapState(useFilterStore, ['filterOrgaId']),
101
104
  podcasts(): Array<Podcast> {
102
105
  return this.allPodcasts.slice(this.index, this.index + this.size);
103
106
  },
@@ -110,11 +113,8 @@ export default defineComponent({
110
113
  isInlineAnimation(): boolean {
111
114
  return (state.generalParameters.isInlineAnimation as boolean);
112
115
  },
113
- filterOrga(): string {
114
- return this.$store.state.filter.organisationId;
115
- },
116
116
  organisation(): string|undefined {
117
- return this.organisationId ?this.organisationId: this.filterOrga;
117
+ return this.organisationId ?this.organisationId: this.filterOrgaId;
118
118
  },
119
119
  previousAvailable(): boolean {
120
120
  return this.index > 0;
@@ -126,7 +126,7 @@ export default defineComponent({
126
126
  return this.direction > 0 ? 'out-left' : 'out-right';
127
127
  },
128
128
  watchVariable():string{
129
- return `${this.emissionId}|${this.organisationId}|${this.filterOrga}|${this.iabId}|${this.rubriqueId}|${this.rubriquageId}|${this.query}`;
129
+ return `${this.emissionId}|${this.organisationId}|${this.filterOrgaId}|${this.iabId}|${this.rubriqueId}|${this.rubriquageId}|${this.query}`;
130
130
  }
131
131
  },
132
132
  watch: {
@@ -72,10 +72,12 @@
72
72
  </template>
73
73
 
74
74
  <script lang="ts">
75
- import { RubriquageFilter } from '@/store/class/rubrique/rubriquageFilter';
75
+ import { RubriquageFilter } from '@/stores/class/rubrique/rubriquageFilter';
76
76
  import { defineComponent } from 'vue'
77
77
  import { RouteLocationRaw } from 'vue-router';
78
- import { Rubrique } from '@/store/class/rubrique/rubrique';
78
+ import { useFilterStore } from '@/stores/FilterStore';
79
+ import { mapState, mapActions } from 'pinia';
80
+ import { Rubrique } from '@/stores/class/rubrique/rubrique';
79
81
  export default defineComponent({
80
82
  name: 'PodcastInlineListTemplate',
81
83
 
@@ -104,9 +106,10 @@ export default defineComponent({
104
106
  },
105
107
 
106
108
  computed: {
109
+ ...mapState(useFilterStore, ['filterOrgaId', 'filterRubrique', 'filterIab', 'filterRubriquage']),
107
110
  rubriqueQueryParam(): string|undefined{
108
- if(this.$store.state.filter?.rubriqueFilter?.length){
109
- return this.$store.state.filter.rubriqueFilter.map((value: RubriquageFilter) => value.rubriquageId+':'+value.rubriqueId).join();
111
+ if(this.filterRubrique?.length){
112
+ return this.filterRubrique.map((value: RubriquageFilter) => value.rubriquageId+':'+value.rubriqueId).join();
110
113
  }
111
114
  return undefined;
112
115
  },
@@ -116,19 +119,20 @@ export default defineComponent({
116
119
  return {
117
120
  name: 'category',
118
121
  params:{ 'iabId': this.iabId },
119
- query: { productor: this.$store.state.filter.organisationId },
122
+ query: { productor: this.filterOrgaId },
120
123
  };
121
124
  }
122
125
  return {
123
126
  name: 'podcasts',
124
- query: { productor: this.$store.state.filter.organisationId,
125
- iabId:this.$store.state.filter.iab?.id,
127
+ query: { productor: this.filterOrgaId,
128
+ iabId:this.filterIab?.id,
126
129
  rubriquesId: this.rubriqueQueryParam },
127
130
  };
128
131
  },
129
132
  },
130
133
 
131
134
  methods: {
135
+ ...mapActions(useFilterStore, ['filterUpdateRubrique']),
132
136
  sortChrono():void{
133
137
  this.$emit('sortChrono');
134
138
  },
@@ -153,18 +157,18 @@ export default defineComponent({
153
157
  nameRubriquage: '',
154
158
  nameRubrique: ''
155
159
  };
156
- if(this.$store.state.filter.rubriquageArray.length){
157
- const rubriqueChosen = this.$store.state.filter.rubriquageArray[this.rubriqueId.length - 1].rubriques.find((element: Rubrique) => element.rubriqueId === rubriqueChosenId);
160
+ if(this.filterRubriquage.length){
161
+ const rubriqueChosen = this.filterRubriquage[this.rubriqueId.length - 1].rubriques.find((element: Rubrique) => element.rubriqueId === rubriqueChosenId);
158
162
  filterToAdd = {
159
- rubriquageId: this.$store.state.filter.rubriquageArray[this.rubriqueId.length - 1].rubriquageId,
163
+ rubriquageId: this.filterRubriquage[this.rubriqueId.length - 1].rubriquageId,
160
164
  rubriqueId: rubriqueChosenId,
161
- nameRubriquage: this.$store.state.filter.rubriquageArray[this.rubriqueId.length - 1].title,
165
+ nameRubriquage: this.filterRubriquage[this.rubriqueId.length - 1].title,
162
166
  nameRubrique: rubriqueChosen.name
163
167
  };
164
168
  }
165
- const newFilter: Array<RubriquageFilter> = Array.from(this.$store.state.filter.rubriqueFilter);
169
+ const newFilter: Array<RubriquageFilter> = Array.from(this.filterRubrique);
166
170
  newFilter.push(filterToAdd);
167
- this.$store.commit('filterRubrique', newFilter);
171
+ this.filterUpdateRubrique(newFilter);
168
172
  const queries = this.$route.query;
169
173
  const queryString = newFilter.map(value => value.rubriquageId+':'+value.rubriqueId).join();
170
174
  this.$router.push({ name: 'podcasts',query: { ...queries, ...{ rubriquesId: queryString }} });
@@ -52,9 +52,9 @@
52
52
  <script lang="ts">
53
53
  import PodcastItemInfo from './PodcastItemInfo.vue';
54
54
  import PodcastImage from './PodcastImage.vue';
55
- import { state } from '../../../store/paramStore';
55
+ import { state } from '../../../stores/ParamSdkStore';
56
56
  import dayjs from 'dayjs';
57
- import { Podcast } from '@/store/class/general/podcast';
57
+ import { Podcast } from '@/stores/class/general/podcast';
58
58
  import { defineComponent } from 'vue'
59
59
  export default defineComponent({
60
60
  name: 'PodcastItem',
@@ -18,7 +18,7 @@
18
18
  :to="{
19
19
  name: 'podcast',
20
20
  params: { podcastId: podcastId },
21
- query: { productor: filterOrga },
21
+ query: { productor: filterOrgaId },
22
22
  }"
23
23
  class="text-dark flex-grow-1 title-podcast-item"
24
24
  >
@@ -39,7 +39,7 @@
39
39
  :to="{
40
40
  name: 'productor',
41
41
  params: { productorId: podcastOrganisationId },
42
- query: { productor: filterOrga },
42
+ query: { productor: filterOrgaId },
43
43
  }"
44
44
  class="text-dark producer-podcast-item"
45
45
  >
@@ -50,14 +50,14 @@
50
50
 
51
51
  <script lang="ts">
52
52
  import AnimatorsItem from './AnimatorsItem.vue';
53
- import { state } from '../../../store/paramStore';
53
+ import { state } from '../../../stores/ParamSdkStore';
54
54
  import { orgaComputed } from '../../mixins/orgaComputed';
55
55
  import dayjs from 'dayjs';
56
56
  // @ts-ignore
57
57
  import humanizeDuration from 'humanize-duration';
58
58
  import PodcastPlayBar from './PodcastPlayBar.vue';
59
59
  import { defineComponent } from 'vue'
60
- import { Participant } from '@/store/class/general/participant';
60
+ import { Participant } from '@/stores/class/general/participant';
61
61
  export default defineComponent({
62
62
  name: 'PodcastItemInfo',
63
63
 
@@ -34,10 +34,13 @@ import ListPaginate from '../list/ListPaginate.vue';
34
34
  import { handle403 } from '../../mixins/handle403';
35
35
  import octopusApi from '@saooti/octopus-api';
36
36
  import PodcastItem from './PodcastItem.vue';
37
- import { state } from '../../../store/paramStore';
38
- import { Podcast, emptyPodcastData } from '@/store/class/general/podcast';
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';
39
42
  import { defineComponent } from 'vue'
40
- import { FetchParam } from '@/store/class/general/fetchParam';
43
+ import { FetchParam } from '@/stores/class/general/fetchParam';
41
44
  import { AxiosError } from 'axios';
42
45
  export default defineComponent({
43
46
  name: 'PodcastList',
@@ -86,6 +89,8 @@ export default defineComponent({
86
89
  },
87
90
 
88
91
  computed: {
92
+ ...mapState(useFilterStore, ['filterOrgaId']),
93
+ ...mapState(useAuthStore, ['authProfile']),
89
94
  displayArray(): Array<Podcast>{
90
95
  if(this.isMobile || this.justSizeChosen){
91
96
  return this.podcasts;
@@ -98,7 +103,7 @@ export default defineComponent({
98
103
  ${this.rubriqueId}|${this.rubriquageId}|${this.before}|${this.after}|${this.includeHidden}|${this.noRubriquageId}|${this.notValid}`;
99
104
  },
100
105
  organisation(): string|undefined {
101
- return this.organisationId ?this.organisationId: this.$store.state.filter.organisationId;
106
+ return this.organisationId ?this.organisationId: this.filterOrgaId;
102
107
  },
103
108
  sort(): string {
104
109
  return this.popularSort? "POPULARITY" : this.sortCriteria??'DATE';
@@ -158,7 +163,7 @@ export default defineComponent({
158
163
  rubriquageId: this.rubriquageId.length ? this.rubriquageId : undefined,
159
164
  includeHidden: this.includeHidden,
160
165
  validity: undefined !== this.notValid?!this.notValid: undefined,
161
- publisherId:this.notValid && !(state.generalParameters.isProduction as boolean)?this.$store.state.auth?.profile.userId:undefined,
166
+ publisherId:this.notValid && !(state.generalParameters.isProduction as boolean)?this.authProfile.userId:undefined,
162
167
  includeStatus:["READY","PROCESSING"]
163
168
  };
164
169
  try {