@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,8 +1,13 @@
1
1
  <template>
2
2
  <div class="d-flex flex-column align-items-center">
3
- <div class="d-flex justify-content-center" v-if="loading">
4
- <div class="spinner-border mr-3"></div>
5
- <h3 class="mt-2">{{ $t('Loading podcasts ...') }}</h3>
3
+ <div
4
+ v-if="loading"
5
+ class="d-flex justify-content-center"
6
+ >
7
+ <div class="spinner-border me-3" />
8
+ <h3 class="mt-2">
9
+ {{ $t('Loading podcasts ...') }}
10
+ </h3>
6
11
  </div>
7
12
  <div v-if="loaded && !podcasts.length">
8
13
  <p>{{ $t('No podcast match your query') }}</p>
@@ -13,149 +18,136 @@
13
18
  >
14
19
  {{ $t('Number podcasts', { nb: totalCount }) + sortText }}
15
20
  </div>
16
- <ul class="podcast-list" v-show="loaded">
21
+ <ul
22
+ v-show="loaded"
23
+ class="podcast-list"
24
+ >
17
25
  <PodcastItem
18
- v-bind:podcast="p"
19
26
  v-for="p in podcasts"
20
- v-bind:key="p.podcastId"
27
+ :key="p.podcastId"
28
+ :podcast="p"
21
29
  />
22
30
  </ul>
23
31
  <button
32
+ v-show="!allFetched && loaded"
24
33
  class="btn"
25
34
  :class="buttonPlus ? 'btn-linkPlus mt-3' : 'btn-more'"
26
- @click="displayMore"
27
35
  :disabled="inFetching"
28
- v-show="!allFetched && loaded"
29
36
  :aria-label="$t('See more')"
37
+ @click="displayMore"
30
38
  >
31
- <template v-if="buttonPlus">{{ $t('See more') }}</template>
32
- <div class="saooti-plus"></div>
39
+ <template v-if="buttonPlus">
40
+ {{ $t('See more') }}
41
+ </template>
42
+ <div class="saooti-plus" />
33
43
  </button>
34
44
  </div>
35
45
  </template>
36
46
 
37
- <style lang="scss">
38
- .podcast-list {
39
- align-self: stretch;
40
- flex-grow: 1;
41
- margin: 1em 0 0;
42
- padding: 0;
43
- /*For ie11 */
44
- display: flex;
45
- flex-wrap: wrap;
46
- /* end */
47
- display: grid; /* 1 */
48
- grid-template-columns: repeat(auto-fill, 13rem); /* 2 */
49
- grid-gap: 1rem; /* 3 */
50
- justify-content: space-between; /* 4 */
51
- }
52
- /** PHONES*/
53
- @media (max-width: 960px) {
54
- .podcast-list {
55
- align-self: auto;
56
- justify-items: center;
57
- display: flex;
58
- justify-content: space-around;
59
- }
60
- }
61
- </style>
62
-
63
47
  <script lang="ts">
64
48
  const octopusApi = require('@saooti/octopus-api');
65
49
  import podcastApi from '@/api/podcasts';
66
50
  import PodcastItem from './PodcastItem.vue';
67
51
  import { state } from '../../../store/paramStore';
68
52
 
53
+ import { Podcast } from '@/store/class/podcast';
69
54
  import { defineComponent } from 'vue'
