@saooti/octopus-sdk 33.2.8 → 33.2.10
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/emission/EmissionItem.vue +6 -10
- package/src/components/display/emission/EmissionPlayerItem.vue +2 -0
- package/src/components/display/organisation/OrganisationChooser.vue +4 -0
- package/src/components/display/participant/ParticipantItem.vue +4 -4
- package/src/components/display/playlist/PlaylistItem.vue +6 -9
- package/src/components/display/podcasts/AnimatorsItem.vue +2 -7
- package/src/components/display/podcasts/PodcastImage.vue +15 -33
- package/src/components/display/podcasts/PodcastItem.vue +20 -14
- package/src/components/display/podcasts/PodcastItemInfo.vue +37 -48
- package/src/components/display/podcasts/TagList.vue +2 -0
- package/src/components/misc/Accordion.vue +2 -0
- package/src/components/misc/Footer.vue +2 -0
- package/src/components/misc/player/PlayerCompact.vue +2 -0
- package/src/components/misc/player/PlayerLarge.vue +2 -0
- package/src/components/pages/Emission.vue +2 -0
- package/src/components/pages/Error403Page.vue +4 -0
- package/src/components/pages/Participant.vue +2 -0
- package/src/components/pages/Playlist.vue +2 -0
package/package.json
CHANGED
|
@@ -12,23 +12,21 @@
|
|
|
12
12
|
class="d-flex flex-grow-1 text-dark"
|
|
13
13
|
>
|
|
14
14
|
<img
|
|
15
|
+
width="260"
|
|
16
|
+
height="260"
|
|
15
17
|
v-lazy="proxyImageUrl(emission.imageUrl, '260')"
|
|
16
18
|
class="img-box"
|
|
17
19
|
:title="$t('Emission name image', {name:emission.name})"
|
|
18
20
|
:alt="$t('Emission name image', {name:emission.name})"
|
|
19
21
|
>
|
|
20
22
|
<div class="emission-item-text">
|
|
21
|
-
<div class="d-flex align-items-center">
|
|
23
|
+
<div class="d-flex align-items-center emission-name">
|
|
22
24
|
<span
|
|
23
25
|
v-if="!activeEmission && !isPodcastmaker && editRight"
|
|
24
26
|
:title="$t('Emission have not podcasts')"
|
|
25
27
|
class="saooti-warning text-danger me-1"
|
|
26
28
|
/>
|
|
27
|
-
|
|
28
|
-
class="emission-name"
|
|
29
|
-
>
|
|
30
|
-
{{ emission.name }}
|
|
31
|
-
</div>
|
|
29
|
+
{{ emission.name }}
|
|
32
30
|
</div>
|
|
33
31
|
<div
|
|
34
32
|
ref="descriptionEmissionContainer"
|
|
@@ -41,18 +39,16 @@
|
|
|
41
39
|
/>
|
|
42
40
|
<!-- eslint-enable -->
|
|
43
41
|
</div>
|
|
44
|
-
<div class="flex-grow-1" />
|
|
45
42
|
<router-link
|
|
46
43
|
v-if="!isPodcastmaker"
|
|
44
|
+
class="emission-producer mt-auto"
|
|
47
45
|
:to="{
|
|
48
46
|
name: 'productor',
|
|
49
47
|
params: { productorId: emission.orga.id },
|
|
50
48
|
query: { productor: filterOrga },
|
|
51
49
|
}"
|
|
52
50
|
>
|
|
53
|
-
|
|
54
|
-
© {{ emission.orga.name }}
|
|
55
|
-
</div>
|
|
51
|
+
© {{ emission.orga.name }}
|
|
56
52
|
</router-link>
|
|
57
53
|
</div>
|
|
58
54
|
</router-link>
|
|
@@ -44,6 +44,8 @@
|
|
|
44
44
|
<template #singleLabel="{ option }">
|
|
45
45
|
<div class="multiselect-octopus-proposition">
|
|
46
46
|
<img
|
|
47
|
+
width="32"
|
|
48
|
+
height="32"
|
|
47
49
|
v-if="!light"
|
|
48
50
|
v-lazy="proxyImageUrl(option.imageUrl, '32')"
|
|
49
51
|
class="option__image"
|
|
@@ -64,6 +66,8 @@
|
|
|
64
66
|
"
|
|
65
67
|
>
|
|
66
68
|
<img
|
|
69
|
+
width="32"
|
|
70
|
+
height="32"
|
|
67
71
|
v-if="!light"
|
|
68
72
|
v-lazy="proxyImageUrl(option.imageUrl, '32')"
|
|
69
73
|
class="option__image"
|
|
@@ -13,20 +13,20 @@
|
|
|
13
13
|
:title="$t('Participant')"
|
|
14
14
|
>
|
|
15
15
|
<img
|
|
16
|
+
width="200"
|
|
17
|
+
height="200"
|
|
16
18
|
v-lazy="proxyImageUrl(participant.imageUrl, '200')"
|
|
17
19
|
:title="$t('Animator image')"
|
|
18
20
|
:alt="$t('Animator image')"
|
|
19
21
|
class="img-box-circle"
|
|
20
22
|
>
|
|
21
|
-
<div class="d-flex align-items-center">
|
|
23
|
+
<div class="d-flex align-items-center participant-name">
|
|
22
24
|
<span
|
|
23
25
|
v-if="!activeParticipant && !isPodcastmaker && editRight"
|
|
24
26
|
:title="$t('Participant have not podcasts')"
|
|
25
27
|
class="saooti-warning text-danger me-1"
|
|
26
28
|
/>
|
|
27
|
-
|
|
28
|
-
{{ name }}
|
|
29
|
-
</div>
|
|
29
|
+
{{ name }}
|
|
30
30
|
</div>
|
|
31
31
|
<div
|
|
32
32
|
ref="descriptionParticipantContainer"
|
|
@@ -13,21 +13,21 @@
|
|
|
13
13
|
class="d-flex flex-grow-1 text-dark"
|
|
14
14
|
>
|
|
15
15
|
<img
|
|
16
|
+
width="260"
|
|
17
|
+
height="260"
|
|
16
18
|
v-lazy="proxyImageUrl(playlist.imageUrl, '260')"
|
|
17
19
|
:title="$t('Playlist name image', {name:name})"
|
|
18
20
|
:alt="$t('Playlist name image', {name:name})"
|
|
19
21
|
class="img-box"
|
|
20
22
|
>
|
|
21
23
|
<div class="emission-item-text">
|
|
22
|
-
<div class="d-flex align-items-center">
|
|
24
|
+
<div class="d-flex align-items-center emission-name">
|
|
23
25
|
<span
|
|
24
26
|
v-if="!activePlaylist && !isPodcastmaker"
|
|
25
27
|
:title="$t('Playlist have not podcasts')"
|
|
26
28
|
class="saooti-warning text-danger me-1"
|
|
27
29
|
/>
|
|
28
|
-
|
|
29
|
-
{{ name }}
|
|
30
|
-
</div>
|
|
30
|
+
{{ name }}
|
|
31
31
|
</div>
|
|
32
32
|
<div
|
|
33
33
|
ref="descriptionPlaylistContainer"
|
|
@@ -40,7 +40,6 @@
|
|
|
40
40
|
/>
|
|
41
41
|
<!-- eslint-enable -->
|
|
42
42
|
</div>
|
|
43
|
-
<div class="flex-grow-1" />
|
|
44
43
|
<router-link
|
|
45
44
|
v-if="!isPodcastmaker && playlist.organisation"
|
|
46
45
|
:to="{
|
|
@@ -48,11 +47,9 @@
|
|
|
48
47
|
params: { productorId: playlist.organisation.id },
|
|
49
48
|
query: { productor: $store.state.filter.organisationId },
|
|
50
49
|
}"
|
|
51
|
-
class="text-
|
|
50
|
+
class="emission-producer text-primary mt-auto"
|
|
52
51
|
>
|
|
53
|
-
|
|
54
|
-
© {{ playlist.organisation.name }}
|
|
55
|
-
</div>
|
|
52
|
+
© {{ playlist.organisation.name }}
|
|
56
53
|
</router-link>
|
|
57
54
|
</div>
|
|
58
55
|
</router-link>
|
|
@@ -10,10 +10,9 @@
|
|
|
10
10
|
query: { productor: $store.state.filter.organisationId },
|
|
11
11
|
}"
|
|
12
12
|
:title="$t('Participant')"
|
|
13
|
+
class="podcast-item-animator text-dark"
|
|
13
14
|
>
|
|
14
|
-
|
|
15
|
-
{{ animatorName }}
|
|
16
|
-
</div>
|
|
15
|
+
{{ animatorName }}
|
|
17
16
|
</router-link>
|
|
18
17
|
</div>
|
|
19
18
|
</template>
|
|
@@ -38,10 +37,6 @@ export default defineComponent({
|
|
|
38
37
|
<style lang="scss">
|
|
39
38
|
.octopus-app{
|
|
40
39
|
.podcast-item-animator {
|
|
41
|
-
display: flex;
|
|
42
|
-
align-items: flex-start;
|
|
43
|
-
justify-content: center;
|
|
44
|
-
|
|
45
40
|
font-size: 0.55rem;
|
|
46
41
|
font-weight: 300;
|
|
47
42
|
text-transform: capitalize;
|
|
@@ -4,6 +4,8 @@
|
|
|
4
4
|
class="img-box d-flex flex-column justify-content-start align-items-start position-relative justify rounded-lg flex-shrink-0 float-start"
|
|
5
5
|
>
|
|
6
6
|
<img
|
|
7
|
+
width="260"
|
|
8
|
+
height="260"
|
|
7
9
|
v-lazy="proxyImageUrl(podcast.imageUrl,'260')"
|
|
8
10
|
class="img-box"
|
|
9
11
|
:alt="$t('Episode name image', {name:podcast.title})"
|
|
@@ -36,37 +38,21 @@
|
|
|
36
38
|
@click="play"
|
|
37
39
|
>
|
|
38
40
|
<div
|
|
39
|
-
|
|
41
|
+
:title="!playingPodcast? $t('Play') : textVisible"
|
|
40
42
|
class="icon-container"
|
|
43
|
+
:class="{
|
|
44
|
+
'saooti-play text-primary': !playingPodcast,
|
|
45
|
+
'special-icon-play-button': !classicPodcastPlay,
|
|
46
|
+
iconName:!classicPodcastPlay || isLiveToBeRecorded,
|
|
47
|
+
'bloc-paddle':playingPodcast,
|
|
48
|
+
'error-icon':isLiveToBeRecorded
|
|
49
|
+
}"
|
|
41
50
|
>
|
|
42
|
-
<
|
|
43
|
-
v-show="!playingPodcast"
|
|
44
|
-
:title="$t('Play')"
|
|
45
|
-
class="saooti-play text-primary"
|
|
46
|
-
/>
|
|
47
|
-
<div
|
|
48
|
-
v-if="!classicPodcastPlay"
|
|
49
|
-
class="special-icon-play-button"
|
|
50
|
-
:class="iconName"
|
|
51
|
-
/>
|
|
52
|
-
<div
|
|
53
|
-
v-show="playingPodcast"
|
|
54
|
-
class="bloc-paddle"
|
|
55
|
-
>
|
|
51
|
+
<template v-if="playingPodcast">
|
|
56
52
|
<span class="paddle1" />
|
|
57
53
|
<span class="paddle2" />
|
|
58
54
|
<span class="paddle3" />
|
|
59
|
-
</
|
|
60
|
-
</div>
|
|
61
|
-
<div
|
|
62
|
-
v-else
|
|
63
|
-
class="icon-container error-icon"
|
|
64
|
-
>
|
|
65
|
-
<div
|
|
66
|
-
:title="textVisible"
|
|
67
|
-
class="big-icon-error"
|
|
68
|
-
:class="iconName"
|
|
69
|
-
/>
|
|
55
|
+
</template>
|
|
70
56
|
</div>
|
|
71
57
|
<div
|
|
72
58
|
v-if="!classicPodcastPlay"
|
|
@@ -343,13 +329,14 @@ export default defineComponent({
|
|
|
343
329
|
}
|
|
344
330
|
|
|
345
331
|
.icon-container {
|
|
346
|
-
background: #00000050;
|
|
332
|
+
background: #00000050 !important;
|
|
347
333
|
border-radius: 50%;
|
|
348
334
|
height: 3rem;
|
|
349
335
|
width: 3rem;
|
|
350
336
|
display: flex;
|
|
351
337
|
align-items: center;
|
|
352
338
|
justify-content: center;
|
|
339
|
+
z-index: 2;
|
|
353
340
|
&.error-icon {
|
|
354
341
|
background: #00000050 !important;
|
|
355
342
|
cursor: default !important;
|
|
@@ -357,16 +344,11 @@ export default defineComponent({
|
|
|
357
344
|
&:hover {
|
|
358
345
|
background: #00000030;
|
|
359
346
|
}
|
|
360
|
-
|
|
347
|
+
&.saooti-play {
|
|
361
348
|
font-size: 2em;
|
|
362
349
|
position: relative;
|
|
363
350
|
right: -0.2rem;
|
|
364
351
|
}
|
|
365
|
-
.big-icon-error {
|
|
366
|
-
font-size: 2em;
|
|
367
|
-
position: relative;
|
|
368
|
-
}
|
|
369
|
-
z-index: 2;
|
|
370
352
|
}
|
|
371
353
|
}
|
|
372
354
|
}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
<template>
|
|
2
2
|
<div
|
|
3
|
+
id="podcast-item-container"
|
|
3
4
|
class="podcast-item-container"
|
|
4
5
|
:class="[
|
|
5
6
|
podcastShadow ? 'shadow-element' : '',
|
|
@@ -10,18 +11,18 @@
|
|
|
10
11
|
>
|
|
11
12
|
<PodcastImage
|
|
12
13
|
:podcast="podcast"
|
|
13
|
-
:hide-play="!podcastItemDescription || (podcastItemDescription && (!
|
|
14
|
+
:hide-play="!podcastItemDescription || (podcastItemDescription && (!hoverDesc || !description))"
|
|
14
15
|
:display-description="0!==description.length && podcastItemDescription"
|
|
15
16
|
:arrow-direction="arrowDirection"
|
|
16
17
|
@hideDescription="hideDescription"
|
|
17
18
|
@showDescription="showDescription"
|
|
18
19
|
/>
|
|
19
20
|
<div
|
|
20
|
-
v-if="podcastItemDescription"
|
|
21
|
+
v-if="podcastItemDescription && hoverDesc"
|
|
21
22
|
ref="descriptionPodcastContainer"
|
|
22
23
|
class="description-podcast-item html-wysiwyg-content"
|
|
23
24
|
:class="[
|
|
24
|
-
|
|
25
|
+
hoverDesc && ''!==description ? 'visible' : 'invisible',
|
|
25
26
|
isDescriptionBig ? 'after-podcast-description' : '',
|
|
26
27
|
]"
|
|
27
28
|
>
|
|
@@ -67,7 +68,8 @@ export default defineComponent({
|
|
|
67
68
|
|
|
68
69
|
data() {
|
|
69
70
|
return {
|
|
70
|
-
|
|
71
|
+
firstDisplayDesc : false as boolean,
|
|
72
|
+
hoverDesc: false as boolean,
|
|
71
73
|
arrowDirection: 'up' as string,
|
|
72
74
|
isDescriptionBig: false as boolean,
|
|
73
75
|
};
|
|
@@ -91,24 +93,28 @@ export default defineComponent({
|
|
|
91
93
|
},
|
|
92
94
|
},
|
|
93
95
|
|
|
94
|
-
mounted() {
|
|
95
|
-
if(!this.podcastItemDescription){return}
|
|
96
|
-
const podcastDesc = (this.$refs.descriptionPodcast as HTMLElement);
|
|
97
|
-
const podcastDescContainer = (this.$refs.descriptionPodcastContainer as HTMLElement);
|
|
98
|
-
if (podcastDesc?.clientHeight > podcastDescContainer?.clientHeight) {
|
|
99
|
-
this.isDescriptionBig = true;
|
|
100
|
-
}
|
|
101
|
-
},
|
|
102
96
|
methods: {
|
|
97
|
+
initDescription():void{
|
|
98
|
+
if(this.firstDisplayDesc){return;}
|
|
99
|
+
const podcastDesc = (this.$refs.descriptionPodcast as HTMLElement);
|
|
100
|
+
const podcastDescContainer = (this.$refs.descriptionPodcastContainer as HTMLElement);
|
|
101
|
+
if (podcastDesc?.clientHeight > podcastDescContainer?.clientHeight) {
|
|
102
|
+
this.isDescriptionBig = true;
|
|
103
|
+
}
|
|
104
|
+
this.firstDisplayDesc=true;
|
|
105
|
+
},
|
|
103
106
|
showDescription(): void {
|
|
104
107
|
if(!this.podcastItemDescription){return}
|
|
105
108
|
this.arrowDirection = 'down';
|
|
106
|
-
this.
|
|
109
|
+
this.hoverDesc = true;
|
|
110
|
+
this.$nextTick(() => {
|
|
111
|
+
this.initDescription();
|
|
112
|
+
});
|
|
107
113
|
},
|
|
108
114
|
hideDescription(): void {
|
|
109
115
|
if(!this.podcastItemDescription){return}
|
|
110
116
|
this.arrowDirection = 'up';
|
|
111
|
-
this.
|
|
117
|
+
this.hoverDesc = false;
|
|
112
118
|
},
|
|
113
119
|
},
|
|
114
120
|
})
|
|
@@ -1,51 +1,47 @@
|
|
|
1
1
|
<template>
|
|
2
|
-
<div class="d-
|
|
3
|
-
<div class="
|
|
4
|
-
|
|
5
|
-
{{ date }}
|
|
6
|
-
</div>
|
|
7
|
-
<div
|
|
8
|
-
v-if="0 !== durationString.length"
|
|
9
|
-
class="h6"
|
|
10
|
-
>
|
|
11
|
-
{{ durationString }}
|
|
12
|
-
</div>
|
|
2
|
+
<div class="d-flex justify-content-between flex-wrap text-secondary m-2 mb-3">
|
|
3
|
+
<div class="me-3 h6">
|
|
4
|
+
{{ date }}
|
|
13
5
|
</div>
|
|
14
|
-
<
|
|
15
|
-
v-if="
|
|
16
|
-
|
|
17
|
-
|
|
6
|
+
<div
|
|
7
|
+
v-if="0 !== durationString.length"
|
|
8
|
+
class="h6"
|
|
9
|
+
>
|
|
10
|
+
{{ durationString }}
|
|
11
|
+
</div>
|
|
12
|
+
</div>
|
|
13
|
+
<AnimatorsItem
|
|
14
|
+
v-if="animators && 0!==animators.length"
|
|
15
|
+
:animator="animators[0]"
|
|
16
|
+
/>
|
|
17
|
+
<router-link
|
|
18
|
+
:to="{
|
|
19
|
+
name: 'podcast',
|
|
20
|
+
params: { podcastId: podcastId },
|
|
21
|
+
query: { productor: filterOrga },
|
|
22
|
+
}"
|
|
23
|
+
class="text-dark flex-grow-1 title-podcast-item"
|
|
24
|
+
>
|
|
25
|
+
{{ title }}
|
|
26
|
+
</router-link>
|
|
27
|
+
<PodcastPlayBar
|
|
28
|
+
:podcast-id="podcastId"
|
|
29
|
+
:duration="duration"
|
|
30
|
+
class="mx-2"
|
|
31
|
+
/>
|
|
32
|
+
<div class="d-flex justify-content-between">
|
|
33
|
+
<div v-if="isPodcastmaker" class="useless-div-for-podcastmaker" />
|
|
18
34
|
<router-link
|
|
35
|
+
v-if="!isPodcastmaker"
|
|
19
36
|
:to="{
|
|
20
|
-
name: '
|
|
21
|
-
params: {
|
|
37
|
+
name: 'productor',
|
|
38
|
+
params: { productorId: podcastOrganisationId },
|
|
22
39
|
query: { productor: filterOrga },
|
|
23
40
|
}"
|
|
24
|
-
class="text-dark
|
|
41
|
+
class="text-dark producer-podcast-item"
|
|
25
42
|
>
|
|
26
|
-
|
|
27
|
-
{{ title }}
|
|
28
|
-
</div>
|
|
43
|
+
{{ '© ' + podcastOrganisationName }}
|
|
29
44
|
</router-link>
|
|
30
|
-
<PodcastPlayBar
|
|
31
|
-
:podcast-id="podcastId"
|
|
32
|
-
:duration="duration"
|
|
33
|
-
class="mx-2"
|
|
34
|
-
/>
|
|
35
|
-
<div class="d-flex justify-content-between">
|
|
36
|
-
<div class="useless-div-for-podcastmaker" />
|
|
37
|
-
<router-link
|
|
38
|
-
v-if="!isPodcastmaker"
|
|
39
|
-
:to="{
|
|
40
|
-
name: 'productor',
|
|
41
|
-
params: { productorId: podcastOrganisationId },
|
|
42
|
-
query: { productor: filterOrga },
|
|
43
|
-
}"
|
|
44
|
-
class="text-dark producer-podcast-item"
|
|
45
|
-
>
|
|
46
|
-
<div>{{ '© ' + podcastOrganisationName }}</div>
|
|
47
|
-
</router-link>
|
|
48
|
-
</div>
|
|
49
45
|
</div>
|
|
50
46
|
</template>
|
|
51
47
|
|
|
@@ -130,13 +126,6 @@ export default defineComponent({
|
|
|
130
126
|
|
|
131
127
|
<style lang="scss">
|
|
132
128
|
.octopus-app{
|
|
133
|
-
.podcast-item-info {
|
|
134
|
-
.text-secondary {
|
|
135
|
-
margin: 0.5rem !important;
|
|
136
|
-
}
|
|
137
|
-
.saooti-pin {
|
|
138
|
-
font-size: 22px;
|
|
139
|
-
}
|
|
140
129
|
.title-podcast-item {
|
|
141
130
|
font-weight: 700;
|
|
142
131
|
margin: 0.25rem 0.5rem 0.5rem;
|
|
@@ -155,7 +144,7 @@ export default defineComponent({
|
|
|
155
144
|
margin: 0.2rem 0.5rem 0.5rem;
|
|
156
145
|
font-size: 0.55rem;
|
|
157
146
|
color: #666;
|
|
147
|
+
margin-left: auto;
|
|
158
148
|
}
|
|
159
149
|
}
|
|
160
|
-
}
|
|
161
150
|
</style>
|
|
@@ -3,6 +3,8 @@
|
|
|
3
3
|
<div class="not-auth-content d-flex-column justify-content-between">
|
|
4
4
|
<div class="d-flex flex-column justify-content-around">
|
|
5
5
|
<img
|
|
6
|
+
width="250"
|
|
7
|
+
height="auto"
|
|
6
8
|
class="logo-octopus"
|
|
7
9
|
src="/img/logo_octopus_final.svg"
|
|
8
10
|
:alt="$t('Logo of main page')"
|
|
@@ -10,6 +12,8 @@
|
|
|
10
12
|
<h2>{{ $t('You do not have the right to access this page' ) }}</h2>
|
|
11
13
|
</div>
|
|
12
14
|
<img
|
|
15
|
+
width="600"
|
|
16
|
+
height="auto"
|
|
13
17
|
class="stop-octopus-img"
|
|
14
18
|
src="/img/403.webp"
|
|
15
19
|
:alt="$t('You do not have the right to access this page')"
|