@saooti/octopus-sdk 30.0.4 → 30.0.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (151) hide show
  1. package/README.md +5 -0
  2. package/index.ts +13 -2
  3. package/package.json +1 -1
  4. package/src/App.vue +4 -4
  5. package/src/api/comments.ts +1 -1
  6. package/src/assets/bootstrap-diff.scss +2 -1
  7. package/src/assets/form.scss +7 -15
  8. package/src/assets/general.scss +14 -20
  9. package/src/assets/multiselect.scss +2 -2
  10. package/src/assets/share.scss +1 -12
  11. package/src/components/display/categories/CategoryChooser.vue +1 -1
  12. package/src/components/display/categories/CategoryFilter.vue +4 -4
  13. package/src/components/display/categories/CategoryList.vue +1 -1
  14. package/src/components/display/comments/CommentInput.vue +3 -3
  15. package/src/components/display/comments/CommentItem.vue +4 -3
  16. package/src/components/display/comments/CommentList.vue +4 -4
  17. package/src/components/display/comments/CommentParentInfo.vue +1 -1
  18. package/src/components/display/comments/CommentPlayer.vue +2 -2
  19. package/src/components/display/comments/CommentSection.vue +3 -3
  20. package/src/components/display/edit/EditBox.vue +1 -1
  21. package/src/components/display/edit/EditCommentBox.vue +1 -1
  22. package/src/components/display/emission/EmissionChooser.vue +2 -2
  23. package/src/components/display/emission/EmissionInlineList.vue +3 -3
  24. package/src/components/display/emission/EmissionItem.vue +3 -3
  25. package/src/components/display/emission/EmissionList.vue +4 -4
  26. package/src/components/display/emission/EmissionPlayerItem.vue +3 -3
  27. package/src/components/display/filter/AdvancedSearch.vue +40 -106
  28. package/src/components/display/filter/CategoryFilter.vue +10 -14
  29. package/src/components/display/filter/MonetizableFilter.vue +1 -1
  30. package/src/components/display/filter/ProductorSearch.vue +21 -40
  31. package/src/components/display/filter/RubriqueChoice.vue +4 -4
  32. package/src/components/display/filter/RubriqueFilter.vue +10 -14
  33. package/src/components/display/live/LiveHorizontalList.vue +1 -1
  34. package/src/components/display/live/LiveItem.vue +2 -2
  35. package/src/components/display/live/LiveList.vue +1 -1
  36. package/src/components/display/organisation/OrganisationChooser.vue +1 -1
  37. package/src/components/display/organisation/OrganisationChooserLight.vue +9 -3
  38. package/src/components/display/participant/ParticipantItem.vue +1 -1
  39. package/src/components/display/participant/ParticipantList.vue +1 -1
  40. package/src/components/display/playlist/PlaylistItem.vue +2 -2
  41. package/src/components/display/playlist/PlaylistList.vue +1 -1
  42. package/src/components/display/playlist/PodcastList.vue +10 -21
  43. package/src/components/display/podcasts/AnimatorsItem.vue +1 -1
  44. package/src/components/display/podcasts/ParticipantDescription.vue +2 -1
  45. package/src/components/display/podcasts/PodcastFilterList.vue +11 -20
  46. package/src/components/display/podcasts/PodcastImage.vue +3 -3
  47. package/src/components/display/podcasts/PodcastInlineList.vue +3 -3
  48. package/src/components/display/podcasts/PodcastItem.vue +3 -3
  49. package/src/components/display/podcasts/PodcastList.vue +2 -2
  50. package/src/components/display/podcasts/PodcastModuleBox.vue +2 -2
  51. package/src/components/display/rubriques/RubriqueChooser.vue +1 -1
  52. package/src/components/display/rubriques/RubriqueList.vue +4 -4
  53. package/src/components/display/sharing/PlayerParameters.vue +31 -103
  54. package/src/components/display/sharing/ShareButtons.vue +3 -3
  55. package/src/components/display/sharing/ShareDistribution.vue +1 -1
  56. package/src/components/display/sharing/SharePlayer.vue +35 -51
  57. package/src/components/display/sharing/SharePlayerColors.vue +2 -2
  58. package/src/components/display/sharing/SharePlayerTypes.vue +5 -5
  59. package/src/components/display/sharing/SubscribeButtons.vue +2 -2
  60. package/src/components/form/ClassicCheckbox.vue +61 -0
  61. package/src/components/form/ClassicLoading.vue +28 -0
  62. package/src/components/form/ClassicRadio.vue +61 -0
  63. package/src/components/form/ClassicSearch.vue +82 -0
  64. package/src/components/misc/ErrorMessage.vue +1 -1
  65. package/src/components/misc/Footer.vue +28 -37
  66. package/src/components/misc/HomeDropdown.vue +44 -93
  67. package/src/components/misc/LeftMenu.vue +111 -144
  68. package/src/components/misc/Player.vue +16 -30
  69. package/src/components/misc/PlayerButtons.vue +16 -39
  70. package/src/components/misc/PlayerClockAndTimeline.vue +1 -1
  71. package/src/components/misc/PlayerProgressBar.vue +16 -51
  72. package/src/components/misc/Popover.vue +8 -2
  73. package/src/components/misc/TopBar.vue +142 -224
  74. package/src/components/misc/modal/ClipboardModal.vue +1 -1
  75. package/src/components/misc/modal/NewsletterModal.vue +15 -29
  76. package/src/components/misc/modal/QrCodeModal.vue +2 -2
  77. package/src/components/misc/modal/ShareModalPlayer.vue +1 -1
  78. package/src/components/mixins/init.ts +1 -1
  79. package/src/components/mixins/organisationFilter.ts +1 -1
  80. package/src/components/pages/Category.vue +4 -9
  81. package/src/components/pages/Emission.vue +13 -25
  82. package/src/components/pages/Emissions.vue +10 -19
  83. package/src/components/pages/Home.vue +5 -7
  84. package/src/components/pages/Lives.vue +3 -5
  85. package/src/components/pages/Participant.vue +19 -27
  86. package/src/components/pages/Participants.vue +7 -15
  87. package/src/components/pages/Playlist.vue +17 -30
  88. package/src/components/pages/Playlists.vue +1 -11
  89. package/src/components/pages/Podcast.vue +20 -34
  90. package/src/components/pages/Podcasts.vue +12 -26
  91. package/src/components/pages/Search.vue +26 -64
  92. package/src/store/class/{adserverConfig.ts → adserver/adserverConfig.ts} +0 -0
  93. package/src/store/class/adserver/adserverOtherEmission.ts +13 -0
  94. package/src/store/class/{adserverTiming.ts → adserver/adserverTiming.ts} +0 -0
  95. package/src/store/class/cartouchier/cartouche.ts +15 -0
  96. package/src/store/class/cartouchier/cartouchier.ts +9 -0
  97. package/src/store/class/conference/conference.ts +35 -0
  98. package/src/store/class/conference/conferenceMessage.ts +10 -0
  99. package/src/store/class/conference/conferenceParticipant.ts +18 -0
  100. package/src/store/class/conference/pad.ts +15 -0
  101. package/src/store/class/conference/studioCall.ts +7 -0
  102. package/src/store/class/contract/contract.ts +7 -0
  103. package/src/store/class/contract/contractOrganisation.ts +7 -0
  104. package/src/store/class/ftp/ftpEmission.ts +41 -0
  105. package/src/store/class/ftp/ftpParam.ts +12 -0
  106. package/src/store/class/ftp/testFtpEmission.ts +5 -0
  107. package/src/store/class/general/audioView.ts +21 -0
  108. package/src/store/class/{category.ts → general/category.ts} +1 -1
  109. package/src/store/class/general/comment.ts +16 -0
  110. package/src/store/class/general/customPlayer.ts +8 -0
  111. package/src/store/class/{emission.ts → general/emission.ts} +2 -2
  112. package/src/store/class/general/fetchParam.ts +33 -0
  113. package/src/store/class/general/initState.ts +25 -0
  114. package/src/store/class/general/ituneCategory.ts +5 -0
  115. package/src/store/class/general/media.ts +14 -0
  116. package/src/store/class/general/organisation.ts +19 -0
  117. package/src/store/class/general/pageable.ts +13 -0
  118. package/src/store/class/{participant.ts → general/participant.ts} +0 -0
  119. package/src/store/class/{player.ts → general/player.ts} +0 -0
  120. package/src/store/class/{playlist.ts → general/playlist.ts} +2 -2
  121. package/src/store/class/{podcast.ts → general/podcast.ts} +2 -1
  122. package/src/store/class/general/sortPageable.ts +5 -0
  123. package/src/store/class/general/soundcastCategory.ts +8 -0
  124. package/src/store/class/ouestFrance/ofTag.ts +36 -0
  125. package/src/store/class/ouestFrance/ofTagInfo.ts +9 -0
  126. package/src/store/class/ouestFrance/ofTagPage.ts +7 -0
  127. package/src/store/class/ouestFrance/ofTagSeo.ts +7 -0
  128. package/src/store/class/ouestFrance/ofTagVente.ts +6 -0
  129. package/src/store/class/ouestFrance/ofTagWithParents.ts +26 -0
  130. package/src/store/class/rss/aggregator.ts +28 -0
  131. package/src/store/class/rss/rssEmission.ts +14 -0
  132. package/src/store/class/rss/rssInfo.ts +8 -0
  133. package/src/store/class/{rubriquage.ts → rubrique/rubriquage.ts} +0 -0
  134. package/src/store/class/rubrique/rubriquageFilter.ts +6 -0
  135. package/src/store/class/rubrique/rubrique.ts +8 -0
  136. package/src/store/class/stat/statArrayIncome.ts +6 -0
  137. package/src/store/class/stat/statArrayObject.ts +34 -0
  138. package/src/store/class/stat/statGraph.ts +7 -0
  139. package/src/store/class/{person.ts → user/person.ts} +2 -2
  140. package/src/store/class/user/profile.ts +12 -0
  141. package/src/store/class/user/userKeycloak.ts +24 -0
  142. package/src/store/paramStore.ts +1 -1
  143. package/src/store/typeAppStore.ts +10 -10
  144. package/src/store/class/comment.ts +0 -16
  145. package/src/store/class/conference.ts +0 -31
  146. package/src/store/class/customPlayer.ts +0 -8
  147. package/src/store/class/fetchParam.ts +0 -33
  148. package/src/store/class/media.ts +0 -14
  149. package/src/store/class/organisation.ts +0 -19
  150. package/src/store/class/rubriquageFilter.ts +0 -6
  151. package/src/store/class/rubrique.ts +0 -9
