@saooti/octopus-sdk 37.0.6 → 37.0.8

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.
Files changed (236) hide show
  1. package/README.md +2 -2
  2. package/index.ts +22 -22
  3. package/package.json +26 -22
  4. package/src/App.vue +69 -60
  5. package/src/api/classicCrud.ts +12 -12
  6. package/src/api/initialize.ts +1 -1
  7. package/src/assets/transition.scss +34 -22
  8. package/src/components/display/aggregator/RssSection.vue +3 -3
  9. package/src/components/display/categories/CategoryChooser.vue +73 -60
  10. package/src/components/display/categories/CategoryFilter.vue +134 -90
  11. package/src/components/display/categories/CategoryList.vue +76 -62
  12. package/src/components/display/comments/AddCommentModal.vue +44 -44
  13. package/src/components/display/comments/CommentBasicView.vue +38 -30
  14. package/src/components/display/comments/CommentInput.vue +121 -106
  15. package/src/components/display/comments/CommentItem.vue +144 -102
  16. package/src/components/display/comments/CommentList.vue +117 -85
  17. package/src/components/display/comments/CommentParentInfo.vue +18 -15
  18. package/src/components/display/comments/CommentPlayer.vue +39 -41
  19. package/src/components/display/comments/CommentSection.vue +68 -53
  20. package/src/components/display/edit/EditBox.vue +7 -7
  21. package/src/components/display/edit/EditBoxRadio.vue +3 -4
  22. package/src/components/display/edit/EditCommentBox.vue +34 -36
  23. package/src/components/display/emission/EmissionInlineList.vue +75 -63
  24. package/src/components/display/emission/EmissionItem.vue +47 -35
  25. package/src/components/display/emission/EmissionList.vue +118 -83
  26. package/src/components/display/emission/EmissionPlayerItem.vue +89 -89
  27. package/src/components/display/filter/AdvancedSearch.vue +81 -73
  28. package/src/components/display/filter/CategorySearchFilter.vue +27 -25
  29. package/src/components/display/filter/DateFilter.vue +38 -38
  30. package/src/components/display/filter/MonetizableFilter.vue +16 -14
  31. package/src/components/display/filter/ProductorSearch.vue +55 -47
  32. package/src/components/display/filter/RubriqueChoice.vue +42 -27
  33. package/src/components/display/filter/RubriqueFilter.vue +130 -85
  34. package/src/components/display/filter/SearchOrder.vue +16 -11
  35. package/src/components/display/list/ListPaginate.vue +72 -70
  36. package/src/components/display/list/PaginateParams.vue +29 -30
  37. package/src/components/display/list/PaginateSection.vue +210 -0
  38. package/src/components/display/list/SwiperList.vue +28 -32
  39. package/src/components/display/live/CountDown.vue +12 -14
  40. package/src/components/display/live/LiveHorizontalList.vue +60 -50
  41. package/src/components/display/live/LiveItem.vue +42 -26
  42. package/src/components/display/live/LiveList.vue +92 -65
  43. package/src/components/display/live/RadioCurrently.vue +47 -42
  44. package/src/components/display/live/RadioImage.vue +40 -42
  45. package/src/components/display/live/RadioItem.vue +15 -22
  46. package/src/components/display/live/RadioList.vue +24 -21
  47. package/src/components/display/live/RadioPlanning.vue +105 -68
  48. package/src/components/display/organisation/OrganisationChooser.vue +58 -42
  49. package/src/components/display/organisation/OrganisationChooserLight.vue +27 -19
  50. package/src/components/display/participant/ParticipantItem.vue +89 -77
  51. package/src/components/display/participant/ParticipantList.vue +90 -60
  52. package/src/components/display/playlist/PlaylistItem.vue +32 -35
  53. package/src/components/display/playlist/PlaylistList.vue +70 -52
  54. package/src/components/display/playlist/PodcastList.vue +61 -50
  55. package/src/components/display/playlist/PodcastPlaylistInlineList.vue +47 -38
  56. package/src/components/display/podcasts/AnimatorsItem.vue +17 -15
  57. package/src/components/display/podcasts/ParticipantDescription.vue +21 -22
  58. package/src/components/display/podcasts/PodcastFilterList.vue +28 -26
  59. package/src/components/display/podcasts/PodcastImage.vue +129 -131
  60. package/src/components/display/podcasts/PodcastInlineList.vue +33 -29
  61. package/src/components/display/podcasts/PodcastInlineListClassic.vue +91 -71
  62. package/src/components/display/podcasts/PodcastInlineListTemplate.vue +94 -85
  63. package/src/components/display/podcasts/PodcastItem.vue +96 -90
  64. package/src/components/display/podcasts/PodcastItemInfo.vue +61 -65
  65. package/src/components/display/podcasts/PodcastList.vue +115 -84
  66. package/src/components/display/podcasts/PodcastModuleBox.vue +95 -104
  67. package/src/components/display/podcasts/PodcastPlayBar.vue +45 -32
  68. package/src/components/display/podcasts/PodcastSwiperList.vue +65 -55
  69. package/src/components/display/podcasts/TagList.vue +33 -37
  70. package/src/components/display/rubriques/RubriqueChooser.vue +70 -51
  71. package/src/components/display/rubriques/RubriqueList.vue +117 -89
  72. package/src/components/display/sharing/PlayerParameters.vue +45 -42
  73. package/src/components/display/sharing/QrCode.vue +52 -46
  74. package/src/components/display/sharing/ShareButtons.vue +18 -18
  75. package/src/components/display/sharing/ShareButtonsIntern.vue +100 -78
  76. package/src/components/display/sharing/ShareDistribution.vue +101 -67
  77. package/src/components/display/sharing/SharePlayer.vue +207 -127
  78. package/src/components/display/sharing/SharePlayerColors.vue +15 -15
  79. package/src/components/display/sharing/SharePlayerRadio.vue +62 -39
  80. package/src/components/display/sharing/SharePlayerTypes.vue +93 -55
  81. package/src/components/display/sharing/SubscribeButtons.vue +83 -32
  82. package/src/components/display/studio/RecordingItemButton.vue +3 -3
  83. package/src/components/form/ClassicCheckbox.vue +32 -31
  84. package/src/components/form/ClassicDatePicker.vue +47 -49
  85. package/src/components/form/ClassicInputText.vue +99 -98
  86. package/src/components/form/ClassicLoading.vue +11 -14
  87. package/src/components/form/ClassicMultiselect.vue +125 -126
  88. package/src/components/form/ClassicRadio.vue +15 -18
  89. package/src/components/form/ClassicSearch.vue +17 -23
  90. package/src/components/form/ClassicSelect.vue +35 -27
  91. package/src/components/form/{Wysiwyg.vue → ClassicWysiwyg.vue} +103 -118
  92. package/src/components/misc/AcpmImage.vue +6 -6
  93. package/src/components/misc/ClassicAccordion.vue +73 -0
  94. package/src/components/misc/ClassicNav.vue +117 -0
  95. package/src/components/misc/ClassicPopover.vue +212 -0
  96. package/src/components/misc/{Spinner.vue → ClassicSpinner.vue} +14 -15
  97. package/src/components/misc/ErrorMessage.vue +9 -17
  98. package/src/components/misc/FooterSection.vue +198 -0
  99. package/src/components/misc/HomeDropdown.vue +60 -60
  100. package/src/components/misc/LeftMenu.vue +115 -79
  101. package/src/components/misc/ProgressBar.vue +36 -32
  102. package/src/components/misc/SnackBar.vue +169 -0
  103. package/src/components/misc/TopBar.vue +162 -116
  104. package/src/components/misc/modal/ClassicModal.vue +99 -103
  105. package/src/components/misc/modal/ClipboardModal.vue +21 -23
  106. package/src/components/misc/modal/MessageModal.vue +22 -28
  107. package/src/components/misc/modal/NewsletterModal.vue +139 -113
  108. package/src/components/misc/modal/QrCodeModal.vue +14 -17
  109. package/src/components/misc/modal/ShareModalPlayer.vue +44 -60
  110. package/src/components/misc/player/PlayerCompact.vue +47 -62
  111. package/src/components/misc/player/{Player.vue → PlayerComponent.vue} +54 -46
  112. package/src/components/misc/player/PlayerLarge.vue +62 -61
  113. package/src/components/misc/player/PlayerProgressBar.vue +40 -30
  114. package/src/components/misc/player/PlayerTimeline.vue +32 -36
  115. package/src/components/misc/player/radio/RadioHistory.vue +62 -59
  116. package/src/components/misc/player/radio/RadioProgressBar.vue +44 -35
  117. package/src/components/mixins/cookies.ts +11 -10
  118. package/src/components/mixins/displayMethods.ts +5 -4
  119. package/src/components/mixins/handle403.ts +9 -9
  120. package/src/components/mixins/imageProxy.ts +14 -7
  121. package/src/components/mixins/init.ts +31 -16
  122. package/src/components/mixins/orgaComputed.ts +7 -7
  123. package/src/components/mixins/organisationFilter.ts +36 -22
  124. package/src/components/mixins/player/playerComment.ts +46 -37
  125. package/src/components/mixins/player/playerDisplay.ts +122 -87
  126. package/src/components/mixins/player/playerLive.ts +65 -43
  127. package/src/components/mixins/player/playerLogic.ts +133 -88
  128. package/src/components/mixins/player/playerTranscript.ts +48 -30
  129. package/src/components/mixins/radio/fetchRadioData.ts +40 -23
  130. package/src/components/mixins/selenium.ts +2 -2
  131. package/src/components/mixins/tagOfMixins.ts +11 -11
  132. package/src/components/pages/CategoryPage.vue +43 -0
  133. package/src/components/pages/{Emission.vue → EmissionPage.vue} +98 -67
  134. package/src/components/pages/{Emissions.vue → EmissionsPage.vue} +51 -44
  135. package/src/components/pages/Error403Page.vue +20 -19
  136. package/src/components/pages/HomePage.vue +144 -0
  137. package/src/components/pages/LivesPage.vue +66 -0
  138. package/src/components/pages/PageNotFound.vue +33 -22
  139. package/src/components/pages/{Participant.vue → ParticipantPage.vue} +63 -49
  140. package/src/components/pages/{Participants.vue → ParticipantsPage.vue} +9 -9
  141. package/src/components/pages/PlaylistPage.vue +175 -0
  142. package/src/components/pages/{Playlists.vue → PlaylistsPage.vue} +16 -14
  143. package/src/components/pages/PodcastPage.vue +365 -0
  144. package/src/components/pages/PodcastsPage.vue +152 -0
  145. package/src/components/pages/RadioPage.vue +131 -0
  146. package/src/components/pages/RubriquePage.vue +45 -0
  147. package/src/components/pages/{Search.vue → SearchPage.vue} +19 -19
  148. package/src/helper/dom.ts +1 -1
  149. package/src/helper/duration.ts +10 -4
  150. package/src/helper/useEventListener.ts +7 -8
  151. package/src/i18n.ts +31 -30
  152. package/src/locale/de.ts +272 -257
  153. package/src/locale/educationen.ts +13 -13
  154. package/src/locale/educationfr.ts +1 -1
  155. package/src/locale/en.ts +332 -324
  156. package/src/locale/es.ts +334 -318
  157. package/src/locale/fr.ts +339 -324
  158. package/src/locale/it.ts +341 -328
  159. package/src/locale/messages.ts +9 -9
  160. package/src/locale/sl.ts +324 -319
  161. package/src/main.ts +28 -31
  162. package/src/router/router.ts +218 -198
  163. package/src/shims-tsx.d.ts +1 -1
  164. package/src/shims-vue.d.ts +1 -1
  165. package/src/stores/ApiStore.ts +44 -44
  166. package/src/stores/AuthStore.ts +21 -15
  167. package/src/stores/CommentStore.ts +13 -11
  168. package/src/stores/FilterStore.ts +25 -15
  169. package/src/stores/GeneralStore.ts +15 -15
  170. package/src/stores/ParamSdkStore.ts +179 -137
  171. package/src/stores/PlayerStore.ts +139 -125
  172. package/src/stores/class/adserver/adserverConfig.ts +1 -1
  173. package/src/stores/class/adserver/adserverOtherEmission.ts +9 -9
  174. package/src/stores/class/cartouchier/cartouche.ts +4 -4
  175. package/src/stores/class/cartouchier/cartouchier.ts +2 -2
  176. package/src/stores/class/conference/conference.ts +10 -9
  177. package/src/stores/class/conference/conferenceMessage.ts +2 -2
  178. package/src/stores/class/conference/conferenceParticipant.ts +1 -1
  179. package/src/stores/class/conference/studioCall.ts +6 -6
  180. package/src/stores/class/contract/contractOrganisation.ts +5 -5
  181. package/src/stores/class/ftp/ftpEmission.ts +9 -9
  182. package/src/stores/class/ftp/testFtpEmission.ts +4 -4
  183. package/src/stores/class/general/audioView.ts +19 -19
  184. package/src/stores/class/general/category.ts +1 -1
  185. package/src/stores/class/general/classicSelectType.ts +2 -3
  186. package/src/stores/class/general/customPlayer.ts +8 -8
  187. package/src/stores/class/general/emission.ts +20 -20
  188. package/src/stores/class/general/fetchParam.ts +8 -2
  189. package/src/stores/class/general/initState.ts +31 -31
  190. package/src/stores/class/general/interfacePageable.ts +13 -13
  191. package/src/stores/class/general/ituneCategory.ts +4 -4
  192. package/src/stores/class/general/listReturn.ts +12 -12
  193. package/src/stores/class/general/media.ts +7 -7
  194. package/src/stores/class/general/organisation.ts +9 -9
  195. package/src/stores/class/general/pageable.ts +10 -10
  196. package/src/stores/class/general/participant.ts +7 -7
  197. package/src/stores/class/general/player.ts +30 -28
  198. package/src/stores/class/general/playlist.ts +17 -19
  199. package/src/stores/class/general/podcast.ts +19 -19
  200. package/src/stores/class/general/sortPageable.ts +4 -4
  201. package/src/stores/class/general/soundcastCategory.ts +7 -7
  202. package/src/stores/class/ouestFrance/ofTag.ts +34 -34
  203. package/src/stores/class/ouestFrance/ofTagInfo.ts +9 -9
  204. package/src/stores/class/ouestFrance/ofTagPage.ts +7 -7
  205. package/src/stores/class/ouestFrance/ofTagSeo.ts +7 -7
  206. package/src/stores/class/ouestFrance/ofTagVente.ts +6 -6
  207. package/src/stores/class/ouestFrance/ofTagWithParents.ts +20 -20
  208. package/src/stores/class/radio/canal.ts +4 -4
  209. package/src/stores/class/radio/live.ts +6 -6
  210. package/src/stores/class/radio/mix.ts +16 -16
  211. package/src/stores/class/radio/playlistMedia.ts +7 -7
  212. package/src/stores/class/radio/recurrence.ts +54 -54
  213. package/src/stores/class/rss/rssEmission.ts +13 -13
  214. package/src/stores/class/rss/rssInfo.ts +7 -7
  215. package/src/stores/class/rubrique/rubriquage.ts +2 -2
  216. package/src/stores/class/rubrique/rubrique.ts +1 -1
  217. package/src/stores/class/stat/statArrayIncome.ts +5 -5
  218. package/src/stores/class/stat/statArrayObject.ts +26 -26
  219. package/src/stores/class/stat/statGraph.ts +6 -6
  220. package/src/stores/class/user/person.ts +4 -2
  221. package/src/stores/class/user/profile.ts +4 -2
  222. package/src/stores/class/user/userKeycloak.ts +4 -5
  223. package/src/components/display/list/Paginate.vue +0 -181
  224. package/src/components/misc/Accordion.vue +0 -78
  225. package/src/components/misc/Footer.vue +0 -169
  226. package/src/components/misc/Nav.vue +0 -119
  227. package/src/components/misc/Popover.vue +0 -193
  228. package/src/components/misc/Snackbar.vue +0 -168
  229. package/src/components/pages/Category.vue +0 -41
  230. package/src/components/pages/Home.vue +0 -125
  231. package/src/components/pages/Lives.vue +0 -64
  232. package/src/components/pages/Playlist.vue +0 -164
  233. package/src/components/pages/Podcast.vue +0 -307
  234. package/src/components/pages/Podcasts.vue +0 -146
  235. package/src/components/pages/Radio.vue +0 -122
  236. package/src/components/pages/Rubrique.vue +0 -42
