@saooti/octopus-sdk 41.1.1 → 41.1.3

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.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,17 @@
1
1
  # CHANGELOG
2
2
 
3
+ ## 41.1.3 (04/12/2025)
4
+
5
+ **Misc**
6
+
7
+ - Les épisodes peuvent être écoutés dès qu'ils ne sont plus au statut "Planned"
8
+
9
+ ## 41.1.2 (03/12/2025)
10
+
11
+ **Fixes**
12
+
13
+ - Correction lien de `EmissionPresentationItem`
14
+
3
15
  ## 41.1.1 (01/12/2025)
4
16
 
5
17
  **Fixes**
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@saooti/octopus-sdk",
3
- "version": "41.1.1",
3
+ "version": "41.1.3",
4
4
  "private": false,
5
5
  "description": "Javascript SDK for using octopus",
6
6
  "author": "Saooti",
@@ -28,7 +28,7 @@ const props = defineProps<{
28
28
  }>();
29
29
 
30
30
  const route = computed((): RouteLocationRaw => {
31
- return 'emissions';//{ name: 'emissions'/*, params: { emissionId: props.emission.emissionId }*/ };
31
+ return { name: 'emission', params: { emissionId: props.emission.emissionId } };
32
32
  });
33
33
 
34
34
  </script>
@@ -91,7 +91,7 @@ import CancelIcon from "vue-material-design-icons/Cancel.vue";
91
91
  import AlertIcon from "vue-material-design-icons/Alert.vue";
92
92
  import DurationHelper from "../../../helper/durationHelper";
93
93
  import { state } from "../../../stores/ParamSdkStore";
94
- import { Podcast } from "@/stores/class/general/podcast";
94
+ import { Podcast, ProcessingStatus } from "../../../stores/class/general/podcast";
95
95
  import { Conference } from "@/stores/class/conference/conference";
96
96
  import { usePlayerStore } from "../../../stores/PlayerStore";
97
97
  import { computed, defineAsyncComponent, ref } from "vue";
@@ -126,7 +126,7 @@ const router = useRouter();
126
126
  const isVideoPodcast = computed(() => {
127
127
  return (
128
128
  (props.fetchConference?.videoProfile?.includes("video_") &&
129
- "READY_TO_RECORD" === props.podcast.processingStatus) ||
129
+ ProcessingStatus.ReadyToRecord === props.podcast.processingStatus) ||
130
130
  undefined !== props.podcast.video?.videoId
131
131
  );
132
132
  });
@@ -148,7 +148,7 @@ const isLiveReadyToRecord = computed(() => {
148
148
  return (
149
149
  undefined !== props.podcast?.conferenceId &&
150
150
  0 !== props.podcast.conferenceId &&
151
- "READY_TO_RECORD" === props.podcast.processingStatus
151
+ ProcessingStatus.ReadyToRecord === props.podcast.processingStatus
152
152
  );
153
153
  });
