@saooti/octopus-sdk 36.0.2 → 36.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/package.json +1 -1
- package/public/css/fonts/icomoon.eot +0 -0
- package/public/css/fonts/icomoon.svg +21 -12
- package/public/css/fonts/icomoon.ttf +0 -0
- package/public/css/fonts/icomoon.woff +0 -0
- package/public/css/fonts/style.css +32 -5
- package/public/img/header-emissions.webp +0 -0
- package/public/img/header-home.webp +0 -0
- package/public/img/header-intervenants.webp +0 -0
- package/public/img/header-playlists.webp +0 -0
- package/public/img/header-podcasts.webp +0 -0
- package/src/assets/bootstrap.scss +26 -12
- package/src/assets/form.scss +2 -2
- package/src/assets/general.scss +16 -26
- package/src/assets/live.scss +0 -18
- package/src/assets/multiselect.scss +15 -25
- package/src/assets/share.scss +47 -12
- package/src/components/display/categories/CategoryChooser.vue +1 -1
- package/src/components/display/categories/CategoryFilter.vue +109 -62
- package/src/components/display/categories/CategoryList.vue +9 -20
- package/src/components/display/emission/EmissionChooser.vue +1 -1
- package/src/components/display/emission/EmissionInlineList.vue +1 -1
- package/src/components/display/emission/EmissionItem.vue +5 -5
- package/src/components/display/emission/EmissionPlayerItem.vue +15 -11
- package/src/components/display/filter/MonetizableFilter.vue +1 -1
- package/src/components/display/filter/ProductorSearch.vue +1 -1
- package/src/components/display/filter/RubriqueChoice.vue +1 -1
- package/src/components/display/list/ListPaginate.vue +14 -25
- package/src/components/display/list/Paginate.vue +71 -104
- package/src/components/display/list/PaginateParams.vue +66 -0
- package/src/components/display/live/CountDown.vue +1 -1
- package/src/components/display/live/LiveItem.vue +0 -7
- package/src/components/display/organisation/OrganisationChooser.vue +1 -1
- package/src/components/display/participant/ParticipantItem.vue +6 -12
- package/src/components/display/participant/ParticipantList.vue +2 -24
- package/src/components/display/playlist/PlaylistItem.vue +10 -10
- package/src/components/display/podcasts/AnimatorsItem.vue +1 -2
- package/src/components/display/podcasts/ParticipantDescription.vue +0 -30
- package/src/components/display/podcasts/PodcastFilterList.vue +1 -1
- package/src/components/display/podcasts/PodcastImage.vue +19 -13
- package/src/components/display/podcasts/PodcastInlineListClassic.vue +1 -1
- package/src/components/display/podcasts/PodcastInlineListTemplate.vue +14 -12
- package/src/components/display/podcasts/PodcastItem.vue +15 -9
- package/src/components/display/podcasts/PodcastItemInfo.vue +18 -55
- package/src/components/display/podcasts/PodcastModuleBox.vue +54 -26
- package/src/components/display/podcasts/PodcastSwiperList.vue +20 -10
- package/src/components/display/podcasts/TagList.vue +7 -2
- package/src/components/display/rubriques/RubriqueChooser.vue +2 -2
- package/src/components/display/rubriques/RubriqueList.vue +11 -19
- package/src/components/display/sharing/PlayerParameters.vue +59 -75
- package/src/components/display/sharing/ShareButtons.vue +20 -37
- package/src/components/display/sharing/ShareButtonsIntern.vue +74 -83
- package/src/components/display/sharing/ShareDistribution.vue +3 -2
- package/src/components/display/sharing/SharePlayer.vue +50 -50
- package/src/components/display/sharing/SharePlayerColors.vue +4 -4
- package/src/components/display/sharing/SharePlayerTypes.vue +25 -27
- package/src/components/display/sharing/SubscribeButtons.vue +2 -2
- package/src/components/form/ClassicCheckbox.vue +1 -1
- package/src/components/form/ClassicSearch.vue +2 -1
- package/src/components/misc/Footer.vue +19 -15
- package/src/components/misc/HomeDropdown.vue +14 -14
- package/src/components/misc/Popover.vue +2 -1
- package/src/components/misc/ProgressBar.vue +1 -1
- package/src/components/misc/TopBar.vue +54 -44
- package/src/components/misc/modal/ClassicModal.vue +2 -2
- package/src/components/misc/modal/NewsletterModal.vue +0 -1
- package/src/components/misc/player/Player.vue +5 -14
- package/src/components/misc/player/PlayerCompact.vue +2 -1
- package/src/components/pages/Emission.vue +64 -62
- package/src/components/pages/Emissions.vue +0 -9
- package/src/components/pages/Participant.vue +13 -15
- package/src/components/pages/Participants.vue +0 -7
- package/src/components/pages/Playlist.vue +43 -37
- package/src/components/pages/Playlists.vue +0 -5
- package/src/components/pages/Podcast.vue +65 -100
- package/src/components/pages/Podcasts.vue +1 -37
- package/src/locale/de.ts +6 -1
- package/src/locale/en.ts +6 -1
- package/src/locale/es.ts +6 -1
- package/src/locale/fr.ts +6 -1
- package/src/locale/it.ts +6 -1
- package/src/locale/sl.ts +6 -1
- package/src/sass/_variables.scss +6 -1
- package/src/stores/ParamSdkStore.ts +14 -22
- package/src/stores/PlayerStore.ts +11 -0
|
@@ -1,61 +1,77 @@
|
|
|
1
1
|
<template>
|
|
2
|
-
<
|
|
3
|
-
|
|
4
|
-
class="
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
</
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
2
|
+
<div class="d-flex flex-column me-2">
|
|
3
|
+
<div class="h4 mb-2">{{$t('Social networks')}}</div>
|
|
4
|
+
<div class="d-flex align-items-center">
|
|
5
|
+
<template
|
|
6
|
+
v-for="button in arrayShareButtons"
|
|
7
|
+
:key="button.title"
|
|
8
|
+
>
|
|
9
|
+
<a
|
|
10
|
+
v-if="button.condition"
|
|
11
|
+
rel="noopener"
|
|
12
|
+
target="_blank"
|
|
13
|
+
:href="button.url"
|
|
14
|
+
:class="getClass(button.className)"
|
|
15
|
+
class="me-2"
|
|
16
|
+
:title="button.title"
|
|
17
|
+
>
|
|
18
|
+
<div :class="button.icon" />
|
|
19
|
+
</a>
|
|
20
|
+
</template>
|
|
21
|
+
</div>
|
|
22
|
+
</div>
|
|
23
|
+
<div class="d-flex flex-column me-2" v-if="podcast || emission ||playlist">
|
|
24
|
+
<div class="h4 mb-2">{{$t('Newsletter')}}</div>
|
|
25
|
+
<div class="d-flex align-items-center justify-content-center">
|
|
26
|
+
<button
|
|
27
|
+
:class="getClass()"
|
|
28
|
+
class="saooti-newsletter"
|
|
29
|
+
:title="$t('Share newsletter')"
|
|
30
|
+
@click="newsletter = true"
|
|
31
|
+
/>
|
|
32
|
+
</div>
|
|
33
|
+
</div>
|
|
34
|
+
|
|
35
|
+
<div class="d-flex flex-column me-2">
|
|
36
|
+
<div class="h4 mb-2">{{$t('QR Code')}}</div>
|
|
37
|
+
<div class="d-flex align-items-center justify-content-center">
|
|
38
|
+
<button
|
|
39
|
+
:class="getClass()"
|
|
40
|
+
:title="$t('Share QR Code')"
|
|
41
|
+
@click="qrCode = true"
|
|
42
|
+
class="saooti-qrcode"
|
|
43
|
+
/>
|
|
44
|
+
</div>
|
|
45
|
+
</div>
|
|
46
|
+
|
|
47
|
+
<div class="d-flex flex-column me-2">
|
|
48
|
+
<div class="h4 mb-2">{{$t('Copy this page URL')}}</div>
|
|
49
|
+
<div class="d-flex align-items-center justify-content-center">
|
|
50
|
+
<button
|
|
51
|
+
:class="getClass()"
|
|
52
|
+
class="saooti-link"
|
|
53
|
+
:title="$t('Copy this page URL')"
|
|
54
|
+
@click="onCopyCode(urlPage,afterCopy)"
|
|
55
|
+
/>
|
|
56
|
+
</div>
|
|
57
|
+
</div>
|
|
58
|
+
|
|
59
|
+
<div class="d-flex flex-column me-2" v-if="''!==rssUrl && displayRss">
|
|
60
|
+
<div class="h4 mb-2">{{$t('Rss feed')}}</div>
|
|
61
|
+
<div class="d-flex align-items-center justify-content-center">
|
|
62
|
+
<a
|
|
63
|
+
rel="noopener"
|
|
64
|
+
target="_blank"
|
|
65
|
+
class="saooti-rss"
|
|
66
|
+
:class="getClass()"
|
|
67
|
+
:href="rssUrl"
|
|
68
|
+
:title="titleRssButton"
|
|
69
|
+
@click.prevent="openPopup()"
|
|
70
|
+
/>
|
|
71
|
+
</div>
|
|
72
|
+
</div>
|
|
73
|
+
|
|
74
|
+
|
|
59
75
|
<ClipboardModal
|
|
60
76
|
v-if="dataRSSSave"
|
|
61
77
|
:link="rssUrl"
|
|
@@ -140,12 +156,6 @@ export default defineComponent({
|
|
|
140
156
|
{ title: 'Whatsapp', icon:'saooti-Whatsapp', className:'btn-whatsapp', url :`whatsapp://send?text=${this.urlPage}`, condition: window.matchMedia('(hover: none)').matches}
|
|
141
157
|
]
|
|
142
158
|
},
|
|
143
|
-
isDownloadButton(): boolean{
|
|
144
|
-
return this.isDownloadButtonParam && undefined!==this.podcast && (!this.podcast.tags || !this.podcast.tags.includes('copyright'));
|
|
145
|
-
},
|
|
146
|
-
isDownloadButtonParam(): boolean {
|
|
147
|
-
return (state.podcastPage.downloadButton as boolean);
|
|
148
|
-
},
|
|
149
159
|
urlPage(): string{
|
|
150
160
|
return window.location.href;
|
|
151
161
|
},
|
|
@@ -179,9 +189,7 @@ export default defineComponent({
|
|
|
179
189
|
|
|
180
190
|
methods: {
|
|
181
191
|
getClass(className='btn-rss'): string{
|
|
182
|
-
|
|
183
|
-
returnString+= this.isVertical ? '' : ' mx-2';
|
|
184
|
-
return returnString;
|
|
192
|
+
return `btn ${className} share-btn mb-2 text-dark`;
|
|
185
193
|
},
|
|
186
194
|
openPopup(): void {
|
|
187
195
|
this.dataRSSSave = !this.dataRSSSave;
|
|
@@ -189,23 +197,6 @@ export default defineComponent({
|
|
|
189
197
|
afterCopy(): void{
|
|
190
198
|
(this.$refs.snackbar as InstanceType<typeof Snackbar>).open(this.$t('Link in clipboard'));
|
|
191
199
|
},
|
|
192
|
-
onDownload(urlToDownload: string, nameOfDownload: string): void{
|
|
193
|
-
const xhr = new XMLHttpRequest();
|
|
194
|
-
xhr.open('GET', urlToDownload, true);
|
|
195
|
-
xhr.responseType = 'blob';
|
|
196
|
-
xhr.onload = function() {
|
|
197
|
-
const urlCreator = window.URL || window.webkitURL;
|
|
198
|
-
const imageUrl = urlCreator.createObjectURL(this.response);
|
|
199
|
-
const tag = document.createElement('a');
|
|
200
|
-
tag.href = imageUrl;
|
|
201
|
-
tag.target = '_blank';
|
|
202
|
-
tag.download = nameOfDownload.replace(/ /g, '_');
|
|
203
|
-
document.body.appendChild(tag);
|
|
204
|
-
tag.click();
|
|
205
|
-
document.body.removeChild(tag);
|
|
206
|
-
};
|
|
207
|
-
xhr.send();
|
|
208
|
-
},
|
|
209
200
|
},
|
|
210
201
|
})
|
|
211
202
|
</script>
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
<template>
|
|
2
2
|
<div class="module-box">
|
|
3
|
-
<
|
|
3
|
+
<h2 class="big-h2 mb-3">{{ $t('Distribute') }}</h2>
|
|
4
4
|
<div class="sharing-distribution-container">
|
|
5
5
|
{{ $t('Rss feed:') }}
|
|
6
6
|
<div class="text-primary hide-small-screen text-break">
|
|
@@ -101,10 +101,11 @@ export default defineComponent({
|
|
|
101
101
|
</script>
|
|
102
102
|
|
|
103
103
|
<style lang="scss">
|
|
104
|
+
@import '@scss/_variables.scss';
|
|
104
105
|
.octopus-app{
|
|
105
106
|
.sharing-distribution-container {
|
|
106
107
|
border: 0.05rem solid #dee2e6;
|
|
107
|
-
border-radius:
|
|
108
|
+
border-radius: $octopus-borderradius;
|
|
108
109
|
padding: 0.4rem;
|
|
109
110
|
margin: 0.2rem 1rem 0.2rem 0;
|
|
110
111
|
display: flex;
|
|
@@ -1,24 +1,26 @@
|
|
|
1
1
|
<template>
|
|
2
|
-
<div>
|
|
3
|
-
<div class="
|
|
4
|
-
<
|
|
5
|
-
<
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
2
|
+
<div class="module-box overflow-visible">
|
|
3
|
+
<div class="d-flex justify-content-between align-items-center">
|
|
4
|
+
<h2 class="big-h2 mb-3 height-40">{{ $t('Embed') }}</h2>
|
|
5
|
+
<div
|
|
6
|
+
v-if="noAd && !isEducation"
|
|
7
|
+
class="sticker"
|
|
8
|
+
:title="$t('You cannot insert advertising')"
|
|
9
|
+
>
|
|
10
|
+
{{ $t('No advertising') }}
|
|
11
|
+
</div>
|
|
12
|
+
</div>
|
|
13
|
+
<template v-if="!exclusive && (authenticated || notExclusive)">
|
|
14
|
+
<div class="d-flex">
|
|
15
|
+
<iframe
|
|
16
|
+
id="miniplayerIframe"
|
|
17
|
+
title="miniplayer"
|
|
18
|
+
:src="iFrameSrc"
|
|
19
|
+
width="100%"
|
|
20
|
+
:height="iFrameHeight"
|
|
21
|
+
class="max-iframe mx-3"
|
|
22
|
+
/>
|
|
23
|
+
<div class="d-flex flex-column flex-grow-1">
|
|
22
24
|
<SharePlayerTypes
|
|
23
25
|
v-if="!isLiveReadyToRecord"
|
|
24
26
|
v-model:iFrameModel="iFrameModel"
|
|
@@ -37,44 +39,42 @@
|
|
|
37
39
|
id-checkbox="is-visible-checkbox"
|
|
38
40
|
:label="titleStillAvailable"
|
|
39
41
|
/>
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
42
|
+
<PlayerParameters
|
|
43
|
+
v-if="isPlayerParameter"
|
|
44
|
+
:is-visible="isVisible"
|
|
45
|
+
:chose-number-episode="displayChoiceAllEpisodes|| isLargeSuggestion"
|
|
46
|
+
:display-choice-all-episodes="displayChoiceAllEpisodes"
|
|
47
|
+
:display-transcript-param="displayTranscriptParam"
|
|
48
|
+
:display-article-param="displayArticleParam"
|
|
49
|
+
@displayArticle="displayArticle = $event"
|
|
50
|
+
@displayTranscript="displayTranscript = $event"
|
|
51
|
+
@episodeNumbers="episodeNumbers = $event"
|
|
52
|
+
@proceedReading="proceedReading = $event"
|
|
53
|
+
@isVisible="isVisible = $event"
|
|
54
|
+
@iFrameNumber="iFrameNumber = $event"
|
|
55
|
+
/>
|
|
56
|
+
<ShareModalPlayer
|
|
57
|
+
v-if="isShareModal"
|
|
58
|
+
:embed-link="iFrame"
|
|
59
|
+
:embedly-link="iFrameSrc"
|
|
60
|
+
:direct-link="podcast"
|
|
61
|
+
@close="isShareModal = false"
|
|
62
|
+
/>
|
|
56
63
|
<button
|
|
57
|
-
class="btn btn-primary
|
|
64
|
+
class="btn btn-primary width-fit-content mt-3"
|
|
58
65
|
@click="isShareModal = true"
|
|
59
66
|
>
|
|
60
67
|
{{ $t('Share the player') }}
|
|
61
68
|
</button>
|
|
62
69
|
</div>
|
|
63
|
-
</template>
|
|
64
|
-
<div v-else-if="exclusive && authenticated">
|
|
65
|
-
{{ $t('Only organisation members can share the content') }}
|
|
66
|
-
</div>
|
|
67
|
-
<div v-else-if="!authenticated">
|
|
68
|
-
{{ $t('Only authenticated members can share the content') }}
|
|
69
70
|
</div>
|
|
71
|
+
</template>
|
|
72
|
+
<div v-else-if="exclusive && authenticated">
|
|
73
|
+
{{ $t('Only organisation members can share the content') }}
|
|
74
|
+
</div>
|
|
75
|
+
<div v-else-if="!authenticated">
|
|
76
|
+
{{ $t('Only authenticated members can share the content') }}
|
|
70
77
|
</div>
|
|
71
|
-
<ShareModalPlayer
|
|
72
|
-
v-if="isShareModal"
|
|
73
|
-
:embed-link="iFrame"
|
|
74
|
-
:embedly-link="iFrameSrc"
|
|
75
|
-
:direct-link="podcast"
|
|
76
|
-
@close="isShareModal = false"
|
|
77
|
-
/>
|
|
78
78
|
</div>
|
|
79
79
|
</template>
|
|
80
80
|
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
<template>
|
|
2
|
-
<div class="d-flex
|
|
3
|
-
<div class="d-flex flex-column align-items-center flex-shrink-0 me-
|
|
4
|
-
<div>{{ $t('Choose color') }}</div>
|
|
2
|
+
<div class="d-flex mt-3">
|
|
3
|
+
<div class="d-flex flex-column align-items-center flex-shrink-0 me-4">
|
|
4
|
+
<div class="h4 mb-2">{{ $t('Choose color') }}</div>
|
|
5
5
|
<VSwatches
|
|
6
6
|
:model-value="color"
|
|
7
7
|
class="c-hand "
|
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
/>
|
|
14
14
|
</div>
|
|
15
15
|
<div class="d-flex flex-column align-items-center">
|
|
16
|
-
<div>{{ $t('Choose theme') }}</div>
|
|
16
|
+
<div class="h4 mb-2">{{ $t('Choose theme') }}</div>
|
|
17
17
|
<VSwatches
|
|
18
18
|
:model-value="theme"
|
|
19
19
|
class="c-hand "
|
|
@@ -1,35 +1,33 @@
|
|
|
1
1
|
<template>
|
|
2
|
-
<
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
2
|
+
<label
|
|
3
|
+
for="iframe-select"
|
|
4
|
+
title="select miniplayer"
|
|
5
|
+
/>
|
|
6
|
+
<select
|
|
7
|
+
id="iframe-select"
|
|
8
|
+
:value="iFrameModel"
|
|
9
|
+
class=""
|
|
10
|
+
@change="$emit('update:iFrameModel',$event.target.value)"
|
|
11
|
+
>
|
|
12
|
+
<template
|
|
13
|
+
v-for="option in optionsSelect"
|
|
14
|
+
:key="option.value"
|
|
12
15
|
>
|
|
13
|
-
<template
|
|
14
|
-
v-for="option in optionsSelect"
|
|
15
|
-
:key="option.value"
|
|
16
|
-
>
|
|
17
|
-
<option
|
|
18
|
-
v-if="option.condition"
|
|
19
|
-
:value="option.value"
|
|
20
|
-
>
|
|
21
|
-
{{ option.name }}
|
|
22
|
-
</option>
|
|
23
|
-
</template>
|
|
24
16
|
<option
|
|
25
|
-
v-
|
|
26
|
-
:
|
|
27
|
-
:value="player.customId"
|
|
17
|
+
v-if="option.condition"
|
|
18
|
+
:value="option.value"
|
|
28
19
|
>
|
|
29
|
-
{{
|
|
20
|
+
{{ option.name }}
|
|
30
21
|
</option>
|
|
31
|
-
</
|
|
32
|
-
|
|
22
|
+
</template>
|
|
23
|
+
<option
|
|
24
|
+
v-for="player in customPlayersDisplay"
|
|
25
|
+
:key="player.customId"
|
|
26
|
+
:value="player.customId"
|
|
27
|
+
>
|
|
28
|
+
{{ $t('Custom version') + " «" +player.name+"»" }}
|
|
29
|
+
</option>
|
|
30
|
+
</select>
|
|
33
31
|
</template>
|
|
34
32
|
|
|
35
33
|
<script lang="ts">
|
|
@@ -41,11 +41,12 @@ export default defineComponent({
|
|
|
41
41
|
});
|
|
42
42
|
</script>
|
|
43
43
|
<style lang="scss">
|
|
44
|
+
@import '@scss/_variables.scss';
|
|
44
45
|
.octopus-app{
|
|
45
46
|
.champs-searchPage{
|
|
46
47
|
input {
|
|
47
48
|
border: 2px solid #dee2e6;
|
|
48
|
-
border-radius:
|
|
49
|
+
border-radius: $octopus-borderradius;
|
|
49
50
|
margin: 0 !important;
|
|
50
51
|
}
|
|
51
52
|
.saooti-search,
|
|
@@ -41,21 +41,26 @@
|
|
|
41
41
|
rel="noopener"
|
|
42
42
|
target="_blank"
|
|
43
43
|
>{{ $t('Contact') }}</a>
|
|
44
|
-
<
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
height="44"
|
|
53
|
-
class="acpm_image"
|
|
54
|
-
src="/img/ACPM.webp"
|
|
44
|
+
<div class="d-flex align-items-center">
|
|
45
|
+
<div class="hosted-by">
|
|
46
|
+
{{ $t('Hosted by') }}<span class="ms-1 me-1 text-primary">Saooti</span>
|
|
47
|
+
</div>
|
|
48
|
+
<a
|
|
49
|
+
href="https://www.acpm.fr/L-ACPM/Certifications-et-Labels/Les-Podcasts"
|
|
50
|
+
rel="noopener"
|
|
51
|
+
target="_blank"
|
|
55
52
|
:title="$t('Octopus is ACPM Podcast accredited')"
|
|
56
|
-
:alt="$t('Octopus is ACPM Podcast accredited')"
|
|
57
53
|
>
|
|
58
|
-
|
|
54
|
+
<img
|
|
55
|
+
width="44"
|
|
56
|
+
height="44"
|
|
57
|
+
class="acpm_image"
|
|
58
|
+
src="/img/ACPM.webp"
|
|
59
|
+
:title="$t('Octopus is ACPM Podcast accredited')"
|
|
60
|
+
:alt="$t('Octopus is ACPM Podcast accredited')"
|
|
61
|
+
>
|
|
62
|
+
</a>
|
|
63
|
+
</div>
|
|
59
64
|
</div>
|
|
60
65
|
</template>
|
|
61
66
|
|
|
@@ -143,8 +148,7 @@ export default defineComponent({
|
|
|
143
148
|
<style lang="scss">
|
|
144
149
|
.octopus-app{
|
|
145
150
|
#footer{
|
|
146
|
-
font-size: 0.
|
|
147
|
-
position: sticky;
|
|
151
|
+
font-size: 0.6rem;
|
|
148
152
|
bottom: 0;
|
|
149
153
|
z-index: 10;
|
|
150
154
|
background: white;
|
|
@@ -2,13 +2,18 @@
|
|
|
2
2
|
<div
|
|
3
3
|
class="d-flex align-items-center"
|
|
4
4
|
>
|
|
5
|
-
<
|
|
5
|
+
<router-link
|
|
6
6
|
v-if="authenticated"
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
7
|
+
:title="$t('My space')"
|
|
8
|
+
to="/main/priv/backoffice"
|
|
9
|
+
class="btn admin-button hide-smallest-screen m-1 saooti-admin-menu"
|
|
10
|
+
/>
|
|
11
|
+
<router-link
|
|
12
|
+
v-if="isContribution"
|
|
13
|
+
:title="$t('Upload')"
|
|
14
|
+
to="/main/priv/upload"
|
|
15
|
+
class="btn admin-button hide-smallest-screen m-1 saooti-upload"
|
|
16
|
+
/>
|
|
12
17
|
<button
|
|
13
18
|
id="home-dropdown"
|
|
14
19
|
class="btn m-1 admin-button saooti-user"
|
|
@@ -112,7 +117,6 @@ export default defineComponent({
|
|
|
112
117
|
},
|
|
113
118
|
routerBackoffice(){
|
|
114
119
|
return [
|
|
115
|
-
{title:this.$t('Upload'),class:"btn btn-primary w-100", path:'/main/priv/upload', condition: (state.generalParameters.isContribution as boolean)},
|
|
116
120
|
{title:this.$t('My space'),class:"show-phone octopus-dropdown-item", path:'/main/priv/backoffice', condition: true},
|
|
117
121
|
{title:this.$t('Edit my profile'),class:"octopus-dropdown-item", path:'/main/priv/edit/profile', condition: true},
|
|
118
122
|
{title:this.$t('Edit my organisation'),class:"octopus-dropdown-item", path:'/main/priv/edit/organisation', condition: (state.generalParameters.isOrganisation as boolean) || 1<this.organisationsAvailable.length}];
|
|
@@ -124,14 +128,10 @@ export default defineComponent({
|
|
|
124
128
|
authenticated(): boolean {
|
|
125
129
|
return state.generalParameters.authenticated??false;
|
|
126
130
|
},
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
methods: {
|
|
130
|
-
goToUrl(url: string): void {
|
|
131
|
-
if (this.authenticated) {
|
|
132
|
-
this.$router.push(url);
|
|
133
|
-
}
|
|
131
|
+
isContribution(): boolean {
|
|
132
|
+
return state.generalParameters.isContribution??false;
|
|
134
133
|
},
|
|
135
134
|
},
|
|
135
|
+
|
|
136
136
|
})
|
|
137
137
|
</script>
|
|
@@ -158,10 +158,11 @@ export default defineComponent({
|
|
|
158
158
|
});
|
|
159
159
|
</script>
|
|
160
160
|
<style lang="scss">
|
|
161
|
+
@import '@scss/_variables.scss';
|
|
161
162
|
.octopus-popover{
|
|
162
163
|
background: white;
|
|
163
164
|
border: 1px solid #ccc;
|
|
164
|
-
border-radius:
|
|
165
|
+
border-radius: $octopus-borderradius;
|
|
165
166
|
position: absolute;
|
|
166
167
|
z-index: 9999;
|
|
167
168
|
&.octopus-dropdown{
|