@@ -2,7 +2,7 @@
2
2
  <div class="module-box">
3
3
  <div class="d-flex align-items-center mb-3">
4
4
  <h2 class="big-h2 mb-0">
5
- {{ $t('Share') }}
5
+ {{ $t("Share") }}
6
6
  </h2>
7
7
  <span
8
8
  v-if="authenticated"
@@ -11,7 +11,7 @@
11
11
  tabindex="0"
12
12
  class="saooti-help ms-2"
13
13
  />
14
- <Popover
14
+ <ClassicPopover
15
15
  v-if="authenticated"
16
16
  target="popover-share-help"
17
17
  :title="$t('Help')"
@@ -31,31 +31,31 @@
31
31
  </template>
32
32
 
33
33
  <script lang="ts">
34
- import { Emission } from '@/stores/class/general/emission';
35
- import { Podcast } from '@/stores/class/general/podcast';
36
- import { state } from '../../../stores/ParamSdkStore';
37
- import displayMethods from '../../mixins/displayMethods';
38
- import Popover from '../../misc/Popover.vue';
39
- import ShareButtonsIntern from './ShareButtonsIntern.vue';
40
- import { defineComponent } from 'vue';
41
- import { Playlist } from '@/stores/class/general/playlist';
34
+ import { Emission } from "@/stores/class/general/emission";
35
+ import { Podcast } from "@/stores/class/general/podcast";
36
+ import { state } from "../../../stores/ParamSdkStore";
37
+ import displayMethods from "../../mixins/displayMethods";
38
+ import ClassicPopover from "../../misc/ClassicPopover.vue";
39
+ import ShareButtonsIntern from "./ShareButtonsIntern.vue";
40
+ import { defineComponent } from "vue";
41
+ import { Playlist } from "@/stores/class/general/playlist";
42
42
  export default defineComponent({
43
43
  components: {
44
44
  ShareButtonsIntern,
45
- Popover,
45
+ ClassicPopover,
46
46
  },
47
47
  mixins: [displayMethods],
48
48
  props: {
49
- podcast: { default: undefined, type: Object as ()=> Podcast},
50
- emission: { default: undefined, type: Object as ()=> Emission},
51
- playlist: { default: undefined, type: Object as ()=>Playlist},
52
- participantId: { default: undefined, type: Number},
53
- organisationId: { default: undefined, type: String},
49
+ podcast: { default: undefined, type: Object as () => Podcast },
50
+ emission: { default: undefined, type: Object as () => Emission },
51
+ playlist: { default: undefined, type: Object as () => Playlist },
52
+ participantId: { default: undefined, type: Number },
53
+ organisationId: { default: undefined, type: String },
54
54
  },
55
55
  computed: {
56
56
  authenticated(): boolean {
57
- return (state.generalParameters.authenticated as boolean);
57
+ return state.generalParameters.authenticated as boolean;
58
58
  },
59
59
  },
60
- })
60
+ });
61
61
  </script>
