@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
@@ -1,41 +1,36 @@
1
1
  <template>
2
2
  <div
3
3
  class="podcast-item-container"
4
- :class="[
5
- podcastBorderBottom ? 'border-bottom' : '',
6
- ]"
4
+ :class="[podcastBorderBottom ? 'border-bottom' : '']"
7
5
  :data-pubdate="displayDate"
8
6
  :data-count="podcast.downloadCount"
9
7
  >
10
8
  <PodcastImage
11
9
  :podcast="podcast"
12
- :hide-play="!podcastItemDescription || (podcastItemDescription && (!hoverDesc || !description))"
13
- :display-description="0!==description.length && podcastItemDescription"
10
+ :hide-play="
11
+ !podcastItemDescription ||
12
+ (podcastItemDescription && (!hoverDesc || !description))
13
+ "
14
+ :display-description="0 !== description.length && podcastItemDescription"
14
15
  :arrow-direction="arrowDirection"
15
16
  :fetch-conference="fetchConference"
16
- @hideDescription="hideDescription"
17
- @showDescription="showDescription"
17
+ @hide-description="hideDescription"
18
+ @show-description="showDescription"
18
19
  />
19
20
  <div
20
21
  v-if="podcastItemDescription && hoverDesc"
21
22
  ref="descriptionPodcastContainer"
22
23
  class="description-podcast-item html-wysiwyg-content"
23
24
  :class="[
24
- hoverDesc && ''!==description ? 'visible' : 'invisible',
25
+ hoverDesc && '' !== description ? 'visible' : 'invisible',
25
26
  isDescriptionBig ? 'after-podcast-description' : '',
26
27
  ]"
27
28
  >
28
29
  <!-- eslint-disable vue/no-v-html -->
29
- <div
30
- ref="descriptionPodcast"
31
- v-html="description"
32
- />
33
- <!-- eslint-enable -->
30
+ <div ref="descriptionPodcast" v-html="description" />
31
+ <!-- eslint-enable -->
34
32
  </div>
35
- <div
36
- @mouseenter="showDescription"
37
- @mouseleave="hideDescription"
38
- >
33
+ <div @mouseenter="showDescription" @mouseleave="hideDescription">
39
34
  <PodcastItemInfo
40
35
  :podcast-id="podcast.podcastId"
41
36
  :title="podcast.title"
@@ -50,129 +45,140 @@
50
45
  </template>
51
46
 
52
47
  <script lang="ts">
