@saooti/octopus-sdk 37.1.0 → 37.1.2
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/package.json +1 -1
- package/src/components/display/comments/CommentSection.vue +2 -6
- package/src/components/display/emission/EmissionInlineList.vue +6 -2
- package/src/components/display/emission/EmissionList.vue +8 -3
- package/src/components/display/emission/EmissionPlayerItem.vue +5 -1
- package/src/components/display/live/LiveItem.vue +4 -1
- package/src/components/display/live/LiveList.vue +7 -7
- package/src/components/display/participant/ParticipantList.vue +7 -2
- package/src/components/display/playlist/PlaylistList.vue +7 -2
- package/src/components/display/playlist/PodcastList.vue +8 -3
- package/src/components/display/podcasts/PodcastItemInfo.vue +6 -1
- package/src/components/display/podcasts/PodcastList.vue +8 -3
- package/src/components/display/podcasts/PodcastModuleBox.vue +5 -4
- package/src/components/display/sharing/PlayerParameters.vue +7 -7
- package/src/components/display/sharing/ShareButtonsIntern.vue +8 -6
- package/src/components/display/sharing/ShareDistribution.vue +7 -3
- package/src/components/display/sharing/SharePlayer.vue +11 -9
- package/src/components/form/ClassicDatePicker.vue +8 -8
- package/src/components/misc/ClassicLazy.vue +2 -2
- package/src/components/misc/FooterSection.vue +6 -1
- package/src/components/misc/player/PlayerComponent.vue +6 -2
- package/src/components/pages/EmissionPage.vue +5 -2
- package/src/components/pages/HomePage.vue +25 -11
- package/src/components/pages/PlaylistPage.vue +4 -1
- package/src/components/pages/PodcastPage.vue +13 -10
- package/src/components/pages/RadioPage.vue +4 -1
package/package.json
CHANGED
|
@@ -36,12 +36,8 @@ import { useCommentStore } from "@/stores/CommentStore";
|
|
|
36
36
|
import { mapState, mapActions } from "pinia";
|
|
37
37
|
import { defineAsyncComponent, defineComponent } from "vue";
|
|
38
38
|
import { CommentPodcast } from "@/stores/class/general/comment";
|
|
39
|
-
const CommentList = defineAsyncComponent(
|
|
40
|
-
|
|
41
|
-
);
|
|
42
|
-
const CommentInput = defineAsyncComponent(
|
|
43
|
-
() => import("./CommentInput.vue"),
|
|
44
|
-
);
|
|
39
|
+
const CommentList = defineAsyncComponent(() => import("./CommentList.vue"));
|
|
40
|
+
const CommentInput = defineAsyncComponent(() => import("./CommentInput.vue"));
|
|
45
41
|
export default defineComponent({
|
|
46
42
|
name: "CommentSection",
|
|
47
43
|
components: {
|
|
@@ -3,7 +3,11 @@
|
|
|
3
3
|
<ClassicLoading
|
|
4
4
|
:loading-text="loading ? $t('Loading emissions ...') : undefined"
|
|
5
5
|
/>
|
|
6
|
-
<SwiperList
|
|
6
|
+
<SwiperList
|
|
7
|
+
v-if="(displayRubriquage && rubriques) || !(displayRubriquage && loaded)"
|
|
8
|
+
:size-item-overload="itemSize"
|
|
9
|
+
:list-object="allEmissions"
|
|
10
|
+
>
|
|
7
11
|
<template #octopusSlide="{ option }">
|
|
8
12
|
<EmissionPlayerItem
|
|
9
13
|
class="flex-shrink-0 item-phone-margin"
|
|
@@ -43,7 +47,7 @@ export default defineComponent({
|
|
|
43
47
|
components: {
|
|
44
48
|
EmissionPlayerItem,
|
|
45
49
|
ClassicLoading,
|
|
46
|
-
SwiperList
|
|
50
|
+
SwiperList,
|
|
47
51
|
},
|
|
48
52
|
|
|
49
53
|
mixins: [handle403, imageProxy, resizePhone],
|
|
@@ -19,13 +19,18 @@
|
|
|
19
19
|
class="emission-list"
|
|
20
20
|
:class="smallItems ? 'three-emissions' : 'two-emissions'"
|
|
21
21
|
>
|
|
22
|
-
<ClassicLazy
|
|
22
|
+
<ClassicLazy
|
|
23
|
+
v-for="e in displayArray"
|
|
24
|
+
:key="e.emissionId"
|
|
25
|
+
:min-height="250"
|
|
26
|
+
:unrender="true"
|
|
27
|
+
>
|
|
23
28
|
<EmissionItem v-if="0 !== e.emissionId" :emission="e" />
|
|
24
29
|
<template #preview>
|
|
25
30
|
<router-link
|
|
26
31
|
:to="{
|
|
27
32
|
name: 'emission',
|
|
28
|
-
params: { emissionId: e.emissionId }
|
|
33
|
+
params: { emissionId: e.emissionId },
|
|
29
34
|
}"
|
|
30
35
|
>
|
|
31
36
|
{{ e.name }}
|
|
@@ -78,7 +83,7 @@ export default defineComponent({
|
|
|
78
83
|
EmissionItem,
|
|
79
84
|
EmissionPlayerItem,
|
|
80
85
|
ListPaginate,
|
|
81
|
-
ClassicLazy
|
|
86
|
+
ClassicLazy,
|
|
82
87
|
},
|
|
83
88
|
|
|
84
89
|
mixins: [handle403],
|
|
@@ -13,7 +13,10 @@ import crudApi from "@/api/classicCrud";
|
|
|
13
13
|
import displayMethods from "../../mixins/displayMethods";
|
|
14
14
|
import { Podcast } from "@/stores/class/general/podcast";
|
|
15
15
|
import { defineComponent } from "vue";
|
|
16
|
-
import {
|
|
16
|
+
import {
|
|
17
|
+
Conference,
|
|
18
|
+
ConferencePublicInfo,
|
|
19
|
+
} from "@/stores/class/conference/conference";
|
|
17
20
|
export default defineComponent({
|
|
18
21
|
name: "LiveItem",
|
|
19
22
|
|
|
@@ -1,8 +1,5 @@
|
|
|
1
1
|
<template>
|
|
2
|
-
<div
|
|
3
|
-
v-if="displayLiveList"
|
|
4
|
-
class="d-flex flex-column align-items-start mt-3"
|
|
5
|
-
>
|
|
2
|
+
<div v-if="displayLiveList" class="d-flex flex-column align-items-start mt-3">
|
|
6
3
|
<div
|
|
7
4
|
class="d-flex justify-content-between flex-grow-1 mb-3 w-100 align-items-center"
|
|
8
5
|
>
|
|
@@ -90,9 +87,12 @@ export default defineComponent({
|
|
|
90
87
|
computed: {
|
|
91
88
|
...mapState(useFilterStore, ["filterOrgaId"]),
|
|
92
89
|
...mapState(useAuthStore, ["authOrganisation"]),
|
|
93
|
-
displayLiveList(): boolean{
|
|
94
|
-
return (
|
|
95
|
-
(
|
|
90
|
+
displayLiveList(): boolean {
|
|
91
|
+
return (
|
|
92
|
+
(undefined !== this.filterOrgaId ||
|
|
93
|
+
undefined !== this.organisationId) &&
|
|
94
|
+
(!this.hideIfEmpty || (this.hideIfEmpty && 0 !== this.lives.length))
|
|
95
|
+
);
|
|
96
96
|
},
|
|
97
97
|
filterOrgaUsed(): string | undefined {
|
|
98
98
|
return this.filterOrgaId ? this.filterOrgaId : this.organisationId;
|
|
@@ -17,7 +17,12 @@
|
|
|
17
17
|
>
|
|
18
18
|
<template #list>
|
|
19
19
|
<div class="podcast-list">
|
|
20
|
-
<ClassicLazy
|
|
20
|
+
<ClassicLazy
|
|
21
|
+
v-for="p in displayArray"
|
|
22
|
+
:key="p.participantId"
|
|
23
|
+
:min-height="360"
|
|
24
|
+
:unrender="true"
|
|
25
|
+
>
|
|
21
26
|
<ParticipantItem v-if="0 !== p.participantId" :participant="p" />
|
|
22
27
|
<template #preview>
|
|
23
28
|
<router-link
|
|
@@ -55,7 +60,7 @@ export default defineComponent({
|
|
|
55
60
|
components: {
|
|
56
61
|
ParticipantItem,
|
|
57
62
|
ListPaginate,
|
|
58
|
-
ClassicLazy
|
|
63
|
+
ClassicLazy,
|
|
59
64
|
},
|
|
60
65
|
|
|
61
66
|
mixins: [handle403],
|
|
@@ -15,7 +15,12 @@
|
|
|
15
15
|
>
|
|
16
16
|
<template #list>
|
|
17
17
|
<div class="emission-list two-emissions">
|
|
18
|
-
<ClassicLazy
|
|
18
|
+
<ClassicLazy
|
|
19
|
+
v-for="p in displayArray"
|
|
20
|
+
:key="p.playlistId"
|
|
21
|
+
:min-height="250"
|
|
22
|
+
:unrender="true"
|
|
23
|
+
>
|
|
19
24
|
<PlaylistItem v-if="0 !== p.playlistId" :playlist="p" />
|
|
20
25
|
<template #preview>
|
|
21
26
|
<router-link
|
|
@@ -50,7 +55,7 @@ export default defineComponent({
|
|
|
50
55
|
components: {
|
|
51
56
|
PlaylistItem,
|
|
52
57
|
ListPaginate,
|
|
53
|
-
ClassicLazy
|
|
58
|
+
ClassicLazy,
|
|
54
59
|
},
|
|
55
60
|
|
|
56
61
|
mixins: [handle403],
|
|
@@ -31,13 +31,18 @@
|
|
|
31
31
|
>
|
|
32
32
|
<template #list>
|
|
33
33
|
<div class="podcast-list">
|
|
34
|
-
<ClassicLazy
|
|
34
|
+
<ClassicLazy
|
|
35
|
+
v-for="p in podcastsDisplay"
|
|
36
|
+
:key="p.podcastId"
|
|
37
|
+
:min-height="410"
|
|
38
|
+
:unrender="true"
|
|
39
|
+
>
|
|
35
40
|
<PodcastItem v-if="0 !== p.podcastId" :podcast="p" />
|
|
36
41
|
<template #preview>
|
|
37
42
|
<router-link
|
|
38
43
|
:to="{
|
|
39
44
|
name: 'podcast',
|
|
40
|
-
params: { podcastId: p.podcastId }
|
|
45
|
+
params: { podcastId: p.podcastId },
|
|
41
46
|
}"
|
|
42
47
|
>
|
|
43
48
|
{{ p.title }}
|
|
@@ -70,7 +75,7 @@ export default defineComponent({
|
|
|
70
75
|
PodcastItem,
|
|
71
76
|
ClassicSearch,
|
|
72
77
|
ListPaginate,
|
|
73
|
-
ClassicLazy
|
|
78
|
+
ClassicLazy,
|
|
74
79
|
},
|
|
75
80
|
|
|
76
81
|
mixins: [handle403, orgaComputed],
|
|
@@ -13,7 +13,12 @@
|
|
|
13
13
|
>
|
|
14
14
|
{{ title }}
|
|
15
15
|
</router-link>
|
|
16
|
-
<PodcastPlayBar
|
|
16
|
+
<PodcastPlayBar
|
|
17
|
+
v-if="isProgressBar"
|
|
18
|
+
:podcast-id="podcastId"
|
|
19
|
+
:duration="duration"
|
|
20
|
+
class="mx-2"
|
|
21
|
+
/>
|
|
17
22
|
|
|
18
23
|
<div class="mx-2 d-flex align-items-center justify-content-between mt-2">
|
|
19
24
|
<div v-if="isPodcastmaker" class="useless-div-for-podcastmaker" />
|
|
@@ -21,13 +21,18 @@
|
|
|
21
21
|
>
|
|
22
22
|
<template #list>
|
|
23
23
|
<div class="podcast-list">
|
|
24
|
-
<ClassicLazy
|
|
24
|
+
<ClassicLazy
|
|
25
|
+
v-for="p in displayArray"
|
|
26
|
+
:key="p.podcastId"
|
|
27
|
+
:min-height="410"
|
|
28
|
+
:unrender="true"
|
|
29
|
+
>
|
|
25
30
|
<PodcastItem v-if="0 !== p.podcastId" :podcast="p" />
|
|
26
31
|
<template #preview>
|
|
27
32
|
<router-link
|
|
28
33
|
:to="{
|
|
29
34
|
name: 'podcast',
|
|
30
|
-
params: { podcastId: p.podcastId }
|
|
35
|
+
params: { podcastId: p.podcastId },
|
|
31
36
|
}"
|
|
32
37
|
>
|
|
33
38
|
{{ p.title }}
|
|
@@ -59,7 +64,7 @@ export default defineComponent({
|
|
|
59
64
|
components: {
|
|
60
65
|
PodcastItem,
|
|
61
66
|
ListPaginate,
|
|
62
|
-
ClassicLazy
|
|
67
|
+
ClassicLazy,
|
|
63
68
|
},
|
|
64
69
|
|
|
65
70
|
mixins: [handle403],
|
|
@@ -125,7 +125,10 @@
|
|
|
125
125
|
:display-studio-access="isDebriefing"
|
|
126
126
|
@validate-podcast="$emit('updatePodcast', $event)"
|
|
127
127
|
/>
|
|
128
|
-
<TagList
|
|
128
|
+
<TagList
|
|
129
|
+
v-if="undefined !== podcast.tags && 0 !== podcast.tags.length"
|
|
130
|
+
:tag-list="podcast.tags"
|
|
131
|
+
/>
|
|
129
132
|
</div>
|
|
130
133
|
</template>
|
|
131
134
|
|
|
@@ -154,9 +157,7 @@ const EditBox = defineAsyncComponent(
|
|
|
154
157
|
const PodcastPlayBar = defineAsyncComponent(
|
|
155
158
|
() => import("./PodcastPlayBar.vue"),
|
|
156
159
|
);
|
|
157
|
-
const TagList = defineAsyncComponent(
|
|
158
|
-
() => import("./TagList.vue"),
|
|
159
|
-
);
|
|
160
|
+
const TagList = defineAsyncComponent(() => import("./TagList.vue"));
|
|
160
161
|
export default defineComponent({
|
|
161
162
|
name: "PodcastModuleBox",
|
|
162
163
|
components: {
|
|
@@ -42,43 +42,43 @@
|
|
|
42
42
|
</div>
|
|
43
43
|
<ClassicCheckbox
|
|
44
44
|
:text-init="proceedReading"
|
|
45
|
-
@update:text-init="$emit('update:proceedReading', $event)"
|
|
46
45
|
id-checkbox="proceed-reading-checkbox"
|
|
47
46
|
:label="$t('Proceed reading')"
|
|
47
|
+
@update:text-init="$emit('update:proceedReading', $event)"
|
|
48
48
|
/>
|
|
49
49
|
<ClassicCheckbox
|
|
50
50
|
:text-init="isVisible"
|
|
51
|
-
@update:text-init="$emit('update:isVisible', $event)"
|
|
52
51
|
id-checkbox="is-visible-checkbox"
|
|
53
52
|
:label="$t('Podcasts still available')"
|
|
53
|
+
@update:text-init="$emit('update:isVisible', $event)"
|
|
54
54
|
/>
|
|
55
55
|
</template>
|
|
56
56
|
<ClassicCheckbox
|
|
57
57
|
v-if="displayArticleParam"
|
|
58
58
|
:text-init="displayArticle"
|
|
59
|
-
@update:text-init="$emit('update:displayArticle', $event)"
|
|
60
59
|
id-checkbox="display-article-checkbox"
|
|
61
60
|
:label="$t('Display associated article')"
|
|
61
|
+
@update:text-init="$emit('update:displayArticle', $event)"
|
|
62
62
|
/>
|
|
63
63
|
<ClassicCheckbox
|
|
64
64
|
v-if="displayTranscriptParam"
|
|
65
65
|
:text-init="displayTranscript"
|
|
66
|
-
@update:text-init="$emit('update:displayTranscript', $event)"
|
|
67
66
|
id-checkbox="display-transcript-checkbox"
|
|
68
67
|
:label="$t('If the transcript is available, show it')"
|
|
68
|
+
@update:text-init="$emit('update:displayTranscript', $event)"
|
|
69
69
|
/>
|
|
70
70
|
<ClassicCheckbox
|
|
71
71
|
v-if="displayWaveParam"
|
|
72
72
|
:text-init="displayWave"
|
|
73
|
-
@update:text-init="$emit('update:displayWave', $event)"
|
|
74
73
|
id-checkbox="display-wave-checkbox"
|
|
75
74
|
:label="$t('Show animated wave')"
|
|
75
|
+
@update:text-init="$emit('update:displayWave', $event)"
|
|
76
76
|
/>
|
|
77
77
|
<ClassicCheckbox
|
|
78
78
|
:text-init="playerAutoPlay"
|
|
79
|
-
@update:text-init="$emit('update:playerAutoPlay', $event)"
|
|
80
79
|
id-checkbox="player-autoplay-checkbox"
|
|
81
80
|
:label="$t('Trigger automatic reading if this is possible')"
|
|
81
|
+
@update:text-init="$emit('update:playerAutoPlay', $event)"
|
|
82
82
|
/>
|
|
83
83
|
</template>
|
|
84
84
|
|
|
@@ -110,7 +110,7 @@ export default defineComponent({
|
|
|
110
110
|
"update:displayArticle",
|
|
111
111
|
"update:displayTranscript",
|
|
112
112
|
"update:displayWave",
|
|
113
|
-
"update:playerAutoPlay"
|
|
113
|
+
"update:playerAutoPlay",
|
|
114
114
|
],
|
|
115
115
|
|
|
116
116
|
data() {
|
|
@@ -100,7 +100,11 @@
|
|
|
100
100
|
:url-page="urlPage"
|
|
101
101
|
@close="qrCode = false"
|
|
102
102
|
/>
|
|
103
|
-
<SnackBar
|
|
103
|
+
<SnackBar
|
|
104
|
+
v-if="lazyLoadingSnackbar"
|
|
105
|
+
ref="snackbar"
|
|
106
|
+
position="bottom-left"
|
|
107
|
+
/>
|
|
104
108
|
</div>
|
|
105
109
|
</template>
|
|
106
110
|
|
|
@@ -123,9 +127,7 @@ const NewsletterModal = defineAsyncComponent(
|
|
|
123
127
|
const QrCodeModal = defineAsyncComponent(
|
|
124
128
|
() => import("../../misc/modal/QrCodeModal.vue"),
|
|
125
129
|
);
|
|
126
|
-
const SnackBar = defineAsyncComponent(
|
|
127
|
-
() => import("../../misc/SnackBar.vue"),
|
|
128
|
-
);
|
|
130
|
+
const SnackBar = defineAsyncComponent(() => import("../../misc/SnackBar.vue"));
|
|
129
131
|
export default defineComponent({
|
|
130
132
|
components: {
|
|
131
133
|
ClipboardModal,
|
|
@@ -240,12 +242,12 @@ export default defineComponent({
|
|
|
240
242
|
this.dataRSSSave = !this.dataRSSSave;
|
|
241
243
|
},
|
|
242
244
|
afterCopy(): void {
|
|
243
|
-
if(!this.lazyLoadingSnackbar){
|
|
245
|
+
if (!this.lazyLoadingSnackbar) {
|
|
244
246
|
this.lazyLoadingSnackbar = true;
|
|
245
247
|
setTimeout(() => {
|
|
246
248
|
this.afterCopy();
|
|
247
249
|
}, 500);
|
|
248
|
-
}else{
|
|
250
|
+
} else {
|
|
249
251
|
(this.$refs.snackbar as InstanceType<typeof SnackBar>).open(
|
|
250
252
|
this.$t("Link in clipboard"),
|
|
251
253
|
);
|
|
@@ -27,7 +27,11 @@
|
|
|
27
27
|
<span :class="platform.icon" />{{ platform.title }}
|
|
28
28
|
</router-link>
|
|
29
29
|
</div>
|
|
30
|
-
<SnackBar
|
|
30
|
+
<SnackBar
|
|
31
|
+
v-if="lazyLoadingSnackbar"
|
|
32
|
+
ref="snackbar"
|
|
33
|
+
position="bottom-left"
|
|
34
|
+
/>
|
|
31
35
|
</div>
|
|
32
36
|
</template>
|
|
33
37
|
|
|
@@ -129,12 +133,12 @@ export default defineComponent({
|
|
|
129
133
|
this.rss = `${state.octopusApi.url}rss/emission/${this.emissionId}.rss`;
|
|
130
134
|
},
|
|
131
135
|
afterCopy(): void {
|
|
132
|
-
if(!this.lazyLoadingSnackbar){
|
|
136
|
+
if (!this.lazyLoadingSnackbar) {
|
|
133
137
|
this.lazyLoadingSnackbar = true;
|
|
134
138
|
setTimeout(() => {
|
|
135
139
|
this.afterCopy();
|
|
136
140
|
}, 500);
|
|
137
|
-
}else{
|
|
141
|
+
} else {
|
|
138
142
|
(this.$refs.snackbar as InstanceType<typeof SnackBar>).open(
|
|
139
143
|
this.$t("Link in clipboard"),
|
|
140
144
|
);
|
|
@@ -46,18 +46,20 @@
|
|
|
46
46
|
:label="titleStillAvailable"
|
|
47
47
|
/>
|
|
48
48
|
<PlayerParameters
|
|
49
|
-
:is-visible="isVisible"
|
|
50
|
-
:chose-number-episode="displayChoiceAllEpisodes || isLargeSuggestion"
|
|
51
|
-
:display-choice-all-episodes="displayChoiceAllEpisodes"
|
|
52
|
-
:display-transcript-param="displayTranscriptParam"
|
|
53
|
-
:display-article-param="displayArticleParam"
|
|
54
|
-
:display-wave-param="displayWaveParam"
|
|
55
49
|
v-model:display-article="displayArticle"
|
|
56
50
|
v-model:display-transcript="displayTranscript"
|
|
57
51
|
v-model:display-wave="displayWave"
|
|
58
52
|
v-model:proceed-reading="proceedReading"
|
|
59
53
|
v-model:is-visible="isVisible"
|
|
54
|
+
:is-visible="isVisible"
|
|
60
55
|
v-model:player-auto-play="playerAutoPlay"
|
|
56
|
+
:chose-number-episode="
|
|
57
|
+
displayChoiceAllEpisodes || isLargeSuggestion
|
|
58
|
+
"
|
|
59
|
+
:display-choice-all-episodes="displayChoiceAllEpisodes"
|
|
60
|
+
:display-transcript-param="displayTranscriptParam"
|
|
61
|
+
:display-article-param="displayArticleParam"
|
|
62
|
+
:display-wave-param="displayWaveParam"
|
|
61
63
|
@i-frame-number="iFrameNumber = $event"
|
|
62
64
|
@episode-numbers="episodeNumbers = $event"
|
|
63
65
|
/>
|
|
@@ -153,7 +155,7 @@ export default defineComponent({
|
|
|
153
155
|
computed: {
|
|
154
156
|
...mapState(useAuthStore, ["authOrganisation"]),
|
|
155
157
|
displayWaveParam(): boolean {
|
|
156
|
-
return
|
|
158
|
+
return "default" === this.iFrameModel || "emission" === this.iFrameModel;
|
|
157
159
|
},
|
|
158
160
|
displayArticleParam(): boolean {
|
|
159
161
|
return (
|
|
@@ -360,8 +362,8 @@ export default defineComponent({
|
|
|
360
362
|
if (!this.displayWave) {
|
|
361
363
|
url.push("&wave=false");
|
|
362
364
|
}
|
|
363
|
-
if(this.playerAutoPlay){
|
|
364
|
-
url.push(
|
|
365
|
+
if (this.playerAutoPlay) {
|
|
366
|
+
url.push("&autoplay=true");
|
|
365
367
|
}
|
|
366
368
|
if (this.isVisible) {
|
|
367
369
|
url.push("&key=" + window.btoa(this.dataTitle.toString()));
|
|
@@ -22,8 +22,8 @@
|
|
|
22
22
|
:month-picker="monthPicker"
|
|
23
23
|
@update:model-value="$emit('updateDate', $event)"
|
|
24
24
|
>
|
|
25
|
-
|
|
26
|
-
<div class="ms-2 saooti-clock"/>
|
|
25
|
+
<template v-if="time" #input-icon>
|
|
26
|
+
<div class="ms-2 saooti-clock" />
|
|
27
27
|
</template>
|
|
28
28
|
</VueDatePicker>
|
|
29
29
|
</template>
|
|
@@ -61,7 +61,7 @@ export default defineComponent({
|
|
|
61
61
|
seconds?: number | string;
|
|
62
62
|
},
|
|
63
63
|
},
|
|
64
|
-
monthPicker:{ default: false, type: Boolean },
|
|
64
|
+
monthPicker: { default: false, type: Boolean },
|
|
65
65
|
},
|
|
66
66
|
|
|
67
67
|
emits: ["updateDate", "update:date"],
|
|
@@ -78,16 +78,16 @@ export default defineComponent({
|
|
|
78
78
|
};
|
|
79
79
|
},
|
|
80
80
|
modelVal() {
|
|
81
|
-
if(this.time){
|
|
81
|
+
if (this.time) {
|
|
82
82
|
return this.time;
|
|
83
83
|
}
|
|
84
|
-
if(this.range){
|
|
84
|
+
if (this.range) {
|
|
85
85
|
return this.range;
|
|
86
86
|
}
|
|
87
|
-
if(this.date && this.monthPicker){
|
|
87
|
+
if (this.date && this.monthPicker) {
|
|
88
88
|
return {
|
|
89
89
|
month: this.date.getMonth(),
|
|
90
|
-
year: this.date.getFullYear()
|
|
90
|
+
year: this.date.getFullYear(),
|
|
91
91
|
};
|
|
92
92
|
}
|
|
93
93
|
return this.date;
|
|
@@ -97,7 +97,7 @@ export default defineComponent({
|
|
|
97
97
|
},
|
|
98
98
|
format() {
|
|
99
99
|
let timeString = "";
|
|
100
|
-
if(this.monthPicker){
|
|
100
|
+
if (this.monthPicker) {
|
|
101
101
|
return "MM/yyyy";
|
|
102
102
|
}
|
|
103
103
|
if (this.displayTimePicker || this.isTimePicker) {
|
|
@@ -47,7 +47,7 @@ export default {
|
|
|
47
47
|
// if we're dealing underndering lets add a waiting period of 200ms before rendering. If a component enters the viewport and also leaves it within 200ms it will not render at all. This saves work and improves performance when user scrolls very fast
|
|
48
48
|
renderTimer = setTimeout(
|
|
49
49
|
() => (shouldRender.value = true),
|
|
50
|
-
props.unrender ? 200 : 0
|
|
50
|
+
props.unrender ? 200 : 0,
|
|
51
51
|
);
|
|
52
52
|
shouldRender.value = true;
|
|
53
53
|
if (!props.unrender) {
|
|
@@ -64,7 +64,7 @@ export default {
|
|
|
64
64
|
},
|
|
65
65
|
{
|
|
66
66
|
rootMargin: "600px",
|
|
67
|
-
}
|
|
67
|
+
},
|
|
68
68
|
);
|
|
69
69
|
|
|
70
70
|
if (props.renderOnIdle) {
|
|
@@ -153,7 +153,12 @@ export default defineComponent({
|
|
|
153
153
|
},
|
|
154
154
|
changeLanguage(): void {
|
|
155
155
|
this.setCookie("octopus-language", this.language);
|
|
156
|
-
loadLocaleMessages(
|
|
156
|
+
loadLocaleMessages(
|
|
157
|
+
this.$i18n,
|
|
158
|
+
this.language,
|
|
159
|
+
this.authenticated,
|
|
160
|
+
this.platformEducation,
|
|
161
|
+
);
|
|
157
162
|
octopusApi
|
|
158
163
|
.fetchDataWithParams<Array<Category>>(
|
|
159
164
|
0,
|
|
@@ -55,8 +55,12 @@ import { usePlayerStore } from "@/stores/PlayerStore";
|
|
|
55
55
|
import { mapState, mapActions } from "pinia";
|
|
56
56
|
import { defineComponent, defineAsyncComponent } from "vue";
|
|
57
57
|
const PlayerVideo = defineAsyncComponent(() => import("./PlayerVideo.vue"));
|
|
58
|
-
const PlayerCompact = defineAsyncComponent(
|
|
59
|
-
|
|
58
|
+
const PlayerCompact = defineAsyncComponent(
|
|
59
|
+
() => import("../player/PlayerCompact.vue"),
|
|
60
|
+
);
|
|
61
|
+
const PlayerLarge = defineAsyncComponent(
|
|
62
|
+
() => import("../player/PlayerLarge.vue"),
|
|
63
|
+
);
|
|
60
64
|
export default defineComponent({
|
|
61
65
|
name: "PlayerComponent",
|
|
62
66
|
|
|
@@ -116,7 +116,7 @@ export default defineComponent({
|
|
|
116
116
|
EditBox,
|
|
117
117
|
SubscribeButtons,
|
|
118
118
|
LiveHorizontalList,
|
|
119
|
-
ClassicLoading
|
|
119
|
+
ClassicLoading,
|
|
120
120
|
},
|
|
121
121
|
mixins: [displayMethods, handle403, orgaComputed, imageProxy],
|
|
122
122
|
props: {
|
|
@@ -193,7 +193,10 @@ export default defineComponent({
|
|
|
193
193
|
if (!this.emission) {
|
|
194
194
|
return "";
|
|
195
195
|
}
|
|
196
|
-
return `background-image: url('${this.proxyImageUrl(
|
|
196
|
+
return `background-image: url('${this.proxyImageUrl(
|
|
197
|
+
this.emission.imageUrl,
|
|
198
|
+
"250",
|
|
199
|
+
)}');`;
|
|
197
200
|
},
|
|
198
201
|
},
|
|
199
202
|
watch: {
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
<template>
|
|
2
2
|
<div class="page-box">
|
|
3
3
|
<template v-if="0 === rubriquageFilter.length">
|
|
4
|
-
<ClassicLazy
|
|
4
|
+
<ClassicLazy
|
|
5
5
|
v-for="c in categories"
|
|
6
6
|
:key="c.id"
|
|
7
|
-
:
|
|
7
|
+
:min-height="0"
|
|
8
8
|
:unrender="true"
|
|
9
9
|
>
|
|
10
10
|
<PodcastInlineList
|
|
@@ -12,13 +12,16 @@
|
|
|
12
12
|
:title="c.name"
|
|
13
13
|
:button-text="$t('All podcast button', { name: c.name })"
|
|
14
14
|
/>
|
|
15
|
+
<template #preview>
|
|
16
|
+
<div style="min-height: 650px"></div>
|
|
17
|
+
</template>
|
|
15
18
|
</ClassicLazy>
|
|
16
19
|
</template>
|
|
17
20
|
<template v-else>
|
|
18
|
-
<ClassicLazy
|
|
21
|
+
<ClassicLazy
|
|
19
22
|
v-for="r in rubriqueToShow"
|
|
20
23
|
:key="r.rubriqueId"
|
|
21
|
-
:
|
|
24
|
+
:min-height="0"
|
|
22
25
|
:unrender="true"
|
|
23
26
|
>
|
|
24
27
|
<PodcastInlineList
|
|
@@ -26,6 +29,9 @@
|
|
|
26
29
|
:title="r.name"
|
|
27
30
|
:button-text="$t('All podcast button', { name: r.name })"
|
|
28
31
|
/>
|
|
32
|
+
<template #preview>
|
|
33
|
+
<div style="min-height: 650px"></div>
|
|
34
|
+
</template>
|
|
29
35
|
</ClassicLazy>
|
|
30
36
|
<template v-if="rubriqueDisplay && rubriqueDisplay.length > 0">
|
|
31
37
|
<PodcastInlineList
|
|
@@ -72,7 +78,7 @@ export default defineComponent({
|
|
|
72
78
|
name: "HomePage",
|
|
73
79
|
components: {
|
|
74
80
|
PodcastInlineList,
|
|
75
|
-
ClassicLazy
|
|
81
|
+
ClassicLazy,
|
|
76
82
|
},
|
|
77
83
|
data() {
|
|
78
84
|
return {
|
|
@@ -81,7 +87,7 @@ export default defineComponent({
|
|
|
81
87
|
};
|
|
82
88
|
},
|
|
83
89
|
computed: {
|
|
84
|
-
...mapState(useGeneralStore, ["storedCategories"]),
|
|
90
|
+
...mapState(useGeneralStore, ["storedCategories", "storedCategoriesOrga"]),
|
|
85
91
|
...mapState(useFilterStore, [
|
|
86
92
|
"filterRubriquage",
|
|
87
93
|
"filterOrgaId",
|
|
@@ -121,15 +127,23 @@ export default defineComponent({
|
|
|
121
127
|
return this.filterRubrique;
|
|
122
128
|
},
|
|
123
129
|
categories(): Array<Category> {
|
|
130
|
+
let arrayCategories: Array<Category> = [];
|
|
124
131
|
if (this.filterIab) {
|
|
125
132
|
return [this.filterIab];
|
|
126
133
|
}
|
|
127
|
-
|
|
128
|
-
|
|
134
|
+
if (this.filterOrgaId) {
|
|
135
|
+
arrayCategories = this.storedCategoriesOrga.filter((c: Category) => {
|
|
129
136
|
return c.podcastOrganisationCount;
|
|
130
|
-
|
|
131
|
-
}
|
|
132
|
-
|
|
137
|
+
});
|
|
138
|
+
} else {
|
|
139
|
+
arrayCategories = this.storedCategories.filter((c: Category) => {
|
|
140
|
+
if (state.generalParameters.podcastmaker) return c.podcastOrganisationCount;
|
|
141
|
+
return c.podcastCount;
|
|
142
|
+
});
|
|
143
|
+
}
|
|
144
|
+
this.$emit("categoriesLength", arrayCategories.length);
|
|
145
|
+
return arrayCategories;
|
|
146
|
+
}
|
|
133
147
|
},
|
|
134
148
|
watch: {
|
|
135
149
|
rubriqueFilter: {
|
|
@@ -128,7 +128,10 @@ export default defineComponent({
|
|
|
128
128
|
if (!this.playlist) {
|
|
129
129
|
return "";
|
|
130
130
|
}
|
|
131
|
-
return `background-image: url('${this.proxyImageUrl(
|
|
131
|
+
return `background-image: url('${this.proxyImageUrl(
|
|
132
|
+
this.playlist.imageUrl,
|
|
133
|
+
"250",
|
|
134
|
+
)}');`;
|
|
132
135
|
},
|
|
133
136
|
},
|
|
134
137
|
watch: {
|
|
@@ -46,10 +46,7 @@
|
|
|
46
46
|
:title="$t('More episodes of this emission')"
|
|
47
47
|
:button-text="$t('All podcast emission button')"
|
|
48
48
|
/>
|
|
49
|
-
<ClassicLazy
|
|
50
|
-
:min-height="550"
|
|
51
|
-
:unrender="true"
|
|
52
|
-
>
|
|
49
|
+
<ClassicLazy :min-height="550" :unrender="true">
|
|
53
50
|
<PodcastInlineList
|
|
54
51
|
:podcast-id="podcastId"
|
|
55
52
|
:title="$t('Suggested listening')"
|
|
@@ -93,7 +90,10 @@ import crudApi from "@/api/classicCrud";
|
|
|
93
90
|
import { state } from "../../stores/ParamSdkStore";
|
|
94
91
|
import dayjs from "dayjs";
|
|
95
92
|
import { Podcast } from "@/stores/class/general/podcast";
|
|
96
|
-
import {
|
|
93
|
+
import {
|
|
94
|
+
Conference,
|
|
95
|
+
ConferencePublicInfo,
|
|
96
|
+
} from "@/stores/class/conference/conference";
|
|
97
97
|
import { handle403 } from "../mixins/handle403";
|
|
98
98
|
import { defineComponent, defineAsyncComponent } from "vue";
|
|
99
99
|
import { CommentPodcast } from "@/stores/class/general/comment";
|
|
@@ -154,7 +154,7 @@ export default defineComponent({
|
|
|
154
154
|
|
|
155
155
|
computed: {
|
|
156
156
|
...mapState(useGeneralStore, ["storedCategories"]),
|
|
157
|
-
|
|
157
|
+
isComments(): boolean {
|
|
158
158
|
if (!this.podcast) return true;
|
|
159
159
|
let podcastComment = "INHERIT";
|
|
160
160
|
if (this.podcast.annotations && this.podcast.annotations.COMMENTS) {
|
|
@@ -179,7 +179,10 @@ export default defineComponent({
|
|
|
179
179
|
if (!this.podcast) {
|
|
180
180
|
return "";
|
|
181
181
|
}
|
|
182
|
-
return `background-image: url('${this.proxyImageUrl(
|
|
182
|
+
return `background-image: url('${this.proxyImageUrl(
|
|
183
|
+
this.podcast.imageUrl,
|
|
184
|
+
"270",
|
|
185
|
+
)}');`;
|
|
183
186
|
},
|
|
184
187
|
isPodcastmaker(): boolean {
|
|
185
188
|
return state.generalParameters.podcastmaker as boolean;
|
|
@@ -306,9 +309,9 @@ export default defineComponent({
|
|
|
306
309
|
this.fetchConference = {
|
|
307
310
|
...data,
|
|
308
311
|
...{
|
|
309
|
-
conferenceId: this.podcast?.conferenceId??0,
|
|
310
|
-
title: ""
|
|
311
|
-
}
|
|
312
|
+
conferenceId: this.podcast?.conferenceId ?? 0,
|
|
313
|
+
title: "",
|
|
314
|
+
},
|
|
312
315
|
};
|
|
313
316
|
},
|
|
314
317
|
async initConference() {
|
|
@@ -99,7 +99,10 @@ export default defineComponent({
|
|
|
99
99
|
backgroundDisplay(): string {
|
|
100
100
|
return !this.radio
|
|
101
101
|
? ""
|
|
102
|
-
: `background-image: url('${this.proxyImageUrl(
|
|
102
|
+
: `background-image: url('${this.proxyImageUrl(
|
|
103
|
+
this.radio.imageUrl,
|
|
104
|
+
"270",
|
|
105
|
+
)}');`;
|
|
103
106
|
},
|
|
104
107
|
},
|
|
105
108
|
watch: {
|