@saooti/octopus-sdk 0.28.16 → 1.1.1

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 (328) hide show
  1. package/README.md +188 -2
  2. package/index.ts +45 -11
  3. package/package.json +46 -48
  4. package/public/config.ts +4 -0
  5. package/public/css/fonts/icomoon.eot +0 -0
  6. package/public/css/fonts/icomoon.svg +129 -0
  7. package/public/css/fonts/icomoon.ttf +0 -0
  8. package/public/css/fonts/icomoon.woff +0 -0
  9. package/public/css/fonts/style.css +185 -1266
  10. package/public/img/403.jpeg +0 -0
  11. package/public/img/404.svg +242 -0
  12. package/public/img/ouest_france_logo.svg +12 -0
  13. package/src/App.vue +45 -24
  14. package/src/api/classicCrud.ts +34 -0
  15. package/src/api/initialize.ts +4 -2
  16. package/src/assets/bootstrap-diff.scss +197 -0
  17. package/src/assets/form.scss +77 -77
  18. package/src/assets/general.scss +287 -301
  19. package/src/assets/live.scss +39 -0
  20. package/src/assets/modal.scss +43 -50
  21. package/src/assets/multiselect.scss +522 -590
  22. package/src/assets/octopus-library.scss +17 -4
  23. package/src/assets/share.scss +150 -250
  24. package/src/assets/transition.scss +98 -2
  25. package/src/components/display/aggregator/RssSection.vue +4 -6
  26. package/src/components/display/categories/CategoryChooser.vue +100 -79
  27. package/src/components/display/categories/CategoryFilter.vue +117 -37
  28. package/src/components/display/categories/CategoryList.vue +121 -108
  29. package/src/components/display/comments/AddCommentModal.vue +98 -94
  30. package/src/components/display/comments/CommentBasicView.vue +95 -0
  31. package/src/components/display/comments/CommentInput.vue +175 -155
  32. package/src/components/display/comments/CommentItem.vue +152 -168
  33. package/src/components/display/comments/CommentList.vue +123 -229
  34. package/src/components/display/comments/CommentParentInfo.vue +26 -58
  35. package/src/components/display/comments/CommentPlayer.vue +51 -49
  36. package/src/components/display/comments/CommentSection.vue +44 -67
  37. package/src/components/display/edit/EditBox.vue +11 -5
  38. package/src/components/display/edit/EditCommentBox.vue +121 -29
  39. package/src/components/display/emission/EmissionChooser.vue +73 -81
  40. package/src/components/display/emission/EmissionInlineList.vue +130 -128
  41. package/src/components/display/emission/EmissionItem.vue +68 -109
  42. package/src/components/display/emission/EmissionList.vue +140 -146
  43. package/src/components/display/emission/EmissionPlayerItem.vue +186 -148
  44. package/src/components/display/filter/AdvancedSearch.vue +192 -273
  45. package/src/components/display/filter/CategoryFilter.vue +51 -59
  46. package/src/components/display/filter/MonetizableFilter.vue +17 -16
  47. package/src/components/display/filter/ProductorSearch.vue +149 -149
  48. package/src/components/display/filter/RubriqueChoice.vue +33 -37
  49. package/src/components/display/filter/RubriqueFilter.vue +132 -122
  50. package/src/components/display/list/ListPaginate.vue +145 -0
  51. package/src/components/display/list/Paginate.vue +218 -0
  52. package/src/components/display/live/CountDown.vue +19 -12
  53. package/src/components/display/live/LiveHorizontalList.vue +78 -55
  54. package/src/components/display/live/LiveItem.vue +136 -121
  55. package/src/components/display/live/LiveList.vue +172 -276
  56. package/src/components/display/organisation/OrganisationChooser.vue +104 -122
  57. package/src/components/display/organisation/OrganisationChooserLight.vue +46 -37
  58. package/src/components/display/participant/ParticipantItem.vue +91 -115
  59. package/src/components/display/participant/ParticipantList.vue +131 -117
  60. package/src/components/display/playlist/PlaylistItem.vue +54 -78
  61. package/src/components/display/playlist/PlaylistList.vue +91 -83
  62. package/src/components/display/playlist/PodcastList.vue +113 -128
  63. package/src/components/display/playlist/PodcastPlaylistInlineList.vue +191 -0
  64. package/src/components/display/podcasts/AnimatorsItem.vue +28 -39
  65. package/src/components/display/podcasts/ParticipantDescription.vue +62 -74
  66. package/src/components/display/podcasts/PodcastFilterList.vue +47 -89
  67. package/src/components/display/podcasts/PodcastImage.vue +195 -229
  68. package/src/components/display/podcasts/PodcastInlineList.vue +64 -282
  69. package/src/components/display/podcasts/PodcastInlineListClassic.vue +240 -0
  70. package/src/components/display/podcasts/PodcastInlineListTemplate.vue +167 -0
  71. package/src/components/display/podcasts/PodcastItem.vue +93 -227
  72. package/src/components/display/podcasts/PodcastItemInfo.vue +166 -0
  73. package/src/components/display/podcasts/PodcastList.vue +115 -134
  74. package/src/components/display/podcasts/PodcastModuleBox.vue +234 -0
  75. package/src/components/display/podcasts/PodcastPlayBar.vue +101 -0
  76. package/src/components/display/podcasts/PodcastSwiperList.vue +204 -0
  77. package/src/components/display/podcasts/TagList.vue +60 -39
  78. package/src/components/display/rubriques/RubriqueChooser.vue +114 -95
  79. package/src/components/display/rubriques/RubriqueList.vue +111 -106
  80. package/src/components/display/sharing/PlayerParameters.vue +90 -151
  81. package/src/components/display/sharing/QrCode.vue +40 -27
  82. package/src/components/display/sharing/ShareButtons.vue +64 -299
  83. package/src/components/display/sharing/ShareButtonsIntern.vue +225 -0
  84. package/src/components/display/sharing/ShareDistribution.vue +99 -140
  85. package/src/components/display/sharing/SharePlayer.vue +155 -370
  86. package/src/components/display/sharing/SharePlayerColors.vue +78 -0
  87. package/src/components/display/sharing/SharePlayerTypes.vue +112 -0
  88. package/src/components/display/sharing/SplitButton.vue +42 -0
  89. package/src/components/display/sharing/SubscribeButtons.vue +62 -179
  90. package/src/components/display/studio/RecordingItemButton.vue +4 -6
  91. package/src/components/form/ClassicCheckbox.vue +66 -0
  92. package/src/components/form/ClassicLoading.vue +28 -0
  93. package/src/components/form/ClassicRadio.vue +66 -0
  94. package/src/components/form/ClassicSearch.vue +86 -0
  95. package/src/components/form/ClassicSelect.vue +65 -0
  96. package/src/components/misc/ErrorMessage.vue +27 -14
  97. package/src/components/misc/Footer.vue +132 -127
  98. package/src/components/misc/HomeDropdown.vue +93 -150
  99. package/src/components/misc/LeftMenu.vue +121 -192
  100. package/src/components/misc/Popover.vue +118 -0
  101. package/src/components/misc/Snackbar.vue +70 -35
  102. package/src/components/misc/TopBar.vue +192 -308
  103. package/src/components/misc/modal/ClipboardModal.vue +35 -50
  104. package/src/components/misc/modal/MessageModal.vue +71 -48
  105. package/src/components/misc/modal/NewsletterModal.vue +260 -231
  106. package/src/components/misc/modal/QrCodeModal.vue +42 -60
  107. package/src/components/misc/modal/ShareModalPlayer.vue +136 -70
  108. package/src/components/misc/player/Player.vue +146 -0
  109. package/src/components/misc/player/PlayerCompact.vue +154 -0
  110. package/src/components/misc/player/PlayerLarge.vue +166 -0
  111. package/src/components/misc/player/PlayerProgressBar.vue +112 -0
  112. package/src/components/misc/player/PlayerTimeline.vue +61 -0
  113. package/src/components/mixins/functions.ts +11 -43
  114. package/src/components/mixins/handle403.ts +17 -0
  115. package/src/components/mixins/init.ts +8 -6
  116. package/src/components/mixins/orgaComputed.ts +15 -0
  117. package/src/components/mixins/organisationFilter.ts +35 -18
  118. package/src/components/mixins/player/playerComment.ts +98 -0
  119. package/src/components/mixins/player/playerDisplay.ts +113 -0
  120. package/src/components/mixins/player/playerLive.ts +111 -0
  121. package/src/components/mixins/player/playerLogic.ts +225 -0
  122. package/src/components/mixins/tagOfMixins.ts +19 -0
  123. package/src/components/pages/Category.vue +21 -26
  124. package/src/components/pages/Emission.vue +136 -162
  125. package/src/components/pages/Emissions.vue +60 -93
  126. package/src/components/pages/Error403Page.vue +60 -0
  127. package/src/components/pages/Home.vue +32 -39
  128. package/src/components/pages/Lives.vue +40 -46
  129. package/src/components/pages/PageNotFound.vue +55 -0
  130. package/src/components/pages/Participant.vue +110 -113
  131. package/src/components/pages/Participants.vue +21 -45
  132. package/src/components/pages/Playlist.vue +84 -75
  133. package/src/components/pages/Playlists.vue +29 -47
  134. package/src/components/pages/Podcast.vue +203 -434
  135. package/src/components/pages/Podcasts.vue +75 -134
  136. package/src/components/pages/Rubrique.vue +21 -29
  137. package/src/components/pages/Search.vue +33 -79
  138. package/src/helper/dom.ts +1 -1
  139. package/src/helper/duration.ts +1 -1
  140. package/src/helper/useEventListener.ts +18 -0
  141. package/src/i18n.ts +36 -0
  142. package/src/locale/de.ts +309 -0
  143. package/src/locale/educationen.ts +1 -1
  144. package/src/locale/educationfr.ts +1 -1
  145. package/src/locale/en.ts +45 -28
  146. package/src/locale/es.ts +309 -0
  147. package/src/locale/fr.ts +25 -8
  148. package/src/locale/it.ts +307 -0
  149. package/src/locale/messages.ts +9 -2
  150. package/src/locale/sl.ts +309 -0
  151. package/src/main.ts +59 -85
  152. package/src/router/router.ts +60 -39
  153. package/src/sass/_variables.scss +10 -8
  154. package/src/shims-tsx.d.ts +2 -0
  155. package/src/shims-vue-recaptcha-v3.d.ts +9 -0
  156. package/src/shims-vue.d.ts +5 -4
  157. package/src/store/AppStore.ts +8 -9
  158. package/src/store/class/adserver/adserverConfig.ts +9 -0
  159. package/src/store/class/adserver/adserverOtherEmission.ts +13 -0
  160. package/src/store/class/adserver/adserverTiming.ts +10 -0
  161. package/src/store/class/cartouchier/cartouche.ts +15 -0
  162. package/src/store/class/cartouchier/cartouchier.ts +9 -0
  163. package/src/store/class/conference/conference.ts +35 -0
  164. package/src/store/class/conference/conferenceMessage.ts +10 -0
  165. package/src/store/class/conference/conferenceParticipant.ts +18 -0
  166. package/src/store/class/conference/pad.ts +15 -0
  167. package/src/store/class/conference/studioCall.ts +7 -0
  168. package/src/store/class/contract/contract.ts +7 -0
  169. package/src/store/class/contract/contractOrganisation.ts +7 -0
  170. package/src/store/class/ftp/ftpEmission.ts +41 -0
  171. package/src/store/class/ftp/ftpParam.ts +12 -0
  172. package/src/store/class/ftp/testFtpEmission.ts +5 -0
  173. package/src/store/class/general/audioView.ts +21 -0
  174. package/src/store/class/general/category.ts +10 -0
  175. package/src/store/class/general/comment.ts +16 -0
  176. package/src/store/class/general/customPlayer.ts +9 -0
  177. package/src/store/class/general/emission.ts +23 -0
  178. package/src/store/class/general/fetchParam.ts +3 -0
  179. package/src/store/class/general/initState.ts +25 -0
  180. package/src/store/class/general/interfacePageable.ts +16 -0
  181. package/src/store/class/general/ituneCategory.ts +5 -0
  182. package/src/store/class/general/media.ts +14 -0
  183. package/src/store/class/general/organisation.ts +20 -0
  184. package/src/store/class/general/pageable.ts +13 -0
  185. package/src/store/class/general/participant.ts +12 -0
  186. package/src/store/class/{player.ts → general/player.ts} +5 -3
  187. package/src/store/class/general/playlist.ts +13 -0
  188. package/src/store/class/general/podcast.ts +43 -0
  189. package/src/store/class/general/sortPageable.ts +5 -0
  190. package/src/store/class/general/soundcastCategory.ts +8 -0
  191. package/src/store/class/ouestFrance/ofTag.ts +36 -0
  192. package/src/store/class/ouestFrance/ofTagInfo.ts +9 -0
  193. package/src/store/class/ouestFrance/ofTagPage.ts +7 -0
  194. package/src/store/class/ouestFrance/ofTagSeo.ts +7 -0
  195. package/src/store/class/ouestFrance/ofTagVente.ts +6 -0
  196. package/src/store/class/ouestFrance/ofTagWithParents.ts +26 -0
  197. package/src/store/class/rss/aggregator.ts +28 -0
  198. package/src/store/class/rss/rssEmission.ts +14 -0
  199. package/src/store/class/rss/rssInfo.ts +8 -0
  200. package/src/store/class/rubrique/rubriquage.ts +10 -0
  201. package/src/store/class/rubrique/rubriquageFilter.ts +6 -0
  202. package/src/store/class/rubrique/rubrique.ts +9 -0
  203. package/src/store/class/stat/statArrayIncome.ts +6 -0
  204. package/src/store/class/stat/statArrayObject.ts +34 -0
  205. package/src/store/class/stat/statGraph.ts +7 -0
  206. package/src/store/class/user/person.ts +15 -0
  207. package/src/store/class/user/profile.ts +12 -0
  208. package/src/store/class/user/userKeycloak.ts +24 -0
  209. package/src/store/paramStore.ts +221 -241
  210. package/src/store/typeAppStore.ts +45 -28
  211. package/src/vuex-shim.d.ts +8 -0
  212. package/tsconfig.json +2 -1
  213. package/vue.config.js +3 -1
  214. package/public/css/fonts/saooti-ui.eot +0 -0
  215. package/public/css/fonts/saooti-ui.svg +0 -840
  216. package/public/css/fonts/saooti-ui.ttf +0 -0
  217. package/public/css/fonts/saooti-ui.woff +0 -0
  218. package/public/css/fonts/stitcher-logo.svg +0 -83
  219. package/public/img/article.png +0 -0
  220. package/src/api/comments.ts +0 -7
  221. package/src/api/emissions.ts +0 -7
  222. package/src/api/podcasts.ts +0 -7
  223. package/src/api/profile.ts +0 -8
  224. package/src/api/studio.ts +0 -8
  225. package/src/assets/bootstrap_scss/_alert.scss +0 -51
  226. package/src/assets/bootstrap_scss/_badge.scss +0 -54
  227. package/src/assets/bootstrap_scss/_breadcrumb.scss +0 -42
  228. package/src/assets/bootstrap_scss/_button-group.scss +0 -164
  229. package/src/assets/bootstrap_scss/_buttons.scss +0 -298
  230. package/src/assets/bootstrap_scss/_card.scss +0 -278
  231. package/src/assets/bootstrap_scss/_carousel.scss +0 -197
  232. package/src/assets/bootstrap_scss/_close.scss +0 -41
  233. package/src/assets/bootstrap_scss/_code.scss +0 -48
  234. package/src/assets/bootstrap_scss/_custom-forms.scss +0 -522
  235. package/src/assets/bootstrap_scss/_dropdown.scss +0 -201
  236. package/src/assets/bootstrap_scss/_forms.scss +0 -352
  237. package/src/assets/bootstrap_scss/_functions.scss +0 -134
  238. package/src/assets/bootstrap_scss/_grid.scss +0 -69
  239. package/src/assets/bootstrap_scss/_images.scss +0 -42
  240. package/src/assets/bootstrap_scss/_input-group.scss +0 -191
  241. package/src/assets/bootstrap_scss/_jumbotron.scss +0 -17
  242. package/src/assets/bootstrap_scss/_list-group.scss +0 -158
  243. package/src/assets/bootstrap_scss/_media.scss +0 -8
  244. package/src/assets/bootstrap_scss/_mixins.scss +0 -47
  245. package/src/assets/bootstrap_scss/_modal.scss +0 -243
  246. package/src/assets/bootstrap_scss/_nav.scss +0 -120
  247. package/src/assets/bootstrap_scss/_navbar.scss +0 -324
  248. package/src/assets/bootstrap_scss/_pagination.scss +0 -74
  249. package/src/assets/bootstrap_scss/_popover.scss +0 -170
  250. package/src/assets/bootstrap_scss/_print.scss +0 -141
  251. package/src/assets/bootstrap_scss/_progress.scss +0 -46
  252. package/src/assets/bootstrap_scss/_reboot.scss +0 -482
  253. package/src/assets/bootstrap_scss/_root.scss +0 -20
  254. package/src/assets/bootstrap_scss/_spinners.scss +0 -55
  255. package/src/assets/bootstrap_scss/_tables.scss +0 -185
  256. package/src/assets/bootstrap_scss/_toasts.scss +0 -44
  257. package/src/assets/bootstrap_scss/_tooltip.scss +0 -115
  258. package/src/assets/bootstrap_scss/_transitions.scss +0 -20
  259. package/src/assets/bootstrap_scss/_type.scss +0 -125
  260. package/src/assets/bootstrap_scss/_utilities.scss +0 -17
  261. package/src/assets/bootstrap_scss/_variables.scss +0 -1145
  262. package/src/assets/bootstrap_scss/bootstrap-grid.scss +0 -29
  263. package/src/assets/bootstrap_scss/bootstrap-reboot.scss +0 -12
  264. package/src/assets/bootstrap_scss/bootstrap.scss +0 -44
  265. package/src/assets/bootstrap_scss/mixins/_alert.scss +0 -13
  266. package/src/assets/bootstrap_scss/mixins/_background-variant.scss +0 -22
  267. package/src/assets/bootstrap_scss/mixins/_badge.scss +0 -17
  268. package/src/assets/bootstrap_scss/mixins/_border-radius.scss +0 -63
  269. package/src/assets/bootstrap_scss/mixins/_box-shadow.scss +0 -20
  270. package/src/assets/bootstrap_scss/mixins/_breakpoints.scss +0 -123
  271. package/src/assets/bootstrap_scss/mixins/_buttons.scss +0 -110
  272. package/src/assets/bootstrap_scss/mixins/_caret.scss +0 -62
  273. package/src/assets/bootstrap_scss/mixins/_clearfix.scss +0 -7
  274. package/src/assets/bootstrap_scss/mixins/_deprecate.scss +0 -10
  275. package/src/assets/bootstrap_scss/mixins/_float.scss +0 -14
  276. package/src/assets/bootstrap_scss/mixins/_forms.scss +0 -177
  277. package/src/assets/bootstrap_scss/mixins/_gradients.scss +0 -45
  278. package/src/assets/bootstrap_scss/mixins/_grid-framework.scss +0 -71
  279. package/src/assets/bootstrap_scss/mixins/_grid.scss +0 -69
  280. package/src/assets/bootstrap_scss/mixins/_hover.scss +0 -37
  281. package/src/assets/bootstrap_scss/mixins/_image.scss +0 -36
  282. package/src/assets/bootstrap_scss/mixins/_list-group.scss +0 -21
  283. package/src/assets/bootstrap_scss/mixins/_lists.scss +0 -7
  284. package/src/assets/bootstrap_scss/mixins/_nav-divider.scss +0 -11
  285. package/src/assets/bootstrap_scss/mixins/_pagination.scss +0 -22
  286. package/src/assets/bootstrap_scss/mixins/_reset-text.scss +0 -17
  287. package/src/assets/bootstrap_scss/mixins/_resize.scss +0 -6
  288. package/src/assets/bootstrap_scss/mixins/_screen-reader.scss +0 -34
  289. package/src/assets/bootstrap_scss/mixins/_size.scss +0 -7
  290. package/src/assets/bootstrap_scss/mixins/_table-row.scss +0 -39
  291. package/src/assets/bootstrap_scss/mixins/_text-emphasis.scss +0 -17
  292. package/src/assets/bootstrap_scss/mixins/_text-hide.scss +0 -11
  293. package/src/assets/bootstrap_scss/mixins/_text-truncate.scss +0 -8
  294. package/src/assets/bootstrap_scss/mixins/_transition.scss +0 -16
  295. package/src/assets/bootstrap_scss/mixins/_visibility.scss +0 -8
  296. package/src/assets/bootstrap_scss/utilities/_align.scss +0 -8
  297. package/src/assets/bootstrap_scss/utilities/_background.scss +0 -19
  298. package/src/assets/bootstrap_scss/utilities/_borders.scss +0 -75
  299. package/src/assets/bootstrap_scss/utilities/_clearfix.scss +0 -3
  300. package/src/assets/bootstrap_scss/utilities/_display.scss +0 -26
  301. package/src/assets/bootstrap_scss/utilities/_embed.scss +0 -39
  302. package/src/assets/bootstrap_scss/utilities/_flex.scss +0 -51
  303. package/src/assets/bootstrap_scss/utilities/_float.scss +0 -11
  304. package/src/assets/bootstrap_scss/utilities/_overflow.scss +0 -5
  305. package/src/assets/bootstrap_scss/utilities/_position.scss +0 -32
  306. package/src/assets/bootstrap_scss/utilities/_screenreaders.scss +0 -11
  307. package/src/assets/bootstrap_scss/utilities/_shadows.scss +0 -6
  308. package/src/assets/bootstrap_scss/utilities/_sizing.scss +0 -20
  309. package/src/assets/bootstrap_scss/utilities/_spacing.scss +0 -73
  310. package/src/assets/bootstrap_scss/utilities/_stretched-link.scss +0 -19
  311. package/src/assets/bootstrap_scss/utilities/_text.scss +0 -72
  312. package/src/assets/bootstrap_scss/utilities/_visibility.scss +0 -13
  313. package/src/assets/bootstrap_scss/vendor/_rfs.scss +0 -204
  314. package/src/components/misc/Player.vue +0 -772
  315. package/src/store/class/category.ts +0 -8
  316. package/src/store/class/comment.ts +0 -17
  317. package/src/store/class/conference.ts +0 -27
  318. package/src/store/class/customPlayer.ts +0 -8
  319. package/src/store/class/emission.ts +0 -20
  320. package/src/store/class/media.ts +0 -13
  321. package/src/store/class/organisation.ts +0 -19
  322. package/src/store/class/participant.ts +0 -12
  323. package/src/store/class/person.ts +0 -13
  324. package/src/store/class/playlist.ts +0 -15
  325. package/src/store/class/podcast.ts +0 -37
  326. package/src/store/class/rubriquage.ts +0 -9
  327. package/src/store/class/rubriquageFilter.ts +0 -5
  328. package/src/store/class/rubrique.ts +0 -8