@@ -1,14 +1,11 @@
1
1
  <template>
2
2
  <div class="d-flex align-items-center justify-content-between">
3
- <div class="d-flex flex-column me-2" v-if="!isGarStudent">
3
+ <div v-if="!isGarStudent" class="d-flex flex-column me-2">
4
4
  <div class="h4 mb-2">
5
- {{ $t('Social networks') }}
5
+ {{ $t("Social networks") }}
6
6
  </div>
7
7
  <div class="d-flex align-items-center">
8
- <template
9
- v-for="button in arrayShareButtons"
10
- :key="button.title"
11
- >
8
+ <template v-for="button in arrayShareButtons" :key="button.title">
12
9
  <a
13
10
  v-if="button.condition"
14
11
  rel="noopener"
@@ -23,12 +20,9 @@
23
20
  </template>
24
21
  </div>
25
22
  </div>
26
- <div
27
- v-if="podcast || emission ||playlist"
28
- class="d-flex flex-column me-2"
29
- >
23
+ <div v-if="podcast || emission || playlist" class="d-flex flex-column me-2">
30
24
  <div class="h4 mb-2">
31
- {{ $t('Newsletter') }}
25
+ {{ $t("Newsletter") }}
32
26
  </div>
33
27
  <div class="d-flex align-items-center justify-content-center">
