@saooti/octopus-sdk 31.0.24 → 31.0.27

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 (53) hide show
  1. package/README.md +15 -1
  2. package/index.ts +5 -2
  3. package/package.json +2 -1
  4. package/src/components/display/categories/CategoryList.vue +5 -5
  5. package/src/components/display/emission/EmissionItem.vue +4 -8
  6. package/src/components/display/emission/EmissionPlayerItem.vue +8 -16
  7. package/src/components/display/filter/AdvancedSearch.vue +2 -12
  8. package/src/components/display/filter/ProductorSearch.vue +0 -3
  9. package/src/components/display/live/LiveItem.vue +4 -8
  10. package/src/components/display/organisation/OrganisationChooserLight.vue +18 -25
  11. package/src/components/display/participant/ParticipantItem.vue +4 -8
  12. package/src/components/display/playlist/PlaylistItem.vue +4 -8
  13. package/src/components/display/podcasts/PodcastImage.vue +15 -9
  14. package/src/components/display/podcasts/PodcastInlineList.vue +43 -309
  15. package/src/components/display/podcasts/PodcastInlineListClassic.vue +246 -0
  16. package/src/components/display/podcasts/PodcastInlineListTemplate.vue +158 -0
  17. package/src/components/display/podcasts/PodcastItem.vue +5 -9
  18. package/src/components/display/podcasts/PodcastModuleBox.vue +3 -26
  19. package/src/components/display/podcasts/PodcastSwiperList.vue +209 -0
  20. package/src/components/display/rubriques/RubriqueList.vue +6 -5
  21. package/src/components/display/sharing/SharePlayer.vue +42 -81
  22. package/src/components/display/sharing/SharePlayerColors.vue +17 -15
  23. package/src/components/display/sharing/SharePlayerTypes.vue +15 -32
  24. package/src/components/display/sharing/SubscribeButtons.vue +44 -200
  25. package/src/components/form/ClassicCheckbox.vue +8 -8
  26. package/src/components/form/ClassicRadio.vue +9 -9
  27. package/src/components/form/ClassicSearch.vue +29 -29
  28. package/src/components/form/ClassicSelect.vue +12 -15
  29. package/src/components/misc/ErrorMessage.vue +6 -8
  30. package/src/components/misc/Footer.vue +65 -96
  31. package/src/components/misc/LeftMenu.vue +42 -93
  32. package/src/components/misc/Snackbar.vue +1 -1
  33. package/src/components/misc/TopBar.vue +42 -86
  34. package/src/components/misc/modal/ClipboardModal.vue +1 -8
  35. package/src/components/misc/modal/MessageModal.vue +1 -2
  36. package/src/components/misc/modal/QrCodeModal.vue +1 -11
  37. package/src/components/mixins/orgaComputed.ts +15 -0
  38. package/src/components/mixins/organisationFilter.ts +2 -0
  39. package/src/components/mixins/player/playerLogic.ts +1 -1
  40. package/src/components/pages/Emission.vue +43 -86
  41. package/src/components/pages/Emissions.vue +38 -59
  42. package/src/components/pages/Home.vue +5 -12
  43. package/src/components/pages/Lives.vue +1 -6
  44. package/src/components/pages/Participant.vue +34 -48
  45. package/src/components/pages/Participants.vue +10 -28
  46. package/src/components/pages/Playlist.vue +20 -31
  47. package/src/components/pages/Playlists.vue +5 -15
  48. package/src/components/pages/Podcast.vue +95 -115
  49. package/src/components/pages/Podcasts.vue +34 -92
  50. package/src/components/pages/Rubrique.vue +6 -17
  51. package/src/components/pages/Search.vue +16 -36
  52. package/src/locale/en.ts +1 -1
  53. package/src/store/paramStore.ts +13 -11