@@ -1,14 +1,13 @@
1
1
  <template>
2
- <div>
2
+ <div class="page-box">
3
3
  <div
4
4
  v-if="loaded && !error"
5
- class="page-box"
6
5
  >
7
6
  <h1 v-if="!isOuestFrance">
8
7
  {{ $t('Emission') }}
9
8
  </h1>
10
9
  <div class="d-flex">
11
- <div class="d-flex flex-column flex-grow">
10
+ <div class="d-flex flex-column flex-grow-1">
12
11
  <EditBox
13
12
  v-if="editRight && isEditBox"
14
13
  :emission="emission"
@@ -48,7 +47,7 @@
48
47
  :emission="emission"
49
48
  />
50
49
  </div>
51
- <div class="d-flex flex-column share-container">
50
+ <div class="d-flex flex-column flex-grow-mobile">
52
51
  <SharePlayer
53
52
  v-if="isSharePlayer && (authenticated || notExclusive)"
54
53
  :emission="emission"
@@ -90,21 +89,10 @@
90
89
  @fetch="fetch"
91
90
  />
92
91
  </div>
93
- <div
94
- v-if="!loaded"
95
- class="d-flex justify-content-center"
96
- >
97
- <div class="spinner-border me-3" />
98
- <h3 class="mt-2">
99
- {{ $t('Loading content ...') }}
100
- </h3>
101
- </div>
102
- <div
103
- v-if="error"
104
- class="text-center"
105
- >
106
- <h3>{{ $t("Emission doesn't exist") }}</h3>
107
- </div>
92
+ <ClassicLoading
93
+ :loading-text="!loaded?$t('Loading content ...'):undefined"
94
+ :error-text="error?$t(`Emission doesn't exist`):undefined"
95
+ />
108
96
  </div>