@@ -1,94 +1,82 @@
1
1
  <template>
2
- <div class="comma" v-if="participants.length">
3
- {{ title }}
4
- <span
5
- class="saooti-help m-0"
6
- :id="idPopover"
7
- :aria-label="$t('Help')"
8
- ></span>
9
- <span class="mx-1">:</span>
10
- <b-popover
11
- :target="idPopover"
12
- triggers="hover"
13
- custom-class="participant-help"
14
- >
15
- <div class="text-center font-weight-bold">{{title}}</div>
16
- <div class="horizontal-separator my-1"></div>
17
- <div
18
- class="d-flex flex-column align-items-center"
19
- v-for="participant in participants"
20
- v-bind:key="'desc-'+participant.participantId">
21
- <b><i>{{getName(participant) }}</i></b>
22
- <div
23
- class="h6 participant-desc html-wysiwyg-content"
24
- v-if="participant.description"
25
- v-html="participant.description"
26
- ></div>
27
- <div class="horizontal-separator my-1"></div>
28
- </div>
29
- </b-popover>
30
- <router-link
31
- :aria-label="$t('Participant')"
32
- class="link-info"
2
+ <div
3
+ v-if="participants.length"
4
+ class="comma"
5
+ >
6
+ {{ title }}
7
+ <span
8
+ :id="idPopover"
9
+ role="button"
10
+ tabindex="0"
11
+ class="saooti-help m-0"
12
+ :title="title"
13
+ />
14
+ <span class="mx-1">:</span>
15
+ <Popover
16
+ :target="idPopover"
17
+ >
18
+ <div
33
19
  v-for="participant in participants"
