@saooti/octopus-sdk 31.0.34 → 31.0.37
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 +6 -1
- package/index.ts +8 -2
- package/package.json +1 -1
- package/public/img/403.jpeg +0 -0
- package/public/img/404.svg +242 -0
- package/src/assets/bootstrap-diff.scss +25 -24
- package/src/assets/general.scss +57 -2
- package/src/assets/modal.scss +5 -4
- package/src/assets/share.scss +2 -0
- package/src/components/display/categories/CategoryFilter.vue +12 -26
- package/src/components/display/categories/CategoryList.vue +14 -20
- package/src/components/display/comments/AddCommentModal.vue +19 -36
- package/src/components/display/comments/CommentBasicView.vue +2 -5
- package/src/components/display/comments/CommentInput.vue +8 -21
- package/src/components/display/comments/CommentItem.vue +1 -1
- package/src/components/display/comments/CommentList.vue +10 -21
- package/src/components/display/comments/CommentPlayer.vue +0 -3
- package/src/components/display/comments/CommentSection.vue +6 -14
- package/src/components/display/emission/EmissionInlineList.vue +5 -10
- package/src/components/display/emission/EmissionItem.vue +5 -10
- package/src/components/display/emission/EmissionList.vue +66 -68
- package/src/components/display/filter/AdvancedSearch.vue +19 -45
- package/src/components/display/filter/CategoryFilter.vue +11 -20
- package/src/components/display/filter/MonetizableFilter.vue +7 -14
- package/src/components/display/filter/ProductorSearch.vue +69 -78
- package/src/components/display/filter/RubriqueChoice.vue +1 -4
- package/src/components/display/filter/RubriqueFilter.vue +1 -5
- package/src/components/display/list/ListPaginate.vue +150 -0
- package/src/components/display/list/Paginate.vue +219 -0
- package/src/components/display/live/LiveHorizontalList.vue +56 -40
- package/src/components/display/organisation/OrganisationChooser.vue +7 -12
- package/src/components/display/participant/ParticipantItem.vue +6 -17
- package/src/components/display/participant/ParticipantList.vue +53 -46
- package/src/components/display/playlist/PlaylistItem.vue +1 -4
- package/src/components/display/playlist/PlaylistList.vue +60 -63
- package/src/components/display/playlist/PodcastList.vue +74 -101
- package/src/components/display/podcasts/AnimatorsItem.vue +17 -28
- package/src/components/display/podcasts/ParticipantDescription.vue +3 -11
- package/src/components/display/podcasts/PodcastFilterList.vue +8 -16
- package/src/components/display/podcasts/PodcastImage.vue +86 -92
- package/src/components/display/podcasts/PodcastItem.vue +1 -2
- package/src/components/display/podcasts/PodcastItemInfo.vue +10 -10
- package/src/components/display/podcasts/PodcastList.vue +61 -81
- package/src/components/display/podcasts/PodcastModuleBox.vue +19 -25
- package/src/components/display/podcasts/PodcastSwiperList.vue +2 -3
- package/src/components/display/podcasts/TagList.vue +0 -2
- package/src/components/display/sharing/QrCode.vue +2 -11
- package/src/components/display/sharing/ShareButtons.vue +44 -329
- package/src/components/display/sharing/ShareButtonsIntern.vue +209 -0
- package/src/components/display/sharing/SharePlayer.vue +21 -53
- package/src/components/display/sharing/SplitButton.vue +42 -0
- package/src/components/display/sharing/SubscribeButtons.vue +46 -39
- package/src/components/misc/Footer.vue +1 -4
- package/src/components/misc/HomeDropdown.vue +26 -24
- package/src/components/misc/LeftMenu.vue +3 -7
- package/src/components/misc/TopBar.vue +9 -16
- package/src/components/misc/modal/ClipboardModal.vue +1 -1
- package/src/components/misc/modal/MessageModal.vue +1 -1
- package/src/components/misc/modal/QrCodeModal.vue +1 -1
- package/src/components/misc/modal/ShareModalPlayer.vue +1 -1
- package/src/components/mixins/organisationFilter.ts +6 -0
- package/src/components/mixins/player/playerLive.ts +1 -1
- package/src/components/pages/Category.vue +1 -1
- package/src/components/pages/Emission.vue +0 -6
- package/src/components/pages/Emissions.vue +1 -1
- package/src/components/pages/Error403Page.vue +44 -8
- package/src/components/pages/PageNotFound.vue +55 -0
- package/src/components/pages/Participant.vue +0 -15
- package/src/components/pages/Participants.vue +1 -1
- package/src/components/pages/Playlist.vue +2 -2
- package/src/components/pages/Playlists.vue +1 -1
- package/src/components/pages/Podcast.vue +1 -3
- package/src/components/pages/Podcasts.vue +11 -8
- package/src/components/pages/Rubrique.vue +1 -1
- package/src/locale/de.ts +3 -0
- package/src/locale/en.ts +9 -0
- package/src/locale/es.ts +3 -0
- package/src/locale/fr.ts +10 -1
- package/src/locale/it.ts +3 -0
- package/src/locale/sl.ts +3 -0
- package/src/router/router.ts +2 -0
- package/src/sass/_variables.scss +0 -1
- package/src/store/class/general/playlist.ts +1 -1
- package/src/store/paramStore.ts +7 -11
- package/src/store/typeAppStore.ts +20 -2
|
@@ -77,6 +77,7 @@
|
|
|
77
77
|
</template>
|
|
78
78
|
|
|
79
79
|
<script lang="ts">
|
|
80
|
+
import { orgaComputed } from '../../mixins/orgaComputed';
|
|
80
81
|
import { state } from '../../../store/paramStore';
|
|
81
82
|
import octopusApi from '@saooti/octopus-api';
|
|
82
83
|
import { Podcast } from '@/store/class/general/podcast';
|
|
@@ -96,7 +97,7 @@ export default defineComponent({
|
|
|
96
97
|
SharePlayerTypes,
|
|
97
98
|
ClassicCheckbox
|
|
98
99
|
},
|
|
99
|
-
|
|
100
|
+
mixins:[orgaComputed],
|
|
100
101
|
props: {
|
|
101
102
|
podcast: { default: undefined, type: Object as ()=> Podcast},
|
|
102
103
|
emission: { default: undefined, type: Object as ()=> Emission},
|
|
@@ -126,7 +127,7 @@ export default defineComponent({
|
|
|
126
127
|
displayChoiceAllEpisodes():boolean{
|
|
127
128
|
return !this.podcast || this.isEmission || this.isLargeEmission;
|
|
128
129
|
},
|
|
129
|
-
|
|
130
|
+
baseUrl(): string{
|
|
130
131
|
return (state.podcastPage.MiniplayerUri as string);
|
|
131
132
|
},
|
|
132
133
|
isEmission(): boolean {
|
|
@@ -164,67 +165,36 @@ export default defineComponent({
|
|
|
164
165
|
}
|
|
165
166
|
return false;
|
|
166
167
|
},
|
|
167
|
-
authenticated(): boolean {
|
|
168
|
-
return (state.generalParameters.authenticated as boolean);
|
|
169
|
-
},
|
|
170
168
|
iFrameSrc(): string {
|
|
171
169
|
const url = [''];
|
|
172
|
-
let iFrameNumber = '/' + this.iFrameNumber;
|
|
173
|
-
|
|
174
|
-
iFrameNumber = '/0';
|
|
175
|
-
}
|
|
170
|
+
let iFrameNumber = this.displayChoiceAllEpisodes && 'all' === this.episodeNumbers ? '/0' : '/' + this.iFrameNumber;
|
|
171
|
+
url.push(`${this.baseUrl}miniplayer/`);
|
|
176
172
|
if (!this.podcast && !this.playlist && this.emission) {
|
|
177
|
-
|
|
178
|
-
url.push(
|
|
179
|
-
|
|
180
|
-
);
|
|
181
|
-
}else if('large' === this.iFrameModel) {
|
|
182
|
-
url.push(
|
|
183
|
-
`${this.miniplayerBaseUrl}miniplayer/emissionLarge/${this.emission.emissionId}${iFrameNumber}`
|
|
184
|
-
);
|
|
185
|
-
}
|
|
186
|
-
else {
|
|
187
|
-
url.push(
|
|
188
|
-
`${this.miniplayerBaseUrl}miniplayer/${this.iFrameModel}/${this.emission.emissionId}${iFrameNumber}`
|
|
189
|
-
);
|
|
173
|
+
switch (this.iFrameModel) {
|
|
174
|
+
case 'default': url.push('emission'); break;
|
|
175
|
+
case 'large': url.push('emissionLarge'); break;
|
|
176
|
+
default: url.push(`${this.iFrameModel}`);break;
|
|
190
177
|
}
|
|
178
|
+
url.push(`/${this.emission.emissionId}${iFrameNumber}`);
|
|
191
179
|
} else if (this.playlist) {
|
|
192
|
-
|
|
193
|
-
url.push(
|
|
194
|
-
|
|
195
|
-
);
|
|
196
|
-
} else if('large' === this.iFrameModel) {
|
|
197
|
-
url.push(
|
|
198
|
-
`${this.miniplayerBaseUrl}miniplayer/playlistLarge/${this.playlist.playlistId}`
|
|
199
|
-
);
|
|
200
|
-
}else {
|
|
201
|
-
url.push(
|
|
202
|
-
`${this.miniplayerBaseUrl}miniplayer/${this.iFrameModel}/${this.playlist.playlistId}`
|
|
203
|
-
);
|
|
180
|
+
switch (this.iFrameModel) {
|
|
181
|
+
case 'default': url.push('playlist'); break;
|
|
182
|
+
case 'large': url.push('playlistLarge'); break;
|
|
183
|
+
default: url.push(`${this.iFrameModel}`);break;
|
|
204
184
|
}
|
|
185
|
+
url.push(`/${this.playlist.playlistId}`);
|
|
205
186
|
} else if(this.emission && this.podcast){
|
|
187
|
+
url.push(`${this.iFrameModel}/`);
|
|
206
188
|
if (this.isEmission || this.isLargeEmission) {
|
|
207
|
-
url.push(
|
|
208
|
-
`${this.miniplayerBaseUrl}miniplayer/${this.iFrameModel}/${this.emission.emissionId}${iFrameNumber}/${this.podcast.podcastId}`
|
|
209
|
-
);
|
|
189
|
+
url.push(`${this.emission.emissionId}${iFrameNumber}/${this.podcast.podcastId}`);
|
|
210
190
|
} else if (this.isLargeSuggestion) {
|
|
211
|
-
url.push(
|
|
212
|
-
`${this.miniplayerBaseUrl}miniplayer/${this.iFrameModel}/${this.podcast.podcastId}${iFrameNumber}`
|
|
213
|
-
);
|
|
191
|
+
url.push(`${this.podcast.podcastId}${iFrameNumber}`);
|
|
214
192
|
} else {
|
|
215
|
-
url.push(
|
|
216
|
-
`${this.miniplayerBaseUrl}miniplayer/${this.iFrameModel}/${this.podcast.podcastId}`
|
|
217
|
-
);
|
|
193
|
+
url.push(`${this.podcast.podcastId}`);
|
|
218
194
|
}
|
|
219
195
|
}
|
|
220
196
|
url.push('?distributorId=' + this.organisationId);
|
|
221
|
-
|
|
222
|
-
url.push(
|
|
223
|
-
'&color=' +
|
|
224
|
-
this.color.substring(1) +
|
|
225
|
-
'&theme=' +
|
|
226
|
-
theme.substring(1)
|
|
227
|
-
);
|
|
197
|
+
url.push(`&color=${this.color.substring(1)}&theme=${this.theme.substring(1)}`);
|
|
228
198
|
if (!this.proceedReading) {
|
|
229
199
|
url.push('&proceed=false');
|
|
230
200
|
}
|
|
@@ -301,9 +271,7 @@ export default defineComponent({
|
|
|
301
271
|
if(this.$store.state.organisation && this.$store.state.organisation.attributes && Object.keys(this.$store.state.organisation.attributes).length > 1){
|
|
302
272
|
data = this.$store.state.organisation.attributes;
|
|
303
273
|
}else{
|
|
304
|
-
data= await octopusApi.fetchOrganisationAttributes(
|
|
305
|
-
state.generalParameters.organisationId ? state.generalParameters.organisationId : ""
|
|
306
|
-
);
|
|
274
|
+
data= await octopusApi.fetchOrganisationAttributes(this.myOrganisationId||'');
|
|
307
275
|
}
|
|
308
276
|
this.color = Object.prototype.hasOwnProperty.call(data,'COLOR') ? data.COLOR : '#40a372';
|
|
309
277
|
this.theme = Object.prototype.hasOwnProperty.call(data,'THEME') ? data.THEME : '#000000';
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
<template>
|
|
2
|
+
<div
|
|
3
|
+
class="btn-split"
|
|
4
|
+
@mouseleave="mobileHoverEffect=false"
|
|
5
|
+
>
|
|
6
|
+
<div class="d-flex flex-wrap">
|
|
7
|
+
<slot name="inside-button" />
|
|
8
|
+
</div>
|
|
9
|
+
<div class="label">
|
|
10
|
+
{{ title }}
|
|
11
|
+
</div>
|
|
12
|
+
</div>
|
|
13
|
+
</template>
|
|
14
|
+
|
|
15
|
+
<script lang="ts">
|
|
16
|
+
import { defineComponent } from 'vue';
|
|
17
|
+
export default defineComponent({
|
|
18
|
+
props: {
|
|
19
|
+
title: { default: '', type:String},
|
|
20
|
+
},
|
|
21
|
+
|
|
22
|
+
data() {
|
|
23
|
+
return {
|
|
24
|
+
mobileHoverEffect:false as boolean,
|
|
25
|
+
};
|
|
26
|
+
},
|
|
27
|
+
computed:{
|
|
28
|
+
isMobile(): boolean {
|
|
29
|
+
return window.matchMedia('(hover: none)').matches;
|
|
30
|
+
},
|
|
31
|
+
},
|
|
32
|
+
|
|
33
|
+
methods: {
|
|
34
|
+
linkClick(event: { preventDefault: () => void; }){
|
|
35
|
+
if(this.isMobile && !this.mobileHoverEffect){
|
|
36
|
+
this.mobileHoverEffect = true;
|
|
37
|
+
event.preventDefault();
|
|
38
|
+
}
|
|
39
|
+
},
|
|
40
|
+
},
|
|
41
|
+
})
|
|
42
|
+
</script>
|
|
@@ -1,31 +1,32 @@
|
|
|
1
1
|
<template>
|
|
2
2
|
<div class="module-box flex-grow-0">
|
|
3
|
-
<h3 class="mb-
|
|
3
|
+
<h3 class="mb-2 height-40">
|
|
4
4
|
{{ $t('Subscribe emission') }}
|
|
5
5
|
</h3>
|
|
6
|
-
<
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
6
|
+
<template
|
|
7
|
+
v-for="(sub, index) in subscriptionsDisplay"
|
|
8
|
+
:key="sub.name"
|
|
9
|
+
>
|
|
10
|
+
<a
|
|
11
|
+
rel="noopener"
|
|
12
|
+
target="_blank"
|
|
13
|
+
:class="[
|
|
14
|
+
0 === index? 'first': '',
|
|
15
|
+
subscriptionsDisplay.length-1 === index? 'last': '',
|
|
16
|
+
]"
|
|
17
|
+
class="btn share-btn mb-2 mx-2"
|
|
18
|
+
:href="sub.url"
|
|
19
|
+
:title="sub.name"
|
|
10
20
|
>
|
|
11
|
-
<
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
<div
|
|
21
|
-
v-for="index in getPathNumber(sub.name)"
|
|
22
|
-
:key="index"
|
|
23
|
-
:class="'path'+(index+1)"
|
|
24
|
-
/>
|
|
25
|
-
</span>
|
|
26
|
-
</a>
|
|
27
|
-
</template>
|
|
28
|
-
</div>
|
|
21
|
+
<span :class="sub.icon">
|
|
22
|
+
<div
|
|
23
|
+
v-for="indexPath in getPathNumber(sub.name)"
|
|
24
|
+
:key="indexPath"
|
|
25
|
+
:class="'path'+(indexPath+1)"
|
|
26
|
+
/>
|
|
27
|
+
</span>
|
|
28
|
+
</a>
|
|
29
|
+
</template>
|
|
29
30
|
</div>
|
|
30
31
|
</template>
|
|
31
32
|
|
|
@@ -37,22 +38,23 @@ export default defineComponent({
|
|
|
37
38
|
emission: { default: undefined, type: Object as ()=> Emission},
|
|
38
39
|
podcastId: { default: undefined, type: Number},
|
|
39
40
|
},
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
{name
|
|
45
|
-
{name:'
|
|
46
|
-
{name:'
|
|
47
|
-
{name:'
|
|
48
|
-
{name:'
|
|
49
|
-
{name:'
|
|
50
|
-
{name:'
|
|
51
|
-
{name:'
|
|
52
|
-
{name:'
|
|
53
|
-
{name:'
|
|
54
|
-
|
|
55
|
-
|
|
41
|
+
computed:{
|
|
42
|
+
subscriptionsDisplay(){
|
|
43
|
+
const sub = [
|
|
44
|
+
{name : 'amazon', icon : 'saooti-amazon', url : this.getUrl('amazon')},
|
|
45
|
+
{name:'applePodcast', icon:'saooti-apple', url : this.getUrl('applePodcast')},
|
|
46
|
+
{name:'deezer', icon:'saooti-deezer', url : this.getUrl('deezer')},
|
|
47
|
+
{name:'googlePodcasts', icon:"saooti-google-podcasts", url : this.getUrl('googlePodcasts')},
|
|
48
|
+
{name:'playerFm', icon: 'saooti-saooti-playerfm', url : this.getUrl('playerFm')},
|
|
49
|
+
{name:'pocketCasts', icon:'saooti-pocket-casts', url : this.getUrl('pocketCasts')},
|
|
50
|
+
{name:'podcastAddict', icon: 'saooti-podcast-addict', url : this.getUrl('podcastAddict')},
|
|
51
|
+
{name:'radioline', icon:'saooti-radioline', url : this.getUrl('radioline')},
|
|
52
|
+
{name:'spotify', icon:'saooti-spotify', url : this.getUrl('spotify')},
|
|
53
|
+
{name:'stitcher', icon:'saooti-stitcher-logo', url : this.getUrl('stitcher')},
|
|
54
|
+
{name:'tunein', icon:'saooti-tunin', url : this.getUrl('tunein')}
|
|
55
|
+
];
|
|
56
|
+
return sub.filter(item=> item.url);
|
|
57
|
+
}
|
|
56
58
|
},
|
|
57
59
|
|
|
58
60
|
methods: {
|
|
@@ -77,3 +79,8 @@ export default defineComponent({
|
|
|
77
79
|
},
|
|
78
80
|
})
|
|
79
81
|
</script>
|
|
82
|
+
<style lang="scss">
|
|
83
|
+
.height-40{
|
|
84
|
+
height: 40px;
|
|
85
|
+
}
|
|
86
|
+
</style>
|
|
@@ -119,7 +119,7 @@ export default defineComponent({
|
|
|
119
119
|
{title : this.$t('Home'), routeName: 'home', condition : true},
|
|
120
120
|
{title : this.$t('Podcasts'), routeName: 'podcasts', condition : true},
|
|
121
121
|
{title : this.$t('Emissions'), routeName: 'emissions', condition : true},
|
|
122
|
-
{title : this.$t('Productors'), routeName: 'productors', condition : !this.isPodcastmaker && !this.
|
|
122
|
+
{title : this.$t('Productors'), routeName: 'productors', condition : !this.isPodcastmaker && !this.$store.state.filter.organisationId},
|
|
123
123
|
{title : this.$t('Playlists'), routeName: 'playlists', condition : true},
|
|
124
124
|
{title : this.$t('Speakers'), routeName: 'participants', condition : true},]
|
|
125
125
|
},
|
|
@@ -129,9 +129,6 @@ export default defineComponent({
|
|
|
129
129
|
{title : this.$t('Term of use'), routeName: '/main/pub/cgu'},
|
|
130
130
|
{title : this.$t('Used libraries'), routeName: "/main/pub/libraries"}]
|
|
131
131
|
},
|
|
132
|
-
filterOrga(): string {
|
|
133
|
-
return this.$store.state.filter.organisationId;
|
|
134
|
-
},
|
|
135
132
|
isPodcastmaker(): boolean {
|
|
136
133
|
return (state.generalParameters.podcastmaker as boolean);
|
|
137
134
|
},
|
|
@@ -35,32 +35,16 @@
|
|
|
35
35
|
</router-link>
|
|
36
36
|
</template>
|
|
37
37
|
<template v-else>
|
|
38
|
-
<
|
|
39
|
-
v-
|
|
40
|
-
|
|
41
|
-
to="/main/priv/upload"
|
|
38
|
+
<template
|
|
39
|
+
v-for="routerBack in routerBackoffice"
|
|
40
|
+
:key="routerBack.path"
|
|
42
41
|
>
|
|
43
|
-
{{ $t('Upload') }}
|
|
44
|
-
</router-link>
|
|
45
|
-
<template v-if="!isPodcastmaker">
|
|
46
|
-
<router-link
|
|
47
|
-
to="/main/priv/backoffice"
|
|
48
|
-
class="show-phone dropdown-item"
|
|
49
|
-
>
|
|
50
|
-
{{ $t('My space') }}
|
|
51
|
-
</router-link>
|
|
52
|
-
<router-link
|
|
53
|
-
class="dropdown-item"
|
|
54
|
-
to="/main/priv/edit/profile"
|
|
55
|
-
>
|
|
56
|
-
{{ $t('Edit my profile') }}
|
|
57
|
-
</router-link>
|
|
58
42
|
<router-link
|
|
59
|
-
v-if="
|
|
60
|
-
class="
|
|
61
|
-
to="
|
|
43
|
+
v-if="!isPodcastmaker && routerBack.condition"
|
|
44
|
+
:class="routerBack.class"
|
|
45
|
+
:to="routerBack.path"
|
|
62
46
|
>
|
|
63
|
-
{{
|
|
47
|
+
{{ routerBack.title }}
|
|
64
48
|
</router-link>
|
|
65
49
|
</template>
|
|
66
50
|
<template v-if="!isEducation">
|
|
@@ -90,6 +74,12 @@
|
|
|
90
74
|
{{ $t('Logout') }}
|
|
91
75
|
</a>
|
|
92
76
|
</template>
|
|
77
|
+
<router-link
|
|
78
|
+
class="dropdown-item"
|
|
79
|
+
to="/main/pub/contact"
|
|
80
|
+
>
|
|
81
|
+
{{ $t('Contact') }}
|
|
82
|
+
</router-link>
|
|
93
83
|
</div>
|
|
94
84
|
</div>
|
|
95
85
|
</div>
|
|
@@ -104,8 +94,20 @@ export default defineComponent({
|
|
|
104
94
|
props: {
|
|
105
95
|
isEducation: { default: false, type: Boolean},
|
|
106
96
|
},
|
|
107
|
-
|
|
108
97
|
computed: {
|
|
98
|
+
/* helpLink(){
|
|
99
|
+
return [
|
|
100
|
+
{title:this.$t('Help'), href:'https://help.octopus.saooti.com/Aide/'},
|
|
101
|
+
{title:this.$t('TutoMag'),href:"https://help.octopus.saooti.com/"}];
|
|
102
|
+
}, */
|
|
103
|
+
routerBackoffice(){
|
|
104
|
+
return [
|
|
105
|
+
{title:this.$t('Upload'),class:"btn btn-primary w-100", path:'/main/priv/upload', condition: this.isContribution},
|
|
106
|
+
{title:this.$t('My space'),class:"show-phone dropdown-item", path:'/main/priv/backoffice', condition: true},
|
|
107
|
+
{title:this.$t('Edit my profile'),class:"dropdown-item", path:'/main/priv/edit/profile', condition: true},
|
|
108
|
+
{title:this.$t('Edit my organisation'),class:"dropdown-item", path:'/main/priv/edit/organisation', condition: this.isOrganisation}];
|
|
109
|
+
},
|
|
110
|
+
|
|
109
111
|
isPodcastmaker(): boolean {
|
|
110
112
|
return (state.generalParameters.podcastmaker as boolean);
|
|
111
113
|
},
|
|
@@ -131,13 +131,9 @@ export default defineComponent({
|
|
|
131
131
|
async onOrganisationSelected(organisation: Organisation|undefined) {
|
|
132
132
|
if (organisation && organisation.id) {
|
|
133
133
|
await this.selectOrganisation(organisation.id);
|
|
134
|
-
|
|
135
|
-
if (this.$route.query.productor) {
|
|
136
|
-
const queries = this.$route.query;
|
|
137
|
-
this.$router.push({ query: {...queries, ...{productor: undefined} } });
|
|
138
|
-
}
|
|
139
|
-
this.$store.commit('filterOrga', { orgaId: undefined });
|
|
134
|
+
return;
|
|
140
135
|
}
|
|
136
|
+
this.removeSelectedOrga();
|
|
141
137
|
},
|
|
142
138
|
},
|
|
143
139
|
})
|
|
@@ -149,7 +145,7 @@ export default defineComponent({
|
|
|
149
145
|
position: fixed;
|
|
150
146
|
top: 3rem;
|
|
151
147
|
bottom: 0;
|
|
152
|
-
|
|
148
|
+
right: 0;
|
|
153
149
|
z-index: 10;
|
|
154
150
|
background: #fff;
|
|
155
151
|
width: 20%;
|
|
@@ -3,11 +3,6 @@
|
|
|
3
3
|
class="top-bar-container"
|
|
4
4
|
:class="{ 'shadow-element': scrolled }"
|
|
5
5
|
>
|
|
6
|
-
<div
|
|
7
|
-
class="saooti-burger-menu"
|
|
8
|
-
:title="$t('open left Menu')"
|
|
9
|
-
@click="onDisplayMenu(false)"
|
|
10
|
-
/>
|
|
11
6
|
<router-link
|
|
12
7
|
class="top-bar-logo"
|
|
13
8
|
:to="{
|
|
@@ -51,6 +46,11 @@
|
|
|
51
46
|
</router-link>
|
|
52
47
|
</template>
|
|
53
48
|
</div>
|
|
49
|
+
<div
|
|
50
|
+
class="saooti-burger-menu"
|
|
51
|
+
:title="$t('open left Menu')"
|
|
52
|
+
@click="onDisplayMenu(false)"
|
|
53
|
+
/>
|
|
54
54
|
<div class="d-flex flex-column">
|
|
55
55
|
<div class="hosted-by">
|
|
56
56
|
<span>{{ $t('Hosted by') }}</span><span class="ms-1 me-1 primary-darker">Saooti</span>
|
|
@@ -104,7 +104,7 @@ export default defineComponent({
|
|
|
104
104
|
computed: {
|
|
105
105
|
routerLinkArray(){
|
|
106
106
|
return [
|
|
107
|
-
{title : this.$t('Live'), routeName: 'lives', condition :
|
|
107
|
+
{title : this.$t('Live'), routeName: 'lives', condition : (state.generalParameters.isLiveTab as boolean) &&((this.filterOrga && this.filterOrgaLive) || !this.filterOrga)},
|
|
108
108
|
{title : this.$t('Podcasts'), routeName: 'podcasts', condition : true},
|
|
109
109
|
{title : this.$t('Emissions'), routeName: 'emissions', condition : true},
|
|
110
110
|
{title : this.$t('Speakers'), routeName: 'participants', condition : true},
|
|
@@ -124,9 +124,6 @@ export default defineComponent({
|
|
|
124
124
|
isPodcastmaker(): boolean {
|
|
125
125
|
return (state.generalParameters.podcastmaker as boolean);
|
|
126
126
|
},
|
|
127
|
-
isLiveTab(): boolean {
|
|
128
|
-
return (state.generalParameters.isLiveTab as boolean);
|
|
129
|
-
},
|
|
130
127
|
filterOrga(): string {
|
|
131
128
|
return this.$store.state.filter.organisationId;
|
|
132
129
|
},
|
|
@@ -199,14 +196,10 @@ export default defineComponent({
|
|
|
199
196
|
async onOrganisationSelected(organisation: Organisation | undefined): Promise<void> {
|
|
200
197
|
if (organisation && organisation.id) {
|
|
201
198
|
await this.selectOrganisation(organisation.id);
|
|
202
|
-
|
|
203
|
-
this.organisationId = undefined;
|
|
204
|
-
if (this.$route.query.productor) {
|
|
205
|
-
const queries = this.$route.query;
|
|
206
|
-
this.$router.push({ query: { ...queries, ...{productor: undefined} } });
|
|
207
|
-
}
|
|
208
|
-
this.$store.commit('filterOrga', { orgaId: undefined });
|
|
199
|
+
return;
|
|
209
200
|
}
|
|
201
|
+
this.organisationId = undefined;
|
|
202
|
+
this.removeSelectedOrga();
|
|
210
203
|
},
|
|
211
204
|
},
|
|
212
205
|
})
|
|
@@ -29,5 +29,11 @@ export const orgaFilter = defineComponent({
|
|
|
29
29
|
this.handle403((error as AxiosError));
|
|
30
30
|
}
|
|
31
31
|
},
|
|
32
|
+
removeSelectedOrga(): void{
|
|
33
|
+
if (this.$route.query.productor) {
|
|
34
|
+
this.$router.push({ query: {...this.$route.query, ...{productor: undefined} } });
|
|
35
|
+
}
|
|
36
|
+
this.$store.commit('filterOrga', { orgaId: undefined });
|
|
37
|
+
}
|
|
32
38
|
},
|
|
33
39
|
});
|
|
@@ -58,7 +58,7 @@ export const playerLive = defineComponent({
|
|
|
58
58
|
let hls = new Hls();
|
|
59
59
|
if(this.$store.state.authentication.isAuthenticated && this.$store.state.oAuthParam.accessToken){
|
|
60
60
|
hls = new Hls({xhrSetup:
|
|
61
|
-
(xhr:
|
|
61
|
+
(xhr: XMLHttpRequest) => {
|
|
62
62
|
xhr.setRequestHeader("Authorization", "Bearer " + this.$store.state.oAuthParam.accessToken);
|
|
63
63
|
}
|
|
64
64
|
}
|
|
@@ -30,11 +30,6 @@
|
|
|
30
30
|
/>
|
|
31
31
|
<!-- eslint-enable -->
|
|
32
32
|
</div>
|
|
33
|
-
<ShareButtons
|
|
34
|
-
v-if="pageParameters.isRssButton"
|
|
35
|
-
:emission="emission"
|
|
36
|
-
:big-round="true"
|
|
37
|
-
/>
|
|
38
33
|
</div>
|
|
39
34
|
<SubscribeButtons
|
|
40
35
|
v-if="pageParameters.isShareButtons && countLink >= 1"
|
|
@@ -140,7 +135,6 @@ export default defineComponent({
|
|
|
140
135
|
isShareButtons: (state.podcastPage.ShareButtons as boolean),
|
|
141
136
|
isSharePlayer: (state.podcastPage.SharePlayer as boolean),
|
|
142
137
|
isShareDistribution:(state.podcastPage.ShareDistribution as boolean),
|
|
143
|
-
isRssButton:(state.emissionPage.rssButton as boolean),
|
|
144
138
|
isDisplayPodcasts:(state.emissionPage.isDisplayPodcasts as boolean),
|
|
145
139
|
};
|
|
146
140
|
},
|
|
@@ -67,7 +67,7 @@ export default defineComponent({
|
|
|
67
67
|
data() {
|
|
68
68
|
return {
|
|
69
69
|
first: 0 as number,
|
|
70
|
-
size:
|
|
70
|
+
size: 30 as number,
|
|
71
71
|
searchPattern: '' as string,
|
|
72
72
|
organisationId: undefined as string | undefined,
|
|
73
73
|
monetization: 'UNDEFINED' as string, // UNDEFINED, YES, NO
|
|
@@ -1,24 +1,60 @@
|
|
|
1
1
|
<template>
|
|
2
2
|
<div class="page-box page-box-absolute bg-white justify-content-evenly">
|
|
3
|
-
<
|
|
4
|
-
class="
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
3
|
+
<div class="not-auth-content d-flex-column justify-content-between">
|
|
4
|
+
<div class="d-flex flex-column justify-content-around">
|
|
5
|
+
<img
|
|
6
|
+
class="logo-octopus"
|
|
7
|
+
src="/img/logo_octopus_final.svg"
|
|
8
|
+
:alt="$t('Logo of main page')"
|
|
9
|
+
>
|
|
10
|
+
<h2>{{ $t('You do not have the right to access this page' ) }}</h2>
|
|
11
|
+
</div>
|
|
12
|
+
<img
|
|
13
|
+
class="stop-octopus-img"
|
|
14
|
+
src="/img/403.jpeg"
|
|
15
|
+
:alt="$t('You do not have the right to access this page')"
|
|
16
|
+
>
|
|
17
|
+
</div>
|
|
18
|
+
|
|
9
19
|
<a
|
|
10
20
|
class="btn btn-primary"
|
|
11
|
-
href="/sso/logout"
|
|
12
|
-
>{{
|
|
21
|
+
:href="authenticated ?'/sso/logout':'/sso/login'"
|
|
22
|
+
>{{ authText }}</a>
|
|
13
23
|
</div>
|
|
14
24
|
</template>
|
|
15
25
|
|
|
16
26
|
<script lang="ts">
|
|
27
|
+
import { state } from '../../store/paramStore';
|
|
17
28
|
import { defineComponent } from 'vue';
|
|
18
29
|
export default defineComponent({
|
|
19
30
|
name: 'Error403Page',
|
|
31
|
+
computed: {
|
|
32
|
+
authenticated(): boolean {
|
|
33
|
+
return (state.generalParameters.authenticated as boolean);
|
|
34
|
+
},
|
|
35
|
+
authText():string{
|
|
36
|
+
return this.authenticated ? this.$t('Logout') : this.$t('Login');
|
|
37
|
+
}
|
|
38
|
+
},
|
|
20
39
|
mounted() {
|
|
21
40
|
document.title = this.$store.state.general.metaTitle;
|
|
22
41
|
},
|
|
23
42
|
});
|
|
24
43
|
</script>
|
|
44
|
+
<style lang="scss">
|
|
45
|
+
.octopus-app .not-auth-content{
|
|
46
|
+
@media (max-width: 960px) {
|
|
47
|
+
align-items: center;
|
|
48
|
+
}
|
|
49
|
+
.stop-octopus-img{
|
|
50
|
+
width: 600px;
|
|
51
|
+
height: auto;
|
|
52
|
+
@media (max-width: 1400px) {
|
|
53
|
+
width: 400px;
|
|
54
|
+
}
|
|
55
|
+
@media (max-width: 450px) {
|
|
56
|
+
width: 80%;
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
</style>
|