@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,60 +1,72 @@
1
1
  <template>
2
2
  <div>
3
- <div class="page-box" v-if="loaded && !error">
3
+ <div
4
+ v-if="loaded && !error"
5
+ class="page-box"
6
+ >
4
7
  <h1>{{ $t('Playlist') }}</h1>
5
8
  <div class="d-flex">
6
9
  <div class="d-flex flex-column flex-grow">
7
10
  <EditBox
8
- :playlist="playlist"
9
- :isReady="isReady"
10
11
  v-if="editRight && isEditBox"
11
- ></EditBox>
12
+ :playlist="playlist"
13
+ :is-ready="isReady"
14
+ />
12
15
  <div class="module-box">
13
16
  <h2>{{ name }}</h2>
14
17
  <div class="mb-5 mt-3 descriptionText">
15
18
  <img
16
19
  :src="imageUrl"
17
20
  :alt="$t('Playlist name image', { name: name })"
18
- class="img-box shadow-element float-left mr-3 mb-3"
21
+ class="img-box shadow-element float-start me-3 mb-3"
22
+ >
23
+ <p
24
+ class="html-wysiwyg-content"
25
+ v-html="urlify(description)"
19
26
  />
20
- <p class="html-wysiwyg-content" v-html="urlify(description)"></p>
21
27
  </div>
22
28
  </div>
23
29
  </div>
24
30
  <div class="d-flex flex-column share-container">
25
31
  <SharePlayer
26
- :playlist="playlist"
27
- :organisationId="organisationId"
28
- :isEducation="isEducation"
29
32
  v-if="isSharePlayer && authenticated"
30
- >
31
- </SharePlayer>
32
- <ShareButtons v-if="isShareButtons"></ShareButtons>
33
+ :playlist="playlist"
34
+ :organisation-id="organisationId"
35
+ :is-education="isEducation"
36
+ />
37
+ <ShareButtons v-if="isShareButtons" />
33
38
  </div>
34
39
  </div>
35
40
  <PodcastList :playlist="playlist" />
36
41
  </div>
37
- <div class="d-flex justify-content-center" v-if="!loaded">
38
- <div class="spinner-border mr-3"></div>
39
- <h3 class="mt-2">{{ $t('Loading content ...') }}</h3>
42
+ <div
43
+ v-if="!loaded"
44
+ class="d-flex justify-content-center"
45
+ >
46
+ <div class="spinner-border me-3" />
47
+ <h3 class="mt-2">
48
+ {{ $t('Loading content ...') }}
49
+ </h3>
40
50
  </div>
41
- <div class="text-center" v-if="error">
51
+ <div
52
+ v-if="error"
53
+ class="text-center"
54
+ >
42
55
  <h3>{{ $t("Playlist doesn't exist") }}</h3>
43
56
  </div>
44
57
  </div>
45
58
  </template>
46
- <style lang="scss"></style>
59
+
47
60
  <script lang="ts">
48
- // @ is an alias to /src
49
- import EditBox from '@/components/display/edit/EditBox.vue';
50
- import ShareButtons from '../display/sharing/ShareButtons.vue';
51
- import SharePlayer from '../display/sharing/SharePlayer.vue';
52
61
  import PodcastList from '../display/playlist/PodcastList.vue';
53
62
  const octopusApi = require('@saooti/octopus-api');
54
63
  import { state } from '../../store/paramStore';
55
64
  import { displayMethods } from '../mixins/functions';
