@saooti/octopus-sdk 1.0.0 → 29.0.2

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 (230) hide show
  1. package/README.md +73 -0
  2. package/index.d.ts +4 -0
  3. package/index.ts +12 -0
  4. package/package.json +61 -39
  5. package/public/css/fonts/saooti-ui.eot +0 -0
  6. package/public/css/fonts/saooti-ui.svg +30 -19
  7. package/public/css/fonts/saooti-ui.ttf +0 -0
  8. package/public/css/fonts/saooti-ui.woff +0 -0
  9. package/public/css/fonts/style.css +48 -5
  10. package/public/img/ACPM.png +0 -0
  11. package/public/img/article.png +0 -0
  12. package/src/App.vue +97 -31
  13. package/src/api/comments.ts +3 -1
  14. package/src/api/emissions.ts +5 -2
  15. package/src/api/initialize.ts +3 -2
  16. package/src/api/podcasts.ts +5 -2
  17. package/src/api/profile.ts +4 -2
  18. package/src/api/studio.ts +12 -1
  19. package/src/assets/bootstrap-diff.scss +265 -0
  20. package/src/assets/form.scss +23 -0
  21. package/src/assets/general.scss +47 -20
  22. package/src/assets/modal.scss +9 -10
  23. package/src/assets/multiselect.scss +19 -2
  24. package/src/assets/octopus-library.scss +16 -4
  25. package/src/assets/share.scss +343 -0
  26. package/src/components/display/aggregator/RssSection.vue +4 -4
  27. package/src/components/display/categories/CategoryChooser.vue +152 -105
  28. package/src/components/display/categories/CategoryFilter.vue +108 -0
  29. package/src/components/display/categories/CategoryList.vue +138 -109
  30. package/src/components/display/comments/AddCommentModal.vue +104 -87
  31. package/src/components/display/comments/CommentInput.vue +137 -118
  32. package/src/components/display/comments/CommentItem.vue +155 -137
  33. package/src/components/display/comments/CommentList.vue +142 -120
  34. package/src/components/display/comments/CommentParentInfo.vue +39 -35
  35. package/src/components/display/comments/CommentPlayer.vue +54 -48
  36. package/src/components/display/comments/CommentSection.vue +57 -58
  37. package/src/components/display/edit/EditBox.vue +4 -4
  38. package/src/components/display/edit/EditCommentBox.vue +25 -31
  39. package/src/components/display/emission/EmissionChooser.vue +82 -80
  40. package/src/components/display/emission/EmissionInlineList.vue +118 -105
  41. package/src/components/display/emission/EmissionItem.vue +66 -167
  42. package/src/components/display/emission/EmissionList.vue +96 -122
  43. package/src/components/display/emission/EmissionPlayerItem.vue +131 -126
  44. package/src/components/display/filter/AdvancedSearch.vue +306 -372
  45. package/src/components/display/filter/CategoryFilter.vue +117 -0
  46. package/src/components/display/filter/MonetizableFilter.vue +24 -10
  47. package/src/components/display/filter/ProductorSearch.vue +131 -135
  48. package/src/components/display/filter/RubriqueChoice.vue +104 -0
  49. package/src/components/display/filter/RubriqueFilter.vue +235 -0
  50. package/src/components/display/live/CountDown.vue +30 -29
  51. package/src/components/display/live/LiveHorizontalList.vue +40 -34
  52. package/src/components/display/live/LiveItem.vue +146 -158
  53. package/src/components/display/live/LiveList.vue +167 -154
  54. package/src/components/display/organisation/OrganisationChooser.vue +125 -124
  55. package/src/components/display/organisation/OrganisationChooserLight.vue +40 -47
  56. package/src/components/display/participant/ParticipantItem.vue +92 -108
  57. package/src/components/display/participant/ParticipantList.vue +76 -69
  58. package/src/components/display/playlist/PlaylistItem.vue +45 -56
  59. package/src/components/display/playlist/PlaylistList.vue +57 -48
  60. package/src/components/display/playlist/PodcastList.vue +94 -70
  61. package/src/components/display/podcasts/AnimatorsItem.vue +26 -23
  62. package/src/components/display/podcasts/ParticipantDescription.vue +115 -0
  63. package/src/components/display/podcasts/PodcastFilterList.vue +84 -85
  64. package/src/components/display/podcasts/PodcastImage.vue +244 -208
  65. package/src/components/display/podcasts/PodcastInlineList.vue +145 -207
  66. package/src/components/display/podcasts/PodcastItem.vue +150 -132
  67. package/src/components/display/podcasts/PodcastList.vue +89 -110
  68. package/src/components/display/podcasts/TagList.vue +23 -16
  69. package/src/components/display/rubriques/RubriqueChooser.vue +137 -123
  70. package/src/components/display/rubriques/RubriqueList.vue +227 -0
  71. package/src/components/display/sharing/PlayerParameters.vue +154 -106
  72. package/src/components/display/sharing/QrCode.vue +58 -0
  73. package/src/components/display/sharing/ShareButtons.vue +214 -92
  74. package/src/components/display/sharing/ShareDistribution.vue +110 -121
  75. package/src/components/display/sharing/SharePlayer.vue +245 -190
  76. package/src/components/display/sharing/SubscribeButtons.vue +130 -66
  77. package/src/components/display/studio/RecordingItemButton.vue +4 -4
  78. package/src/components/misc/ErrorMessage.vue +21 -16
  79. package/src/components/misc/Footer.vue +131 -66
  80. package/src/components/misc/HomeDropdown.vue +166 -123
  81. package/src/components/misc/LeftMenu.vue +151 -134
  82. package/src/components/misc/Player.vue +332 -328
  83. package/src/components/misc/Snackbar.vue +27 -29
  84. package/src/components/misc/TopBar.vue +204 -174
  85. package/src/components/misc/modal/ClipboardModal.vue +46 -26
  86. package/src/components/misc/modal/MessageModal.vue +67 -51
  87. package/src/components/misc/modal/NewsletterModal.vue +179 -136
  88. package/src/components/misc/modal/QrCodeModal.vue +83 -0
  89. package/src/components/misc/modal/ShareModalPlayer.vue +133 -74
  90. package/src/components/mixins/functions.ts +21 -18
  91. package/src/components/mixins/init.ts +24 -0
  92. package/src/components/mixins/organisationFilter.ts +24 -0
  93. package/src/components/pages/Category.vue +26 -26
  94. package/src/components/pages/Emission.vue +120 -92
  95. package/src/components/pages/Emissions.vue +109 -86
  96. package/src/components/pages/Home.vue +70 -16
  97. package/src/components/pages/Lives.vue +57 -47
  98. package/src/components/pages/Participant.vue +93 -77
  99. package/src/components/pages/Participants.vue +44 -31
  100. package/src/components/pages/Playlist.vue +63 -52
  101. package/src/components/pages/Playlists.vue +41 -39
  102. package/src/components/pages/Podcast.vue +265 -251
  103. package/src/components/pages/Podcasts.vue +135 -104
  104. package/src/components/pages/Rubrique.vue +25 -19
  105. package/src/components/pages/Search.vue +71 -67
  106. package/src/helper/dom.ts +2 -2
  107. package/src/helper/duration.ts +18 -8
  108. package/src/locale/educationen.ts +14 -0
  109. package/src/locale/en.ts +299 -1
  110. package/src/locale/fr.ts +25 -10
  111. package/src/locale/messages.ts +3 -2
  112. package/src/main.ts +54 -32
  113. package/src/router/router.ts +184 -159
  114. package/src/shims-tsx.d.ts +13 -0
  115. package/src/shims-vue-recaptcha-v3.d.ts +9 -0
  116. package/src/shims-vue.d.ts +5 -6
  117. package/src/store/AppStore.ts +36 -171
  118. package/src/store/class/category.ts +8 -0
  119. package/src/store/class/comment.ts +17 -0
  120. package/src/store/class/conference.ts +27 -0
  121. package/src/store/class/customPlayer.ts +8 -0
  122. package/src/store/class/emission.ts +20 -0
  123. package/src/store/class/fetchParam.ts +16 -0
  124. package/src/store/class/media.ts +13 -0
  125. package/src/store/class/organisation.ts +19 -0
  126. package/src/store/class/participant.ts +12 -0
  127. package/src/store/class/person.ts +13 -0
  128. package/src/store/class/player.ts +12 -0
  129. package/src/store/class/playlist.ts +15 -0
  130. package/src/store/class/podcast.ts +37 -0
  131. package/src/store/class/rubriquage.ts +9 -0
  132. package/src/store/class/rubriquageFilter.ts +5 -0
  133. package/src/store/class/rubrique.ts +8 -0
  134. package/src/store/paramStore.ts +70 -29
  135. package/src/store/typeAppStore.ts +171 -237
  136. package/src/vuex-shim.d.ts +8 -0
  137. package/tsconfig.json +4 -0
  138. package/vue.config.js +14 -0
  139. package/public/img/ACPM.PNG +0 -0
  140. package/src/assets/bootstrap_scss/_alert.scss +0 -51
  141. package/src/assets/bootstrap_scss/_badge.scss +0 -54
  142. package/src/assets/bootstrap_scss/_breadcrumb.scss +0 -42
  143. package/src/assets/bootstrap_scss/_button-group.scss +0 -164
  144. package/src/assets/bootstrap_scss/_buttons.scss +0 -291
  145. package/src/assets/bootstrap_scss/_card.scss +0 -278
  146. package/src/assets/bootstrap_scss/_carousel.scss +0 -197
  147. package/src/assets/bootstrap_scss/_close.scss +0 -41
  148. package/src/assets/bootstrap_scss/_code.scss +0 -48
  149. package/src/assets/bootstrap_scss/_custom-forms.scss +0 -522
  150. package/src/assets/bootstrap_scss/_dropdown.scss +0 -201
  151. package/src/assets/bootstrap_scss/_forms.scss +0 -352
  152. package/src/assets/bootstrap_scss/_functions.scss +0 -134
  153. package/src/assets/bootstrap_scss/_grid.scss +0 -69
  154. package/src/assets/bootstrap_scss/_images.scss +0 -42
  155. package/src/assets/bootstrap_scss/_input-group.scss +0 -191
  156. package/src/assets/bootstrap_scss/_jumbotron.scss +0 -17
  157. package/src/assets/bootstrap_scss/_list-group.scss +0 -158
  158. package/src/assets/bootstrap_scss/_media.scss +0 -8
  159. package/src/assets/bootstrap_scss/_mixins.scss +0 -47
  160. package/src/assets/bootstrap_scss/_modal.scss +0 -243
  161. package/src/assets/bootstrap_scss/_nav.scss +0 -120
  162. package/src/assets/bootstrap_scss/_navbar.scss +0 -324
  163. package/src/assets/bootstrap_scss/_pagination.scss +0 -74
  164. package/src/assets/bootstrap_scss/_popover.scss +0 -170
  165. package/src/assets/bootstrap_scss/_print.scss +0 -141
  166. package/src/assets/bootstrap_scss/_progress.scss +0 -46
  167. package/src/assets/bootstrap_scss/_reboot.scss +0 -482
  168. package/src/assets/bootstrap_scss/_root.scss +0 -20
  169. package/src/assets/bootstrap_scss/_spinners.scss +0 -55
  170. package/src/assets/bootstrap_scss/_tables.scss +0 -185
  171. package/src/assets/bootstrap_scss/_toasts.scss +0 -44
  172. package/src/assets/bootstrap_scss/_tooltip.scss +0 -115
  173. package/src/assets/bootstrap_scss/_transitions.scss +0 -20
  174. package/src/assets/bootstrap_scss/_type.scss +0 -125
  175. package/src/assets/bootstrap_scss/_utilities.scss +0 -17
  176. package/src/assets/bootstrap_scss/_variables.scss +0 -1145
  177. package/src/assets/bootstrap_scss/bootstrap-grid.scss +0 -29
  178. package/src/assets/bootstrap_scss/bootstrap-reboot.scss +0 -12
  179. package/src/assets/bootstrap_scss/bootstrap.scss +0 -44
  180. package/src/assets/bootstrap_scss/mixins/_alert.scss +0 -13
  181. package/src/assets/bootstrap_scss/mixins/_background-variant.scss +0 -22
  182. package/src/assets/bootstrap_scss/mixins/_badge.scss +0 -17
  183. package/src/assets/bootstrap_scss/mixins/_border-radius.scss +0 -63
  184. package/src/assets/bootstrap_scss/mixins/_box-shadow.scss +0 -20
  185. package/src/assets/bootstrap_scss/mixins/_breakpoints.scss +0 -123
  186. package/src/assets/bootstrap_scss/mixins/_buttons.scss +0 -110
  187. package/src/assets/bootstrap_scss/mixins/_caret.scss +0 -62
  188. package/src/assets/bootstrap_scss/mixins/_clearfix.scss +0 -7
  189. package/src/assets/bootstrap_scss/mixins/_deprecate.scss +0 -10
  190. package/src/assets/bootstrap_scss/mixins/_float.scss +0 -14
  191. package/src/assets/bootstrap_scss/mixins/_forms.scss +0 -177
  192. package/src/assets/bootstrap_scss/mixins/_gradients.scss +0 -45
  193. package/src/assets/bootstrap_scss/mixins/_grid-framework.scss +0 -71
  194. package/src/assets/bootstrap_scss/mixins/_grid.scss +0 -69
  195. package/src/assets/bootstrap_scss/mixins/_hover.scss +0 -37
  196. package/src/assets/bootstrap_scss/mixins/_image.scss +0 -36
  197. package/src/assets/bootstrap_scss/mixins/_list-group.scss +0 -21
  198. package/src/assets/bootstrap_scss/mixins/_lists.scss +0 -7
  199. package/src/assets/bootstrap_scss/mixins/_nav-divider.scss +0 -11
  200. package/src/assets/bootstrap_scss/mixins/_pagination.scss +0 -22
  201. package/src/assets/bootstrap_scss/mixins/_reset-text.scss +0 -17
  202. package/src/assets/bootstrap_scss/mixins/_resize.scss +0 -6
  203. package/src/assets/bootstrap_scss/mixins/_screen-reader.scss +0 -34
  204. package/src/assets/bootstrap_scss/mixins/_size.scss +0 -7
  205. package/src/assets/bootstrap_scss/mixins/_table-row.scss +0 -39
  206. package/src/assets/bootstrap_scss/mixins/_text-emphasis.scss +0 -17
  207. package/src/assets/bootstrap_scss/mixins/_text-hide.scss +0 -11
  208. package/src/assets/bootstrap_scss/mixins/_text-truncate.scss +0 -8
  209. package/src/assets/bootstrap_scss/mixins/_transition.scss +0 -16
  210. package/src/assets/bootstrap_scss/mixins/_visibility.scss +0 -8
  211. package/src/assets/bootstrap_scss/utilities/_align.scss +0 -8
  212. package/src/assets/bootstrap_scss/utilities/_background.scss +0 -19
  213. package/src/assets/bootstrap_scss/utilities/_borders.scss +0 -75
  214. package/src/assets/bootstrap_scss/utilities/_clearfix.scss +0 -3
  215. package/src/assets/bootstrap_scss/utilities/_display.scss +0 -26
  216. package/src/assets/bootstrap_scss/utilities/_embed.scss +0 -39
  217. package/src/assets/bootstrap_scss/utilities/_flex.scss +0 -51
  218. package/src/assets/bootstrap_scss/utilities/_float.scss +0 -11
  219. package/src/assets/bootstrap_scss/utilities/_overflow.scss +0 -5
  220. package/src/assets/bootstrap_scss/utilities/_position.scss +0 -32
  221. package/src/assets/bootstrap_scss/utilities/_screenreaders.scss +0 -11
  222. package/src/assets/bootstrap_scss/utilities/_shadows.scss +0 -6
  223. package/src/assets/bootstrap_scss/utilities/_sizing.scss +0 -20
  224. package/src/assets/bootstrap_scss/utilities/_spacing.scss +0 -73
  225. package/src/assets/bootstrap_scss/utilities/_stretched-link.scss +0 -19
  226. package/src/assets/bootstrap_scss/utilities/_text.scss +0 -72
  227. package/src/assets/bootstrap_scss/utilities/_visibility.scss +0 -13
  228. package/src/assets/bootstrap_scss/vendor/_rfs.scss +0 -204
  229. package/src/shims-vuex.d.ts +0 -7
  230. package/src/views/Home.vue +0 -18
