@saooti/octopus-sdk 31.0.1 → 31.0.4
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 +19 -1
- package/index.ts +8 -2
- package/package.json +3 -3
- package/src/assets/general.scss +8 -0
- package/src/assets/share.scss +21 -0
- package/src/components/display/categories/CategoryFilter.vue +14 -12
- package/src/components/display/categories/CategoryList.vue +27 -25
- package/src/components/display/comments/CommentInput.vue +21 -19
- package/src/components/display/comments/CommentList.vue +2 -0
- package/src/components/display/comments/CommentPlayer.vue +2 -0
- package/src/components/display/emission/EmissionInlineList.vue +32 -29
- package/src/components/display/emission/EmissionList.vue +12 -8
- package/src/components/display/emission/EmissionPlayerItem.vue +16 -1
- package/src/components/display/filter/AdvancedSearch.vue +2 -0
- package/src/components/display/filter/CategoryFilter.vue +1 -1
- package/src/components/display/filter/ProductorSearch.vue +16 -5
- package/src/components/display/filter/RubriqueFilter.vue +1 -1
- package/src/components/display/live/LiveHorizontalList.vue +1 -1
- package/src/components/display/live/LiveItem.vue +2 -1
- package/src/components/display/live/LiveList.vue +51 -41
- package/src/components/display/organisation/OrganisationChooser.vue +1 -1
- package/src/components/display/organisation/OrganisationChooserLight.vue +28 -19
- package/src/components/display/participant/ParticipantItem.vue +2 -0
- package/src/components/display/participant/ParticipantList.vue +30 -19
- package/src/components/display/playlist/PlaylistList.vue +12 -3
- package/src/components/display/playlist/PodcastList.vue +26 -16
- package/src/components/display/playlist/PodcastPlaylistInlineList.vue +204 -0
- package/src/components/display/podcasts/AnimatorsItem.vue +2 -0
- package/src/components/display/podcasts/ParticipantDescription.vue +1 -5
- package/src/components/display/podcasts/PodcastImage.vue +2 -1
- package/src/components/display/podcasts/PodcastInlineList.vue +40 -28
- package/src/components/display/podcasts/PodcastItem.vue +12 -0
- package/src/components/display/podcasts/PodcastList.vue +11 -3
- package/src/components/display/podcasts/PodcastPlayBar.vue +2 -0
- package/src/components/display/podcasts/TagList.vue +2 -0
- package/src/components/display/rubriques/RubriqueList.vue +4 -2
- package/src/components/display/sharing/PlayerParameters.vue +2 -0
- package/src/components/display/sharing/QrCode.vue +7 -0
- package/src/components/display/sharing/ShareDistribution.vue +2 -0
- package/src/components/display/sharing/SharePlayer.vue +3 -12
- package/src/components/display/sharing/SharePlayerTypes.vue +48 -1
- package/src/components/form/ClassicSearch.vue +2 -0
- package/src/components/misc/ErrorMessage.vue +2 -0
- package/src/components/misc/Footer.vue +2 -0
- package/src/components/misc/LeftMenu.vue +2 -0
- package/src/components/misc/Player.vue +14 -0
- package/src/components/misc/PlayerButtons.vue +2 -14
- package/src/components/misc/PlayerClockAndTimeline.vue +2 -0
- package/src/components/misc/PlayerProgressBar.vue +2 -0
- package/src/components/misc/Popover.vue +5 -0
- package/src/components/misc/Snackbar.vue +2 -0
- package/src/components/misc/TopBar.vue +2 -0
- package/src/components/misc/modal/NewsletterModal.vue +11 -3
- package/src/components/misc/modal/ShareModalPlayer.vue +2 -0
- package/src/components/mixins/handle403.ts +17 -0
- package/src/components/pages/Emission.vue +17 -4
- package/src/components/pages/Error403Page.vue +24 -0
- package/src/components/pages/Participant.vue +19 -4
- package/src/components/pages/Playlist.vue +17 -3
- package/src/components/pages/Podcast.vue +28 -12
- package/src/components/pages/Podcasts.vue +4 -0
- package/src/locale/en.ts +1 -0
- package/src/locale/fr.ts +1 -0
- package/src/locale/it.ts +298 -0
- package/src/locale/messages.ts +2 -0
- package/src/router/router.ts +6 -0
- package/src/store/class/general/customPlayer.ts +2 -1
- package/src/store/class/general/organisation.ts +1 -0
- package/src/store/paramStore.ts +12 -11
- package/src/store/typeAppStore.ts +0 -4
|
@@ -8,16 +8,12 @@
|
|
|
8
8
|
:id="idPopover"
|
|
9
9
|
tabindex="-1"
|
|
10
10
|
class="saooti-help m-0"
|
|
11
|
-
:title="
|
|
11
|
+
:title="title"
|
|
12
12
|
/>
|
|
13
13
|
<span class="mx-1">:</span>
|
|
14
14
|
<Popover
|
|
15
15
|
:target="idPopover"
|
|
16
16
|
>
|
|
17
|
-
<div class="text-center font-weight-bold">
|
|
18
|
-
{{ title }}
|
|
19
|
-
</div>
|
|
20
|
-
<hr>
|
|
21
17
|
<div
|
|
22
18
|
v-for="participant in participants"
|
|
23
19
|
:key="'desc-'+participant.participantId"
|
|
@@ -286,6 +286,7 @@ export default defineComponent({
|
|
|
286
286
|
|
|
287
287
|
|
|
288
288
|
<style lang="scss">
|
|
289
|
+
.octopus-app{
|
|
289
290
|
.live-image-status {
|
|
290
291
|
text-align: center;
|
|
291
292
|
width: 100%;
|
|
@@ -363,5 +364,5 @@ export default defineComponent({
|
|
|
363
364
|
z-index: 2;
|
|
364
365
|
}
|
|
365
366
|
}
|
|
366
|
-
|
|
367
|
+
}
|
|
367
368
|
</style>
|
|
@@ -55,6 +55,7 @@
|
|
|
55
55
|
alignLeft ? 'justify-content-start' : '',
|
|
56
56
|
overflowScroll ? 'overflowScroll' : '',
|
|
57
57
|
]"
|
|
58
|
+
:css="isInlineAnimation"
|
|
58
59
|
>
|
|
59
60
|
<PodcastItem
|
|
60
61
|
v-for="p in podcasts"
|
|
@@ -71,13 +72,14 @@
|
|
|
71
72
|
{{ buttonText }}
|
|
72
73
|
<div
|
|
73
74
|
v-if="buttonPlus"
|
|
74
|
-
class="ms-1 saooti-
|
|
75
|
+
class="ms-1 saooti-more"
|
|
75
76
|
/>
|
|
76
77
|
</router-link>
|
|
77
78
|
</div>
|
|
78
79
|
</template>
|
|
79
80
|
|
|
80
81
|
<script lang="ts">
|
|
82
|
+
import { handle403 } from '../../mixins/handle403';
|
|
81
83
|
import octopusApi from '@saooti/octopus-api';
|
|
82
84
|
import domHelper from '../../../helper/dom';
|
|
83
85
|
import PodcastItem from './PodcastItem.vue';
|
|
@@ -88,6 +90,7 @@ import { Podcast } from '@/store/class/general/podcast';
|
|
|
88
90
|
import { RubriquageFilter } from '@/store/class/rubrique/rubriquageFilter';
|
|
89
91
|
import { defineComponent } from 'vue'
|
|
90
92
|
import { RouteLocationRaw } from 'vue-router';
|
|
93
|
+
import { AxiosError } from 'axios';
|
|
91
94
|
export default defineComponent({
|
|
92
95
|
name: 'PodcastInlineList',
|
|
93
96
|
|
|
@@ -96,6 +99,8 @@ export default defineComponent({
|
|
|
96
99
|
ClassicLoading
|
|
97
100
|
},
|
|
98
101
|
|
|
102
|
+
mixins: [handle403],
|
|
103
|
+
|
|
99
104
|
props: {
|
|
100
105
|
organisationId: { default: undefined, type: String},
|
|
101
106
|
emissionId: { default: undefined, type: Number},
|
|
@@ -137,6 +142,9 @@ export default defineComponent({
|
|
|
137
142
|
overflowScroll(): boolean {
|
|
138
143
|
return (state.emissionPage.overflowScroll as boolean);
|
|
139
144
|
},
|
|
145
|
+
isInlineAnimation(): boolean {
|
|
146
|
+
return (state.generalParameters.isInlineAnimation as boolean);
|
|
147
|
+
},
|
|
140
148
|
filterOrga(): string {
|
|
141
149
|
return this.$store.state.filter.organisationId;
|
|
142
150
|
},
|
|
@@ -207,34 +215,38 @@ export default defineComponent({
|
|
|
207
215
|
},
|
|
208
216
|
methods: {
|
|
209
217
|
async fetchNext(): Promise<void> {
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
this.
|
|
234
|
-
|
|
235
|
-
|
|
218
|
+
try {
|
|
219
|
+
const data = await octopusApi.fetchPodcasts({
|
|
220
|
+
first: this.first,
|
|
221
|
+
size: this.size + 1,
|
|
222
|
+
organisationId: this.organisation,
|
|
223
|
+
emissionId: this.emissionId,
|
|
224
|
+
iabId: this.iabId,
|
|
225
|
+
rubriqueId: this.rubriqueId.length ?this.rubriqueId:undefined,
|
|
226
|
+
rubriquageId: this.rubriquageId.length ?this.rubriquageId : undefined,
|
|
227
|
+
noRubriquageId: this.noRubriquageId.length ? this.noRubriquageId : undefined,
|
|
228
|
+
sort: this.popularSort ? 'POPULARITY' : 'DATE',
|
|
229
|
+
query: this.query,
|
|
230
|
+
});
|
|
231
|
+
this.loading = false;
|
|
232
|
+
this.loaded = true;
|
|
233
|
+
this.totalCount = data.count;
|
|
234
|
+
if (this.allPodcasts.length + data.result.length < this.totalCount) {
|
|
235
|
+
const nexEl = data.result.pop() as Podcast;
|
|
236
|
+
this.preloadImage(nexEl.imageUrl?nexEl.imageUrl:'');
|
|
237
|
+
}
|
|
238
|
+
this.allPodcasts = this.allPodcasts.concat(
|
|
239
|
+
data.result.filter((pod: Podcast|null) => null !== pod)
|
|
240
|
+
);
|
|
241
|
+
if (this.allPodcasts.length <= 3) {
|
|
242
|
+
this.alignLeft = true;
|
|
243
|
+
} else {
|
|
244
|
+
this.alignLeft = false;
|
|
245
|
+
}
|
|
246
|
+
this.first += this.size;
|
|
247
|
+
} catch (error) {
|
|
248
|
+
this.handle403((error as AxiosError));
|
|
236
249
|
}
|
|
237
|
-
this.first += this.size;
|
|
238
250
|
},
|
|
239
251
|
displayPrevious(): void {
|
|
240
252
|
this.direction = -1;
|
|
@@ -197,6 +197,16 @@ export default defineComponent({
|
|
|
197
197
|
s: () => 'sec',
|
|
198
198
|
ms: () => 'ms',
|
|
199
199
|
},
|
|
200
|
+
shortIt: {
|
|
201
|
+
y: () => 'anni',
|
|
202
|
+
mo: () => 'mesi',
|
|
203
|
+
w: () => 'settimane',
|
|
204
|
+
d: () => 'giorni',
|
|
205
|
+
h: () => 'h',
|
|
206
|
+
m: () => 'min',
|
|
207
|
+
s: () => 'sec',
|
|
208
|
+
ms: () => 'ms',
|
|
209
|
+
},
|
|
200
210
|
},
|
|
201
211
|
});
|
|
202
212
|
}
|
|
@@ -243,6 +253,7 @@ export default defineComponent({
|
|
|
243
253
|
</script>
|
|
244
254
|
|
|
245
255
|
<style lang="scss">
|
|
256
|
+
.octopus-app{
|
|
246
257
|
.podcast-item-container {
|
|
247
258
|
border-radius: 0.8rem;
|
|
248
259
|
list-style: none;
|
|
@@ -308,4 +319,5 @@ export default defineComponent({
|
|
|
308
319
|
margin: 0.5rem !important;
|
|
309
320
|
}
|
|
310
321
|
}
|
|
322
|
+
}
|
|
311
323
|
</style>
|
|
@@ -33,13 +33,14 @@
|
|
|
33
33
|
</template>
|
|
34
34
|
<div
|
|
35
35
|
:class="buttonPlus?'ms-1':''"
|
|
36
|
-
class="saooti-
|
|
36
|
+
class="saooti-more"
|
|
37
37
|
/>
|
|
38
38
|
</button>
|
|
39
39
|
</div>
|
|
40
40
|
</template>
|
|
41
41
|
|
|
42
42
|
<script lang="ts">
|
|
43
|
+
import { handle403 } from '../../mixins/handle403';
|
|
43
44
|
import octopusApi from '@saooti/octopus-api';
|
|
44
45
|
import PodcastItem from './PodcastItem.vue';
|
|
45
46
|
import { state } from '../../../store/paramStore';
|
|
@@ -47,6 +48,7 @@ import ClassicLoading from '../../form/ClassicLoading.vue';
|
|
|
47
48
|
import { Podcast } from '@/store/class/general/podcast';
|
|
48
49
|
import { defineComponent } from 'vue'
|
|
49
50
|
import { FetchParam } from '@/store/class/general/fetchParam';
|
|
51
|
+
import { AxiosError } from 'axios';
|
|
50
52
|
export default defineComponent({
|
|
51
53
|
name: 'PodcastList',
|
|
52
54
|
|
|
@@ -55,6 +57,8 @@ export default defineComponent({
|
|
|
55
57
|
ClassicLoading
|
|
56
58
|
},
|
|
57
59
|
|
|
60
|
+
mixins: [handle403],
|
|
61
|
+
|
|
58
62
|
props: {
|
|
59
63
|
first: { default: 0, type: Number},
|
|
60
64
|
size: { default: 12, type: Number},
|
|
@@ -174,8 +178,12 @@ export default defineComponent({
|
|
|
174
178
|
if (this.notValid && !this.isProduction) {
|
|
175
179
|
param.publisherId = this.$store.state.profile.userId;
|
|
176
180
|
}
|
|
177
|
-
|
|
178
|
-
|
|
181
|
+
try {
|
|
182
|
+
const data = await octopusApi.fetchPodcasts(param);
|
|
183
|
+
this.afterFetching(reset, data);
|
|
184
|
+
} catch (error) {
|
|
185
|
+
this.handle403((error as AxiosError));
|
|
186
|
+
}
|
|
179
187
|
},
|
|
180
188
|
afterFetching(reset: boolean, data: {count: number, result: Array<Podcast>, sort: string}): void {
|
|
181
189
|
if (reset) {
|
|
@@ -51,6 +51,7 @@ export default defineComponent({
|
|
|
51
51
|
</script>
|
|
52
52
|
|
|
53
53
|
<style lang="scss">
|
|
54
|
+
.octopus-app{
|
|
54
55
|
.tag-list-component{
|
|
55
56
|
.ouest-france-logo{
|
|
56
57
|
width: 20px;
|
|
@@ -65,4 +66,5 @@ export default defineComponent({
|
|
|
65
66
|
border-radius: 0.5rem;
|
|
66
67
|
}
|
|
67
68
|
}
|
|
69
|
+
}
|
|
68
70
|
</style>
|
|
@@ -31,7 +31,7 @@
|
|
|
31
31
|
class="dropdown btn-group"
|
|
32
32
|
>
|
|
33
33
|
<button
|
|
34
|
-
class="btn dropdown-toggle admin-button dropdown-toggle-no-caret saooti-
|
|
34
|
+
class="btn dropdown-toggle admin-button dropdown-toggle-no-caret saooti-more"
|
|
35
35
|
data-bs-toggle="dropdown"
|
|
36
36
|
aria-expanded="false"
|
|
37
37
|
:title="$t('See more')"
|
|
@@ -130,7 +130,7 @@ export default defineComponent({
|
|
|
130
130
|
this.$store.commit('filterRubrique', newFilter);
|
|
131
131
|
const queries = this.$route.query;
|
|
132
132
|
const queryString = newFilter.map(value => value.rubriquageId+':'+value.rubriqueId).join();
|
|
133
|
-
this.$router.
|
|
133
|
+
this.$router.replace({ query: { ...queries, ...{ rubriquesId: queryString }} });
|
|
134
134
|
this.selectNewRubriquage();
|
|
135
135
|
},
|
|
136
136
|
selectNewRubriquage(){
|
|
@@ -179,6 +179,7 @@ export default defineComponent({
|
|
|
179
179
|
</script>
|
|
180
180
|
|
|
181
181
|
<style lang="scss">
|
|
182
|
+
.octopus-app{
|
|
182
183
|
#rubrique-list-container {
|
|
183
184
|
display: flex;
|
|
184
185
|
justify-content: flex-start;
|
|
@@ -210,4 +211,5 @@ export default defineComponent({
|
|
|
210
211
|
background: #eee !important;
|
|
211
212
|
}
|
|
212
213
|
}
|
|
214
|
+
}
|
|
213
215
|
</style>
|
|
@@ -50,6 +50,9 @@ export default defineComponent({
|
|
|
50
50
|
return (state.generalParameters.authenticated as boolean);
|
|
51
51
|
},
|
|
52
52
|
},
|
|
53
|
+
created(){
|
|
54
|
+
this.initColor();
|
|
55
|
+
},
|
|
53
56
|
methods:{
|
|
54
57
|
download(): void{
|
|
55
58
|
const link = document.createElement('a');
|
|
@@ -62,6 +65,10 @@ export default defineComponent({
|
|
|
62
65
|
}
|
|
63
66
|
},
|
|
64
67
|
async initColor(): Promise<void> {
|
|
68
|
+
if(state.generalParameters.podcastmaker && state.generalParameters.podcastmakerColor){
|
|
69
|
+
this.color = state.generalParameters.podcastmakerColor;
|
|
70
|
+
return;
|
|
71
|
+
}
|
|
65
72
|
if (!this.authenticated) return;
|
|
66
73
|
let data;
|
|
67
74
|
if(this.$store.state.organisation && this.$store.state.organisation.attributes && Object.keys(this.$store.state.organisation.attributes).length > 1){
|
|
@@ -170,6 +170,7 @@ export default defineComponent({
|
|
|
170
170
|
</script>
|
|
171
171
|
|
|
172
172
|
<style lang="scss">
|
|
173
|
+
.octopus-app{
|
|
173
174
|
.sharing-distribution-container {
|
|
174
175
|
border: 0.05rem solid #dee2e6;
|
|
175
176
|
border-radius: 0.3rem;
|
|
@@ -214,4 +215,5 @@ export default defineComponent({
|
|
|
214
215
|
margin: 0.2rem 0.5rem;
|
|
215
216
|
}
|
|
216
217
|
}
|
|
218
|
+
}
|
|
217
219
|
</style>
|
|
@@ -33,7 +33,7 @@
|
|
|
33
33
|
:podcast="podcast"
|
|
34
34
|
:emission="emission"
|
|
35
35
|
:playlist="playlist"
|
|
36
|
-
:
|
|
36
|
+
:organisation-id="organisationId"
|
|
37
37
|
/>
|
|
38
38
|
</div>
|
|
39
39
|
<SharePlayerColors
|
|
@@ -82,7 +82,6 @@ import octopusApi from '@saooti/octopus-api';
|
|
|
82
82
|
import { Podcast } from '@/store/class/general/podcast';
|
|
83
83
|
import { Emission } from '@/store/class/general/emission';
|
|
84
84
|
import { Playlist } from '@/store/class/general/playlist';
|
|
85
|
-
import { CustomPlayer } from '@/store/class/general/customPlayer';
|
|
86
85
|
import { defineComponent, defineAsyncComponent } from 'vue';
|
|
87
86
|
const ShareModalPlayer = defineAsyncComponent(() => import('../../misc/modal/ShareModalPlayer.vue'));
|
|
88
87
|
const PlayerParameters = defineAsyncComponent(() => import('./PlayerParameters.vue'));
|
|
@@ -119,7 +118,6 @@ export default defineComponent({
|
|
|
119
118
|
iFrameNumber: '3' as string,
|
|
120
119
|
isVisible: false as boolean,
|
|
121
120
|
displayArticle: true as boolean,
|
|
122
|
-
customPlayers: [] as Array<CustomPlayer>,
|
|
123
121
|
colors: ['#000000', '#ffffff'],
|
|
124
122
|
};
|
|
125
123
|
},
|
|
@@ -333,15 +331,6 @@ export default defineComponent({
|
|
|
333
331
|
} else {
|
|
334
332
|
this.theme = '#000000';
|
|
335
333
|
}
|
|
336
|
-
let dataFetched = await octopusApi.fetchCustomPlayer('customPlayer/organisation/'+ this.organisationId);
|
|
337
|
-
this.customPlayers = dataFetched.content;
|
|
338
|
-
const totalCount = dataFetched.totalElements;
|
|
339
|
-
let index = 1;
|
|
340
|
-
while (totalCount > this.customPlayers.length) {
|
|
341
|
-
dataFetched = await octopusApi.fetchCustomPlayer('customPlayer/organisation/'+ this.organisationId+'?start='+index);
|
|
342
|
-
this.customPlayers = this.customPlayers.concat(dataFetched.content);
|
|
343
|
-
++index;
|
|
344
|
-
}
|
|
345
334
|
},
|
|
346
335
|
updateEpisodeNumber(value: string): void {
|
|
347
336
|
this.episodeNumbers = value;
|
|
@@ -364,6 +353,7 @@ export default defineComponent({
|
|
|
364
353
|
|
|
365
354
|
<style lang="scss">
|
|
366
355
|
@import '../../../sass/_variables.scss';
|
|
356
|
+
.octopus-app{
|
|
367
357
|
.sticker {
|
|
368
358
|
align-self: center;
|
|
369
359
|
background: $octopus-primary-dark;
|
|
@@ -385,4 +375,5 @@ export default defineComponent({
|
|
|
385
375
|
.max-iframe {
|
|
386
376
|
max-width: 300px;
|
|
387
377
|
}
|
|
378
|
+
}
|
|
388
379
|
</style>
|
|
@@ -48,6 +48,8 @@
|
|
|
48
48
|
</template>
|
|
49
49
|
|
|
50
50
|
<script lang="ts">
|
|
51
|
+
import { state } from '../../../store/paramStore';
|
|
52
|
+
import octopusApi from '@saooti/octopus-api';
|
|
51
53
|
import { Podcast } from '@/store/class/general/podcast';
|
|
52
54
|
import { CustomPlayer } from '@/store/class/general/customPlayer';
|
|
53
55
|
import { defineComponent } from 'vue';
|
|
@@ -58,12 +60,21 @@ export default defineComponent({
|
|
|
58
60
|
podcast: { default: undefined, type: Object as ()=> Podcast},
|
|
59
61
|
emission: { default: undefined, type: Object as ()=> Emission},
|
|
60
62
|
playlist: { default: undefined, type: Object as ()=> Playlist},
|
|
61
|
-
customPlayers: { default: ()=>[], type: Array as ()=> Array<CustomPlayer>},
|
|
62
63
|
iFrameModel: { default: 'default', type: String},
|
|
64
|
+
organisationId: { default: undefined, type: String},
|
|
63
65
|
},
|
|
64
66
|
emits:['update:iFrameModel'],
|
|
65
67
|
|
|
68
|
+
data() {
|
|
69
|
+
return {
|
|
70
|
+
customPlayers: [] as Array<CustomPlayer>,
|
|
71
|
+
};
|
|
72
|
+
},
|
|
73
|
+
|
|
66
74
|
computed: {
|
|
75
|
+
authenticated(): boolean {
|
|
76
|
+
return (state.generalParameters.authenticated as boolean);
|
|
77
|
+
},
|
|
67
78
|
customPlayersDisplay(): Array<CustomPlayer>{
|
|
68
79
|
return this.customPlayers.filter((player: CustomPlayer)=>{
|
|
69
80
|
return (('EPISODE' === player.typePlayer ||'SUGGESTION' === player.typePlayer) && this.podcast && this.podcast.podcastId) ||
|
|
@@ -71,5 +82,41 @@ export default defineComponent({
|
|
|
71
82
|
});
|
|
72
83
|
},
|
|
73
84
|
},
|
|
85
|
+
async created() {
|
|
86
|
+
await this.initCustomPlayers();
|
|
87
|
+
},
|
|
88
|
+
|
|
89
|
+
methods: {
|
|
90
|
+
async fetchCustomPlayers(type:string, trySelect: boolean): Promise<boolean>{
|
|
91
|
+
let players = await octopusApi.fetchCustomPlayer('customPlayer/type/'+ this.organisationId+'/'+type);
|
|
92
|
+
let playersContent = players.content;
|
|
93
|
+
const totalCount = players.totalElements;
|
|
94
|
+
let index = 1;
|
|
95
|
+
while (totalCount > playersContent.length) {
|
|
96
|
+
players = await octopusApi.fetchCustomPlayer('customPlayer/type/'+ this.organisationId+'/'+type+'?start='+index);
|
|
97
|
+
playersContent = playersContent.concat(players.content);
|
|
98
|
+
++index;
|
|
99
|
+
}
|
|
100
|
+
this.customPlayers = this.customPlayers.concat(playersContent);
|
|
101
|
+
if(trySelect && this.customPlayers[0] && this.customPlayers[0].selected){
|
|
102
|
+
this.$emit('update:iFrameModel',this.customPlayers[0].customId);
|
|
103
|
+
return false;
|
|
104
|
+
}
|
|
105
|
+
return true;
|
|
106
|
+
},
|
|
107
|
+
async initCustomPlayers(): Promise<void> {
|
|
108
|
+
if (!this.authenticated) return;
|
|
109
|
+
if(this.playlist){
|
|
110
|
+
this.fetchCustomPlayers('PLAYLIST', true);
|
|
111
|
+
}else if(this.emission && !this.podcast){
|
|
112
|
+
this.fetchCustomPlayers('EMISSION', true);
|
|
113
|
+
}else{
|
|
114
|
+
let playerTrySelect = true;
|
|
115
|
+
playerTrySelect = await this.fetchCustomPlayers('EPISODE', playerTrySelect);
|
|
116
|
+
playerTrySelect = await this.fetchCustomPlayers('EMISSION', playerTrySelect);
|
|
117
|
+
playerTrySelect = await this.fetchCustomPlayers('SUGGESTION', playerTrySelect);
|
|
118
|
+
}
|
|
119
|
+
},
|
|
120
|
+
}
|
|
74
121
|
})
|
|
75
122
|
</script>
|
|
@@ -61,6 +61,7 @@ export default defineComponent({
|
|
|
61
61
|
});
|
|
62
62
|
</script>
|
|
63
63
|
<style lang="scss">
|
|
64
|
+
.octopus-app{
|
|
64
65
|
.champs-searchPage{
|
|
65
66
|
input {
|
|
66
67
|
border: 2px solid #dee2e6;
|
|
@@ -81,4 +82,5 @@ export default defineComponent({
|
|
|
81
82
|
margin: 1rem;
|
|
82
83
|
}
|
|
83
84
|
}
|
|
85
|
+
}
|
|
84
86
|
</style>
|
|
@@ -201,6 +201,7 @@ export default defineComponent({
|
|
|
201
201
|
</script>
|
|
202
202
|
|
|
203
203
|
<style lang="scss">
|
|
204
|
+
.octopus-app{
|
|
204
205
|
#footer{
|
|
205
206
|
font-size: 0.7rem;
|
|
206
207
|
.acpm_image {
|
|
@@ -221,4 +222,5 @@ export default defineComponent({
|
|
|
221
222
|
}
|
|
222
223
|
}
|
|
223
224
|
}
|
|
225
|
+
}
|
|
224
226
|
</style>
|
|
@@ -195,6 +195,7 @@ export default defineComponent({
|
|
|
195
195
|
</script>
|
|
196
196
|
|
|
197
197
|
<style lang="scss">
|
|
198
|
+
.octopus-app{
|
|
198
199
|
.left-menu-container {
|
|
199
200
|
position: fixed;
|
|
200
201
|
top: 3rem;
|
|
@@ -225,4 +226,5 @@ export default defineComponent({
|
|
|
225
226
|
width: 94%;
|
|
226
227
|
}
|
|
227
228
|
}
|
|
229
|
+
}
|
|
228
230
|
</style>
|
|
@@ -51,6 +51,15 @@
|
|
|
51
51
|
:player-error="playerError"
|
|
52
52
|
:listen-time="listenTime"
|
|
53
53
|
/>
|
|
54
|
+
<div
|
|
55
|
+
class="play-button-box primary-bg text-light"
|
|
56
|
+
@click="stopPlayer"
|
|
57
|
+
>
|
|
58
|
+
<div
|
|
59
|
+
class="saooti-cross"
|
|
60
|
+
:title="$t('Close')"
|
|
61
|
+
/>
|
|
62
|
+
</div>
|
|
54
63
|
<PlayerClockAndTimeline
|
|
55
64
|
v-model:showTimeline="showTimeline"
|
|
56
65
|
:comments="comments"
|
|
@@ -204,6 +213,9 @@ export default defineComponent({
|
|
|
204
213
|
},
|
|
205
214
|
|
|
206
215
|
methods: {
|
|
216
|
+
stopPlayer(): void {
|
|
217
|
+
this.$store.commit('playerPlayPodcast');
|
|
218
|
+
},
|
|
207
219
|
getListenerId(): string{
|
|
208
220
|
let listenerId = this.getCookie("octopus_listenerId");
|
|
209
221
|
if(!listenerId){
|
|
@@ -473,6 +485,7 @@ reject('There is an error while reading media content');
|
|
|
473
485
|
</script>
|
|
474
486
|
|
|
475
487
|
<style lang="scss">
|
|
488
|
+
.octopus-app{
|
|
476
489
|
.player-container {
|
|
477
490
|
position: fixed;
|
|
478
491
|
overflow: hidden;
|
|
@@ -497,4 +510,5 @@ reject('There is an error while reading media content');
|
|
|
497
510
|
}
|
|
498
511
|
}
|
|
499
512
|
}
|
|
513
|
+
}
|
|
500
514
|
</style>
|
|
@@ -23,16 +23,6 @@
|
|
|
23
23
|
}"
|
|
24
24
|
/>
|
|
25
25
|
</div>
|
|
26
|
-
<div
|
|
27
|
-
v-if="isPlaying || isPaused"
|
|
28
|
-
class="play-button-box primary-bg text-light"
|
|
29
|
-
@click="stopPlayer"
|
|
30
|
-
>
|
|
31
|
-
<div
|
|
32
|
-
class="saooti-stop-bounty"
|
|
33
|
-
:title="$t('Stop')"
|
|
34
|
-
/>
|
|
35
|
-
</div>
|
|
36
26
|
</template>
|
|
37
27
|
|
|
38
28
|
<script lang="ts">
|
|
@@ -114,9 +104,6 @@ export default defineComponent({
|
|
|
114
104
|
this.onPause();
|
|
115
105
|
}
|
|
116
106
|
},
|
|
117
|
-
stopPlayer(): void {
|
|
118
|
-
this.$store.commit('playerPlayPodcast');
|
|
119
|
-
},
|
|
120
107
|
onPlay(): void {
|
|
121
108
|
this.$store.commit('playerPause', false);
|
|
122
109
|
},
|
|
@@ -128,6 +115,7 @@ export default defineComponent({
|
|
|
128
115
|
</script>
|
|
129
116
|
|
|
130
117
|
<style lang="scss">
|
|
118
|
+
.octopus-app{
|
|
131
119
|
.player-image {
|
|
132
120
|
border-radius: 0.2rem;
|
|
133
121
|
height: 2.4rem;
|
|
@@ -151,5 +139,5 @@ export default defineComponent({
|
|
|
151
139
|
flex-shrink: 0;
|
|
152
140
|
cursor: pointer;
|
|
153
141
|
}
|
|
154
|
-
|
|
142
|
+
}
|
|
155
143
|
</style>
|
|
@@ -61,6 +61,7 @@ export default defineComponent({
|
|
|
61
61
|
</script>
|
|
62
62
|
<style lang="scss">
|
|
63
63
|
@import '../../sass/_variables.scss';
|
|
64
|
+
.octopus-app{
|
|
64
65
|
.player-container {
|
|
65
66
|
.timeline-button {
|
|
66
67
|
background: black;
|
|
@@ -82,4 +83,5 @@ export default defineComponent({
|
|
|
82
83
|
}
|
|
83
84
|
}
|
|
84
85
|
}
|
|
86
|
+
}
|
|
85
87
|
</style>
|
|
@@ -146,6 +146,7 @@ export default defineComponent({
|
|
|
146
146
|
</script>
|
|
147
147
|
|
|
148
148
|
<style lang="scss">
|
|
149
|
+
.octopus-app{
|
|
149
150
|
.player-grow-content {
|
|
150
151
|
display: flex;
|
|
151
152
|
flex-direction: column;
|
|
@@ -165,4 +166,5 @@ export default defineComponent({
|
|
|
165
166
|
position: absolute;
|
|
166
167
|
}
|
|
167
168
|
}
|
|
169
|
+
}
|
|
168
170
|
</style>
|
|
@@ -257,6 +257,7 @@ export default defineComponent({
|
|
|
257
257
|
</script>
|
|
258
258
|
|
|
259
259
|
<style lang="scss">
|
|
260
|
+
.octopus-app{
|
|
260
261
|
.top-bar-container {
|
|
261
262
|
position: sticky;
|
|
262
263
|
top: 0;
|
|
@@ -336,4 +337,5 @@ export default defineComponent({
|
|
|
336
337
|
}
|
|
337
338
|
}
|
|
338
339
|
}
|
|
340
|
+
}
|
|
339
341
|
</style>
|