154
154
  const isLiveValidAndVisible = computed(() => {
@@ -163,16 +163,18 @@ const isLiveValidAndVisible = computed(() => {
163
163
  /** Whether the podcast can be played */
164
164
  const classicPodcastPlay = computed(() => {
165
165
  return (
166
- isLiveValidAndVisible.value &&
166
+ //isLiveValidAndVisible.value &&
167
167
  !isLiveToBeRecorded.value &&
168
- ("READY_TO_RECORD" === props.podcast.processingStatus ||
169
- "READY" === props.podcast.processingStatus ||
170
- "PROCESSING" === props.podcast.processingStatus)
168
+ ProcessingStatus.Planned !== props.podcast.processingStatus
171
169
  );
172
170
  });
173
171
 
174
172
  const displayBanner = computed(() => {
175
- return !classicPodcastPlay.value || ("PROCESSING" === props.podcast.processingStatus && props.showProcessing);
173
+ return !(
174
+ isLiveValidAndVisible.value &&
175
+ !isLiveToBeRecorded.value &&
176
+ ProcessingStatus.Planned !== props.podcast.processingStatus
177
+ ) || (ProcessingStatus.Processing === props.podcast.processingStatus && props.showProcessing);
176
178
  });
177
179
 
178
180
  const iconName = computed(() => {
@@ -180,7 +182,7 @@ const iconName = computed(() => {
180
182
  return ClockOutlineIcon;
181
183
  }
182
184
 
183
- if ("READY" === props.podcast.processingStatus || props.fetchConference) {
185
+ if (ProcessingStatus.Ready === props.podcast.processingStatus || props.fetchConference) {
184
186
  if (!props.podcast.valid) {
185
187
  return CheckIcon;
186
188
  }
@@ -196,15 +198,16 @@ const iconName = computed(() => {
196
198
  }
197
199
 
198
200
  if (
199
- "PLANNED" === props.podcast.processingStatus ||
200
- "PROCESSING" === props.podcast.processingStatus
201
+ ProcessingStatus.Planned === props.podcast.processingStatus ||
202
+ ProcessingStatus.Processing === props.podcast.processingStatus
201
203
  ) {
202
204
  return TimerSandEmptyIcon;
203
205
  }
204
206
 
205
- if ("CANCELED" === props.podcast.processingStatus) {
207
+ if (ProcessingStatus.Cancelled === props.podcast.processingStatus) {
206
208
  return CancelIcon;
207
209
  }
210
+
208
211
  return AlertIcon;
209
212
  });
210
213
 
@@ -214,7 +217,7 @@ const textVisible = computed(() => {
214
217
  return t("Podcast linked to waiting live");
215
218
  }
216
219
 
217
- if ("READY" === props.podcast.processingStatus || props.fetchConference) {
220
+ if (ProcessingStatus.Ready === props.podcast.processingStatus || props.fetchConference) {
218
221
  if (!props.podcast.valid) {
219
222
  return t("Podcast to validate");
220
223
  }
@@ -227,14 +230,15 @@ const textVisible = computed(() => {
227
230
  return t("Podcast no visible");
228
231
  }
229
232
  if (
230
- "PLANNED" === props.podcast.processingStatus ||
231
- "PROCESSING" === props.podcast.processingStatus
233
+ ProcessingStatus.Planned === props.podcast.processingStatus ||
234
+ ProcessingStatus.Processing === props.podcast.processingStatus
232
235
  ){
233
236
  return t("Podcast in process");
234
237
  }
235
- if ("CANCELED" === props.podcast.processingStatus){
238
+ if (ProcessingStatus.Cancelled === props.podcast.processingStatus){
236
239
  return t("Podcast in cancelled status");
237
240
  }
241
+
238
242
  return t("Podcast in error");
239
243
  });
240
244
 
@@ -297,7 +301,8 @@ function play(isVideo: boolean): void {
297
301
  // Allow pointer events to go through (allow click on image beneath blur)
298
302
  pointer-events: none;
299
303
 
300
- &.allow-play {
304
+ // Buttons intercept button events to allow start play
305
+ &.allow-play button {
301
306
  pointer-events: all;
302
307
  }
303
308
  }
@@ -4,6 +4,22 @@ import { Participant } from "./participant";
4
4
  import { Person } from "../user/person";
5
5
  import { Video } from "./video";
6
6
 
7
+ /**
8
+ * State of processing of the audio file
9
+ */
10
+ export enum ProcessingStatus {
11
+ Planned = "PLANNED",
12
+ Processing = "PROCESSING",
13
+ Ready = "READY",
14
+ ReadyToRecord = "READY_TO_RECORD",
15
+ Error = "ERROR",
16
+ Cancelled = "CANCELED",
17
+ All = "ALL"
18
+ }
19
+
20
+ /**
21
+ * Data about a podcast/episode
22
+ */
7
23
  export interface Podcast {
8
24
  imageUrl?: string;
9
25
  animators?: Array<Participant>;
@@ -30,7 +46,8 @@ export interface Podcast {
30
46
  monetisable?: string;
31
47
  organisation: Organisation;
32
48
  podcastId: number;
33
- processingStatus?: string;
49
+ /** The status of the processing of the audio file */
50
+ processingStatus?: ProcessingStatus;
34
51
  processorId?: string;
35
52
  pubDate?: string;
36
53
  publisher?: Person;