@saooti/octopus-sdk 40.0.3 → 40.1.0
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/index.ts +31 -31
- package/package.json +1 -1
- package/plateform.conf +1 -1
- package/src/App.vue +9 -3
- package/src/api/classicApi.ts +1 -1
- package/src/components/composable/player/usePlayerDisplayTime.ts +33 -0
- package/src/components/composable/player/usePlayerLive.ts +150 -0
- package/src/components/composable/player/usePlayerLogic.ts +265 -0
- package/src/components/composable/player/usePlayerLogicProgress.ts +135 -0
- package/src/components/composable/player/usePlayerStitching.ts +213 -0
- package/src/components/composable/player/usePlayerTranscript.ts +120 -0
- package/src/components/composable/player/usePlayerVast.ts +207 -0
- package/src/components/composable/podcasts/useCountdown.ts +53 -0
- package/src/components/composable/podcasts/usePodcastView.ts +85 -0
- package/src/components/composable/radio/usefetchRadioData.ts +75 -0
- package/src/components/composable/route/useAdvancedParamInit.ts +165 -0
- package/src/components/composable/route/useRouteUpdateParams.ts +48 -0
- package/src/components/composable/route/useRubriquesFilterComputed.ts +24 -0
- package/src/components/composable/route/useRubriquesFilterParam.ts +32 -0
- package/src/components/composable/route/useSeoTitleUrl.ts +30 -0
- package/src/components/composable/route/useSimplePageParam.ts +50 -0
- package/src/components/composable/useErrorHandler.ts +25 -0
- package/src/components/composable/useImageProxy.ts +28 -0
- package/src/components/composable/useInit.ts +38 -0
- package/src/components/composable/useMetaTitle.ts +19 -0
- package/src/components/composable/useMetaTitleWatch.ts +14 -0
- package/src/components/composable/useOrgaComputed.ts +23 -0
- package/src/components/composable/useOrganisationFilter.ts +65 -0
- package/src/components/composable/useResizePhone.ts +27 -0
- package/src/components/composable/useSelenium.ts +10 -0
- package/src/components/composable/useTagOf.ts +21 -0
- package/src/components/display/accessibility/AccessibilityModal.vue +136 -0
- package/src/components/display/aggregator/RssSection.vue +1 -4
- package/src/components/display/categories/CategoryChooser.vue +1 -1
- package/src/components/display/categories/CategoryFilter.vue +7 -3
- package/src/components/display/categories/CategoryList.vue +5 -2
- package/src/components/display/comments/CommentInput.vue +0 -3
- package/src/components/display/comments/CommentList.vue +6 -2
- package/src/components/display/comments/CommentPlayer.vue +5 -2
- package/src/components/display/comments/CommentSection.vue +0 -2
- package/src/components/display/comments/item/CommentBasicView.vue +4 -4
- package/src/components/display/comments/item/CommentItem.vue +0 -4
- package/src/components/display/comments/item/CommentMoreActions.vue +6 -2
- package/src/components/display/emission/EmissionInlineList.vue +6 -6
- package/src/components/display/emission/EmissionItem.vue +13 -6
- package/src/components/display/emission/EmissionList.vue +5 -2
- package/src/components/display/emission/EmissionPlayerItem.vue +8 -5
- package/src/components/display/emission/EmissionPresentationItem.vue +16 -7
- package/src/components/display/emission/EmissionPresentationList.vue +10 -7
- package/src/components/display/filter/AdvancedSearch.vue +9 -6
- package/src/components/display/filter/CategorySearchFilter.vue +0 -2
- package/src/components/display/filter/ProductorSearch.vue +8 -3
- package/src/components/display/filter/RubriqueFilter.vue +6 -2
- package/src/components/display/list/ListPaginate.vue +9 -6
- package/src/components/display/list/SwiperList.vue +6 -5
- package/src/components/display/live/CountDown.vue +7 -15
- package/src/components/display/live/CountdownOctopus.vue +10 -30
- package/src/components/display/live/LiveItem.vue +0 -2
- package/src/components/display/live/LiveList.vue +9 -4
- package/src/components/display/live/RadioCurrently.vue +9 -5
- package/src/components/display/live/RadioImage.vue +6 -4
- package/src/components/display/live/RadioItem.vue +1 -2
- package/src/components/display/live/RadioList.vue +5 -3
- package/src/components/display/live/RadioPlanning.vue +10 -7
- package/src/components/display/organisation/OrganisationChooser.vue +8 -4
- package/src/components/display/participant/ParticipantInlineList.vue +5 -5
- package/src/components/display/participant/ParticipantItem.vue +13 -5
- package/src/components/display/participant/ParticipantList.vue +6 -3
- package/src/components/display/playlist/PlaylistItem.vue +12 -5
- package/src/components/display/playlist/PlaylistList.vue +6 -3
- package/src/components/display/playlist/PodcastList.vue +8 -4
- package/src/components/display/podcastmaker/PodcastmakerHeader.vue +6 -3
- package/src/components/display/podcasts/DownloadPodcastButton.vue +2 -4
- package/src/components/display/podcasts/PodcastImage.vue +6 -3
- package/src/components/display/podcasts/PodcastInlineListTemplate.vue +7 -4
- package/src/components/display/podcasts/PodcastItem.vue +1 -1
- package/src/components/display/podcasts/PodcastItemInfo.vue +6 -3
- package/src/components/display/podcasts/PodcastList.vue +6 -3
- package/src/components/display/podcasts/PodcastModuleBox.vue +22 -9
- package/src/components/display/podcasts/PodcastPlayBar.vue +1 -3
- package/src/components/display/podcasts/PodcastPlayButton.vue +1 -3
- package/src/components/display/podcasts/PodcastRawTranscript.vue +79 -10
- package/src/components/display/podcasts/PodcastRubriqueList.vue +4 -3
- package/src/components/display/podcasts/TagList.vue +5 -2
- package/src/components/display/podcasts/VideoModuleBox.vue +6 -3
- package/src/components/display/rubriques/RubriqueChooser.vue +0 -2
- package/src/components/display/rubriques/RubriqueList.vue +7 -5
- package/src/components/display/sharing/ShareButtons.vue +4 -2
- package/src/components/display/sharing/ShareDistribution.vue +4 -2
- package/src/components/form/ClassicEmojiPicker.vue +5 -3
- package/src/components/misc/ClassicLazy.vue +2 -2
- package/src/components/misc/FooterGarSection.vue +2 -3
- package/src/components/misc/FooterSection.vue +9 -5
- package/src/components/misc/MobileMenu.vue +5 -3
- package/src/components/misc/TopBar.vue +8 -6
- package/src/components/misc/TopBarMainContent.vue +8 -4
- package/src/components/misc/modal/ClassicModalInBody.vue +2 -3
- package/src/components/misc/modal/ClipboardModal.vue +4 -3
- package/src/components/misc/modal/NewsletterModal.vue +4 -3
- package/src/components/misc/modal/ShareModalPlayer.vue +4 -2
- package/src/components/misc/player/PlayerCompact.vue +30 -41
- package/src/components/misc/player/PlayerComponent.vue +69 -84
- package/src/components/misc/player/PlayerLarge.vue +43 -58
- package/src/components/misc/player/elements/PlayerImage.vue +6 -3
- package/src/components/misc/player/elements/PlayerTitle.vue +6 -2
- package/src/components/misc/player/radio/RadioHistory.vue +2 -4
- package/src/components/misc/player/video/PlayerVideoHls.vue +6 -7
- package/src/components/pages/EmissionPage.vue +19 -7
- package/src/components/pages/EmissionsPage.vue +31 -23
- package/src/components/pages/HomePage.vue +5 -2
- package/src/components/pages/PageLogout.vue +0 -2
- package/src/components/pages/PageNotFound.vue +11 -15
- package/src/components/pages/ParticipantPage.vue +18 -7
- package/src/components/pages/ParticipantsPage.vue +16 -21
- package/src/components/pages/PlaylistPage.vue +18 -7
- package/src/components/pages/PlaylistsPage.vue +20 -29
- package/src/components/pages/PodcastPage.vue +12 -6
- package/src/components/pages/PodcastsPage.vue +46 -48
- package/src/components/pages/RadioPage.vue +9 -6
- package/src/components/pages/RubriquePage.vue +41 -52
- package/src/components/pages/VideoPage.vue +152 -166
- package/src/helper/cookiesHelper.ts +20 -0
- package/src/helper/displayHelper.ts +15 -0
- package/src/helper/downloadHelper.ts +30 -0
- package/src/helper/{fetch.ts → fetchHelper.ts} +0 -1
- package/src/helper/loadScript.ts +22 -0
- package/src/helper/radio/radioHelper.ts +15 -0
- package/src/helper/{string.ts → stringHelper.ts} +5 -0
- package/src/locale/de.ts +4 -0
- package/src/locale/en.ts +4 -0
- package/src/locale/es.ts +4 -0
- package/src/locale/fr.ts +4 -0
- package/src/locale/it.ts +4 -0
- package/src/locale/sl.ts +4 -0
- package/src/stores/AuthStore.ts +1 -2
- package/src/stores/CommentStore.ts +8 -8
- package/src/stores/PlayerStore.ts +1 -1
- package/src/style/general.scss +15 -1
- package/src/components/mixins/cookies.ts +0 -22
- package/src/components/mixins/displayMethods.ts +0 -17
- package/src/components/mixins/download.ts +0 -33
- package/src/components/mixins/fetchParameters.ts +0 -16
- package/src/components/mixins/handle403.ts +0 -22
- package/src/components/mixins/imageProxy.ts +0 -28
- package/src/components/mixins/init.ts +0 -34
- package/src/components/mixins/loadScript.ts +0 -25
- package/src/components/mixins/metaTitle.ts +0 -15
- package/src/components/mixins/metaTitleWatch.ts +0 -26
- package/src/components/mixins/orgaComputed.ts +0 -23
- package/src/components/mixins/organisationFilter.ts +0 -56
- package/src/components/mixins/player/playerDisplayTime.ts +0 -35
- package/src/components/mixins/player/playerLive.ts +0 -144
- package/src/components/mixins/player/playerLogic.ts +0 -275
- package/src/components/mixins/player/playerLogicProgress.ts +0 -135
- package/src/components/mixins/player/playerStitching.ts +0 -202
- package/src/components/mixins/player/playerTranscript.ts +0 -113
- package/src/components/mixins/player/playerVast.ts +0 -198
- package/src/components/mixins/podcast/countdown.ts +0 -45
- package/src/components/mixins/podcast/podcastView.ts +0 -63
- package/src/components/mixins/radio/fetchRadioData.ts +0 -77
- package/src/components/mixins/resizePhone.ts +0 -26
- package/src/components/mixins/routeParam/advancedParamInit.ts +0 -202
- package/src/components/mixins/routeParam/paginateParamInit.ts +0 -43
- package/src/components/mixins/routeParam/routeParams.ts +0 -33
- package/src/components/mixins/routeParam/rubriquesFilterComputed.ts +0 -22
- package/src/components/mixins/routeParam/rubriquesFilterParam.ts +0 -29
- package/src/components/mixins/selenium.ts +0 -7
- package/src/components/mixins/seoTitleUrl.ts +0 -26
- package/src/components/mixins/tagOfMixins.ts +0 -19
- package/src/helper/uuidGenerator.ts +0 -7
- /package/src/{helper → components/composable}/useEventListener.ts +0 -0
- /package/src/{components/mixins/debounce.ts → helper/debounceHelper.ts} +0 -0
- /package/src/helper/{dom.ts → domHelper.ts} +0 -0
- /package/src/helper/{duration.ts → durationHelper.ts} +0 -0
|
@@ -1,12 +1,22 @@
|
|
|
1
1
|
<template>
|
|
2
2
|
<div>
|
|
3
|
-
<
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
@
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
3
|
+
<AccessibilityModal
|
|
4
|
+
v-if="isAccessibilityModal"
|
|
5
|
+
@save="saveAccessibility"
|
|
6
|
+
@close="isAccessibilityModal = false"
|
|
7
|
+
/>
|
|
8
|
+
<div class="transcription-section-buttons">
|
|
9
|
+
<button v-if="isOpen" class="btn btn-primary m-0" @click="isAccessibilityModal = true">
|
|
10
|
+
<EyeOutlineIcon class="me-1"/> {{ $t('Transcript Accessibility') }}
|
|
11
|
+
</button>
|
|
12
|
+
<button
|
|
13
|
+
class="btn btn-transcript"
|
|
14
|
+
:class="{ open: isOpen }"
|
|
15
|
+
@click="isOpen = !isOpen"
|
|
16
|
+
>
|
|
17
|
+
{{ buttonText }}
|
|
18
|
+
</button>
|
|
19
|
+
</div>
|
|
10
20
|
<div v-if="isOpen" class="transcription-body">
|
|
11
21
|
<ClassicLoading
|
|
12
22
|
:loading-text="!firstLoaded ? $t('Loading content ...') : undefined"
|
|
@@ -24,14 +34,21 @@
|
|
|
24
34
|
</template>
|
|
25
35
|
|
|
26
36
|
<script lang="ts">
|
|
37
|
+
import cookiesHelper from "../../../helper/cookiesHelper";
|
|
38
|
+
import EyeOutlineIcon from "vue-material-design-icons/EyeOutline.vue";
|
|
27
39
|
import classicApi from "../../../api/classicApi";
|
|
28
40
|
import ClassicLoading from "../../form/ClassicLoading.vue";
|
|
29
|
-
import { defineComponent } from "vue";
|
|
41
|
+
import { defineAsyncComponent, defineComponent } from "vue";
|
|
42
|
+
const AccessibilityModal = defineAsyncComponent(
|
|
43
|
+
() => import("../accessibility/AccessibilityModal.vue"),
|
|
44
|
+
);
|
|
30
45
|
export default defineComponent({
|
|
31
46
|
name: "PodcastRawTranscript",
|
|
32
47
|
|
|
33
48
|
components: {
|
|
34
49
|
ClassicLoading,
|
|
50
|
+
EyeOutlineIcon,
|
|
51
|
+
AccessibilityModal
|
|
35
52
|
},
|
|
36
53
|
|
|
37
54
|
props: {
|
|
@@ -42,6 +59,7 @@ export default defineComponent({
|
|
|
42
59
|
isOpen: false as boolean,
|
|
43
60
|
firstLoaded: false as boolean,
|
|
44
61
|
transcript: undefined as string | undefined,
|
|
62
|
+
isAccessibilityModal : false as boolean,
|
|
45
63
|
};
|
|
46
64
|
},
|
|
47
65
|
|
|
@@ -56,10 +74,37 @@ export default defineComponent({
|
|
|
56
74
|
async isOpen() {
|
|
57
75
|
if (this.isOpen && !this.firstLoaded) {
|
|
58
76
|
this.fetchTranscript();
|
|
77
|
+
this.getAccessibility();
|
|
59
78
|
}
|
|
60
79
|
},
|
|
61
80
|
},
|
|
62
81
|
methods: {
|
|
82
|
+
getAccessibility(){
|
|
83
|
+
let fontSize = cookiesHelper.getCookie("octopus-font-size");
|
|
84
|
+
if (null !== fontSize) {
|
|
85
|
+
this.setCssProperty('--octopus-accessibility-font-size', fontSize);
|
|
86
|
+
}
|
|
87
|
+
let background = cookiesHelper.getCookie("octopus-background");
|
|
88
|
+
if (null !== background) {
|
|
89
|
+
this.setCssProperty('--octopus-accessibility-background', background);
|
|
90
|
+
}
|
|
91
|
+
let color = cookiesHelper.getCookie("octopus-color");
|
|
92
|
+
if (null !== color) {
|
|
93
|
+
this.setCssProperty('--octopus-accessibility-color', color);
|
|
94
|
+
}
|
|
95
|
+
},
|
|
96
|
+
setCssProperty(name: string, value: string){
|
|
97
|
+
document.documentElement.style.setProperty(name,value);
|
|
98
|
+
},
|
|
99
|
+
saveAccessibility(accessibility: {fontSize: number,background: string,color: string}){
|
|
100
|
+
this.setCssProperty('--octopus-accessibility-font-size', accessibility.fontSize+'px');
|
|
101
|
+
cookiesHelper.setCookie("octopus-font-size", accessibility.fontSize+'px');
|
|
102
|
+
this.setCssProperty('--octopus-accessibility-background', accessibility.background);
|
|
103
|
+
cookiesHelper.setCookie("octopus-background",accessibility.background);
|
|
104
|
+
this.setCssProperty('--octopus-accessibility-color', accessibility.color);
|
|
105
|
+
cookiesHelper.setCookie("octopus-color",accessibility.color);
|
|
106
|
+
this.isAccessibilityModal = false;
|
|
107
|
+
},
|
|
63
108
|
async fetchTranscript() {
|
|
64
109
|
if (!this.podcastId) {
|
|
65
110
|
return;
|
|
@@ -78,15 +123,36 @@ export default defineComponent({
|
|
|
78
123
|
});
|
|
79
124
|
</script>
|
|
80
125
|
<style lang="scss">
|
|
81
|
-
|
|
82
|
-
|
|
126
|
+
:root {
|
|
127
|
+
--octopus-accessibility-font-size: 16px;
|
|
128
|
+
--octopus-accessibility-background: var(--octopus-background);
|
|
129
|
+
--octopus-accessibility-color: var(--octopus-color-text);
|
|
130
|
+
}
|
|
83
131
|
.octopus-app {
|
|
132
|
+
.transcription-section-buttons{
|
|
133
|
+
display: flex;
|
|
134
|
+
justify-content: space-between;
|
|
135
|
+
flex-wrap: wrap;
|
|
136
|
+
@media (width <= 625px) {
|
|
137
|
+
flex-direction: column;
|
|
138
|
+
}
|
|
139
|
+
}
|
|
84
140
|
.btn-transcript {
|
|
85
141
|
position: relative;
|
|
86
142
|
border-radius: var(--octopus-border-radius);
|
|
87
143
|
overflow: hidden;
|
|
88
144
|
background: var(--octopus-secondary);
|
|
89
145
|
transition: all 0.2s linear 0s;
|
|
146
|
+
|
|
147
|
+
&.open{
|
|
148
|
+
margin-left:auto;
|
|
149
|
+
@media (width <= 625px) {
|
|
150
|
+
margin-top: 0.5rem;
|
|
151
|
+
}
|
|
152
|
+
}
|
|
153
|
+
&:not(.open){
|
|
154
|
+
margin-right: auto;
|
|
155
|
+
}
|
|
90
156
|
|
|
91
157
|
&:not(.open)::before,
|
|
92
158
|
&.open::after {
|
|
@@ -137,12 +203,15 @@ export default defineComponent({
|
|
|
137
203
|
}
|
|
138
204
|
|
|
139
205
|
.transcription-body {
|
|
206
|
+
font-size: var(--octopus-accessibility-font-size);
|
|
140
207
|
position: relative;
|
|
141
208
|
padding: 1rem;
|
|
142
209
|
max-height: 250px;
|
|
143
210
|
display: flex;
|
|
144
211
|
justify-content: center;
|
|
145
212
|
white-space: pre-wrap;
|
|
213
|
+
background: var(--octopus-accessibility-background);
|
|
214
|
+
color: var(--octopus-accessibility-color);
|
|
146
215
|
|
|
147
216
|
.transcription-text {
|
|
148
217
|
overflow: hidden auto;
|
|
@@ -41,9 +41,7 @@ export default defineComponent({
|
|
|
41
41
|
init: false as boolean,
|
|
42
42
|
};
|
|
43
43
|
},
|
|
44
|
-
|
|
45
|
-
this.fetchRubriquages();
|
|
46
|
-
},
|
|
44
|
+
|
|
47
45
|
computed:{
|
|
48
46
|
...mapState(useFilterStore, ["filterOrgaId"]),
|
|
49
47
|
organisationQuery(){
|
|
@@ -53,6 +51,9 @@ export default defineComponent({
|
|
|
53
51
|
return { o: this.orgaId};
|
|
54
52
|
}
|
|
55
53
|
},
|
|
54
|
+
created() {
|
|
55
|
+
this.fetchRubriquages();
|
|
56
|
+
},
|
|
56
57
|
methods:{
|
|
57
58
|
...mapActions(useSaveFetchStore, ["getOrgaRubriques"]),
|
|
58
59
|
async fetchRubriquages(){
|
|
@@ -44,13 +44,12 @@ import { defineAsyncComponent, defineComponent } from "vue";
|
|
|
44
44
|
const ClassicPopover = defineAsyncComponent(
|
|
45
45
|
() => import("../../misc/ClassicPopover.vue"),
|
|
46
46
|
);
|
|
47
|
-
import
|
|
47
|
+
import {useTagOf} from "../../composable/useTagOf";
|
|
48
48
|
export default defineComponent({
|
|
49
49
|
name: "TagList",
|
|
50
50
|
components: {
|
|
51
51
|
ClassicPopover,
|
|
52
52
|
},
|
|
53
|
-
mixins: [tagOfMixins],
|
|
54
53
|
props: {
|
|
55
54
|
tagList: { default: () => [], type: Array as () => Array<string> },
|
|
56
55
|
podcastAnnotations: {
|
|
@@ -60,6 +59,10 @@ export default defineComponent({
|
|
|
60
59
|
},
|
|
61
60
|
},
|
|
62
61
|
},
|
|
62
|
+
setup(){
|
|
63
|
+
const { isOuestFranceTag, formateOfTag } = useTagOf();
|
|
64
|
+
return { isOuestFranceTag, formateOfTag }
|
|
65
|
+
},
|
|
63
66
|
computed: {
|
|
64
67
|
ouestFranceMainTag(): string | undefined {
|
|
65
68
|
if (this.podcastAnnotations?.["mainOfTag"]) {
|
|
@@ -24,7 +24,7 @@
|
|
|
24
24
|
|
|
25
25
|
<script lang="ts">
|
|
26
26
|
import { Podcast } from "@/stores/class/general/podcast";
|
|
27
|
-
import
|
|
27
|
+
import displayHelper from "../../../helper/displayHelper";
|
|
28
28
|
import PodcastRawTranscript from "./PodcastRawTranscript.vue";
|
|
29
29
|
import { defineAsyncComponent, defineComponent } from "vue";
|
|
30
30
|
const ParticipantDescription = defineAsyncComponent(
|
|
@@ -37,8 +37,6 @@ export default defineComponent({
|
|
|
37
37
|
PodcastRawTranscript,
|
|
38
38
|
},
|
|
39
39
|
|
|
40
|
-
mixins: [displayMethods],
|
|
41
|
-
|
|
42
40
|
props: {
|
|
43
41
|
podcast: { default: undefined, type: Object as () => Podcast },
|
|
44
42
|
date: { default: "", type: String },
|
|
@@ -50,5 +48,10 @@ export default defineComponent({
|
|
|
50
48
|
return {};
|
|
51
49
|
},
|
|
52
50
|
computed: {},
|
|
51
|
+
methods: {
|
|
52
|
+
urlify(text:string|undefined){
|
|
53
|
+
return displayHelper.urlify(text);
|
|
54
|
+
},
|
|
55
|
+
}
|
|
53
56
|
});
|
|
54
57
|
</script>
|
|
@@ -21,7 +21,6 @@
|
|
|
21
21
|
</template>
|
|
22
22
|
|
|
23
23
|
<script lang="ts">
|
|
24
|
-
import selenium from "../../mixins/selenium";
|
|
25
24
|
import { Rubrique } from "@/stores/class/rubrique/rubrique";
|
|
26
25
|
import ClassicMultiselect from "../../form/ClassicMultiselect.vue";
|
|
27
26
|
import { defineComponent } from "vue";
|
|
@@ -29,7 +28,6 @@ export default defineComponent({
|
|
|
29
28
|
components: {
|
|
30
29
|
ClassicMultiselect,
|
|
31
30
|
},
|
|
32
|
-
mixins: [selenium],
|
|
33
31
|
props: {
|
|
34
32
|
defaultanswer: { default: "", type: String },
|
|
35
33
|
width: { default: "100%", type: String },
|
|
@@ -51,7 +51,7 @@
|
|
|
51
51
|
|
|
52
52
|
<script lang="ts">
|
|
53
53
|
import PlusIcon from "vue-material-design-icons/Plus.vue";
|
|
54
|
-
import {
|
|
54
|
+
import { useRubriquesFilterParam } from "../../composable/route/useRubriquesFilterParam";
|
|
55
55
|
import ClassicPopover from "../../misc/ClassicPopover.vue";
|
|
56
56
|
import { Rubrique } from "@/stores/class/rubrique/rubrique";
|
|
57
57
|
import { Rubriquage } from "@/stores/class/rubrique/rubriquage";
|
|
@@ -70,12 +70,15 @@ export default defineComponent({
|
|
|
70
70
|
PlusIcon,
|
|
71
71
|
},
|
|
72
72
|
|
|
73
|
-
mixins: [rubriquesFilterParam],
|
|
74
|
-
|
|
75
73
|
props: {
|
|
76
74
|
rubriquages: { default: () => [], type: Array as () => Array<Rubriquage> },
|
|
77
75
|
},
|
|
78
76
|
|
|
77
|
+
setup(){
|
|
78
|
+
const { modifyRubriquesFilter } = useRubriquesFilterParam();
|
|
79
|
+
return { modifyRubriquesFilter }
|
|
80
|
+
},
|
|
81
|
+
|
|
79
82
|
data() {
|
|
80
83
|
return {
|
|
81
84
|
hidenRubriques: [] as Array<Rubrique>,
|
|
@@ -104,8 +107,7 @@ export default defineComponent({
|
|
|
104
107
|
return !rubriquageIdToNotShow.includes(element.rubriquageId);
|
|
105
108
|
});
|
|
106
109
|
}
|
|
107
|
-
|
|
108
|
-
return rubriquagesOrdered.sort((a,b) => (a.title > b.title) ? 1 : ((b.title > a.title) ? -1 : 0));
|
|
110
|
+
return Array.from(this.rubriquages).toSorted((a,b) => (a.title > b.title) ? 1 : ((b.title > a.title) ? -1 : 0));
|
|
109
111
|
},
|
|
110
112
|
},
|
|
111
113
|
watch: {
|
|
@@ -143,7 +143,7 @@ import { Podcast } from "@/stores/class/general/podcast";
|
|
|
143
143
|
import { state } from "../../../stores/ParamSdkStore";
|
|
144
144
|
import { useAuthStore } from "../../../stores/AuthStore";
|
|
145
145
|
import classicApi from "../../../api/classicApi";
|
|
146
|
-
import
|
|
146
|
+
import displayHelper from "../../../helper/displayHelper";
|
|
147
147
|
import { defineAsyncComponent, defineComponent } from "vue";
|
|
148
148
|
import { Playlist } from "@/stores/class/general/playlist";
|
|
149
149
|
const ClipboardModal = defineAsyncComponent(
|
|
@@ -172,7 +172,6 @@ export default defineComponent({
|
|
|
172
172
|
XIcon,
|
|
173
173
|
CreationIcon,
|
|
174
174
|
},
|
|
175
|
-
mixins: [displayMethods],
|
|
176
175
|
props: {
|
|
177
176
|
podcast: { default: undefined, type: Object as () => Podcast },
|
|
178
177
|
emission: { default: undefined, type: Object as () => Emission },
|
|
@@ -283,6 +282,9 @@ export default defineComponent({
|
|
|
283
282
|
},
|
|
284
283
|
methods: {
|
|
285
284
|
...mapActions(useSaveFetchStore, ["getOrgaAttributes"]),
|
|
285
|
+
onCopyCode(link: string, callback: () => void){
|
|
286
|
+
displayHelper.onCopyCode(link, callback);
|
|
287
|
+
},
|
|
286
288
|
async initShareButtons() {
|
|
287
289
|
if (undefined !== this.participantId) {
|
|
288
290
|
this.displayRss = await classicApi.fetchData<boolean>({
|
|
@@ -50,7 +50,7 @@ import SpotifyIcon from "vue-material-design-icons/Spotify.vue";
|
|
|
50
50
|
import { useApiStore } from "../../../stores/ApiStore";
|
|
51
51
|
import classicApi from "../../../api/classicApi";
|
|
52
52
|
import SnackBar from "../../misc/SnackBar.vue";
|
|
53
|
-
import
|
|
53
|
+
import displayHelper from "../../../helper/displayHelper";
|
|
54
54
|
import { Emission } from "@/stores/class/general/emission";
|
|
55
55
|
|
|
56
56
|
import { defineComponent, defineAsyncComponent } from "vue";
|
|
@@ -74,7 +74,6 @@ export default defineComponent({
|
|
|
74
74
|
TuninIcon,
|
|
75
75
|
RadiolineIcon,
|
|
76
76
|
},
|
|
77
|
-
mixins: [displayMethods],
|
|
78
77
|
props: {
|
|
79
78
|
emissionId: { default: undefined, type: Number },
|
|
80
79
|
},
|
|
@@ -160,6 +159,9 @@ export default defineComponent({
|
|
|
160
159
|
},
|
|
161
160
|
|
|
162
161
|
methods: {
|
|
162
|
+
onCopyCode(link: string, callback: () => void){
|
|
163
|
+
displayHelper.onCopyCode(link, callback);
|
|
164
|
+
},
|
|
163
165
|
getUrl(platform: string): string {
|
|
164
166
|
return `/main/priv/distribution/${platform}/${this.emissionId}`;
|
|
165
167
|
},
|
|
@@ -28,7 +28,7 @@
|
|
|
28
28
|
</template>
|
|
29
29
|
|
|
30
30
|
<script lang="ts">
|
|
31
|
-
import
|
|
31
|
+
import {useResizePhone} from "../composable/useResizePhone";
|
|
32
32
|
import EmoticonExcitedOutlineIcon from "vue-material-design-icons/EmoticonExcitedOutline.vue";
|
|
33
33
|
import ClassicPopover from "../misc/ClassicPopover.vue";
|
|
34
34
|
import data from "emoji-mart-vue-fast/data/all.json";
|
|
@@ -43,18 +43,20 @@ export default defineComponent({
|
|
|
43
43
|
ClassicPopover,
|
|
44
44
|
EmoticonExcitedOutlineIcon,
|
|
45
45
|
},
|
|
46
|
-
mixins:[resizePhone],
|
|
47
46
|
props: {
|
|
48
47
|
popoverRelativeClass: { default: undefined, type: String },
|
|
49
48
|
isTopPosition: { default: false, type: Boolean },
|
|
50
49
|
id: { default: "", type: String },
|
|
51
50
|
},
|
|
52
51
|
emits: ["emojiSelected"],
|
|
52
|
+
setup(){
|
|
53
|
+
const { isPhone } = useResizePhone();
|
|
54
|
+
return { isPhone }
|
|
55
|
+
},
|
|
53
56
|
|
|
54
57
|
data() {
|
|
55
58
|
return {
|
|
56
59
|
emojiIndex: emojiIndex,
|
|
57
|
-
isPhone: false as boolean,
|
|
58
60
|
};
|
|
59
61
|
},
|
|
60
62
|
});
|
|
@@ -45,7 +45,7 @@ export default {
|
|
|
45
45
|
setTimeout(() => {
|
|
46
46
|
waitBeforeInit.value = false;
|
|
47
47
|
}, props.initRenderDelay);
|
|
48
|
-
const {
|
|
48
|
+
const { pause, resume } = useIntersectionObserver(
|
|
49
49
|
targetEl,
|
|
50
50
|
([{ isIntersecting }]) => {
|
|
51
51
|
if (waitBeforeInit.value) {
|
|
@@ -91,7 +91,7 @@ export default {
|
|
|
91
91
|
}
|
|
92
92
|
watch(
|
|
93
93
|
() => props.unrender,
|
|
94
|
-
(newValue
|
|
94
|
+
(newValue) => {
|
|
95
95
|
if (newValue) {
|
|
96
96
|
clearTimeout(renderTimer);
|
|
97
97
|
unrenderTimer = setTimeout(() => {
|
|
@@ -18,7 +18,7 @@
|
|
|
18
18
|
</template>
|
|
19
19
|
|
|
20
20
|
<script lang="ts">
|
|
21
|
-
import
|
|
21
|
+
import downloadHelper from "../../helper/downloadHelper";
|
|
22
22
|
import classicApi from "../../api/classicApi";
|
|
23
23
|
import { Contract } from "../../stores/class/contract/contract";
|
|
24
24
|
import { defineAsyncComponent, defineComponent } from "vue";
|
|
@@ -32,7 +32,6 @@ export default defineComponent({
|
|
|
32
32
|
components: {
|
|
33
33
|
ContractPreviewModal,
|
|
34
34
|
},
|
|
35
|
-
mixins: [download],
|
|
36
35
|
props: {
|
|
37
36
|
authOrgaId: { default: undefined, type: String },
|
|
38
37
|
},
|
|
@@ -62,7 +61,7 @@ export default defineComponent({
|
|
|
62
61
|
downloadContract(contract: Contract) {
|
|
63
62
|
if (contract) {
|
|
64
63
|
const url = this.keycloakUrl + "contract/" + contract.id;
|
|
65
|
-
|
|
64
|
+
downloadHelper.onDownload(url, "download" + contract.name + ".pdf");
|
|
66
65
|
}
|
|
67
66
|
},
|
|
68
67
|
},
|
|
@@ -73,9 +73,9 @@
|
|
|
73
73
|
</template>
|
|
74
74
|
|
|
75
75
|
<script lang="ts">
|
|
76
|
-
import
|
|
77
|
-
import {
|
|
78
|
-
import
|
|
76
|
+
import cookiesHelper from "../../helper/cookiesHelper";
|
|
77
|
+
import { useRubriquesFilterComputed } from "../composable/route/useRubriquesFilterComputed";
|
|
78
|
+
import { useOrganisationFilter } from "../composable/useOrganisationFilter";
|
|
79
79
|
import ClassicSelect from "../form/ClassicSelect.vue";
|
|
80
80
|
import AcpmImage from "./AcpmImage.vue";
|
|
81
81
|
import { state } from "../../stores/ParamSdkStore";
|
|
@@ -103,7 +103,11 @@ export default defineComponent({
|
|
|
103
103
|
FooterGarSection,
|
|
104
104
|
},
|
|
105
105
|
|
|
106
|
-
|
|
106
|
+
setup(){
|
|
107
|
+
const { rubriqueQueryParam } = useRubriquesFilterComputed();
|
|
108
|
+
const {selectOrganisation, removeSelectedOrga} = useOrganisationFilter();
|
|
109
|
+
return { rubriqueQueryParam , selectOrganisation, removeSelectedOrga}
|
|
110
|
+
},
|
|
107
111
|
data() {
|
|
108
112
|
return {
|
|
109
113
|
language: this.$i18n.locale,
|
|
@@ -170,7 +174,7 @@ export default defineComponent({
|
|
|
170
174
|
};
|
|
171
175
|
},
|
|
172
176
|
changeLanguage(): void {
|
|
173
|
-
|
|
177
|
+
cookiesHelper.setCookie("octopus-language", this.language);
|
|
174
178
|
loadLocaleMessages(
|
|
175
179
|
this.$i18n,
|
|
176
180
|
this.language,
|
|
@@ -58,9 +58,8 @@
|
|
|
58
58
|
|
|
59
59
|
<script lang="ts">
|
|
60
60
|
import MenuIcon from "vue-material-design-icons/Menu.vue";
|
|
61
|
-
import {
|
|
61
|
+
import { useRubriquesFilterComputed } from "../composable/route/useRubriquesFilterComputed";
|
|
62
62
|
import { state } from "../../stores/ParamSdkStore";
|
|
63
|
-
import orgaFilter from "../mixins/organisationFilter";
|
|
64
63
|
import { defineComponent, defineAsyncComponent } from "vue";
|
|
65
64
|
import { useFilterStore } from "../../stores/FilterStore";
|
|
66
65
|
import { useAuthStore } from "../../stores/AuthStore";
|
|
@@ -74,13 +73,16 @@ export default defineComponent({
|
|
|
74
73
|
ClassicPopover,
|
|
75
74
|
MenuIcon,
|
|
76
75
|
},
|
|
77
|
-
mixins: [orgaFilter, rubriquesFilterComputed],
|
|
78
76
|
props: {
|
|
79
77
|
isEducation: { default: false, type: Boolean },
|
|
80
78
|
show: { default: false, type: Boolean },
|
|
81
79
|
notPodcastAndEmission: { default: false, type: Boolean },
|
|
82
80
|
scrolled: { default: false, type: Boolean },
|
|
83
81
|
},
|
|
82
|
+
setup(){
|
|
83
|
+
const { rubriqueQueryParam } = useRubriquesFilterComputed();
|
|
84
|
+
return { rubriqueQueryParam }
|
|
85
|
+
},
|
|
84
86
|
data() {
|
|
85
87
|
return {
|
|
86
88
|
firstLoaded: false as boolean,
|
|
@@ -27,7 +27,7 @@
|
|
|
27
27
|
</template>
|
|
28
28
|
|
|
29
29
|
<script lang="ts">
|
|
30
|
-
import
|
|
30
|
+
import {useImageProxy} from "../composable/useImageProxy";
|
|
31
31
|
import TopBarMainContent from "./TopBarMainContent.vue";
|
|
32
32
|
import { mapState } from "pinia";
|
|
33
33
|
import { defineAsyncComponent, defineComponent } from "vue";
|
|
@@ -35,7 +35,7 @@ import { useAuthStore } from "../../stores/AuthStore";
|
|
|
35
35
|
import { useGeneralStore } from "../../stores/GeneralStore";
|
|
36
36
|
import { Podcast } from "@/stores/class/general/podcast";
|
|
37
37
|
import { Emission } from "@/stores/class/general/emission";
|
|
38
|
-
import
|
|
38
|
+
import {useResizePhone} from "../composable/useResizePhone";
|
|
39
39
|
import { Playlist } from "@/stores/class/general/playlist";
|
|
40
40
|
import { Canal } from "@/stores/class/radio/canal";
|
|
41
41
|
const SubscribeButtons = defineAsyncComponent(
|
|
@@ -47,15 +47,17 @@ export default defineComponent({
|
|
|
47
47
|
TopBarMainContent,
|
|
48
48
|
SubscribeButtons,
|
|
49
49
|
},
|
|
50
|
+
setup(){
|
|
51
|
+
const { isPhone, windowWidth } = useResizePhone();
|
|
52
|
+
const { useProxyImageUrl } = useImageProxy();
|
|
53
|
+
return { isPhone, windowWidth, useProxyImageUrl }
|
|
54
|
+
},
|
|
50
55
|
|
|
51
|
-
mixins: [imageProxy, resizePhone],
|
|
52
56
|
data() {
|
|
53
57
|
return {
|
|
54
58
|
scrolled: false as boolean,
|
|
55
59
|
oldScrollY: 0 as number,
|
|
56
60
|
minScroll: 0 as number,
|
|
57
|
-
isPhone: false as boolean,
|
|
58
|
-
windowWidth: 0 as number,
|
|
59
61
|
};
|
|
60
62
|
},
|
|
61
63
|
computed: {
|
|
@@ -73,7 +75,7 @@ export default defineComponent({
|
|
|
73
75
|
if (!this.contentToDisplay) {
|
|
74
76
|
return "";
|
|
75
77
|
}
|
|
76
|
-
return `background-image: url('${this.
|
|
78
|
+
return `background-image: url('${this.useProxyImageUrl(
|
|
77
79
|
this.contentToDisplay.imageUrl,
|
|
78
80
|
"270",
|
|
79
81
|
)}');`;
|
|
@@ -22,7 +22,7 @@
|
|
|
22
22
|
/>
|
|
23
23
|
<img
|
|
24
24
|
v-else
|
|
25
|
-
:src="
|
|
25
|
+
:src="useProxyImageUrl(imgUrl, '', '80')"
|
|
26
26
|
role="presentation"
|
|
27
27
|
alt=""
|
|
28
28
|
class="client-logo"
|
|
@@ -157,10 +157,10 @@
|
|
|
157
157
|
<script lang="ts">
|
|
158
158
|
import ChevronDownIcon from "vue-material-design-icons/ChevronDown.vue";
|
|
159
159
|
import MagnifyIcon from "vue-material-design-icons/Magnify.vue";
|
|
160
|
-
import {
|
|
160
|
+
import { useRubriquesFilterComputed } from "../composable/route/useRubriquesFilterComputed";
|
|
161
161
|
import { state } from "../../stores/ParamSdkStore";
|
|
162
162
|
import HomeDropdown from "./HomeDropdown.vue";
|
|
163
|
-
import
|
|
163
|
+
import {useImageProxy} from "../composable/useImageProxy";
|
|
164
164
|
import { useFilterStore } from "../../stores/FilterStore";
|
|
165
165
|
import { useAuthStore } from "../../stores/AuthStore";
|
|
166
166
|
import { mapState } from "pinia";
|
|
@@ -177,12 +177,16 @@ export default defineComponent({
|
|
|
177
177
|
MagnifyIcon,
|
|
178
178
|
ChevronDownIcon,
|
|
179
179
|
},
|
|
180
|
-
mixins: [imageProxy, rubriquesFilterComputed],
|
|
181
180
|
props: {
|
|
182
181
|
isPhone: { default: false, type: Boolean },
|
|
183
182
|
titleDisplay: { default: "", type: String },
|
|
184
183
|
scrolled: { default: false, type: Boolean },
|
|
185
184
|
},
|
|
185
|
+
setup(){
|
|
186
|
+
const { useProxyImageUrl } = useImageProxy();
|
|
187
|
+
const { rubriqueQueryParam } = useRubriquesFilterComputed();
|
|
188
|
+
return { useProxyImageUrl, rubriqueQueryParam }
|
|
189
|
+
},
|
|
186
190
|
data() {
|
|
187
191
|
return {};
|
|
188
192
|
},
|
|
@@ -89,8 +89,8 @@ export default defineComponent({
|
|
|
89
89
|
position: fixed;
|
|
90
90
|
top: 0;
|
|
91
91
|
left: 0;
|
|
92
|
-
width:
|
|
93
|
-
height:
|
|
92
|
+
width: 100%;
|
|
93
|
+
height: 100%;
|
|
94
94
|
background-color: black;
|
|
95
95
|
}
|
|
96
96
|
|
|
@@ -110,7 +110,6 @@ export default defineComponent({
|
|
|
110
110
|
|
|
111
111
|
@media (width <= 500px) {
|
|
112
112
|
width: 95%;
|
|
113
|
-
margin: 2.5% !important;
|
|
114
113
|
}
|
|
115
114
|
}
|
|
116
115
|
|
|
@@ -23,7 +23,7 @@
|
|
|
23
23
|
<script lang="ts">
|
|
24
24
|
import ClassicModal from "../modal/ClassicModal.vue";
|
|
25
25
|
import { Emission } from "@/stores/class/general/emission";
|
|
26
|
-
import
|
|
26
|
+
import displayHelper from "../../../helper/displayHelper";
|
|
27
27
|
import { defineComponent, defineAsyncComponent } from "vue";
|
|
28
28
|
import { useAuthStore } from "../../../stores/AuthStore";
|
|
29
29
|
import { mapState } from "pinia";
|
|
@@ -36,8 +36,6 @@ export default defineComponent({
|
|
|
36
36
|
RssSection,
|
|
37
37
|
ClassicModal,
|
|
38
38
|
},
|
|
39
|
-
mixins: [displayMethods],
|
|
40
|
-
|
|
41
39
|
props: {
|
|
42
40
|
link: { default: "", type: String },
|
|
43
41
|
emission: { default: undefined, type: Object as () => Emission },
|
|
@@ -47,6 +45,9 @@ export default defineComponent({
|
|
|
47
45
|
...mapState(useAuthStore, ["authOrgaId"]),
|
|
48
46
|
},
|
|
49
47
|
methods: {
|
|
48
|
+
onCopyCode(link: string, callback: () => void){
|
|
49
|
+
displayHelper.onCopyCode(link, callback);
|
|
50
|
+
},
|
|
50
51
|
closePopup(): void {
|
|
51
52
|
this.$emit("close");
|
|
52
53
|
},
|
|
@@ -62,7 +62,7 @@ import ClassicModal from "../modal/ClassicModal.vue";
|
|
|
62
62
|
import SnackBar from "../../misc/SnackBar.vue";
|
|
63
63
|
import { VSwatches } from "vue3-swatches";
|
|
64
64
|
import "vue3-swatches/dist/style.css";
|
|
65
|
-
import
|
|
65
|
+
import displayHelper from "../../../helper/displayHelper";
|
|
66
66
|
import { Podcast } from "@/stores/class/general/podcast";
|
|
67
67
|
import { defineComponent } from "vue";
|
|
68
68
|
import { useSaveFetchStore } from "../../../stores/SaveFetchStore";
|
|
@@ -80,8 +80,6 @@ export default defineComponent({
|
|
|
80
80
|
ContentCopyIcon,
|
|
81
81
|
},
|
|
82
82
|
|
|
83
|
-
mixins: [displayMethods],
|
|
84
|
-
|
|
85
83
|
props: {
|
|
86
84
|
podcast: { default: undefined, type: Object as () => Podcast },
|
|
87
85
|
emission: { default: undefined, type: Object as () => Emission },
|
|
@@ -207,6 +205,9 @@ export default defineComponent({
|
|
|
207
205
|
},
|
|
208
206
|
methods: {
|
|
209
207
|
...mapActions(useSaveFetchStore, ["getOrgaAttributes"]),
|
|
208
|
+
onCopyCode(link: string, callback: () => void){
|
|
209
|
+
displayHelper.onCopyCode(link, callback);
|
|
210
|
+
},
|
|
210
211
|
closePopup(): void {
|
|
211
212
|
this.$emit("close");
|
|
212
213
|
},
|
|
@@ -58,7 +58,7 @@
|
|
|
58
58
|
<script lang="ts">
|
|
59
59
|
import ContentCopyIcon from "vue-material-design-icons/ContentCopy.vue";
|
|
60
60
|
import SnackBar from "../SnackBar.vue";
|
|
61
|
-
import
|
|
61
|
+
import displayHelper from "../../../helper/displayHelper";
|
|
62
62
|
import ClassicModal from "../modal/ClassicModal.vue";
|
|
63
63
|
import ClassicNav from "../ClassicNav.vue";
|
|
64
64
|
import QrCode from "../../display/sharing/QrCode.vue";
|
|
@@ -74,7 +74,6 @@ export default defineComponent({
|
|
|
74
74
|
ClassicNav,
|
|
75
75
|
ContentCopyIcon,
|
|
76
76
|
},
|
|
77
|
-
mixins: [displayMethods],
|
|
78
77
|
props: {
|
|
79
78
|
embedLink: { default: undefined, type: String },
|
|
80
79
|
embedlyLink: { default: undefined, type: String },
|
|
@@ -99,6 +98,9 @@ export default defineComponent({
|
|
|
99
98
|
},
|
|
100
99
|
},
|
|
101
100
|
methods: {
|
|
101
|
+
onCopyCode(link: string, callback: () => void){
|
|
102
|
+
displayHelper.onCopyCode(link, callback);
|
|
103
|
+
},
|
|
102
104
|
closePopup(): void {
|
|
103
105
|
this.$emit("close");
|
|
104
106
|
},
|