@saooti/octopus-sdk 31.0.23 → 31.0.26
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 +12 -1
- package/index.ts +5 -2
- package/package.json +1 -1
- package/src/assets/live.scss +13 -13
- package/src/assets/multiselect.scss +1 -1
- package/src/components/display/categories/CategoryChooser.vue +1 -0
- package/src/components/display/categories/CategoryList.vue +5 -5
- package/src/components/display/comments/CommentBasicView.vue +1 -0
- package/src/components/display/emission/EmissionChooser.vue +1 -0
- package/src/components/display/emission/EmissionItem.vue +5 -8
- package/src/components/display/emission/EmissionPlayerItem.vue +9 -16
- package/src/components/display/filter/AdvancedSearch.vue +2 -12
- package/src/components/display/filter/ProductorSearch.vue +2 -3
- package/src/components/display/live/LiveItem.vue +4 -8
- package/src/components/display/organisation/OrganisationChooser.vue +1 -0
- package/src/components/display/organisation/OrganisationChooserLight.vue +18 -25
- package/src/components/display/participant/ParticipantItem.vue +5 -8
- package/src/components/display/playlist/PlaylistItem.vue +5 -8
- package/src/components/display/podcasts/ParticipantDescription.vue +1 -0
- package/src/components/display/podcasts/PodcastImage.vue +1 -0
- package/src/components/display/podcasts/PodcastItem.vue +5 -9
- package/src/components/display/podcasts/TagList.vue +2 -0
- package/src/components/display/rubriques/RubriqueChooser.vue +1 -0
- package/src/components/display/rubriques/RubriqueList.vue +6 -5
- package/src/components/display/sharing/ShareButtons.vue +1 -0
- package/src/components/display/sharing/SharePlayer.vue +1 -1
- package/src/components/form/ClassicCheckbox.vue +6 -1
- package/src/components/form/ClassicLoading.vue +2 -2
- package/src/components/form/ClassicRadio.vue +6 -1
- package/src/components/misc/ErrorMessage.vue +1 -0
- package/src/components/misc/Footer.vue +2 -1
- package/src/components/misc/LeftMenu.vue +1 -4
- package/src/components/misc/TopBar.vue +1 -4
- package/src/components/mixins/orgaComputed.ts +0 -0
- package/src/components/mixins/organisationFilter.ts +2 -0
- package/src/components/mixins/player/playerLogic.ts +1 -1
- package/src/components/pages/Emissions.vue +26 -1
- package/src/components/pages/Participant.vue +1 -0
- package/src/components/pages/Podcasts.vue +1 -0
- package/src/locale/en.ts +1 -1
- package/src/sass/_variables.scss +2 -0
package/README.md
CHANGED
|
@@ -573,7 +573,14 @@ See [Configuration Reference](https://cli.vuejs.org/config/).
|
|
|
573
573
|
* 30.0.74 Error locales en allemand (je sens que ça va être fun cette histoire)
|
|
574
574
|
* 30.0.75 Parlement
|
|
575
575
|
* 30.0.76 Space
|
|
576
|
-
|
|
576
|
+
* 30.0.77 V-Calendar bloque version
|
|
577
|
+
* 30.0.78 a -> word-break
|
|
578
|
+
* 30.0.79 DownloadId player
|
|
579
|
+
* 30.0.80 DownloadId player
|
|
580
|
+
* 30.0.81 DownloadId player
|
|
581
|
+
* 30.0.82 Cherry pick Color Qr code
|
|
582
|
+
* 30.0.83 Locales parlement
|
|
583
|
+
* 30.0.84 Une émission non visible n'apparaît pas dans la page émission
|
|
577
584
|
|
|
578
585
|
* 31.0.0 Passage en 31
|
|
579
586
|
* 31.0.1 Ajout pocket casts
|
|
@@ -599,3 +606,7 @@ See [Configuration Reference](https://cli.vuejs.org/config/).
|
|
|
599
606
|
* 31.0.21 Player mobile
|
|
600
607
|
* 31.0.22 Merge 30
|
|
601
608
|
* 31.0.23 Qr Code option noir
|
|
609
|
+
* 31.0.24 Amélioration accessibilité
|
|
610
|
+
* 31.0.25 Erreur audioUrl
|
|
611
|
+
* 31.0.26 Erreur 403 page expose
|
|
612
|
+
|
package/index.ts
CHANGED
|
@@ -12,6 +12,7 @@ import Search from "./src/components/pages/Search.vue";
|
|
|
12
12
|
import Home from "./src/components/pages/Home.vue";
|
|
13
13
|
import Category from "./src/components/pages/Category.vue";
|
|
14
14
|
import Rubrique from "./src/components/pages/Rubrique.vue";
|
|
15
|
+
import Error403Page from "./src/components/pages/Error403Page.vue";
|
|
15
16
|
//Misc
|
|
16
17
|
import Footer from "./src/components/misc/Footer.vue";
|
|
17
18
|
import LeftMenu from "./src/components/misc/LeftMenu.vue";
|
|
@@ -116,7 +117,8 @@ const components = {
|
|
|
116
117
|
ClassicLoading,
|
|
117
118
|
AdvancedSearch,
|
|
118
119
|
PodcastPlaylistInlineList,
|
|
119
|
-
ClassicSelect
|
|
120
|
+
ClassicSelect,
|
|
121
|
+
Error403Page
|
|
120
122
|
}
|
|
121
123
|
|
|
122
124
|
export default components;
|
|
@@ -171,5 +173,6 @@ export {
|
|
|
171
173
|
ClassicLoading,
|
|
172
174
|
AdvancedSearch,
|
|
173
175
|
PodcastPlaylistInlineList,
|
|
174
|
-
ClassicSelect
|
|
176
|
+
ClassicSelect,
|
|
177
|
+
Error403Page
|
|
175
178
|
};
|
package/package.json
CHANGED
package/src/assets/live.scss
CHANGED
|
@@ -1,39 +1,39 @@
|
|
|
1
1
|
.planned-bg {
|
|
2
|
-
background:
|
|
2
|
+
background: rgb(188, 88, 16);
|
|
3
3
|
}
|
|
4
4
|
.pending-bg {
|
|
5
|
-
background:
|
|
5
|
+
background: rgb(216, 58, 14);
|
|
6
6
|
}
|
|
7
7
|
.recording-bg {
|
|
8
|
-
background:
|
|
8
|
+
background: rgb(233, 12, 12);
|
|
9
9
|
}
|
|
10
10
|
.error-bg {
|
|
11
|
-
background:
|
|
11
|
+
background: rgb(173, 0, 0);
|
|
12
12
|
}
|
|
13
13
|
.debriefing-bg {
|
|
14
|
-
background:
|
|
14
|
+
background: rgb(54, 134, 54);
|
|
15
15
|
}
|
|
16
16
|
.done-bg {
|
|
17
|
-
background:
|
|
17
|
+
background: rgb(42, 117, 218);
|
|
18
18
|
}
|
|
19
19
|
.publishing-bg {
|
|
20
|
-
background:
|
|
20
|
+
background: rgb(112, 112, 112);
|
|
21
21
|
}
|
|
22
22
|
.planned-shadow {
|
|
23
|
-
box-shadow: 0px 12px 48px 6px rgba(
|
|
23
|
+
box-shadow: 0px 12px 48px 6px rgba(188, 88, 16, 0.2);
|
|
24
24
|
}
|
|
25
25
|
.pending-shadow {
|
|
26
|
-
box-shadow: 0px 12px 48px 6px rgba(
|
|
26
|
+
box-shadow: 0px 12px 48px 6px rgba(216, 58, 14, 0.2);
|
|
27
27
|
}
|
|
28
28
|
.recording-shadow {
|
|
29
|
-
box-shadow: 0px 12px 48px 6px rgba(
|
|
29
|
+
box-shadow: 0px 12px 48px 6px rgba(233, 12, 12, 0.2);
|
|
30
30
|
}
|
|
31
31
|
.debriefing-shadow {
|
|
32
|
-
box-shadow: 0px 12px 48px 6px rgba(
|
|
32
|
+
box-shadow: 0px 12px 48px 6px rgba(54, 134, 54, 0.2);
|
|
33
33
|
}
|
|
34
34
|
.publishing-shadow {
|
|
35
|
-
box-shadow: 0px 12px 48px 6px rgba(
|
|
35
|
+
box-shadow: 0px 12px 48px 6px rgba(112, 112, 112, 0.2);
|
|
36
36
|
}
|
|
37
37
|
.error-shadow {
|
|
38
|
-
box-shadow: 0px 12px 48px 6px rgba(
|
|
38
|
+
box-shadow: 0px 12px 48px 6px rgba(173, 0, 0, 0.2);
|
|
39
39
|
}
|
|
@@ -4,12 +4,12 @@
|
|
|
4
4
|
class="d-inline-flex w-100 mb-3 ps-3 pe-3 hide-phone category-list"
|
|
5
5
|
>
|
|
6
6
|
<div
|
|
7
|
-
|
|
7
|
+
ref="categoryListContainer"
|
|
8
8
|
class="category-list-container"
|
|
9
9
|
>
|
|
10
10
|
<button
|
|
11
11
|
v-for="category in categories"
|
|
12
|
-
:
|
|
12
|
+
:ref="'category' + category.id"
|
|
13
13
|
:key="category.id"
|
|
14
14
|
class="category-item text-dark bg-white"
|
|
15
15
|
@click="checkIfFilter(category)"
|
|
@@ -144,14 +144,14 @@ export default defineComponent({
|
|
|
144
144
|
this.$store.commit('filterIab',category);
|
|
145
145
|
},
|
|
146
146
|
resizeWindow(): void {
|
|
147
|
-
const categoryList =
|
|
148
|
-
if(null === categoryList){
|
|
147
|
+
const categoryList = (this.$refs.categoryListContainer as HTMLElement);
|
|
148
|
+
if(null === categoryList ||!categoryList){
|
|
149
149
|
return;
|
|
150
150
|
}
|
|
151
151
|
categoryList.style.justifyContent = 'flex-start';
|
|
152
152
|
this.hidenCategories.length = 0;
|
|
153
153
|
this.categories.forEach((element: Category) => {
|
|
154
|
-
const el =
|
|
154
|
+
const el = (this.$refs['category' + element.id] as Array<HTMLElement>)[0];
|
|
155
155
|
if (!el) return;
|
|
156
156
|
const parent = el.parentElement;
|
|
157
157
|
if (parent && el.offsetLeft + el.clientWidth <= parent.clientWidth - 20) {
|
|
@@ -14,6 +14,7 @@
|
|
|
14
14
|
<img
|
|
15
15
|
v-lazy="emission.imageUrl"
|
|
16
16
|
class="img-box"
|
|
17
|
+
:title="$t('Emission name image', {name:emission.name})"
|
|
17
18
|
>
|
|
18
19
|
<div class="emission-item-text">
|
|
19
20
|
<div
|
|
@@ -27,12 +28,12 @@
|
|
|
27
28
|
>{{ emission.name }}
|
|
28
29
|
</div>
|
|
29
30
|
<div
|
|
30
|
-
|
|
31
|
+
ref="descriptionEmissionContainer"
|
|
31
32
|
class="emission-description htms-wysiwyg-content"
|
|
32
33
|
>
|
|
33
34
|
<!-- eslint-disable vue/no-v-html -->
|
|
34
35
|
<div
|
|
35
|
-
|
|
36
|
+
ref="descriptionEmission"
|
|
36
37
|
v-html="urlify(emission.description|| '')"
|
|
37
38
|
/>
|
|
38
39
|
<!-- eslint-enable -->
|
|
@@ -107,12 +108,8 @@ export default defineComponent({
|
|
|
107
108
|
this.hasPodcast();
|
|
108
109
|
},
|
|
109
110
|
mounted() {
|
|
110
|
-
const emissionDesc =
|
|
111
|
-
|
|
112
|
-
);
|
|
113
|
-
const emissionDescContainer = document.getElementById(
|
|
114
|
-
'description-emission-container-' + this.emission.emissionId
|
|
115
|
-
);
|
|
111
|
+
const emissionDesc = (this.$refs.descriptionEmission as HTMLElement);
|
|
112
|
+
const emissionDescContainer = (this.$refs.descriptionEmissionContainer as HTMLElement);
|
|
116
113
|
if (
|
|
117
114
|
null !== emissionDesc && null !== emissionDescContainer &&
|
|
118
115
|
emissionDesc.clientHeight > emissionDescContainer.clientHeight
|
|
@@ -21,6 +21,7 @@
|
|
|
21
21
|
>
|
|
22
22
|
<img
|
|
23
23
|
v-lazy="emission.imageUrl"
|
|
24
|
+
:title="$t('Emission name image', {name:emission.name})"
|
|
24
25
|
class="img-box rounded-0"
|
|
25
26
|
>
|
|
26
27
|
<div
|
|
@@ -35,12 +36,12 @@
|
|
|
35
36
|
{{ emission.name }}
|
|
36
37
|
</div>
|
|
37
38
|
<div
|
|
38
|
-
|
|
39
|
+
ref="descriptionEmissionContainer"
|
|
39
40
|
class="emission-description html-wysiwyg-content"
|
|
40
41
|
>
|
|
41
42
|
<!-- eslint-disable vue/no-v-html -->
|
|
42
43
|
<div
|
|
43
|
-
|
|
44
|
+
ref="descriptionEmission"
|
|
44
45
|
v-html="urlify(emission.description)"
|
|
45
46
|
/>
|
|
46
47
|
<!-- eslint-enable -->
|
|
@@ -78,12 +79,12 @@
|
|
|
78
79
|
{{ p.title }}
|
|
79
80
|
</div>
|
|
80
81
|
<div
|
|
81
|
-
:
|
|
82
|
+
:ref="'descriptionPodcastContainer'+ p.podcastId"
|
|
82
83
|
class="emission-description html-wysiwyg-content"
|
|
83
84
|
>
|
|
84
85
|
<!-- eslint-disable vue/no-v-html -->
|
|
85
86
|
<div
|
|
86
|
-
:
|
|
87
|
+
:ref="'descriptionPodcast'+ p.podcastId"
|
|
87
88
|
v-html="urlify(p.description)"
|
|
88
89
|
/>
|
|
89
90
|
<!-- eslint-enable -->
|
|
@@ -194,12 +195,8 @@ export default defineComponent({
|
|
|
194
195
|
this.loadPodcasts();
|
|
195
196
|
},
|
|
196
197
|
mounted() {
|
|
197
|
-
const emissionDesc =
|
|
198
|
-
|
|
199
|
-
);
|
|
200
|
-
const emissionDescContainer = document.getElementById(
|
|
201
|
-
'description-emission-container-' + this.emission.emissionId
|
|
202
|
-
);
|
|
198
|
+
const emissionDesc = (this.$refs.descriptionEmission as HTMLElement);
|
|
199
|
+
const emissionDescContainer = (this.$refs.descriptionEmissionContainer as HTMLElement);
|
|
203
200
|
if (
|
|
204
201
|
null !== emissionDesc && null !== emissionDescContainer &&
|
|
205
202
|
emissionDesc.clientHeight > emissionDescContainer.clientHeight
|
|
@@ -220,12 +217,8 @@ export default defineComponent({
|
|
|
220
217
|
this.podcasts = data.result;
|
|
221
218
|
this.$nextTick(() => {
|
|
222
219
|
for (let index = 0, len = this.podcasts.length; index < len; index++) {
|
|
223
|
-
const podcastDesc =
|
|
224
|
-
|
|
225
|
-
);
|
|
226
|
-
const podcastDescContainer = document.getElementById(
|
|
227
|
-
'description-podcast-container-' + this.podcasts[index].podcastId
|
|
228
|
-
);
|
|
220
|
+
const podcastDesc = (this.$refs['descriptionPodcast'+this.podcasts[index].podcastId] as Array<HTMLElement>)[0];
|
|
221
|
+
const podcastDescContainer = (this.$refs['descriptionPodcastContainer'+this.podcasts[index].podcastId] as Array<HTMLElement>)[0];
|
|
229
222
|
if (
|
|
230
223
|
null !== podcastDesc && null !== podcastDescContainer &&
|
|
231
224
|
podcastDesc.clientHeight > podcastDescContainer.clientHeight
|
|
@@ -172,10 +172,10 @@ export default defineComponent({
|
|
|
172
172
|
isTo: false as boolean,
|
|
173
173
|
fromDate: moment().subtract(10, 'days').toISOString() as string,
|
|
174
174
|
toDate: moment().toISOString() as string,
|
|
175
|
-
isNotVisible:
|
|
175
|
+
isNotVisible: this.includeHidden as boolean,
|
|
176
176
|
isNotValidate: false as boolean,
|
|
177
177
|
showFilters: false as boolean,
|
|
178
|
-
sort:
|
|
178
|
+
sort: this.sortCriteria as string,
|
|
179
179
|
};
|
|
180
180
|
},
|
|
181
181
|
|
|
@@ -268,16 +268,6 @@ export default defineComponent({
|
|
|
268
268
|
this.sort = this.sortCriteria;
|
|
269
269
|
},
|
|
270
270
|
},
|
|
271
|
-
|
|
272
|
-
created() {
|
|
273
|
-
if (!this.isEmission) {
|
|
274
|
-
this.isNotVisible = this.includeHidden;
|
|
275
|
-
}
|
|
276
|
-
},
|
|
277
|
-
|
|
278
|
-
mounted() {
|
|
279
|
-
this.sort = this.sortCriteria;
|
|
280
|
-
},
|
|
281
271
|
methods: {
|
|
282
272
|
updateFromDate(): void {
|
|
283
273
|
if (
|
|
@@ -13,6 +13,8 @@
|
|
|
13
13
|
v-if="!!organisationId"
|
|
14
14
|
v-model:textInit="keepOrganisation"
|
|
15
15
|
class="m-3"
|
|
16
|
+
:label="$t('check this box if you want to keep this filter for the rest of your visit')"
|
|
17
|
+
:display-label="false"
|
|
16
18
|
id-checkbox="organisation-checkbox"
|
|
17
19
|
@clickAction="onKeepOrganisation"
|
|
18
20
|
/>
|
|
@@ -136,9 +138,6 @@ export default defineComponent({
|
|
|
136
138
|
async onKeepOrganisation(): Promise<void> {
|
|
137
139
|
if(!this.organisationId){return}
|
|
138
140
|
if (!this.keepOrganisation) {
|
|
139
|
-
if (this.$route.query.productor !== this.organisationId) {
|
|
140
|
-
this.$router.push({ query: { productor: this.organisationId } });
|
|
141
|
-
}
|
|
142
141
|
await this.selectOrganisation(this.organisationId);
|
|
143
142
|
return;
|
|
144
143
|
}
|
|
@@ -66,12 +66,12 @@
|
|
|
66
66
|
{{ live.emission.name }}
|
|
67
67
|
</router-link>
|
|
68
68
|
<div
|
|
69
|
-
|
|
69
|
+
ref="descriptionLiveContainer"
|
|
70
70
|
class="live-description-container html-wysiwyg-content"
|
|
71
71
|
>
|
|
72
72
|
<!-- eslint-disable vue/no-v-html -->
|
|
73
73
|
<div
|
|
74
|
-
|
|
74
|
+
ref="descriptionLive"
|
|
75
75
|
v-html="urlify(description)"
|
|
76
76
|
/>
|
|
77
77
|
<!-- eslint-enable -->
|
|
@@ -251,12 +251,8 @@ export default defineComponent({
|
|
|
251
251
|
if(!this.live){
|
|
252
252
|
return;
|
|
253
253
|
}
|
|
254
|
-
const liveDesc =
|
|
255
|
-
|
|
256
|
-
);
|
|
257
|
-
const liveDescContainer = document.getElementById(
|
|
258
|
-
'description-live-container-' + this.live.podcastId
|
|
259
|
-
);
|
|
254
|
+
const liveDesc = (this.$refs.descriptionLive as HTMLElement);
|
|
255
|
+
const liveDescContainer = (this.$refs.descriptionLiveContainer as HTMLElement);
|
|
260
256
|
if (
|
|
261
257
|
null !== liveDesc && null !== liveDescContainer &&
|
|
262
258
|
liveDesc.clientHeight > liveDescContainer.clientHeight
|
|
@@ -4,29 +4,24 @@
|
|
|
4
4
|
class="default-multiselect-width organisation-chooser-light"
|
|
5
5
|
:style="{ width: width }"
|
|
6
6
|
>
|
|
7
|
-
<
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
>
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
/>
|
|
26
|
-
</template>
|
|
27
|
-
<template v-else>
|
|
28
|
-
{{ organisation.name }}
|
|
29
|
-
</template>
|
|
7
|
+
<select
|
|
8
|
+
:id="'organisation_chooser_light' + page"
|
|
9
|
+
v-model="actual"
|
|
10
|
+
class="mb-0 c-hand border-0"
|
|
11
|
+
@change="onOrganisationSelected"
|
|
12
|
+
>
|
|
13
|
+
<option :value="organisation.id">
|
|
14
|
+
{{ organisation.name }}
|
|
15
|
+
</option>
|
|
16
|
+
<option :value="-1">
|
|
17
|
+
{{ $t('No organisation filter') }}
|
|
18
|
+
</option>
|
|
19
|
+
</select>
|
|
20
|
+
<label
|
|
21
|
+
:for="'organisation_chooser_light' + page"
|
|
22
|
+
class="d-inline"
|
|
23
|
+
:title="$t('select productor')"
|
|
24
|
+
/>
|
|
30
25
|
</div>
|
|
31
26
|
</template>
|
|
32
27
|
|
|
@@ -48,7 +43,6 @@ export default defineComponent({
|
|
|
48
43
|
actual: -1 as number|string,
|
|
49
44
|
organisation: undefined as Organisation|undefined,
|
|
50
45
|
init: false as boolean,
|
|
51
|
-
privateOrganisation: false as boolean
|
|
52
46
|
};
|
|
53
47
|
},
|
|
54
48
|
|
|
@@ -82,7 +76,6 @@ export default defineComponent({
|
|
|
82
76
|
const data = await octopusApi.fetchOrganisation(this.value);
|
|
83
77
|
this.organisation = data;
|
|
84
78
|
this.actual = data.id;
|
|
85
|
-
this.privateOrganisation = "PUBLIC"!==data.privacy;
|
|
86
79
|
this.init = true;
|
|
87
80
|
},
|
|
88
81
|
},
|
|
@@ -14,6 +14,7 @@
|
|
|
14
14
|
>
|
|
15
15
|
<img
|
|
16
16
|
v-lazy="participant.imageUrl"
|
|
17
|
+
:title="$t('Animator image')"
|
|
17
18
|
class="img-box-circle"
|
|
18
19
|
>
|
|
19
20
|
<div class="participant-name">
|
|
@@ -25,12 +26,12 @@
|
|
|
25
26
|
>{{ name }}
|
|
26
27
|
</div>
|
|
27
28
|
<div
|
|
28
|
-
|
|
29
|
+
ref="descriptionParticipantContainer"
|
|
29
30
|
class="participant-description html-wysiwyg-content"
|
|
30
31
|
>
|
|
31
32
|
<!-- eslint-disable vue/no-v-html -->
|
|
32
33
|
<div
|
|
33
|
-
|
|
34
|
+
ref="descriptionParticipant"
|
|
34
35
|
v-html="urlify(participant.description|| '')"
|
|
35
36
|
/>
|
|
36
37
|
<!-- eslint-enable -->
|
|
@@ -106,12 +107,8 @@ export default defineComponent({
|
|
|
106
107
|
this.hasPodcast();
|
|
107
108
|
},
|
|
108
109
|
mounted() {
|
|
109
|
-
const participantDesc =
|
|
110
|
-
|
|
111
|
-
);
|
|
112
|
-
const participantDescContainer = document.getElementById(
|
|
113
|
-
'description-participant-container-' + this.participant.participantId
|
|
114
|
-
);
|
|
110
|
+
const participantDesc = (this.$refs.descriptionParticipant as HTMLElement);
|
|
111
|
+
const participantDescContainer = (this.$refs.descriptionParticipantContainer as HTMLElement);
|
|
115
112
|
if (
|
|
116
113
|
null !== participantDesc && null !==participantDescContainer &&
|
|
117
114
|
participantDesc.clientHeight > participantDescContainer.clientHeight
|
|
@@ -14,6 +14,7 @@
|
|
|
14
14
|
>
|
|
15
15
|
<img
|
|
16
16
|
v-lazy="playlist.imageUrl"
|
|
17
|
+
:title="$t('Playlist name image', {name:name})"
|
|
17
18
|
class="img-box"
|
|
18
19
|
>
|
|
19
20
|
</router-link>
|
|
@@ -35,12 +36,12 @@
|
|
|
35
36
|
>{{ name }}
|
|
36
37
|
</div>
|
|
37
38
|
<div
|
|
38
|
-
|
|
39
|
+
ref="descriptionPlaylistContainer"
|
|
39
40
|
class="emission-description html-wysiwyg-content"
|
|
40
41
|
>
|
|
41
42
|
<!-- eslint-disable vue/no-v-html -->
|
|
42
43
|
<div
|
|
43
|
-
|
|
44
|
+
ref="descriptionPlaylist"
|
|
44
45
|
v-html="urlify(description)"
|
|
45
46
|
/>
|
|
46
47
|
<!-- eslint-enable -->
|
|
@@ -119,12 +120,8 @@ export default defineComponent({
|
|
|
119
120
|
|
|
120
121
|
|
|
121
122
|
mounted() {
|
|
122
|
-
const playlistDesc =
|
|
123
|
-
|
|
124
|
-
);
|
|
125
|
-
const playlistDescContainer = document.getElementById(
|
|
126
|
-
'description-playlist-container-' + this.playlist.playlistId
|
|
127
|
-
);
|
|
123
|
+
const playlistDesc = (this.$refs.descriptionPlaylist as HTMLElement);
|
|
124
|
+
const playlistDescContainer = (this.$refs.descriptionPlaylistContainer as HTMLElement);
|
|
128
125
|
if (
|
|
129
126
|
null !== playlistDesc && null !== playlistDescContainer &&
|
|
130
127
|
playlistDesc.clientHeight > playlistDescContainer.clientHeight
|
|
@@ -17,7 +17,7 @@
|
|
|
17
17
|
@showDescription="showDescription"
|
|
18
18
|
/>
|
|
19
19
|
<div
|
|
20
|
-
|
|
20
|
+
ref="descriptionPodcastContainer"
|
|
21
21
|
class="description-podcast-item html-wysiwyg-content"
|
|
22
22
|
:class="[
|
|
23
23
|
hover && ''!==description ? 'visible' : 'invisible',
|
|
@@ -26,7 +26,7 @@
|
|
|
26
26
|
>
|
|
27
27
|
<!-- eslint-disable vue/no-v-html -->
|
|
28
28
|
<div
|
|
29
|
-
|
|
29
|
+
ref="descriptionPodcast"
|
|
30
30
|
v-html="description"
|
|
31
31
|
/>
|
|
32
32
|
<!-- eslint-enable -->
|
|
@@ -89,13 +89,9 @@ export default defineComponent({
|
|
|
89
89
|
},
|
|
90
90
|
},
|
|
91
91
|
|
|
92
|
-
|
|
93
|
-
const podcastDesc =
|
|
94
|
-
|
|
95
|
-
);
|
|
96
|
-
const podcastDescContainer = document.getElementById(
|
|
97
|
-
'description-podcast-container-' + this.podcast.podcastId
|
|
98
|
-
);
|
|
92
|
+
mounted() {
|
|
93
|
+
const podcastDesc = (this.$refs.descriptionPodcast as HTMLElement);
|
|
94
|
+
const podcastDescContainer = (this.$refs.descriptionPodcastContainer as HTMLElement);
|
|
99
95
|
if (
|
|
100
96
|
null !== podcastDesc && null !== podcastDescContainer &&
|
|
101
97
|
podcastDesc.clientHeight > podcastDescContainer.clientHeight
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
<template>
|
|
2
2
|
<div class="d-inline-flex w-100 mb-3 px-3 hide-phone">
|
|
3
3
|
<div
|
|
4
|
-
|
|
4
|
+
ref="rubriqueListContainer"
|
|
5
|
+
class="rubrique-list-container"
|
|
5
6
|
>
|
|
6
7
|
<select
|
|
7
8
|
v-model="rubriquage"
|
|
@@ -18,7 +19,7 @@
|
|
|
18
19
|
</select>
|
|
19
20
|
<button
|
|
20
21
|
v-for="rubrique in rubriqueDisplay"
|
|
21
|
-
:
|
|
22
|
+
:ref="'rubrique' + rubrique.rubriqueId"
|
|
22
23
|
:key="rubrique.rubriqueId"
|
|
23
24
|
class="rubrique-item bg-white"
|
|
24
25
|
@click="addFilter(rubrique)"
|
|
@@ -150,12 +151,12 @@ export default defineComponent({
|
|
|
150
151
|
this.initRubriques();
|
|
151
152
|
},
|
|
152
153
|
resizeWindow(): void {
|
|
153
|
-
const rubriqueList =
|
|
154
|
+
const rubriqueList = (this.$refs.rubriqueListContainer as HTMLElement);
|
|
154
155
|
if(null === rubriqueList){return}
|
|
155
156
|
rubriqueList.style.justifyContent = 'flex-start';
|
|
156
157
|
this.hidenRubriques.length = 0;
|
|
157
158
|
this.rubriqueDisplay.forEach((element: Rubrique) => {
|
|
158
|
-
const el =
|
|
159
|
+
const el = (this.$refs['rubrique' + element.rubriqueId] as Array<HTMLElement>)[0];
|
|
159
160
|
if (!el) return;
|
|
160
161
|
const parent = el.parentElement;
|
|
161
162
|
if (null !== parent && el.offsetLeft + el.clientWidth <= parent.clientWidth - 20) {
|
|
@@ -180,7 +181,7 @@ export default defineComponent({
|
|
|
180
181
|
|
|
181
182
|
<style lang="scss">
|
|
182
183
|
.octopus-app{
|
|
183
|
-
|
|
184
|
+
.rubrique-list-container {
|
|
184
185
|
display: flex;
|
|
185
186
|
justify-content: flex-start;
|
|
186
187
|
align-items: center;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
<template>
|
|
2
2
|
<div>
|
|
3
|
-
<div class="module-box text-center-mobile">
|
|
3
|
+
<div class="module-box text-center-mobile overflow-visible">
|
|
4
4
|
<h3>{{ $t('Embed') }}</h3>
|
|
5
5
|
<template v-if="!exclusive && (authenticated || notExclusive)">
|
|
6
6
|
<div class="d-flex flex-column align-items-center">
|
|
@@ -9,10 +9,13 @@
|
|
|
9
9
|
type="checkbox"
|
|
10
10
|
class="form-check-input"
|
|
11
11
|
:disabled="isDisabled"
|
|
12
|
+
:title="displayLabel?'':label"
|
|
13
|
+
:data-selenium="selenium"
|
|
12
14
|
@click="emitClickAction"
|
|
13
15
|
>
|
|
14
16
|
<label
|
|
15
17
|
class="form-check-label"
|
|
18
|
+
:class="displayLabel? '': 'd-none'"
|
|
16
19
|
:for="idCheckbox"
|
|
17
20
|
>{{ label }}</label>
|
|
18
21
|
</div>
|
|
@@ -28,7 +31,9 @@ export default defineComponent({
|
|
|
28
31
|
label: { default: '', type: String },
|
|
29
32
|
isDisabled: { default: false, type: Boolean },
|
|
30
33
|
textInit: { default: false, type: Boolean },
|
|
31
|
-
isSwitch:{default:false, type:Boolean}
|
|
34
|
+
isSwitch:{default:false, type:Boolean},
|
|
35
|
+
displayLabel: {default:true, type: Boolean},
|
|
36
|
+
selenium: { default: '', type: String },
|
|
32
37
|
},
|
|
33
38
|
emits: ['update:textInit', 'clickAction'],
|
|
34
39
|
|
|
@@ -1,9 +1,13 @@
|
|
|
1
1
|
<template>
|
|
2
|
-
<div
|
|
2
|
+
<div
|
|
3
|
+
class="d-flex"
|
|
4
|
+
:class="isColumn? 'flex-column':''"
|
|
5
|
+
>
|
|
3
6
|
<div
|
|
4
7
|
v-for="option in options"
|
|
5
8
|
:key="option.title"
|
|
6
9
|
class="form-check"
|
|
10
|
+
:class="isColumn? '':'me-2'"
|
|
7
11
|
>
|
|
8
12
|
<input
|
|
9
13
|
:id="idRadio + option.value"
|
|
@@ -34,6 +38,7 @@ export default defineComponent({
|
|
|
34
38
|
isDisabled: { default: false, type: Boolean },
|
|
35
39
|
options: { default: ()=>[], type: Array as () => Array<{title: string, value: string|undefined}> },
|
|
36
40
|
textInit: { default: undefined, type: String },
|
|
41
|
+
isColumn: {default:true, type:Boolean}
|
|
37
42
|
},
|
|
38
43
|
emits: ['update:textInit'],
|
|
39
44
|
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
<div class="bg-dark">
|
|
3
3
|
<div
|
|
4
4
|
id="footer"
|
|
5
|
+
ref="footer"
|
|
5
6
|
class="d-flex-column p-3 secondary-bg border-top"
|
|
6
7
|
>
|
|
7
8
|
<div class="d-flex flex-column flex-grow-1 align-items-end">
|
|
@@ -191,7 +192,7 @@ export default defineComponent({
|
|
|
191
192
|
|
|
192
193
|
methods: {
|
|
193
194
|
showBlackBorder(hide: boolean): void {
|
|
194
|
-
const footerElement =
|
|
195
|
+
const footerElement = (this.$refs.footer as HTMLElement);
|
|
195
196
|
if(null===footerElement){return}
|
|
196
197
|
if (hide) {
|
|
197
198
|
footerElement.classList.remove('border-round');
|
|
@@ -177,14 +177,11 @@ export default defineComponent({
|
|
|
177
177
|
this.$emit('update:displayMenu', false);
|
|
178
178
|
},
|
|
179
179
|
async onOrganisationSelected(organisation: Organisation|undefined) {
|
|
180
|
-
const queries = this.$route.query;
|
|
181
180
|
if (organisation && organisation.id) {
|
|
182
|
-
if (queries.productor !== organisation.id) {
|
|
183
|
-
this.$router.push({ query: {...queries, ...{productor: organisation.id} } });
|
|
184
|
-
}
|
|
185
181
|
await this.selectOrganisation(organisation.id);
|
|
186
182
|
} else {
|
|
187
183
|
if (this.$route.query.productor) {
|
|
184
|
+
const queries = this.$route.query;
|
|
188
185
|
this.$router.push({ query: {...queries, ...{productor: undefined} } });
|
|
189
186
|
}
|
|
190
187
|
this.$store.commit('filterOrga', { orgaId: undefined });
|
|
@@ -238,15 +238,12 @@ export default defineComponent({
|
|
|
238
238
|
}
|
|
239
239
|
},
|
|
240
240
|
async onOrganisationSelected(organisation: Organisation | undefined): Promise<void> {
|
|
241
|
-
const queries = this.$route.query;
|
|
242
241
|
if (organisation && organisation.id) {
|
|
243
|
-
if (this.$route.query.productor !== organisation.id) {
|
|
244
|
-
this.$router.push({ query: {...queries, ...{productor: organisation.id} } });
|
|
245
|
-
}
|
|
246
242
|
await this.selectOrganisation(organisation.id);
|
|
247
243
|
} else {
|
|
248
244
|
this.organisationId = undefined;
|
|
249
245
|
if (this.$route.query.productor) {
|
|
246
|
+
const queries = this.$route.query;
|
|
250
247
|
this.$router.push({ query: { ...queries, ...{productor: undefined} } });
|
|
251
248
|
}
|
|
252
249
|
this.$store.commit('filterOrga', { orgaId: undefined });
|
|
File without changes
|
|
@@ -23,6 +23,8 @@ export const orgaFilter = defineComponent({
|
|
|
23
23
|
}),
|
|
24
24
|
isLive: isLive
|
|
25
25
|
});
|
|
26
|
+
const queries = this.$route.query;
|
|
27
|
+
this.$router.replace({ query: {...queries, ...{productor: organisationId} } });
|
|
26
28
|
} catch (error) {
|
|
27
29
|
this.handle403((error as AxiosError));
|
|
28
30
|
}
|
|
@@ -51,7 +51,7 @@ export const playerLogic = defineComponent({
|
|
|
51
51
|
this.audioUrlToPlay = this.audioUrl;
|
|
52
52
|
}
|
|
53
53
|
if(!this.podcast){return;}
|
|
54
|
-
const response = await octopusApi.fetchPodcastDownloadUrl("podcast/download/register/"+
|
|
54
|
+
const response = await octopusApi.fetchPodcastDownloadUrl("podcast/download/register/"+ this.audioUrl);
|
|
55
55
|
this.setDownloadId(response.downloadId.toString());
|
|
56
56
|
this.audioUrlToPlay = response.location;
|
|
57
57
|
},
|
|
@@ -23,6 +23,7 @@
|
|
|
23
23
|
:is-search-bar="isProductorSearch"
|
|
24
24
|
:sort-criteria="sortEmission"
|
|
25
25
|
:organisation-id="organisationId"
|
|
26
|
+
:includeHidden="includeHidden"
|
|
26
27
|
@updateCategory="updateCategory"
|
|
27
28
|
@updateRubriquageFilter="updateRubriquageFilter"
|
|
28
29
|
@updateMonetization="updateMonetization"
|
|
@@ -43,7 +44,6 @@
|
|
|
43
44
|
:sort="sortEmission"
|
|
44
45
|
:include-hidden="includeHidden"
|
|
45
46
|
:iab-id="iabId"
|
|
46
|
-
|
|
47
47
|
:rubrique-id="rubriqueId"
|
|
48
48
|
:rubriquage-id="rubriquageId"
|
|
49
49
|
:no-rubriquage-id="noRubriquageId"
|
|
@@ -106,6 +106,28 @@ export default defineComponent({
|
|
|
106
106
|
titlePage(): string|undefined {
|
|
107
107
|
return state.emissionsPage.titlePage;
|
|
108
108
|
},
|
|
109
|
+
authenticated(): boolean {
|
|
110
|
+
return (state.generalParameters.authenticated as boolean);
|
|
111
|
+
},
|
|
112
|
+
myOrganisationId(): string|undefined {
|
|
113
|
+
return state.generalParameters.organisationId;
|
|
114
|
+
},
|
|
115
|
+
organisationRight(): boolean {
|
|
116
|
+
if (
|
|
117
|
+
(this.authenticated && this.myOrganisationId === this.organisationId) ||
|
|
118
|
+
state.generalParameters.isAdmin
|
|
119
|
+
)
|
|
120
|
+
return true;
|
|
121
|
+
return false;
|
|
122
|
+
},
|
|
123
|
+
filterOrga(): string|undefined {
|
|
124
|
+
return this.$store.state.filter.organisationId;
|
|
125
|
+
},
|
|
126
|
+
organisation(): string|undefined {
|
|
127
|
+
if (this.organisationId) return this.organisationId;
|
|
128
|
+
if (this.filterOrga) return this.filterOrga;
|
|
129
|
+
return undefined;
|
|
130
|
+
},
|
|
109
131
|
},
|
|
110
132
|
|
|
111
133
|
created() {
|
|
@@ -117,6 +139,9 @@ export default defineComponent({
|
|
|
117
139
|
} else if (this.$store.state.filter.organisationId) {
|
|
118
140
|
this.organisationId = this.$store.state.filter.organisationId;
|
|
119
141
|
}
|
|
142
|
+
if (this.organisation && this.organisationRight) {
|
|
143
|
+
this.includeHidden = true;
|
|
144
|
+
}
|
|
120
145
|
if(this.rubriqueFilter.length){
|
|
121
146
|
this.updateRubriquageFilter(this.rubriqueFilter);
|
|
122
147
|
}
|
|
@@ -35,6 +35,7 @@
|
|
|
35
35
|
:reset-rubriquage="resetRubriquage"
|
|
36
36
|
:is-search-bar="isProductorSearch"
|
|
37
37
|
:sort-criteria="sortCriteria"
|
|
38
|
+
:includeHidden="includeHidden"
|
|
38
39
|
:organisation-id="organisationId"
|
|
39
40
|
@updateCategory="updateCategory"
|
|
40
41
|
@updateRubriquageFilter="updateRubriquageFilter"
|
package/src/locale/en.ts
CHANGED
|
@@ -70,7 +70,7 @@ export default{
|
|
|
70
70
|
'Episode name image': "Episode {name} image",
|
|
71
71
|
'More episodes of this emission': "More episodes from this series",
|
|
72
72
|
'More episodes of this category : {name}': "More episodes from this category : {name}",
|
|
73
|
-
'All podcast emission button': "All
|
|
73
|
+
'All podcast emission button': "All podcasts from this series",
|
|
74
74
|
Duration: 'Duration : {duration}',
|
|
75
75
|
Animator: 'Host',
|
|
76
76
|
'No category filter': 'No category filter',
|