34
28
  <button
@@ -42,7 +36,7 @@
42
36
 
43
37
  <div class="d-flex flex-column me-2">
44
38
  <div class="h4 mb-2">
45
- {{ $t('QR Code') }}
39
+ {{ $t("QR Code") }}
46
40
  </div>
47
41
  <div class="d-flex align-items-center justify-content-center">
48
42
  <button
@@ -56,24 +50,21 @@
56
50
 
57
51
  <div class="d-flex flex-column me-2">
58
52
  <div class="h4 mb-2">
59
- {{ $t('Copy this page URL') }}
53
+ {{ $t("Copy this page URL") }}
60
54
  </div>
61
55
  <div class="d-flex align-items-center justify-content-center">
62
56
  <button
63
57
  :class="getClass()"
64
58
  class="saooti-link"
65
59
  :title="$t('Copy this page URL')"
66
- @click="onCopyCode(urlPage,afterCopy)"
60
+ @click="onCopyCode(urlPage, afterCopy)"
67
61
  />
68
62
  </div>
69
63
  </div>
70
64
 
71
- <div
72
- v-if="''!==rssUrl && displayRss"
73
- class="d-flex flex-column me-2"
74
- >
65
+ <div v-if="'' !== rssUrl && displayRss" class="d-flex flex-column me-2">
75
66
  <div class="h4 mb-2">