34
- v-bind:key="participant.participantId"
35
- :to="{
36
- name: 'participant',
37
- params: { participantId: participant.participantId },
38
- query: {
39
- productor: $store.state.filter.organisationId,
40
- },
41
- }"
42
- >{{ getName(participant) }}</router-link
20
+ :key="'desc-'+participant.participantId"
21
+ class="d-flex flex-column align-items-center"
43
22
  >
44
- </div>
23
+ <b><i>{{ getName(participant) }}</i></b>
24
+ <!-- eslint-disable vue/no-v-html -->
25
+ <div
26
+ v-if="participant.description"
27
+ class="h6 participant-desc html-wysiwyg-content"
28
+ v-html="participant.description"
29
+ />
30
+ <!-- eslint-enable -->
31
+ <hr>
32
+ </div>
33
+ </Popover>
34
+ <router-link
35
+ v-for="participant in participants"
36
+ :key="participant.participantId"
37
+ :title="$t('Participant')"
38
+ class="fw-bold"
39
+ :to="{
40
+ name: 'participant',
41
+ params: { participantId: participant.participantId },
42
+ query: {
43
+ productor: $store.state.filter.organisationId,
44
+ },
45
+ }"
46
+ >
47
+ {{ getName(participant) }}
48
+ </router-link>
49
+ </div>
45
50
  </template>