109
97
  </template>
110
98
 
@@ -112,8 +100,8 @@
112
100
  import octopusApi from '@saooti/octopus-api';
113
101
  import { state } from '../../store/paramStore';
114
102
  import { displayMethods } from '../mixins/functions';
115
- import { Emission } from '@/store/class/emission';
116
-
103
+ import { Emission } from '@/store/class/general/emission';
104
+ import ClassicLoading from '../form/ClassicLoading.vue';
117
105
  import { defineComponent, defineAsyncComponent } from 'vue';
118
106
  const PodcastFilterList = defineAsyncComponent(() => import('../display/podcasts/PodcastFilterList.vue'));
119
107
  const SharePlayer = defineAsyncComponent(() => import('../display/sharing/SharePlayer.vue'));
@@ -133,6 +121,7 @@ export default defineComponent({
133
121
  PodcastList,
134
122
  SubscribeButtons,
135
123
  LiveHorizontalList,
124
+ ClassicLoading
136
125
  },
137
126
  mixins: [displayMethods],
138
127
  props: {
@@ -203,8 +192,9 @@ export default defineComponent({
203
192
  if (
204
193
  (this.authenticated && this.emission && this.organisationId === this.emission.orga.id) ||
205
194
  state.generalParameters.isAdmin
206
- )
195
+ ){
207
196
  return true;
197
+ }
208
198
  return false;
209
199
  },
210
200
  countLink(): number {
@@ -272,6 +262,4 @@ export default defineComponent({
272
262
  },
273
263
  },
274
264
  })
275
- </script>
276
-
277
- <style lang="scss"></style>
265
+ </script>
@@ -1,10 +1,12 @@
1
1
  <template>
2
2
  <div class="page-box">
3
- <h1 v-if="undefined === titlePage">
4
- {{ $t('All emissions') }}
5
- </h1>
6
- <h1 v-else>
7
- {{ titlePage }}
3
+ <h1>
4
+ <template v-if="undefined === titlePage">
5
+ {{ $t('All emissions') }}
6
+ </template>
7
+ <template v-else>
8
+ {{ titlePage }}
9
+ </template>
8
10
  </h1>
9
11
  <ProductorSearch
10
12
  v-if="isProductorSearch"
@@ -53,9 +55,8 @@
53
55
  import EmissionList from '../display/emission/EmissionList.vue';
54
56
  import AdvancedSearch from '../display/filter/AdvancedSearch.vue';
55
57
  import { state } from '../../store/paramStore';
56
-
57
- import { Category } from '@/store/class/category';
58
- import { RubriquageFilter } from '@/store/class/rubriquageFilter';
58
+ import { Category } from '@/store/class/general/category';
59
+ import { RubriquageFilter } from '@/store/class/rubrique/rubriquageFilter';
59
60
  import { defineComponent, defineAsyncComponent } from 'vue';
60
61
  const ProductorSearch = defineAsyncComponent(() => import('../display/filter/ProductorSearch.vue'));
61
62
  export default defineComponent({
@@ -65,8 +66,6 @@ export default defineComponent({
65
66
  AdvancedSearch,
66
67
  },
67
68
  props: {
68
- firstRoute: { default: 0, type: Number},
69
- sizeRoute: { default: 12, type: Number},
70
69
  productor: { default: undefined, type: String},
71
70
  isEducation: { default: false, type: Boolean},
72
71
  },
@@ -110,12 +109,6 @@ export default defineComponent({
110
109
  },
111
110
 
112
111
  created() {
113
- if (this.firstRoute) {
114
- this.first = this.firstRoute;
115
- }
116
- if (this.sizeRoute) {
117
- this.size = this.sizeRoute;
118
- }
119
112
  if(this.categoryFilter){
120
113
  this.iabId = this.categoryFilter.id;
121
114
  }
@@ -182,6 +175,4 @@ export default defineComponent({
182
175
  },
183
176
  },
184
177
  })
185
- </script>
186
-
187
- <style lang="scss"></style>
178
+ </script>
@@ -39,11 +39,11 @@
39
39
  import PodcastInlineList from '../display/podcasts/PodcastInlineList.vue';
40
40
  import { state } from '../../store/paramStore';
41
41
 
42
- import { RubriquageFilter } from '@/store/class/rubriquageFilter';
43
- import { Rubriquage } from '@/store/class/rubriquage';
44
- import { Rubrique } from '@/store/class/rubrique';
42
+ import { RubriquageFilter } from '@/store/class/rubrique/rubriquageFilter';
43
+ import { Rubriquage } from '@/store/class/rubrique/rubriquage';
44
+ import { Rubrique } from '@/store/class/rubrique/rubrique';
45
45
  import { defineComponent } from 'vue'
46
- import { Category } from '@/store/class/category';
46
+ import { Category } from '@/store/class/general/category';
47
47
  export default defineComponent({
48
48
  name: 'Home',
49
49
 
@@ -107,6 +107,4 @@ export default defineComponent({
107
107
  },
108
108
  }
109
109
  })
110
- </script>
111
-
112
- <style lang="scss"></style>
110
+ </script>
@@ -35,9 +35,9 @@
35
35
  <script lang="ts">
36
36
  import { state } from '../../store/paramStore';
37
37
 
38
- import { Organisation } from '@/store/class/organisation';
38
+ import { Organisation } from '@/store/class/general/organisation';
39
39
  import { defineComponent, defineAsyncComponent } from 'vue';
40
- import { Conference } from '@/store/class/conference';
40
+ import { Conference } from '@/store/class/conference/conference';
41
41
  const LiveList = defineAsyncComponent(() => import('../display/live/LiveList.vue'));
42
42
  const OrganisationChooser = defineAsyncComponent(() => import('../display/organisation/OrganisationChooser.vue'));
43
43
  export default defineComponent({
@@ -99,6 +99,4 @@ export default defineComponent({
99
99
  },
100
100
  },
101
101
  })
102
- </script>
103
-
104
- <style lang="scss"></style>
102
+ </script>
@@ -1,17 +1,18 @@
1
1
  <template>
2
- <div>
2
+ <div class="page-box">
3
3
  <div
4
4
  v-if="loaded && !error"
5
- class="page-box intervenant-page"
6
5
  >
7
- <h1 v-if="undefined === titlePage ||!lightStyle">
8
- {{ $t('Animator') }}
9
- </h1>
10
- <h1 v-else>
11
- {{ titlePage }}
6
+ <h1>
7
+ <template v-if="undefined === titlePage ||!lightStyle">
8
+ {{ $t('Animator') }}
9
+ </template>
10
+ <template v-else>
11
+ {{ titlePage }}
12
+ </template>
12
13
  </h1>
13
14
  <div
14
- class="d-flex w-100 flex-column align-items-center justify-content-center"
15
+ class="d-flex flex-column align-items-center"
15
16
  >
16
17
  <div
17
18
  class="img-box-circle mb-3"
@@ -24,7 +25,7 @@
24
25
  </h2>
25
26
  <!-- eslint-disable vue/no-v-html -->
26
27
  <div
27
- class="h6 participant-desc html-wysiwyg-content"
28
+ class="participant-desc html-wysiwyg-content"
28
29
  v-html="urlify(description)"
29
30
  />
30
31
  <!-- eslint-enable -->
@@ -71,21 +72,10 @@
71
72
  :reload="reload"
72
73
  />
73
74
  </div>
74
- <div
75
- v-if="!loaded"
76
- class="d-flex justify-content-center"
77
- >
78
- <div class="spinner-border me-3" />
79
- <h3 class="mt-2">
80
- {{ $t('Loading content ...') }}
81
- </h3>
82
- </div>
83
- <div
84
- v-if="error"
85
- class="text-center"
86
- >
87
- <h3>{{ $t("Animator doesn't exist") }}</h3>
88
- </div>
75
+ <ClassicLoading
76
+ :loading-text="!loaded?$t('Loading content ...'):undefined"
77
+ :error-text="error?$t(`Animator doesn't exist`):undefined"
78
+ />
89
79
  </div>
90
80
  </template>
91
81
 
@@ -93,8 +83,8 @@
93
83
  import octopusApi from '@saooti/octopus-api';
94
84
  import { state } from '../../store/paramStore';
95
85
  import { displayMethods } from '../mixins/functions';
96
- import { Participant } from '@/store/class/participant';
97
-
86
+ import { Participant } from '@/store/class/general/participant';
87
+ import ClassicLoading from '../form/ClassicLoading.vue';
98
88
  import { defineComponent, defineAsyncComponent } from 'vue';
99
89
  const ShareButtons = defineAsyncComponent(() => import('../display/sharing/ShareButtons.vue'));
100
90
  const PodcastFilterList = defineAsyncComponent(() => import('../display/podcasts/PodcastFilterList.vue'));
@@ -106,6 +96,7 @@ export default defineComponent({
106
96
  PodcastFilterList,
107
97
  EditBox,
108
98
  PodcastList,
99
+ ClassicLoading
109
100
  },
110
101
  mixins: [displayMethods],
111
102
  props: {
@@ -165,8 +156,9 @@ export default defineComponent({
165
156
  (this.authenticated &&
166
157
  this.organisationId === this.participant.orga.id) ||
167
158
  state.generalParameters.isAdmin
168
- )
159
+ ){
169
160
  return true;
161
+ }
170
162
  return false;
171
163
  },
172
164
  },
@@ -1,10 +1,12 @@
1
1
  <template>
2
2
  <div class="page-box">
3
3
  <h1 v-if="undefined === titlePage">
4
- {{ $t('All participants') }}
5
- </h1>
6
- <h1 v-else>
7
- {{ titlePage }}
4
+ <template v-if="undefined === titlePage">
5
+ {{ $t('All participants') }}
6
+ </template>
7
+ <template v-else>
8
+ {{ titlePage }}
9
+ </template>
8
10
  </h1>
9
11
  <ProductorSearch
10
12
  :organisation-id="organisationId"
@@ -34,8 +36,6 @@ export default defineComponent({
34
36
  ParticipantList,
35
37
  },
36
38
  props: {
37
- firstRoute: { default: 0, type: Number},
38
- sizeRoute: { default: 12, type: Number},
39
39
  productor: { default: undefined, type: String},
40
40
  },
41
41
 
@@ -55,12 +55,6 @@ export default defineComponent({
55
55
  },
56
56
 
57
57
  created() {
58
- if (this.firstRoute) {
59
- this.first = this.firstRoute;
60
- }
61
- if (this.sizeRoute) {
62
- this.size = this.sizeRoute;
63
- }
64
58
  if (this.productor) {
65
59
  this.organisationId = this.productor;
66
60
  } else if (this.$store.state.filter.organisationId) {
@@ -77,6 +71,4 @@ export default defineComponent({
77
71
  },
78
72
  },
79
73
  })
80
- </script>
81
-
82
- <style lang="scss"></style>
74
+ </script>
@@ -1,16 +1,15 @@
1
1
  <template>
2
- <div>
2
+ <div class="page-box">
3
3
  <div
4
4
  v-if="loaded && !error"
5
- class="page-box"
6
5
  >
7
6
  <h1>{{ $t('Playlist') }}</h1>
8
7
  <div class="d-flex">
9
- <div class="d-flex flex-column flex-grow">
8
+ <div class="d-flex flex-column flex-grow-1">
10
9
  <EditBox
11
10
  v-if="editRight && isEditBox"
12
11
  :playlist="playlist"
13
- :is-ready="isReady"
12
+ :is-ready="true"
14
13
  />
15
14
  <div class="module-box">
16
15
  <h2>{{ name }}</h2>
@@ -29,7 +28,7 @@
29
28
  </div>
30
29
  </div>
31
30
  </div>
32
- <div class="d-flex flex-column share-container">
31
+ <div class="d-flex flex-column flex-grow-mobile">
33
32
  <SharePlayer
34
33
  v-if="isSharePlayer && authenticated"
35
34
  :playlist="playlist"
@@ -41,30 +40,20 @@
41
40
  </div>
42
41
  <PodcastList :playlist="playlist" />
43
42
  </div>
44
- <div
45
- v-if="!loaded"
46
- class="d-flex justify-content-center"
47
- >
48
- <div class="spinner-border me-3" />
49
- <h3 class="mt-2">
50
- {{ $t('Loading content ...') }}
51
- </h3>
52
- </div>
53
- <div
54
- v-if="error"
55
- class="text-center"
56
- >
57
- <h3>{{ $t("Playlist doesn't exist") }}</h3>
58
- </div>
43
+ <ClassicLoading
44
+ :loading-text="!loaded?$t('Loading content ...'):undefined"
45
+ :error-text="error?$t(`Playlist doesn't exist`):undefined"
46
+ />
59
47
  </div>
60
48
  </template>
61
49
 
62
50
  <script lang="ts">
51
+ import ClassicLoading from '../form/ClassicLoading.vue';
63
52
  import PodcastList from '../display/playlist/PodcastList.vue';
64
53
  import octopusApi from '@saooti/octopus-api';
65
54
  import { state } from '../../store/paramStore';
66
55
  import { displayMethods } from '../mixins/functions';
67
- import { Playlist } from '@/store/class/playlist';
56
+ import { Playlist } from '@/store/class/general/playlist';
68
57
  import { defineComponent, defineAsyncComponent } from 'vue';
69
58
  const ShareButtons = defineAsyncComponent(() => import('../display/sharing/ShareButtons.vue'));
70
59
  const EditBox = defineAsyncComponent(() => import('@/components/display/edit/EditBox.vue'));
@@ -75,6 +64,7 @@ export default defineComponent({
75
64
  EditBox,
76
65
  PodcastList,
77
66
  SharePlayer,
67
+ ClassicLoading
78
68
  },
79
69
  mixins:[displayMethods],
80
70
  props: {
@@ -88,7 +78,6 @@ export default defineComponent({
88
78
  loaded: false as boolean,
89
79
  playlist: undefined as Playlist | undefined,
90
80
  error: false as boolean,
91
- isReady: true as boolean,
92
81
  };
93
82
  },
94
83
 
@@ -123,15 +112,14 @@ export default defineComponent({
123
112
  (state.generalParameters.isPlaylist && this.playlist &&
124
113
  this.organisationId === this.playlist.organisation.id) ||
125
114
  state.generalParameters.isAdmin
126
- )
115
+ ){
127
116
  return true;
117
+ }
128
118
  return false;
129
119
  },
130
120
  },
131
121
  watch: {
132
122
  playlistId() {
133
- this.loaded = false;
134
- this.error = false;
135
123
  this.getPlaylistDetails();
136
124
  },
137
125
  },
@@ -142,17 +130,16 @@ export default defineComponent({
142
130
  methods: {
143
131
  async getPlaylistDetails(): Promise<void> {
144
132
  try {
133
+ this.loaded = false;
134
+ this.error = false;
145
135
  const data: Playlist = await octopusApi.fetchPlaylist(this.playlistId ? this.playlistId.toString(): "");
146
136
  this.playlist = data;
147
137
  this.$emit('playlistTitle', this.playlist.title);
148
- this.loaded = true;
149
138
  } catch {
150
139
  this.error = true;
151
- this.loaded = true;
152
140
  }
141
+ this.loaded = true;
153
142
  },
154
143
  },
155
144
  })
156
- </script>
157
-
158
- <style lang="scss"></style>
145
+ </script>
@@ -39,8 +39,6 @@ export default defineComponent({
39
39
  PlaylistList,
40
40
  },
41
41
  props: {
42
- firstRoute: { default: 0, type: Number},
43
- sizeRoute: { default: 12, type: Number},
44
42
  productor: { default: undefined, type: String},
45
43
  },
46
44
 
@@ -67,12 +65,6 @@ export default defineComponent({
67
65
  },
68
66
 
69
67
  created() {
70
- if (this.firstRoute) {
71
- this.first = this.firstRoute;
72
- }
73
- if (this.sizeRoute) {
74
- this.size = this.sizeRoute;
75
- }
76
68
  if (this.productor) {
77
69
  this.organisationId = this.productor;
78
70
  } else if (this.$store.state.filter.organisationId) {
@@ -88,6 +80,4 @@ export default defineComponent({
88
80
  },
89
81
  },
90
82
  })
91
- </script>
92
-
93
- <style lang="scss"></style>
83
+ </script>
@@ -1,9 +1,6 @@
1
1
  <template>
2
- <div>
3
- <div
4
- v-if="loaded && !error"
5
- class="page-box"
6
- >
2
+ <div class="page-box">
3
+ <template v-if="loaded && !error">
7
4
  <h1 v-if="!isOuestFrance">
8
5
  {{ titlePage }}
9
6
  </h1>
@@ -20,7 +17,7 @@
20
17
  !isNotRecorded &&
21
18
  isOctopusAndAnimator
22
19
  "
23
- class="module-box text-center-mobile flex-no-grow"
20
+ class="module-box text-center-mobile flex-grow-0"
24
21
  :podcast="podcast"
25
22
  :live="true"
26
23
  :recording="fetchConference"
@@ -30,7 +27,7 @@
30
27
  <EditBox
31
28
  v-else-if="editRight && isEditBox"
32
29
  :podcast="podcast"
33
- :is-ready="isReady"
30
+ :is-ready="true"
34
31
  @validatePodcast="updatePodcast"
35
32
  />
36
33
  <PodcastModuleBox
@@ -44,8 +41,8 @@
44
41
  />
45
42
  </div>
46
43
  <div
47
- class="d-flex flex-column share-container"
48
- :class="authenticated || notExclusive ? 'flex-grow' : ''"
44
+ class="d-flex flex-column flex-grow-mobile"
45
+ :class="authenticated || notExclusive ? 'flex-grow-1' : ''"
49
46
  >
50
47
  <SharePlayer
51
48
  v-if="isSharePlayer && (authenticated || notExclusive)"
@@ -85,39 +82,29 @@
85
82
  :button-text="$t('All podcast button', { name: c.name })"
86
83
  />
87
84
  </template>
88
- </div>
89
- <div
90
- v-if="!loaded"
91
- class="d-flex justify-content-center"
92
- >
93
- <div class="spinner-border me-3" />
94
- <h3 class="mt-2">
95
- {{ $t('Loading content ...') }}
96
- </h3>
97
- </div>
98
- <div
99
- v-if="error"
100
- class="text-center"
101
- >
102
- <h3>{{ $t("Podcast doesn't exist") }}</h3>
103
- </div>
85
+ </template>
86
+ <ClassicLoading
87
+ :loading-text="!loaded?$t('Loading content ...'):undefined"
88
+ :error-text="error?$t(`Podcast doesn't exist`):undefined"
89
+ />
104
90
  </div>
105
91
  </template>
106
92
 
107
93
  <script lang="ts">
108
94
  import PodcastInlineList from '../display/podcasts/PodcastInlineList.vue';
109
95
  import PodcastModuleBox from '../display/podcasts/PodcastModuleBox.vue';
96
+ import ClassicLoading from '../form/ClassicLoading.vue';
110
97
  import octopusApi from '@saooti/octopus-api';
111
98
  import studioApi from '@/api/studio';
112
99
  import { state } from '../../store/paramStore';
113
100
  import moment from 'moment';
114
- import { Podcast } from '@/store/class/podcast';
115
- import { Conference } from '@/store/class/conference';
101
+ import { Podcast } from '@/store/class/general/podcast';
102
+ import { Conference } from '@/store/class/conference/conference';
116
103
 
117
104
  import { defineComponent, defineAsyncComponent } from 'vue';
118
105
  import CommentSectionVue from '../display/comments/CommentSection.vue';
119
- import { CommentPodcast } from '@/store/class/comment';
120
- import { Category } from '@/store/class/category';
106
+ import { CommentPodcast } from '@/store/class/general/comment';
107
+ import { Category } from '@/store/class/general/category';
121
108
  const ShareButtons = defineAsyncComponent(() => import('../display/sharing/ShareButtons.vue'));
122
109
  const SharePlayer = defineAsyncComponent(() => import('../display/sharing/SharePlayer.vue'));
123
110
  const EditBox = defineAsyncComponent(() => import('@/components/display/edit/EditBox.vue'));
@@ -136,7 +123,8 @@ export default defineComponent({
136
123
  RecordingItemButton,
137
124
  Countdown,
138
125
  CommentSection,
139
- PodcastModuleBox
126
+ PodcastModuleBox,
127
+ ClassicLoading
140
128
  },
141
129
 
142
130
  props: {
@@ -219,13 +207,11 @@ export default defineComponent({
219
207
  (this.authenticated &&
220
208
  this.organisationId === this.podcast.organisation.id) ||
221
209
  state.generalParameters.isAdmin
222
- )
210
+ ){
223
211
  return true;
212
+ }
224
213
  return false;
225
214
  },
226
- isReady(): boolean {
227
- return true;
228
- },
229
215
  countLink(): number {
230
216
  let count = 0;
231
217
  if (this.podcast && this.podcast.emission && this.podcast.emission.annotations) {
@@ -6,17 +6,13 @@
6
6
  isEmissionChooser ? 'justify-content-between' : 'justify-content-center'
7
7
  "
8
8
  >
9
- <h1
10
- v-if="undefined === titlePage"
11
- class="flex-shrink"
12
- >
13
- {{ $t('All podcasts') }}
14
- </h1>
15
- <h1
16
- v-else
17
- class="flex-shrink"
18
- >
19
- {{ titlePage }}
9
+ <h1 class="flex-shrink-0">
10
+ <template v-if="undefined === titlePage">
11
+ {{ $t('All podcasts') }}
12
+ </template>
13
+ <template v-else>
14
+ {{ titlePage }}
15
+ </template>
20
16
  </h1>
21
17
  <EmissionChooser
22
18
  v-if="isEmissionChooser"
@@ -75,9 +71,9 @@ import PodcastList from '../display/podcasts/PodcastList.vue';
75
71
  import { state } from '../../store/paramStore';
76
72
  import ProductorSearch from '../display/filter/ProductorSearch.vue';
77
73
  import AdvancedSearch from '../display/filter/AdvancedSearch.vue';
78
- import { Emission } from '@/store/class/emission';
79
- import { Category } from '@/store/class/category';
80
- import { RubriquageFilter } from '@/store/class/rubriquageFilter';
74
+ import { Emission } from '@/store/class/general/emission';
75
+ import { Category } from '@/store/class/general/category';
76
+ import { RubriquageFilter } from '@/store/class/rubrique/rubriquageFilter';
81
77
 
82
78
  import { defineComponent, defineAsyncComponent } from 'vue';
83
79
  const EmissionChooser = defineAsyncComponent(() => import('../display/emission/EmissionChooser.vue'));
@@ -92,8 +88,6 @@ export default defineComponent({
92
88
  },
93
89
 
94
90
  props: {
95
- firstRoute: { default: 0, type: Number},
96
- sizeRoute: { default: 12, type: Number},
97
91
  productor: { default: undefined, type: String},
98
92
  isEducation: { default: false, type: Boolean},
99
93
  },
@@ -101,7 +95,7 @@ export default defineComponent({
101
95
  data() {
102
96
  return {
103
97
  first: 0 as number,
104
- size: 49 as number,
98
+ size: 12 as number,
105
99
  searchPattern: '' as string,
106
100
  organisationId: undefined as string|undefined,
107
101
  monetization: 'UNDEFINED' as string, // UNDEFINED, YES, NO
@@ -160,12 +154,6 @@ export default defineComponent({
160
154
  },
161
155
 
162
156
  created() {
163
- if (this.firstRoute) {
164
- this.first = this.firstRoute;
165
- }
166
- if (this.sizeRoute) {
167
- this.size = this.sizeRoute;
168
- }
169
157
  if (this.productor) {
170
158
  this.organisationId = this.productor;
171
159
  } else if (this.$store.state.filter.organisationId) {
@@ -247,6 +235,4 @@ export default defineComponent({
247
235
  },
248
236
  },
249
237
  })
250
- </script>
251
-
252
- <style lang="scss"></style>
238
+ </script>