@saooti/octopus-sdk 30.0.8 → 30.0.9
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/README.md +2 -1
- package/package.json +1 -1
- package/src/assets/bootstrap-diff.scss +15 -24
- package/src/assets/form.scss +0 -37
- package/src/assets/general.scss +44 -152
- package/src/assets/live.scss +39 -0
- package/src/assets/modal.scss +14 -18
- package/src/assets/multiselect.scss +30 -77
- package/src/assets/octopus-library.scss +1 -0
- package/src/assets/share.scss +149 -256
- package/src/assets/transition.scss +95 -1
- package/src/components/display/categories/CategoryChooser.vue +1 -1
- package/src/components/display/categories/CategoryList.vue +2 -4
- package/src/components/display/comments/CommentInput.vue +2 -2
- package/src/components/display/comments/CommentItem.vue +6 -6
- package/src/components/display/comments/CommentParentInfo.vue +1 -1
- package/src/components/display/edit/EditCommentBox.vue +8 -16
- package/src/components/display/emission/EmissionChooser.vue +1 -3
- package/src/components/display/emission/EmissionInlineList.vue +11 -2
- package/src/components/display/emission/EmissionItem.vue +22 -64
- package/src/components/display/emission/EmissionList.vue +59 -68
- package/src/components/display/emission/EmissionPlayerItem.vue +9 -8
- package/src/components/display/filter/AdvancedSearch.vue +11 -45
- package/src/components/display/filter/MonetizableFilter.vue +2 -4
- package/src/components/display/filter/ProductorSearch.vue +0 -1
- package/src/components/display/filter/RubriqueChoice.vue +4 -6
- package/src/components/display/filter/RubriqueFilter.vue +0 -1
- package/src/components/display/live/CountDown.vue +4 -2
- package/src/components/display/live/LiveHorizontalList.vue +1 -1
- package/src/components/display/live/LiveItem.vue +4 -4
- package/src/components/display/live/LiveList.vue +84 -214
- package/src/components/display/organisation/OrganisationChooser.vue +5 -23
- package/src/components/display/participant/ParticipantItem.vue +7 -19
- package/src/components/display/participant/ParticipantList.vue +39 -52
- package/src/components/display/playlist/PlaylistItem.vue +1 -1
- package/src/components/display/playlist/PlaylistList.vue +8 -14
- package/src/components/display/playlist/PodcastList.vue +14 -22
- package/src/components/display/podcasts/AnimatorsItem.vue +0 -1
- package/src/components/display/podcasts/ParticipantDescription.vue +4 -16
- package/src/components/display/podcasts/PodcastFilterList.vue +13 -47
- package/src/components/display/podcasts/PodcastImage.vue +26 -83
- package/src/components/display/podcasts/PodcastInlineList.vue +13 -35
- package/src/components/display/podcasts/PodcastItem.vue +4 -4
- package/src/components/display/podcasts/PodcastList.vue +7 -14
- package/src/components/display/podcasts/PodcastModuleBox.vue +9 -28
- package/src/components/display/podcasts/TagList.vue +2 -3
- package/src/components/display/rubriques/RubriqueChooser.vue +2 -2
- package/src/components/display/rubriques/RubriqueList.vue +5 -25
- package/src/components/display/sharing/PlayerParameters.vue +6 -26
- package/src/components/display/sharing/ShareButtons.vue +21 -45
- package/src/components/display/sharing/ShareDistribution.vue +1 -7
- package/src/components/display/sharing/SharePlayer.vue +2 -2
- package/src/components/display/sharing/SharePlayerColors.vue +3 -7
- package/src/components/display/sharing/SharePlayerTypes.vue +1 -2
- package/src/components/display/sharing/SubscribeButtons.vue +1 -3
- package/src/components/misc/ErrorMessage.vue +3 -0
- package/src/components/misc/HomeDropdown.vue +2 -2
- package/src/components/misc/LeftMenu.vue +1 -1
- package/src/components/misc/Player.vue +1 -1
- package/src/components/misc/PlayerClockAndTimeline.vue +1 -1
- package/src/components/misc/PlayerProgressBar.vue +1 -1
- package/src/components/misc/TopBar.vue +1 -1
- package/src/components/pages/Lives.vue +0 -1
- package/src/components/pages/Participant.vue +1 -1
- package/src/sass/_variables.scss +0 -1
- package/src/store/class/general/media.ts +1 -1
|
@@ -3,7 +3,6 @@
|
|
|
3
3
|
v-if="!value || init"
|
|
4
4
|
class="default-multiselect-width"
|
|
5
5
|
:style="{ width: width }"
|
|
6
|
-
:class="{ 'multiselect-hide-arrow': !displayArrow }"
|
|
7
6
|
>
|
|
8
7
|
<label
|
|
9
8
|
for="organisationChooser"
|
|
@@ -29,7 +28,7 @@
|
|
|
29
28
|
:show-no-results="true"
|
|
30
29
|
:hide-selected="true"
|
|
31
30
|
:show-labels="false"
|
|
32
|
-
:class="{ 'light-multiselect':
|
|
31
|
+
:class="{ 'light-multiselect': light }"
|
|
33
32
|
@search-change="onSearchOrganisation"
|
|
34
33
|
@open="onOpen"
|
|
35
34
|
@close="onClose"
|
|
@@ -45,7 +44,7 @@
|
|
|
45
44
|
<template #singleLabel="{ option }">
|
|
46
45
|
<div class="multiselect-octopus-proposition">
|
|
47
46
|
<img
|
|
48
|
-
v-if="!light
|
|
47
|
+
v-if="!light"
|
|
49
48
|
class="option__image"
|
|
50
49
|
:src="option.imageUrl"
|
|
51
50
|
:alt="option.name"
|
|
@@ -66,7 +65,7 @@
|
|
|
66
65
|
"
|
|
67
66
|
>
|
|
68
67
|
<img
|
|
69
|
-
v-if="!light
|
|
68
|
+
v-if="!light"
|
|
70
69
|
class="option__image"
|
|
71
70
|
:src="option.imageUrl"
|
|
72
71
|
:alt="option.name"
|
|
@@ -104,8 +103,7 @@
|
|
|
104
103
|
class="position-relative"
|
|
105
104
|
>
|
|
106
105
|
<span
|
|
107
|
-
class="saooti-arrow_down octopus-arrow-down
|
|
108
|
-
:class="{ 'octopus-arrow-down-top': stats }"
|
|
106
|
+
class="saooti-arrow_down octopus-arrow-down"
|
|
109
107
|
/>
|
|
110
108
|
</div>
|
|
111
109
|
</template>
|
|
@@ -145,12 +143,9 @@ export default defineComponent({
|
|
|
145
143
|
props: {
|
|
146
144
|
width: { default: '100%', type: String },
|
|
147
145
|
defaultanswer: { default: '', type: String},
|
|
148
|
-
stats: { default: false, type: Boolean},
|
|
149
|
-
displayArrow: { default: true, type: Boolean},
|
|
150
146
|
value: { default: undefined, type: String},
|
|
151
147
|
light: { default: false, type: Boolean},
|
|
152
148
|
reset: { default: false, type: Boolean},
|
|
153
|
-
all: { default: false, type: Boolean},
|
|
154
149
|
},
|
|
155
150
|
emits: ['selected'],
|
|
156
151
|
data() {
|
|
@@ -235,20 +230,7 @@ export default defineComponent({
|
|
|
235
230
|
first: 0,
|
|
236
231
|
size: ELEMENTS_COUNT,
|
|
237
232
|
});
|
|
238
|
-
|
|
239
|
-
if (this.all && !query) {
|
|
240
|
-
while (
|
|
241
|
-
(response.count < 200 && orga.length < response.count) ||
|
|
242
|
-
(response.count > 200 && orga.length < 200)
|
|
243
|
-
) {
|
|
244
|
-
const other = await octopusApi.fetchOrganisations({
|
|
245
|
-
query: query,
|
|
246
|
-
first: orga.length,
|
|
247
|
-
size: ELEMENTS_COUNT,
|
|
248
|
-
});
|
|
249
|
-
orga = orga.concat(other.result);
|
|
250
|
-
}
|
|
251
|
-
}
|
|
233
|
+
const orga = response.result;
|
|
252
234
|
const notNull = orga.filter((o: Organisation|null) => {
|
|
253
235
|
return null !== o;
|
|
254
236
|
});
|
|
@@ -9,22 +9,13 @@
|
|
|
9
9
|
params: { participantId: participant.participantId },
|
|
10
10
|
query: { productor: $store.state.filter.organisationId },
|
|
11
11
|
}"
|
|
12
|
-
class="mt-3"
|
|
12
|
+
class="mt-3 text-dark"
|
|
13
13
|
:aria-label="$t('Participant')"
|
|
14
14
|
>
|
|
15
15
|
<div
|
|
16
16
|
class="img-box-circle"
|
|
17
17
|
:style="{ 'background-image': 'url(\'' + participant.imageUrl + '\')' }"
|
|
18
18
|
/>
|
|
19
|
-
</router-link>
|
|
20
|
-
<router-link
|
|
21
|
-
:to="{
|
|
22
|
-
name: 'participant',
|
|
23
|
-
params: { participantId: participant.participantId },
|
|
24
|
-
query: { productor: $store.state.filter.organisationId },
|
|
25
|
-
}"
|
|
26
|
-
class="text-dark mt-3"
|
|
27
|
-
>
|
|
28
19
|
<div class="participant-name">
|
|
29
20
|
<img
|
|
30
21
|
v-if="!activeParticipant && !isPodcastmaker && editRight"
|
|
@@ -40,7 +31,7 @@
|
|
|
40
31
|
<!-- eslint-disable vue/no-v-html -->
|
|
41
32
|
<div
|
|
42
33
|
:id="'description-participant-' + participant.participantId"
|
|
43
|
-
v-html="urlify(description)"
|
|
34
|
+
v-html="urlify(participant.description|| '')"
|
|
44
35
|
/>
|
|
45
36
|
<!-- eslint-enable -->
|
|
46
37
|
</div>
|
|
@@ -52,11 +43,9 @@
|
|
|
52
43
|
params: { productorId: participant.orga.id },
|
|
53
44
|
query: { productor: $store.state.filter.organisationId },
|
|
54
45
|
}"
|
|
55
|
-
class="
|
|
46
|
+
class="participant-producer"
|
|
56
47
|
>
|
|
57
|
-
|
|
58
|
-
© {{ participant.orga.name }}
|
|
59
|
-
</div>
|
|
48
|
+
© {{ participant.orga.name }}
|
|
60
49
|
</router-link>
|
|
61
50
|
</li>
|
|
62
51
|
</template>
|
|
@@ -84,9 +73,6 @@ export default defineComponent({
|
|
|
84
73
|
isPodcastmaker(): boolean {
|
|
85
74
|
return (state.generalParameters.podcastmaker as boolean);
|
|
86
75
|
},
|
|
87
|
-
description(): string {
|
|
88
|
-
return this.participant.description || '';
|
|
89
|
-
},
|
|
90
76
|
name(): string {
|
|
91
77
|
return (
|
|
92
78
|
(this.participant.firstName || '') +
|
|
@@ -108,8 +94,9 @@ export default defineComponent({
|
|
|
108
94
|
(this.authenticated &&
|
|
109
95
|
this.organisationId === this.participant.orga.id) ||
|
|
110
96
|
state.generalParameters.isAdmin
|
|
111
|
-
)
|
|
97
|
+
){
|
|
112
98
|
return true;
|
|
99
|
+
}
|
|
113
100
|
return false;
|
|
114
101
|
},
|
|
115
102
|
},
|
|
@@ -156,6 +143,7 @@ export default defineComponent({
|
|
|
156
143
|
align-items: center;
|
|
157
144
|
|
|
158
145
|
.participant-name {
|
|
146
|
+
margin-top: 1rem;
|
|
159
147
|
font-size: 0.9rem;
|
|
160
148
|
font-weight: 600;
|
|
161
149
|
text-align: center;
|
|
@@ -1,48 +1,41 @@
|
|
|
1
1
|
<template>
|
|
2
2
|
<div class="d-flex flex-column align-items-center">
|
|
3
|
-
<
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
>
|
|
7
|
-
<div
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
<
|
|
25
|
-
v-
|
|
26
|
-
|
|
27
|
-
:
|
|
3
|
+
<ClassicLoading
|
|
4
|
+
:loading-text="loading?$t('Loading participants ...'):undefined"
|
|
5
|
+
/>
|
|
6
|
+
<template v-if="isLoadingMoreOrFinished">
|
|
7
|
+
<div
|
|
8
|
+
v-if="showCount"
|
|
9
|
+
class="text-secondary mb-2"
|
|
10
|
+
>
|
|
11
|
+
{{
|
|
12
|
+
$t('Number participants', { nb: displayCount }) + $t('sort by score')
|
|
13
|
+
}}
|
|
14
|
+
</div>
|
|
15
|
+
<ul
|
|
16
|
+
class="participant-list"
|
|
17
|
+
>
|
|
18
|
+
<ParticipantItem
|
|
19
|
+
v-for="p in participants"
|
|
20
|
+
:key="p.participantId"
|
|
21
|
+
:participant="p"
|
|
22
|
+
/>
|
|
23
|
+
</ul>
|
|
24
|
+
<button
|
|
25
|
+
v-show="!allFetched"
|
|
26
|
+
class="btn btn-more saooti-plus"
|
|
27
|
+
:aria-label="$t('See more')"
|
|
28
|
+
:disabled="loading"
|
|
29
|
+
@click="fetchContent(false)"
|
|
28
30
|
/>
|
|
29
|
-
</
|
|
30
|
-
<button
|
|
31
|
-
v-show="!allFetched && loaded"
|
|
32
|
-
class="btn btn-more"
|
|
33
|
-
:aria-label="$t('See more')"
|
|
34
|
-
:disabled="inFetching"
|
|
35
|
-
@click="displayMore"
|
|
36
|
-
>
|
|
37
|
-
<div class="saooti-plus" />
|
|
38
|
-
</button>
|
|
31
|
+
</template>
|
|
39
32
|
</div>
|
|
40
33
|
</template>
|
|
41
34
|
|
|
42
35
|
<script lang="ts">
|
|
43
36
|
import octopusApi from '@saooti/octopus-api';
|
|
44
37
|
import ParticipantItem from './ParticipantItem.vue';
|
|
45
|
-
|
|
38
|
+
import ClassicLoading from '../../form/ClassicLoading.vue';
|
|
46
39
|
import { Participant } from '@/store/class/general/participant';
|
|
47
40
|
import { defineComponent } from 'vue'
|
|
48
41
|
export default defineComponent({
|
|
@@ -50,6 +43,7 @@ export default defineComponent({
|
|
|
50
43
|
|
|
51
44
|
components: {
|
|
52
45
|
ParticipantItem,
|
|
46
|
+
ClassicLoading
|
|
53
47
|
},
|
|
54
48
|
props: {
|
|
55
49
|
first: { default: 0, type: Number },
|
|
@@ -62,18 +56,19 @@ export default defineComponent({
|
|
|
62
56
|
data() {
|
|
63
57
|
return {
|
|
64
58
|
loading: true as boolean,
|
|
65
|
-
loaded: true as boolean,
|
|
66
59
|
dfirst: this.first as number,
|
|
67
60
|
dsize: this.size as number,
|
|
68
61
|
totalCount: 0 as number,
|
|
69
62
|
displayCount: 0 as number,
|
|
70
63
|
participants: [] as Array<Participant>,
|
|
71
|
-
inFetching: false as boolean,
|
|
72
64
|
};
|
|
73
65
|
},
|
|
74
66
|
|
|
75
67
|
|
|
76
68
|
computed: {
|
|
69
|
+
isLoadingMoreOrFinished():boolean{
|
|
70
|
+
return !this.loading || this.participants.length > 1;
|
|
71
|
+
},
|
|
77
72
|
allFetched(): boolean {
|
|
78
73
|
return this.dfirst >= this.totalCount;
|
|
79
74
|
},
|
|
@@ -100,21 +95,17 @@ export default defineComponent({
|
|
|
100
95
|
},
|
|
101
96
|
methods: {
|
|
102
97
|
async fetchContent(reset: boolean): Promise<void> {
|
|
103
|
-
this.
|
|
104
|
-
if (reset) {
|
|
105
|
-
this.participants.length = 0;
|
|
106
|
-
this.dfirst = 0;
|
|
107
|
-
this.loading = true;
|
|
108
|
-
this.loaded = false;
|
|
109
|
-
}
|
|
98
|
+
this.loading = true;
|
|
110
99
|
const data = await octopusApi.fetchParticipants({
|
|
111
100
|
first: this.dfirst,
|
|
112
101
|
size: this.dsize,
|
|
113
102
|
query: this.query,
|
|
114
103
|
organisationId: this.organisation,
|
|
115
104
|
});
|
|
116
|
-
|
|
117
|
-
|
|
105
|
+
if (reset) {
|
|
106
|
+
this.participants.length = 0;
|
|
107
|
+
this.dfirst = 0;
|
|
108
|
+
}
|
|
118
109
|
this.displayCount = data.count;
|
|
119
110
|
this.participants = this.participants.concat(data.result).filter((p: Participant | null) => {
|
|
120
111
|
if (null === p) {
|
|
@@ -124,11 +115,7 @@ export default defineComponent({
|
|
|
124
115
|
});
|
|
125
116
|
this.dfirst += this.dsize;
|
|
126
117
|
this.totalCount = data.count;
|
|
127
|
-
this.
|
|
128
|
-
},
|
|
129
|
-
displayMore(event: { preventDefault: () => void }): void {
|
|
130
|
-
event.preventDefault();
|
|
131
|
-
this.fetchContent(false);
|
|
118
|
+
this.loading = false;
|
|
132
119
|
},
|
|
133
120
|
},
|
|
134
121
|
})
|
|
@@ -1,21 +1,15 @@
|
|
|
1
1
|
<template>
|
|
2
2
|
<div class="d-flex flex-column align-items-center">
|
|
3
|
-
<
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
>
|
|
7
|
-
<div class="spinner-border me-3" />
|
|
8
|
-
<h3 class="mt-2">
|
|
9
|
-
{{ $t('Loading content ...') }}
|
|
10
|
-
</h3>
|
|
11
|
-
</div>
|
|
3
|
+
<ClassicLoading
|
|
4
|
+
:loading-text="loading?$t('Loading content ...'):undefined"
|
|
5
|
+
/>
|
|
12
6
|
<div
|
|
13
7
|
v-if="loaded && playlists.length > 1"
|
|
14
8
|
class="text-secondary mb-2"
|
|
15
9
|
>
|
|
16
10
|
{{ $t('Number playlists', { nb: displayCount }) + $t('sort by score') }}
|
|
17
11
|
</div>
|
|
18
|
-
<ul class="emission-list
|
|
12
|
+
<ul class="emission-list two-emissions">
|
|
19
13
|
<PlaylistItem
|
|
20
14
|
v-for="p in playlists"
|
|
21
15
|
:key="p.playlistId"
|
|
@@ -25,7 +19,7 @@
|
|
|
25
19
|
<button
|
|
26
20
|
v-show="!allFetched && loaded"
|
|
27
21
|
class="btn"
|
|
28
|
-
:class="buttonPlus ? 'btn-
|
|
22
|
+
:class="buttonPlus ? 'btn-link-plus':'btn-more'"
|
|
29
23
|
:disabled="inFetching"
|
|
30
24
|
:aria-label="$t('See more')"
|
|
31
25
|
@click="displayMore"
|
|
@@ -42,7 +36,7 @@
|
|
|
42
36
|
import octopusApi from '@saooti/octopus-api';
|
|
43
37
|
import PlaylistItem from './PlaylistItem.vue';
|
|
44
38
|
import { state } from '../../../store/paramStore';
|
|
45
|
-
|
|
39
|
+
import ClassicLoading from '../../form/ClassicLoading.vue';
|
|
46
40
|
import { Playlist } from '@/store/class/general/playlist';
|
|
47
41
|
import { defineComponent } from 'vue'
|
|
48
42
|
export default defineComponent({
|
|
@@ -50,6 +44,7 @@ export default defineComponent({
|
|
|
50
44
|
|
|
51
45
|
components: {
|
|
52
46
|
PlaylistItem,
|
|
47
|
+
ClassicLoading
|
|
53
48
|
},
|
|
54
49
|
props: {
|
|
55
50
|
first: { default: 0, type: Number },
|
|
@@ -140,8 +135,7 @@ export default defineComponent({
|
|
|
140
135
|
this.totalCount = data.count;
|
|
141
136
|
this.inFetching = false;
|
|
142
137
|
},
|
|
143
|
-
displayMore(
|
|
144
|
-
event.preventDefault();
|
|
138
|
+
displayMore(): void {
|
|
145
139
|
this.fetchContent(false);
|
|
146
140
|
},
|
|
147
141
|
},
|
|
@@ -1,29 +1,19 @@
|
|
|
1
1
|
<template>
|
|
2
2
|
<div class="d-flex flex-column align-items-center">
|
|
3
3
|
<h2
|
|
4
|
-
v-if="notEmptyPlaylist"
|
|
5
|
-
class="mt-3 align-self-baseline"
|
|
6
|
-
>
|
|
7
|
-
{{ $t('Podcasts in the playlist') }}
|
|
8
|
-
</h2>
|
|
9
|
-
<h2
|
|
10
|
-
v-else
|
|
11
4
|
class="mt-3 align-self-baseline"
|
|
12
5
|
>
|
|
13
|
-
|
|
6
|
+
<template v-if="notEmptyPlaylist">
|
|
7
|
+
{{ $t('Podcasts in the playlist') }}
|
|
8
|
+
</template>
|
|
9
|
+
<template v-else>
|
|
10
|
+
{{ $t('No podcasts in the playlist') }}
|
|
11
|
+
</template>
|
|
14
12
|
</h2>
|
|
15
|
-
<
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
<div class="spinner-border me-3" />
|
|
20
|
-
<h3 class="mt-2">
|
|
21
|
-
{{ $t('Loading podcasts ...') }}
|
|
22
|
-
</h3>
|
|
23
|
-
</div>
|
|
24
|
-
<div v-if="loaded && !podcasts.length && notEmptyPlaylist">
|
|
25
|
-
<p>{{ $t('No podcast match your query') }}</p>
|
|
26
|
-
</div>
|
|
13
|
+
<ClassicLoading
|
|
14
|
+
:loading-text="loading?$t('Loading podcasts ...'):undefined"
|
|
15
|
+
:error-text="loaded && !podcasts.length && notEmptyPlaylist?$t(`No podcast match your query`):undefined"
|
|
16
|
+
/>
|
|
27
17
|
<div
|
|
28
18
|
v-if="loaded && podcasts.length > 1"
|
|
29
19
|
class="text-secondary mb-4"
|
|
@@ -50,7 +40,7 @@
|
|
|
50
40
|
<button
|
|
51
41
|
v-show="size < podcasts.length && loaded"
|
|
52
42
|
class="btn"
|
|
53
|
-
:class="buttonPlus ? 'btn-
|
|
43
|
+
:class="buttonPlus ? 'btn-link-plus':'btn-more'"
|
|
54
44
|
:aria-label="$t('See more')"
|
|
55
45
|
@click="displayMore"
|
|
56
46
|
>
|
|
@@ -67,6 +57,7 @@ import octopusApi from '@saooti/octopus-api';
|
|
|
67
57
|
import PodcastItem from '../podcasts/PodcastItem.vue';
|
|
68
58
|
import { state } from '../../../store/paramStore';
|
|
69
59
|
import ClassicSearch from '../../form/ClassicSearch.vue';
|
|
60
|
+
import ClassicLoading from '../../form/ClassicLoading.vue';
|
|
70
61
|
import { Podcast } from '@/store/class/general/podcast';
|
|
71
62
|
import { Playlist } from '@/store/class/general/playlist';
|
|
72
63
|
import { defineComponent } from 'vue'
|
|
@@ -75,7 +66,8 @@ export default defineComponent({
|
|
|
75
66
|
|
|
76
67
|
components: {
|
|
77
68
|
PodcastItem,
|
|
78
|
-
ClassicSearch
|
|
69
|
+
ClassicSearch,
|
|
70
|
+
ClassicLoading
|
|
79
71
|
},
|
|
80
72
|
|
|
81
73
|
props: {
|
|
@@ -13,12 +13,11 @@
|
|
|
13
13
|
<span class="mx-1">:</span>
|
|
14
14
|
<Popover
|
|
15
15
|
:target="idPopover"
|
|
16
|
-
custom-class="participant-help"
|
|
17
16
|
>
|
|
18
17
|
<div class="text-center font-weight-bold">
|
|
19
18
|
{{ title }}
|
|
20
19
|
</div>
|
|
21
|
-
<
|
|
20
|
+
<hr>
|
|
22
21
|
<div
|
|
23
22
|
v-for="participant in participants"
|
|
24
23
|
:key="'desc-'+participant.participantId"
|
|
@@ -32,14 +31,14 @@
|
|
|
32
31
|
v-html="participant.description"
|
|
33
32
|
/>
|
|
34
33
|
<!-- eslint-enable -->
|
|
35
|
-
<
|
|
34
|
+
<hr>
|
|
36
35
|
</div>
|
|
37
36
|
</Popover>
|
|
38
37
|
<router-link
|
|
39
38
|
v-for="participant in participants"
|
|
40
39
|
:key="participant.participantId"
|
|
41
40
|
:aria-label="$t('Participant')"
|
|
42
|
-
class="
|
|
41
|
+
class="fw-bold"
|
|
43
42
|
:to="{
|
|
44
43
|
name: 'participant',
|
|
45
44
|
params: { participantId: participant.participantId },
|
|
@@ -69,10 +68,6 @@ export default defineComponent({
|
|
|
69
68
|
isGuest: { default: false, type: Boolean},
|
|
70
69
|
},
|
|
71
70
|
|
|
72
|
-
data() {
|
|
73
|
-
return {
|
|
74
|
-
};
|
|
75
|
-
},
|
|
76
71
|
computed:{
|
|
77
72
|
idPopover(): string{
|
|
78
73
|
if(this.isGuest){
|
|
@@ -97,11 +92,4 @@ export default defineComponent({
|
|
|
97
92
|
})
|
|
98
93
|
</script>
|
|
99
94
|
|
|
100
|
-
<style lang="scss">
|
|
101
|
-
.participant-help{
|
|
102
|
-
.horizontal-separator {
|
|
103
|
-
border-top: 1px solid #cccccc;
|
|
104
|
-
width: 100%;
|
|
105
|
-
}
|
|
106
|
-
}
|
|
107
|
-
</style>
|
|
95
|
+
<style lang="scss"></style>
|
|
@@ -1,15 +1,16 @@
|
|
|
1
1
|
<template>
|
|
2
|
-
<div class="p-3
|
|
3
|
-
<h2
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
2
|
+
<div class="p-3">
|
|
3
|
+
<h2>
|
|
4
|
+
<template v-if="name">
|
|
5
|
+
{{ $t('All podcast button', { name: name }) }}
|
|
6
|
+
</template>
|
|
7
|
+
<template v-else>
|
|
8
|
+
{{ $t('All podcast emission button') }}
|
|
9
|
+
</template>
|
|
8
10
|
</h2>
|
|
9
11
|
<div class="d-flex align-items-center flex-wrap">
|
|
10
12
|
<div
|
|
11
|
-
|
|
12
|
-
class="d-flex align-items-center flex-grow-1 categories-filter"
|
|
13
|
+
class="d-flex align-items-center flex-grow-1 me-3"
|
|
13
14
|
>
|
|
14
15
|
<CategoryChooser
|
|
15
16
|
:defaultanswer="$t('No category filter')"
|
|
@@ -18,7 +19,7 @@
|
|
|
18
19
|
</div>
|
|
19
20
|
<ClassicSearch
|
|
20
21
|
v-model:textInit="searchPattern"
|
|
21
|
-
class="small-
|
|
22
|
+
class="flex-small-grow"
|
|
22
23
|
id-checkbox="podcast-filter-search"
|
|
23
24
|
:label="$t('Search')"
|
|
24
25
|
/>
|
|
@@ -82,21 +83,13 @@ export default defineComponent({
|
|
|
82
83
|
this.reloadList = !this.reloadList;
|
|
83
84
|
},
|
|
84
85
|
},
|
|
85
|
-
created() {
|
|
86
|
-
if (this.$route.query.first && 'string' === typeof this.$route.query.first) {
|
|
87
|
-
this.first = parseInt(this.$route.query.first);
|
|
88
|
-
}
|
|
89
|
-
if (this.$route.query.size && 'string' === typeof this.$route.query.size) {
|
|
90
|
-
this.size = parseInt(this.$route.query.size);
|
|
91
|
-
}
|
|
92
|
-
},
|
|
93
86
|
methods: {
|
|
94
87
|
onCategorySelected(category: Category|undefined): void {
|
|
95
88
|
if (category && category.id) {
|
|
96
89
|
this.iabId = category.id;
|
|
97
|
-
|
|
98
|
-
this.iabId = undefined;
|
|
90
|
+
return;
|
|
99
91
|
}
|
|
92
|
+
this.iabId = undefined;
|
|
100
93
|
},
|
|
101
94
|
fetch(podcasts: Array<Podcast>): void {
|
|
102
95
|
this.$emit('fetch', podcasts);
|
|
@@ -105,31 +98,4 @@ export default defineComponent({
|
|
|
105
98
|
})
|
|
106
99
|
</script>
|
|
107
100
|
|
|
108
|
-
<style lang="scss">
|
|
109
|
-
.categories-filter {
|
|
110
|
-
.multiselect {
|
|
111
|
-
width: 75%;
|
|
112
|
-
@media (max-width: 600px) {
|
|
113
|
-
width: 100%;
|
|
114
|
-
}
|
|
115
|
-
}
|
|
116
|
-
}
|
|
117
|
-
.list-episodes {
|
|
118
|
-
padding: 2rem 0.5rem 1rem !important;
|
|
119
|
-
margin: 0 0.5rem;
|
|
120
|
-
|
|
121
|
-
@media (max-width: 450px) {
|
|
122
|
-
padding: 0.5rem 0rem 1rem !important;
|
|
123
|
-
}
|
|
124
|
-
h2 {
|
|
125
|
-
margin-bottom: 0.5rem;
|
|
126
|
-
}
|
|
127
|
-
}
|
|
128
|
-
.filter-list-search-icon {
|
|
129
|
-
right: 1.6rem !important;
|
|
130
|
-
font-weight: bold;
|
|
131
|
-
}
|
|
132
|
-
.small-flex-grow {
|
|
133
|
-
flex-grow: 0.3;
|
|
134
|
-
}
|
|
135
|
-
</style>
|
|
101
|
+
<style lang="scss"></style>
|