@@ -1,171 +1,196 @@
1
- import { createRouter, createWebHistory } from 'vue-router';
1
+ import { createRouter, createWebHistory } from 'vue-router'
2
2
 
3
3
  /*--------------------------------------------------------------------------
4
4
  Composants publics
5
5
  --------------------------------------------------------------------------*/
6
- import Home from '@/components/pages/Home.vue';
7
- import PodcastsPage from '@/components/pages/Podcasts.vue';
8
- import EmissionPage from '@/components/pages/Emission.vue';
9
- import EmissionsPage from '@/components/pages/Emissions.vue';
10
- import ParticpantsPage from '@/components/pages/Participants.vue';
11
- import PodcastPage from '@/components/pages/Podcast.vue';
12
- import ParticipantPage from '@/components/pages/Participant.vue';
13
- import SearchPage from '@/components/pages/Search.vue';
14
- import CategoryPage from '@/components/pages/Category.vue';
15
- import RubriquePage from '@/components/pages/Rubrique.vue';
16
- import LivesPage from '@/components/pages/Lives.vue';
17
- import PlaylistPage from '@/components/pages/Playlist.vue';
18
- import PlaylistsPage from '@/components/pages/Playlists.vue';
19
6
 
7
+ const Home = () => import('@/components/pages/Home.vue');
8
+ const PodcastsPage = () => import('@/components/pages/Podcasts.vue');
9
+ const EmissionPage = () => import('@/components/pages/Emission.vue');
10
+ const EmissionsPage = () => import('@/components/pages/Emissions.vue');
11
+ const ParticpantsPage = () => import('@/components/pages/Participants.vue');
12
+ const PodcastPage = () => import('@/components/pages/Podcast.vue');
13
+ const ParticipantPage = () => import('@/components/pages/Participant.vue');
14
+ const SearchPage = () => import('@/components/pages/Search.vue');
15
+ const CategoryPage = () => import('@/components/pages/Category.vue');
16
+ const RubriquePage = () => import('@/components/pages/Rubrique.vue');
17
+ const LivesPage = () => import('@/components/pages/Lives.vue');
18
+ const PlaylistPage = () => import('@/components/pages/Playlist.vue');
19
+ const PlaylistsPage = () => import('@/components/pages/Playlists.vue');
20
20
 
