@saooti/octopus-sdk 37.0.5 → 37.0.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +2 -2
- package/index.html +1 -0
- package/index.ts +21 -21
- package/package.json +26 -20
- package/public/css/fonts/icomoon.eot +0 -0
- package/public/css/fonts/icomoon.svg +1 -1
- package/public/css/fonts/icomoon.ttf +0 -0
- package/public/css/fonts/icomoon.woff +0 -0
- package/public/css/fonts/montserrat/Montserrat-Black.ttf +0 -0
- package/public/css/fonts/montserrat/Montserrat-BlackItalic.ttf +0 -0
- package/public/css/fonts/montserrat/Montserrat-Bold.ttf +0 -0
- package/public/css/fonts/montserrat/Montserrat-BoldItalic.ttf +0 -0
- package/public/css/fonts/montserrat/Montserrat-ExtraBold.ttf +0 -0
- package/public/css/fonts/montserrat/Montserrat-ExtraBoldItalic.ttf +0 -0
- package/public/css/fonts/montserrat/Montserrat-ExtraLight.ttf +0 -0
- package/public/css/fonts/montserrat/Montserrat-ExtraLightItalic.ttf +0 -0
- package/public/css/fonts/montserrat/Montserrat-Italic.ttf +0 -0
- package/public/css/fonts/montserrat/Montserrat-Light.ttf +0 -0
- package/public/css/fonts/montserrat/Montserrat-LightItalic.ttf +0 -0
- package/public/css/fonts/montserrat/Montserrat-Medium.ttf +0 -0
- package/public/css/fonts/montserrat/Montserrat-MediumItalic.ttf +0 -0
- package/public/css/fonts/montserrat/Montserrat-Regular.ttf +0 -0
- package/public/css/fonts/montserrat/Montserrat-SemiBold.ttf +0 -0
- package/public/css/fonts/montserrat/Montserrat-SemiBoldItalic.ttf +0 -0
- package/public/css/fonts/montserrat/Montserrat-Thin.ttf +0 -0
- package/public/css/fonts/montserrat/Montserrat-ThinItalic.ttf +0 -0
- package/public/css/fonts/montserrat/style.css +28 -0
- package/public/css/fonts/style.css +5 -5
- package/src/App.vue +69 -60
- package/src/api/classicCrud.ts +12 -12
- package/src/api/initialize.ts +1 -1
- package/src/assets/bootstrap.scss +9 -0
- package/src/assets/general.scss +1 -1
- package/src/assets/share.scss +1 -1
- package/src/components/display/aggregator/RssSection.vue +3 -3
- package/src/components/display/categories/CategoryChooser.vue +73 -60
- package/src/components/display/categories/CategoryFilter.vue +134 -90
- package/src/components/display/categories/CategoryList.vue +76 -62
- package/src/components/display/comments/AddCommentModal.vue +44 -44
- package/src/components/display/comments/CommentBasicView.vue +38 -30
- package/src/components/display/comments/CommentInput.vue +122 -110
- package/src/components/display/comments/CommentItem.vue +144 -102
- package/src/components/display/comments/CommentList.vue +117 -85
- package/src/components/display/comments/CommentParentInfo.vue +18 -15
- package/src/components/display/comments/CommentPlayer.vue +39 -41
- package/src/components/display/comments/CommentSection.vue +68 -53
- package/src/components/display/edit/EditBox.vue +7 -7
- package/src/components/display/edit/EditBoxRadio.vue +3 -4
- package/src/components/display/edit/EditCommentBox.vue +34 -36
- package/src/components/display/emission/EmissionInlineList.vue +75 -63
- package/src/components/display/emission/EmissionItem.vue +47 -35
- package/src/components/display/emission/EmissionList.vue +111 -83
- package/src/components/display/emission/EmissionPlayerItem.vue +89 -89
- package/src/components/display/filter/AdvancedSearch.vue +81 -73
- package/src/components/display/filter/CategorySearchFilter.vue +27 -25
- package/src/components/display/filter/DateFilter.vue +38 -38
- package/src/components/display/filter/MonetizableFilter.vue +16 -14
- package/src/components/display/filter/ProductorSearch.vue +55 -47
- package/src/components/display/filter/RubriqueChoice.vue +42 -27
- package/src/components/display/filter/RubriqueFilter.vue +130 -85
- package/src/components/display/filter/SearchOrder.vue +16 -11
- package/src/components/display/list/ListPaginate.vue +72 -70
- package/src/components/display/list/PaginateParams.vue +29 -30
- package/src/components/display/list/PaginateSection.vue +210 -0
- package/src/components/display/list/SwiperList.vue +28 -32
- package/src/components/display/live/CountDown.vue +12 -14
- package/src/components/display/live/LiveHorizontalList.vue +60 -50
- package/src/components/display/live/LiveItem.vue +42 -26
- package/src/components/display/live/LiveList.vue +92 -65
- package/src/components/display/live/RadioCurrently.vue +47 -42
- package/src/components/display/live/RadioImage.vue +40 -42
- package/src/components/display/live/RadioItem.vue +15 -22
- package/src/components/display/live/RadioList.vue +24 -21
- package/src/components/display/live/RadioPlanning.vue +105 -68
- package/src/components/display/organisation/OrganisationChooser.vue +58 -42
- package/src/components/display/organisation/OrganisationChooserLight.vue +27 -19
- package/src/components/display/participant/ParticipantItem.vue +89 -76
- package/src/components/display/participant/ParticipantList.vue +90 -60
- package/src/components/display/playlist/PlaylistItem.vue +32 -35
- package/src/components/display/playlist/PlaylistList.vue +70 -52
- package/src/components/display/playlist/PodcastList.vue +61 -50
- package/src/components/display/playlist/PodcastPlaylistInlineList.vue +47 -38
- package/src/components/display/podcasts/AnimatorsItem.vue +17 -15
- package/src/components/display/podcasts/ParticipantDescription.vue +21 -22
- package/src/components/display/podcasts/PodcastFilterList.vue +28 -26
- package/src/components/display/podcasts/PodcastImage.vue +129 -138
- package/src/components/display/podcasts/PodcastInlineList.vue +33 -29
- package/src/components/display/podcasts/PodcastInlineListClassic.vue +91 -71
- package/src/components/display/podcasts/PodcastInlineListTemplate.vue +94 -85
- package/src/components/display/podcasts/PodcastItem.vue +96 -90
- package/src/components/display/podcasts/PodcastItemInfo.vue +63 -65
- package/src/components/display/podcasts/PodcastList.vue +115 -84
- package/src/components/display/podcasts/PodcastModuleBox.vue +95 -104
- package/src/components/display/podcasts/PodcastPlayBar.vue +45 -32
- package/src/components/display/podcasts/PodcastSwiperList.vue +65 -55
- package/src/components/display/podcasts/TagList.vue +33 -37
- package/src/components/display/rubriques/RubriqueChooser.vue +70 -51
- package/src/components/display/rubriques/RubriqueList.vue +117 -89
- package/src/components/display/sharing/PlayerParameters.vue +45 -42
- package/src/components/display/sharing/QrCode.vue +52 -46
- package/src/components/display/sharing/ShareButtons.vue +25 -27
- package/src/components/display/sharing/ShareButtonsIntern.vue +182 -155
- package/src/components/display/sharing/ShareDistribution.vue +101 -67
- package/src/components/display/sharing/SharePlayer.vue +207 -127
- package/src/components/display/sharing/SharePlayerColors.vue +15 -15
- package/src/components/display/sharing/SharePlayerRadio.vue +62 -39
- package/src/components/display/sharing/SharePlayerTypes.vue +93 -55
- package/src/components/display/sharing/SubscribeButtons.vue +83 -32
- package/src/components/display/studio/RecordingItemButton.vue +3 -3
- package/src/components/form/ClassicCheckbox.vue +32 -31
- package/src/components/form/ClassicDatePicker.vue +47 -49
- package/src/components/form/ClassicInputText.vue +99 -98
- package/src/components/form/ClassicLoading.vue +11 -14
- package/src/components/form/ClassicMultiselect.vue +125 -126
- package/src/components/form/ClassicRadio.vue +15 -18
- package/src/components/form/ClassicSearch.vue +17 -23
- package/src/components/form/ClassicSelect.vue +35 -27
- package/src/components/form/{Wysiwyg.vue → ClassicWysiwyg.vue} +94 -109
- package/src/components/misc/AcpmImage.vue +26 -0
- package/src/components/misc/ClassicAccordion.vue +69 -0
- package/src/components/misc/ClassicNav.vue +117 -0
- package/src/components/misc/ClassicPopover.vue +212 -0
- package/src/components/misc/{Spinner.vue → ClassicSpinner.vue} +14 -15
- package/src/components/misc/ErrorMessage.vue +9 -17
- package/src/components/misc/FooterSection.vue +198 -0
- package/src/components/misc/HomeDropdown.vue +67 -64
- package/src/components/misc/LeftMenu.vue +115 -79
- package/src/components/misc/ProgressBar.vue +36 -32
- package/src/components/misc/SnackBar.vue +169 -0
- package/src/components/misc/TopBar.vue +161 -115
- package/src/components/misc/modal/ClassicModal.vue +99 -103
- package/src/components/misc/modal/ClipboardModal.vue +21 -23
- package/src/components/misc/modal/MessageModal.vue +22 -28
- package/src/components/misc/modal/NewsletterModal.vue +139 -113
- package/src/components/misc/modal/QrCodeModal.vue +14 -17
- package/src/components/misc/modal/ShareModalPlayer.vue +44 -60
- package/src/components/misc/player/PlayerCompact.vue +47 -62
- package/src/components/misc/player/{Player.vue → PlayerComponent.vue} +54 -46
- package/src/components/misc/player/PlayerLarge.vue +66 -62
- package/src/components/misc/player/PlayerProgressBar.vue +40 -30
- package/src/components/misc/player/PlayerTimeline.vue +32 -36
- package/src/components/misc/player/radio/RadioHistory.vue +62 -59
- package/src/components/misc/player/radio/RadioProgressBar.vue +44 -35
- package/src/components/mixins/cookies.ts +11 -10
- package/src/components/mixins/displayMethods.ts +5 -4
- package/src/components/mixins/handle403.ts +9 -9
- package/src/components/mixins/imageProxy.ts +14 -7
- package/src/components/mixins/init.ts +31 -16
- package/src/components/mixins/orgaComputed.ts +7 -7
- package/src/components/mixins/organisationFilter.ts +36 -22
- package/src/components/mixins/player/playerComment.ts +46 -37
- package/src/components/mixins/player/playerDisplay.ts +122 -87
- package/src/components/mixins/player/playerLive.ts +65 -43
- package/src/components/mixins/player/playerLogic.ts +133 -88
- package/src/components/mixins/player/playerTranscript.ts +48 -30
- package/src/components/mixins/radio/fetchRadioData.ts +40 -23
- package/src/components/mixins/selenium.ts +2 -2
- package/src/components/mixins/tagOfMixins.ts +11 -11
- package/src/components/pages/CategoryPage.vue +43 -0
- package/src/components/pages/{Emission.vue → EmissionPage.vue} +98 -67
- package/src/components/pages/{Emissions.vue → EmissionsPage.vue} +51 -44
- package/src/components/pages/Error403Page.vue +20 -19
- package/src/components/pages/HomePage.vue +144 -0
- package/src/components/pages/LivesPage.vue +66 -0
- package/src/components/pages/PageNotFound.vue +33 -22
- package/src/components/pages/{Participant.vue → ParticipantPage.vue} +63 -49
- package/src/components/pages/{Participants.vue → ParticipantsPage.vue} +9 -9
- package/src/components/pages/PlaylistPage.vue +175 -0
- package/src/components/pages/{Playlists.vue → PlaylistsPage.vue} +16 -14
- package/src/components/pages/PodcastPage.vue +365 -0
- package/src/components/pages/PodcastsPage.vue +152 -0
- package/src/components/pages/RadioPage.vue +131 -0
- package/src/components/pages/RubriquePage.vue +45 -0
- package/src/components/pages/{Search.vue → SearchPage.vue} +19 -19
- package/src/helper/dom.ts +1 -1
- package/src/helper/duration.ts +10 -4
- package/src/helper/useEventListener.ts +7 -8
- package/src/i18n.ts +31 -30
- package/src/locale/de.ts +263 -257
- package/src/locale/educationen.ts +13 -13
- package/src/locale/educationfr.ts +1 -1
- package/src/locale/en.ts +323 -324
- package/src/locale/es.ts +325 -318
- package/src/locale/fr.ts +330 -324
- package/src/locale/it.ts +332 -328
- package/src/locale/messages.ts +9 -9
- package/src/locale/sl.ts +315 -319
- package/src/main.ts +28 -31
- package/src/router/router.ts +218 -198
- package/src/shims-tsx.d.ts +1 -1
- package/src/shims-vue.d.ts +1 -1
- package/src/stores/ApiStore.ts +44 -44
- package/src/stores/AuthStore.ts +24 -16
- package/src/stores/CommentStore.ts +13 -11
- package/src/stores/FilterStore.ts +25 -15
- package/src/stores/GeneralStore.ts +15 -15
- package/src/stores/ParamSdkStore.ts +179 -137
- package/src/stores/PlayerStore.ts +139 -125
- package/src/stores/class/adserver/adserverConfig.ts +1 -1
- package/src/stores/class/adserver/adserverOtherEmission.ts +9 -9
- package/src/stores/class/cartouchier/cartouche.ts +4 -4
- package/src/stores/class/cartouchier/cartouchier.ts +2 -2
- package/src/stores/class/conference/conference.ts +10 -9
- package/src/stores/class/conference/conferenceMessage.ts +2 -2
- package/src/stores/class/conference/conferenceParticipant.ts +1 -1
- package/src/stores/class/conference/studioCall.ts +6 -6
- package/src/stores/class/contract/contractOrganisation.ts +5 -5
- package/src/stores/class/ftp/ftpEmission.ts +9 -9
- package/src/stores/class/ftp/testFtpEmission.ts +4 -4
- package/src/stores/class/general/audioView.ts +19 -19
- package/src/stores/class/general/category.ts +1 -1
- package/src/stores/class/general/classicSelectType.ts +2 -3
- package/src/stores/class/general/customPlayer.ts +8 -8
- package/src/stores/class/general/emission.ts +20 -21
- package/src/stores/class/general/fetchParam.ts +8 -2
- package/src/stores/class/general/initState.ts +31 -31
- package/src/stores/class/general/interfacePageable.ts +13 -13
- package/src/stores/class/general/ituneCategory.ts +4 -4
- package/src/stores/class/general/listReturn.ts +12 -12
- package/src/stores/class/general/media.ts +7 -7
- package/src/stores/class/general/organisation.ts +9 -10
- package/src/stores/class/general/pageable.ts +10 -10
- package/src/stores/class/general/participant.ts +7 -7
- package/src/stores/class/general/player.ts +30 -28
- package/src/stores/class/general/playlist.ts +17 -19
- package/src/stores/class/general/podcast.ts +19 -19
- package/src/stores/class/general/sortPageable.ts +4 -4
- package/src/stores/class/general/soundcastCategory.ts +7 -7
- package/src/stores/class/ouestFrance/ofTag.ts +34 -34
- package/src/stores/class/ouestFrance/ofTagInfo.ts +9 -9
- package/src/stores/class/ouestFrance/ofTagPage.ts +7 -7
- package/src/stores/class/ouestFrance/ofTagSeo.ts +7 -7
- package/src/stores/class/ouestFrance/ofTagVente.ts +6 -6
- package/src/stores/class/ouestFrance/ofTagWithParents.ts +20 -20
- package/src/stores/class/radio/canal.ts +4 -4
- package/src/stores/class/radio/live.ts +6 -6
- package/src/stores/class/radio/mix.ts +16 -16
- package/src/stores/class/radio/playlistMedia.ts +7 -7
- package/src/stores/class/radio/recurrence.ts +54 -54
- package/src/stores/class/rss/rssEmission.ts +13 -13
- package/src/stores/class/rss/rssInfo.ts +7 -7
- package/src/stores/class/rubrique/rubriquage.ts +2 -2
- package/src/stores/class/rubrique/rubrique.ts +1 -1
- package/src/stores/class/stat/statArrayIncome.ts +5 -5
- package/src/stores/class/stat/statArrayObject.ts +26 -26
- package/src/stores/class/stat/statGraph.ts +6 -6
- package/src/stores/class/user/person.ts +4 -2
- package/src/stores/class/user/profile.ts +4 -2
- package/src/stores/class/user/userKeycloak.ts +4 -5
- package/src/components/display/list/Paginate.vue +0 -181
- package/src/components/misc/Accordion.vue +0 -78
- package/src/components/misc/Footer.vue +0 -165
- package/src/components/misc/Nav.vue +0 -119
- package/src/components/misc/Popover.vue +0 -193
- package/src/components/misc/Snackbar.vue +0 -168
- package/src/components/pages/Category.vue +0 -41
- package/src/components/pages/Home.vue +0 -125
- package/src/components/pages/Lives.vue +0 -64
- package/src/components/pages/Playlist.vue +0 -164
- package/src/components/pages/Podcast.vue +0 -307
- package/src/components/pages/Podcasts.vue +0 -146
- package/src/components/pages/Radio.vue +0 -122
- package/src/components/pages/Rubrique.vue +0 -42
|
@@ -1,13 +1,7 @@
|
|
|
1
1
|
<template>
|
|
2
|
-
<div
|
|
3
|
-
v-if="isComments"
|
|
4
|
-
class="module-box"
|
|
5
|
-
>
|
|
2
|
+
<div v-if="isComments" class="module-box">
|
|
6
3
|
<div class="d-flex align-items-center">
|
|
7
|
-
<h2
|
|
8
|
-
class="mb-0 me-2"
|
|
9
|
-
data-selenium="episode-comment-counter"
|
|
10
|
-
>
|
|
4
|
+
<h2 class="mb-0 me-2" data-selenium="episode-comment-counter">
|
|
11
5
|
{{ commentTitle }}
|
|
12
6
|
</h2>
|
|
13
7
|
<button
|
|
@@ -21,7 +15,7 @@
|
|
|
21
15
|
v-model:knownIdentity="knownIdentity"
|
|
22
16
|
:podcast="podcast"
|
|
23
17
|
:fetch-conference="fetchConference"
|
|
24
|
-
@
|
|
18
|
+
@new-comment="newComment"
|
|
25
19
|
/>
|
|
26
20
|
<CommentList
|
|
27
21
|
ref="commentList"
|
|
@@ -35,25 +29,25 @@
|
|
|
35
29
|
</template>
|
|
36
30
|
|
|
37
31
|
<script lang="ts">
|
|
38
|
-
import CommentList from
|
|
39
|
-
import CommentInput from
|
|
40
|
-
import cookies from
|
|
41
|
-
import { Podcast } from
|
|
42
|
-
import { Conference } from
|
|
43
|
-
import { useCommentStore } from
|
|
44
|
-
import { mapState, mapActions } from
|
|
45
|
-
import { defineComponent } from
|
|
46
|
-
import { CommentPodcast } from
|
|
32
|
+
import CommentList from "./CommentList.vue";
|
|
33
|
+
import CommentInput from "./CommentInput.vue";
|
|
34
|
+
import cookies from "../../mixins/cookies";
|
|
35
|
+
import { Podcast } from "@/stores/class/general/podcast";
|
|
36
|
+
import { Conference } from "@/stores/class/conference/conference";
|
|
37
|
+
import { useCommentStore } from "@/stores/CommentStore";
|
|
38
|
+
import { mapState, mapActions } from "pinia";
|
|
39
|
+
import { defineComponent } from "vue";
|
|
40
|
+
import { CommentPodcast } from "@/stores/class/general/comment";
|
|
47
41
|
export default defineComponent({
|
|
48
|
-
name:
|
|
42
|
+
name: "CommentSection",
|
|
49
43
|
components: {
|
|
50
44
|
CommentList,
|
|
51
45
|
CommentInput,
|
|
52
46
|
},
|
|
53
|
-
mixins:[cookies],
|
|
47
|
+
mixins: [cookies],
|
|
54
48
|
props: {
|
|
55
|
-
podcast: { default: undefined, type: Object as ()=>Podcast },
|
|
56
|
-
fetchConference: { default: undefined, type: Object as ()=>Conference },
|
|
49
|
+
podcast: { default: undefined, type: Object as () => Podcast },
|
|
50
|
+
fetchConference: { default: undefined, type: Object as () => Conference },
|
|
57
51
|
},
|
|
58
52
|
data() {
|
|
59
53
|
return {
|
|
@@ -63,75 +57,96 @@ export default defineComponent({
|
|
|
63
57
|
};
|
|
64
58
|
},
|
|
65
59
|
computed: {
|
|
66
|
-
...mapState(useCommentStore, [
|
|
67
|
-
commentTitle():string{
|
|
68
|
-
const count =
|
|
69
|
-
|
|
60
|
+
...mapState(useCommentStore, ["commentKnownIdentity"]),
|
|
61
|
+
commentTitle(): string {
|
|
62
|
+
const count =
|
|
63
|
+
this.loaded && this.totalCount > 0
|
|
64
|
+
? this.$t("()", { nb: this.totalCount })
|
|
65
|
+
: "";
|
|
66
|
+
return this.$t("Podcast's comments") + count;
|
|
70
67
|
},
|
|
71
68
|
isComments(): boolean {
|
|
72
69
|
if (!this.podcast) return true;
|
|
73
|
-
let podcastComment =
|
|
70
|
+
let podcastComment = "INHERIT";
|
|
74
71
|
if (this.podcast.annotations && this.podcast.annotations.COMMENTS) {
|
|
75
|
-
podcastComment =
|
|
72
|
+
podcastComment = this.podcast.annotations.COMMENTS as string;
|
|
76
73
|
}
|
|
77
|
-
let organisationComment =
|
|
74
|
+
let organisationComment = "LIVE_ONLY";
|
|
78
75
|
if (this.podcast.organisation.comments) {
|
|
79
76
|
organisationComment = this.podcast.organisation.comments;
|
|
80
77
|
}
|
|
81
78
|
return !(
|
|
82
|
-
|
|
83
|
-
(
|
|
84
|
-
(
|
|
85
|
-
|
|
86
|
-
(
|
|
87
|
-
|
|
79
|
+
"NO" === podcastComment ||
|
|
80
|
+
("INHERIT" === podcastComment && "NO" === organisationComment) ||
|
|
81
|
+
("LIVE_RECORD" === podcastComment &&
|
|
82
|
+
"READY_TO_RECORD" !== this.podcast.processingStatus) ||
|
|
83
|
+
("INHERIT" === podcastComment &&
|
|
84
|
+
"LIVE_ONLY" === organisationComment &&
|
|
88
85
|
!this.podcast.conferenceId &&
|
|
89
86
|
0 !== this.podcast.conferenceId)
|
|
90
87
|
);
|
|
91
88
|
},
|
|
92
89
|
knownIdentity: {
|
|
93
|
-
get(): string|null {
|
|
90
|
+
get(): string | null {
|
|
94
91
|
return this.commentKnownIdentity;
|
|
95
92
|
},
|
|
96
|
-
set(value: string|null) {
|
|
93
|
+
set(value: string | null) {
|
|
97
94
|
this.setCommentIdentity(value);
|
|
98
95
|
},
|
|
99
96
|
},
|
|
100
97
|
isLive(): boolean {
|
|
101
98
|
return (
|
|
102
|
-
undefined!==this.fetchConference &&
|
|
99
|
+
undefined !== this.fetchConference &&
|
|
103
100
|
-1 !== this.fetchConference.conferenceId &&
|
|
104
|
-
|
|
105
|
-
|
|
101
|
+
"PUBLISHING" !== this.fetchConference.status &&
|
|
102
|
+
"DEBRIEFING" !== this.fetchConference.status
|
|
106
103
|
);
|
|
107
104
|
},
|
|
108
105
|
},
|
|
109
106
|
|
|
110
107
|
created() {
|
|
111
|
-
this.knownIdentity = this.getCookie(
|
|
108
|
+
this.knownIdentity = this.getCookie("comment-octopus-name");
|
|
112
109
|
},
|
|
113
110
|
methods: {
|
|
114
|
-
...mapActions(useCommentStore, [
|
|
115
|
-
updateFetch(value: {
|
|
111
|
+
...mapActions(useCommentStore, ["setCommentIdentity", "setCommentLoaded"]),
|
|
112
|
+
updateFetch(value: {
|
|
113
|
+
count: number;
|
|
114
|
+
comments: Array<CommentPodcast>;
|
|
115
|
+
}): void {
|
|
116
116
|
this.loaded = true;
|
|
117
117
|
this.setCommentLoaded({
|
|
118
118
|
...value,
|
|
119
|
-
podcastId: this.podcast? this.podcast.podcastId: undefined,
|
|
119
|
+
podcastId: this.podcast ? this.podcast.podcastId : undefined,
|
|
120
120
|
});
|
|
121
121
|
this.totalCount = value.count;
|
|
122
122
|
},
|
|
123
123
|
newComment(comment: CommentPodcast): void {
|
|
124
|
-
(
|
|
124
|
+
(
|
|
125
|
+
this.$refs.commentList as InstanceType<typeof CommentList>
|
|
126
|
+
).addNewComment(comment, true);
|
|
125
127
|
},
|
|
126
|
-
receiveCommentEvent(event: {
|
|
127
|
-
|
|
128
|
+
receiveCommentEvent(event: {
|
|
129
|
+
type: string;
|
|
130
|
+
comment: CommentPodcast;
|
|
131
|
+
oldStatus?: string;
|
|
132
|
+
}): void {
|
|
133
|
+
const commentList = this.$refs.commentList as InstanceType<
|
|
134
|
+
typeof CommentList
|
|
135
|
+
>;
|
|
128
136
|
switch (event.type) {
|
|
129
|
-
case
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
137
|
+
case "Create":
|
|
138
|
+
commentList.addNewComment(event.comment);
|
|
139
|
+
break;
|
|
140
|
+
case "Update":
|
|
141
|
+
commentList.updateComment(event);
|
|
142
|
+
break;
|
|
143
|
+
case "Delete":
|
|
144
|
+
commentList.deleteComment(event.comment);
|
|
145
|
+
break;
|
|
146
|
+
default:
|
|
147
|
+
break;
|
|
133
148
|
}
|
|
134
149
|
},
|
|
135
150
|
},
|
|
136
|
-
})
|
|
137
|
-
</script>
|
|
151
|
+
});
|
|
152
|
+
</script>
|
|
@@ -3,13 +3,13 @@
|
|
|
3
3
|
</template>
|
|
4
4
|
|
|
5
5
|
<script lang="ts">
|
|
6
|
-
import { CommentPodcast } from
|
|
7
|
-
import { defineComponent } from
|
|
6
|
+
import { CommentPodcast } from "@/stores/class/general/comment";
|
|
7
|
+
import { defineComponent } from "vue";
|
|
8
8
|
export default defineComponent({
|
|
9
|
-
methods:{
|
|
10
|
-
updateComment(comment: CommentPodcast): void{
|
|
9
|
+
methods: {
|
|
10
|
+
updateComment(comment: CommentPodcast): void {
|
|
11
11
|
console.log(comment);
|
|
12
|
-
}
|
|
13
|
-
}
|
|
14
|
-
})
|
|
12
|
+
},
|
|
13
|
+
},
|
|
14
|
+
});
|
|
15
15
|
</script>
|
|
@@ -1,10 +1,6 @@
|
|
|
1
1
|
<template>
|
|
2
2
|
<div class="d-flex">
|
|
3
|
-
<button
|
|
4
|
-
class="btn admin-button me-1"
|
|
5
|
-
title="edit"
|
|
6
|
-
@click="editComment"
|
|
7
|
-
>
|
|
3
|
+
<button class="btn admin-button me-1" title="edit" @click="editComment">
|
|
8
4
|
<span
|
|
9
5
|
class="saooti-edit"
|
|
10
6
|
:data-selenium="'Edit-Comment-' + seleniumFormat(comment.name)"
|
|
@@ -68,11 +64,11 @@
|
|
|
68
64
|
</template>
|
|
69
65
|
|
|
70
66
|
<script lang="ts">
|
|
71
|
-
import selenium from
|
|
72
|
-
import { CommentPodcast } from
|
|
73
|
-
import { defineComponent, defineAsyncComponent } from
|
|
67
|
+
import selenium from "../../mixins/selenium";
|
|
68
|
+
import { CommentPodcast } from "@/stores/class/general/comment";
|
|
69
|
+
import { defineComponent, defineAsyncComponent } from "vue";
|
|
74
70
|
const MessageModal = defineAsyncComponent(
|
|
75
|
-
() => import(
|
|
71
|
+
() => import("@/components/misc/modal/MessageModal.vue"),
|
|
76
72
|
);
|
|
77
73
|
export default defineComponent({
|
|
78
74
|
components: {
|
|
@@ -84,70 +80,72 @@ export default defineComponent({
|
|
|
84
80
|
comment: { default: () => ({}), type: Object as () => CommentPodcast },
|
|
85
81
|
organisation: { default: undefined, type: String },
|
|
86
82
|
},
|
|
87
|
-
emits: [
|
|
83
|
+
emits: ["editComment", "updateComment", "deleteComment"],
|
|
88
84
|
|
|
89
85
|
data() {
|
|
90
86
|
return {
|
|
91
87
|
displayModal: false as boolean,
|
|
92
88
|
isDeleting: false as boolean,
|
|
93
|
-
type:
|
|
89
|
+
type: "update" as string,
|
|
94
90
|
seeMore: false as boolean,
|
|
95
91
|
};
|
|
96
92
|
},
|
|
97
93
|
|
|
98
94
|
computed: {
|
|
99
95
|
validateText(): string | undefined {
|
|
100
|
-
if (
|
|
101
|
-
return this.$t(
|
|
96
|
+
if ("Error" === this.type || "Error403" === this.type)
|
|
97
|
+
return this.$t("Close").toString();
|
|
102
98
|
if (this.isDeleting) return undefined;
|
|
103
|
-
return this.$t(
|
|
99
|
+
return this.$t("Yes").toString();
|
|
104
100
|
},
|
|
105
101
|
canceltext(): string | undefined {
|
|
106
|
-
if (
|
|
107
|
-
return this.$t(
|
|
102
|
+
if ("Error" === this.type || "Error403" === this.type) return undefined;
|
|
103
|
+
return this.$t("No").toString();
|
|
108
104
|
},
|
|
109
105
|
modalMessage(): string {
|
|
110
106
|
switch (this.type) {
|
|
111
|
-
case
|
|
107
|
+
case "Delete":
|
|
112
108
|
if (this.isDeleting)
|
|
113
|
-
return this.$t(
|
|
114
|
-
return this.$t(
|
|
109
|
+
return this.$t("Deleting in progress ...").toString();
|
|
110
|
+
return this.$t("Confirm comment deletion text", {
|
|
115
111
|
name: this.comment.name,
|
|
116
112
|
}).toString();
|
|
117
|
-
case
|
|
118
|
-
return this.$t(
|
|
119
|
-
case
|
|
120
|
-
return this.$t(
|
|
113
|
+
case "Error":
|
|
114
|
+
return this.$t("Error occurs while updating your comment").toString();
|
|
115
|
+
case "Error403":
|
|
116
|
+
return this.$t("403 error forbidden").toString();
|
|
121
117
|
default:
|
|
122
|
-
return
|
|
118
|
+
return "";
|
|
123
119
|
}
|
|
124
120
|
},
|
|
125
121
|
modalTitle(): string {
|
|
126
122
|
switch (this.type) {
|
|
127
|
-
case
|
|
128
|
-
return this.$t(
|
|
129
|
-
case
|
|
130
|
-
case
|
|
131
|
-
return this.$t(
|
|
123
|
+
case "Delete":
|
|
124
|
+
return this.$t("Delete comment").toString();
|
|
125
|
+
case "Error403":
|
|
126
|
+
case "Error":
|
|
127
|
+
return this.$t("Error").toString();
|
|
132
128
|
default:
|
|
133
|
-
return this.$t(
|
|
129
|
+
return this.$t("Update comment").toString();
|
|
134
130
|
}
|
|
135
131
|
},
|
|
136
132
|
},
|
|
137
133
|
|
|
138
134
|
methods: {
|
|
139
135
|
editComment(): void {
|
|
140
|
-
this.$emit(
|
|
136
|
+
this.$emit("editComment");
|
|
141
137
|
},
|
|
142
138
|
commentModal(type: string): void {
|
|
143
|
-
console.log(
|
|
139
|
+
console.log("commentModal" + type);
|
|
144
140
|
},
|
|
145
|
-
async updateComment(
|
|
146
|
-
|
|
141
|
+
async updateComment(
|
|
142
|
+
newComment?: CommentPodcast | undefined,
|
|
143
|
+
): Promise<void> {
|
|
144
|
+
console.log("updateComment" + newComment);
|
|
147
145
|
},
|
|
148
146
|
async deleteComment(): Promise<void> {
|
|
149
|
-
console.log(
|
|
147
|
+
console.log("deleteComment");
|
|
150
148
|
},
|
|
151
149
|
},
|
|
152
150
|
});
|
|
153
|
-
</script>
|
|
151
|
+
</script>
|
|
@@ -1,9 +1,6 @@
|
|
|
1
1
|
<template>
|
|
2
2
|
<div class="d-flex flex-column p-3 list-episode">
|
|
3
|
-
<div
|
|
4
|
-
v-if="!overflowScroll"
|
|
5
|
-
class="d-flex justify-content-end"
|
|
6
|
-
>
|
|
3
|
+
<div v-if="!overflowScroll" class="d-flex justify-content-end">
|
|
7
4
|
<div class="hide-phone">
|
|
8
5
|
<button
|
|
9
6
|
class="btn admin-button m-1 saooti-left"
|
|
@@ -20,7 +17,7 @@
|
|
|
20
17
|
</div>
|
|
21
18
|
</div>
|
|
22
19
|
<ClassicLoading
|
|
23
|
-
:loading-text="loading
|
|
20
|
+
:loading-text="loading ? $t('Loading emissions ...') : undefined"
|
|
24
21
|
/>
|
|
25
22
|
<transition-group
|
|
26
23
|
v-show="
|
|
@@ -49,41 +46,39 @@
|
|
|
49
46
|
:to="href"
|
|
50
47
|
class="btn btn-primary align-self-center width-fit-content m-4"
|
|
51
48
|
>
|
|
52
|
-
{{
|
|
53
|
-
buttonText
|
|
54
|
-
}}
|
|
49
|
+
{{ buttonText }}
|
|
55
50
|
</router-link>
|
|
56
51
|
</div>
|
|
57
52
|
</template>
|
|
58
53
|
|
|
59
54
|
<script lang="ts">
|
|
60
|
-
import octopusApi from
|
|
61
|
-
import domHelper from
|
|
62
|
-
import EmissionPlayerItem from
|
|
63
|
-
import { state } from
|
|
64
|
-
import { handle403 } from
|
|
55
|
+
import octopusApi from "@saooti/octopus-api";
|
|
56
|
+
import domHelper from "../../../helper/dom";
|
|
57
|
+
import EmissionPlayerItem from "./EmissionPlayerItem.vue";
|
|
58
|
+
import { state } from "../../../stores/ParamSdkStore";
|
|
59
|
+
import { handle403 } from "../../mixins/handle403";
|
|
65
60
|
const PHONE_WIDTH = 960;
|
|
66
|
-
import ClassicLoading from
|
|
67
|
-
import { Emission } from
|
|
68
|
-
import { Rubrique } from
|
|
69
|
-
import { defineComponent } from
|
|
70
|
-
import { AxiosError } from
|
|
71
|
-
import imageProxy from
|
|
72
|
-
import { Rubriquage } from
|
|
61
|
+
import ClassicLoading from "../../form/ClassicLoading.vue";
|
|
62
|
+
import { Emission } from "@/stores/class/general/emission";
|
|
63
|
+
import { Rubrique } from "@/stores/class/rubrique/rubrique";
|
|
64
|
+
import { defineComponent } from "vue";
|
|
65
|
+
import { AxiosError } from "axios";
|
|
66
|
+
import imageProxy from "../../mixins/imageProxy";
|
|
67
|
+
import { Rubriquage } from "@/stores/class/rubrique/rubriquage";
|
|
73
68
|
export default defineComponent({
|
|
74
|
-
name:
|
|
69
|
+
name: "EmissionInlineList",
|
|
75
70
|
|
|
76
71
|
components: {
|
|
77
72
|
EmissionPlayerItem,
|
|
78
|
-
ClassicLoading
|
|
73
|
+
ClassicLoading,
|
|
79
74
|
},
|
|
80
75
|
|
|
81
|
-
mixins: [handle403,imageProxy],
|
|
76
|
+
mixins: [handle403, imageProxy],
|
|
82
77
|
|
|
83
78
|
props: {
|
|
84
|
-
organisationId: { default: undefined, type: String},
|
|
85
|
-
href: { default: undefined, type: String},
|
|
86
|
-
buttonText: { default: undefined, type: String},
|
|
79
|
+
organisationId: { default: undefined, type: String },
|
|
80
|
+
href: { default: undefined, type: String },
|
|
81
|
+
buttonText: { default: undefined, type: String },
|
|
87
82
|
rubriqueId: { default: undefined, type: Number },
|
|
88
83
|
rubriquageId: { default: undefined, type: Number },
|
|
89
84
|
nbPodcasts: { default: undefined, type: Number },
|
|
@@ -102,17 +97,16 @@ export default defineComponent({
|
|
|
102
97
|
allEmissions: [] as Array<Emission>,
|
|
103
98
|
direction: 1 as number,
|
|
104
99
|
alignLeft: false as boolean,
|
|
105
|
-
rubriques: undefined as Array<Rubrique
|
|
100
|
+
rubriques: undefined as Array<Rubrique> | undefined,
|
|
106
101
|
};
|
|
107
102
|
},
|
|
108
103
|
|
|
109
|
-
|
|
110
104
|
computed: {
|
|
111
105
|
emissions(): Array<Emission> {
|
|
112
106
|
return this.allEmissions.slice(this.index, this.index + this.size);
|
|
113
107
|
},
|
|
114
108
|
overflowScroll(): boolean {
|
|
115
|
-
return
|
|
109
|
+
return state.emissionsPage.overflowScroll as boolean;
|
|
116
110
|
},
|
|
117
111
|
previousAvailable(): boolean {
|
|
118
112
|
return this.index > 0;
|
|
@@ -120,29 +114,29 @@ export default defineComponent({
|
|
|
120
114
|
nextAvailable(): boolean {
|
|
121
115
|
return this.index + this.size < this.totalCount;
|
|
122
116
|
},
|
|
123
|
-
displayRubriquage(): number|undefined {
|
|
117
|
+
displayRubriquage(): number | undefined {
|
|
124
118
|
return state.emissionsPage.rubriquage;
|
|
125
119
|
},
|
|
126
120
|
transitionName(): string {
|
|
127
|
-
return this.direction > 0 ?
|
|
121
|
+
return this.direction > 0 ? "out-left" : "out-right";
|
|
128
122
|
},
|
|
129
123
|
isInlineAnimation(): boolean {
|
|
130
|
-
return
|
|
124
|
+
return state.generalParameters.isInlineAnimation as boolean;
|
|
131
125
|
},
|
|
132
126
|
},
|
|
133
127
|
|
|
134
128
|
watch: {
|
|
135
|
-
sizeItem(){
|
|
129
|
+
sizeItem() {
|
|
136
130
|
this.handleResize();
|
|
137
|
-
}
|
|
131
|
+
},
|
|
138
132
|
},
|
|
139
|
-
|
|
133
|
+
|
|
140
134
|
created() {
|
|
141
|
-
window.addEventListener(
|
|
135
|
+
window.addEventListener("resize", this.handleResize);
|
|
142
136
|
},
|
|
143
137
|
|
|
144
138
|
unmounted() {
|
|
145
|
-
window.removeEventListener(
|
|
139
|
+
window.removeEventListener("resize", this.handleResize);
|
|
146
140
|
},
|
|
147
141
|
|
|
148
142
|
mounted() {
|
|
@@ -155,15 +149,24 @@ export default defineComponent({
|
|
|
155
149
|
methods: {
|
|
156
150
|
async fetchNext(): Promise<void> {
|
|
157
151
|
try {
|
|
158
|
-
const data = await octopusApi.fetchDataWithParams<{
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
152
|
+
const data = await octopusApi.fetchDataWithParams<{
|
|
153
|
+
count: number;
|
|
154
|
+
result: Array<Emission>;
|
|
155
|
+
sort: string;
|
|
156
|
+
}>(
|
|
157
|
+
0,
|
|
158
|
+
"emission/search",
|
|
159
|
+
{
|
|
160
|
+
first: this.first,
|
|
161
|
+
size: this.size + 1,
|
|
162
|
+
organisationId: this.organisationId,
|
|
163
|
+
rubriqueId: this.rubriqueId ? [this.rubriqueId] : [],
|
|
164
|
+
rubriquageId: this.rubriquageId ? [this.rubriquageId] : [],
|
|
165
|
+
sort: "LAST_PODCAST_DESC",
|
|
166
|
+
},
|
|
167
|
+
true,
|
|
168
|
+
);
|
|
169
|
+
|
|
167
170
|
this.loading = false;
|
|
168
171
|
this.loaded = true;
|
|
169
172
|
this.totalCount = data.count;
|
|
@@ -177,7 +180,7 @@ export default defineComponent({
|
|
|
177
180
|
}
|
|
178
181
|
this.first += this.size;
|
|
179
182
|
} catch (error) {
|
|
180
|
-
this.handle403(
|
|
183
|
+
this.handle403(error as AxiosError);
|
|
181
184
|
}
|
|
182
185
|
},
|
|
183
186
|
displayPrevious(): void {
|
|
@@ -221,13 +224,16 @@ export default defineComponent({
|
|
|
221
224
|
},
|
|
222
225
|
preloadImage(url: string): void {
|
|
223
226
|
const img = new Image();
|
|
224
|
-
img.src = this.proxyImageUrl(url,
|
|
227
|
+
img.src = this.proxyImageUrl(url, "330");
|
|
225
228
|
},
|
|
226
229
|
async fetchRubriques(): Promise<void> {
|
|
227
|
-
const data = await octopusApi.fetchData<Rubriquage>(
|
|
230
|
+
const data = await octopusApi.fetchData<Rubriquage>(
|
|
231
|
+
0,
|
|
232
|
+
"rubriquage/" + this.displayRubriquage,
|
|
233
|
+
);
|
|
228
234
|
this.rubriques = data.rubriques;
|
|
229
235
|
},
|
|
230
|
-
rubriquesId(emission: Emission): string|undefined {
|
|
236
|
+
rubriquesId(emission: Emission): string | undefined {
|
|
231
237
|
if (
|
|
232
238
|
!this.displayRubriquage ||
|
|
233
239
|
!emission.rubriqueIds ||
|
|
@@ -237,29 +243,35 @@ export default defineComponent({
|
|
|
237
243
|
)
|
|
238
244
|
return undefined;
|
|
239
245
|
const rubrique = this.rubriques.find(
|
|
240
|
-
(element: Rubrique) =>
|
|
246
|
+
(element: Rubrique) =>
|
|
247
|
+
element.rubriqueId &&
|
|
248
|
+
emission.rubriqueIds.includes(element.rubriqueId) &&
|
|
249
|
+
element.rubriquageId === this.displayRubriquage,
|
|
241
250
|
);
|
|
242
|
-
if(rubrique){
|
|
251
|
+
if (rubrique) {
|
|
243
252
|
return rubrique.name;
|
|
244
253
|
}
|
|
245
254
|
},
|
|
246
255
|
mainRubriquage(emission: Emission): string {
|
|
247
|
-
return state.emissionsPage.mainRubrique &&
|
|
256
|
+
return state.emissionsPage.mainRubrique &&
|
|
257
|
+
emission.rubriqueIds?.includes(state.emissionsPage.mainRubrique)
|
|
258
|
+
? "partenaireRubrique"
|
|
259
|
+
: "";
|
|
248
260
|
},
|
|
249
261
|
},
|
|
250
|
-
})
|
|
262
|
+
});
|
|
251
263
|
</script>
|
|
252
264
|
|
|
253
265
|
<style lang="scss">
|
|
254
|
-
.octopus-app{
|
|
266
|
+
.octopus-app {
|
|
255
267
|
.list-episode {
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
268
|
+
padding: 2rem 0rem 1rem !important;
|
|
269
|
+
@media (max-width: 450px) {
|
|
270
|
+
padding: 0.5rem 0rem 1rem !important;
|
|
271
|
+
}
|
|
272
|
+
h2 {
|
|
273
|
+
margin-bottom: 1rem;
|
|
274
|
+
}
|
|
263
275
|
}
|
|
264
276
|
}
|
|
265
|
-
</style>
|
|
277
|
+
</style>
|