56
-
57
- import { defineComponent } from 'vue'
65
+ import { Playlist } from '@/store/class/playlist';
66
+ import { defineComponent, defineAsyncComponent } from 'vue';
67
+ const ShareButtons = defineAsyncComponent(() => import('../display/sharing/ShareButtons.vue'));
68
+ const EditBox = defineAsyncComponent(() => import('@/components/display/edit/EditBox.vue'));
69
+ const SharePlayer = defineAsyncComponent(() => import('../display/sharing/SharePlayer.vue'));
58
70
  export default defineComponent({
59
71
  components: {
60
72
  ShareButtons,
@@ -62,56 +74,51 @@ export default defineComponent({
62
74
  PodcastList,
63
75
  SharePlayer,
64
76
  },
65
- mixins: [displayMethods],
66
-
67
- mounted() {
68
- this.getPlaylistDetails();
77
+ mixins:[displayMethods],
78
+ props: {
79
+ playlistId: { default: undefined, type: Number},
80
+ isEducation: { default: false, type: Boolean},
69
81
  },
70
-
71
- props: ['playlistId', 'isEducation'],
72
82
  emits: ['playlistTitle'],
73
83
 
74
84
  data() {
75
85
  return {
76
- loaded: false,
77
- playlist: undefined as any,
78
- error: false,
79
- isReady: true,
86
+ loaded: false as boolean,
87
+ playlist: undefined as Playlist | undefined,
88
+ error: false as boolean,
89
+ isReady: true as boolean,
80
90
  };
81
91
  },
82
-
92
+
83
93
  computed: {
84
- organisationId() {
94
+ organisationId(): string {
85
95
  return state.generalParameters.organisationId;
86
96
  },
87
- authenticated():boolean {
97
+ authenticated(): boolean {
88
98
  return state.generalParameters.authenticated;
89
99
  },
90
- isEditBox() {
100
+ isEditBox(): boolean {
91
101
  return state.podcastPage.EditBox;
92
102
  },
93
- isShareButtons() {
103
+ isShareButtons(): boolean {
94
104
  return state.podcastPage.ShareButtons;
95
105
  },
96
- isSharePlayer() {
106
+ isSharePlayer(): boolean {
97
107
  return state.podcastPage.SharePlayer;
98
108
  },
99
- name():string {
109
+ name(): string {
100
110
  return this.playlist ? this.playlist.title : '';
101
111
  },
102
-
103
- imageUrl():string {
104
- let dummy = new Date().getTime().toString();
112
+ imageUrl(): string {
113
+ const dummy = new Date().getTime().toString();
105
114
  return this.playlist ? this.playlist.imageUrl + '?dummy=' + dummy : '';
106
115
  },
107
-
108
- description():string {
116
+ description(): string {
109
117
  return this.playlist ? this.playlist.description : '';
110
118
  },
111
-
112
- editRight() {
119
+ editRight(): boolean {
113
120
  if (
114
- (state.generalParameters.isPlaylist &&
121
+ (state.generalParameters.isPlaylist && this.playlist &&
115
122
  this.organisationId === this.playlist.organisation.id) ||
116
123
  state.generalParameters.isAdmin
117
124
  )
@@ -119,7 +126,6 @@ export default defineComponent({
119
126
  return false;
120
127
  },
121
128
  },
122
-
123
129
  watch: {
124
130
  playlistId() {
125
131
  this.loaded = false;
@@ -128,10 +134,13 @@ export default defineComponent({
128
134
  },
129
135
  },
130
136
 
137
+ mounted() {
138
+ this.getPlaylistDetails();
139
+ },
131
140
  methods: {
132
- async getPlaylistDetails() {
141
+ async getPlaylistDetails(): Promise<void> {
133
142
  try {
134
- const data = await octopusApi.fetchPlaylist(this.playlistId);
143
+ const data: Playlist = await octopusApi.fetchPlaylist(this.playlistId);
135
144
  this.playlist = data;
136
145
  this.$emit('playlistTitle', this.playlist.title);
137
146
  this.loaded = true;
@@ -141,5 +150,7 @@ export default defineComponent({
141
150
  }
142
151
  },
143
152
  },
144
- });
153
+ })
145
154
  </script>
155
+
156
+ <style lang="scss"></style>
@@ -2,90 +2,92 @@
2
2
  <div class="page-box">
3
3
  <h1>{{ $t('All playlists') }}</h1>
4
4
  <router-link
5
- to="/main/priv/edit/playlist"
6
5
  v-if="editRight && !isPodcastmaker"
6
+ to="/main/priv/edit/playlist"
7
7
  class="d-flex justify-content-center"
8
8
  >
9
- <button class="btn btn-primary">{{ $t('Create playlist') }}</button>
9
+ <button class="btn btn-primary">
10
+ {{ $t('Create playlist') }}
11
+ </button>
10
12
  </router-link>
11
13
  <ProductorSearch
14
+ v-if="isProductorSearch"
12
15
  v-model:organisationId="organisationId"
13
- :searchPattern="searchPattern"
16
+ :search-pattern="searchPattern"
14
17
  type="playlist"
15
18
  @updateOrganisationId="updateOrganisationId"
16
19
  @updateSearchPattern="updateSearchPattern"
17
- v-if="isProductorSearch"
18
20
  />
19
21
  <PlaylistList
20
- :showCount="true"
22
+ :show-count="true"
21
23
  :first="first"
22
24
  :size="size"
23
25
  :query="searchPattern"
24
- :organisationId="organisationId"
26
+ :organisation-id="organisationId"
25
27
  />
26
28
  </div>
27
29
  </template>
28
- <style lang="scss"></style>
30
+
29
31
  <script lang="ts">
30
- // @ is an alias to /src
31
32
  import PlaylistList from '../display/playlist/PlaylistList.vue';
32
- import ProductorSearch from '../display/filter/ProductorSearch.vue';
33
33
  import { state } from '../../store/paramStore';
34
-
35
- import { defineComponent } from 'vue'
34
+ import { defineComponent, defineAsyncComponent } from 'vue';
35
+ const ProductorSearch = defineAsyncComponent(() => import('../display/filter/ProductorSearch.vue'));
36
36
  export default defineComponent({
37
37
  components: {
38
38
  ProductorSearch,
39
39
  PlaylistList,
40
40
  },
41
-
42
- created() {
43
- if (this.$route.query.first) {
44
- this.first = this.$route.query.first;
45
- } else {
46
- this.first = 0;
47
- }
48
- if (this.$route.query.size) {
49
- this.size = this.$route.query.size;
50
- } else {
51
- this.size = 12;
52
- }
53
- if (this.$route.query.productor) {
54
- this.organisationId = this.$route.query.productor;
55
- } else if (this.$store.state.filter.organisationId) {
56
- this.organisationId = this.$store.state.filter.organisationId;
57
- }
41
+ props: {
42
+ firstRoute: { default: 0, type: Number},
43
+ sizeRoute: { default: 12, type: Number},
44
+ productor: { default: undefined, type: String},
58
45
  },
59
46
 
60
47
  data() {
61
48
  return {
62
- first: undefined as any,
63
- size: undefined as any,
64
- searchPattern: '',
65
- organisationId: undefined as any,
49
+ first: 0 as number,
50
+ size: 12 as number,
51
+ searchPattern: '' as string,
52
+ organisationId: undefined as string | undefined,
66
53
  };
67
54
  },
68
-
55
+
69
56
  computed: {
70
- isProductorSearch() {
57
+ isProductorSearch(): boolean {
71
58
  return state.podcastsPage.ProductorSearch;
72
59
  },
73
- isPodcastmaker() {
60
+ isPodcastmaker(): boolean {
74
61
  return state.generalParameters.podcastmaker;
75
62
  },
76
- editRight() {
63
+ editRight(): boolean {
77
64
  if (state.generalParameters.isPlaylist) return true;
78
65
  return false;
79
66
  },
80
67
  },
81
68
 
69
+ created() {
70
+ if (this.firstRoute) {
71
+ this.first = this.firstRoute;
72
+ }
73
+ if (this.sizeRoute) {
74
+ this.size = this.sizeRoute;
75
+ }
76
+ if (this.productor) {
77
+ this.organisationId = this.productor;
78
+ } else if (this.$store.state.filter.organisationId) {
79
+ this.organisationId = this.$store.state.filter.organisationId;
80
+ }
81
+ },
82
82
  methods: {
83
- updateOrganisationId(value: any) {
83
+ updateOrganisationId(value: string): void {
84
84
  this.organisationId = value;
85
85
  },
86
- updateSearchPattern(value: string) {
86
+ updateSearchPattern(value: string): void {
87
87
  this.searchPattern = value;
88
88
  },
89
89
  },
90
- });
90
+ })
91
91
  </script>
92
+
93
+ <style lang="scss"></style>