46
51
 
47
- <style lang="scss">
48
- .participant-help{
49
- .horizontal-separator {
50
- border-top: 1px solid #cccccc;
51
- width: 100%;
52
- }
53
- }
54
- </style>
55
-
56
52
  <script lang="ts">
57
- import { Participant } from '@/store/class/participant';
58
- import Vue from 'vue';
59
- export default Vue.extend({
53
+ import Popover from '../../misc/Popover.vue';
54
+ import { Participant } from '@/store/class/general/participant';
55
+ import { defineComponent } from 'vue'
56
+ export default defineComponent({
60
57
  name: 'ParticipantDescription',
61
58
 
62
- props: {
63
- participants: { default: () => ([]) as Array<Participant>},
64
- isGuest: { default: false as boolean},
59
+ components:{
60
+ Popover
65
61
  },
66
62
 
67
- data() {
68
- return {
69
- };
63
+ props: {
64
+ participants: { default: () => [], type: Array as ()=> Array<Participant>},
65
+ isGuest: { default: false, type: Boolean},
70
66
  },
67
+
71
68
  computed:{
72
69
  idPopover(): string{
73
- if(this.isGuest){
74
- return "popover-guests-help";
75
- }
76
- return "popover-animators-help";
70
+ return this.isGuest ? "popover-guests-help" : "popover-animators-help";
77
71
  },
78
72
  title(): string{
79
- if(this.isGuest){
80
- return this.$t('Guests').toString();
81
- }
82
- return this.$t('Animated by').toString();
73
+ return this.isGuest ? this.$t('Guests') : this.$t('Animated by');
83
74
  }
84
75
  },
85
-
86
76
  methods: {
87
- getName(person: any): string {
88
- const first = person.firstName || '';
89
- const last = person.lastName || '';
90
- return (first + ' ' + last).trim();
77
+ getName(person: Participant): string {
78
+ return (`${person.firstName??''} ${person.lastName??''}`).trim();
91
79
  },
92
80
  },
93
- });
94
- </script>
81
+ })
82
+ </script>
@@ -1,133 +1,91 @@
1
1
  <template>
2
- <div class="p-3 list-episodes">
3
- <h2 v-if="name">{{ $t('All podcast button', { name: name }) }}</h2>
4
- <h2 v-else>{{ $t('All podcast emission button') }}</h2>
5
- <div class="d-flex align-items-center flex-wrap">
2
+ <div class="p-3">
3
+ <h2>{{ titleFilter }}</h2>
4
+ <div class="d-flex align-items-center flex-wrap mb-2">
6
5
  <div
7
- class="d-flex align-items-center flex-grow categories-filter"
8
- v-if="categoryFilter"
6
+ class="d-flex align-items-center flex-grow-1 me-3"
9
7
  >
10
8
  <CategoryChooser
11
9
  :defaultanswer="$t('No category filter')"
12
10
  @selected="onCategorySelected"
13
11
  />
14
12
  </div>
15
- <div class="d-flex position-relative small-flex-grow">
16
- <label for="search" class="d-inline" :aria-label="$t('Search')"></label>
17
- <input
18
- :placeholder="$t('Search')"
19
- v-model="searchPattern"
20
- class="filter-search-input input-no-outline flex-grow"
21
- id="search"
22
- />
23
- <div
24
- class="saooti-search-bounty filter-list-search-icon search-icon-container"
25
- ></div>
26
- </div>
13
+ <ClassicSearch
14
+ v-model:textInit="searchPattern"
15
+ class="flex-small-grow"
16
+ id-checkbox="podcast-filter-search"
17
+ :label="$t('Search')"
18
+ />
27
19
  </div>
28
20
  <PodcastList
29
21
  :first="first"
30
22
  :size="size"
31
- :iabId="iabId"
23
+ :iab-id="iabId"
32
24
  :query="query"
33
- :participantId="participantId"
34
- :emissionId="emissionId"
35
- :organisationId="productorId"
25
+ :participant-id="participantId"
26
+ :emission-id="emissionId"
27
+ :organisation-id="productorId"
36
28
  :reload="reloadList"
37
- :includeHidden="editRight"
29
+ :include-hidden="editRight"
38
30
  @fetch="fetch"
39
31
  />
40
32
  </div>
41
33
  </template>
42
34
 
43
- <style lang="scss">
44
- .categories-filter {
45
- .multiselect {
46
- width: 75%;
47
- @media (max-width: 600px) {
48
- width: 100%;
49
- }
50
- }
51
- }
52
- .list-episodes {
53
- padding: 2rem 0.5rem 1rem !important;
54
- margin: 0 0.5rem;
55
-
56
- @media (max-width: 450px) {
57
- padding: 0.5rem 0rem 1rem !important;
58
- }
59
- h2 {
60
- margin-bottom: 0.5rem;
61
- }
62
- }
63
- .filter-list-search-icon {
64
- right: 1.6rem !important;
65
- font-weight: bold;
66
- }
67
- .small-flex-grow {
68
- flex-grow: 0.3;
69
- }
70
- </style>
71
-
72
35
  <script lang="ts">
73
- // @ is an alias to /src
36
+ import ClassicSearch from '../../form/ClassicSearch.vue';
74
37
  import PodcastList from './PodcastList.vue';
75
- import { Category } from '@/store/class/category';
76
- import Vue from 'vue';
77
- export default Vue.extend({
38
+ import { Category } from '@/store/class/general/category';
39
+ import { defineComponent, defineAsyncComponent } from 'vue';
40
+ import { Podcast } from '@/store/class/general/podcast';
41
+ const CategoryChooser = defineAsyncComponent(() => import('../categories/CategoryChooser.vue'));
42
+ export default defineComponent({
78
43
  components: {
79
- CategoryChooser: () => import('../categories/CategoryChooser.vue'),
44
+ CategoryChooser,
80
45
  PodcastList,
46
+ ClassicSearch
81
47
  },
82
48
  props: {
83
- participantId: { default: undefined as number|undefined},
84
- name: { default: undefined as string|undefined},
85
- emissionId: { default: undefined as number|undefined},
86
- categoryFilter: { default: false as boolean},
87
- reload: { default: false as boolean},
88
- editRight: { default: false as boolean},
89
- productorId: { default: undefined as string|undefined},
49
+ participantId: { default: undefined, type: Number},
50
+ name: { default: undefined, type: String},
51
+ emissionId: { default: undefined, type: Number},
52
+ categoryFilter: { default: false, type: Boolean},
53
+ reload: { default: false, type: Boolean},
54
+ editRight: { default: false, type: Boolean},
55
+ productorId: { default: undefined, type: String},
90
56
  },
57
+ emits: ['fetch'],
91
58
 
92
- data() {
59
+ data() {
93
60
  return {
94
61
  first: 0 as number,
95
- size: 12 as number,
62
+ size: 30 as number,
96
63
  searchPattern: '' as string,
97
64
  iabId: undefined as number | undefined,
98
65
  reloadList: false as boolean,
99
66
  };
100
67
  },
101
- created() {
102
- if (this.$route.query.first && 'string' === typeof this.$route.query.first) {
103
- this.first = parseInt(this.$route.query.first);
104
- }
105
- if (this.$route.query.size && 'string' === typeof this.$route.query.size) {
106
- this.size = parseInt(this.$route.query.size);
107
- }
108
- },
68
+
109
69
  computed: {
70
+ titleFilter():string{
71
+ return this.name ? this.$t('All podcast button', { name: this.name }) : this.$t('All podcast emission button');
72
+ },
110
73
  query(): string {
111
- if (this.searchPattern.length >= 3) return this.searchPattern;
112
- return '';
74
+ return this.searchPattern.length >= 3 ? this.searchPattern : '' ;
75
+ },
76
+ },
77
+ watch: {
78
+ reload(): void {
79
+ this.reloadList = !this.reloadList;
113
80
  },
114
81
  },
115
82
  methods: {
116
83
  onCategorySelected(category: Category|undefined): void {
117
- if (category && category.id) {
118
- this.iabId = category.id;
119
- } else {
120
- this.iabId = undefined;
121
- }
84
+ this.iabId = category?.id ? category.id : undefined;
122
85
  },
123
- fetch(podcasts: any): void {
86
+ fetch(podcasts: Array<Podcast>): void {
124
87
  this.$emit('fetch', podcasts);
125
88
  },
126
89
  },
127
- watch: {
128
- reload(): void {
129
- this.reloadList = !this.reloadList;
130
- },
131
- },
132
- });
133
- </script>
90
+ })
91
+ </script>