@saooti/octopus-sdk 30.0.7 → 30.0.8
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/index.ts +13 -2
- package/package.json +1 -1
- package/src/assets/bootstrap-diff.scss +2 -1
- package/src/assets/form.scss +7 -0
- package/src/assets/general.scss +14 -20
- package/src/assets/multiselect.scss +1 -1
- package/src/assets/share.scss +1 -12
- package/src/components/display/comments/CommentPlayer.vue +1 -1
- package/src/components/display/emission/EmissionInlineList.vue +1 -1
- package/src/components/display/emission/EmissionItem.vue +2 -2
- package/src/components/display/emission/EmissionList.vue +1 -1
- package/src/components/display/emission/EmissionPlayerItem.vue +1 -1
- package/src/components/display/filter/AdvancedSearch.vue +39 -101
- package/src/components/display/filter/CategoryFilter.vue +9 -13
- package/src/components/display/filter/ProductorSearch.vue +20 -39
- package/src/components/display/filter/RubriqueChoice.vue +1 -1
- package/src/components/display/filter/RubriqueFilter.vue +8 -12
- package/src/components/display/organisation/OrganisationChooserLight.vue +7 -1
- package/src/components/display/playlist/PlaylistItem.vue +1 -1
- package/src/components/display/playlist/PodcastList.vue +8 -19
- package/src/components/display/podcasts/PodcastFilterList.vue +9 -18
- package/src/components/display/podcasts/PodcastImage.vue +1 -1
- package/src/components/display/podcasts/PodcastInlineList.vue +1 -1
- package/src/components/display/podcasts/PodcastItem.vue +1 -1
- package/src/components/display/sharing/PlayerParameters.vue +24 -45
- package/src/components/display/sharing/SharePlayer.vue +8 -17
- package/src/components/display/sharing/SharePlayerColors.vue +2 -2
- package/src/components/display/sharing/SubscribeButtons.vue +1 -1
- package/src/components/form/ClassicCheckbox.vue +61 -0
- package/src/components/form/ClassicLoading.vue +28 -0
- package/src/components/form/ClassicRadio.vue +61 -0
- package/src/components/form/ClassicSearch.vue +82 -0
- package/src/components/misc/ErrorMessage.vue +1 -1
- package/src/components/misc/Footer.vue +26 -35
- package/src/components/misc/HomeDropdown.vue +44 -93
- package/src/components/misc/LeftMenu.vue +108 -141
- package/src/components/misc/Player.vue +14 -28
- package/src/components/misc/PlayerButtons.vue +14 -37
- package/src/components/misc/PlayerProgressBar.vue +15 -50
- package/src/components/misc/TopBar.vue +140 -222
- package/src/components/misc/modal/NewsletterModal.vue +13 -27
- package/src/components/pages/Category.vue +3 -8
- package/src/components/pages/Emission.vue +12 -24
- package/src/components/pages/Emissions.vue +8 -17
- package/src/components/pages/Home.vue +1 -3
- package/src/components/pages/Lives.vue +1 -3
- package/src/components/pages/Participant.vue +18 -26
- package/src/components/pages/Participants.vue +7 -15
- package/src/components/pages/Playlist.vue +16 -29
- package/src/components/pages/Playlists.vue +1 -11
- package/src/components/pages/Podcast.vue +16 -30
- package/src/components/pages/Podcasts.vue +9 -23
- package/src/components/pages/Search.vue +26 -64
|
@@ -1,137 +1,121 @@
|
|
|
1
1
|
<template>
|
|
2
2
|
<div
|
|
3
|
-
|
|
4
|
-
class="top-bar-container position-sticky"
|
|
3
|
+
class="top-bar-container"
|
|
5
4
|
:class="{ 'shadow-element': scrolled }"
|
|
6
5
|
>
|
|
7
|
-
<div
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
6
|
+
<div
|
|
7
|
+
class="saooti-burger-menu"
|
|
8
|
+
:aria-label="$t('open left Menu')"
|
|
9
|
+
@click="onDisplayMenu(false)"
|
|
10
|
+
/>
|
|
11
|
+
<router-link
|
|
12
|
+
class="top-bar-logo"
|
|
13
|
+
:to="{
|
|
14
|
+
name: 'home',
|
|
15
|
+
query: { productor: $store.state.filter.organisationId,
|
|
16
|
+
iabId: $store.state.filter.iab ? $store.state.filter.iab.id : undefined,
|
|
17
|
+
rubriquesId: rubriqueQueryParam},
|
|
18
|
+
}"
|
|
19
|
+
@click="onDisplayMenu(true)"
|
|
20
|
+
>
|
|
21
|
+
<img
|
|
22
|
+
:src="!filterOrga || '' === imgUrl ? logoUrl : imgUrl"
|
|
23
|
+
:alt="$t('Logo of main page')"
|
|
24
|
+
:class="isEducation ? 'educationLogo' : ''"
|
|
12
25
|
>
|
|
13
|
-
|
|
14
|
-
|
|
26
|
+
</router-link>
|
|
27
|
+
<OrganisationChooserLight
|
|
28
|
+
v-if="!isPodcastmaker"
|
|
29
|
+
page="topBar"
|
|
30
|
+
width="auto"
|
|
31
|
+
:defaultanswer="$t('No organisation filter')"
|
|
32
|
+
:value="organisationId"
|
|
33
|
+
:light="true"
|
|
34
|
+
class="me-2"
|
|
35
|
+
:reset="reset"
|
|
36
|
+
@selected="onOrganisationSelected"
|
|
37
|
+
/>
|
|
38
|
+
<div class="d-flex justify-content-center flex-grow-1">
|
|
15
39
|
<router-link
|
|
40
|
+
v-if="
|
|
41
|
+
isLiveTab &&
|
|
42
|
+
((filterOrga && filterOrgaLive) || !filterOrga)
|
|
43
|
+
"
|
|
16
44
|
:to="{
|
|
17
|
-
name: '
|
|
45
|
+
name: 'lives',
|
|
46
|
+
query: { productor: $store.state.filter.organisationId },
|
|
47
|
+
}"
|
|
48
|
+
class="link-hover p-3 fw-bold"
|
|
49
|
+
>
|
|
50
|
+
{{ $t('Live') }}
|
|
51
|
+
</router-link>
|
|
52
|
+
<router-link
|
|
53
|
+
:to="{
|
|
54
|
+
name: 'podcasts',
|
|
18
55
|
query: { productor: $store.state.filter.organisationId,
|
|
19
56
|
iabId: $store.state.filter.iab ? $store.state.filter.iab.id : undefined,
|
|
20
57
|
rubriquesId: rubriqueQueryParam},
|
|
21
58
|
}"
|
|
59
|
+
class="link-hover p-3 fw-bold"
|
|
22
60
|
>
|
|
23
|
-
|
|
24
|
-
class="top-bar-logo m-3"
|
|
25
|
-
@click="onDisplayMenu(true)"
|
|
26
|
-
>
|
|
27
|
-
<img
|
|
28
|
-
v-if="!filterOrga || '' === imgUrl"
|
|
29
|
-
:src="logoUrl"
|
|
30
|
-
:alt="$t('Logo of main page')"
|
|
31
|
-
:class="isEducation ? 'educationLogo' : ''"
|
|
32
|
-
>
|
|
33
|
-
<img
|
|
34
|
-
v-else
|
|
35
|
-
:src="imgUrl"
|
|
36
|
-
:alt="$t('Logo of main page')"
|
|
37
|
-
>
|
|
38
|
-
</div>
|
|
61
|
+
{{ $t('Podcasts') }}
|
|
39
62
|
</router-link>
|
|
40
|
-
<
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
class="
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
<
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
{
|
|
64
|
-
|
|
63
|
+
<router-link
|
|
64
|
+
:to="{
|
|
65
|
+
name: 'emissions',
|
|
66
|
+
query: { productor: $store.state.filter.organisationId,
|
|
67
|
+
iabId: $store.state.filter.iab ? $store.state.filter.iab.id : undefined,
|
|
68
|
+
rubriquesId: rubriqueQueryParam },
|
|
69
|
+
}"
|
|
70
|
+
class="link-hover p-3 fw-bold"
|
|
71
|
+
>
|
|
72
|
+
{{ $t('Emissions') }}
|
|
73
|
+
</router-link>
|
|
74
|
+
<router-link
|
|
75
|
+
:to="{
|
|
76
|
+
name: 'participants',
|
|
77
|
+
query: { productor: $store.state.filter.organisationId },
|
|
78
|
+
}"
|
|
79
|
+
class="link-hover p-3 fw-bold"
|
|
80
|
+
>
|
|
81
|
+
{{ $t('Speakers') }}
|
|
82
|
+
</router-link>
|
|
83
|
+
<router-link
|
|
84
|
+
:to="{
|
|
85
|
+
name: 'playlists',
|
|
86
|
+
query: { productor: $store.state.filter.organisationId },
|
|
87
|
+
}"
|
|
88
|
+
class="link-hover p-3 fw-bold"
|
|
89
|
+
>
|
|
90
|
+
{{ $t('Playlists') }}
|
|
91
|
+
</router-link>
|
|
92
|
+
<router-link
|
|
93
|
+
v-if="!isPodcastmaker && (!filterOrga || isEducation)"
|
|
94
|
+
:to="{
|
|
95
|
+
name: 'productors',
|
|
96
|
+
query: { productor: $store.state.filter.organisationId },
|
|
97
|
+
}"
|
|
98
|
+
class="link-hover p-3 fw-bold"
|
|
99
|
+
>
|
|
100
|
+
{{ $t('Productors') }}
|
|
101
|
+
</router-link>
|
|
102
|
+
</div>
|
|
103
|
+
<div class="d-flex flex-column">
|
|
104
|
+
<div class="hosted-by">
|
|
105
|
+
<span>{{ $t('Hosted by') }}</span><span class="ms-1 me-1 primary-color">Saooti</span>
|
|
106
|
+
</div>
|
|
107
|
+
<div class="d-flex justify-content-end flex-no-wrap">
|
|
108
|
+
<HomeDropdown :is-education="isEducation" />
|
|
65
109
|
<router-link
|
|
110
|
+
:aria-label="$t('Search')"
|
|
66
111
|
:to="{
|
|
67
112
|
name: 'podcasts',
|
|
68
|
-
query: { productor: $store.state.filter.organisationId,
|
|
69
|
-
iabId: $store.state.filter.iab ? $store.state.filter.iab.id : undefined,
|
|
70
|
-
rubriquesId: rubriqueQueryParam},
|
|
71
|
-
}"
|
|
72
|
-
class="linkHover p-3 text-dark fw-bold"
|
|
73
|
-
>
|
|
74
|
-
{{ $t('Podcasts') }}
|
|
75
|
-
</router-link>
|
|
76
|
-
<router-link
|
|
77
|
-
:to="{
|
|
78
|
-
name: 'emissions',
|
|
79
|
-
query: { productor: $store.state.filter.organisationId,
|
|
80
|
-
iabId: $store.state.filter.iab ? $store.state.filter.iab.id : undefined,
|
|
81
|
-
rubriquesId: rubriqueQueryParam },
|
|
82
|
-
}"
|
|
83
|
-
class="linkHover p-3 text-dark fw-bold"
|
|
84
|
-
>
|
|
85
|
-
{{ $t('Emissions') }}
|
|
86
|
-
</router-link>
|
|
87
|
-
<router-link
|
|
88
|
-
:to="{
|
|
89
|
-
name: 'participants',
|
|
90
|
-
query: { productor: $store.state.filter.organisationId },
|
|
91
|
-
}"
|
|
92
|
-
class="linkHover p-3 text-dark fw-bold"
|
|
93
|
-
>
|
|
94
|
-
{{ $t('Speakers') }}
|
|
95
|
-
</router-link>
|
|
96
|
-
<router-link
|
|
97
|
-
:to="{
|
|
98
|
-
name: 'playlists',
|
|
99
113
|
query: { productor: $store.state.filter.organisationId },
|
|
100
114
|
}"
|
|
101
|
-
class="linkHover p-3 text-dark fw-bold"
|
|
102
115
|
>
|
|
103
|
-
|
|
104
|
-
</router-link>
|
|
105
|
-
<router-link
|
|
106
|
-
v-if="!isPodcastmaker && (!filterOrga || isEducation)"
|
|
107
|
-
:to="{
|
|
108
|
-
name: 'productors',
|
|
109
|
-
query: { productor: $store.state.filter.organisationId },
|
|
110
|
-
}"
|
|
111
|
-
class="linkHover p-3 text-dark fw-bold"
|
|
112
|
-
>
|
|
113
|
-
{{ $t('Productors') }}
|
|
116
|
+
<div class="btn admin-button m-1 saooti-search" />
|
|
114
117
|
</router-link>
|
|
115
118
|
</div>
|
|
116
|
-
<div class="d-flex flex-column">
|
|
117
|
-
<div class="d-flex justify-content-end hostedBy hide-phone">
|
|
118
|
-
<span>{{ $t('Hosted by') }}</span><span class="ms-1 me-1 primary-color">Saooti</span>
|
|
119
|
-
</div>
|
|
120
|
-
<div class="d-flex align-items-center justify-content-end flex-no-wrap">
|
|
121
|
-
<HomeDropdown :is-education="isEducation" />
|
|
122
|
-
<router-link
|
|
123
|
-
:aria-label="$t('Search')"
|
|
124
|
-
:to="{
|
|
125
|
-
name: 'podcasts',
|
|
126
|
-
query: { productor: $store.state.filter.organisationId },
|
|
127
|
-
}"
|
|
128
|
-
>
|
|
129
|
-
<div class="btn admin-button m-1">
|
|
130
|
-
<i class="saooti-search text-dark" />
|
|
131
|
-
</div>
|
|
132
|
-
</router-link>
|
|
133
|
-
</div>
|
|
134
|
-
</div>
|
|
135
119
|
</div>
|
|
136
120
|
</div>
|
|
137
121
|
</template>
|
|
@@ -166,11 +150,9 @@ export default defineComponent({
|
|
|
166
150
|
minScroll: 0 as number,
|
|
167
151
|
organisationId: undefined as string | undefined,
|
|
168
152
|
reset: false as boolean,
|
|
169
|
-
init: false as boolean,
|
|
170
153
|
dummyParam: new Date().getTime().toString() as string,
|
|
171
154
|
};
|
|
172
155
|
},
|
|
173
|
-
|
|
174
156
|
|
|
175
157
|
computed: {
|
|
176
158
|
rubriqueQueryParam(): string|undefined{
|
|
@@ -218,7 +200,6 @@ export default defineComponent({
|
|
|
218
200
|
if (this.filterOrga) {
|
|
219
201
|
this.organisationId = this.filterOrga;
|
|
220
202
|
}
|
|
221
|
-
this.init = true;
|
|
222
203
|
window.addEventListener('scroll', this.handleScroll);
|
|
223
204
|
},
|
|
224
205
|
|
|
@@ -278,139 +259,76 @@ export default defineComponent({
|
|
|
278
259
|
|
|
279
260
|
<style lang="scss">
|
|
280
261
|
.top-bar-container {
|
|
262
|
+
position: sticky;
|
|
281
263
|
top: 0;
|
|
282
264
|
background: #fff;
|
|
283
265
|
width: 100%;
|
|
266
|
+
height: 5rem;
|
|
284
267
|
z-index: 10;
|
|
285
|
-
padding: 0
|
|
286
|
-
|
|
268
|
+
padding: 0 1rem;
|
|
269
|
+
display: flex;
|
|
270
|
+
justify-content: space-between;
|
|
271
|
+
align-items: center;
|
|
272
|
+
transition: height 1s;
|
|
287
273
|
@media (max-width: 450px) {
|
|
288
274
|
padding: 0 0.5rem;
|
|
289
275
|
}
|
|
290
276
|
|
|
291
|
-
.
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
height: 5rem;
|
|
298
|
-
position: relative;
|
|
299
|
-
|
|
300
|
-
.top-bar-logo {
|
|
301
|
-
margin: 1rem 2rem 1rem 1rem !important;
|
|
302
|
-
img {
|
|
303
|
-
max-width: 160px !important;
|
|
304
|
-
max-height: 80px;
|
|
305
|
-
height: 80px;
|
|
306
|
-
border-radius: 0.8rem;
|
|
307
|
-
&.educationLogo {
|
|
308
|
-
height: auto;
|
|
309
|
-
border-radius: 0;
|
|
310
|
-
}
|
|
311
|
-
}
|
|
312
|
-
}
|
|
313
|
-
.multiselect__tags {
|
|
314
|
-
padding: 6px 40px 0 10px;
|
|
315
|
-
}
|
|
316
|
-
|
|
317
|
-
.hamburger-menu {
|
|
318
|
-
display: none;
|
|
319
|
-
margin: 0 1rem;
|
|
320
|
-
@media (max-width: 600px) {
|
|
321
|
-
margin: 0;
|
|
322
|
-
}
|
|
323
|
-
.saooti-burger-menu {
|
|
324
|
-
font-size: 2.2em;
|
|
325
|
-
font-weight: bold;
|
|
326
|
-
margin-bottom: 0;
|
|
327
|
-
}
|
|
328
|
-
cursor: pointer;
|
|
329
|
-
}
|
|
277
|
+
.saooti-burger-menu {
|
|
278
|
+
display: none;
|
|
279
|
+
cursor: pointer;
|
|
280
|
+
font-size: 2rem;
|
|
281
|
+
font-weight: bold;
|
|
282
|
+
margin: 0.5rem;
|
|
330
283
|
}
|
|
331
284
|
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
height:
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
display: block;
|
|
341
|
-
.saooti-burger-menu {
|
|
342
|
-
font-size: 2.2em;
|
|
343
|
-
font-weight: bold;
|
|
344
|
-
margin: 0;
|
|
345
|
-
}
|
|
346
|
-
}
|
|
347
|
-
.top-bar-logo {
|
|
348
|
-
flex-grow: 1;
|
|
349
|
-
text-align: center;
|
|
350
|
-
align-items: center;
|
|
351
|
-
display: flex;
|
|
352
|
-
img {
|
|
353
|
-
height: 2.5rem;
|
|
354
|
-
width: auto;
|
|
355
|
-
}
|
|
356
|
-
}
|
|
357
|
-
.hostedBy {
|
|
358
|
-
display: none !important;
|
|
285
|
+
.top-bar-logo {
|
|
286
|
+
margin: 1rem 2rem 1rem 1rem;
|
|
287
|
+
img {
|
|
288
|
+
max-width: 160px !important;
|
|
289
|
+
max-height: 2.5rem;
|
|
290
|
+
height: 2.5rem;
|
|
291
|
+
&.educationLogo {
|
|
292
|
+
height: auto;
|
|
359
293
|
}
|
|
360
294
|
}
|
|
361
295
|
}
|
|
362
|
-
.
|
|
296
|
+
.hosted-by {
|
|
363
297
|
font-size: 0.6rem;
|
|
364
298
|
position: absolute;
|
|
365
299
|
top: 5px;
|
|
366
300
|
right: 0;
|
|
367
301
|
}
|
|
368
|
-
|
|
302
|
+
.multiselect__tags {
|
|
303
|
+
padding: 6px 40px 0 10px;
|
|
304
|
+
}
|
|
305
|
+
&.shadow-element {
|
|
306
|
+
height: 3.5rem;
|
|
307
|
+
.link-hover,.hosted-by {
|
|
308
|
+
display: none;
|
|
309
|
+
}
|
|
310
|
+
.saooti-burger-menu {
|
|
311
|
+
display: block;
|
|
312
|
+
}
|
|
313
|
+
}
|
|
369
314
|
/** PHONES*/
|
|
370
315
|
@media (max-width: 1200px) {
|
|
371
|
-
.
|
|
372
|
-
|
|
373
|
-
|
|
374
|
-
.hostedBy {
|
|
375
|
-
display: none !important;
|
|
316
|
+
height: 3.5rem;
|
|
317
|
+
.default-multiselect-width, .hosted-by, .link-hover {
|
|
318
|
+
display: none;
|
|
376
319
|
}
|
|
377
|
-
.
|
|
378
|
-
|
|
379
|
-
height: 3.5rem;
|
|
380
|
-
.linkHover {
|
|
381
|
-
display: none;
|
|
382
|
-
}
|
|
383
|
-
.hamburger-menu {
|
|
384
|
-
flex-grow: 1;
|
|
385
|
-
display: block;
|
|
386
|
-
}
|
|
387
|
-
.top-bar-logo {
|
|
388
|
-
flex-grow: 1;
|
|
389
|
-
text-align: center;
|
|
390
|
-
display: flex;
|
|
391
|
-
width: 100px;
|
|
392
|
-
img {
|
|
393
|
-
max-width: 100px !important;
|
|
394
|
-
}
|
|
395
|
-
}
|
|
320
|
+
.saooti-burger-menu {
|
|
321
|
+
display: block;
|
|
396
322
|
}
|
|
397
323
|
}
|
|
398
324
|
@media (max-width: 650px) {
|
|
399
|
-
.top-bar {
|
|
400
|
-
|
|
401
|
-
img {
|
|
402
|
-
height: 2rem;
|
|
403
|
-
}
|
|
404
|
-
}
|
|
325
|
+
.top-bar-logo img{
|
|
326
|
+
height: 2rem;
|
|
405
327
|
}
|
|
406
328
|
}
|
|
407
329
|
@media (max-width: 290px) {
|
|
408
|
-
.top-bar {
|
|
409
|
-
|
|
410
|
-
img {
|
|
411
|
-
display: none;
|
|
412
|
-
}
|
|
413
|
-
}
|
|
330
|
+
.top-bar-logo img{
|
|
331
|
+
display: none;
|
|
414
332
|
}
|
|
415
333
|
}
|
|
416
334
|
}
|
|
@@ -17,36 +17,20 @@
|
|
|
17
17
|
<!-- eslint-disable vue/no-v-html -->
|
|
18
18
|
<div v-html="newsletterHtml" />
|
|
19
19
|
<!-- eslint-enable -->
|
|
20
|
-
<div class="d-flex flex-column flex-grow ms-4">
|
|
20
|
+
<div class="d-flex flex-column flex-grow-1 ms-4">
|
|
21
21
|
<h4 class="mb-3">
|
|
22
22
|
{{ $t('Configuration') }}
|
|
23
23
|
</h4>
|
|
24
|
-
<
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
>{{
|
|
35
|
-
$t('Display emission name')
|
|
36
|
-
}}</label>
|
|
37
|
-
</div>
|
|
38
|
-
<div>
|
|
39
|
-
<input
|
|
40
|
-
id="display-participants-names"
|
|
41
|
-
v-model="displayParticipantsNames"
|
|
42
|
-
type="checkbox"
|
|
43
|
-
class="form-check-input"
|
|
44
|
-
>
|
|
45
|
-
<label
|
|
46
|
-
class="form-check-label"
|
|
47
|
-
for="display-participants-names"
|
|
48
|
-
>{{ $t('Display participants list') }}</label>
|
|
49
|
-
</div>
|
|
24
|
+
<ClassicCheckbox
|
|
25
|
+
v-model:textInit="displayEmissionName"
|
|
26
|
+
id-checkbox="display-emission-name"
|
|
27
|
+
:label="$t('Display emission name')"
|
|
28
|
+
/>
|
|
29
|
+
<ClassicCheckbox
|
|
30
|
+
v-model:textInit="displayParticipantsNames"
|
|
31
|
+
id-checkbox="display-participants-names"
|
|
32
|
+
:label="$t('Display participants list')"
|
|
33
|
+
/>
|
|
50
34
|
<div class="d-flex align-items-center mt-2">
|
|
51
35
|
<VSwatches
|
|
52
36
|
v-model="color"
|
|
@@ -104,6 +88,7 @@
|
|
|
104
88
|
</template>
|
|
105
89
|
|
|
106
90
|
<script lang="ts">
|
|
91
|
+
import ClassicCheckbox from '../../form/ClassicCheckbox.vue';
|
|
107
92
|
import Snackbar from '../../misc/Snackbar.vue';
|
|
108
93
|
import moment from 'moment';
|
|
109
94
|
import VSwatches from 'vue3-swatches';
|
|
@@ -121,6 +106,7 @@ export default defineComponent({
|
|
|
121
106
|
components: {
|
|
122
107
|
Snackbar,
|
|
123
108
|
VSwatches,
|
|
109
|
+
ClassicCheckbox
|
|
124
110
|
},
|
|
125
111
|
|
|
126
112
|
mixins: [displayMethods],
|
|
@@ -2,8 +2,8 @@
|
|
|
2
2
|
<div class="page-box">
|
|
3
3
|
<h1>{{ title }}</h1>
|
|
4
4
|
<PodcastList
|
|
5
|
-
:first="
|
|
6
|
-
:size="
|
|
5
|
+
:first="0"
|
|
6
|
+
:size="12"
|
|
7
7
|
:iab-id="iabId"
|
|
8
8
|
:organisation-id="filterOrga"
|
|
9
9
|
/>
|
|
@@ -20,8 +20,6 @@ export default defineComponent({
|
|
|
20
20
|
PodcastList,
|
|
21
21
|
},
|
|
22
22
|
props: {
|
|
23
|
-
firstRoute: { default: 0, type: Number},
|
|
24
|
-
sizeRoute: { default: 12, type: Number},
|
|
25
23
|
iabId: { default: undefined, type: Number},
|
|
26
24
|
},
|
|
27
25
|
|
|
@@ -53,10 +51,7 @@ export default defineComponent({
|
|
|
53
51
|
const matchCategories = this.categories.filter((c: Category) => c.id === this.iabId);
|
|
54
52
|
if (1 !== matchCategories.length) return;
|
|
55
53
|
this.title = matchCategories[0]['name'];
|
|
56
|
-
|
|
57
54
|
},
|
|
58
55
|
},
|
|
59
56
|
})
|
|
60
|
-
</script>
|
|
61
|
-
|
|
62
|
-
<style lang="scss"></style>
|
|
57
|
+
</script>
|
|
@@ -1,14 +1,13 @@
|
|
|
1
1
|
<template>
|
|
2
|
-
<div>
|
|
2
|
+
<div class="page-box">
|
|
3
3
|
<div
|
|
4
4
|
v-if="loaded && !error"
|
|
5
|
-
class="page-box"
|
|
6
5
|
>
|
|
7
6
|
<h1 v-if="!isOuestFrance">
|
|
8
7
|
{{ $t('Emission') }}
|
|
9
8
|
</h1>
|
|
10
9
|
<div class="d-flex">
|
|
11
|
-
<div class="d-flex flex-column flex-grow">
|
|
10
|
+
<div class="d-flex flex-column flex-grow-1">
|
|
12
11
|
<EditBox
|
|
13
12
|
v-if="editRight && isEditBox"
|
|
14
13
|
:emission="emission"
|
|
@@ -48,7 +47,7 @@
|
|
|
48
47
|
:emission="emission"
|
|
49
48
|
/>
|
|
50
49
|
</div>
|
|
51
|
-
<div class="d-flex flex-column
|
|
50
|
+
<div class="d-flex flex-column flex-grow-mobile">
|
|
52
51
|
<SharePlayer
|
|
53
52
|
v-if="isSharePlayer && (authenticated || notExclusive)"
|
|
54
53
|
:emission="emission"
|
|
@@ -90,21 +89,10 @@
|
|
|
90
89
|
@fetch="fetch"
|
|
91
90
|
/>
|
|
92
91
|
</div>
|
|
93
|
-
<
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
<div class="spinner-border me-3" />
|
|
98
|
-
<h3 class="mt-2">
|
|
99
|
-
{{ $t('Loading content ...') }}
|
|
100
|
-
</h3>
|
|
101
|
-
</div>
|
|
102
|
-
<div
|
|
103
|
-
v-if="error"
|
|
104
|
-
class="text-center"
|
|
105
|
-
>
|
|
106
|
-
<h3>{{ $t("Emission doesn't exist") }}</h3>
|
|
107
|
-
</div>
|
|
92
|
+
<ClassicLoading
|
|
93
|
+
:loading-text="!loaded?$t('Loading content ...'):undefined"
|
|
94
|
+
:error-text="error?$t(`Emission doesn't exist`):undefined"
|
|
95
|
+
/>
|
|
108
96
|
</div>
|
|
109
97
|
</template>
|
|
110
98
|
|
|
@@ -113,7 +101,7 @@ import octopusApi from '@saooti/octopus-api';
|
|
|
113
101
|
import { state } from '../../store/paramStore';
|
|
114
102
|
import { displayMethods } from '../mixins/functions';
|
|
115
103
|
import { Emission } from '@/store/class/general/emission';
|
|
116
|
-
|
|
104
|
+
import ClassicLoading from '../form/ClassicLoading.vue';
|
|
117
105
|
import { defineComponent, defineAsyncComponent } from 'vue';
|
|
118
106
|
const PodcastFilterList = defineAsyncComponent(() => import('../display/podcasts/PodcastFilterList.vue'));
|
|
119
107
|
const SharePlayer = defineAsyncComponent(() => import('../display/sharing/SharePlayer.vue'));
|
|
@@ -133,6 +121,7 @@ export default defineComponent({
|
|
|
133
121
|
PodcastList,
|
|
134
122
|
SubscribeButtons,
|
|
135
123
|
LiveHorizontalList,
|
|
124
|
+
ClassicLoading
|
|
136
125
|
},
|
|
137
126
|
mixins: [displayMethods],
|
|
138
127
|
props: {
|
|
@@ -203,8 +192,9 @@ export default defineComponent({
|
|
|
203
192
|
if (
|
|
204
193
|
(this.authenticated && this.emission && this.organisationId === this.emission.orga.id) ||
|
|
205
194
|
state.generalParameters.isAdmin
|
|
206
|
-
)
|
|
195
|
+
){
|
|
207
196
|
return true;
|
|
197
|
+
}
|
|
208
198
|
return false;
|
|
209
199
|
},
|
|
210
200
|
countLink(): number {
|
|
@@ -272,6 +262,4 @@ export default defineComponent({
|
|
|
272
262
|
},
|
|
273
263
|
},
|
|
274
264
|
})
|
|
275
|
-
</script>
|
|
276
|
-
|
|
277
|
-
<style lang="scss"></style>
|
|
265
|
+
</script>
|
|
@@ -1,10 +1,12 @@
|
|
|
1
1
|
<template>
|
|
2
2
|
<div class="page-box">
|
|
3
|
-
<h1
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
3
|
+
<h1>
|
|
4
|
+
<template v-if="undefined === titlePage">
|
|
5
|
+
{{ $t('All emissions') }}
|
|
6
|
+
</template>
|
|
7
|
+
<template v-else>
|
|
8
|
+
{{ titlePage }}
|
|
9
|
+
</template>
|
|
8
10
|
</h1>
|
|
9
11
|
<ProductorSearch
|
|
10
12
|
v-if="isProductorSearch"
|
|
@@ -53,7 +55,6 @@
|
|
|
53
55
|
import EmissionList from '../display/emission/EmissionList.vue';
|
|
54
56
|
import AdvancedSearch from '../display/filter/AdvancedSearch.vue';
|
|
55
57
|
import { state } from '../../store/paramStore';
|
|
56
|
-
|
|
57
58
|
import { Category } from '@/store/class/general/category';
|
|
58
59
|
import { RubriquageFilter } from '@/store/class/rubrique/rubriquageFilter';
|
|
59
60
|
import { defineComponent, defineAsyncComponent } from 'vue';
|
|
@@ -65,8 +66,6 @@ export default defineComponent({
|
|
|
65
66
|
AdvancedSearch,
|
|
66
67
|
},
|
|
67
68
|
props: {
|
|
68
|
-
firstRoute: { default: 0, type: Number},
|
|
69
|
-
sizeRoute: { default: 12, type: Number},
|
|
70
69
|
productor: { default: undefined, type: String},
|
|
71
70
|
isEducation: { default: false, type: Boolean},
|
|
72
71
|
},
|
|
@@ -110,12 +109,6 @@ export default defineComponent({
|
|
|
110
109
|
},
|
|
111
110
|
|
|
112
111
|
created() {
|
|
113
|
-
if (this.firstRoute) {
|
|
114
|
-
this.first = this.firstRoute;
|
|
115
|
-
}
|
|
116
|
-
if (this.sizeRoute) {
|
|
117
|
-
this.size = this.sizeRoute;
|
|
118
|
-
}
|
|
119
112
|
if(this.categoryFilter){
|
|
120
113
|
this.iabId = this.categoryFilter.id;
|
|
121
114
|
}
|
|
@@ -182,6 +175,4 @@ export default defineComponent({
|
|
|
182
175
|
},
|
|
183
176
|
},
|
|
184
177
|
})
|
|
185
|
-
</script>
|
|
186
|
-
|
|
187
|
-
<style lang="scss"></style>
|
|
178
|
+
</script>
|