@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,7 +1,7 @@
|
|
|
1
1
|
<template>
|
|
2
2
|
<div
|
|
3
3
|
class="top-bar-container"
|
|
4
|
-
:class="{ '
|
|
4
|
+
:class="{ 'scrolled': scrolled }"
|
|
5
5
|
>
|
|
6
6
|
<router-link
|
|
7
7
|
class="top-bar-logo"
|
|
@@ -25,7 +25,7 @@
|
|
|
25
25
|
width="auto"
|
|
26
26
|
:defaultanswer="$t('No organisation filter')"
|
|
27
27
|
:value="organisationId"
|
|
28
|
-
class="me-2"
|
|
28
|
+
class="ms-3 me-2"
|
|
29
29
|
:reset="reset"
|
|
30
30
|
@selected="onOrganisationSelected"
|
|
31
31
|
/>
|
|
@@ -40,11 +40,39 @@
|
|
|
40
40
|
name: link.routeName,
|
|
41
41
|
query: getQueriesRouter(link.routeName),
|
|
42
42
|
}"
|
|
43
|
-
class="link-hover p-3
|
|
43
|
+
class="link-hover p-3"
|
|
44
44
|
>
|
|
45
45
|
{{ link.title }}
|
|
46
46
|
</router-link>
|
|
47
47
|
</template>
|
|
48
|
+
<button id="more-dropdown" class="d-flex align-items-center btn-transparent p-3">
|
|
49
|
+
<div class="link-hover">{{$t('More')}}</div>
|
|
50
|
+
<div class="hide-phone ms-1 saooti-down"></div>
|
|
51
|
+
</button>
|
|
52
|
+
<Popover
|
|
53
|
+
target="more-dropdown"
|
|
54
|
+
:only-click="true"
|
|
55
|
+
:is-fixed="true"
|
|
56
|
+
:left-pos="true"
|
|
57
|
+
>
|
|
58
|
+
<div class="d-flex flex-column">
|
|
59
|
+
<template
|
|
60
|
+
v-for="link in routerLinkInsideArray"
|
|
61
|
+
:key="link.routeName"
|
|
62
|
+
>
|
|
63
|
+
<router-link
|
|
64
|
+
v-if="link.condition"
|
|
65
|
+
:to="{
|
|
66
|
+
name: link.routeName,
|
|
67
|
+
query: getQueriesRouter(link.routeName),
|
|
68
|
+
}"
|
|
69
|
+
class="link-hover p-1 octopus-dropdown-item"
|
|
70
|
+
>
|
|
71
|
+
{{ link.title }}
|
|
72
|
+
</router-link>
|
|
73
|
+
</template>
|
|
74
|
+
</div>
|
|
75
|
+
</Popover>
|
|
48
76
|
</div>
|
|
49
77
|
<button
|
|
50
78
|
class="btn-transparent saooti-menu"
|
|
@@ -52,9 +80,7 @@
|
|
|
52
80
|
@click="onDisplayMenu(false)"
|
|
53
81
|
/>
|
|
54
82
|
<div class="d-flex flex-column">
|
|
55
|
-
|
|
56
|
-
{{ $t('Hosted by') }}<span class="ms-1 me-1 text-primary">Saooti</span>
|
|
57
|
-
</div>
|
|
83
|
+
|
|
58
84
|
<div class="d-flex justify-content-end flex-nowrap">
|
|
59
85
|
<HomeDropdown :is-education="isEducation" />
|
|
60
86
|
<router-link
|
|
@@ -79,6 +105,7 @@ import imageProxy from '../mixins/imageProxy';
|
|
|
79
105
|
import { useFilterStore } from '@/stores/FilterStore';
|
|
80
106
|
import { mapState } from 'pinia';
|
|
81
107
|
import { RubriquageFilter } from '@/stores/class/rubrique/rubriquageFilter';
|
|
108
|
+
import Popover from '../misc/Popover.vue';
|
|
82
109
|
import { defineComponent,defineAsyncComponent } from 'vue';
|
|
83
110
|
const OrganisationChooserLight = defineAsyncComponent(() => import('../display/organisation/OrganisationChooserLight.vue'));
|
|
84
111
|
export default defineComponent({
|
|
@@ -86,6 +113,7 @@ export default defineComponent({
|
|
|
86
113
|
components: {
|
|
87
114
|
OrganisationChooserLight,
|
|
88
115
|
HomeDropdown,
|
|
116
|
+
Popover
|
|
89
117
|
},
|
|
90
118
|
mixins:[orgaFilter, imageProxy],
|
|
91
119
|
props: {
|
|
@@ -108,7 +136,11 @@ export default defineComponent({
|
|
|
108
136
|
return [
|
|
109
137
|
{title : this.$t('Live'), routeName: 'lives', condition : (state.generalParameters.isLiveTab as boolean) &&((this.filterOrgaId && this.filterLive) || !this.filterOrgaId)},
|
|
110
138
|
{title : this.$t('Podcasts'), routeName: 'podcasts', condition : true},
|
|
111
|
-
{title : this.$t('Emissions'), routeName: 'emissions', condition : true}
|
|
139
|
+
{title : this.$t('Emissions'), routeName: 'emissions', condition : true}
|
|
140
|
+
]
|
|
141
|
+
},
|
|
142
|
+
routerLinkInsideArray(){
|
|
143
|
+
return [
|
|
112
144
|
{title : this.$t('Speakers'), routeName: 'participants', condition : true},
|
|
113
145
|
{title : this.$t('Playlists'), routeName: 'playlists', condition : true},
|
|
114
146
|
{title : this.$t('Productors'), routeName: 'productors', condition : !this.isPodcastmaker && (!this.filterOrgaId || this.isEducation)}]
|
|
@@ -204,7 +236,7 @@ export default defineComponent({
|
|
|
204
236
|
top: 0;
|
|
205
237
|
background: #fff;
|
|
206
238
|
width: 100%;
|
|
207
|
-
height: 5rem;
|
|
239
|
+
height: 3.5rem;
|
|
208
240
|
z-index: 10;
|
|
209
241
|
padding: 0 1rem;
|
|
210
242
|
display: flex;
|
|
@@ -222,26 +254,19 @@ export default defineComponent({
|
|
|
222
254
|
margin: 0.5rem;
|
|
223
255
|
}
|
|
224
256
|
|
|
225
|
-
.top-bar-logo {
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
height:
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
257
|
+
.top-bar-logo img{
|
|
258
|
+
max-width: 140px !important;
|
|
259
|
+
max-height: 2.5rem;
|
|
260
|
+
height: 2.5rem;
|
|
261
|
+
&.educationLogo {
|
|
262
|
+
height: auto;
|
|
263
|
+
}
|
|
264
|
+
@media (max-width: 650px) {
|
|
265
|
+
height: 2rem;
|
|
234
266
|
}
|
|
235
267
|
}
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
position: absolute;
|
|
239
|
-
top: 5px;
|
|
240
|
-
right: 0;
|
|
241
|
-
}
|
|
242
|
-
&.shadow-element {
|
|
243
|
-
height: 3.5rem;
|
|
244
|
-
.link-hover,.hosted-by {
|
|
268
|
+
&.cscrolled{
|
|
269
|
+
.link-hover {
|
|
245
270
|
display: none;
|
|
246
271
|
}
|
|
247
272
|
.saooti-menu {
|
|
@@ -249,30 +274,15 @@ export default defineComponent({
|
|
|
249
274
|
}
|
|
250
275
|
}
|
|
251
276
|
/** PHONES*/
|
|
252
|
-
@media (max-width:
|
|
253
|
-
|
|
254
|
-
.default-multiselect-width, .hosted-by, .link-hover {
|
|
277
|
+
@media (max-width: 960px) {
|
|
278
|
+
.default-multiselect-width, .link-hover {
|
|
255
279
|
display: none;
|
|
256
280
|
}
|
|
257
281
|
.saooti-menu {
|
|
258
282
|
display: block;
|
|
259
283
|
}
|
|
260
284
|
}
|
|
261
|
-
|
|
262
|
-
.top-bar-logo img{
|
|
263
|
-
height: 2rem;
|
|
264
|
-
}
|
|
265
|
-
}
|
|
266
|
-
@media (max-width: 380px) {
|
|
267
|
-
.top-bar-logo img{
|
|
268
|
-
height: 1rem;
|
|
269
|
-
}
|
|
270
|
-
}
|
|
271
|
-
@media (max-width: 290px) {
|
|
272
|
-
.top-bar-logo{
|
|
273
|
-
display: none;
|
|
274
|
-
}
|
|
275
|
-
}
|
|
285
|
+
|
|
276
286
|
}
|
|
277
287
|
}
|
|
278
288
|
</style>
|
|
@@ -102,7 +102,7 @@ export default defineComponent({
|
|
|
102
102
|
align-items: center;
|
|
103
103
|
justify-content: space-between;
|
|
104
104
|
border: 0;
|
|
105
|
-
border-radius:
|
|
105
|
+
border-radius: $octopus-borderradius $octopus-borderradius 0 0;
|
|
106
106
|
background: $octopus-primary-color;
|
|
107
107
|
color: white;
|
|
108
108
|
padding: 1rem;
|
|
@@ -122,7 +122,7 @@ export default defineComponent({
|
|
|
122
122
|
outline: 0;
|
|
123
123
|
height: auto !important;
|
|
124
124
|
max-height: initial !important;
|
|
125
|
-
border-radius:
|
|
125
|
+
border-radius: $octopus-borderradius;
|
|
126
126
|
box-shadow: 0 0.2rem 0.5rem rgba(40,40,40,.3);
|
|
127
127
|
}
|
|
128
128
|
.octopus-modal-footer{
|
|
@@ -17,7 +17,7 @@
|
|
|
17
17
|
@seeked="onSeeked"
|
|
18
18
|
/>
|
|
19
19
|
<PlayerCompact
|
|
20
|
-
v-if="!
|
|
20
|
+
v-if="!playerLargeVersion"
|
|
21
21
|
v-model:notListenTime="notListenTime"
|
|
22
22
|
:player-error="playerError"
|
|
23
23
|
:hls-ready="hlsReady"
|
|
@@ -27,7 +27,7 @@
|
|
|
27
27
|
:duration-live-position="durationLivePosition"
|
|
28
28
|
:listen-time="listenTime"
|
|
29
29
|
@stopPlayer="stopPlayer"
|
|
30
|
-
@changePlayerLargeVersion="
|
|
30
|
+
@changePlayerLargeVersion="playerUpdateLargeVersion(true)"
|
|
31
31
|
/>
|
|
32
32
|
<PlayerLarge
|
|
33
33
|
v-else
|
|
@@ -40,7 +40,7 @@
|
|
|
40
40
|
:duration-live-position="durationLivePosition"
|
|
41
41
|
:listen-time="listenTime"
|
|
42
42
|
@stopPlayer="stopPlayer"
|
|
43
|
-
@changePlayerLargeVersion="
|
|
43
|
+
@changePlayerLargeVersion="playerUpdateLargeVersion(false)"
|
|
44
44
|
/>
|
|
45
45
|
</template>
|
|
46
46
|
</div>
|
|
@@ -76,23 +76,14 @@ export default defineComponent({
|
|
|
76
76
|
displayAlertBar: false as boolean,
|
|
77
77
|
hlsReady: false as boolean,
|
|
78
78
|
comments: [] as Array<CommentPodcast>,
|
|
79
|
-
showTimeline: false as boolean,
|
|
80
|
-
largeVersion: false as boolean,
|
|
81
79
|
audioUrlToPlay: "" as string
|
|
82
80
|
};
|
|
83
81
|
},
|
|
84
82
|
computed: {
|
|
85
|
-
...mapState(usePlayerStore, ['playerStatus']),
|
|
83
|
+
...mapState(usePlayerStore, ['playerStatus', 'playerHeight', 'playerLargeVersion']),
|
|
86
84
|
display(){
|
|
87
85
|
return 'STOPPED' !== this.playerStatus;
|
|
88
86
|
},
|
|
89
|
-
playerHeight() {
|
|
90
|
-
if ('STOPPED' === this.playerStatus || this.forceHide) return 0;
|
|
91
|
-
if (this.largeVersion) return '27rem';
|
|
92
|
-
if (window.innerWidth > 450 && !this.showTimeline) return '5rem';
|
|
93
|
-
if (window.innerWidth > 450 && this.showTimeline) return '6rem';
|
|
94
|
-
return '3.5rem';
|
|
95
|
-
},
|
|
96
87
|
},
|
|
97
88
|
|
|
98
89
|
watch: {
|
|
@@ -102,7 +93,7 @@ export default defineComponent({
|
|
|
102
93
|
},
|
|
103
94
|
|
|
104
95
|
methods: {
|
|
105
|
-
...mapActions(usePlayerStore, ['playerPlay']),
|
|
96
|
+
...mapActions(usePlayerStore, ['playerPlay', 'playerUpdateLargeVersion']),
|
|
106
97
|
onHidden(): void {
|
|
107
98
|
if (this.forceHide) {
|
|
108
99
|
this.playerPlay();
|
|
@@ -128,6 +128,7 @@ export default defineComponent({
|
|
|
128
128
|
</script>
|
|
129
129
|
|
|
130
130
|
<style lang="scss">
|
|
131
|
+
@import '@scss/_variables.scss';
|
|
131
132
|
.octopus-app{
|
|
132
133
|
.player-grow-content {
|
|
133
134
|
display: flex;
|
|
@@ -138,7 +139,7 @@ export default defineComponent({
|
|
|
138
139
|
font-size: 0.8rem;
|
|
139
140
|
}
|
|
140
141
|
.player-image {
|
|
141
|
-
border-radius:
|
|
142
|
+
border-radius: $octopus-borderradius;
|
|
142
143
|
height: 2.4rem;
|
|
143
144
|
width: 2.4rem;
|
|
144
145
|
cursor: pointer;
|
|
@@ -1,11 +1,30 @@
|
|
|
1
1
|
<template>
|
|
2
2
|
<div class="page-box">
|
|
3
|
-
<
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
<div class="
|
|
3
|
+
<template v-if="loaded && !error" >
|
|
4
|
+
<div class="page-element-title-container">
|
|
5
|
+
<div class="page-element-title">
|
|
6
|
+
<h1>{{ $t('Emission') }}</h1>
|
|
7
|
+
</div>
|
|
8
|
+
<div class="page-element-bg" :style="backgroundDisplay"></div>
|
|
9
|
+
</div>
|
|
10
|
+
<div class="d-flex flex-column page-element">
|
|
11
|
+
<div class="module-box">
|
|
12
|
+
<div class="mb-5 descriptionText">
|
|
13
|
+
<img
|
|
14
|
+
v-lazy="proxyImageUrl(imageUrl, '330')"
|
|
15
|
+
width="330"
|
|
16
|
+
height="330"
|
|
17
|
+
:alt="$t('Emission name image', { name: name })"
|
|
18
|
+
class="img-box float-start me-3 mb-3"
|
|
19
|
+
>
|
|
20
|
+
<h2>{{ name }}</h2>
|
|
21
|
+
<!-- eslint-disable vue/no-v-html -->
|
|
22
|
+
<p
|
|
23
|
+
class="html-wysiwyg-content"
|
|
24
|
+
v-html="urlify(description)"
|
|
25
|
+
/>
|
|
26
|
+
<!-- eslint-enable -->
|
|
27
|
+
</div>
|
|
9
28
|
<EditBox
|
|
10
29
|
v-if="editRight && pageParameters.isEditBox"
|
|
11
30
|
:emission="emission"
|
|
@@ -13,67 +32,44 @@
|
|
|
13
32
|
:ftp-emission="ftpEmission"
|
|
14
33
|
@isUpdated="getEmissionDetails"
|
|
15
34
|
/>
|
|
16
|
-
<div class="module-box">
|
|
17
|
-
<h2>
|
|
18
|
-
{{ name }}
|
|
19
|
-
</h2>
|
|
20
|
-
<div class="mb-5 mt-3 descriptionText">
|
|
21
|
-
<img
|
|
22
|
-
v-lazy="proxyImageUrl(imageUrl, '260')"
|
|
23
|
-
width="260"
|
|
24
|
-
height="260"
|
|
25
|
-
:alt="$t('Emission name image', { name: name })"
|
|
26
|
-
class="img-box shadow-element float-start me-3 mb-3"
|
|
27
|
-
>
|
|
28
|
-
<!-- eslint-disable vue/no-v-html -->
|
|
29
|
-
<p
|
|
30
|
-
class="html-wysiwyg-content"
|
|
31
|
-
v-html="urlify(description)"
|
|
32
|
-
/>
|
|
33
|
-
<!-- eslint-enable -->
|
|
34
|
-
</div>
|
|
35
|
-
</div>
|
|
36
|
-
<SubscribeButtons
|
|
37
|
-
v-if="pageParameters.isShareButtons && countLink >= 1"
|
|
38
|
-
:emission="emission"
|
|
39
|
-
/>
|
|
40
35
|
</div>
|
|
41
|
-
<
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
:is-education="isEducation"
|
|
49
|
-
/>
|
|
50
|
-
<ShareButtons
|
|
51
|
-
v-if="pageParameters.isShareButtons"
|
|
52
|
-
:emission="emission"
|
|
53
|
-
:is-vertical="!authenticated && !notExclusive"
|
|
54
|
-
/>
|
|
55
|
-
</div>
|
|
56
|
-
</div>
|
|
57
|
-
<div v-if="editRight">
|
|
58
|
-
<ShareDistribution
|
|
59
|
-
v-if="pageParameters.isShareDistribution"
|
|
60
|
-
:emission-id="emissionId"
|
|
36
|
+
<SharePlayer
|
|
37
|
+
v-if="pageParameters.isSharePlayer && (authenticated || notExclusive)"
|
|
38
|
+
:emission="emission"
|
|
39
|
+
:exclusive="exclusive"
|
|
40
|
+
:not-exclusive="notExclusive"
|
|
41
|
+
:organisation-id="myOrganisationId"
|
|
42
|
+
:is-education="isEducation"
|
|
61
43
|
/>
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
44
|
+
<ShareButtons
|
|
45
|
+
v-if="pageParameters.isShareButtons"
|
|
46
|
+
:emission="emission"
|
|
47
|
+
/>
|
|
48
|
+
<SubscribeButtons
|
|
49
|
+
v-if="pageParameters.isShareButtons && countLink >= 1"
|
|
50
|
+
:emission="emission"
|
|
67
51
|
/>
|
|
68
|
-
<
|
|
69
|
-
|
|
52
|
+
<ShareDistribution
|
|
53
|
+
v-if="editRight && pageParameters.isShareDistribution"
|
|
70
54
|
:emission-id="emissionId"
|
|
71
|
-
:category-filter="false"
|
|
72
|
-
:edit-right="editRight"
|
|
73
|
-
:productor-id="emission.orga.id"
|
|
74
55
|
/>
|
|
75
|
-
|
|
76
|
-
|
|
56
|
+
<template v-if="pageParameters.isDisplayPodcasts">
|
|
57
|
+
<LiveHorizontalList
|
|
58
|
+
v-if="!isPodcastmaker"
|
|
59
|
+
class="mx-2"
|
|
60
|
+
:emission-id="emissionId"
|
|
61
|
+
/>
|
|
62
|
+
<PodcastFilterList
|
|
63
|
+
class="mx-2"
|
|
64
|
+
:show-count="true"
|
|
65
|
+
:emission-id="emissionId"
|
|
66
|
+
:category-filter="false"
|
|
67
|
+
:edit-right="editRight"
|
|
68
|
+
:productor-id="emission.orga.id"
|
|
69
|
+
/>
|
|
70
|
+
</template>
|
|
71
|
+
</div>
|
|
72
|
+
</template>
|
|
77
73
|
<ClassicLoading
|
|
78
74
|
:loading-text="!loaded?$t('Loading content ...'):undefined"
|
|
79
75
|
:error-text="error?$t(`Emission doesn't exist`):undefined"
|
|
@@ -169,6 +165,12 @@ export default defineComponent({
|
|
|
169
165
|
}
|
|
170
166
|
return count;
|
|
171
167
|
},
|
|
168
|
+
backgroundDisplay():string{
|
|
169
|
+
if(!this.emission){
|
|
170
|
+
return "";
|
|
171
|
+
}
|
|
172
|
+
return `background-image: url('${this.emission.imageUrl}');`;
|
|
173
|
+
},
|
|
172
174
|
},
|
|
173
175
|
watch: {
|
|
174
176
|
emissionId: {
|
|
@@ -1,8 +1,6 @@
|
|
|
1
1
|
<template>
|
|
2
2
|
<div class="page-box">
|
|
3
|
-
<h1>{{ titleDisplay }}</h1>
|
|
4
3
|
<ProductorSearch
|
|
5
|
-
v-if="isProductorSearch"
|
|
6
4
|
v-model:organisationId="organisationId"
|
|
7
5
|
v-model:search-pattern="searchPattern"
|
|
8
6
|
type="emission"
|
|
@@ -11,7 +9,6 @@
|
|
|
11
9
|
:is-education="isEducation"
|
|
12
10
|
:reset-rubriquage="resetRubriquage"
|
|
13
11
|
:is-emission="true"
|
|
14
|
-
:is-search-bar="isProductorSearch"
|
|
15
12
|
:sort-criteria="sortEmission"
|
|
16
13
|
:organisation-id="organisationId"
|
|
17
14
|
:include-hidden="includeHidden"
|
|
@@ -85,12 +82,6 @@ export default defineComponent({
|
|
|
85
82
|
|
|
86
83
|
computed: {
|
|
87
84
|
...mapState(useFilterStore, ['filterIab', 'filterRubrique']),
|
|
88
|
-
titleDisplay(): string{
|
|
89
|
-
return state.emissionsPage.titlePage??this.$t('All emissions');
|
|
90
|
-
},
|
|
91
|
-
isProductorSearch(): boolean{
|
|
92
|
-
return (state.podcastsPage.ProductorSearch as boolean);
|
|
93
|
-
},
|
|
94
85
|
organisationRight(): boolean {
|
|
95
86
|
return (true===this.authenticated && this.myOrganisationId === this.organisationId) ||
|
|
96
87
|
true===state.generalParameters.isAdmin
|
|
@@ -15,7 +15,7 @@
|
|
|
15
15
|
height="200"
|
|
16
16
|
:title="$t('Animator image')"
|
|
17
17
|
:alt="$t('Animator image')"
|
|
18
|
-
class="img-box
|
|
18
|
+
class="img-box mb-3"
|
|
19
19
|
>
|
|
20
20
|
<h2 class="text-capitalize">
|
|
21
21
|
{{ name }}
|
|
@@ -26,20 +26,18 @@
|
|
|
26
26
|
v-html="urlify(description)"
|
|
27
27
|
/>
|
|
28
28
|
<!-- eslint-enable -->
|
|
29
|
-
<
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
/>
|
|
42
|
-
</div>
|
|
29
|
+
<EditBox
|
|
30
|
+
v-if="editRight && pageParameters.isEditBox"
|
|
31
|
+
:participant="participant"
|
|
32
|
+
class="w-100"
|
|
33
|
+
@participantUpdate="updateParticipant"
|
|
34
|
+
/>
|
|
35
|
+
<ShareButtons
|
|
36
|
+
v-if="pageParameters.isShareButtons"
|
|
37
|
+
class="w-100"
|
|
38
|
+
:participant-id="participantId"
|
|
39
|
+
:organisation-id="participant.orga.id"
|
|
40
|
+
/>
|
|
43
41
|
</div>
|
|
44
42
|
<PodcastFilterList
|
|
45
43
|
v-if="!pageParameters.lightStyle"
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
<template>
|
|
2
2
|
<div class="page-box">
|
|
3
|
-
<h1>{{ titleDisplay }}</h1>
|
|
4
3
|
<ProductorSearch
|
|
5
4
|
v-model:organisation-id="organisationId"
|
|
6
5
|
v-model:search-pattern="searchPattern"
|
|
@@ -20,7 +19,6 @@
|
|
|
20
19
|
import { orgaComputed } from '../mixins/orgaComputed';
|
|
21
20
|
import ParticipantList from '../display/participant/ParticipantList.vue';
|
|
22
21
|
import ProductorSearch from '../display/filter/ProductorSearch.vue';
|
|
23
|
-
import { state } from '../../stores/ParamSdkStore';
|
|
24
22
|
import { defineComponent } from 'vue'
|
|
25
23
|
export default defineComponent({
|
|
26
24
|
components: {
|
|
@@ -39,11 +37,6 @@ export default defineComponent({
|
|
|
39
37
|
organisationId: undefined as string | undefined,
|
|
40
38
|
};
|
|
41
39
|
},
|
|
42
|
-
computed: {
|
|
43
|
-
titleDisplay(): string{
|
|
44
|
-
return state.intervenantsPage.titlePage ?? this.$t('All participants');
|
|
45
|
-
},
|
|
46
|
-
},
|
|
47
40
|
created() {
|
|
48
41
|
this.organisationId = this.productor ?this.productor: this.filterOrgaId;
|
|
49
42
|
},
|
|
@@ -1,50 +1,50 @@
|
|
|
1
1
|
<template>
|
|
2
2
|
<div class="page-box">
|
|
3
|
-
<
|
|
3
|
+
<template
|
|
4
4
|
v-if="loaded && !error"
|
|
5
5
|
>
|
|
6
|
-
<
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
6
|
+
<div class="page-element-title-container">
|
|
7
|
+
<div class="page-element-title">
|
|
8
|
+
<h1>{{ $t('Playlist') }}</h1>
|
|
9
|
+
</div>
|
|
10
|
+
<div class="page-element-bg" :style="backgroundDisplay"></div>
|
|
11
|
+
</div>
|
|
12
|
+
<div class="d-flex flex-column page-element">
|
|
13
|
+
<div class="module-box">
|
|
14
|
+
<div class="mb-5 mt-3 descriptionText">
|
|
15
|
+
<img
|
|
16
|
+
v-lazy="proxyImageUrl(imageUrl, '330')"
|
|
17
|
+
width="330"
|
|
18
|
+
height="330"
|
|
19
|
+
:alt="$t('Playlist name image', { name: name })"
|
|
20
|
+
class="img-box float-start me-3 mb-3"
|
|
21
|
+
>
|
|
14
22
|
<h2>{{ name }}</h2>
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
class="img-box shadow-element float-start me-3 mb-3"
|
|
22
|
-
>
|
|
23
|
-
<!-- eslint-disable vue/no-v-html -->
|
|
24
|
-
<p
|
|
25
|
-
class="html-wysiwyg-content"
|
|
26
|
-
v-html="urlify(description)"
|
|
27
|
-
/>
|
|
28
|
-
<!-- eslint-enable -->
|
|
29
|
-
</div>
|
|
23
|
+
<!-- eslint-disable vue/no-v-html -->
|
|
24
|
+
<p
|
|
25
|
+
class="html-wysiwyg-content"
|
|
26
|
+
v-html="urlify(description)"
|
|
27
|
+
/>
|
|
28
|
+
<!-- eslint-enable -->
|
|
30
29
|
</div>
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
<SharePlayer
|
|
34
|
-
v-if="pageParameters.isSharePlayer && authenticated"
|
|
35
|
-
:playlist="playlist"
|
|
36
|
-
:organisation-id="myOrganisationId"
|
|
37
|
-
:is-education="isEducation"
|
|
38
|
-
/>
|
|
39
|
-
<ShareButtons
|
|
40
|
-
v-if="pageParameters.isShareButtons"
|
|
30
|
+
<EditBox
|
|
31
|
+
v-if="editRight && pageParameters.isEditBox"
|
|
41
32
|
:playlist="playlist"
|
|
42
|
-
:is-vertical="!(pageParameters.isSharePlayer && authenticated)"
|
|
43
33
|
/>
|
|
44
34
|
</div>
|
|
35
|
+
<SharePlayer
|
|
36
|
+
v-if="pageParameters.isSharePlayer && authenticated"
|
|
37
|
+
:playlist="playlist"
|
|
38
|
+
:organisation-id="myOrganisationId"
|
|
39
|
+
:is-education="isEducation"
|
|
40
|
+
/>
|
|
41
|
+
<ShareButtons
|
|
42
|
+
v-if="pageParameters.isShareButtons"
|
|
43
|
+
:playlist="playlist"
|
|
44
|
+
/>
|
|
45
|
+
<PodcastList :playlist="playlist" />
|
|
45
46
|
</div>
|
|
46
|
-
|
|
47
|
-
</div>
|
|
47
|
+
</template>
|
|
48
48
|
<ClassicLoading
|
|
49
49
|
:loading-text="!loaded?$t('Loading content ...'):undefined"
|
|
50
50
|
:error-text="error?$t(`Playlist doesn't exist`):undefined"
|
|
@@ -112,6 +112,12 @@ export default defineComponent({
|
|
|
112
112
|
this.myOrganisationId === this.playlist?.organisation?.id) ||
|
|
113
113
|
true ===state.generalParameters.isAdmin
|
|
114
114
|
},
|
|
115
|
+
backgroundDisplay():string{
|
|
116
|
+
if(!this.playlist){
|
|
117
|
+
return "";
|
|
118
|
+
}
|
|
119
|
+
return `background-image: url('${this.playlist.imageUrl}');`;
|
|
120
|
+
},
|
|
115
121
|
},
|
|
116
122
|
watch: {
|
|
117
123
|
playlistId: {
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
<template>
|
|
2
2
|
<div class="page-box">
|
|
3
|
-
<h1>{{ $t('All playlists') }}</h1>
|
|
4
3
|
<router-link
|
|
5
4
|
v-if="editRight && !isPodcastmaker"
|
|
6
5
|
to="/main/priv/edit/playlist"
|
|
@@ -11,7 +10,6 @@
|
|
|
11
10
|
</div>
|
|
12
11
|
</router-link>
|
|
13
12
|
<ProductorSearch
|
|
14
|
-
v-if="isProductorSearch"
|
|
15
13
|
v-model:organisationId="organisationId"
|
|
16
14
|
v-model:search-pattern="searchPattern"
|
|
17
15
|
type="playlist"
|
|
@@ -52,9 +50,6 @@ export default defineComponent({
|
|
|
52
50
|
},
|
|
53
51
|
|
|
54
52
|
computed: {
|
|
55
|
-
isProductorSearch(): boolean {
|
|
56
|
-
return (state.podcastsPage.ProductorSearch as boolean);
|
|
57
|
-
},
|
|
58
53
|
isPodcastmaker(): boolean {
|
|
59
54
|
return (state.generalParameters.podcastmaker as boolean);
|
|
60
55
|
},
|