@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
|
@@ -77,7 +77,7 @@
|
|
|
77
77
|
>
|
|
78
78
|
<img
|
|
79
79
|
v-lazy="
|
|
80
|
-
|
|
80
|
+
useProxyImageUrl(planningItem.podcastData.imageUrl, '150')
|
|
81
81
|
"
|
|
82
82
|
width="150"
|
|
83
83
|
height="150"
|
|
@@ -118,8 +118,8 @@ import dayjs from "dayjs";
|
|
|
118
118
|
import utc from "dayjs/plugin/utc";
|
|
119
119
|
dayjs.extend(utc);
|
|
120
120
|
import classicApi from "../../../api/classicApi";
|
|
121
|
-
import
|
|
122
|
-
import
|
|
121
|
+
import {useImageProxy} from "../../composable/useImageProxy";
|
|
122
|
+
import {useResizePhone} from "../../composable/useResizePhone";
|
|
123
123
|
import ClassicLoading from "../../form/ClassicLoading.vue";
|
|
124
124
|
import { defineComponent } from "vue";
|
|
125
125
|
import { Canal } from "@/stores/class/radio/canal";
|
|
@@ -132,12 +132,17 @@ export default defineComponent({
|
|
|
132
132
|
ClassicLoading,
|
|
133
133
|
},
|
|
134
134
|
|
|
135
|
-
mixins: [imageProxy,resizePhone],
|
|
136
|
-
|
|
137
135
|
props: {
|
|
138
136
|
radio: { default: undefined, type: Object as () => Canal },
|
|
139
137
|
},
|
|
140
138
|
|
|
139
|
+
|
|
140
|
+
setup(){
|
|
141
|
+
const { isPhone } = useResizePhone();
|
|
142
|
+
const { useProxyImageUrl } = useImageProxy();
|
|
143
|
+
return { isPhone, useProxyImageUrl }
|
|
144
|
+
},
|
|
145
|
+
|
|
141
146
|
data() {
|
|
142
147
|
return {
|
|
143
148
|
planning: {} as {
|
|
@@ -157,8 +162,6 @@ export default defineComponent({
|
|
|
157
162
|
}>,
|
|
158
163
|
loading: true as boolean,
|
|
159
164
|
error: false as boolean,
|
|
160
|
-
isPhone: false as boolean,
|
|
161
|
-
windowWidth: 0 as number,
|
|
162
165
|
showAllDays: false as boolean
|
|
163
166
|
};
|
|
164
167
|
},
|
|
@@ -22,7 +22,7 @@
|
|
|
22
22
|
:data-selenium="'organisation-chooser-' + seleniumFormat(option.name)"
|
|
23
23
|
>
|
|
24
24
|
<img
|
|
25
|
-
v-lazy="
|
|
25
|
+
v-lazy="useProxyImageUrl(option.imageUrl, '32')"
|
|
26
26
|
width="32"
|
|
27
27
|
height="32"
|
|
28
28
|
class="me-2"
|
|
@@ -41,8 +41,8 @@
|
|
|
41
41
|
<script lang="ts">
|
|
42
42
|
import { useAuthStore } from "../../../stores/AuthStore";
|
|
43
43
|
import { mapActions, mapState } from "pinia";
|
|
44
|
-
import
|
|
45
|
-
import
|
|
44
|
+
import {useImageProxy} from "../../composable/useImageProxy";
|
|
45
|
+
import {useSelenium} from "../../composable/useSelenium";
|
|
46
46
|
import classicApi from "../../../api/classicApi";
|
|
47
47
|
import ClassicMultiselect from "../../form/ClassicMultiselect.vue";
|
|
48
48
|
import { defineComponent } from "vue";
|
|
@@ -56,7 +56,6 @@ export default defineComponent({
|
|
|
56
56
|
components: {
|
|
57
57
|
ClassicMultiselect,
|
|
58
58
|
},
|
|
59
|
-
mixins: [selenium, imageProxy],
|
|
60
59
|
props: {
|
|
61
60
|
defaultanswer: { default: "", type: String },
|
|
62
61
|
orgaIdSelected: { default: undefined, type: String },
|
|
@@ -69,6 +68,11 @@ export default defineComponent({
|
|
|
69
68
|
displayLabel: { default: false, type: Boolean },
|
|
70
69
|
},
|
|
71
70
|
emits: ["selected"],
|
|
71
|
+
setup(){
|
|
72
|
+
const { seleniumFormat } = useSelenium();
|
|
73
|
+
const { useProxyImageUrl } = useImageProxy();
|
|
74
|
+
return { seleniumFormat, useProxyImageUrl }
|
|
75
|
+
},
|
|
72
76
|
data() {
|
|
73
77
|
return {
|
|
74
78
|
maxElement: 50 as number,
|
|
@@ -29,12 +29,10 @@
|
|
|
29
29
|
import ParticipantItem from "./ParticipantItem.vue";
|
|
30
30
|
import SwiperList from "../list/SwiperList.vue";
|
|
31
31
|
import classicApi from "../../../api/classicApi";
|
|
32
|
-
import {
|
|
32
|
+
import {useErrorHandler} from "../../composable/useErrorHandler";
|
|
33
33
|
import ClassicLoading from "../../form/ClassicLoading.vue";
|
|
34
34
|
import { defineComponent } from "vue";
|
|
35
35
|
import { AxiosError } from "axios";
|
|
36
|
-
import imageProxy from "../../mixins/imageProxy";
|
|
37
|
-
import resizePhone from "../../mixins/resizePhone";
|
|
38
36
|
import { ListClassicReturn } from "@/stores/class/general/listReturn";
|
|
39
37
|
import { Participant } from "@/stores/class/general/participant";
|
|
40
38
|
export default defineComponent({
|
|
@@ -46,8 +44,6 @@ export default defineComponent({
|
|
|
46
44
|
SwiperList,
|
|
47
45
|
},
|
|
48
46
|
|
|
49
|
-
mixins: [handle403, imageProxy, resizePhone],
|
|
50
|
-
|
|
51
47
|
props: {
|
|
52
48
|
organisationId: { default: undefined, type: String },
|
|
53
49
|
href: { default: undefined, type: String },
|
|
@@ -55,6 +51,10 @@ export default defineComponent({
|
|
|
55
51
|
itemSize: { default: undefined, type: Number },
|
|
56
52
|
title: { default: "", type: String },
|
|
57
53
|
},
|
|
54
|
+
setup(){
|
|
55
|
+
const {handle403} = useErrorHandler();
|
|
56
|
+
return { handle403 }
|
|
57
|
+
},
|
|
58
58
|
|
|
59
59
|
data() {
|
|
60
60
|
return {
|
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
:title="$t('Participant name page', { name: name })"
|
|
10
10
|
>
|
|
11
11
|
<img
|
|
12
|
-
v-lazy="
|
|
12
|
+
v-lazy="useProxyImageUrl(participant.imageUrl, '200')"
|
|
13
13
|
width="200"
|
|
14
14
|
height="200"
|
|
15
15
|
role="presentation"
|
|
@@ -55,9 +55,9 @@
|
|
|
55
55
|
import AlertIcon from "vue-material-design-icons/Alert.vue";
|
|
56
56
|
import classicApi from "../../../api/classicApi";
|
|
57
57
|
import { Participant } from "@/stores/class/general/participant";
|
|
58
|
-
import
|
|
59
|
-
import
|
|
60
|
-
import {
|
|
58
|
+
import {useImageProxy} from "../../composable/useImageProxy";
|
|
59
|
+
import displayHelper from "../../../helper/displayHelper";
|
|
60
|
+
import {useOrgaComputed} from "../../composable/useOrgaComputed";
|
|
61
61
|
import { defineComponent } from "vue";
|
|
62
62
|
import { Podcast } from "@/stores/class/general/podcast";
|
|
63
63
|
import { ListClassicReturn } from "@/stores/class/general/listReturn";
|
|
@@ -66,10 +66,15 @@ export default defineComponent({
|
|
|
66
66
|
components: {
|
|
67
67
|
AlertIcon,
|
|
68
68
|
},
|
|
69
|
-
mixins: [displayMethods, orgaComputed, imageProxy],
|
|
70
69
|
props: {
|
|
71
70
|
participant: { default: () => ({}), type: Object as () => Participant },
|
|
72
71
|
},
|
|
72
|
+
setup(){
|
|
73
|
+
const { useProxyImageUrl } = useImageProxy();
|
|
74
|
+
const { isPodcastmaker, isEditRights } = useOrgaComputed();
|
|
75
|
+
return { useProxyImageUrl, isPodcastmaker, isEditRights }
|
|
76
|
+
},
|
|
77
|
+
|
|
73
78
|
data() {
|
|
74
79
|
return {
|
|
75
80
|
activeParticipant: true as boolean,
|
|
@@ -106,6 +111,9 @@ export default defineComponent({
|
|
|
106
111
|
}
|
|
107
112
|
},
|
|
108
113
|
methods: {
|
|
114
|
+
urlify(text:string|undefined){
|
|
115
|
+
return displayHelper.urlify(text);
|
|
116
|
+
},
|
|
109
117
|
async hasPodcast(): Promise<void> {
|
|
110
118
|
const data = await classicApi.fetchData<ListClassicReturn<Podcast>>({
|
|
111
119
|
api: 0,
|
|
@@ -44,7 +44,7 @@
|
|
|
44
44
|
<script lang="ts">
|
|
45
45
|
import ListPaginate from "../list/ListPaginate.vue";
|
|
46
46
|
import ClassicLazy from "../../misc/ClassicLazy.vue";
|
|
47
|
-
import {
|
|
47
|
+
import {useErrorHandler} from "../../composable/useErrorHandler";
|
|
48
48
|
import classicApi from "../../../api/classicApi";
|
|
49
49
|
import ParticipantItem from "./ParticipantItem.vue";
|
|
50
50
|
import { useFilterStore } from "../../../stores/FilterStore";
|
|
@@ -65,8 +65,6 @@ export default defineComponent({
|
|
|
65
65
|
ClassicLazy,
|
|
66
66
|
},
|
|
67
67
|
|
|
68
|
-
mixins: [handle403],
|
|
69
|
-
|
|
70
68
|
props: {
|
|
71
69
|
first: { default: 0, type: Number },
|
|
72
70
|
size: { default: 30, type: Number },
|
|
@@ -75,6 +73,11 @@ export default defineComponent({
|
|
|
75
73
|
showCount: { default: false, type: Boolean },
|
|
76
74
|
},
|
|
77
75
|
|
|
76
|
+
setup(){
|
|
77
|
+
const {handle403} = useErrorHandler();
|
|
78
|
+
return { handle403 }
|
|
79
|
+
},
|
|
80
|
+
|
|
78
81
|
data() {
|
|
79
82
|
return {
|
|
80
83
|
loading: true as boolean,
|
|
@@ -35,7 +35,7 @@
|
|
|
35
35
|
</router-link>
|
|
36
36
|
</div>
|
|
37
37
|
<img
|
|
38
|
-
v-lazy="
|
|
38
|
+
v-lazy="useProxyImageUrl(playlist.imageUrl, '250')"
|
|
39
39
|
width="250"
|
|
40
40
|
height="250"
|
|
41
41
|
role="presentation"
|
|
@@ -50,17 +50,19 @@
|
|
|
50
50
|
<script lang="ts">
|
|
51
51
|
import { Playlist } from "@/stores/class/general/playlist";
|
|
52
52
|
import { state } from "../../../stores/ParamSdkStore";
|
|
53
|
-
import
|
|
54
|
-
import
|
|
53
|
+
import {useImageProxy} from "../../composable/useImageProxy";
|
|
54
|
+
import displayHelper from "../../../helper/displayHelper";
|
|
55
55
|
import { defineComponent } from "vue";
|
|
56
56
|
export default defineComponent({
|
|
57
57
|
name: "PlaylistItem",
|
|
58
58
|
|
|
59
|
-
mixins: [displayMethods, imageProxy],
|
|
60
|
-
|
|
61
59
|
props: {
|
|
62
60
|
playlist: { default: () => ({}), type: Object as () => Playlist },
|
|
63
61
|
},
|
|
62
|
+
setup(){
|
|
63
|
+
const { useProxyImageUrl } = useImageProxy();
|
|
64
|
+
return { useProxyImageUrl }
|
|
65
|
+
},
|
|
64
66
|
|
|
65
67
|
computed: {
|
|
66
68
|
isPodcastmaker(): boolean {
|
|
@@ -87,6 +89,11 @@ export default defineComponent({
|
|
|
87
89
|
playlistDescContainer.classList.add("after-element-description");
|
|
88
90
|
}
|
|
89
91
|
},
|
|
92
|
+
methods:{
|
|
93
|
+
urlify(text:string|undefined){
|
|
94
|
+
return displayHelper.urlify(text);
|
|
95
|
+
},
|
|
96
|
+
}
|
|
90
97
|
});
|
|
91
98
|
</script>
|
|
92
99
|
<style lang="scss">
|
|
@@ -43,7 +43,7 @@
|
|
|
43
43
|
<script lang="ts">
|
|
44
44
|
import ClassicLazy from "../../misc/ClassicLazy.vue";
|
|
45
45
|
import ListPaginate from "../list/ListPaginate.vue";
|
|
46
|
-
import {
|
|
46
|
+
import {useErrorHandler} from "../../composable/useErrorHandler";
|
|
47
47
|
import classicApi from "../../../api/classicApi";
|
|
48
48
|
import PlaylistItem from "./PlaylistItem.vue";
|
|
49
49
|
import { Playlist, emptyPlaylistData } from "@/stores/class/general/playlist";
|
|
@@ -61,8 +61,6 @@ export default defineComponent({
|
|
|
61
61
|
ClassicLazy,
|
|
62
62
|
},
|
|
63
63
|
|
|
64
|
-
mixins: [handle403],
|
|
65
|
-
|
|
66
64
|
props: {
|
|
67
65
|
first: { default: 0, type: Number },
|
|
68
66
|
size: { default: 30, type: Number },
|
|
@@ -70,6 +68,11 @@ export default defineComponent({
|
|
|
70
68
|
organisationId: { default: undefined, type: String },
|
|
71
69
|
},
|
|
72
70
|
|
|
71
|
+
setup(){
|
|
72
|
+
const {handle403} = useErrorHandler();
|
|
73
|
+
return { handle403 }
|
|
74
|
+
},
|
|
75
|
+
|
|
73
76
|
data() {
|
|
74
77
|
return {
|
|
75
78
|
loading: true as boolean,
|
|
@@ -58,8 +58,8 @@
|
|
|
58
58
|
|
|
59
59
|
<script lang="ts">
|
|
60
60
|
import ListPaginate from "../list/ListPaginate.vue";
|
|
61
|
-
import {
|
|
62
|
-
import {
|
|
61
|
+
import {useErrorHandler} from "../../composable/useErrorHandler";
|
|
62
|
+
import {useOrgaComputed} from "../../composable/useOrgaComputed";
|
|
63
63
|
import classicApi from "../../../api/classicApi";
|
|
64
64
|
import PodcastItem from "../podcasts/PodcastItem.vue";
|
|
65
65
|
import ClassicSearch from "../../form/ClassicSearch.vue";
|
|
@@ -78,12 +78,16 @@ export default defineComponent({
|
|
|
78
78
|
ClassicLazy,
|
|
79
79
|
},
|
|
80
80
|
|
|
81
|
-
mixins: [handle403, orgaComputed],
|
|
82
|
-
|
|
83
81
|
props: {
|
|
84
82
|
playlist: { default: () => ({}), type: Object as () => Playlist },
|
|
85
83
|
},
|
|
86
84
|
|
|
85
|
+
setup(){
|
|
86
|
+
const {handle403} = useErrorHandler();
|
|
87
|
+
const { isEditRights } = useOrgaComputed();
|
|
88
|
+
return { handle403, isEditRights }
|
|
89
|
+
},
|
|
90
|
+
|
|
87
91
|
data() {
|
|
88
92
|
return {
|
|
89
93
|
loading: true as boolean,
|
|
@@ -8,21 +8,24 @@
|
|
|
8
8
|
</template>
|
|
9
9
|
|
|
10
10
|
<script lang="ts">
|
|
11
|
-
import
|
|
11
|
+
import {useImageProxy} from "../../composable/useImageProxy";
|
|
12
12
|
import { defineComponent } from "vue";
|
|
13
13
|
export default defineComponent({
|
|
14
|
-
mixins: [imageProxy],
|
|
15
14
|
|
|
16
15
|
props: {
|
|
17
16
|
pageTitle: { default: undefined, type: String },
|
|
18
17
|
imgUrl: { default: undefined, type: String },
|
|
19
18
|
},
|
|
19
|
+
setup(){
|
|
20
|
+
const { useProxyImageUrl } = useImageProxy();
|
|
21
|
+
return { useProxyImageUrl }
|
|
22
|
+
},
|
|
20
23
|
computed: {
|
|
21
24
|
backgroundDisplay(): string {
|
|
22
25
|
if (!this.imgUrl) {
|
|
23
26
|
return "";
|
|
24
27
|
}
|
|
25
|
-
return `background-image: url('${this.
|
|
28
|
+
return `background-image: url('${this.useProxyImageUrl(
|
|
26
29
|
this.imgUrl,
|
|
27
30
|
"250",
|
|
28
31
|
)}');`;
|
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
<script lang="ts">
|
|
14
14
|
import DownloadIcon from "vue-material-design-icons/Download.vue";
|
|
15
15
|
import { Podcast } from "@/stores/class/general/podcast";
|
|
16
|
-
import
|
|
16
|
+
import downloadHelper from "../../../helper/downloadHelper";
|
|
17
17
|
import { defineComponent } from "vue";
|
|
18
18
|
export default defineComponent({
|
|
19
19
|
name: "DownloadPodcastButton",
|
|
@@ -21,8 +21,6 @@ export default defineComponent({
|
|
|
21
21
|
DownloadIcon,
|
|
22
22
|
},
|
|
23
23
|
|
|
24
|
-
mixins: [download],
|
|
25
|
-
|
|
26
24
|
props: {
|
|
27
25
|
podcast: { default: undefined, type: Object as () => Podcast },
|
|
28
26
|
},
|
|
@@ -34,7 +32,7 @@ export default defineComponent({
|
|
|
34
32
|
|
|
35
33
|
methods: {
|
|
36
34
|
downloadPodcast() {
|
|
37
|
-
|
|
35
|
+
downloadHelper.onDownload(
|
|
38
36
|
"/download/podcast/" + this.podcast?.podcastId,
|
|
39
37
|
this.podcast?.title + ".mp3",
|
|
40
38
|
false,
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
class="img-box img-box-podcast mb-3 flex-column justify-content-start align-items-start position-relative flex-shrink-0 float-start"
|
|
5
5
|
>
|
|
6
6
|
<img
|
|
7
|
-
v-lazy="
|
|
7
|
+
v-lazy="useProxyImageUrl(podcast.imageUrl, '270')"
|
|
8
8
|
width="270"
|
|
9
9
|
height="270"
|
|
10
10
|
role="presentation"
|
|
@@ -52,7 +52,7 @@ import PodcastPlayButton from "./PodcastPlayButton.vue";
|
|
|
52
52
|
import { state } from "../../../stores/ParamSdkStore";
|
|
53
53
|
import { Podcast } from "@/stores/class/general/podcast";
|
|
54
54
|
import { Conference } from "@/stores/class/conference/conference";
|
|
55
|
-
import
|
|
55
|
+
import {useImageProxy} from "../../composable/useImageProxy";
|
|
56
56
|
import { defineComponent } from "vue";
|
|
57
57
|
export default defineComponent({
|
|
58
58
|
name: "PodcastImage",
|
|
@@ -60,7 +60,6 @@ export default defineComponent({
|
|
|
60
60
|
PodcastPlayButton,
|
|
61
61
|
ChevronDownIcon,
|
|
62
62
|
},
|
|
63
|
-
mixins: [imageProxy],
|
|
64
63
|
props: {
|
|
65
64
|
podcast: { default: () => ({}), type: Object as () => Podcast },
|
|
66
65
|
hidePlay: { default: false, type: Boolean },
|
|
@@ -70,6 +69,10 @@ export default defineComponent({
|
|
|
70
69
|
fetchConference: { default: undefined, type: Object as () => Conference },
|
|
71
70
|
},
|
|
72
71
|
emits: ["hideDescription", "showDescription"],
|
|
72
|
+
setup(){
|
|
73
|
+
const { useProxyImageUrl } = useImageProxy();
|
|
74
|
+
return { useProxyImageUrl }
|
|
75
|
+
},
|
|
73
76
|
data() {
|
|
74
77
|
return {
|
|
75
78
|
isDescription: false as boolean,
|
|
@@ -58,8 +58,8 @@
|
|
|
58
58
|
import PlusIcon from "vue-material-design-icons/Plus.vue";
|
|
59
59
|
import ChevronLeftIcon from "vue-material-design-icons/ChevronLeft.vue";
|
|
60
60
|
import ChevronRightIcon from "vue-material-design-icons/ChevronRight.vue";
|
|
61
|
-
import {
|
|
62
|
-
import {
|
|
61
|
+
import { useRubriquesFilterComputed } from "../../composable/route/useRubriquesFilterComputed";
|
|
62
|
+
import { useRubriquesFilterParam } from "../../composable/route/useRubriquesFilterParam";
|
|
63
63
|
import { RubriquageFilter } from "@/stores/class/rubrique/rubriquageFilter";
|
|
64
64
|
import { defineComponent } from "vue";
|
|
65
65
|
import { RouteLocationRaw } from "vue-router";
|
|
@@ -74,8 +74,6 @@ export default defineComponent({
|
|
|
74
74
|
PlusIcon,
|
|
75
75
|
},
|
|
76
76
|
|
|
77
|
-
mixins: [rubriquesFilterParam, rubriquesFilterComputed],
|
|
78
|
-
|
|
79
77
|
props: {
|
|
80
78
|
displayArrow: { default: true, type: Boolean },
|
|
81
79
|
previousAvailable: { default: false, type: Boolean },
|
|
@@ -92,6 +90,11 @@ export default defineComponent({
|
|
|
92
90
|
titleTag: { default: "h2", type: String },
|
|
93
91
|
},
|
|
94
92
|
emits: ["sortChrono", "sortPopular", "displayPrevious", "displayNext"],
|
|
93
|
+
setup(){
|
|
94
|
+
const { modifyRubriquesFilter } = useRubriquesFilterParam();
|
|
95
|
+
const { rubriqueQueryParam } = useRubriquesFilterComputed();
|
|
96
|
+
return { modifyRubriquesFilter, rubriqueQueryParam }
|
|
97
|
+
},
|
|
95
98
|
data() {
|
|
96
99
|
return {};
|
|
97
100
|
},
|
|
@@ -44,7 +44,7 @@
|
|
|
44
44
|
</template>
|
|
45
45
|
|
|
46
46
|
<script lang="ts">
|
|
47
|
-
import debounce from
|
|
47
|
+
import debounce from '../../../helper/debounceHelper';
|
|
48
48
|
import PodcastItemInfo from "./PodcastItemInfo.vue";
|
|
49
49
|
import PodcastImage from "./PodcastImage.vue";
|
|
50
50
|
import dayjs from "dayjs";
|
|
@@ -46,7 +46,7 @@
|
|
|
46
46
|
<script lang="ts">
|
|
47
47
|
import AnimatorsItem from "./AnimatorsItem.vue";
|
|
48
48
|
import { state } from "../../../stores/ParamSdkStore";
|
|
49
|
-
import {
|
|
49
|
+
import {useOrgaComputed} from "../../composable/useOrgaComputed";
|
|
50
50
|
import dayjs from "dayjs";
|
|
51
51
|
import { defineAsyncComponent, defineComponent } from "vue";
|
|
52
52
|
import { Participant } from "@/stores/class/general/participant";
|
|
@@ -61,8 +61,6 @@ export default defineComponent({
|
|
|
61
61
|
PodcastPlayBar,
|
|
62
62
|
},
|
|
63
63
|
|
|
64
|
-
mixins: [orgaComputed],
|
|
65
|
-
|
|
66
64
|
props: {
|
|
67
65
|
podcastId: { default: undefined, type: Number },
|
|
68
66
|
title: { default: "", type: String },
|
|
@@ -73,6 +71,11 @@ export default defineComponent({
|
|
|
73
71
|
animators: { default: undefined, type: Object as () => Array<Participant> },
|
|
74
72
|
},
|
|
75
73
|
|
|
74
|
+
setup(){
|
|
75
|
+
const { isPodcastmaker, isEditRights } = useOrgaComputed();
|
|
76
|
+
return { isPodcastmaker, isEditRights }
|
|
77
|
+
},
|
|
78
|
+
|
|
76
79
|
computed: {
|
|
77
80
|
isProgressBar(): boolean {
|
|
78
81
|
return state.emissionsPage.progressBar as boolean;
|
|
@@ -47,7 +47,7 @@
|
|
|
47
47
|
|
|
48
48
|
<script lang="ts">
|
|
49
49
|
import ListPaginate from "../list/ListPaginate.vue";
|
|
50
|
-
import {
|
|
50
|
+
import {useErrorHandler} from "../../composable/useErrorHandler";
|
|
51
51
|
import classicApi from "../../../api/classicApi";
|
|
52
52
|
import PodcastItem from "./PodcastItem.vue";
|
|
53
53
|
import ClassicLazy from "../../misc/ClassicLazy.vue";
|
|
@@ -68,8 +68,6 @@ export default defineComponent({
|
|
|
68
68
|
ClassicLazy,
|
|
69
69
|
},
|
|
70
70
|
|
|
71
|
-
mixins: [handle403],
|
|
72
|
-
|
|
73
71
|
props: {
|
|
74
72
|
first: { default: 0, type: Number },
|
|
75
73
|
size: { default: 30, type: Number },
|
|
@@ -96,6 +94,11 @@ export default defineComponent({
|
|
|
96
94
|
},
|
|
97
95
|
emits: ["fetch", "emptyList"],
|
|
98
96
|
|
|
97
|
+
setup(){
|
|
98
|
+
const {handle403} = useErrorHandler();
|
|
99
|
+
return { handle403 }
|
|
100
|
+
},
|
|
101
|
+
|
|
99
102
|
data() {
|
|
100
103
|
return {
|
|
101
104
|
loading: true as boolean,
|
|
@@ -156,13 +156,12 @@ import ParticipantDescription from "./ParticipantDescription.vue";
|
|
|
156
156
|
import PodcastRawTranscript from "./PodcastRawTranscript.vue";
|
|
157
157
|
import { state } from "../../../stores/ParamSdkStore";
|
|
158
158
|
import { useAuthStore } from "../../../stores/AuthStore";
|
|
159
|
-
import
|
|
160
|
-
import
|
|
161
|
-
import { orgaComputed } from "../../mixins/orgaComputed";
|
|
159
|
+
import displayHelper from "../../../helper/displayHelper";
|
|
160
|
+
import {usePodcastView} from "../../composable/podcasts/usePodcastView";
|
|
162
161
|
import { Podcast } from "@/stores/class/general/podcast";
|
|
163
162
|
import { Conference } from "@/stores/class/conference/conference";
|
|
164
163
|
|
|
165
|
-
import { defineComponent, defineAsyncComponent } from "vue";
|
|
164
|
+
import { defineComponent, defineAsyncComponent, toRefs } from "vue";
|
|
166
165
|
const ErrorMessage = defineAsyncComponent(
|
|
167
166
|
() => import("../../misc/ErrorMessage.vue"),
|
|
168
167
|
);
|
|
@@ -211,8 +210,6 @@ export default defineComponent({
|
|
|
211
210
|
PodcastRubriqueList
|
|
212
211
|
},
|
|
213
212
|
|
|
214
|
-
mixins: [displayMethods, orgaComputed, podcastView],
|
|
215
|
-
|
|
216
213
|
props: {
|
|
217
214
|
playingPodcast: { default: undefined, type: Object as () => Podcast },
|
|
218
215
|
podcast: { default: undefined, type: Object as () => Podcast },
|
|
@@ -221,6 +218,22 @@ export default defineComponent({
|
|
|
221
218
|
|
|
222
219
|
emits: ["updatePodcast"],
|
|
223
220
|
|
|
221
|
+
setup(props){
|
|
222
|
+
const propsRef = toRefs(props);
|
|
223
|
+
const {
|
|
224
|
+
isLiveReadyToRecord,
|
|
225
|
+
isCounter,
|
|
226
|
+
timeRemaining,
|
|
227
|
+
isPlannedInProcessor,
|
|
228
|
+
date,
|
|
229
|
+
duration,
|
|
230
|
+
durationIso,
|
|
231
|
+
isPodcastmaker,
|
|
232
|
+
editRight
|
|
233
|
+
} = usePodcastView(propsRef.podcast, propsRef.podcastConference);
|
|
234
|
+
return { isPodcastmaker, editRight, isLiveReadyToRecord, isCounter, timeRemaining, isPlannedInProcessor, date, duration, durationIso }
|
|
235
|
+
},
|
|
236
|
+
|
|
224
237
|
data() {
|
|
225
238
|
return {
|
|
226
239
|
};
|
|
@@ -247,9 +260,6 @@ export default defineComponent({
|
|
|
247
260
|
isProgressBar(): boolean {
|
|
248
261
|
return state.emissionsPage.progressBar as boolean;
|
|
249
262
|
},
|
|
250
|
-
editRight(): boolean {
|
|
251
|
-
return this.isEditRights(this.podcast?.organisation.id);
|
|
252
|
-
},
|
|
253
263
|
isLiveReady(): boolean {
|
|
254
264
|
return (
|
|
255
265
|
undefined !== this.podcast?.conferenceId &&
|
|
@@ -289,6 +299,9 @@ export default defineComponent({
|
|
|
289
299
|
},
|
|
290
300
|
},
|
|
291
301
|
methods: {
|
|
302
|
+
urlify(text:string|undefined){
|
|
303
|
+
return displayHelper.urlify(text);
|
|
304
|
+
},
|
|
292
305
|
removeDeleted(): void {
|
|
293
306
|
if (this.isLiveReadyToRecord) {
|
|
294
307
|
this.$router.push("/main/pub/lives");
|
|
@@ -18,8 +18,7 @@
|
|
|
18
18
|
|
|
19
19
|
<script lang="ts">
|
|
20
20
|
import ProgressBar from "../../misc/ProgressBar.vue";
|
|
21
|
-
import DurationHelper from "../../../helper/
|
|
22
|
-
import displayMethods from "../../mixins/displayMethods";
|
|
21
|
+
import DurationHelper from "../../../helper/durationHelper";
|
|
23
22
|
import { usePlayerStore } from "../../../stores/PlayerStore";
|
|
24
23
|
import { mapState, mapActions } from "pinia";
|
|
25
24
|
import { defineComponent } from "vue";
|
|
@@ -28,7 +27,6 @@ export default defineComponent({
|
|
|
28
27
|
components: {
|
|
29
28
|
ProgressBar,
|
|
30
29
|
},
|
|
31
|
-
mixins: [displayMethods],
|
|
32
30
|
props: {
|
|
33
31
|
podcastId: { default: undefined, type: Number },
|
|
34
32
|
duration: { default: 0, type: Number },
|
|
@@ -49,11 +49,10 @@ import TimerSandEmptyIcon from "vue-material-design-icons/TimerSandEmpty.vue";
|
|
|
49
49
|
import EyeOffOutlineIcon from "vue-material-design-icons/EyeOffOutline.vue";
|
|
50
50
|
import CancelIcon from "vue-material-design-icons/Cancel.vue";
|
|
51
51
|
import AlertIcon from "vue-material-design-icons/Alert.vue";
|
|
52
|
-
import DurationHelper from "../../../helper/
|
|
52
|
+
import DurationHelper from "../../../helper/durationHelper";
|
|
53
53
|
import { state } from "../../../stores/ParamSdkStore";
|
|
54
54
|
import { Podcast } from "@/stores/class/general/podcast";
|
|
55
55
|
import { Conference } from "@/stores/class/conference/conference";
|
|
56
|
-
import imageProxy from "../../mixins/imageProxy";
|
|
57
56
|
import { useAuthStore } from "../../../stores/AuthStore";
|
|
58
57
|
import { usePlayerStore } from "../../../stores/PlayerStore";
|
|
59
58
|
import { mapState, mapActions } from "pinia";
|
|
@@ -75,7 +74,6 @@ export default defineComponent({
|
|
|
75
74
|
PlayVideoIcon,
|
|
76
75
|
PodcastIsPlaying
|
|
77
76
|
},
|
|
78
|
-
mixins: [imageProxy],
|
|
79
77
|
props: {
|
|
80
78
|
podcast: { default: () => ({}), type: Object as () => Podcast },
|
|
81
79
|
hidePlay: { default: false, type: Boolean },
|