53
- import PodcastItemInfo from './PodcastItemInfo.vue';
54
- import PodcastImage from './PodcastImage.vue';
55
- import { state } from '../../../stores/ParamSdkStore';
56
- import dayjs from 'dayjs';
57
- import { Podcast } from '@/stores/class/general/podcast';
58
- import { defineComponent } from 'vue'
59
- import { Conference } from '@/stores/class/conference/conference';
48
+ import PodcastItemInfo from "./PodcastItemInfo.vue";
49
+ import PodcastImage from "./PodcastImage.vue";
50
+ import { state } from "../../../stores/ParamSdkStore";
51
+ import dayjs from "dayjs";
52
+ import { Podcast } from "@/stores/class/general/podcast";
53
+ import { defineComponent } from "vue";
54
+ import { Conference } from "@/stores/class/conference/conference";
60
55
  export default defineComponent({
61
- name: 'PodcastItem',
62
-
56
+ name: "PodcastItem",
57
+
63
58
  components: {
64
59
  PodcastItemInfo,
65
60
  PodcastImage,
66
61
  },
67
62
 
68
63
  props: {
69
- podcast: { default: ()=>({}), type: Object as ()=> Podcast},
70
- fetchConference: { default: undefined, type: Object as ()=>Conference},
64
+ podcast: { default: () => ({}), type: Object as () => Podcast },
65
+ fetchConference: { default: undefined, type: Object as () => Conference },
71
66
  },
72
67
 
73
68
  data() {
74
69
  return {
75
- firstDisplayDesc : false as boolean,
70
+ firstDisplayDesc: false as boolean,
76
71
  hoverDesc: false as boolean,
77
- arrowDirection: 'up' as string,
72
+ arrowDirection: "up" as string,
78
73
  isDescriptionBig: false as boolean,
79
74
  };
80
75
  },
81
76
 
82
77
  computed: {
83
78
  podcastBorderBottom(): boolean {
84
- return (state.podcastsPage.podcastBorderBottom as boolean);
79
+ return state.podcastsPage.podcastBorderBottom as boolean;
85
80
  },
86
81
  podcastItemDescription(): boolean {
87
- return (state.podcastPage.podcastItemDescription as boolean);
82
+ return state.podcastPage.podcastItemDescription as boolean;
88
83
  },
89
84
  displayDate(): string {
90
85
  return dayjs(this.podcast.pubDate).format();
91
86
  },
92
87
  description(): string {
93
- return this.podcast.description ?? '';
88
+ return this.podcast.description ?? "";
94
89
  },
95
90
  },
96
91
 
97
92
  methods: {
98
- initDescription():void{
99
- if(this.firstDisplayDesc){return;}
100
- const podcastDesc = (this.$refs.descriptionPodcast as HTMLElement);
101
- const podcastDescContainer = (this.$refs.descriptionPodcastContainer as HTMLElement);
93
+ initDescription(): void {
94
+ if (this.firstDisplayDesc) {
95
+ return;
96
+ }
97
+ const podcastDesc = this.$refs.descriptionPodcast as HTMLElement;
98
+ const podcastDescContainer = this.$refs
99
+ .descriptionPodcastContainer as HTMLElement;
102
100
  if (podcastDesc?.clientHeight > podcastDescContainer?.clientHeight) {
103
101
  this.isDescriptionBig = true;
104
102
  }
105
- this.firstDisplayDesc=true;
103
+ this.firstDisplayDesc = true;
106
104
  },
107
105
  showDescription(): void {
108
- if(!this.podcastItemDescription){return}
109
- this.arrowDirection = 'down';
106
+ if (!this.podcastItemDescription) {
107
+ return;
108
+ }
109
+ this.arrowDirection = "down";
110
110
  this.hoverDesc = true;
111
111
  this.$nextTick(() => {
112
112
  this.initDescription();
113
113
  });
114
114
  },
115
115
  hideDescription(): void {
116
- if(!this.podcastItemDescription){return}
117
- this.arrowDirection = 'up';
116
+ if (!this.podcastItemDescription) {
117
+ return;
118
+ }
119
+ this.arrowDirection = "up";
118
120
  this.hoverDesc = false;
119
121
  },
120
122
  },
121
- })
123
+ });
122
124
  </script>
123
125
 
124
126
  <style lang="scss">
