@saooti/octopus-sdk 40.2.0-SNAPSHOT → 40.2.1-SNAPSHOT
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/podcasts/PodcastModuleBox.vue +120 -122
- package/src/components/display/sharing/ShareSocialsButtons.vue +0 -30
- package/src/components/misc/ClassicNav.vue +1 -1
- package/src/components/pages/EmissionPage.vue +37 -39
- package/src/components/pages/PlaylistPage.vue +1 -1
- package/src/components/pages/RadioPage.vue +1 -1
package/package.json
CHANGED
|
@@ -1,118 +1,130 @@
|
|
|
1
1
|
<template>
|
|
2
2
|
<section v-if="podcast" class="module-box">
|
|
3
|
-
<
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
3
|
+
<RecordingItemButton
|
|
4
|
+
v-if="!!podcastConference && isLiveReadyToRecord && isOctopusAndAnimator"
|
|
5
|
+
:podcast="podcast"
|
|
6
|
+
:live="true"
|
|
7
|
+
:recording="podcastConference"
|
|
8
|
+
@delete-item="removeDeleted"
|
|
9
|
+
@validate-podcast="$emit('updatePodcast', $event)"
|
|
10
|
+
/>
|
|
11
|
+
<EditBox
|
|
12
|
+
v-else-if="editRight && isEditBox"
|
|
13
|
+
:podcast="podcast"
|
|
14
|
+
:display-studio-access="isDebriefing"
|
|
15
|
+
@validate-podcast="$emit('updatePodcast', $event)"
|
|
16
|
+
/>
|
|
17
|
+
<div class="mb-2 w-100">
|
|
18
|
+
<PodcastImage
|
|
19
|
+
:class="[
|
|
20
|
+
isLiveReadyToRecord &&
|
|
21
|
+
podcastConference &&
|
|
22
|
+
'null' !== podcastConference &&
|
|
23
|
+
podcastConference.status
|
|
24
|
+
? podcastConference.status.toLowerCase() + '-shadow'
|
|
25
|
+
: '',
|
|
26
|
+
]"
|
|
27
|
+
class="me-3"
|
|
28
|
+
:hide-play="isLiveReadyToRecord"
|
|
29
|
+
:podcast="podcast"
|
|
30
|
+
:playing-podcast="playingPodcast"
|
|
31
|
+
:fetch-conference="podcastConference"
|
|
32
|
+
:is-animator-live="isOctopusAndAnimator"
|
|
33
|
+
/>
|
|
34
|
+
<div class="d-flex justify-content-between flex-wrap mb-2">
|
|
35
|
+
<time
|
|
36
|
+
v-if="0 !== date.length" :class="!isLiveReady ? 'me-5' : ''"
|
|
37
|
+
:datetime="podcast.pubDate">
|
|
38
|
+
{{ date }}
|
|
39
|
+
</time>
|
|
40
|
+
<div v-if="isLiveReady" class="text-danger">
|
|
41
|
+
{{ $t("Episode record in live") }}
|
|
42
|
+
</div>
|
|
43
|
+
<div class="d-flex flex-column align-items-end flex-grow-1">
|
|
44
|
+
<time :datetime="durationIso">
|
|
45
|
+
{{ duration }}
|
|
26
46
|
</time>
|
|
27
|
-
<
|
|
28
|
-
{{ $t("Episode record in live") }}
|
|
29
|
-
</div>
|
|
30
|
-
<div class="d-flex flex-column align-items-end flex-grow-1">
|
|
31
|
-
<time :datetime="durationIso">
|
|
32
|
-
{{ duration }}
|
|
33
|
-
</time>
|
|
34
|
-
<ShareAnonymous v-if="!editRight" :podcast="podcast" :organisation-id="podcast.organisation.id"/>
|
|
35
|
-
</div>
|
|
47
|
+
<ShareAnonymous v-if="!editRight" :podcast="podcast" :organisation-id="podcast.organisation.id"/>
|
|
36
48
|
</div>
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
49
|
+
</div>
|
|
50
|
+
<h2 class="mb-3">
|
|
51
|
+
{{ podcast.title }}
|
|
52
|
+
</h2>
|
|
53
|
+
<PodcastPlannedSpinner v-if="isPlannedInProcessor"/>
|
|
54
|
+
<Countdown v-if="isCounter" :time-remaining="timeRemaining" />
|
|
55
|
+
<!-- eslint-disable vue/no-v-html -->
|
|
56
|
+
<div
|
|
57
|
+
class="description-text html-wysiwyg-content"
|
|
58
|
+
v-html="urlify(podcast.description)"
|
|
59
|
+
/>
|
|
60
|
+
<!-- eslint-enable -->
|
|
61
|
+
<div class="my-3">
|
|
62
|
+
<div class="mb-1">
|
|
63
|
+
{{ $t("Emission") + " : " }}
|
|
64
|
+
<router-link
|
|
65
|
+
:to="{
|
|
66
|
+
name: 'emission',
|
|
67
|
+
params: { emissionId: podcast.emission.emissionId },
|
|
68
|
+
}"
|
|
69
|
+
:title="$t('Series name page', { name: podcast.emission.name })"
|
|
70
|
+
>
|
|
71
|
+
{{ podcast.emission.name }}
|
|
72
|
+
</router-link>
|
|
73
|
+
</div>
|
|
74
|
+
<ParticipantDescription :participants="podcast.animators" />
|
|
75
|
+
<ParticipantDescription
|
|
76
|
+
:participants="podcast.guests"
|
|
77
|
+
:is-guest="true"
|
|
46
78
|
/>
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
<
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
:
|
|
53
|
-
|
|
54
|
-
params: { emissionId: podcast.emission.emissionId },
|
|
55
|
-
}"
|
|
56
|
-
:title="$t('Series name page', { name: podcast.emission.name })"
|
|
57
|
-
>
|
|
58
|
-
{{ podcast.emission.name }}
|
|
59
|
-
</router-link>
|
|
60
|
-
</div>
|
|
61
|
-
<ParticipantDescription :participants="podcast.animators" />
|
|
62
|
-
<ParticipantDescription
|
|
63
|
-
:participants="podcast.guests"
|
|
64
|
-
:is-guest="true"
|
|
65
|
-
/>
|
|
66
|
-
<div v-if="!isPodcastmaker" class="mb-1">
|
|
67
|
-
{{ $t("Producted by : ") }}
|
|
68
|
-
<router-link
|
|
69
|
-
:to="{
|
|
70
|
-
name: 'productor',
|
|
71
|
-
params: { productorId: podcast.organisation.id },
|
|
72
|
-
}"
|
|
73
|
-
>
|
|
74
|
-
{{ podcast.organisation.name }}
|
|
75
|
-
</router-link>
|
|
76
|
-
</div>
|
|
77
|
-
<div v-if="'' !== photoCredit" class="mb-1">
|
|
78
|
-
{{ $t("Photo credits") + " : " + photoCredit }}
|
|
79
|
-
</div>
|
|
80
|
-
<div v-if="'' !== audioCredit" class="mb-1">
|
|
81
|
-
{{ $t("Audio credits") + " : " + audioCredit }}
|
|
82
|
-
</div>
|
|
83
|
-
<div v-if="'' !== authorCredit" class="mb-1">
|
|
84
|
-
{{ $t("Author credits") + " : " + authorCredit }}
|
|
85
|
-
</div>
|
|
86
|
-
<a
|
|
87
|
-
v-if="podcast.article && !isGarRole"
|
|
88
|
-
class="btn d-flex align-items-center my-2 w-fit-content mb-1"
|
|
89
|
-
:href="podcast.article"
|
|
90
|
-
rel="noreferrer noopener"
|
|
91
|
-
target="_blank"
|
|
92
|
-
:title="$t('New window', {text : $t('See associated article')})"
|
|
79
|
+
<div v-if="!isPodcastmaker" class="mb-1">
|
|
80
|
+
{{ $t("Producted by : ") }}
|
|
81
|
+
<router-link
|
|
82
|
+
:to="{
|
|
83
|
+
name: 'productor',
|
|
84
|
+
params: { productorId: podcast.organisation.id },
|
|
85
|
+
}"
|
|
93
86
|
>
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
87
|
+
{{ podcast.organisation.name }}
|
|
88
|
+
</router-link>
|
|
89
|
+
</div>
|
|
90
|
+
<div v-if="'' !== photoCredit" class="mb-1">
|
|
91
|
+
{{ $t("Photo credits") + " : " + photoCredit }}
|
|
92
|
+
</div>
|
|
93
|
+
<div v-if="'' !== audioCredit" class="mb-1">
|
|
94
|
+
{{ $t("Audio credits") + " : " + audioCredit }}
|
|
95
|
+
</div>
|
|
96
|
+
<div v-if="'' !== authorCredit" class="mb-1">
|
|
97
|
+
{{ $t("Author credits") + " : " + authorCredit }}
|
|
98
|
+
</div>
|
|
99
|
+
<a
|
|
100
|
+
v-if="podcast.article && !isGarRole"
|
|
101
|
+
class="btn d-flex align-items-center my-2 w-fit-content mb-1"
|
|
102
|
+
:href="podcast.article"
|
|
103
|
+
rel="noreferrer noopener"
|
|
104
|
+
target="_blank"
|
|
105
|
+
:title="$t('New window', {text : $t('See associated article')})"
|
|
106
|
+
>
|
|
107
|
+
<NewspaperVariantOutlineIcon class="me-1" />
|
|
108
|
+
<div>{{ $t("See associated article") }}</div>
|
|
109
|
+
</a>
|
|
110
|
+
<PodcastPlayBar
|
|
111
|
+
v-if="isProgressBar"
|
|
112
|
+
:podcast="podcast"
|
|
113
|
+
/>
|
|
114
|
+
<div v-if="editRight && !isPodcastmaker">
|
|
115
|
+
<div
|
|
116
|
+
v-if="
|
|
117
|
+
podcast.annotations && 'RSS' === podcast.annotations.SOURCE_KIND
|
|
118
|
+
"
|
|
119
|
+
class="me-5 text-secondary"
|
|
120
|
+
>
|
|
121
|
+
{{ $t("From RSS") }}
|
|
115
122
|
</div>
|
|
123
|
+
<ErrorMessage v-if="'' !== errorMessage" :message="errorMessage" />
|
|
124
|
+
</div>
|
|
125
|
+
<div class="d-flex align-items-center flex-wrap">
|
|
126
|
+
<LikeSection :edit-right="editRight" :podcast="podcast" />
|
|
127
|
+
<DownloadPodcastButton v-if="isDownloadButton" :podcast="podcast" />
|
|
116
128
|
</div>
|
|
117
129
|
</div>
|
|
118
130
|
</div>
|
|
@@ -135,20 +147,6 @@
|
|
|
135
147
|
:window-width="1000"
|
|
136
148
|
:justify-center="false"
|
|
137
149
|
/>
|
|
138
|
-
<RecordingItemButton
|
|
139
|
-
v-if="!!podcastConference && isLiveReadyToRecord && isOctopusAndAnimator"
|
|
140
|
-
:podcast="podcast"
|
|
141
|
-
:live="true"
|
|
142
|
-
:recording="podcastConference"
|
|
143
|
-
@delete-item="removeDeleted"
|
|
144
|
-
@validate-podcast="$emit('updatePodcast', $event)"
|
|
145
|
-
/>
|
|
146
|
-
<EditBox
|
|
147
|
-
v-else-if="editRight && isEditBox"
|
|
148
|
-
:podcast="podcast"
|
|
149
|
-
:display-studio-access="isDebriefing"
|
|
150
|
-
@validate-podcast="$emit('updatePodcast', $event)"
|
|
151
|
-
/>
|
|
152
150
|
</section>
|
|
153
151
|
</template>
|
|
154
152
|
|
|
@@ -17,23 +17,6 @@
|
|
|
17
17
|
</a>
|
|
18
18
|
</template>
|
|
19
19
|
<slot name="additional-buttons"/>
|
|
20
|
-
<!-- <div v-if="shareAiAuth" class="d-flex flex-column ms-4">
|
|
21
|
-
<h3 class="mb-2">
|
|
22
|
-
{{ $t("Generate a social media post (with AI)") }}
|
|
23
|
-
</h3>
|
|
24
|
-
<div class="d-flex align-items-center justify-content-center">
|
|
25
|
-
<router-link
|
|
26
|
-
class="btn share-btn mb-2 text-dark"
|
|
27
|
-
:title="$t('Generate a social media post (with AI)')"
|
|
28
|
-
:to="{
|
|
29
|
-
name: 'advancedShare',
|
|
30
|
-
params: { podcastId: podcast.podcastId },
|
|
31
|
-
}"
|
|
32
|
-
>
|
|
33
|
-
<CreationIcon />
|
|
34
|
-
</router-link>
|
|
35
|
-
</div>
|
|
36
|
-
</div> -->
|
|
37
20
|
</div>
|
|
38
21
|
</section>
|
|
39
22
|
</template>
|
|
@@ -70,20 +53,7 @@ export default defineComponent({
|
|
|
70
53
|
...mapState(useAuthStore, [
|
|
71
54
|
"isGarRole",
|
|
72
55
|
"authOrgaId"
|
|
73
|
-
/* "authOrganisation",
|
|
74
|
-
"isRoleProduction" */
|
|
75
56
|
]),
|
|
76
|
-
/* shareAiAuth(): boolean {
|
|
77
|
-
return (
|
|
78
|
-
!this.isPodcastmaker &&
|
|
79
|
-
undefined !== this.authOrgaId &&
|
|
80
|
-
undefined !== this.podcast &&
|
|
81
|
-
this.isRoleProduction &&
|
|
82
|
-
(this.authOrganisation.attributes?.["openAi.active"] as
|
|
83
|
-
| string
|
|
84
|
-
| undefined) === "true"
|
|
85
|
-
);
|
|
86
|
-
}, */
|
|
87
57
|
arrayShareButtons() {
|
|
88
58
|
return [
|
|
89
59
|
{
|
|
@@ -127,7 +127,7 @@ export default defineComponent({
|
|
|
127
127
|
.octopus-nav.light .octopus-nav-link {
|
|
128
128
|
font-weight: bold;
|
|
129
129
|
background:var(--octopus-border-default);
|
|
130
|
-
|
|
130
|
+
&.active{
|
|
131
131
|
border-bottom-color: var(--octopus-primary);
|
|
132
132
|
background: transparent;
|
|
133
133
|
color: var(--octopus-primary);
|
|
@@ -11,50 +11,48 @@
|
|
|
11
11
|
:class="isPodcastmaker ? 'page-element-podcastmaker' : ''"
|
|
12
12
|
>
|
|
13
13
|
<section class="module-box">
|
|
14
|
-
<div class="d-flex mb-2">
|
|
15
|
-
<div class="w-100">
|
|
16
|
-
<img
|
|
17
|
-
v-lazy="useProxyImageUrl(emission.imageUrl, '250')"
|
|
18
|
-
width="250"
|
|
19
|
-
height="250"
|
|
20
|
-
role="presentation"
|
|
21
|
-
alt=""
|
|
22
|
-
:title="$t('Emission name image', { name: name })"
|
|
23
|
-
class="img-box img-box-podcast mb-3 flex-column justify-content-start align-items-start position-relative flex-shrink-0 float-start me-3"
|
|
24
|
-
/>
|
|
25
|
-
<div class="d-flex align-items-center justify-content-between">
|
|
26
|
-
<h2>{{ name }}</h2>
|
|
27
|
-
<ShareAnonymous v-if="!editRight" class="d-flex justify-content-end flex-grow-1" :emission="emission" :organisation-id="emission.orga.id"/>
|
|
28
|
-
</div>
|
|
29
|
-
<!-- eslint-disable vue/no-v-html -->
|
|
30
|
-
<p
|
|
31
|
-
class="html-wysiwyg-content description-text"
|
|
32
|
-
v-html="urlify(description)"
|
|
33
|
-
/>
|
|
34
|
-
<!-- eslint-enable -->
|
|
35
|
-
<div v-if="lastPodcast" class="d-flex align-items-center mt-3">
|
|
36
|
-
<PodcastPlayButton
|
|
37
|
-
:podcast="lastPodcast"
|
|
38
|
-
:just-buttons="true"
|
|
39
|
-
/>
|
|
40
|
-
<div class="ms-2 fw-bold">
|
|
41
|
-
{{ $t("Listen to the latest episode") }}
|
|
42
|
-
</div>
|
|
43
|
-
</div>
|
|
44
|
-
<SubscribeButtons
|
|
45
|
-
v-if="isPodcastmaker"
|
|
46
|
-
class="mt-4"
|
|
47
|
-
:emission="emission"
|
|
48
|
-
:window-width="1000"
|
|
49
|
-
:justify-center="false"
|
|
50
|
-
/>
|
|
51
|
-
</div>
|
|
52
|
-
</div>
|
|
53
14
|
<EditBox
|
|
54
15
|
v-if="editRight && !isPodcastmaker"
|
|
55
16
|
:emission="emission"
|
|
56
17
|
@is-updated="getEmissionDetails"
|
|
57
18
|
/>
|
|
19
|
+
<div class="w-100 mb-2">
|
|
20
|
+
<img
|
|
21
|
+
v-lazy="useProxyImageUrl(emission.imageUrl, '250')"
|
|
22
|
+
width="250"
|
|
23
|
+
height="250"
|
|
24
|
+
role="presentation"
|
|
25
|
+
alt=""
|
|
26
|
+
:title="$t('Emission name image', { name: name })"
|
|
27
|
+
class="img-box img-box-podcast mb-3 flex-column justify-content-start align-items-start position-relative flex-shrink-0 float-start me-3"
|
|
28
|
+
/>
|
|
29
|
+
<div class="d-flex align-items-center justify-content-between">
|
|
30
|
+
<h2>{{ name }}</h2>
|
|
31
|
+
<ShareAnonymous v-if="!editRight" class="d-flex justify-content-end flex-grow-1" :emission="emission" :organisation-id="emission.orga.id"/>
|
|
32
|
+
</div>
|
|
33
|
+
<!-- eslint-disable vue/no-v-html -->
|
|
34
|
+
<p
|
|
35
|
+
class="html-wysiwyg-content description-text"
|
|
36
|
+
v-html="urlify(description)"
|
|
37
|
+
/>
|
|
38
|
+
<!-- eslint-enable -->
|
|
39
|
+
<div v-if="lastPodcast" class="d-flex align-items-center mt-3">
|
|
40
|
+
<PodcastPlayButton
|
|
41
|
+
:podcast="lastPodcast"
|
|
42
|
+
:just-buttons="true"
|
|
43
|
+
/>
|
|
44
|
+
<div class="ms-2 fw-bold">
|
|
45
|
+
{{ $t("Listen to the latest episode") }}
|
|
46
|
+
</div>
|
|
47
|
+
</div>
|
|
48
|
+
<SubscribeButtons
|
|
49
|
+
v-if="isPodcastmaker"
|
|
50
|
+
class="mt-4"
|
|
51
|
+
:emission="emission"
|
|
52
|
+
:window-width="1000"
|
|
53
|
+
:justify-center="false"
|
|
54
|
+
/>
|
|
55
|
+
</div>
|
|
58
56
|
</section>
|
|
59
57
|
<ShareSocialsButtons
|
|
60
58
|
v-if="pageParameters.isShareButtons"
|
|
@@ -11,6 +11,7 @@
|
|
|
11
11
|
:class="isPodcastmaker ? 'page-element-podcastmaker' : ''"
|
|
12
12
|
>
|
|
13
13
|
<section class="module-box">
|
|
14
|
+
<EditBox v-if="editRight && !isPodcastmaker" :playlist="playlist" />
|
|
14
15
|
<div class="mb-5 mt-3 description-text">
|
|
15
16
|
<img
|
|
16
17
|
v-lazy="useProxyImageUrl(playlist.imageUrl, '250')"
|
|
@@ -29,7 +30,6 @@
|
|
|
29
30
|
<p class="html-wysiwyg-content" v-html="urlify(description)" />
|
|
30
31
|
<!-- eslint-enable -->
|
|
31
32
|
</div>
|
|
32
|
-
<EditBox v-if="editRight && !isPodcastmaker" :playlist="playlist" />
|
|
33
33
|
</section>
|
|
34
34
|
<SharePlayer
|
|
35
35
|
v-if="!isPodcastmaker && editRight"
|
|
@@ -16,7 +16,7 @@
|
|
|
16
16
|
<RadioImage :radio="radio" />
|
|
17
17
|
<div class="d-flex align-items-center justify-content-between">
|
|
18
18
|
<h2>{{ radio.name }}</h2>
|
|
19
|
-
<ShareAnonymous
|
|
19
|
+
<ShareAnonymous class="d-flex justify-content-end flex-grow-1" :organisation-id="radio.organisationId"/>
|
|
20
20
|
</div>
|
|
21
21
|
<div v-if="radio.description">
|
|
22
22
|
{{ radio.description }}
|