@saooti/octopus-sdk 36.0.2 → 36.0.4
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/public/css/fonts/icomoon.eot +0 -0
- package/public/css/fonts/icomoon.svg +21 -12
- package/public/css/fonts/icomoon.ttf +0 -0
- package/public/css/fonts/icomoon.woff +0 -0
- package/public/css/fonts/style.css +32 -5
- package/public/img/header-emissions.webp +0 -0
- package/public/img/header-home.webp +0 -0
- package/public/img/header-intervenants.webp +0 -0
- package/public/img/header-playlists.webp +0 -0
- package/public/img/header-podcasts.webp +0 -0
- package/src/assets/bootstrap.scss +26 -12
- package/src/assets/form.scss +2 -2
- package/src/assets/general.scss +16 -26
- package/src/assets/live.scss +0 -18
- package/src/assets/multiselect.scss +15 -25
- package/src/assets/share.scss +47 -12
- package/src/components/display/categories/CategoryChooser.vue +1 -1
- package/src/components/display/categories/CategoryFilter.vue +109 -62
- package/src/components/display/categories/CategoryList.vue +9 -20
- package/src/components/display/emission/EmissionChooser.vue +1 -1
- package/src/components/display/emission/EmissionInlineList.vue +1 -1
- package/src/components/display/emission/EmissionItem.vue +5 -5
- package/src/components/display/emission/EmissionPlayerItem.vue +15 -11
- package/src/components/display/filter/MonetizableFilter.vue +1 -1
- package/src/components/display/filter/ProductorSearch.vue +1 -1
- package/src/components/display/filter/RubriqueChoice.vue +1 -1
- package/src/components/display/list/ListPaginate.vue +14 -25
- package/src/components/display/list/Paginate.vue +71 -104
- package/src/components/display/list/PaginateParams.vue +66 -0
- package/src/components/display/live/CountDown.vue +1 -1
- package/src/components/display/live/LiveItem.vue +0 -7
- package/src/components/display/organisation/OrganisationChooser.vue +1 -1
- package/src/components/display/participant/ParticipantItem.vue +6 -12
- package/src/components/display/participant/ParticipantList.vue +2 -24
- package/src/components/display/playlist/PlaylistItem.vue +10 -10
- package/src/components/display/podcasts/AnimatorsItem.vue +1 -2
- package/src/components/display/podcasts/ParticipantDescription.vue +0 -30
- package/src/components/display/podcasts/PodcastFilterList.vue +1 -1
- package/src/components/display/podcasts/PodcastImage.vue +19 -13
- package/src/components/display/podcasts/PodcastInlineListClassic.vue +1 -1
- package/src/components/display/podcasts/PodcastInlineListTemplate.vue +14 -12
- package/src/components/display/podcasts/PodcastItem.vue +15 -9
- package/src/components/display/podcasts/PodcastItemInfo.vue +18 -55
- package/src/components/display/podcasts/PodcastModuleBox.vue +54 -26
- package/src/components/display/podcasts/PodcastSwiperList.vue +20 -10
- package/src/components/display/podcasts/TagList.vue +7 -2
- package/src/components/display/rubriques/RubriqueChooser.vue +2 -2
- package/src/components/display/rubriques/RubriqueList.vue +11 -19
- package/src/components/display/sharing/PlayerParameters.vue +59 -75
- package/src/components/display/sharing/ShareButtons.vue +20 -37
- package/src/components/display/sharing/ShareButtonsIntern.vue +74 -83
- package/src/components/display/sharing/ShareDistribution.vue +3 -2
- package/src/components/display/sharing/SharePlayer.vue +50 -50
- package/src/components/display/sharing/SharePlayerColors.vue +4 -4
- package/src/components/display/sharing/SharePlayerTypes.vue +25 -27
- package/src/components/display/sharing/SubscribeButtons.vue +2 -2
- package/src/components/form/ClassicCheckbox.vue +1 -1
- package/src/components/form/ClassicSearch.vue +2 -1
- package/src/components/misc/Footer.vue +19 -15
- package/src/components/misc/HomeDropdown.vue +14 -14
- package/src/components/misc/Popover.vue +2 -1
- package/src/components/misc/ProgressBar.vue +1 -1
- package/src/components/misc/TopBar.vue +54 -44
- package/src/components/misc/modal/ClassicModal.vue +2 -2
- package/src/components/misc/modal/NewsletterModal.vue +0 -1
- package/src/components/misc/player/Player.vue +5 -14
- package/src/components/misc/player/PlayerCompact.vue +2 -1
- package/src/components/pages/Emission.vue +64 -62
- package/src/components/pages/Emissions.vue +0 -9
- package/src/components/pages/Participant.vue +13 -15
- package/src/components/pages/Participants.vue +0 -7
- package/src/components/pages/Playlist.vue +43 -37
- package/src/components/pages/Playlists.vue +0 -5
- package/src/components/pages/Podcast.vue +65 -100
- package/src/components/pages/Podcasts.vue +1 -37
- package/src/locale/de.ts +6 -1
- package/src/locale/en.ts +6 -1
- package/src/locale/es.ts +6 -1
- package/src/locale/fr.ts +6 -1
- package/src/locale/it.ts +6 -1
- package/src/locale/sl.ts +6 -1
- package/src/sass/_variables.scss +6 -1
- package/src/stores/ParamSdkStore.ts +14 -22
- package/src/stores/PlayerStore.ts +11 -0
|
@@ -1,17 +1,9 @@
|
|
|
1
1
|
<template>
|
|
2
2
|
<div class="module-box">
|
|
3
|
-
<div
|
|
4
|
-
class="text-uppercase h4"
|
|
5
|
-
>
|
|
6
|
-
{{ podcast.title }}
|
|
7
|
-
</div>
|
|
8
|
-
<div class="mb-5 mt-3 d-flex">
|
|
3
|
+
<div class="mb-2 d-flex">
|
|
9
4
|
<div class="w-100">
|
|
10
5
|
<PodcastImage
|
|
11
6
|
:class="[
|
|
12
|
-
!isLiveReadyToRecord
|
|
13
|
-
? 'shadow-element'
|
|
14
|
-
: '',
|
|
15
7
|
isLiveReadyToRecord &&
|
|
16
8
|
fetchConference &&
|
|
17
9
|
'null' !== fetchConference &&
|
|
@@ -28,8 +20,7 @@
|
|
|
28
20
|
@playPodcast="playPodcast"
|
|
29
21
|
/>
|
|
30
22
|
<div
|
|
31
|
-
class="d-flex flex-wrap mb-
|
|
32
|
-
:class="isLiveReady ? 'justify-content-between' : ''"
|
|
23
|
+
class="d-flex justify-content-between flex-wrap mb-2"
|
|
33
24
|
>
|
|
34
25
|
<div
|
|
35
26
|
v-if="0 !== date.length"
|
|
@@ -38,7 +29,7 @@
|
|
|
38
29
|
{{ date }}
|
|
39
30
|
</div>
|
|
40
31
|
<div>
|
|
41
|
-
{{
|
|
32
|
+
{{ duration}}
|
|
42
33
|
</div>
|
|
43
34
|
<div
|
|
44
35
|
v-if="isLiveReady"
|
|
@@ -47,6 +38,11 @@
|
|
|
47
38
|
{{ $t('Episode record in live') }}
|
|
48
39
|
</div>
|
|
49
40
|
</div>
|
|
41
|
+
<div
|
|
42
|
+
class="text-uppercase h2 mb-3"
|
|
43
|
+
>
|
|
44
|
+
{{ podcast.title }}
|
|
45
|
+
</div>
|
|
50
46
|
<!-- eslint-disable vue/no-v-html -->
|
|
51
47
|
<div
|
|
52
48
|
class="descriptionText html-wysiwyg-content"
|
|
@@ -54,11 +50,10 @@
|
|
|
54
50
|
/>
|
|
55
51
|
<!-- eslint-enable -->
|
|
56
52
|
<div class="my-3">
|
|
57
|
-
<ParticipantDescription :participants="podcast.animators" />
|
|
58
|
-
<div>
|
|
53
|
+
<ParticipantDescription class="mb-1" :participants="podcast.animators" />
|
|
54
|
+
<div class="mb-1">
|
|
59
55
|
{{ $t('Emission') + ' : ' }}
|
|
60
56
|
<router-link
|
|
61
|
-
class="fw-bold"
|
|
62
57
|
:to="{
|
|
63
58
|
name: 'emission',
|
|
64
59
|
params: { emissionId: podcast.emission.emissionId },
|
|
@@ -70,10 +65,9 @@
|
|
|
70
65
|
{{ podcast.emission.name }}
|
|
71
66
|
</router-link>
|
|
72
67
|
</div>
|
|
73
|
-
<div v-if="!isPodcastmaker">
|
|
68
|
+
<div class="mb-1" v-if="!isPodcastmaker">
|
|
74
69
|
{{ $t('Producted by : ') }}
|
|
75
70
|
<router-link
|
|
76
|
-
class="fw-bold"
|
|
77
71
|
:to="{
|
|
78
72
|
name: 'productor',
|
|
79
73
|
params: { productorId: podcast.organisation.id },
|
|
@@ -85,15 +79,15 @@
|
|
|
85
79
|
{{ podcast.organisation.name }}
|
|
86
80
|
</router-link>
|
|
87
81
|
</div>
|
|
88
|
-
<div v-if="''!==photoCredit">
|
|
82
|
+
<div class="mb-1" v-if="''!==photoCredit">
|
|
89
83
|
{{ $t('Photo credits') + " : "+ photoCredit }}
|
|
90
84
|
</div>
|
|
91
|
-
<div v-if="''!==audioCredit">
|
|
85
|
+
<div class="mb-1" v-if="''!==audioCredit">
|
|
92
86
|
{{ $t('Audio credits') + " : "+ audioCredit }}
|
|
93
87
|
</div>
|
|
94
88
|
<a
|
|
95
89
|
v-if="podcast.article"
|
|
96
|
-
class="btn d-flex align-items-center my-2 width-fit-content"
|
|
90
|
+
class="btn d-flex align-items-center my-2 width-fit-content mb-1"
|
|
97
91
|
:href="podcast.article"
|
|
98
92
|
rel="noopener"
|
|
99
93
|
target="_blank"
|
|
@@ -102,16 +96,18 @@
|
|
|
102
96
|
<div>{{ $t('See associated article') }}</div>
|
|
103
97
|
</a>
|
|
104
98
|
<ParticipantDescription
|
|
99
|
+
class="mb-1"
|
|
105
100
|
:participants="podcast.guests"
|
|
106
101
|
:is-guest="true"
|
|
107
102
|
/>
|
|
108
103
|
<PodcastPlayBar
|
|
109
|
-
:podcast="podcast"
|
|
104
|
+
:podcast-id="podcast.podcastId"
|
|
105
|
+
:duration="podcast.duration"
|
|
110
106
|
/>
|
|
111
107
|
<div v-if="editRight && !isPodcastmaker">
|
|
112
108
|
<div
|
|
113
109
|
v-if="podcast.annotations && 'RSS'===podcast.annotations.SOURCE_KIND"
|
|
114
|
-
class="me-5"
|
|
110
|
+
class="me-5 text-secondary"
|
|
115
111
|
>
|
|
116
112
|
{{ $t('From RSS') }}
|
|
117
113
|
</div>
|
|
@@ -123,6 +119,24 @@
|
|
|
123
119
|
</div>
|
|
124
120
|
</div>
|
|
125
121
|
</div>
|
|
122
|
+
<RecordingItemButton
|
|
123
|
+
v-if="
|
|
124
|
+
!!fetchConference &&
|
|
125
|
+
isLiveReadyToRecord &&
|
|
126
|
+
!isNotRecorded &&
|
|
127
|
+
isOctopusAndAnimator
|
|
128
|
+
"
|
|
129
|
+
:podcast="podcast"
|
|
130
|
+
:live="true"
|
|
131
|
+
:recording="fetchConference"
|
|
132
|
+
@deleteItem="removeDeleted"
|
|
133
|
+
@validatePodcast="$emit('updatePodcast', $event)"
|
|
134
|
+
/>
|
|
135
|
+
<EditBox
|
|
136
|
+
v-else-if="editRight && isEditBox"
|
|
137
|
+
:podcast="podcast"
|
|
138
|
+
@validatePodcast="$emit('updatePodcast', $event)"
|
|
139
|
+
/>
|
|
126
140
|
<TagList
|
|
127
141
|
:tag-list="podcast.tags"
|
|
128
142
|
/>
|
|
@@ -145,6 +159,8 @@ import { Conference } from '@/stores/class/conference/conference';
|
|
|
145
159
|
|
|
146
160
|
import { defineComponent, defineAsyncComponent } from 'vue';
|
|
147
161
|
const ErrorMessage = defineAsyncComponent(() => import('../../misc/ErrorMessage.vue'));
|
|
162
|
+
const RecordingItemButton = defineAsyncComponent(() => import('@/components/display/studio/RecordingItemButton.vue'));
|
|
163
|
+
const EditBox = defineAsyncComponent(() => import('@/components/display/edit/EditBox.vue'));
|
|
148
164
|
export default defineComponent({
|
|
149
165
|
name: "PodcastModuleBox",
|
|
150
166
|
components: {
|
|
@@ -152,7 +168,9 @@ export default defineComponent({
|
|
|
152
168
|
ParticipantDescription,
|
|
153
169
|
TagList,
|
|
154
170
|
ErrorMessage,
|
|
155
|
-
PodcastPlayBar
|
|
171
|
+
PodcastPlayBar,
|
|
172
|
+
EditBox,
|
|
173
|
+
RecordingItemButton
|
|
156
174
|
},
|
|
157
175
|
|
|
158
176
|
mixins:[displayMethods, orgaComputed],
|
|
@@ -163,7 +181,7 @@ export default defineComponent({
|
|
|
163
181
|
fetchConference: { default: undefined, type: Object as ()=> Conference},
|
|
164
182
|
},
|
|
165
183
|
|
|
166
|
-
emits: ['playPodcast'],
|
|
184
|
+
emits: ['playPodcast', 'updatePodcast'],
|
|
167
185
|
|
|
168
186
|
computed: {
|
|
169
187
|
errorMessage(): string{
|
|
@@ -180,7 +198,7 @@ export default defineComponent({
|
|
|
180
198
|
},
|
|
181
199
|
date(): string {
|
|
182
200
|
if (this.podcast && 1970 !== dayjs(this.podcast.pubDate).year()){
|
|
183
|
-
return dayjs(this.podcast.pubDate).format('D MMMM YYYY
|
|
201
|
+
return dayjs(this.podcast.pubDate).format('D MMMM YYYY');
|
|
184
202
|
}
|
|
185
203
|
return '';
|
|
186
204
|
},
|
|
@@ -235,12 +253,22 @@ export default defineComponent({
|
|
|
235
253
|
},
|
|
236
254
|
audioCredit():string{
|
|
237
255
|
return (this.podcast?.annotations?.audioCredit as string) ?? '';
|
|
238
|
-
}
|
|
256
|
+
},
|
|
257
|
+
isEditBox(): boolean{
|
|
258
|
+
return (state.podcastPage.EditBox as boolean)?? false;
|
|
259
|
+
},
|
|
239
260
|
},
|
|
240
261
|
methods: {
|
|
241
262
|
playPodcast(podcast: Podcast): void {
|
|
242
263
|
this.$emit('playPodcast', podcast);
|
|
243
264
|
},
|
|
265
|
+
removeDeleted(): void {
|
|
266
|
+
if (window.history.length > 1) {
|
|
267
|
+
this.$router.go(-1);
|
|
268
|
+
} else {
|
|
269
|
+
this.$router.push('/');
|
|
270
|
+
}
|
|
271
|
+
},
|
|
244
272
|
},
|
|
245
273
|
})
|
|
246
274
|
</script>
|
|
@@ -10,7 +10,6 @@
|
|
|
10
10
|
:iab-id="iabId"
|
|
11
11
|
:rubrique-id="rubriqueId"
|
|
12
12
|
:no-rubriquage-id="noRubriquageId"
|
|
13
|
-
:is-button-next-title="true"
|
|
14
13
|
@sortChrono="sortChrono"
|
|
15
14
|
@sortPopular="sortPopular"
|
|
16
15
|
>
|
|
@@ -22,7 +21,7 @@
|
|
|
22
21
|
<swiper
|
|
23
22
|
v-if="!loading"
|
|
24
23
|
:slides-per-view="numberItem"
|
|
25
|
-
:space-between="
|
|
24
|
+
:space-between="0"
|
|
26
25
|
:loop="allPodcasts.length>=numberItem"
|
|
27
26
|
:navigation="true"
|
|
28
27
|
:modules="modules"
|
|
@@ -102,7 +101,10 @@ export default defineComponent({
|
|
|
102
101
|
return `${this.emissionId}|${this.organisationId}|${this.filterOrgaId}|${this.iabId}|${this.rubriqueId}|${this.rubriquageId}|${this.query}`;
|
|
103
102
|
},
|
|
104
103
|
sizeItem(): number {
|
|
105
|
-
|
|
104
|
+
if (window.innerWidth <= 450) {
|
|
105
|
+
return 12.5;
|
|
106
|
+
}
|
|
107
|
+
return state.generalParameters.podcastItem ? state.generalParameters.podcastItem: 16.5;
|
|
106
108
|
},
|
|
107
109
|
},
|
|
108
110
|
watch: {
|
|
@@ -133,9 +135,9 @@ export default defineComponent({
|
|
|
133
135
|
methods: {
|
|
134
136
|
handleResize(): void {
|
|
135
137
|
if (!this.$el) return;
|
|
136
|
-
const width = (this.$el as HTMLElement).offsetWidth;
|
|
137
|
-
const sixteen = domHelper.convertRemToPixels(this.sizeItem
|
|
138
|
-
this.numberItem = Math.floor(width / sixteen);
|
|
138
|
+
const width = (this.$el as HTMLElement).offsetWidth - 95;
|
|
139
|
+
const sixteen = domHelper.convertRemToPixels(this.sizeItem+ 0.5);
|
|
140
|
+
this.numberItem = Math.max(1, Math.floor(width / sixteen));
|
|
139
141
|
},
|
|
140
142
|
async fetchNext(): Promise<void> {
|
|
141
143
|
const data = await octopusApi.fetchDataWithParams<{count: number;result:Array<Podcast>;sort: string;}>(0, 'podcast/search',{
|
|
@@ -187,17 +189,25 @@ export default defineComponent({
|
|
|
187
189
|
top: 0;
|
|
188
190
|
bottom: 0;
|
|
189
191
|
margin: 0;
|
|
190
|
-
width: 50px;
|
|
191
192
|
}
|
|
192
193
|
.swiper-button-next{
|
|
193
|
-
background: linear-gradient(90deg, rgba(255, 255, 255, 0) 0%,#fafafa 50%, #fafafa 100%);
|
|
194
194
|
right: 0;
|
|
195
195
|
}
|
|
196
196
|
.swiper-button-prev{
|
|
197
|
-
background: linear-gradient(90deg, #fafafa 0%,#fafafa 50%, rgba(255, 255, 255, 0) 100%);
|
|
198
197
|
left: 0;
|
|
199
198
|
}
|
|
200
|
-
|
|
199
|
+
.swiper-slide-active{
|
|
200
|
+
padding-left:27px;
|
|
201
|
+
@media (max-width: 550px) {
|
|
202
|
+
padding-left:0;
|
|
203
|
+
}
|
|
204
|
+
}
|
|
205
|
+
.swiper-slide-next{
|
|
206
|
+
padding-right:27px;
|
|
207
|
+
}
|
|
208
|
+
.swiper-button-lock{
|
|
209
|
+
display: flex;
|
|
210
|
+
}
|
|
201
211
|
.swiper-slide {
|
|
202
212
|
display: flex;
|
|
203
213
|
justify-content: center;
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
v-if="undefined !== tagList && 0!==tagList.length"
|
|
4
4
|
class="tag-list-component d-flex align-items-center flex-wrap"
|
|
5
5
|
>
|
|
6
|
-
<div
|
|
6
|
+
<div>
|
|
7
7
|
{{ $t('Podcast tags') + ": " }}
|
|
8
8
|
</div>
|
|
9
9
|
<div
|
|
@@ -14,6 +14,7 @@
|
|
|
14
14
|
<div
|
|
15
15
|
:id="'tag-list-from-podcast-page'+index"
|
|
16
16
|
role="button"
|
|
17
|
+
class="d-flex align-items-center"
|
|
17
18
|
>
|
|
18
19
|
<img
|
|
19
20
|
v-if="isOuestFranceTag(tag)"
|
|
@@ -29,6 +30,8 @@
|
|
|
29
30
|
v-if="isOuestFranceTag(tag)"
|
|
30
31
|
:target="'tag-list-from-podcast-page'+index"
|
|
31
32
|
:content="tag.substring(4,tag.length)"
|
|
33
|
+
relativeClass="page-element"
|
|
34
|
+
:isFixed="true"
|
|
32
35
|
/>
|
|
33
36
|
</div>
|
|
34
37
|
</div>
|
|
@@ -51,6 +54,7 @@ export default defineComponent({
|
|
|
51
54
|
</script>
|
|
52
55
|
|
|
53
56
|
<style lang="scss">
|
|
57
|
+
@import '@scss/_variables.scss';
|
|
54
58
|
.octopus-app{
|
|
55
59
|
.tag-list-component{
|
|
56
60
|
.ouest-france-logo{
|
|
@@ -60,10 +64,11 @@ export default defineComponent({
|
|
|
60
64
|
}
|
|
61
65
|
.tag-list-element {
|
|
62
66
|
display: flex;
|
|
67
|
+
align-items: center;
|
|
63
68
|
margin: 0.4rem;
|
|
64
69
|
padding: 0.2rem;
|
|
65
70
|
border: 1px solid #999;
|
|
66
|
-
border-radius:
|
|
71
|
+
border-radius: $octopus-borderradius;
|
|
67
72
|
}
|
|
68
73
|
}
|
|
69
74
|
}
|
|
@@ -60,8 +60,8 @@
|
|
|
60
60
|
{{ $t('No elements found. Consider changing the search query.') }}
|
|
61
61
|
</template>
|
|
62
62
|
<template #caret>
|
|
63
|
-
<span class="saooti-down octopus-arrow-down
|
|
64
|
-
</template>
|
|
63
|
+
<span class="saooti-down octopus-arrow-down-absolute" />
|
|
64
|
+
</template>
|
|
65
65
|
<template #afterList="">
|
|
66
66
|
<div
|
|
67
67
|
v-if="rubriques.length > rubriqueLimit"
|
|
@@ -26,7 +26,7 @@
|
|
|
26
26
|
v-for="rubrique in rubriqueDisplay"
|
|
27
27
|
:ref="'rubrique' + rubrique.rubriqueId"
|
|
28
28
|
:key="rubrique.rubriqueId"
|
|
29
|
-
class="
|
|
29
|
+
class="btn btn-primary btn-on-dark m-1"
|
|
30
30
|
@click="addFilter(rubrique)"
|
|
31
31
|
>
|
|
32
32
|
{{ rubrique.name }}
|
|
@@ -35,7 +35,7 @@
|
|
|
35
35
|
<button
|
|
36
36
|
v-show="hidenRubriques.length"
|
|
37
37
|
id="rubriques-dropdown"
|
|
38
|
-
class="btn
|
|
38
|
+
class="btn btn-primary btn-on-dark m-1 saooti-more"
|
|
39
39
|
:title="$t('See more')"
|
|
40
40
|
/>
|
|
41
41
|
<Popover
|
|
@@ -175,12 +175,18 @@ export default defineComponent({
|
|
|
175
175
|
if(null === rubriqueList){return}
|
|
176
176
|
rubriqueList.style.justifyContent = 'flex-start';
|
|
177
177
|
this.hidenRubriques.length = 0;
|
|
178
|
+
this.rubriqueDisplay.forEach((element: Rubrique) => {
|
|
179
|
+
const el = (this.$refs['rubrique' + element.rubriqueId] as Array<HTMLElement>)[0];
|
|
180
|
+
if (!el) return;
|
|
181
|
+
if (el.classList.contains('hid')) {
|
|
182
|
+
el.classList.remove('hid');
|
|
183
|
+
}
|
|
184
|
+
});
|
|
178
185
|
this.rubriqueDisplay.forEach((element: Rubrique) => {
|
|
179
186
|
const el = (this.$refs['rubrique' + element.rubriqueId] as Array<HTMLElement>)[0];
|
|
180
187
|
if (!el) return;
|
|
181
188
|
const parent = el.parentElement;
|
|
182
189
|
if (null !== parent && el.offsetLeft + el.clientWidth <= parent.clientWidth - 20) {
|
|
183
|
-
el.classList.remove('hid');
|
|
184
190
|
return;
|
|
185
191
|
}
|
|
186
192
|
this.hidenRubriques.push(element);
|
|
@@ -200,6 +206,7 @@ export default defineComponent({
|
|
|
200
206
|
</script>
|
|
201
207
|
|
|
202
208
|
<style lang="scss">
|
|
209
|
+
@import '@scss/_variables.scss';
|
|
203
210
|
.octopus-app{
|
|
204
211
|
.rubrique-list-container {
|
|
205
212
|
display: flex;
|
|
@@ -211,26 +218,11 @@ export default defineComponent({
|
|
|
211
218
|
padding: 0 4rem;
|
|
212
219
|
select{
|
|
213
220
|
width: auto;
|
|
214
|
-
border-radius:
|
|
221
|
+
border-radius: $octopus-borderradius;
|
|
215
222
|
margin: 0.2rem;
|
|
216
223
|
font-size: 0.6rem;
|
|
217
224
|
padding: 0.5rem;
|
|
218
225
|
}
|
|
219
226
|
}
|
|
220
|
-
.rubrique-item {
|
|
221
|
-
font-size: 0.6rem;
|
|
222
|
-
margin: 0.2rem;
|
|
223
|
-
padding: 0.5rem;
|
|
224
|
-
border-radius: 1.5rem;
|
|
225
|
-
border: 0;
|
|
226
|
-
display: flex;
|
|
227
|
-
align-items: center;
|
|
228
|
-
justify-content: center;
|
|
229
|
-
white-space: nowrap;
|
|
230
|
-
flex-shrink: 0;
|
|
231
|
-
&:hover {
|
|
232
|
-
background: #eee !important;
|
|
233
|
-
}
|
|
234
|
-
}
|
|
235
227
|
}
|
|
236
228
|
</style>
|
|
@@ -1,95 +1,79 @@
|
|
|
1
1
|
<template>
|
|
2
|
-
<
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
id-composer="playerParameters"
|
|
2
|
+
<div class="h4 mb-2 mt-3">{{ $t('player parameters') }}</div>
|
|
3
|
+
<template
|
|
4
|
+
v-if="choseNumberEpisode"
|
|
6
5
|
>
|
|
7
6
|
<div
|
|
8
|
-
v-if="
|
|
9
|
-
class="d-flex
|
|
7
|
+
v-if="displayChoiceAllEpisodes"
|
|
8
|
+
class="d-flex align-items-center flex-wrap mt-1"
|
|
10
9
|
>
|
|
11
|
-
<
|
|
12
|
-
v-
|
|
13
|
-
class="
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
class="form-check-input"
|
|
18
|
-
type="radio"
|
|
19
|
-
name="episodeNumbers"
|
|
20
|
-
value="all"
|
|
21
|
-
>
|
|
22
|
-
<span class="flex-shrink-0">{{ $t('Show every episode') }}</span>
|
|
23
|
-
</div>
|
|
24
|
-
<div
|
|
25
|
-
class="d-flex align-items-center flex-wrap"
|
|
26
|
-
:class="displayChoiceAllEpisodes ? '' : 'mt-3'"
|
|
10
|
+
<input
|
|
11
|
+
v-model="episodeNumbers"
|
|
12
|
+
class="form-check-input"
|
|
13
|
+
type="radio"
|
|
14
|
+
name="episodeNumbers"
|
|
15
|
+
value="all"
|
|
27
16
|
>
|
|
28
|
-
|
|
29
|
-
v-if="displayChoiceAllEpisodes"
|
|
30
|
-
v-model="episodeNumbers"
|
|
31
|
-
class="form-check-input"
|
|
32
|
-
type="radio"
|
|
33
|
-
name="episodeNumbers"
|
|
34
|
-
value="number"
|
|
35
|
-
>
|
|
36
|
-
<span class="flex-shrink-0">{{ $t('Show') }}</span>
|
|
37
|
-
<input
|
|
38
|
-
id="number-input"
|
|
39
|
-
v-model="iFrameNumber"
|
|
40
|
-
type="number"
|
|
41
|
-
min="1"
|
|
42
|
-
max="50"
|
|
43
|
-
class="input-share-player text-center m-2"
|
|
44
|
-
>
|
|
45
|
-
<label
|
|
46
|
-
for="number-input"
|
|
47
|
-
:title="$t('Number of player podcasts')"
|
|
48
|
-
/>
|
|
49
|
-
<span class="flex-shrink-0">{{ $t('Last podcasts') }}</span>
|
|
50
|
-
</div>
|
|
51
|
-
<ClassicCheckbox
|
|
52
|
-
v-model:textInit="proceedReading"
|
|
53
|
-
id-checkbox="proceed-reading-checkbox"
|
|
54
|
-
:label="$t('Proceed reading')"
|
|
55
|
-
/>
|
|
56
|
-
<ClassicCheckbox
|
|
57
|
-
v-model:textInit="isVisibleTemp"
|
|
58
|
-
id-checkbox="is-visible-checkbox"
|
|
59
|
-
:label="$t('Podcasts still available')"
|
|
60
|
-
/>
|
|
17
|
+
<span class="flex-shrink-0">{{ $t('Show every episode') }}</span>
|
|
61
18
|
</div>
|
|
62
19
|
<div
|
|
63
|
-
|
|
64
|
-
class="
|
|
65
|
-
>
|
|
66
|
-
<ClassicCheckbox
|
|
67
|
-
v-model:textInit="displayArticle"
|
|
68
|
-
id-checkbox="display-article-checkbox"
|
|
69
|
-
:label="$t('Display associated article')"
|
|
70
|
-
/>
|
|
71
|
-
</div>
|
|
72
|
-
<div
|
|
73
|
-
v-if="displayTranscriptParam"
|
|
74
|
-
class="d-flex flex-column flex-grow-1"
|
|
20
|
+
class="d-flex align-items-center flex-wrap"
|
|
21
|
+
:class="displayChoiceAllEpisodes ? '' : 'mt-3'"
|
|
75
22
|
>
|
|
76
|
-
<
|
|
77
|
-
v-
|
|
78
|
-
|
|
79
|
-
|
|
23
|
+
<input
|
|
24
|
+
v-if="displayChoiceAllEpisodes"
|
|
25
|
+
v-model="episodeNumbers"
|
|
26
|
+
class="form-check-input"
|
|
27
|
+
type="radio"
|
|
28
|
+
name="episodeNumbers"
|
|
29
|
+
value="number"
|
|
30
|
+
>
|
|
31
|
+
<span class="flex-shrink-0">{{ $t('Show') }}</span>
|
|
32
|
+
<input
|
|
33
|
+
id="number-input"
|
|
34
|
+
v-model="iFrameNumber"
|
|
35
|
+
type="number"
|
|
36
|
+
min="1"
|
|
37
|
+
max="50"
|
|
38
|
+
class="input-share-player text-center m-2"
|
|
39
|
+
>
|
|
40
|
+
<label
|
|
41
|
+
for="number-input"
|
|
42
|
+
:title="$t('Number of player podcasts')"
|
|
80
43
|
/>
|
|
44
|
+
<span class="flex-shrink-0">{{ $t('Last podcasts') }}</span>
|
|
81
45
|
</div>
|
|
82
|
-
|
|
46
|
+
<ClassicCheckbox
|
|
47
|
+
v-model:textInit="proceedReading"
|
|
48
|
+
id-checkbox="proceed-reading-checkbox"
|
|
49
|
+
:label="$t('Proceed reading')"
|
|
50
|
+
/>
|
|
51
|
+
<ClassicCheckbox
|
|
52
|
+
v-model:textInit="isVisibleTemp"
|
|
53
|
+
id-checkbox="is-visible-checkbox"
|
|
54
|
+
:label="$t('Podcasts still available')"
|
|
55
|
+
/>
|
|
56
|
+
</template>
|
|
57
|
+
<ClassicCheckbox
|
|
58
|
+
v-if="displayArticleParam"
|
|
59
|
+
v-model:textInit="displayArticle"
|
|
60
|
+
id-checkbox="display-article-checkbox"
|
|
61
|
+
:label="$t('Display associated article')"
|
|
62
|
+
/>
|
|
63
|
+
<ClassicCheckbox
|
|
64
|
+
v-if="displayTranscriptParam"
|
|
65
|
+
v-model:textInit="displayTranscript"
|
|
66
|
+
id-checkbox="display-transcript-checkbox"
|
|
67
|
+
:label="$t('If the transcript is available, show it')"
|
|
68
|
+
/>
|
|
83
69
|
</template>
|
|
84
70
|
|
|
85
71
|
<script lang="ts">
|
|
86
72
|
import ClassicCheckbox from '../../form/ClassicCheckbox.vue';
|
|
87
|
-
import Accordion from '../../misc/Accordion.vue';
|
|
88
73
|
import { defineComponent } from 'vue'
|
|
89
74
|
export default defineComponent({
|
|
90
75
|
components:{
|
|
91
|
-
ClassicCheckbox
|
|
92
|
-
Accordion
|
|
76
|
+
ClassicCheckbox
|
|
93
77
|
},
|
|
94
78
|
props: {
|
|
95
79
|
isVisible: { default: false, type: Boolean},
|
|
@@ -1,40 +1,24 @@
|
|
|
1
1
|
<template>
|
|
2
|
-
<div class="module-box
|
|
3
|
-
<
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
/>
|
|
23
|
-
</div>
|
|
24
|
-
<div class="d-flex align-items-center">
|
|
25
|
-
<ShareButtonsIntern
|
|
26
|
-
:podcast="podcast"
|
|
27
|
-
:emission="emission"
|
|
28
|
-
:playlist="playlist"
|
|
29
|
-
:participant-id="participantId"
|
|
30
|
-
:organisation-id="organisationId"
|
|
31
|
-
/>
|
|
32
|
-
</div>
|
|
33
|
-
</template>
|
|
34
|
-
<div
|
|
35
|
-
v-else
|
|
36
|
-
class="d-flex-row"
|
|
37
|
-
>
|
|
2
|
+
<div class="module-box">
|
|
3
|
+
<div class="d-flex align-items-center mb-3">
|
|
4
|
+
<h2 class="big-h2 mb-0">{{ $t('Share') }}</h2>
|
|
5
|
+
<span
|
|
6
|
+
v-if="authenticated"
|
|
7
|
+
id="popover-share-help"
|
|
8
|
+
role="button"
|
|
9
|
+
tabindex="0"
|
|
10
|
+
class="saooti-help ms-2"
|
|
11
|
+
/>
|
|
12
|
+
<Popover
|
|
13
|
+
v-if="authenticated"
|
|
14
|
+
target="popover-share-help"
|
|
15
|
+
:title="$t('Help')"
|
|
16
|
+
:content="$t('Share this page without edit and share blocks')"
|
|
17
|
+
relativeClass="page-element"
|
|
18
|
+
:isFixed="true"
|
|
19
|
+
/>
|
|
20
|
+
</div>
|
|
21
|
+
<div class="d-flex align-items-center justify-content-between">
|
|
38
22
|
<ShareButtonsIntern
|
|
39
23
|
:podcast="podcast"
|
|
40
24
|
:emission="emission"
|
|
@@ -67,7 +51,6 @@ export default defineComponent({
|
|
|
67
51
|
playlist: { default: undefined, type: Object as ()=>Playlist},
|
|
68
52
|
participantId: { default: undefined, type: Number},
|
|
69
53
|
organisationId: { default: undefined, type: String},
|
|
70
|
-
isVertical: { default: false, type: Boolean},
|
|
71
54
|
},
|
|
72
55
|
computed: {
|
|
73
56
|
authenticated(): boolean {
|