@saooti/octopus-sdk 30.0.7 → 30.0.11

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 (87) hide show
  1. package/README.md +5 -1
  2. package/index.ts +13 -2
  3. package/package.json +1 -1
  4. package/src/assets/bootstrap-diff.scss +17 -25
  5. package/src/assets/form.scss +7 -37
  6. package/src/assets/general.scss +62 -171
  7. package/src/assets/live.scss +39 -0
  8. package/src/assets/modal.scss +14 -18
  9. package/src/assets/multiselect.scss +4 -85
  10. package/src/assets/octopus-library.scss +1 -0
  11. package/src/assets/share.scss +149 -267
  12. package/src/assets/transition.scss +95 -1
  13. package/src/components/display/categories/CategoryChooser.vue +1 -1
  14. package/src/components/display/categories/CategoryList.vue +2 -4
  15. package/src/components/display/comments/CommentInput.vue +2 -2
  16. package/src/components/display/comments/CommentItem.vue +6 -6
  17. package/src/components/display/comments/CommentParentInfo.vue +1 -1
  18. package/src/components/display/comments/CommentPlayer.vue +1 -1
  19. package/src/components/display/edit/EditCommentBox.vue +8 -16
  20. package/src/components/display/emission/EmissionChooser.vue +1 -3
  21. package/src/components/display/emission/EmissionInlineList.vue +12 -3
  22. package/src/components/display/emission/EmissionItem.vue +22 -64
  23. package/src/components/display/emission/EmissionList.vue +59 -68
  24. package/src/components/display/emission/EmissionPlayerItem.vue +10 -9
  25. package/src/components/display/filter/AdvancedSearch.vue +50 -146
  26. package/src/components/display/filter/CategoryFilter.vue +9 -13
  27. package/src/components/display/filter/MonetizableFilter.vue +2 -4
  28. package/src/components/display/filter/ProductorSearch.vue +20 -40
  29. package/src/components/display/filter/RubriqueChoice.vue +5 -7
  30. package/src/components/display/filter/RubriqueFilter.vue +8 -13
  31. package/src/components/display/live/CountDown.vue +4 -2
  32. package/src/components/display/live/LiveHorizontalList.vue +1 -1
  33. package/src/components/display/live/LiveItem.vue +4 -4
  34. package/src/components/display/live/LiveList.vue +84 -214
  35. package/src/components/display/organisation/OrganisationChooser.vue +5 -26
  36. package/src/components/display/organisation/OrganisationChooserLight.vue +7 -1
  37. package/src/components/display/participant/ParticipantItem.vue +7 -19
  38. package/src/components/display/participant/ParticipantList.vue +39 -52
  39. package/src/components/display/playlist/PlaylistItem.vue +2 -2
  40. package/src/components/display/playlist/PlaylistList.vue +8 -14
  41. package/src/components/display/playlist/PodcastList.vue +21 -40
  42. package/src/components/display/podcasts/AnimatorsItem.vue +0 -1
  43. package/src/components/display/podcasts/ParticipantDescription.vue +4 -16
  44. package/src/components/display/podcasts/PodcastFilterList.vue +20 -63
  45. package/src/components/display/podcasts/PodcastImage.vue +27 -84
  46. package/src/components/display/podcasts/PodcastInlineList.vue +14 -36
  47. package/src/components/display/podcasts/PodcastItem.vue +5 -5
  48. package/src/components/display/podcasts/PodcastList.vue +7 -14
  49. package/src/components/display/podcasts/PodcastModuleBox.vue +9 -28
  50. package/src/components/display/podcasts/TagList.vue +2 -3
  51. package/src/components/display/rubriques/RubriqueChooser.vue +2 -2
  52. package/src/components/display/rubriques/RubriqueList.vue +5 -25
  53. package/src/components/display/sharing/PlayerParameters.vue +30 -71
  54. package/src/components/display/sharing/ShareButtons.vue +21 -45
  55. package/src/components/display/sharing/ShareDistribution.vue +1 -7
  56. package/src/components/display/sharing/SharePlayer.vue +10 -19
  57. package/src/components/display/sharing/SharePlayerColors.vue +4 -8
  58. package/src/components/display/sharing/SharePlayerTypes.vue +1 -2
  59. package/src/components/display/sharing/SubscribeButtons.vue +2 -4
  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 +4 -1
  65. package/src/components/misc/Footer.vue +26 -35
  66. package/src/components/misc/HomeDropdown.vue +42 -91
  67. package/src/components/misc/LeftMenu.vue +107 -141
  68. package/src/components/misc/Player.vue +15 -29
  69. package/src/components/misc/PlayerButtons.vue +14 -37
  70. package/src/components/misc/PlayerClockAndTimeline.vue +1 -1
  71. package/src/components/misc/PlayerProgressBar.vue +15 -50
  72. package/src/components/misc/TopBar.vue +139 -222
  73. package/src/components/misc/modal/NewsletterModal.vue +13 -27
  74. package/src/components/pages/Category.vue +3 -8
  75. package/src/components/pages/Emission.vue +12 -24
  76. package/src/components/pages/Emissions.vue +8 -17
  77. package/src/components/pages/Home.vue +1 -3
  78. package/src/components/pages/Lives.vue +1 -4
  79. package/src/components/pages/Participant.vue +19 -27
  80. package/src/components/pages/Participants.vue +7 -15
  81. package/src/components/pages/Playlist.vue +16 -29
  82. package/src/components/pages/Playlists.vue +1 -11
  83. package/src/components/pages/Podcast.vue +16 -30
  84. package/src/components/pages/Podcasts.vue +9 -23
  85. package/src/components/pages/Search.vue +26 -64
  86. package/src/sass/_variables.scss +0 -1
  87. package/src/store/class/general/media.ts +1 -1
