@saooti/octopus-sdk 30.0.4 → 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 +5 -0
- package/index.ts +13 -2
- package/package.json +1 -1
- package/src/App.vue +4 -4
- package/src/api/comments.ts +1 -1
- package/src/assets/bootstrap-diff.scss +2 -1
- package/src/assets/form.scss +7 -15
- package/src/assets/general.scss +14 -20
- package/src/assets/multiselect.scss +2 -2
- package/src/assets/share.scss +1 -12
- package/src/components/display/categories/CategoryChooser.vue +1 -1
- package/src/components/display/categories/CategoryFilter.vue +4 -4
- package/src/components/display/categories/CategoryList.vue +1 -1
- package/src/components/display/comments/CommentInput.vue +3 -3
- package/src/components/display/comments/CommentItem.vue +4 -3
- package/src/components/display/comments/CommentList.vue +4 -4
- package/src/components/display/comments/CommentParentInfo.vue +1 -1
- package/src/components/display/comments/CommentPlayer.vue +2 -2
- package/src/components/display/comments/CommentSection.vue +3 -3
- package/src/components/display/edit/EditBox.vue +1 -1
- package/src/components/display/edit/EditCommentBox.vue +1 -1
- package/src/components/display/emission/EmissionChooser.vue +2 -2
- package/src/components/display/emission/EmissionInlineList.vue +3 -3
- package/src/components/display/emission/EmissionItem.vue +3 -3
- package/src/components/display/emission/EmissionList.vue +4 -4
- package/src/components/display/emission/EmissionPlayerItem.vue +3 -3
- package/src/components/display/filter/AdvancedSearch.vue +40 -106
- package/src/components/display/filter/CategoryFilter.vue +10 -14
- package/src/components/display/filter/MonetizableFilter.vue +1 -1
- package/src/components/display/filter/ProductorSearch.vue +21 -40
- package/src/components/display/filter/RubriqueChoice.vue +4 -4
- package/src/components/display/filter/RubriqueFilter.vue +10 -14
- package/src/components/display/live/LiveHorizontalList.vue +1 -1
- package/src/components/display/live/LiveItem.vue +2 -2
- package/src/components/display/live/LiveList.vue +1 -1
- package/src/components/display/organisation/OrganisationChooser.vue +1 -1
- package/src/components/display/organisation/OrganisationChooserLight.vue +9 -3
- package/src/components/display/participant/ParticipantItem.vue +1 -1
- package/src/components/display/participant/ParticipantList.vue +1 -1
- package/src/components/display/playlist/PlaylistItem.vue +2 -2
- package/src/components/display/playlist/PlaylistList.vue +1 -1
- package/src/components/display/playlist/PodcastList.vue +10 -21
- package/src/components/display/podcasts/AnimatorsItem.vue +1 -1
- package/src/components/display/podcasts/ParticipantDescription.vue +2 -1
- package/src/components/display/podcasts/PodcastFilterList.vue +11 -20
- package/src/components/display/podcasts/PodcastImage.vue +3 -3
- package/src/components/display/podcasts/PodcastInlineList.vue +3 -3
- package/src/components/display/podcasts/PodcastItem.vue +3 -3
- package/src/components/display/podcasts/PodcastList.vue +2 -2
- package/src/components/display/podcasts/PodcastModuleBox.vue +2 -2
- package/src/components/display/rubriques/RubriqueChooser.vue +1 -1
- package/src/components/display/rubriques/RubriqueList.vue +4 -4
- package/src/components/display/sharing/PlayerParameters.vue +31 -103
- package/src/components/display/sharing/ShareButtons.vue +3 -3
- package/src/components/display/sharing/ShareDistribution.vue +1 -1
- package/src/components/display/sharing/SharePlayer.vue +35 -51
- package/src/components/display/sharing/SharePlayerColors.vue +2 -2
- package/src/components/display/sharing/SharePlayerTypes.vue +5 -5
- package/src/components/display/sharing/SubscribeButtons.vue +2 -2
- 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 +28 -37
- package/src/components/misc/HomeDropdown.vue +44 -93
- package/src/components/misc/LeftMenu.vue +111 -144
- package/src/components/misc/Player.vue +16 -30
- package/src/components/misc/PlayerButtons.vue +16 -39
- package/src/components/misc/PlayerClockAndTimeline.vue +1 -1
- package/src/components/misc/PlayerProgressBar.vue +16 -51
- package/src/components/misc/Popover.vue +8 -2
- package/src/components/misc/TopBar.vue +142 -224
- package/src/components/misc/modal/ClipboardModal.vue +1 -1
- package/src/components/misc/modal/NewsletterModal.vue +15 -29
- package/src/components/misc/modal/QrCodeModal.vue +2 -2
- package/src/components/misc/modal/ShareModalPlayer.vue +1 -1
- package/src/components/mixins/init.ts +1 -1
- package/src/components/mixins/organisationFilter.ts +1 -1
- package/src/components/pages/Category.vue +4 -9
- package/src/components/pages/Emission.vue +13 -25
- package/src/components/pages/Emissions.vue +10 -19
- package/src/components/pages/Home.vue +5 -7
- package/src/components/pages/Lives.vue +3 -5
- package/src/components/pages/Participant.vue +19 -27
- package/src/components/pages/Participants.vue +7 -15
- package/src/components/pages/Playlist.vue +17 -30
- package/src/components/pages/Playlists.vue +1 -11
- package/src/components/pages/Podcast.vue +20 -34
- package/src/components/pages/Podcasts.vue +12 -26
- package/src/components/pages/Search.vue +26 -64
- package/src/store/class/{adserverConfig.ts → adserver/adserverConfig.ts} +0 -0
- package/src/store/class/adserver/adserverOtherEmission.ts +13 -0
- package/src/store/class/{adserverTiming.ts → adserver/adserverTiming.ts} +0 -0
- package/src/store/class/cartouchier/cartouche.ts +15 -0
- package/src/store/class/cartouchier/cartouchier.ts +9 -0
- package/src/store/class/conference/conference.ts +35 -0
- package/src/store/class/conference/conferenceMessage.ts +10 -0
- package/src/store/class/conference/conferenceParticipant.ts +18 -0
- package/src/store/class/conference/pad.ts +15 -0
- package/src/store/class/conference/studioCall.ts +7 -0
- package/src/store/class/contract/contract.ts +7 -0
- package/src/store/class/contract/contractOrganisation.ts +7 -0
- package/src/store/class/ftp/ftpEmission.ts +41 -0
- package/src/store/class/ftp/ftpParam.ts +12 -0
- package/src/store/class/ftp/testFtpEmission.ts +5 -0
- package/src/store/class/general/audioView.ts +21 -0
- package/src/store/class/{category.ts → general/category.ts} +1 -1
- package/src/store/class/general/comment.ts +16 -0
- package/src/store/class/general/customPlayer.ts +8 -0
- package/src/store/class/{emission.ts → general/emission.ts} +2 -2
- package/src/store/class/general/fetchParam.ts +33 -0
- package/src/store/class/general/initState.ts +25 -0
- package/src/store/class/general/ituneCategory.ts +5 -0
- package/src/store/class/general/media.ts +14 -0
- package/src/store/class/general/organisation.ts +19 -0
- package/src/store/class/general/pageable.ts +13 -0
- package/src/store/class/{participant.ts → general/participant.ts} +0 -0
- package/src/store/class/{player.ts → general/player.ts} +0 -0
- package/src/store/class/{playlist.ts → general/playlist.ts} +2 -2
- package/src/store/class/{podcast.ts → general/podcast.ts} +2 -1
- package/src/store/class/general/sortPageable.ts +5 -0
- package/src/store/class/general/soundcastCategory.ts +8 -0
- package/src/store/class/ouestFrance/ofTag.ts +36 -0
- package/src/store/class/ouestFrance/ofTagInfo.ts +9 -0
- package/src/store/class/ouestFrance/ofTagPage.ts +7 -0
- package/src/store/class/ouestFrance/ofTagSeo.ts +7 -0
- package/src/store/class/ouestFrance/ofTagVente.ts +6 -0
- package/src/store/class/ouestFrance/ofTagWithParents.ts +26 -0
- package/src/store/class/rss/aggregator.ts +28 -0
- package/src/store/class/rss/rssEmission.ts +14 -0
- package/src/store/class/rss/rssInfo.ts +8 -0
- package/src/store/class/{rubriquage.ts → rubrique/rubriquage.ts} +0 -0
- package/src/store/class/rubrique/rubriquageFilter.ts +6 -0
- package/src/store/class/rubrique/rubrique.ts +8 -0
- package/src/store/class/stat/statArrayIncome.ts +6 -0
- package/src/store/class/stat/statArrayObject.ts +34 -0
- package/src/store/class/stat/statGraph.ts +7 -0
- package/src/store/class/{person.ts → user/person.ts} +2 -2
- package/src/store/class/user/profile.ts +12 -0
- package/src/store/class/user/userKeycloak.ts +24 -0
- package/src/store/paramStore.ts +1 -1
- package/src/store/typeAppStore.ts +10 -10
- package/src/store/class/comment.ts +0 -16
- package/src/store/class/conference.ts +0 -31
- package/src/store/class/customPlayer.ts +0 -8
- package/src/store/class/fetchParam.ts +0 -33
- package/src/store/class/media.ts +0 -14
- package/src/store/class/organisation.ts +0 -19
- package/src/store/class/rubriquageFilter.ts +0 -6
- package/src/store/class/rubrique.ts +0 -9
|
@@ -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
|
|
|
@@ -112,8 +100,8 @@
|
|
|
112
100
|
import octopusApi from '@saooti/octopus-api';
|
|
113
101
|
import { state } from '../../store/paramStore';
|
|
114
102
|
import { displayMethods } from '../mixins/functions';
|
|
115
|
-
import { Emission } from '@/store/class/emission';
|
|
116
|
-
|
|
103
|
+
import { Emission } from '@/store/class/general/emission';
|
|
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,9 +55,8 @@
|
|
|
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
|
-
import {
|
|
58
|
-
import { RubriquageFilter } from '@/store/class/rubriquageFilter';
|
|
58
|
+
import { Category } from '@/store/class/general/category';
|
|
59
|
+
import { RubriquageFilter } from '@/store/class/rubrique/rubriquageFilter';
|
|
59
60
|
import { defineComponent, defineAsyncComponent } from 'vue';
|
|
60
61
|
const ProductorSearch = defineAsyncComponent(() => import('../display/filter/ProductorSearch.vue'));
|
|
61
62
|
export default defineComponent({
|
|
@@ -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>
|
|
@@ -39,11 +39,11 @@
|
|
|
39
39
|
import PodcastInlineList from '../display/podcasts/PodcastInlineList.vue';
|
|
40
40
|
import { state } from '../../store/paramStore';
|
|
41
41
|
|
|
42
|
-
import { RubriquageFilter } from '@/store/class/rubriquageFilter';
|
|
43
|
-
import { Rubriquage } from '@/store/class/rubriquage';
|
|
44
|
-
import { Rubrique } from '@/store/class/rubrique';
|
|
42
|
+
import { RubriquageFilter } from '@/store/class/rubrique/rubriquageFilter';
|
|
43
|
+
import { Rubriquage } from '@/store/class/rubrique/rubriquage';
|
|
44
|
+
import { Rubrique } from '@/store/class/rubrique/rubrique';
|
|
45
45
|
import { defineComponent } from 'vue'
|
|
46
|
-
import { Category } from '@/store/class/category';
|
|
46
|
+
import { Category } from '@/store/class/general/category';
|
|
47
47
|
export default defineComponent({
|
|
48
48
|
name: 'Home',
|
|
49
49
|
|
|
@@ -107,6 +107,4 @@ export default defineComponent({
|
|
|
107
107
|
},
|
|
108
108
|
}
|
|
109
109
|
})
|
|
110
|
-
</script>
|
|
111
|
-
|
|
112
|
-
<style lang="scss"></style>
|
|
110
|
+
</script>
|
|
@@ -35,9 +35,9 @@
|
|
|
35
35
|
<script lang="ts">
|
|
36
36
|
import { state } from '../../store/paramStore';
|
|
37
37
|
|
|
38
|
-
import { Organisation } from '@/store/class/organisation';
|
|
38
|
+
import { Organisation } from '@/store/class/general/organisation';
|
|
39
39
|
import { defineComponent, defineAsyncComponent } from 'vue';
|
|
40
|
-
import { Conference } from '@/store/class/conference';
|
|
40
|
+
import { Conference } from '@/store/class/conference/conference';
|
|
41
41
|
const LiveList = defineAsyncComponent(() => import('../display/live/LiveList.vue'));
|
|
42
42
|
const OrganisationChooser = defineAsyncComponent(() => import('../display/organisation/OrganisationChooser.vue'));
|
|
43
43
|
export default defineComponent({
|
|
@@ -99,6 +99,4 @@ export default defineComponent({
|
|
|
99
99
|
},
|
|
100
100
|
},
|
|
101
101
|
})
|
|
102
|
-
</script>
|
|
103
|
-
|
|
104
|
-
<style lang="scss"></style>
|
|
102
|
+
</script>
|
|
@@ -1,17 +1,18 @@
|
|
|
1
1
|
<template>
|
|
2
|
-
<div>
|
|
2
|
+
<div class="page-box">
|
|
3
3
|
<div
|
|
4
4
|
v-if="loaded && !error"
|
|
5
|
-
class="page-box intervenant-page"
|
|
6
5
|
>
|
|
7
|
-
<h1
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
6
|
+
<h1>
|
|
7
|
+
<template v-if="undefined === titlePage ||!lightStyle">
|
|
8
|
+
{{ $t('Animator') }}
|
|
9
|
+
</template>
|
|
10
|
+
<template v-else>
|
|
11
|
+
{{ titlePage }}
|
|
12
|
+
</template>
|
|
12
13
|
</h1>
|
|
13
14
|
<div
|
|
14
|
-
class="d-flex
|
|
15
|
+
class="d-flex flex-column align-items-center"
|
|
15
16
|
>
|
|
16
17
|
<div
|
|
17
18
|
class="img-box-circle mb-3"
|
|
@@ -24,7 +25,7 @@
|
|
|
24
25
|
</h2>
|
|
25
26
|
<!-- eslint-disable vue/no-v-html -->
|
|
26
27
|
<div
|
|
27
|
-
class="
|
|
28
|
+
class="participant-desc html-wysiwyg-content"
|
|
28
29
|
v-html="urlify(description)"
|
|
29
30
|
/>
|
|
30
31
|
<!-- eslint-enable -->
|
|
@@ -71,21 +72,10 @@
|
|
|
71
72
|
:reload="reload"
|
|
72
73
|
/>
|
|
73
74
|
</div>
|
|
74
|
-
<
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
<div class="spinner-border me-3" />
|
|
79
|
-
<h3 class="mt-2">
|
|
80
|
-
{{ $t('Loading content ...') }}
|
|
81
|
-
</h3>
|
|
82
|
-
</div>
|
|
83
|
-
<div
|
|
84
|
-
v-if="error"
|
|
85
|
-
class="text-center"
|
|
86
|
-
>
|
|
87
|
-
<h3>{{ $t("Animator doesn't exist") }}</h3>
|
|
88
|
-
</div>
|
|
75
|
+
<ClassicLoading
|
|
76
|
+
:loading-text="!loaded?$t('Loading content ...'):undefined"
|
|
77
|
+
:error-text="error?$t(`Animator doesn't exist`):undefined"
|
|
78
|
+
/>
|
|
89
79
|
</div>
|
|
90
80
|
</template>
|
|
91
81
|
|
|
@@ -93,8 +83,8 @@
|
|
|
93
83
|
import octopusApi from '@saooti/octopus-api';
|
|
94
84
|
import { state } from '../../store/paramStore';
|
|
95
85
|
import { displayMethods } from '../mixins/functions';
|
|
96
|
-
import { Participant } from '@/store/class/participant';
|
|
97
|
-
|
|
86
|
+
import { Participant } from '@/store/class/general/participant';
|
|
87
|
+
import ClassicLoading from '../form/ClassicLoading.vue';
|
|
98
88
|
import { defineComponent, defineAsyncComponent } from 'vue';
|
|
99
89
|
const ShareButtons = defineAsyncComponent(() => import('../display/sharing/ShareButtons.vue'));
|
|
100
90
|
const PodcastFilterList = defineAsyncComponent(() => import('../display/podcasts/PodcastFilterList.vue'));
|
|
@@ -106,6 +96,7 @@ export default defineComponent({
|
|
|
106
96
|
PodcastFilterList,
|
|
107
97
|
EditBox,
|
|
108
98
|
PodcastList,
|
|
99
|
+
ClassicLoading
|
|
109
100
|
},
|
|
110
101
|
mixins: [displayMethods],
|
|
111
102
|
props: {
|
|
@@ -165,8 +156,9 @@ export default defineComponent({
|
|
|
165
156
|
(this.authenticated &&
|
|
166
157
|
this.organisationId === this.participant.orga.id) ||
|
|
167
158
|
state.generalParameters.isAdmin
|
|
168
|
-
)
|
|
159
|
+
){
|
|
169
160
|
return true;
|
|
161
|
+
}
|
|
170
162
|
return false;
|
|
171
163
|
},
|
|
172
164
|
},
|
|
@@ -1,10 +1,12 @@
|
|
|
1
1
|
<template>
|
|
2
2
|
<div class="page-box">
|
|
3
3
|
<h1 v-if="undefined === titlePage">
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
4
|
+
<template v-if="undefined === titlePage">
|
|
5
|
+
{{ $t('All participants') }}
|
|
6
|
+
</template>
|
|
7
|
+
<template v-else>
|
|
8
|
+
{{ titlePage }}
|
|
9
|
+
</template>
|
|
8
10
|
</h1>
|
|
9
11
|
<ProductorSearch
|
|
10
12
|
:organisation-id="organisationId"
|
|
@@ -34,8 +36,6 @@ export default defineComponent({
|
|
|
34
36
|
ParticipantList,
|
|
35
37
|
},
|
|
36
38
|
props: {
|
|
37
|
-
firstRoute: { default: 0, type: Number},
|
|
38
|
-
sizeRoute: { default: 12, type: Number},
|
|
39
39
|
productor: { default: undefined, type: String},
|
|
40
40
|
},
|
|
41
41
|
|
|
@@ -55,12 +55,6 @@ export default defineComponent({
|
|
|
55
55
|
},
|
|
56
56
|
|
|
57
57
|
created() {
|
|
58
|
-
if (this.firstRoute) {
|
|
59
|
-
this.first = this.firstRoute;
|
|
60
|
-
}
|
|
61
|
-
if (this.sizeRoute) {
|
|
62
|
-
this.size = this.sizeRoute;
|
|
63
|
-
}
|
|
64
58
|
if (this.productor) {
|
|
65
59
|
this.organisationId = this.productor;
|
|
66
60
|
} else if (this.$store.state.filter.organisationId) {
|
|
@@ -77,6 +71,4 @@ export default defineComponent({
|
|
|
77
71
|
},
|
|
78
72
|
},
|
|
79
73
|
})
|
|
80
|
-
</script>
|
|
81
|
-
|
|
82
|
-
<style lang="scss"></style>
|
|
74
|
+
</script>
|
|
@@ -1,16 +1,15 @@
|
|
|
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>{{ $t('Playlist') }}</h1>
|
|
8
7
|
<div class="d-flex">
|
|
9
|
-
<div class="d-flex flex-column flex-grow">
|
|
8
|
+
<div class="d-flex flex-column flex-grow-1">
|
|
10
9
|
<EditBox
|
|
11
10
|
v-if="editRight && isEditBox"
|
|
12
11
|
:playlist="playlist"
|
|
13
|
-
:is-ready="
|
|
12
|
+
:is-ready="true"
|
|
14
13
|
/>
|
|
15
14
|
<div class="module-box">
|
|
16
15
|
<h2>{{ name }}</h2>
|
|
@@ -29,7 +28,7 @@
|
|
|
29
28
|
</div>
|
|
30
29
|
</div>
|
|
31
30
|
</div>
|
|
32
|
-
<div class="d-flex flex-column
|
|
31
|
+
<div class="d-flex flex-column flex-grow-mobile">
|
|
33
32
|
<SharePlayer
|
|
34
33
|
v-if="isSharePlayer && authenticated"
|
|
35
34
|
:playlist="playlist"
|
|
@@ -41,30 +40,20 @@
|
|
|
41
40
|
</div>
|
|
42
41
|
<PodcastList :playlist="playlist" />
|
|
43
42
|
</div>
|
|
44
|
-
<
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
<div class="spinner-border me-3" />
|
|
49
|
-
<h3 class="mt-2">
|
|
50
|
-
{{ $t('Loading content ...') }}
|
|
51
|
-
</h3>
|
|
52
|
-
</div>
|
|
53
|
-
<div
|
|
54
|
-
v-if="error"
|
|
55
|
-
class="text-center"
|
|
56
|
-
>
|
|
57
|
-
<h3>{{ $t("Playlist doesn't exist") }}</h3>
|
|
58
|
-
</div>
|
|
43
|
+
<ClassicLoading
|
|
44
|
+
:loading-text="!loaded?$t('Loading content ...'):undefined"
|
|
45
|
+
:error-text="error?$t(`Playlist doesn't exist`):undefined"
|
|
46
|
+
/>
|
|
59
47
|
</div>
|
|
60
48
|
</template>
|
|
61
49
|
|
|
62
50
|
<script lang="ts">
|
|
51
|
+
import ClassicLoading from '../form/ClassicLoading.vue';
|
|
63
52
|
import PodcastList from '../display/playlist/PodcastList.vue';
|
|
64
53
|
import octopusApi from '@saooti/octopus-api';
|
|
65
54
|
import { state } from '../../store/paramStore';
|
|
66
55
|
import { displayMethods } from '../mixins/functions';
|
|
67
|
-
import { Playlist } from '@/store/class/playlist';
|
|
56
|
+
import { Playlist } from '@/store/class/general/playlist';
|
|
68
57
|
import { defineComponent, defineAsyncComponent } from 'vue';
|
|
69
58
|
const ShareButtons = defineAsyncComponent(() => import('../display/sharing/ShareButtons.vue'));
|
|
70
59
|
const EditBox = defineAsyncComponent(() => import('@/components/display/edit/EditBox.vue'));
|
|
@@ -75,6 +64,7 @@ export default defineComponent({
|
|
|
75
64
|
EditBox,
|
|
76
65
|
PodcastList,
|
|
77
66
|
SharePlayer,
|
|
67
|
+
ClassicLoading
|
|
78
68
|
},
|
|
79
69
|
mixins:[displayMethods],
|
|
80
70
|
props: {
|
|
@@ -88,7 +78,6 @@ export default defineComponent({
|
|
|
88
78
|
loaded: false as boolean,
|
|
89
79
|
playlist: undefined as Playlist | undefined,
|
|
90
80
|
error: false as boolean,
|
|
91
|
-
isReady: true as boolean,
|
|
92
81
|
};
|
|
93
82
|
},
|
|
94
83
|
|
|
@@ -123,15 +112,14 @@ export default defineComponent({
|
|
|
123
112
|
(state.generalParameters.isPlaylist && this.playlist &&
|
|
124
113
|
this.organisationId === this.playlist.organisation.id) ||
|
|
125
114
|
state.generalParameters.isAdmin
|
|
126
|
-
)
|
|
115
|
+
){
|
|
127
116
|
return true;
|
|
117
|
+
}
|
|
128
118
|
return false;
|
|
129
119
|
},
|
|
130
120
|
},
|
|
131
121
|
watch: {
|
|
132
122
|
playlistId() {
|
|
133
|
-
this.loaded = false;
|
|
134
|
-
this.error = false;
|
|
135
123
|
this.getPlaylistDetails();
|
|
136
124
|
},
|
|
137
125
|
},
|
|
@@ -142,17 +130,16 @@ export default defineComponent({
|
|
|
142
130
|
methods: {
|
|
143
131
|
async getPlaylistDetails(): Promise<void> {
|
|
144
132
|
try {
|
|
133
|
+
this.loaded = false;
|
|
134
|
+
this.error = false;
|
|
145
135
|
const data: Playlist = await octopusApi.fetchPlaylist(this.playlistId ? this.playlistId.toString(): "");
|
|
146
136
|
this.playlist = data;
|
|
147
137
|
this.$emit('playlistTitle', this.playlist.title);
|
|
148
|
-
this.loaded = true;
|
|
149
138
|
} catch {
|
|
150
139
|
this.error = true;
|
|
151
|
-
this.loaded = true;
|
|
152
140
|
}
|
|
141
|
+
this.loaded = true;
|
|
153
142
|
},
|
|
154
143
|
},
|
|
155
144
|
})
|
|
156
|
-
</script>
|
|
157
|
-
|
|
158
|
-
<style lang="scss"></style>
|
|
145
|
+
</script>
|
|
@@ -39,8 +39,6 @@ export default defineComponent({
|
|
|
39
39
|
PlaylistList,
|
|
40
40
|
},
|
|
41
41
|
props: {
|
|
42
|
-
firstRoute: { default: 0, type: Number},
|
|
43
|
-
sizeRoute: { default: 12, type: Number},
|
|
44
42
|
productor: { default: undefined, type: String},
|
|
45
43
|
},
|
|
46
44
|
|
|
@@ -67,12 +65,6 @@ export default defineComponent({
|
|
|
67
65
|
},
|
|
68
66
|
|
|
69
67
|
created() {
|
|
70
|
-
if (this.firstRoute) {
|
|
71
|
-
this.first = this.firstRoute;
|
|
72
|
-
}
|
|
73
|
-
if (this.sizeRoute) {
|
|
74
|
-
this.size = this.sizeRoute;
|
|
75
|
-
}
|
|
76
68
|
if (this.productor) {
|
|
77
69
|
this.organisationId = this.productor;
|
|
78
70
|
} else if (this.$store.state.filter.organisationId) {
|
|
@@ -88,6 +80,4 @@ export default defineComponent({
|
|
|
88
80
|
},
|
|
89
81
|
},
|
|
90
82
|
})
|
|
91
|
-
</script>
|
|
92
|
-
|
|
93
|
-
<style lang="scss"></style>
|
|
83
|
+
</script>
|
|
@@ -1,9 +1,6 @@
|
|
|
1
1
|
<template>
|
|
2
|
-
<div>
|
|
3
|
-
<
|
|
4
|
-
v-if="loaded && !error"
|
|
5
|
-
class="page-box"
|
|
6
|
-
>
|
|
2
|
+
<div class="page-box">
|
|
3
|
+
<template v-if="loaded && !error">
|
|
7
4
|
<h1 v-if="!isOuestFrance">
|
|
8
5
|
{{ titlePage }}
|
|
9
6
|
</h1>
|
|
@@ -20,7 +17,7 @@
|
|
|
20
17
|
!isNotRecorded &&
|
|
21
18
|
isOctopusAndAnimator
|
|
22
19
|
"
|
|
23
|
-
class="module-box text-center-mobile flex-
|
|
20
|
+
class="module-box text-center-mobile flex-grow-0"
|
|
24
21
|
:podcast="podcast"
|
|
25
22
|
:live="true"
|
|
26
23
|
:recording="fetchConference"
|
|
@@ -30,7 +27,7 @@
|
|
|
30
27
|
<EditBox
|
|
31
28
|
v-else-if="editRight && isEditBox"
|
|
32
29
|
:podcast="podcast"
|
|
33
|
-
:is-ready="
|
|
30
|
+
:is-ready="true"
|
|
34
31
|
@validatePodcast="updatePodcast"
|
|
35
32
|
/>
|
|
36
33
|
<PodcastModuleBox
|
|
@@ -44,8 +41,8 @@
|
|
|
44
41
|
/>
|
|
45
42
|
</div>
|
|
46
43
|
<div
|
|
47
|
-
class="d-flex flex-column
|
|
48
|
-
:class="authenticated || notExclusive ? 'flex-grow' : ''"
|
|
44
|
+
class="d-flex flex-column flex-grow-mobile"
|
|
45
|
+
:class="authenticated || notExclusive ? 'flex-grow-1' : ''"
|
|
49
46
|
>
|
|
50
47
|
<SharePlayer
|
|
51
48
|
v-if="isSharePlayer && (authenticated || notExclusive)"
|
|
@@ -85,39 +82,29 @@
|
|
|
85
82
|
:button-text="$t('All podcast button', { name: c.name })"
|
|
86
83
|
/>
|
|
87
84
|
</template>
|
|
88
|
-
</
|
|
89
|
-
<
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
<div class="spinner-border me-3" />
|
|
94
|
-
<h3 class="mt-2">
|
|
95
|
-
{{ $t('Loading content ...') }}
|
|
96
|
-
</h3>
|
|
97
|
-
</div>
|
|
98
|
-
<div
|
|
99
|
-
v-if="error"
|
|
100
|
-
class="text-center"
|
|
101
|
-
>
|
|
102
|
-
<h3>{{ $t("Podcast doesn't exist") }}</h3>
|
|
103
|
-
</div>
|
|
85
|
+
</template>
|
|
86
|
+
<ClassicLoading
|
|
87
|
+
:loading-text="!loaded?$t('Loading content ...'):undefined"
|
|
88
|
+
:error-text="error?$t(`Podcast doesn't exist`):undefined"
|
|
89
|
+
/>
|
|
104
90
|
</div>
|
|
105
91
|
</template>
|
|
106
92
|
|
|
107
93
|
<script lang="ts">
|
|
108
94
|
import PodcastInlineList from '../display/podcasts/PodcastInlineList.vue';
|
|
109
95
|
import PodcastModuleBox from '../display/podcasts/PodcastModuleBox.vue';
|
|
96
|
+
import ClassicLoading from '../form/ClassicLoading.vue';
|
|
110
97
|
import octopusApi from '@saooti/octopus-api';
|
|
111
98
|
import studioApi from '@/api/studio';
|
|
112
99
|
import { state } from '../../store/paramStore';
|
|
113
100
|
import moment from 'moment';
|
|
114
|
-
import { Podcast } from '@/store/class/podcast';
|
|
115
|
-
import { Conference } from '@/store/class/conference';
|
|
101
|
+
import { Podcast } from '@/store/class/general/podcast';
|
|
102
|
+
import { Conference } from '@/store/class/conference/conference';
|
|
116
103
|
|
|
117
104
|
import { defineComponent, defineAsyncComponent } from 'vue';
|
|
118
105
|
import CommentSectionVue from '../display/comments/CommentSection.vue';
|
|
119
|
-
import { CommentPodcast } from '@/store/class/comment';
|
|
120
|
-
import { Category } from '@/store/class/category';
|
|
106
|
+
import { CommentPodcast } from '@/store/class/general/comment';
|
|
107
|
+
import { Category } from '@/store/class/general/category';
|
|
121
108
|
const ShareButtons = defineAsyncComponent(() => import('../display/sharing/ShareButtons.vue'));
|
|
122
109
|
const SharePlayer = defineAsyncComponent(() => import('../display/sharing/SharePlayer.vue'));
|
|
123
110
|
const EditBox = defineAsyncComponent(() => import('@/components/display/edit/EditBox.vue'));
|
|
@@ -136,7 +123,8 @@ export default defineComponent({
|
|
|
136
123
|
RecordingItemButton,
|
|
137
124
|
Countdown,
|
|
138
125
|
CommentSection,
|
|
139
|
-
PodcastModuleBox
|
|
126
|
+
PodcastModuleBox,
|
|
127
|
+
ClassicLoading
|
|
140
128
|
},
|
|
141
129
|
|
|
142
130
|
props: {
|
|
@@ -219,13 +207,11 @@ export default defineComponent({
|
|
|
219
207
|
(this.authenticated &&
|
|
220
208
|
this.organisationId === this.podcast.organisation.id) ||
|
|
221
209
|
state.generalParameters.isAdmin
|
|
222
|
-
)
|
|
210
|
+
){
|
|
223
211
|
return true;
|
|
212
|
+
}
|
|
224
213
|
return false;
|
|
225
214
|
},
|
|
226
|
-
isReady(): boolean {
|
|
227
|
-
return true;
|
|
228
|
-
},
|
|
229
215
|
countLink(): number {
|
|
230
216
|
let count = 0;
|
|
231
217
|
if (this.podcast && this.podcast.emission && this.podcast.emission.annotations) {
|
|
@@ -6,17 +6,13 @@
|
|
|
6
6
|
isEmissionChooser ? 'justify-content-between' : 'justify-content-center'
|
|
7
7
|
"
|
|
8
8
|
>
|
|
9
|
-
<h1
|
|
10
|
-
v-if="undefined === titlePage"
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
v-else
|
|
17
|
-
class="flex-shrink"
|
|
18
|
-
>
|
|
19
|
-
{{ titlePage }}
|
|
9
|
+
<h1 class="flex-shrink-0">
|
|
10
|
+
<template v-if="undefined === titlePage">
|
|
11
|
+
{{ $t('All podcasts') }}
|
|
12
|
+
</template>
|
|
13
|
+
<template v-else>
|
|
14
|
+
{{ titlePage }}
|
|
15
|
+
</template>
|
|
20
16
|
</h1>
|
|
21
17
|
<EmissionChooser
|
|
22
18
|
v-if="isEmissionChooser"
|
|
@@ -75,9 +71,9 @@ import PodcastList from '../display/podcasts/PodcastList.vue';
|
|
|
75
71
|
import { state } from '../../store/paramStore';
|
|
76
72
|
import ProductorSearch from '../display/filter/ProductorSearch.vue';
|
|
77
73
|
import AdvancedSearch from '../display/filter/AdvancedSearch.vue';
|
|
78
|
-
import { Emission } from '@/store/class/emission';
|
|
79
|
-
import { Category } from '@/store/class/category';
|
|
80
|
-
import { RubriquageFilter } from '@/store/class/rubriquageFilter';
|
|
74
|
+
import { Emission } from '@/store/class/general/emission';
|
|
75
|
+
import { Category } from '@/store/class/general/category';
|
|
76
|
+
import { RubriquageFilter } from '@/store/class/rubrique/rubriquageFilter';
|
|
81
77
|
|
|
82
78
|
import { defineComponent, defineAsyncComponent } from 'vue';
|
|
83
79
|
const EmissionChooser = defineAsyncComponent(() => import('../display/emission/EmissionChooser.vue'));
|
|
@@ -92,8 +88,6 @@ export default defineComponent({
|
|
|
92
88
|
},
|
|
93
89
|
|
|
94
90
|
props: {
|
|
95
|
-
firstRoute: { default: 0, type: Number},
|
|
96
|
-
sizeRoute: { default: 12, type: Number},
|
|
97
91
|
productor: { default: undefined, type: String},
|
|
98
92
|
isEducation: { default: false, type: Boolean},
|
|
99
93
|
},
|
|
@@ -101,7 +95,7 @@ export default defineComponent({
|
|
|
101
95
|
data() {
|
|
102
96
|
return {
|
|
103
97
|
first: 0 as number,
|
|
104
|
-
size:
|
|
98
|
+
size: 12 as number,
|
|
105
99
|
searchPattern: '' as string,
|
|
106
100
|
organisationId: undefined as string|undefined,
|
|
107
101
|
monetization: 'UNDEFINED' as string, // UNDEFINED, YES, NO
|
|
@@ -160,12 +154,6 @@ export default defineComponent({
|
|
|
160
154
|
},
|
|
161
155
|
|
|
162
156
|
created() {
|
|
163
|
-
if (this.firstRoute) {
|
|
164
|
-
this.first = this.firstRoute;
|
|
165
|
-
}
|
|
166
|
-
if (this.sizeRoute) {
|
|
167
|
-
this.size = this.sizeRoute;
|
|
168
|
-
}
|
|
169
157
|
if (this.productor) {
|
|
170
158
|
this.organisationId = this.productor;
|
|
171
159
|
} else if (this.$store.state.filter.organisationId) {
|
|
@@ -247,6 +235,4 @@ export default defineComponent({
|
|
|
247
235
|
},
|
|
248
236
|
},
|
|
249
237
|
})
|
|
250
|
-
</script>
|
|
251
|
-
|
|
252
|
-
<style lang="scss"></style>
|
|
238
|
+
</script>
|