21
- const routes = [
21
+ const routes: any = [
22
22
  /*--------------------------------------------------------------------------
23
23
  Liens publics
24
24
  --------------------------------------------------------------------------*/
25
- {
26
- path: '/',
27
- name: '',
28
- component: Home,
29
- },
30
- {
31
- path: '/main/pub/home:productor?',
32
- name: 'home',
33
- component: Home,
34
- props: (route:any) => ({
35
- productor: route.params.productor,
36
- }),
37
- },
38
- {
39
- path: '/main/pub/search/:query?/:productor?',
40
- name: 'search',
41
- component: SearchPage,
42
- props: (route:any) => ({
43
- productor: route.params.productor,
44
- query: route.params.query,
45
- }),
46
- },
47
- {
48
- path: '/main/pub/podcasts/:productor?',
49
- name: 'podcasts',
50
- component: PodcastsPage,
51
- props: (route:any) => ({
52
- productor: route.params.productor,
53
- }),
54
- },
55
- {
56
- path: '/main/pub/emissions/:productor?',
57
- name: 'emissions',
58
- component: EmissionsPage,
59
- props: (route:any) => ({
60
- productor: route.params.productor,
61
- }),
62
- },
63
- {
64
- path: '/main/pub/participants/:productor?',
65
- name: 'participants',
66
- component: ParticpantsPage,
67
- props: (route:any) => ({
68
- productor: route.params.productor,
69
- }),
70
- },
71
- {
72
- path: '/main/pub/emission/:emissionId/:productor?',
73
- name: 'emission',
74
- component: EmissionPage,
75
- props: (route:any) => ({
76
- first: parseInt(route.query.first, 10) || 0,
77
- size: parseInt(route.query.size, 10) || 12,
78
- emissionId: parseInt(route.params.emissionId, 10),
79
- productor: route.params.productor,
80
- }),
81
- },
82
- {
83
- path: '/main/pub/podcast/:podcastId/:productor?',
84
- name: 'podcast',
85
- component: PodcastPage,
86
- props: (route:any) => ({
87
- podcastId: parseInt(route.params.podcastId, 10),
88
- productor: route.params.productor,
89
- }),
90
- },
91
- {
92
- path: '/main/pub/participant/:participantId/:productor?',
93
- name: 'participant',
94
- component: ParticipantPage,
95
- props: (route:any) => ({
96
- first: parseInt(route.query.first, 10) || 0,
97
- size: parseInt(route.query.size, 10) || 12,
98
- participantId: parseInt(route.params.participantId, 10),
99
- productor: route.params.productor,
100
- }),
101
- },
102
- {
103
- path: '/main/pub/category/:iabId/:productor?',
104
- name: 'category',
105
- component: CategoryPage,
106
- props: (route:any) => ({
107
- first: parseInt(route.query.first, 10) || 0,
108
- size: parseInt(route.query.size, 10) || 12,
109
- iabId: parseInt(route.params.iabId, 10),
110
- productor: route.params.productor,
111
- }),
112
- },
113
- {
114
- path: '/main/pub/rubrique/:rubriqueId/:productor?',
115
- name: 'rubrique',
116
- component: RubriquePage,
117
- props: (route:any) => ({
118
- first: parseInt(route.query.first, 10) || 0,
119
- size: parseInt(route.query.size, 10) || 12,
120
- rubriqueId: parseInt(route.params.rubriqueId, 10),
121
- productor: route.params.productor,
122
- }),
123
- },
124
- {
125
- path: '/main/pub/lives/:productor?',
126
- name: 'lives',
127
- component: LivesPage,
128
- props: (route:any) => ({
129
- productor: route.params.productor,
130
- }),
131
- },
132
- {
133
- path: '/main/pub/home',
134
- name: 'productor',
135
- component: Home,
136
- props: () => ({
137
- productorId: 0,
138
- }),
139
- },
140
- {
141
- path: '/main/pub/home',
142
- name: 'productors',
143
- component: Home,
144
- props: () => ({
145
- productorId: 0,
146
- }),
147
- },
148
- {
149
- path: '/main/pub/playlists/:productor?',
150
- name: 'playlists',
151
- component: PlaylistsPage,
152
- props: (route:any) => ({
153
- productor: route.params.productor,
154
- }),
155
- },
156
- {
157
- path: '/main/pub/playlist/:playlistId/:productor?',
158
- name: 'playlist',
159
- component: PlaylistPage,
160
- props: (route:any) => ({
161
- playlistId: parseInt(route.params.playlistId, 10),
162
- productor: route.params.productor,
163
- }),
164
- },
25
+ {
26
+ path: '/',
27
+ name: '',
28
+ component: Home,
29
+ },
30
+ {
31
+ path: '/main/pub/home:productor?:iabId?:rubriquesId?',
32
+ name: 'home',
33
+ component: Home,
34
+ props: (route: any) => ({
35
+ productor: route.params.productor,
36
+ iabId: route.params.iabId,
37
+ rubriquesId: route.params.rubriquesId,
38
+ }),
39
+ },
40
+ {
41
+ path: '/main/pub/search/:query?/:productor?',
42
+ name: 'search',
43
+ component: SearchPage,
44
+ props: (route: any) => ({
45
+ productor: route.params.productor,
46
+ queryRoute: route.params.query,
47
+ }),
48
+ },
49
+ {
50
+ path: '/main/pub/podcasts/:productor?:iabId?:rubriquesId?',
51
+ name: 'podcasts',
52
+ component: PodcastsPage,
53
+ props: (route: any) => ({
54
+ productor: route.params.productor,
55
+ iabId: route.params.iabId,
56
+ rubriquesId: route.params.rubriquesId,
57
+ }),
58
+ },
59
+ {
60
+ path: '/main/pub/emissions/:productor?:iabId?:rubriquesId?',
61
+ name: 'emissions',
62
+ component: EmissionsPage,
63
+ props: (route: any) => ({
64
+ productor: route.params.productor,
65
+ iabId: route.params.iabId,
66
+ rubriquesId: route.params.rubriquesId,
67
+ }),
68
+ },
69
+ {
70
+ path: '/main/pub/participants/:productor?',
71
+ name: 'participants',
72
+ component: ParticpantsPage,
73
+ props: (route: any) => ({
74
+ productor: route.params.productor,
75
+ }),
76
+ },
77
+ {
78
+ path: '/main/pub/emission/:emissionId/:productor?',
79
+ name: 'emission',
80
+ component: EmissionPage,
81
+ props: (route: any) => ({
82
+ firstRoute: parseInt(route.query.first, 10) || 0,
83
+ sizeRoute: parseInt(route.query.size, 10) || 12,
84
+ emissionId: parseInt(route.params.emissionId, 10),
85
+ productor: route.params.productor,
86
+ }),
87
+ },
88
+ {
89
+ path: '/main/pub/podcast/:podcastId/:productor?',
90
+ name: 'podcast',
91
+ component: PodcastPage,
92
+ props: (route: any) => ({
93
+ podcastId: parseInt(route.params.podcastId, 10),
94
+ productor: route.params.productor,
95
+ }),
96
+ },
97
+ {
98
+ path: '/main/pub/participant/:participantId/:productor?',
99
+ name: 'participant',
100
+ component: ParticipantPage,
101
+ props: (route: any) => ({
102
+ firstRoute: parseInt(route.query.first, 10) || 0,
103
+ sizeRoute: parseInt(route.query.size, 10) || 12,
104
+ participantId: parseInt(route.params.participantId, 10),
105
+ productor: route.params.productor,
106
+ }),
107
+ },
108
+ {
109
+ path: '/main/pub/category/:iabId/:productor?',
110
+ name: 'category',
111
+ component: CategoryPage,
112
+ props: (route: any) => ({
113
+ firstRoute: parseInt(route.query.first, 10) || 0,
114
+ sizeRoute: parseInt(route.query.size, 10) || 12,
115
+ iabId: parseInt(route.params.iabId, 10),
116
+ productor: route.params.productor,
117
+ }),
118
+ },
119
+ {
120
+ path: '/main/pub/rubrique/:rubriqueId/:productor?',
121
+ name: 'rubrique',
122
+ component: RubriquePage,
123
+ props: (route: any) => ({
124
+ firstRoute: parseInt(route.query.first, 10) || 0,
125
+ sizeRoute: parseInt(route.query.size, 10) || 12,
126
+ rubriqueId: parseInt(route.params.rubriqueId, 10),
127
+ productor: route.params.productor,
128
+ }),
129
+ },
130
+ {
131
+ path: '/main/pub/lives/:productor?',
132
+ name: 'lives',
133
+ component: LivesPage,
134
+ props: (route: any) => ({
135
+ productor: route.params.productor,
136
+ }),
137
+ },
138
+ {
139
+ path: '/main/pub/home',
140
+ name: 'productor',
141
+ component: Home,
142
+ props: () => ({
143
+ productorId: 0,
144
+ }),
145
+ },
146
+ {
147
+ path: '/main/pub/home',
148
+ name: 'productors',
149
+ component: Home,
150
+ props: () => ({
151
+ productorId: 0,
152
+ }),
153
+ },
154
+ {
155
+ path: '/main/pub/playlists/:productor?',
156
+ name: 'playlists',
157
+ component: PlaylistsPage,
158
+ props: (route: any) => ({
159
+ productor: route.params.productor,
160
+ }),
161
+ },
162
+ {
163
+ path: '/main/pub/playlist/:playlistId/:productor?',
164
+ name: 'playlist',
165
+ component: PlaylistPage,
166
+ props: (route: any) => ({
167
+ playlistId: parseInt(route.params.playlistId, 10),
168
+ productor: route.params.productor,
169
+ }),
170
+ },
171
+ //Fake route to avoid errors
172
+ {
173
+ path: '/main/pub/contact',
174
+ component: Home,
175
+ },
176
+ {
177
+ path: '/main/pub/cgu',
178
+ component: Home,
179
+ },
180
+ {
181
+ path: '/main/pub/libraries',
182
+ component: Home,
183
+ },
184
+ {
185
+ path: '/main/priv/distribution/:distrib/:id',
186
+ component: Home,
187
+ },
188
+
165
189
  ];
166
- const router = createRouter({
190
+ export default createRouter({
167
191
  history: createWebHistory(process.env.BASE_URL),
168
- routes
192
+ routes: routes,
193
+ scrollBehavior(): {left: number; top: number} {
194
+ return { left: 0, top: 0 };
195
+ },
169
196
  })
170
-
171
- export default router;
@@ -0,0 +1,13 @@
1
+ import Vue, { VNode } from 'vue'
2
+
3
+ declare global {
4
+ namespace JSX {
5
+ // tslint:disable no-empty-interface
6
+ type Element = VNode
7
+ // tslint:disable no-empty-interface
8
+ type ElementClass = Vue
9
+ interface IntrinsicElements {
10
+ [elem: string]: any;
11
+ }
12
+ }
13
+ }
@@ -0,0 +1,9 @@
1
+ import { ReCaptchaInstance } from 'recaptcha-v3'
2
+
3
+ declare module '@vue/runtime-core' {
4
+ interface ComponentCustomProperties {
5
+ $recaptcha: (action: string) => Promise<string>
6
+ $recaptchaLoaded: () => Promise<boolean>
7
+ $recaptchaInstance: ReCaptchaInstance
8
+ }
9
+ }
@@ -1,6 +1,5 @@
1
- /* eslint-disable */
2
- declare module '*.vue' {
3
- import type { DefineComponent } from 'vue'
4
- const component: DefineComponent<{}, {}, any>
5
- export default component
6
- }
1
+ declare module "*.vue" {
2
+ import { defineComponent } from "vue";
3
+ const component: ReturnType<typeof defineComponent>;
4
+ export default component;
5
+ }
@@ -1,158 +1,18 @@
1
1
  import { createStore } from 'vuex'
2
- import {AppStoreData} from './typeAppStore';
3
-
2
+ import { AppStoreData } from './typeAppStore';
4
3
 
5
4
  export default createStore({
6
5
  state: AppStoreData(),
7
6
 
8
- getters: {
9
- isRoleAdmin: state => {
10
- return (
11
- state.authentication.isAuthenticated &&
12
- state.authentication.role.includes('ADMIN')
13
- );
14
- },
15
- isRoleAnimator: state => {
16
- return (
17
- state.authentication.isAuthenticated &&
18
- state.authentication.role.includes('ANIMATION')
19
- );
20
- },
21
- isRoleUsers: state => {
22
- return (
23
- state.authentication.isAuthenticated &&
24
- state.authentication.role.includes('USERS')
25
- );
26
- },
27
- isRoleOrganisation: state => {
28
- return (
29
- state.authentication.isAuthenticated &&
30
- state.authentication.role.includes('ORGANISATION')
31
- );
32
- },
33
- isRoleProduction: state => {
34
- return (
35
- state.authentication.isAuthenticated &&
36
- state.authentication.role.includes('PRODUCTION')
37
- );
38
- },
39
- isRolePublication: state => {
40
- return (
41
- state.authentication.isAuthenticated &&
42
- state.authentication.role.includes('PODCAST_VALIDATION')
43
- );
44
- },
45
- isRoleContribution: state => {
46
- return (
47
- state.authentication.isAuthenticated &&
48
- state.authentication.role.includes('PODCAST_CRUD')
49
- );
50
- },
51
- isRolePlaylists: state => {
52
- return (
53
- state.authentication.isAuthenticated &&
54
- state.authentication.role.includes('PLAYLISTS')
55
- );
56
- },
57
- isRoleComments: state => {
58
- return (
59
- state.authentication.isAuthenticated &&
60
- state.authentication.role.includes('COMMENTS_MODERATION')
61
- );
62
- },
63
- isRoleEditor: state => {
64
- return (
65
- state.authentication.isAuthenticated &&
66
- state.authentication.role.includes('EDITION')
67
- );
68
- },
69
- isRoleAnalytics: state => {
70
- return (
71
- state.authentication.isAuthenticated &&
72
- state.authentication.role.includes('ANALYTICS')
73
- );
74
- },
75
- isRoleAdvertising: state => {
76
- return (
77
- state.authentication.isAuthenticated &&
78
- state.authentication.role.includes('ADVERTISING')
79
- );
80
- },
81
- isRoleLive: state => {
82
- return (
83
- state.authentication.isAuthenticated &&
84
- state.authentication.role.includes('LIVE')
85
- );
86
- },
87
- },
7
+ getters: {},
88
8
  mutations: {
89
- navigator(state, navigator) {
90
- state.navigator = navigator;
91
- },
92
- storage(state, storage) {
93
- state.storage = storage;
94
- },
95
- miniplayer(state, miniplayer) {
96
- state.miniplayer = miniplayer;
97
- },
98
- api(state, api) {
99
- state.api = api;
100
- },
101
- RssApi(state, RssApi) {
102
- state.RssApi = RssApi;
103
- },
104
- MediaApi(state, MediaApi) {
105
- state.MediaApi = MediaApi;
106
- },
107
- commentApi(state, commentApi) {
108
- state.CommentApi = commentApi;
109
- },
110
- studioApi(state, studioApi) {
111
- state.studioApi = studioApi;
112
- },
113
- processor(state, processor) {
114
- state.processor = processor;
115
- },
116
- rtmp(state, rtmp) {
117
- state.rtmp = rtmp;
118
- },
119
- keycloakApi(state, keycloakApi) {
120
- state.keycloakApi = keycloakApi;
121
- },
122
- frontend(state, frontend) {
123
- state.frontend = frontend;
124
- },
125
- hlsApi(state, hlsApi) {
126
- state.hlsApi = hlsApi;
127
- },
128
- authentication(state, authentication) {
129
- state.authentication = authentication;
130
- },
131
- oAuthParam(state, oAuthParam) {
132
- state.oAuthParam = oAuthParam;
133
- },
134
- media(state, media) {
135
- state.media = media;
136
- },
137
- profile(state, profile) {
138
- state.profile = profile;
139
- state.authentication.name = profile.firstname + ' ' + profile.lastname;
140
- },
141
- organisation(state, organisation) {
142
- state.organisation = organisation;
143
- },
144
-
145
- uiDisplayLeftMenu(state, displayLeftMenuState) {
146
- state.ui.displayLeftMenu = displayLeftMenuState;
147
- },
148
-
149
- playerPlayPodcast(state , podcast) {
9
+ playerPlayPodcast(state, podcast) {
150
10
  if (!podcast) {
151
11
  state.player = {
152
12
  status: 'STOPPED', //STOPPED, LOADING, PLAYING, PAUSED
153
- podcast: undefined as any,
154
- media: undefined as any,
155
- live: undefined as any,
13
+ podcast: undefined,
14
+ media: undefined,
15
+ live: undefined,
156
16
  elapsed: 0,
157
17
  };
158
18
  return;
@@ -173,12 +33,12 @@ export default createStore({
173
33
  }
174
34
  if (
175
35
  podcast.conferenceId &&
176
- (!podcast.podcastId || podcast.processingStatus !== 'READY')
36
+ (!podcast.podcastId || 'READY' !== podcast.processingStatus)
177
37
  ) {
178
38
  state.player = {
179
39
  status: 'LOADING', //STOPPED, LOADING, PLAYING, PAUSED
180
- podcast: undefined as any,
181
- media: undefined as any,
40
+ podcast: undefined,
41
+ media: undefined,
182
42
  live: podcast,
183
43
  elapsed: 0,
184
44
  };
@@ -186,16 +46,16 @@ export default createStore({
186
46
  state.player = {
187
47
  status: 'LOADING', //STOPPED, LOADING, PLAYING, PAUSED
188
48
  podcast: podcast,
189
- media: undefined as any,
190
- live: undefined as any,
49
+ media: undefined,
50
+ live: undefined,
191
51
  elapsed: 0,
192
52
  };
193
53
  } else if (podcast.mediaId) {
194
54
  state.player = {
195
55
  status: 'LOADING', //STOPPED, LOADING, PLAYING, PAUSED
196
- podcast: undefined as any,
56
+ podcast: undefined,
197
57
  media: podcast,
198
- live: undefined as any,
58
+ live: undefined,
199
59
  elapsed: 0,
200
60
  };
201
61
  }
@@ -221,36 +81,41 @@ export default createStore({
221
81
  state.player.volume = volume;
222
82
  },
223
83
 
224
- categoriesSet(state, categories) {
225
- state.categories = categories;
226
- },
227
-
228
84
  filterOrga(state, filter) {
229
85
  state.filter.organisationId = filter.orgaId;
230
86
  if (filter.imgUrl || !filter.orgaId) {
231
87
  state.filter.imgUrl = filter.imgUrl;
232
88
  }
89
+ if(filter.rubriquageArray){
90
+ state.filter.rubriquageArray = filter.rubriquageArray;
91
+ }
92
+ state.filter.live= filter.isLive;
93
+ state.filter.iab = undefined;
233
94
  },
234
-
235
- filterOrgaLive(state, isLive) {
236
- state.filter.live = isLive;
95
+ filterIab(state, iab) {
96
+ state.filter.iab = iab;
97
+ },
98
+ filterRubrique(state, rubriqueFilter) {
99
+ state.filter.rubriqueFilter = rubriqueFilter;
100
+ },
101
+ filterRubriqueDisplay(state, rubriques) {
102
+ state.filter.rubriqueDisplay = rubriques;
237
103
  },
238
104
 
239
- filterMedia(state, filter) {
240
- if (filter.type) {
241
- state.filter.typeMedia = filter.type;
242
- }
243
- if (filter.order) {
244
- state.filter.sortOrder = filter.order;
245
- }
246
- if (filter.field) {
247
- state.filter.sortField = filter.field;
248
- }
105
+ categoriesSet(state, categories) {
106
+ state.categories = categories;
249
107
  },
250
108
 
251
109
  categoriesOrgaSet(state, categories) {
252
110
  state.categoriesOrga = categories;
253
111
  },
254
-
112
+ setCommentIdentity(state, identity) {
113
+ state.comments.knownIdentity = identity;
114
+ },
115
+ setCommentLoaded(state, data) {
116
+ state.comments.actualPodcastId = data.podcastId;
117
+ state.comments.loadedComments = data.comments;
118
+ state.comments.totalCount = data.count;
119
+ },
255
120
  },
256
121
  });
@@ -0,0 +1,8 @@
1
+ export interface Category{
2
+ id: number;
3
+ name: string;
4
+ podcastCount?: number;
5
+ podcastOrganisationCount?: number;
6
+ rtbId?: string;
7
+ soundcastTag?: string;
8
+ }