@@ -17,36 +17,20 @@
17
17
  <!-- eslint-disable vue/no-v-html -->
18
18
  <div v-html="newsletterHtml" />
19
19
  <!-- eslint-enable -->
20
- <div class="d-flex flex-column flex-grow ms-4">
20
+ <div class="d-flex flex-column flex-grow-1 ms-4">
21
21
  <h4 class="mb-3">
22
22
  {{ $t('Configuration') }}
23
23
  </h4>
24
- <div>
25
- <input
26
- id="display-emission-name"
27
- v-model="displayEmissionName"
28
- type="checkbox"
29
- class="form-check-input"
30
- >
31
- <label
32
- class="form-check-label"
33
- for="display-emission-name"
34
- >{{
35
- $t('Display emission name')
36
- }}</label>
37
- </div>
38
- <div>
39
- <input
40
- id="display-participants-names"
41
- v-model="displayParticipantsNames"
42
- type="checkbox"
43
- class="form-check-input"
44
- >
45
- <label
46
- class="form-check-label"
47
- for="display-participants-names"
48
- >{{ $t('Display participants list') }}</label>
49
- </div>
24
+ <ClassicCheckbox
25
+ v-model:textInit="displayEmissionName"
26
+ id-checkbox="display-emission-name"
27
+ :label="$t('Display emission name')"
28
+ />
29
+ <ClassicCheckbox
30
+ v-model:textInit="displayParticipantsNames"
31
+ id-checkbox="display-participants-names"
32
+ :label="$t('Display participants list')"
33
+ />
50
34
  <div class="d-flex align-items-center mt-2">
51
35
  <VSwatches
52
36
  v-model="color"
@@ -104,6 +88,7 @@
104
88
  </template>
105
89
 
106
90
  <script lang="ts">
91
+ import ClassicCheckbox from '../../form/ClassicCheckbox.vue';
107
92
  import Snackbar from '../../misc/Snackbar.vue';
108
93
  import moment from 'moment';
109
94
  import VSwatches from 'vue3-swatches';
@@ -121,6 +106,7 @@ export default defineComponent({
121
106
  components: {
122
107
  Snackbar,
123
108
  VSwatches,
109
+ ClassicCheckbox
124
110
  },
125
111
 
126
112
  mixins: [displayMethods],
@@ -2,8 +2,8 @@
2
2
  <div class="page-box">
3
3
  <h1>{{ title }}</h1>
4
4
  <PodcastList
5
- :first="firstRoute"
6
- :size="sizeRoute"
5
+ :first="0"
6
+ :size="12"
7
7
  :iab-id="iabId"
8
8
  :organisation-id="filterOrga"
9
9
  />
@@ -20,8 +20,6 @@ export default defineComponent({
20
20
  PodcastList,
21
21
  },
22
22
  props: {
23
- firstRoute: { default: 0, type: Number},
24
- sizeRoute: { default: 12, type: Number},
25
23
  iabId: { default: undefined, type: Number},
26
24
  },
27
25
 
@@ -53,10 +51,7 @@ export default defineComponent({
53
51
  const matchCategories = this.categories.filter((c: Category) => c.id === this.iabId);
54
52
  if (1 !== matchCategories.length) return;
55
53
  this.title = matchCategories[0]['name'];
56
-
57
54
  },
58
55
  },
59
56
  })
60
- </script>
61
-
62
- <style lang="scss"></style>
57
+ </script>
@@ -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
 
@@ -113,7 +101,7 @@ import octopusApi from '@saooti/octopus-api';
113
101
  import { state } from '../../store/paramStore';
114
102
  import { displayMethods } from '../mixins/functions';
115
103
  import { Emission } from '@/store/class/general/emission';
116
-
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,7 +55,6 @@
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
58
  import { Category } from '@/store/class/general/category';
58
59
  import { RubriquageFilter } from '@/store/class/rubrique/rubriquageFilter';
59
60
  import { defineComponent, defineAsyncComponent } from 'vue';
@@ -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>
@@ -107,6 +107,4 @@ export default defineComponent({
107
107
  },
108
108
  }
109
109
  })
110
- </script>
111
-
112
- <style lang="scss"></style>
110
+ </script>
@@ -17,7 +17,6 @@
17
17
  </div>
18
18
  <OrganisationChooser
19
19
  :defaultanswer="$t('Please chose a productor')"
20
- :all="true"
21
20
  @selected="onOrganisationSelected"
22
21
  />
23
22
  </template>
@@ -99,6 +98,4 @@ export default defineComponent({
99
98
  },
100
99
  },
101
100
  })
102
- </script>
103
-
104
- <style lang="scss"></style>
101
+ </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 -->
@@ -33,7 +34,7 @@
33
34
  class="d-flex justify-content-center"
34
35
  >
35
36
  <a
36
- class="btn btn-bigRound"
37
+ class="btn btn-big-round"
37
38
  :title="$t('Subscribe to this participant')"
38
39
  :aria-label="$t('Subscribe to this participant')"
39
40
  :href="rssUrl"
@@ -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
 
@@ -94,7 +84,7 @@ import octopusApi from '@saooti/octopus-api';
94
84
  import { state } from '../../store/paramStore';
95
85
  import { displayMethods } from '../mixins/functions';
96
86
  import { Participant } from '@/store/class/general/participant';
97
-
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,25 +40,15 @@
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';
@@ -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,28 +82,18 @@
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';
@@ -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) {