70
55
  export default defineComponent({
71
56
  name: 'PodcastList',
72
57
 
73
- props: {
74
- first: { default: 0 },
75
- size: { default: 5 },
76
- organisationId: { default: undefined as any },
77
- emissionId: { default: undefined as any },
78
- iabId: { default: undefined as any },
79
- participantId: { default: undefined as any },
80
- query: { default: undefined as any },
81
- monetization: { default: undefined as any },
82
- popularSort: { default: false },
83
- reload: { default: false },
84
- rubriqueId: { default: undefined as any },
85
- rubriquageId: { default: undefined as any },
86
- before: { default: undefined as any },
87
- after: { default: undefined as any },
88
- includeHidden: { default: false },
89
- showCount: { default: false },
90
- noRubrique: { default: undefined as any },
91
- sortCriteria: { default: undefined as any },
92
- notValid: { default: undefined as any },
93
- },
94
- emits: ['fetch', 'emptyList'],
95
-
96
58
  components: {
97
59
  PodcastItem,
98
60
  },
99
61
 
100
- created() {
101
- this.fetchContent(true);
62
+ props: {
63
+ first: { default: 0, type: Number},
64
+ size: { default: 12, type: Number},
65
+ organisationId: { default: undefined, type: String},
66
+ emissionId: { default: undefined, type: Number},
67
+ iabId: { default: undefined, type: Number},
68
+ participantId: { default: undefined, type: Number},
69
+ query: { default: undefined, type: String},
70
+ monetization: { default: undefined, type: String},
71
+ popularSort: { default: false, type: Boolean},
72
+ reload: { default: false, type: Boolean},
73
+ before: { default: undefined, type: String},
74
+ after: { default: undefined, type: String},
75
+ includeHidden: { default: false, type: Boolean},
76
+ showCount: { default: false, type: Boolean },
77
+ sortCriteria: { default: undefined, type: String},
78
+ notValid: { default: undefined , type: Boolean},
79
+ rubriqueId: { default: () => [], type: Array as ()=>Array<number> },
80
+ rubriquageId:{ default: () => [], type: Array as ()=>Array<number> },
81
+ noRubriquageId: { default: () => [], type: Array as ()=>Array<number> },
102
82
  },
83
+ emits: ['fetch', 'emptyList'],
103
84
 
104
85
  data() {
105
86
  return {
106
- loading: true,
107
- loaded: true,
108
- dfirst: this.$props.first,
109
- dsize: this.$props.size,
110
- totalCount: 0,
111
- podcasts: [] as any,
112
- inFetching: false,
87
+ loading: true as boolean,
88
+ loaded: false as boolean,
89
+ dfirst: this.first as number,
90
+ dsize: this.size as number,
91
+ totalCount: 0 as number,
92
+ podcasts: [] as Array<Podcast>,
93
+ inFetching: false as boolean,
113
94
  };
114
95
  },
115
-
96
+
116
97
  computed: {
117
- allFetched():boolean {
98
+ allFetched(): boolean {
118
99
  return this.dfirst >= this.totalCount;
119
100
  },
120
- buttonPlus() {
101
+ buttonPlus(): boolean {
121
102
  return state.generalParameters.buttonPlus;
122
103
  },
123
- changed():any {
104
+ changed(): string {
124
105
  return `${this.first}|${this.size}|${this.organisation}|${this.emissionId}|${this.sortCriteria}|${this.sort}
125
106
  ${this.iabId}|${this.participantId}|${this.query}|${this.monetization}|${this.popularSort}|
126
- ${this.rubriqueId}|${this.rubriquageId}|${this.before}|${this.after}|${this.includeHidden}|${this.noRubrique}|${this.notValid}`;
107
+ ${this.rubriqueId}|${this.rubriquageId}|${this.before}|${this.after}|${this.includeHidden}|${this.noRubriquageId}|${this.notValid}`;
127
108
  },
128
- filterOrga():any {
109
+ filterOrga(): string {
129
110
  return this.$store.state.filter.organisationId;
130
111
  },
131
- organisation():any {
112
+ organisation(): string|undefined {
132
113
  if (this.organisationId) return this.organisationId;
133
114
  if (this.filterOrga) return this.filterOrga;
134
115
  return undefined;
135
116
  },
136
- sort():string {
137
- if (this.popularSort) return 'POPULARITY';
138
- return this.sortCriteria;
117
+ sort(): string {
118
+ if (!this.popularSort && this.sortCriteria) return this.sortCriteria;
119
+ return 'POPULARITY';
139
120
  },
140
- sortText():string {
121
+ sortText(): string {
141
122
  switch (this.sortCriteria) {
142
123
  case 'SCORE':
143
- return this.$t('sort by score');
124
+ return this.$t('sort by score').toString();
144
125
  case 'DATE':
145
- return this.$t('sort by date');
126
+ return this.$t('sort by date').toString();
146
127
  case 'NAME':
147
- return this.$t('sort by alphabetical');
128
+ return this.$t('sort by alphabetical').toString();
148
129
  default:
149
- return this.$t('sort by date');
130
+ return this.$t('sort by date').toString();
150
131
  }
151
132
  },
152
- isProduction() {
133
+ isProduction(): boolean {
153
134
  return state.generalParameters.isProduction;
154
135
  },
155
136
  },
156
-
137
+ watch: {
138
+ changed(): void {
139
+ this.fetchContent(true);
140
+ },
141
+ reload(): void {
142
+ this.fetchContent(true);
143
+ },
144
+ },
145
+
146
+ created() {
147
+ this.fetchContent(true);
148
+ },
157
149
  methods: {
158
- async fetchContent(reset: boolean) {
150
+ async fetchContent(reset: boolean): Promise<void> {
159
151
  this.inFetching = true;
160
152
  if (reset) {
161
153
  this.podcasts.length = 0;
@@ -163,7 +155,7 @@ export default defineComponent({
163
155
  this.loading = true;
164
156
  this.loaded = false;
165
157
  }
166
- let param:any = {
158
+ const param: any = {
167
159
  first: this.dfirst,
168
160
  size: this.dsize,
169
161
  organisationId: this.organisation,
@@ -173,11 +165,11 @@ export default defineComponent({
173
165
  query: this.query,
174
166
  monetisable: this.monetization,
175
167
  sort: this.sort,
176
- rubriqueId: this.rubriqueId,
177
- rubriquageId: this.rubriquageId,
178
168
  before: this.before,
179
169
  after: this.after,
180
- noRubrique: this.noRubrique,
170
+ noRubriquageId: this.noRubriquageId.length ? this.noRubriquageId : undefined,
171
+ rubriqueId: this.rubriqueId.length ? this.rubriqueId : undefined,
172
+ rubriquageId: this.rubriquageId.length ? this.rubriquageId : undefined,
181
173
  };
182
174
  if (undefined !== this.notValid) {
183
175
  param.validity = !this.notValid;
@@ -187,15 +179,14 @@ export default defineComponent({
187
179
  }
188
180
  if (this.includeHidden) {
189
181
  param.includeHidden = this.includeHidden;
190
- const data = await podcastApi.fetchPodcastsAdmin(this.$store, param);
182
+ const data = await podcastApi.fetchPodcastsAdmin(this.$store.state, param);
191
183
  this.afterFetching(reset, data);
192
184
  } else {
193
185
  const data = await octopusApi.fetchPodcasts(param);
194
186
  this.afterFetching(reset, data);
195
187
  }
196
188
  },
197
-
198
- afterFetching(reset: any, data: any) {
189
+ afterFetching(reset: boolean, data: any): void {
199
190
  if (reset) {
200
191
  this.podcasts.length = 0;
201
192
  this.dfirst = 0;
@@ -204,7 +195,7 @@ export default defineComponent({
204
195
  }
205
196
  this.loading = false;
206
197
  this.loaded = true;
207
- this.podcasts = this.podcasts.concat(data.result).filter((p: null) => {
198
+ this.podcasts = this.podcasts.concat(data.result).filter((p: Podcast|null) => {
208
199
  return null !== p;
209
200
  });
210
201
  this.$emit('fetch', this.podcasts);
@@ -215,24 +206,12 @@ export default defineComponent({
215
206
  }
216
207
  this.inFetching = false;
217
208
  },
218
-
219
- displayMore(event: { preventDefault: () => void; }) {
209
+ displayMore(event: { preventDefault: () => void }): void {
220
210
  event.preventDefault();
221
211
  this.fetchContent(false);
222
212
  },
223
213
  },
224
-
225
- watch: {
226
- changed: {
227
- handler() {
228
- this.fetchContent(true);
229
- },
230
- },
231
- reload: {
232
- handler() {
233
- this.fetchContent(true);
234
- },
235
- },
236
- },
237
- });
214
+ })
238
215
  </script>
216
+
217
+ <style lang="scss"></style>
@@ -1,22 +1,41 @@
1
1
  <template>
2
2
  <div v-if="undefined !== tagList">
3
3
  <ul class="d-flex flex-wrap">
4
- <li class="tagListElement" v-for="tag in tagList" :key="tag">
4
+ <li
5
+ v-for="tag in tagList"
6
+ :key="tag"
7
+ class="tagListElement"
8
+ >
5
9
  <router-link
6
10
  :to="{
7
11
  name: 'search',
8
12
  query: {
9
13
  query: tag,
10
- productor: this.$store.state.filter.organisationId,
14
+ productor: $store.state.filter.organisationId,
11
15
  },
12
16
  }"
13
17
  class="tagListLink"
14
- >{{ tag }}</router-link
15
18
  >
19
+ {{ tag }}
20
+ </router-link>
16
21
  </li>
17
22
  </ul>
18
23
  </div>
19
24
  </template>
25
+
26
+ <script lang="ts">
27
+ import { defineComponent } from 'vue'
28
+ export default defineComponent({
29
+ name: 'TagList',
30
+ components: {},
31
+ props: {
32
+ tagList: { default: () => [], type: Array as ()=>Array<string>},
33
+ },
34
+
35
+ methods: {},
36
+ })
37
+ </script>
38
+
20
39
  <style lang="scss">
21
40
  .tagListElement {
22
41
  display: flex;
@@ -33,16 +52,4 @@
33
52
  color: #666;
34
53
  }
35
54
  }
36
- </style>
37
-
38
- <script lang="ts">
39
- import { defineComponent } from 'vue'
40
- export default defineComponent({
41
- name: 'TagList',
42
- components: {},
43
-
44
- props: ['tagList'],
45
-
46
- methods: {},
47
- });
48
- </script>
55
+ </style>