125
- @import '@scss/_variables.scss';
126
- .octopus-app{
127
- .podcast-item-container {
128
- border-radius: $octopus-borderradius;
129
- list-style: none;
130
- position: relative;
131
- width: $octopus-item-podcast-size;
132
- height: 20.5rem;
133
- overflow: hidden;
134
- display: flex;
135
- flex-direction: column;
136
- text-align: left;
137
- background: #fff;
138
- flex-shrink: 0;
139
- border: 2px solid #eee;
140
-
141
- .description-podcast-item {
142
- padding: 1rem;
143
- color: #333;
144
- background-color: rgba(255, 255, 255, 0.92);
145
- height: $octopus-item-podcast-size;
146
- overflow: hidden;
147
- text-overflow: ellipsis;
148
- font-size: 0.9em;
149
- position: absolute;
127
+ @import "@scss/_variables.scss";
128
+ .octopus-app {
129
+ .podcast-item-container {
130
+ border-radius: $octopus-borderradius;
131
+ list-style: none;
132
+ position: relative;
150
133
  width: $octopus-item-podcast-size;
151
- word-break: break-word;
152
- &.after-podcast-description:after {
153
- content: '...';
134
+ height: 20.5rem;
135
+ overflow: hidden;
136
+ display: flex;
137
+ flex-direction: column;
138
+ text-align: left;
139
+ background: #fff;
140
+ flex-shrink: 0;
141
+ border: 2px solid #eee;
142
+
143
+ .description-podcast-item {
144
+ padding: 1rem;
145
+ color: #333;
146
+ background-color: rgba(255, 255, 255, 0.92);
147
+ height: $octopus-item-podcast-size;
148
+ overflow: hidden;
149
+ text-overflow: ellipsis;
150
+ font-size: 0.9em;
154
151
  position: absolute;
155
- padding-left: 1rem;
156
- right: 0;
157
- bottom: 0;
158
- width: 100%;
159
- font-size: 1rem;
160
- font-weight: bolder;
161
- text-align: center;
162
- background: linear-gradient(to bottom, rgba(255, 255, 255, 0), #fff 40%);
152
+ width: $octopus-item-podcast-size;
153
+ word-break: break-word;
154
+ &.after-podcast-description:after {
155
+ content: "...";
156
+ position: absolute;
157
+ padding-left: 1rem;
158
+ right: 0;
159
+ bottom: 0;
160
+ width: 100%;
161
+ font-size: 1rem;
162
+ font-weight: bolder;
163
+ text-align: center;
164
+ background: linear-gradient(
165
+ to bottom,
166
+ rgba(255, 255, 255, 0),
167
+ #fff 40%
168
+ );
169
+ }
163
170
  }
164
- }
165
- @media (max-width: 960px) {
166
- margin: 0.5rem !important;
167
- }
168
- @media (max-width: 450px) {
169
- width: $octopus-mobile-item-size;
170
- height: 18.8rem;
171
- .description-podcast-item{
172
- height: $octopus-mobile-item-size;
171
+ @media (max-width: 960px) {
172
+ margin: 0.5rem !important;
173
+ }
174
+ @media (max-width: 450px) {
173
175
  width: $octopus-mobile-item-size;
176
+ height: 18.8rem;
177
+ .description-podcast-item {
178
+ height: $octopus-mobile-item-size;
179
+ width: $octopus-mobile-item-size;
180
+ }
174
181
  }
175
182
  }
176
183
  }
177
- }
178
- </style>
184
+ </style>
@@ -1,100 +1,96 @@
1
1
  <template>
2
2
  <div>
3
- <div class="text-secondary h6 ms-2">
4
- {{ date }}
5
- </div>
6
- <router-link
7
- :to="{
8
- name: 'podcast',
9
- params: { podcastId: podcastId },
10
- query: { productor: filterOrgaId },
11
- }"
12
- class="text-dark flex-grow-1 title-podcast-item"
13
- >
14
- {{ title }}
15
- </router-link>
16
- <PodcastPlayBar
17
- :podcast-id="podcastId"
18
- :duration="duration"
19
- class="mx-2"
20
- />
21
-
22
- <div class="mx-2 d-flex align-items-center justify-content-between mt-2">
23
- <div
24
- v-if="isPodcastmaker"
25
- class="useless-div-for-podcastmaker"
26
- />
27
- <AnimatorsItem
28
- v-if="animators && 0!==animators.length"
29
- class="w-0 flex-grow-1"
30
- :animator="animators[0]"
31
- />
3
+ <div class="text-secondary h6 ms-2">
4
+ {{ date }}
5
+ </div>
32
6
  <router-link
33
- v-if="!isPodcastmaker"
34
7
  :to="{
35
- name: 'productor',
36
- params: { productorId: podcastOrganisationId },
8
+ name: 'podcast',
9
+ params: { podcastId: podcastId },
37
10
  query: { productor: filterOrgaId },
38
11
  }"
39
- class="text-dark producer-podcast-item"
12
+ class="text-dark flex-grow-1 title-podcast-item"
40
13
  >
41
- {{ ' + orgaNameDisplay }}
14
+ {{ title }}
42
15
  </router-link>
43
- </div>
16
+ <PodcastPlayBar :podcast-id="podcastId" :duration="duration" class="mx-2" />
17
+
18
+ <div class="mx-2 d-flex align-items-center justify-content-between mt-2">
19
+ <div v-if="isPodcastmaker" class="useless-div-for-podcastmaker" />
20
+ <AnimatorsItem
21
+ v-if="animators && 0 !== animators.length"
22
+ class="w-0 flex-grow-1"
23
+ :animator="animators[0]"
24
+ />
25
+ <router-link
26
+ v-if="!isPodcastmaker"
27
+ :to="{
28
+ name: 'productor',
29
+ params: { productorId: podcastOrganisationId },
30
+ query: { productor: filterOrgaId },
31
+ }"
32
+ class="text-dark producer-podcast-item"
33
+ >
34
+ {{ "© " + orgaNameDisplay }}
35
+ </router-link>
36
+ </div>
44
37
  </div>
45
38
  </template>
46
39
 
47
40
  <script lang="ts">
48
- import AnimatorsItem from './AnimatorsItem.vue';
49
- import { state } from '../../../stores/ParamSdkStore';
50
- import { orgaComputed } from '../../mixins/orgaComputed';
51
- import dayjs from 'dayjs';
52
- import PodcastPlayBar from './PodcastPlayBar.vue';
53
- import { defineComponent } from 'vue'
54
- import { Participant } from '@/stores/class/general/participant';
41
+ import AnimatorsItem from "./AnimatorsItem.vue";
42
+ import { state } from "../../../stores/ParamSdkStore";
43
+ import { orgaComputed } from "../../mixins/orgaComputed";
44
+ import dayjs from "dayjs";
45
+ import PodcastPlayBar from "./PodcastPlayBar.vue";
46
+ import { defineComponent } from "vue";
47
+ import { Participant } from "@/stores/class/general/participant";
55
48
  export default defineComponent({
56
- name: 'PodcastItemInfo',
57
-
49
+ name: "PodcastItemInfo",
50
+
58
51
  components: {
59
52
  AnimatorsItem,
60
- PodcastPlayBar
53
+ PodcastPlayBar,
61
54
  },
62
55
 
63
- mixins:[orgaComputed],
56
+ mixins: [orgaComputed],
64
57
 
65
58
  props: {
66
- podcastId: { default: undefined, type: Number},
67
- title: { default: "", type: String},
68
- pubDate: { default: "", type: String},
69
- podcastOrganisationId: { default: "", type: String},
70
- podcastOrganisationName: { default: "", type: String},
71
- duration: { default: 0, type: Number},
72
- animators: { default: undefined, type: Object as ()=> Array<Participant>},
59
+ podcastId: { default: undefined, type: Number },
60
+ title: { default: "", type: String },
61
+ pubDate: { default: "", type: String },
62
+ podcastOrganisationId: { default: "", type: String },
63
+ podcastOrganisationName: { default: "", type: String },
64
+ duration: { default: 0, type: Number },
65
+ animators: { default: undefined, type: Object as () => Array<Participant> },
73
66
  },
74
-
67
+
75
68
  computed: {
76
69
  isPodcastmaker(): boolean {
77
- return (state.generalParameters.podcastmaker as boolean);
70
+ return state.generalParameters.podcastmaker as boolean;
78
71
  },
79
72
  date(): string {
80
- return dayjs(this.pubDate).format('D MMMM YYYY, HH[h]mm');
73
+ return dayjs(this.pubDate).format("D MMMM YYYY, HH[h]mm");
81
74
  },
82
75
  editRight(): boolean {
83
- return (true===this.authenticated && this.myOrganisationId === this.podcastOrganisationId) ||
84
- true===state.generalParameters.isAdmin
76
+ return (
77
+ (true === this.authenticated &&
78
+ this.myOrganisationId === this.podcastOrganisationId) ||
79
+ true === state.generalParameters.isAdmin
80
+ );
85
81
  },
86
- orgaNameDisplay():string{
87
- if(this.podcastOrganisationName.length > 30){
88
- return this.podcastOrganisationName.substring(0, 30) + '...';
82
+ orgaNameDisplay(): string {
83
+ if (this.podcastOrganisationName.length > 30) {
84
+ return this.podcastOrganisationName.substring(0, 30) + "...";
89
85
  }
90
86
  return this.podcastOrganisationName;
91
- }
87
+ },
92
88
  },
93
- })
89
+ });
94
90
  </script>
95
91
 
96
92
  <style lang="scss">
97
- .octopus-app{
93
+ .octopus-app {
98
94
  .title-podcast-item {
99
95
  font-weight: 700;
100
96
  margin: 0.25rem 0.5rem 0.5rem;
@@ -115,4 +111,4 @@ export default defineComponent({
115
111
  flex-shrink: 0;
116
112
  }
117
113
  }
118
- </style>
114
+ </style>