package/README.md CHANGED
@@ -573,7 +573,18 @@ See [Configuration Reference](https://cli.vuejs.org/config/).
573
573
  * 30.0.74 Error locales en allemand (je sens que ça va être fun cette histoire)
574
574
  * 30.0.75 Parlement
575
575
  * 30.0.76 Space
576
-
576
+ * 30.0.77 V-Calendar bloque version
577
+ * 30.0.78 a -> word-break
578
+ * 30.0.79 DownloadId player
579
+ * 30.0.80 DownloadId player
580
+ * 30.0.81 DownloadId player
581
+ * 30.0.82 Cherry pick Color Qr code
582
+ * 30.0.83 Locales parlement
583
+ * 30.0.84 Une émission non visible n'apparaît pas dans la page émission
584
+ * 30.0.85 PB en cliquant sur le bouton "tous les épisodes de l'organisation" dans la page d'un épisode
585
+ * 30.0.86 Podcastmaker newest
586
+ * 30.0.87 Podcastmaker newest (swiper list)
587
+ * 30.0.88 Podcastmaker newest (swiper list)
577
588
 
578
589
  * 31.0.0 Passage en 31
579
590
  * 31.0.1 Ajout pocket casts
@@ -600,3 +611,6 @@ See [Configuration Reference](https://cli.vuejs.org/config/).
600
611
  * 31.0.22 Merge 30
601
612
  * 31.0.23 Qr Code option noir
602
613
  * 31.0.24 Amélioration accessibilité
614
+ * 31.0.25 Erreur audioUrl
615
+ * 31.0.26 Erreur 403 page expose
616
+ * 31.0.27 Snackbar chose holdtime
package/index.ts CHANGED
@@ -12,6 +12,7 @@ import Search from "./src/components/pages/Search.vue";
12
12
  import Home from "./src/components/pages/Home.vue";
13
13
  import Category from "./src/components/pages/Category.vue";
14
14
  import Rubrique from "./src/components/pages/Rubrique.vue";
15
+ import Error403Page from "./src/components/pages/Error403Page.vue";
15
16
  //Misc
16
17
  import Footer from "./src/components/misc/Footer.vue";
17
18
  import LeftMenu from "./src/components/misc/LeftMenu.vue";
@@ -116,7 +117,8 @@ const components = {
116
117
  ClassicLoading,
117
118
  AdvancedSearch,
118
119
  PodcastPlaylistInlineList,
119
- ClassicSelect
120
+ ClassicSelect,
121
+ Error403Page
120
122
  }
121
123
 
122
124
  export default components;
@@ -171,5 +173,6 @@ export {
171
173
  ClassicLoading,
172
174
  AdvancedSearch,
173
175
  PodcastPlaylistInlineList,
174
- ClassicSelect
176
+ ClassicSelect,
177
+ Error403Page
175
178
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@saooti/octopus-sdk",
3
- "version": "31.0.24",
3
+ "version": "31.0.27",
4
4
  "private": false,
5
5
  "description": "Javascript SDK for using octopus",
6
6
  "author": "Saooti",
@@ -28,6 +28,7 @@
28
28
  "qrcode.vue": "^3.3.3",
29
29
  "sass": "^1.49.11",
30
30
  "sass-loader": "^12.6.0",
31
+ "swiper": "^8.1.5",
31
32
  "v-calendar": "^3.0.0-alpha.8",
32
33
  "vue": "^3.2.31",
33
34
  "vue-i18n": "^9.2.0-beta.34",
@@ -4,12 +4,12 @@
4
4
  class="d-inline-flex w-100 mb-3 ps-3 pe-3 hide-phone category-list"
5
5
  >
6
6
  <div
7
- id="category-list-container"
7
+ ref="categoryListContainer"
8
8
  class="category-list-container"
9
9
  >
10
10
  <button
11
11
  v-for="category in categories"
12
- :id="'category' + category.id"
12
+ :ref="'category' + category.id"
13
13
  :key="category.id"
14
14
  class="category-item text-dark bg-white"
15
15
  @click="checkIfFilter(category)"
@@ -144,14 +144,14 @@ export default defineComponent({
144
144
  this.$store.commit('filterIab',category);
145
145
  },
146
146
  resizeWindow(): void {
147
- const categoryList = document.getElementById('category-list-container');
148
- if(null === categoryList){
147
+ const categoryList = (this.$refs.categoryListContainer as HTMLElement);
148
+ if(null === categoryList ||!categoryList){
149
149
  return;
150
150
  }
151
151
  categoryList.style.justifyContent = 'flex-start';
152
152
  this.hidenCategories.length = 0;
153
153
  this.categories.forEach((element: Category) => {
154
- const el = document.getElementById('category' + element.id);
154
+ const el = (this.$refs['category' + element.id] as Array<HTMLElement>)[0];
155
155
  if (!el) return;
156
156
  const parent = el.parentElement;
157
157
  if (parent && el.offsetLeft + el.clientWidth <= parent.clientWidth - 20) {
@@ -28,12 +28,12 @@
28
28
  >{{ emission.name }}
29
29
  </div>
30
30
  <div
31
- :id="'description-emission-container-' + emission.emissionId"
31
+ ref="descriptionEmissionContainer"
32
32
  class="emission-description htms-wysiwyg-content"
33
33
  >
34
34
  <!-- eslint-disable vue/no-v-html -->
35
35
  <div
36
- :id="'description-emission-' + emission.emissionId"
36
+ ref="descriptionEmission"
37
37
  v-html="urlify(emission.description|| '')"
38
38
  />
39
39
  <!-- eslint-enable -->
@@ -108,12 +108,8 @@ export default defineComponent({
108
108
  this.hasPodcast();
109
109
  },
110
110
  mounted() {
111
- const emissionDesc = document.getElementById(
112
- 'description-emission-' + this.emission.emissionId
113
- );
114
- const emissionDescContainer = document.getElementById(
115
- 'description-emission-container-' + this.emission.emissionId
116
- );
111
+ const emissionDesc = (this.$refs.descriptionEmission as HTMLElement);
112
+ const emissionDescContainer = (this.$refs.descriptionEmissionContainer as HTMLElement);
117
113
  if (
118
114
  null !== emissionDesc && null !== emissionDescContainer &&
119
115
  emissionDesc.clientHeight > emissionDescContainer.clientHeight
@@ -36,12 +36,12 @@
36
36
  {{ emission.name }}
37
37
  </div>
38
38
  <div
39
- :id="'description-emission-container-' + emission.emissionId"
39
+ ref="descriptionEmissionContainer"
40
40
  class="emission-description html-wysiwyg-content"
41
41
  >
42
42
  <!-- eslint-disable vue/no-v-html -->
43
43
  <div
44
- :id="'description-emission-' + emission.emissionId"
44
+ ref="descriptionEmission"
45
45
  v-html="urlify(emission.description)"
46
46
  />
47
47
  <!-- eslint-enable -->
@@ -79,12 +79,12 @@
79
79
  {{ p.title }}
80
80
  </div>
81
81
  <div
82
- :id="'description-podcast-container-' + p.podcastId"
82
+ :ref="'descriptionPodcastContainer'+ p.podcastId"
83
83
  class="emission-description html-wysiwyg-content"
84
84
  >
85
85
  <!-- eslint-disable vue/no-v-html -->
86
86
  <div
87
- :id="'description-podcast-' + p.podcastId"
87
+ :ref="'descriptionPodcast'+ p.podcastId"
88
88
  v-html="urlify(p.description)"
89
89
  />
90
90
  <!-- eslint-enable -->
@@ -195,12 +195,8 @@ export default defineComponent({
195
195
  this.loadPodcasts();
196
196
  },
197
197
  mounted() {
198
- const emissionDesc = document.getElementById(
199
- 'description-emission-' + this.emission.emissionId
200
- );
201
- const emissionDescContainer = document.getElementById(
202
- 'description-emission-container-' + this.emission.emissionId
203
- );
198
+ const emissionDesc = (this.$refs.descriptionEmission as HTMLElement);
199
+ const emissionDescContainer = (this.$refs.descriptionEmissionContainer as HTMLElement);
204
200
  if (
205
201
  null !== emissionDesc && null !== emissionDescContainer &&
206
202
  emissionDesc.clientHeight > emissionDescContainer.clientHeight
@@ -221,12 +217,8 @@ export default defineComponent({
221
217
  this.podcasts = data.result;
222
218
  this.$nextTick(() => {
223
219
  for (let index = 0, len = this.podcasts.length; index < len; index++) {
224
- const podcastDesc = document.getElementById(
225
- 'description-podcast-' + this.podcasts[index].podcastId
226
- );
227
- const podcastDescContainer = document.getElementById(
228
- 'description-podcast-container-' + this.podcasts[index].podcastId
229
- );
220
+ const podcastDesc = (this.$refs['descriptionPodcast'+this.podcasts[index].podcastId] as Array<HTMLElement>)[0];
221
+ const podcastDescContainer = (this.$refs['descriptionPodcastContainer'+this.podcasts[index].podcastId] as Array<HTMLElement>)[0];
230
222
  if (
231
223
  null !== podcastDesc && null !== podcastDescContainer &&
232
224
  podcastDesc.clientHeight > podcastDescContainer.clientHeight
@@ -172,10 +172,10 @@ export default defineComponent({
172
172
  isTo: false as boolean,
173
173
  fromDate: moment().subtract(10, 'days').toISOString() as string,
174
174
  toDate: moment().toISOString() as string,
175
- isNotVisible: false as boolean,
175
+ isNotVisible: this.includeHidden as boolean,
176
176
  isNotValidate: false as boolean,
177
177
  showFilters: false as boolean,
178
- sort: '' as string,
178
+ sort: this.sortCriteria as string,
179
179
  };
180
180
  },
181
181
 
@@ -268,16 +268,6 @@ export default defineComponent({
268
268
  this.sort = this.sortCriteria;
269
269
  },
270
270
  },
271
-
272
- created() {
273
- if (!this.isEmission) {
274
- this.isNotVisible = this.includeHidden;
275
- }
276
- },
277
-
278
- mounted() {
279
- this.sort = this.sortCriteria;
280
- },
281
271
  methods: {
282
272
  updateFromDate(): void {
283
273
  if (
@@ -138,9 +138,6 @@ export default defineComponent({
138
138
  async onKeepOrganisation(): Promise<void> {
139
139
  if(!this.organisationId){return}
140
140
  if (!this.keepOrganisation) {
141
- if (this.$route.query.productor !== this.organisationId) {
142
- this.$router.push({ query: { productor: this.organisationId } });
143
- }
144
141
  await this.selectOrganisation(this.organisationId);
145
142
  return;
146
143
  }
@@ -66,12 +66,12 @@
66
66
  {{ live.emission.name }}
67
67
  </router-link>
68
68
  <div
69
- :id="'description-live-container-' + live.podcastId"
69
+ ref="descriptionLiveContainer"
70
70
  class="live-description-container html-wysiwyg-content"
71
71
  >
72
72
  <!-- eslint-disable vue/no-v-html -->
73
73
  <div
74
- :id="'description-live-' + live.podcastId"
74
+ ref="descriptionLive"
75
75
  v-html="urlify(description)"
76
76
  />
77
77
  <!-- eslint-enable -->
@@ -251,12 +251,8 @@ export default defineComponent({
251
251
  if(!this.live){
252
252
  return;
253
253
  }
254
- const liveDesc = document.getElementById(
255
- 'description-live-' + this.live.podcastId
256
- );
257
- const liveDescContainer = document.getElementById(
258
- 'description-live-container-' + this.live.podcastId
259
- );
254
+ const liveDesc = (this.$refs.descriptionLive as HTMLElement);
255
+ const liveDescContainer = (this.$refs.descriptionLiveContainer as HTMLElement);
260
256
  if (
261
257
  null !== liveDesc && null !== liveDescContainer &&
262
258
  liveDesc.clientHeight > liveDescContainer.clientHeight
@@ -4,29 +4,24 @@
4
4
  class="default-multiselect-width organisation-chooser-light"
5
5
  :style="{ width: width }"
6
6
  >
7
- <template v-if="!privateOrganisation">
8
- <select
9
- :id="'organisation_chooser_light' + page"
10
- v-model="actual"
11
- class="mb-0 c-hand border-0"
12
- @change="onOrganisationSelected"
13
- >
14
- <option :value="organisation.id">
15
- {{ organisation.name }}
16
- </option>
17
- <option :value="-1">
18
- {{ $t('No organisation filter') }}
19
- </option>
20
- </select>
21
- <label
22
- :for="'organisation_chooser_light' + page"
23
- class="d-inline"
24
- :title="$t('select productor')"
25
- />
26
- </template>
27
- <template v-else>
28
- {{ organisation.name }}
29
- </template>
7
+ <select
8
+ :id="'organisation_chooser_light' + page"
9
+ v-model="actual"
10
+ class="mb-0 c-hand border-0"
11
+ @change="onOrganisationSelected"
12
+ >
13
+ <option :value="organisation.id">
14
+ {{ organisation.name }}
15
+ </option>
16
+ <option :value="-1">
17
+ {{ $t('No organisation filter') }}
18
+ </option>
19
+ </select>
20
+ <label
21
+ :for="'organisation_chooser_light' + page"
22
+ class="d-inline"
23
+ :title="$t('select productor')"
24
+ />
30
25
  </div>
31
26
  </template>
32
27
 
@@ -48,7 +43,6 @@ export default defineComponent({
48
43
  actual: -1 as number|string,
49
44
  organisation: undefined as Organisation|undefined,
50
45
  init: false as boolean,
51
- privateOrganisation: false as boolean
52
46
  };
53
47
  },
54
48
 
@@ -82,7 +76,6 @@ export default defineComponent({
82
76
  const data = await octopusApi.fetchOrganisation(this.value);
83
77
  this.organisation = data;
84
78
  this.actual = data.id;
85
- this.privateOrganisation = "PUBLIC"!==data.privacy;
86
79
  this.init = true;
87
80
  },
88
81
  },
@@ -26,12 +26,12 @@
26
26
  >{{ name }}
27
27
  </div>
28
28
  <div
29
- :id="'description-participant-container-' + participant.participantId"
29
+ ref="descriptionParticipantContainer"
30
30
  class="participant-description html-wysiwyg-content"
31
31
  >
32
32
  <!-- eslint-disable vue/no-v-html -->
33
33
  <div
34
- :id="'description-participant-' + participant.participantId"
34
+ ref="descriptionParticipant"
35
35
  v-html="urlify(participant.description|| '')"
36
36
  />
37
37
  <!-- eslint-enable -->
@@ -107,12 +107,8 @@ export default defineComponent({
107
107
  this.hasPodcast();
108
108
  },
109
109
  mounted() {
110
- const participantDesc = document.getElementById(
111
- 'description-participant-' + this.participant.participantId
112
- );
113
- const participantDescContainer = document.getElementById(
114
- 'description-participant-container-' + this.participant.participantId
115
- );
110
+ const participantDesc = (this.$refs.descriptionParticipant as HTMLElement);
111
+ const participantDescContainer = (this.$refs.descriptionParticipantContainer as HTMLElement);
116
112
  if (
117
113
  null !== participantDesc && null !==participantDescContainer &&
118
114
  participantDesc.clientHeight > participantDescContainer.clientHeight
@@ -36,12 +36,12 @@
36
36
  >{{ name }}
37
37
  </div>
38
38
  <div
39
- :id="'description-playlist-container-' + playlist.playlistId"
39
+ ref="descriptionPlaylistContainer"
40
40
  class="emission-description html-wysiwyg-content"
41
41
  >
42
42
  <!-- eslint-disable vue/no-v-html -->
43
43
  <div
44
- :id="'description-playlist-' + playlist.playlistId"
44
+ ref="descriptionPlaylist"
45
45
  v-html="urlify(description)"
46
46
  />
47
47
  <!-- eslint-enable -->
@@ -120,12 +120,8 @@ export default defineComponent({
120
120
 
121
121
 
122
122
  mounted() {
123
- const playlistDesc = document.getElementById(
124
- 'description-playlist-' + this.playlist.playlistId
125
- );
126
- const playlistDescContainer = document.getElementById(
127
- 'description-playlist-container-' + this.playlist.playlistId
128
- );
123
+ const playlistDesc = (this.$refs.descriptionPlaylist as HTMLElement);
124
+ const playlistDescContainer = (this.$refs.descriptionPlaylistContainer as HTMLElement);
129
125
  if (
130
126
  null !== playlistDesc && null !== playlistDescContainer &&
131
127
  playlistDesc.clientHeight > playlistDescContainer.clientHeight
@@ -237,6 +237,9 @@ export default defineComponent({
237
237
  'PENDING' === this.fetchConference.status)
238
238
  );
239
239
  },
240
+ clickPlayGoPage():boolean{
241
+ return (state.podcastPage.clickPlayGoPage as boolean);
242
+ },
240
243
  },
241
244
  watch: {
242
245
  arrowDirection(): void {
@@ -265,16 +268,19 @@ export default defineComponent({
265
268
  }
266
269
  if (!this.recordingLive) {
267
270
  this.$store.commit('playerPlayPodcast', this.podcast);
268
- return;
271
+ }else{
272
+ this.$store.commit('playerPlayPodcast', {
273
+ title: this.podcast.title,
274
+ audioUrl: this.podcast.audioUrl,
275
+ duration: this.podcast.duration,
276
+ conferenceId: this.fetchConference ? this.fetchConference.conferenceId : undefined,
277
+ livePodcastId: this.podcast.podcastId,
278
+ organisation: this.podcast.organisation,
279
+ });
280
+ }
281
+ if(this.clickPlayGoPage){
282
+ this.$router.push('/main/pub/podcast/'+this.podcast.podcastId);
269
283
  }
270
- this.$store.commit('playerPlayPodcast', {
271
- title: this.podcast.title,
272
- audioUrl: this.podcast.audioUrl,
273
- duration: this.podcast.duration,
274
- conferenceId: this.fetchConference ? this.fetchConference.conferenceId : undefined,
275
- livePodcastId: this.podcast.podcastId,
276
- organisation: this.podcast.organisation,
277
- });
278
284
  },
279
285
  showDescription(): void {
280
286
  if (this.isDescription) {