76
- {{ $t('Rss feed') }}
67
+ {{ $t("Rss feed") }}
77
68
  </div>
78
69
  <div class="d-flex align-items-center justify-content-center">
79
70
  <a
@@ -87,8 +78,7 @@
87
78
  />
88
79
  </div>
89
80
  </div>
90
-
91
-
81
+
92
82
  <ClipboardModal
93
83
  v-if="dataRSSSave"
94
84
  :link="rssUrl"
@@ -110,44 +100,47 @@
110
100
  :url-page="urlPage"
111
101
  @close="qrCode = false"
112
102
  />
113
- <Snackbar
114
- ref="snackbar"
115
- position="bottom-left"
116
- />
103
+ <SnackBar ref="snackbar" position="bottom-left" />
117
104
  </div>
118
105
  </template>
119
106
 
120
107
  <script lang="ts">
121
- import { useAuthStore } from '@/stores/AuthStore';
122
- import { mapState } from 'pinia';
123
- import octopusApi from '@saooti/octopus-api';
124
- import { Emission } from '@/stores/class/general/emission';
125
- import { Podcast } from '@/stores/class/general/podcast';
126
- import { state } from '../../../stores/ParamSdkStore';
127
- import Snackbar from '../../misc/Snackbar.vue';
128
- import displayMethods from '../../mixins/displayMethods';
129
- import { defineComponent, defineAsyncComponent } from 'vue';
130
- import { Playlist } from '@/stores/class/general/playlist';
131
- const ClipboardModal = defineAsyncComponent(() => import('../../misc/modal/ClipboardModal.vue'));
132
- const NewsletterModal = defineAsyncComponent(() => import('../../misc/modal/NewsletterModal.vue'));
133
- const QrCodeModal = defineAsyncComponent(() => import('../../misc/modal/QrCodeModal.vue'));
108
+ import { useAuthStore } from "@/stores/AuthStore";
109
+ import { mapState } from "pinia";
110
+ import octopusApi from "@saooti/octopus-api";
111
+ import { Emission } from "@/stores/class/general/emission";
112
+ import { Podcast } from "@/stores/class/general/podcast";
113
+ import { state } from "../../../stores/ParamSdkStore";
114
+ import SnackBar from "../../misc/SnackBar.vue";
115
+ import displayMethods from "../../mixins/displayMethods";
116
+ import { defineComponent, defineAsyncComponent } from "vue";
117
+ import { Playlist } from "@/stores/class/general/playlist";
118
+ const ClipboardModal = defineAsyncComponent(
119
+ () => import("../../misc/modal/ClipboardModal.vue"),
120
+ );
121
+ const NewsletterModal = defineAsyncComponent(
122
+ () => import("../../misc/modal/NewsletterModal.vue"),
123
+ );
124
+ const QrCodeModal = defineAsyncComponent(
125
+ () => import("../../misc/modal/QrCodeModal.vue"),
126
+ );
134
127
  export default defineComponent({
135
128
  components: {
136
129
  ClipboardModal,
137
130
  NewsletterModal,
138
131
  QrCodeModal,
139
- Snackbar,
132
+ SnackBar,
140
133
  },
141
134
 
142
135
  mixins: [displayMethods],
143
136
 
144
137
  props: {
145
- podcast: { default: undefined, type: Object as ()=> Podcast},
146
- emission: { default: undefined, type: Object as ()=> Emission},
147
- playlist: { default: undefined, type: Object as ()=>Playlist},
148
- participantId: { default: undefined, type: Number},
149
- organisationId: { default: undefined, type: String},
150
- isVertical: { default: false, type: Boolean},
138
+ podcast: { default: undefined, type: Object as () => Podcast },
139
+ emission: { default: undefined, type: Object as () => Emission },
140
+ playlist: { default: undefined, type: Object as () => Playlist },
141
+ participantId: { default: undefined, type: Number },
142
+ organisationId: { default: undefined, type: String },
143
+ isVertical: { default: false, type: Boolean },
151
144
  },
152
145
 
153
146
  data() {
@@ -159,65 +152,94 @@ export default defineComponent({
159
152
  };
160
153
  },
161
154
  computed: {
162
- ...mapState(useAuthStore, ['isGarStudent']),
163
- titleRssButton(): string{
164
- if(this.participantId){
165
- return this.$t('Subscribe to this participant');
155
+ ...mapState(useAuthStore, ["isGarStudent"]),
156
+ titleRssButton(): string {
157
+ if (this.participantId) {
158
+ return this.$t("Subscribe to this participant");
166
159
  }
167
- if(this.emission){
168
- return this.$t('Subscribe to this emission');
160
+ if (this.emission) {
161
+ return this.$t("Subscribe to this emission");
169
162
  }
170
- return this.$t('Subscribe to this RSS feed');
163
+ return this.$t("Subscribe to this RSS feed");
171
164
  },
172
- arrayShareButtons(){
165
+ arrayShareButtons() {
173
166
  return [
174
- { title: 'Facebook', icon:'saooti-facebook', className:'btn-facebook', url :`https://www.facebook.com/sharer/sharer.php?u=${this.urlPage}`, condition: true},
175
- { title: 'Twitter', icon:'saooti-twitter', className:'btn-twitter', url :`https://twitter.com/intent/tweet?text=${this.urlPage}`, condition: true},
176
- { title: 'Linkedin', icon:'saooti-linkedin', className:'btn-linkedin', url :`https://www.linkedin.com/sharing/share-offsite/?url=${this.urlPage}`, condition: true},
177
- { title: 'Whatsapp', icon:'saooti-Whatsapp', className:'btn-whatsapp', url :`whatsapp://send?text=${this.urlPage}`, condition: window.matchMedia('(hover: none)').matches}
178
- ]
167
+ {
168
+ title: "Facebook",
169
+ icon: "saooti-facebook",
170
+ className: "btn-facebook",
171
+ url: `https://www.facebook.com/sharer/sharer.php?u=${this.urlPage}`,
172
+ condition: true,
173
+ },
174
+ {
175
+ title: "Twitter",
176
+ icon: "saooti-twitter",
177
+ className: "btn-twitter",
178
+ url: `https://twitter.com/intent/tweet?text=${this.urlPage}`,
179
+ condition: true,
180
+ },
181
+ {
182
+ title: "Linkedin",
183
+ icon: "saooti-linkedin",
184
+ className: "btn-linkedin",
185
+ url: `https://www.linkedin.com/sharing/share-offsite/?url=${this.urlPage}`,
186
+ condition: true,
187
+ },
188
+ {
189
+ title: "Whatsapp",
190
+ icon: "saooti-Whatsapp",
191
+ className: "btn-whatsapp",
192
+ url: `whatsapp://send?text=${this.urlPage}`,
193
+ condition: window.matchMedia("(hover: none)").matches,
194
+ },
195
+ ];
179
196
  },
180
- urlPage(): string{
197
+ urlPage(): string {
181
198
  return window.location.href;
182
199
  },
183
200
  authenticated(): boolean {
184
- return (state.generalParameters.authenticated as boolean);
201
+ return state.generalParameters.authenticated as boolean;
185
202
  },
186
203
  rssUrl(): string {
187
- let api = state.generalParameters.ApiUri+ 'rss/';
188
- if (this.emission){
189
- return api +'emission/' + this.emission.emissionId + '.rss';
204
+ let api = state.generalParameters.ApiUri + "rss/";
205
+ if (this.emission) {
206
+ return api + "emission/" + this.emission.emissionId + ".rss";
190
207
  }
191
- if (this.participantId){
192
- return api +'participant/' + this.participantId + '.rss';
208
+ if (this.participantId) {
209
+ return api + "participant/" + this.participantId + ".rss";
193
210
  }
194
- if (this.organisationId){
195
- return api +'productor/' + this.organisationId + '.rss';
211
+ if (this.organisationId) {
212
+ return api + "productor/" + this.organisationId + ".rss";
196
213
  }
197
- if(this.playlist){
198
- return api +'playlist/' + this.playlist.playlistId + '.rss';
214
+ if (this.playlist) {
215
+ return api + "playlist/" + this.playlist.playlistId + ".rss";
199
216
  }
200
- return '';
217
+ return "";
201
218
  },
202
219
  },
203
- async created(){
204
- if(this.organisationId || this.participantId){
205
- this.displayRss = await octopusApi.fetchDataPublic<boolean>(0,`rss/participants/allowed/${this.organisationId}`);
206
- }else{
220
+ async created() {
221
+ if (this.organisationId || this.participantId) {
222
+ this.displayRss = await octopusApi.fetchDataPublic<boolean>(
223
+ 0,
224
+ `rss/participants/allowed/${this.organisationId}`,
225
+ );
226
+ } else {
207
227
  this.displayRss = true;
208
228
  }
209
229
  },
210
230
 
211
231
  methods: {
212
- getClass(className='btn-rss'): string{
232
+ getClass(className = "btn-rss"): string {
213
233
  return `btn ${className} share-btn mb-2 text-dark`;
214
234
  },
215
235
  openPopup(): void {
216
236
  this.dataRSSSave = !this.dataRSSSave;
217
237
  },
218
- afterCopy(): void{
219
- (this.$refs.snackbar as InstanceType<typeof Snackbar>).open(this.$t('Link in clipboard'));
238
+ afterCopy(): void {
239
+ (this.$refs.snackbar as InstanceType<typeof SnackBar>).open(
240
+ this.$t("Link in clipboard"),
241
+ );
220
242
  },
221
243
  },
222
- })
244
+ });
223
245
  </script>
@@ -1,10 +1,10 @@
1
1
  <template>
2
2
  <div class="module-box">
3
3
  <h2 class="big-h2 mb-3">
4
- {{ $t('Distribute') }}
4
+ {{ $t("Distribute") }}
5
5
  </h2>
6
6
  <div class="sharing-distribution-container">
7
- {{ $t('Rss feed:') }}
7
+ {{ $t("Rss feed:") }}
8
8
  <div class="text-primary hide-small-screen text-break">
9
9
  {{ rss }}
10
10
  </div>
@@ -14,15 +14,12 @@
14
14
  class="btn btn-primary"
15
15
  :title="$t('Copy')"
16
16
  @click="onCopyCode(rss, afterCopy)"
17
- >
17
+ />
18
18
  </div>
19
- <RssSection
20
- v-if="emission"
21
- :emission="emission"
22
- />
19
+ <RssSection v-if="emission" :emission="emission" />
23
20
  <div class="sharing-distribution-container">
24
- <router-link
25
- v-for="platform in platformShare"
21
+ <router-link
22
+ v-for="platform in platformShare"
26
23
  :key="platform.title"
27
24
  :to="platform.url"
28
25
  class="text-dark"
@@ -30,52 +27,84 @@
30
27
  <span :class="platform.icon" />{{ platform.title }}
31
28
  </router-link>
32
29
  </div>
33
- <Snackbar
34
- ref="snackbar"
35
- position="bottom-left"
36
- />
30
+ <SnackBar ref="snackbar" position="bottom-left" />
37
31
  </div>
38
32
  </template>
39
33
 
40
34
  <script lang="ts">
41
- import { state } from '../../../stores/ParamSdkStore';
42
- import octopusApi from '@saooti/octopus-api';
43
- import Snackbar from '../../misc/Snackbar.vue';
44
- import displayMethods from '../../mixins/displayMethods';
45
- import { Emission } from '@/stores/class/general/emission';
35
+ import { state } from "../../../stores/ParamSdkStore";
36
+ import octopusApi from "@saooti/octopus-api";
37
+ import SnackBar from "../../misc/SnackBar.vue";
38
+ import displayMethods from "../../mixins/displayMethods";
39
+ import { Emission } from "@/stores/class/general/emission";
46
40
 
47
- import { defineComponent, defineAsyncComponent } from 'vue';
48
- const RssSection = defineAsyncComponent(() => import('@/components/display/aggregator/RssSection.vue'));
41
+ import { defineComponent, defineAsyncComponent } from "vue";
42
+ const RssSection = defineAsyncComponent(
43
+ () => import("@/components/display/aggregator/RssSection.vue"),
44
+ );
49
45
  export default defineComponent({
50
46
  components: {
51
- Snackbar,
47
+ SnackBar,
52
48
  RssSection,
53
49
  },
54
50
  mixins: [displayMethods],
55
51
  props: {
56
- emissionId: { default: undefined, type: Number},
52
+ emissionId: { default: undefined, type: Number },
57
53
  },
58
-
54
+
59
55
  data() {
60
56
  return {
61
- emission: undefined as Emission|undefined,
62
- rss: '' as string,
57
+ emission: undefined as Emission | undefined,
58
+ rss: "" as string,
63
59
  };
64
60
  },
65
- computed:{
66
- platformShare(){
61
+ computed: {
62
+ platformShare() {
67
63
  return [
68
- {url:this.getUrl('amazon'), icon:'saooti-amzn', title:'Amazon Music | Podcasters'},
69
- {url:this.getUrl('apple'), icon:'saooti-apple', title:'Apple Podcast / iTunes'},
70
- {url:this.getUrl('deezer'), icon:'saooti-deezer', title:'Deezer'},
71
- {url:this.getUrl('googlePodcasts'), icon:'saooti-google-podcasts', title:'Google Podcasts'},
72
- {url:this.getUrl('PlayerFM'), icon:'saooti-playerfm', title:'PlayerFM'},
73
- {url:this.getUrl('PocketCasts'), icon:'saooti-pocket-casts', title:'Pocket Casts'},
74
- {url:this.getUrl('PodcastAddict'), icon:'saooti-podcast-addict', title:'Podcast Addict'},
75
- {url:this.getUrl('radioline'), icon:'saooti-radioline', title:'Radioline'},
76
- {url:this.getUrl('spotify'), icon:'saooti-spotify', title:'Spotify'},
77
- {url:this.getUrl('tuneIn'), icon:'saooti-tunin', title:'TuneIn'}];
78
- }
64
+ {
65
+ url: this.getUrl("amazon"),
66
+ icon: "saooti-amzn",
67
+ title: "Amazon Music | Podcasters",
68
+ },
69
+ {
70
+ url: this.getUrl("apple"),
71
+ icon: "saooti-apple",
72
+ title: "Apple Podcast / iTunes",
73
+ },
74
+ { url: this.getUrl("deezer"), icon: "saooti-deezer", title: "Deezer" },
75
+ {
76
+ url: this.getUrl("googlePodcasts"),
77
+ icon: "saooti-google-podcasts",
78
+ title: "Google Podcasts",
79
+ },
80
+ {
81
+ url: this.getUrl("PlayerFM"),
82
+ icon: "saooti-playerfm",
83
+ title: "PlayerFM",
84
+ },
85
+ {
86
+ url: this.getUrl("PocketCasts"),
87
+ icon: "saooti-pocket-casts",
88
+ title: "Pocket Casts",
89
+ },
90
+ {
91
+ url: this.getUrl("PodcastAddict"),
92
+ icon: "saooti-podcast-addict",
93
+ title: "Podcast Addict",
94
+ },
95
+ {
96
+ url: this.getUrl("radioline"),
97
+ icon: "saooti-radioline",
98
+ title: "Radioline",
99
+ },
100
+ {
101
+ url: this.getUrl("spotify"),
102
+ icon: "saooti-spotify",
103
+ title: "Spotify",
104
+ },
105
+ { url: this.getUrl("tuneIn"), icon: "saooti-tunin", title: "TuneIn" },
106
+ ];
107
+ },
79
108
  },
80
109
 
81
110
  mounted() {
@@ -84,49 +113,54 @@ export default defineComponent({
84
113
  },
85
114
 
86
115
  methods: {
87
- getUrl(platform: string): string{
116
+ getUrl(platform: string): string {
88
117
  return `/main/priv/distribution/${platform}/${this.emissionId}`;
89
118
  },
90
119
  async getEmissionDetails(): Promise<void> {
91
- this.emission = await octopusApi.fetchData<Emission>(0,'emission/'+this.emissionId);
120
+ this.emission = await octopusApi.fetchData<Emission>(
121
+ 0,
122
+ "emission/" + this.emissionId,
123
+ );
92
124
  },
93
125
  getRSS(): void {
94
126
  if (!this.$props.emissionId || this.$props.emissionId <= 0) return;
95
127
  this.rss = `${state.octopusApi.url}rss/emission/${this.emissionId}.rss`;
96
128
  },
97
- afterCopy(): void{
98
- (this.$refs.snackbar as InstanceType<typeof Snackbar>).open(this.$t('Link in clipboard'));
99
- }
129
+ afterCopy(): void {
130
+ (this.$refs.snackbar as InstanceType<typeof SnackBar>).open(
131
+ this.$t("Link in clipboard"),
132
+ );
133
+ },
100
134
  },
101
- })
135
+ });
102
136
  </script>
103
137
 
104
138
  <style lang="scss">
105
- @import '@scss/_variables.scss';
106
- .octopus-app{
107
- .sharing-distribution-container {
108
- border: 0.05rem solid #dee2e6;
109
- border-radius: $octopus-borderradius;
110
- padding: 0.4rem;
111
- margin: 0.2rem 1rem 0.2rem 0;
112
- display: flex;
113
- font-weight: 500;
114
- align-items: center;
115
- justify-content: space-between;
116
- flex-wrap: wrap;
117
- a {
139
+ @import "@scss/_variables.scss";
140
+ .octopus-app {
141
+ .sharing-distribution-container {
142
+ border: 0.05rem solid #dee2e6;
143
+ border-radius: $octopus-borderradius;
144
+ padding: 0.4rem;
145
+ margin: 0.2rem 1rem 0.2rem 0;
118
146
  display: flex;
147
+ font-weight: 500;
119
148
  align-items: center;
120
- margin: 5px;
121
- }
122
- span {
123
- font-size: 1.4rem;
124
- margin: 0 0.3em 0 0;
125
- }
126
- @media (max-width: 960px) {
149
+ justify-content: space-between;
127
150
  flex-wrap: wrap;
128
- margin: 0.2rem 0.5rem;
151
+ a {
152
+ display: flex;
153
+ align-items: center;
154
+ margin: 5px;
155
+ }
156
+ span {
157
+ font-size: 1.4rem;
158
+ margin: 0 0.3em 0 0;
159
+ }
160
+ @media (max-width: 960px) {
161
+ flex-wrap: wrap;
162
+ margin: 0.2rem 0.5rem;
163
+ }
129
164
  }
130
165
  }
131
- }
132
- </style>
166
+ </style>