@saooti/octopus-sdk 36.0.2 → 36.0.4

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 (85) hide show
  1. package/package.json +1 -1
  2. package/public/css/fonts/icomoon.eot +0 -0
  3. package/public/css/fonts/icomoon.svg +21 -12
  4. package/public/css/fonts/icomoon.ttf +0 -0
  5. package/public/css/fonts/icomoon.woff +0 -0
  6. package/public/css/fonts/style.css +32 -5
  7. package/public/img/header-emissions.webp +0 -0
  8. package/public/img/header-home.webp +0 -0
  9. package/public/img/header-intervenants.webp +0 -0
  10. package/public/img/header-playlists.webp +0 -0
  11. package/public/img/header-podcasts.webp +0 -0
  12. package/src/assets/bootstrap.scss +26 -12
  13. package/src/assets/form.scss +2 -2
  14. package/src/assets/general.scss +16 -26
  15. package/src/assets/live.scss +0 -18
  16. package/src/assets/multiselect.scss +15 -25
  17. package/src/assets/share.scss +47 -12
  18. package/src/components/display/categories/CategoryChooser.vue +1 -1
  19. package/src/components/display/categories/CategoryFilter.vue +109 -62
  20. package/src/components/display/categories/CategoryList.vue +9 -20
  21. package/src/components/display/emission/EmissionChooser.vue +1 -1
  22. package/src/components/display/emission/EmissionInlineList.vue +1 -1
  23. package/src/components/display/emission/EmissionItem.vue +5 -5
  24. package/src/components/display/emission/EmissionPlayerItem.vue +15 -11
  25. package/src/components/display/filter/MonetizableFilter.vue +1 -1
  26. package/src/components/display/filter/ProductorSearch.vue +1 -1
  27. package/src/components/display/filter/RubriqueChoice.vue +1 -1
  28. package/src/components/display/list/ListPaginate.vue +14 -25
  29. package/src/components/display/list/Paginate.vue +71 -104
  30. package/src/components/display/list/PaginateParams.vue +66 -0
  31. package/src/components/display/live/CountDown.vue +1 -1
  32. package/src/components/display/live/LiveItem.vue +0 -7
  33. package/src/components/display/organisation/OrganisationChooser.vue +1 -1
  34. package/src/components/display/participant/ParticipantItem.vue +6 -12
  35. package/src/components/display/participant/ParticipantList.vue +2 -24
  36. package/src/components/display/playlist/PlaylistItem.vue +10 -10
  37. package/src/components/display/podcasts/AnimatorsItem.vue +1 -2
  38. package/src/components/display/podcasts/ParticipantDescription.vue +0 -30
  39. package/src/components/display/podcasts/PodcastFilterList.vue +1 -1
  40. package/src/components/display/podcasts/PodcastImage.vue +19 -13
  41. package/src/components/display/podcasts/PodcastInlineListClassic.vue +1 -1
  42. package/src/components/display/podcasts/PodcastInlineListTemplate.vue +14 -12
  43. package/src/components/display/podcasts/PodcastItem.vue +15 -9
  44. package/src/components/display/podcasts/PodcastItemInfo.vue +18 -55
  45. package/src/components/display/podcasts/PodcastModuleBox.vue +54 -26
  46. package/src/components/display/podcasts/PodcastSwiperList.vue +20 -10
  47. package/src/components/display/podcasts/TagList.vue +7 -2
  48. package/src/components/display/rubriques/RubriqueChooser.vue +2 -2
  49. package/src/components/display/rubriques/RubriqueList.vue +11 -19
  50. package/src/components/display/sharing/PlayerParameters.vue +59 -75
  51. package/src/components/display/sharing/ShareButtons.vue +20 -37
  52. package/src/components/display/sharing/ShareButtonsIntern.vue +74 -83
  53. package/src/components/display/sharing/ShareDistribution.vue +3 -2
  54. package/src/components/display/sharing/SharePlayer.vue +50 -50
  55. package/src/components/display/sharing/SharePlayerColors.vue +4 -4
  56. package/src/components/display/sharing/SharePlayerTypes.vue +25 -27
  57. package/src/components/display/sharing/SubscribeButtons.vue +2 -2
  58. package/src/components/form/ClassicCheckbox.vue +1 -1
  59. package/src/components/form/ClassicSearch.vue +2 -1
  60. package/src/components/misc/Footer.vue +19 -15
  61. package/src/components/misc/HomeDropdown.vue +14 -14
  62. package/src/components/misc/Popover.vue +2 -1
  63. package/src/components/misc/ProgressBar.vue +1 -1
  64. package/src/components/misc/TopBar.vue +54 -44
  65. package/src/components/misc/modal/ClassicModal.vue +2 -2
  66. package/src/components/misc/modal/NewsletterModal.vue +0 -1
  67. package/src/components/misc/player/Player.vue +5 -14
  68. package/src/components/misc/player/PlayerCompact.vue +2 -1
  69. package/src/components/pages/Emission.vue +64 -62
  70. package/src/components/pages/Emissions.vue +0 -9
  71. package/src/components/pages/Participant.vue +13 -15
  72. package/src/components/pages/Participants.vue +0 -7
  73. package/src/components/pages/Playlist.vue +43 -37
  74. package/src/components/pages/Playlists.vue +0 -5
  75. package/src/components/pages/Podcast.vue +65 -100
  76. package/src/components/pages/Podcasts.vue +1 -37
  77. package/src/locale/de.ts +6 -1
  78. package/src/locale/en.ts +6 -1
  79. package/src/locale/es.ts +6 -1
  80. package/src/locale/fr.ts +6 -1
  81. package/src/locale/it.ts +6 -1
  82. package/src/locale/sl.ts +6 -1
  83. package/src/sass/_variables.scss +6 -1
  84. package/src/stores/ParamSdkStore.ts +14 -22
  85. package/src/stores/PlayerStore.ts +11 -0
@@ -1,17 +1,9 @@
1
1
  <template>
2
2
  <div class="module-box">
3
- <div
4
- class="text-uppercase h4"
5
- >
6
- {{ podcast.title }}
7
- </div>
8
- <div class="mb-5 mt-3 d-flex">
3
+ <div class="mb-2 d-flex">
9
4
  <div class="w-100">
10
5
  <PodcastImage
11
6
  :class="[
12
- !isLiveReadyToRecord
13
- ? 'shadow-element'
14
- : '',
15
7
  isLiveReadyToRecord &&
16
8
  fetchConference &&
17
9
  'null' !== fetchConference &&
@@ -28,8 +20,7 @@
28
20
  @playPodcast="playPodcast"
29
21
  />
30
22
  <div
31
- class="d-flex flex-wrap mb-3"
32
- :class="isLiveReady ? 'justify-content-between' : ''"
23
+ class="d-flex justify-content-between flex-wrap mb-2"
33
24
  >
34
25
  <div
35
26
  v-if="0 !== date.length"
@@ -38,7 +29,7 @@
38
29
  {{ date }}
39
30
  </div>
40
31
  <div>
41
- {{ $t('Duration', { duration: duration }) }}
32
+ {{ duration}}
42
33
  </div>
43
34
  <div
44
35
  v-if="isLiveReady"
@@ -47,6 +38,11 @@
47
38
  {{ $t('Episode record in live') }}
48
39
  </div>
49
40
  </div>
41
+ <div
42
+ class="text-uppercase h2 mb-3"
43
+ >
44
+ {{ podcast.title }}
45
+ </div>
50
46
  <!-- eslint-disable vue/no-v-html -->
51
47
  <div
52
48
  class="descriptionText html-wysiwyg-content"
@@ -54,11 +50,10 @@
54
50
  />
55
51
  <!-- eslint-enable -->
56
52
  <div class="my-3">
57
- <ParticipantDescription :participants="podcast.animators" />
58
- <div>
53
+ <ParticipantDescription class="mb-1" :participants="podcast.animators" />
54
+ <div class="mb-1">
59
55
  {{ $t('Emission') + ' : ' }}
60
56
  <router-link
61
- class="fw-bold"
62
57
  :to="{
63
58
  name: 'emission',
64
59
  params: { emissionId: podcast.emission.emissionId },
@@ -70,10 +65,9 @@
70
65
  {{ podcast.emission.name }}
71
66
  </router-link>
72
67
  </div>
73
- <div v-if="!isPodcastmaker">
68
+ <div class="mb-1" v-if="!isPodcastmaker">
74
69
  {{ $t('Producted by : ') }}
75
70
  <router-link
76
- class="fw-bold"
77
71
  :to="{
78
72
  name: 'productor',
79
73
  params: { productorId: podcast.organisation.id },
@@ -85,15 +79,15 @@
85
79
  {{ podcast.organisation.name }}
86
80
  </router-link>
87
81
  </div>
88
- <div v-if="''!==photoCredit">
82
+ <div class="mb-1" v-if="''!==photoCredit">
89
83
  {{ $t('Photo credits') + " : "+ photoCredit }}
90
84
  </div>
91
- <div v-if="''!==audioCredit">
85
+ <div class="mb-1" v-if="''!==audioCredit">
92
86
  {{ $t('Audio credits') + " : "+ audioCredit }}
93
87
  </div>
94
88
  <a
95
89
  v-if="podcast.article"
96
- class="btn d-flex align-items-center my-2 width-fit-content"
90
+ class="btn d-flex align-items-center my-2 width-fit-content mb-1"
97
91
  :href="podcast.article"
98
92
  rel="noopener"
99
93
  target="_blank"
@@ -102,16 +96,18 @@
102
96
  <div>{{ $t('See associated article') }}</div>
103
97
  </a>
104
98
  <ParticipantDescription
99
+ class="mb-1"
105
100
  :participants="podcast.guests"
106
101
  :is-guest="true"
107
102
  />
108
103
  <PodcastPlayBar
109
- :podcast="podcast"
104
+ :podcast-id="podcast.podcastId"
105
+ :duration="podcast.duration"
110
106
  />
111
107
  <div v-if="editRight && !isPodcastmaker">
112
108
  <div
113
109
  v-if="podcast.annotations && 'RSS'===podcast.annotations.SOURCE_KIND"
114
- class="me-5"
110
+ class="me-5 text-secondary"
115
111
  >
116
112
  {{ $t('From RSS') }}
117
113
  </div>
@@ -123,6 +119,24 @@
123
119
  </div>
124
120
  </div>
125
121
  </div>
122
+ <RecordingItemButton
123
+ v-if="
124
+ !!fetchConference &&
125
+ isLiveReadyToRecord &&
126
+ !isNotRecorded &&
127
+ isOctopusAndAnimator
128
+ "
129
+ :podcast="podcast"
130
+ :live="true"
131
+ :recording="fetchConference"
132
+ @deleteItem="removeDeleted"
133
+ @validatePodcast="$emit('updatePodcast', $event)"
134
+ />
135
+ <EditBox
136
+ v-else-if="editRight && isEditBox"
137
+ :podcast="podcast"
138
+ @validatePodcast="$emit('updatePodcast', $event)"
139
+ />
126
140
  <TagList
127
141
  :tag-list="podcast.tags"
128
142
  />
@@ -145,6 +159,8 @@ import { Conference } from '@/stores/class/conference/conference';
145
159
 
146
160
  import { defineComponent, defineAsyncComponent } from 'vue';
147
161
  const ErrorMessage = defineAsyncComponent(() => import('../../misc/ErrorMessage.vue'));
162
+ const RecordingItemButton = defineAsyncComponent(() => import('@/components/display/studio/RecordingItemButton.vue'));
163
+ const EditBox = defineAsyncComponent(() => import('@/components/display/edit/EditBox.vue'));
148
164
  export default defineComponent({
149
165
  name: "PodcastModuleBox",
150
166
  components: {
@@ -152,7 +168,9 @@ export default defineComponent({
152
168
  ParticipantDescription,
153
169
  TagList,
154
170
  ErrorMessage,
155
- PodcastPlayBar
171
+ PodcastPlayBar,
172
+ EditBox,
173
+ RecordingItemButton
156
174
  },
157
175
 
158
176
  mixins:[displayMethods, orgaComputed],
@@ -163,7 +181,7 @@ export default defineComponent({
163
181
  fetchConference: { default: undefined, type: Object as ()=> Conference},
164
182
  },
165
183
 
166
- emits: ['playPodcast'],
184
+ emits: ['playPodcast', 'updatePodcast'],
167
185
 
168
186
  computed: {
169
187
  errorMessage(): string{
@@ -180,7 +198,7 @@ export default defineComponent({
180
198
  },
181
199
  date(): string {
182
200
  if (this.podcast && 1970 !== dayjs(this.podcast.pubDate).year()){
183
- return dayjs(this.podcast.pubDate).format('D MMMM YYYY, HH[h]mm');
201
+ return dayjs(this.podcast.pubDate).format('D MMMM YYYY');
184
202
  }
185
203
  return '';
186
204
  },
@@ -235,12 +253,22 @@ export default defineComponent({
235
253
  },
236
254
  audioCredit():string{
237
255
  return (this.podcast?.annotations?.audioCredit as string) ?? '';
238
- }
256
+ },
257
+ isEditBox(): boolean{
258
+ return (state.podcastPage.EditBox as boolean)?? false;
259
+ },
239
260
  },
240
261
  methods: {
241
262
  playPodcast(podcast: Podcast): void {
242
263
  this.$emit('playPodcast', podcast);
243
264
  },
265
+ removeDeleted(): void {
266
+ if (window.history.length > 1) {
267
+ this.$router.go(-1);
268
+ } else {
269
+ this.$router.push('/');
270
+ }
271
+ },
244
272
  },
245
273
  })
246
274
  </script>
@@ -10,7 +10,6 @@
10
10
  :iab-id="iabId"
11
11
  :rubrique-id="rubriqueId"
12
12
  :no-rubriquage-id="noRubriquageId"
13
- :is-button-next-title="true"
14
13
  @sortChrono="sortChrono"
15
14
  @sortPopular="sortPopular"
16
15
  >
@@ -22,7 +21,7 @@
22
21
  <swiper
23
22
  v-if="!loading"
24
23
  :slides-per-view="numberItem"
25
- :space-between="10"
24
+ :space-between="0"
26
25
  :loop="allPodcasts.length>=numberItem"
27
26
  :navigation="true"
28
27
  :modules="modules"
@@ -102,7 +101,10 @@ export default defineComponent({
102
101
  return `${this.emissionId}|${this.organisationId}|${this.filterOrgaId}|${this.iabId}|${this.rubriqueId}|${this.rubriquageId}|${this.query}`;
103
102
  },
104
103
  sizeItem(): number {
105
- return state.generalParameters.podcastItem ? state.generalParameters.podcastItem: 13;
104
+ if (window.innerWidth <= 450) {
105
+ return 12.5;
106
+ }
107
+ return state.generalParameters.podcastItem ? state.generalParameters.podcastItem: 16.5;
106
108
  },
107
109
  },
108
110
  watch: {
@@ -133,9 +135,9 @@ export default defineComponent({
133
135
  methods: {
134
136
  handleResize(): void {
135
137
  if (!this.$el) return;
136
- const width = (this.$el as HTMLElement).offsetWidth;
137
- const sixteen = domHelper.convertRemToPixels(this.sizeItem + 0.5);
138
- this.numberItem = Math.floor(width / sixteen);
138
+ const width = (this.$el as HTMLElement).offsetWidth - 95;
139
+ const sixteen = domHelper.convertRemToPixels(this.sizeItem+ 0.5);
140
+ this.numberItem = Math.max(1, Math.floor(width / sixteen));
139
141
  },
140
142
  async fetchNext(): Promise<void> {
141
143
  const data = await octopusApi.fetchDataWithParams<{count: number;result:Array<Podcast>;sort: string;}>(0, 'podcast/search',{
@@ -187,17 +189,25 @@ export default defineComponent({
187
189
  top: 0;
188
190
  bottom: 0;
189
191
  margin: 0;
190
- width: 50px;
191
192
  }
192
193
  .swiper-button-next{
193
- background: linear-gradient(90deg, rgba(255, 255, 255, 0) 0%,#fafafa 50%, #fafafa 100%);
194
194
  right: 0;
195
195
  }
196
196
  .swiper-button-prev{
197
- background: linear-gradient(90deg, #fafafa 0%,#fafafa 50%, rgba(255, 255, 255, 0) 100%);
198
197
  left: 0;
199
198
  }
200
-
199
+ .swiper-slide-active{
200
+ padding-left:27px;
201
+ @media (max-width: 550px) {
202
+ padding-left:0;
203
+ }
204
+ }
205
+ .swiper-slide-next{
206
+ padding-right:27px;
207
+ }
208
+ .swiper-button-lock{
209
+ display: flex;
210
+ }
201
211
  .swiper-slide {
202
212
  display: flex;
203
213
  justify-content: center;
@@ -3,7 +3,7 @@
3
3
  v-if="undefined !== tagList && 0!==tagList.length"
4
4
  class="tag-list-component d-flex align-items-center flex-wrap"
5
5
  >
6
- <div class="fw-bold">
6
+ <div>
7
7
  {{ $t('Podcast tags') + ": " }}
8
8
  </div>
9
9
  <div
@@ -14,6 +14,7 @@
14
14
  <div
15
15
  :id="'tag-list-from-podcast-page'+index"
16
16
  role="button"
17
+ class="d-flex align-items-center"
17
18
  >
18
19
  <img
19
20
  v-if="isOuestFranceTag(tag)"
@@ -29,6 +30,8 @@
29
30
  v-if="isOuestFranceTag(tag)"
30
31
  :target="'tag-list-from-podcast-page'+index"
31
32
  :content="tag.substring(4,tag.length)"
33
+ relativeClass="page-element"
34
+ :isFixed="true"
32
35
  />
33
36
  </div>
34
37
  </div>
@@ -51,6 +54,7 @@ export default defineComponent({
51
54
  </script>
52
55
 
53
56
  <style lang="scss">
57
+ @import '@scss/_variables.scss';
54
58
  .octopus-app{
55
59
  .tag-list-component{
56
60
  .ouest-france-logo{
@@ -60,10 +64,11 @@ export default defineComponent({
60
64
  }
61
65
  .tag-list-element {
62
66
  display: flex;
67
+ align-items: center;
63
68
  margin: 0.4rem;
64
69
  padding: 0.2rem;
65
70
  border: 1px solid #999;
66
- border-radius: 0.5rem;
71
+ border-radius: $octopus-borderradius;
67
72
  }
68
73
  }
69
74
  }
@@ -60,8 +60,8 @@
60
60
  {{ $t('No elements found. Consider changing the search query.') }}
61
61
  </template>
62
62
  <template #caret>
63
- <span class="saooti-down octopus-arrow-down octopus-arrow-down-absolute" />
64
- </template>
63
+ <span class="saooti-down octopus-arrow-down-absolute" />
64
+ </template>
65
65
  <template #afterList="">
66
66
  <div
67
67
  v-if="rubriques.length > rubriqueLimit"
@@ -26,7 +26,7 @@
26
26
  v-for="rubrique in rubriqueDisplay"
27
27
  :ref="'rubrique' + rubrique.rubriqueId"
28
28
  :key="rubrique.rubriqueId"
29
- class="rubrique-item bg-white"
29
+ class="btn btn-primary btn-on-dark m-1"
30
30
  @click="addFilter(rubrique)"
31
31
  >
32
32
  {{ rubrique.name }}
@@ -35,7 +35,7 @@
35
35
  <button
36
36
  v-show="hidenRubriques.length"
37
37
  id="rubriques-dropdown"
38
- class="btn admin-button saooti-more"
38
+ class="btn btn-primary btn-on-dark m-1 saooti-more"
39
39
  :title="$t('See more')"
40
40
  />
41
41
  <Popover
@@ -175,12 +175,18 @@ export default defineComponent({
175
175
  if(null === rubriqueList){return}
176
176
  rubriqueList.style.justifyContent = 'flex-start';
177
177
  this.hidenRubriques.length = 0;
178
+ this.rubriqueDisplay.forEach((element: Rubrique) => {
179
+ const el = (this.$refs['rubrique' + element.rubriqueId] as Array<HTMLElement>)[0];
180
+ if (!el) return;
181
+ if (el.classList.contains('hid')) {
182
+ el.classList.remove('hid');
183
+ }
184
+ });
178
185
  this.rubriqueDisplay.forEach((element: Rubrique) => {
179
186
  const el = (this.$refs['rubrique' + element.rubriqueId] as Array<HTMLElement>)[0];
180
187
  if (!el) return;
181
188
  const parent = el.parentElement;
182
189
  if (null !== parent && el.offsetLeft + el.clientWidth <= parent.clientWidth - 20) {
183
- el.classList.remove('hid');
184
190
  return;
185
191
  }
186
192
  this.hidenRubriques.push(element);
@@ -200,6 +206,7 @@ export default defineComponent({
200
206
  </script>
201
207
 
202
208
  <style lang="scss">
209
+ @import '@scss/_variables.scss';
203
210
  .octopus-app{
204
211
  .rubrique-list-container {
205
212
  display: flex;
@@ -211,26 +218,11 @@ export default defineComponent({
211
218
  padding: 0 4rem;
212
219
  select{
213
220
  width: auto;
214
- border-radius: 1.5rem;
221
+ border-radius: $octopus-borderradius;
215
222
  margin: 0.2rem;
216
223
  font-size: 0.6rem;
217
224
  padding: 0.5rem;
218
225
  }
219
226
  }
220
- .rubrique-item {
221
- font-size: 0.6rem;
222
- margin: 0.2rem;
223
- padding: 0.5rem;
224
- border-radius: 1.5rem;
225
- border: 0;
226
- display: flex;
227
- align-items: center;
228
- justify-content: center;
229
- white-space: nowrap;
230
- flex-shrink: 0;
231
- &:hover {
232
- background: #eee !important;
233
- }
234
- }
235
227
  }
236
228
  </style>
@@ -1,95 +1,79 @@
1
1
  <template>
2
- <Accordion
3
- class="mt-3"
4
- :title="$t('player parameters')"
5
- id-composer="playerParameters"
2
+ <div class="h4 mb-2 mt-3">{{ $t('player parameters') }}</div>
3
+ <template
4
+ v-if="choseNumberEpisode"
6
5
  >
7
6
  <div
8
- v-if="choseNumberEpisode"
9
- class="d-flex flex-column flex-grow-1"
7
+ v-if="displayChoiceAllEpisodes"
8
+ class="d-flex align-items-center flex-wrap mt-1"
10
9
  >
11
- <div
12
- v-if="displayChoiceAllEpisodes"
13
- class="d-flex align-items-center flex-wrap mt-1"
14
- >
15
- <input
16
- v-model="episodeNumbers"
17
- class="form-check-input"
18
- type="radio"
19
- name="episodeNumbers"
20
- value="all"
21
- >
22
- <span class="flex-shrink-0">{{ $t('Show every episode') }}</span>
23
- </div>
24
- <div
25
- class="d-flex align-items-center flex-wrap"
26
- :class="displayChoiceAllEpisodes ? '' : 'mt-3'"
10
+ <input
11
+ v-model="episodeNumbers"
12
+ class="form-check-input"
13
+ type="radio"
14
+ name="episodeNumbers"
15
+ value="all"
27
16
  >
28
- <input
29
- v-if="displayChoiceAllEpisodes"
30
- v-model="episodeNumbers"
31
- class="form-check-input"
32
- type="radio"
33
- name="episodeNumbers"
34
- value="number"
35
- >
36
- <span class="flex-shrink-0">{{ $t('Show') }}</span>
37
- <input
38
- id="number-input"
39
- v-model="iFrameNumber"
40
- type="number"
41
- min="1"
42
- max="50"
43
- class="input-share-player text-center m-2"
44
- >
45
- <label
46
- for="number-input"
47
- :title="$t('Number of player podcasts')"
48
- />
49
- <span class="flex-shrink-0">{{ $t('Last podcasts') }}</span>
50
- </div>
51
- <ClassicCheckbox
52
- v-model:textInit="proceedReading"
53
- id-checkbox="proceed-reading-checkbox"
54
- :label="$t('Proceed reading')"
55
- />
56
- <ClassicCheckbox
57
- v-model:textInit="isVisibleTemp"
58
- id-checkbox="is-visible-checkbox"
59
- :label="$t('Podcasts still available')"
60
- />
17
+ <span class="flex-shrink-0">{{ $t('Show every episode') }}</span>
61
18
  </div>
62
19
  <div
63
- v-if="displayArticleParam"
64
- class="d-flex flex-column flex-grow-1"
65
- >
66
- <ClassicCheckbox
67
- v-model:textInit="displayArticle"
68
- id-checkbox="display-article-checkbox"
69
- :label="$t('Display associated article')"
70
- />
71
- </div>
72
- <div
73
- v-if="displayTranscriptParam"
74
- class="d-flex flex-column flex-grow-1"
20
+ class="d-flex align-items-center flex-wrap"
21
+ :class="displayChoiceAllEpisodes ? '' : 'mt-3'"
75
22
  >
76
- <ClassicCheckbox
77
- v-model:textInit="displayTranscript"
78
- id-checkbox="display-transcript-checkbox"
79
- :label="$t('If the transcript is available, show it')"
23
+ <input
24
+ v-if="displayChoiceAllEpisodes"
25
+ v-model="episodeNumbers"
26
+ class="form-check-input"
27
+ type="radio"
28
+ name="episodeNumbers"
29
+ value="number"
30
+ >
31
+ <span class="flex-shrink-0">{{ $t('Show') }}</span>
32
+ <input
33
+ id="number-input"
34
+ v-model="iFrameNumber"
35
+ type="number"
36
+ min="1"
37
+ max="50"
38
+ class="input-share-player text-center m-2"
39
+ >
40
+ <label
41
+ for="number-input"
42
+ :title="$t('Number of player podcasts')"
80
43
  />
44
+ <span class="flex-shrink-0">{{ $t('Last podcasts') }}</span>
81
45
  </div>
82
- </Accordion>
46
+ <ClassicCheckbox
47
+ v-model:textInit="proceedReading"
48
+ id-checkbox="proceed-reading-checkbox"
49
+ :label="$t('Proceed reading')"
50
+ />
51
+ <ClassicCheckbox
52
+ v-model:textInit="isVisibleTemp"
53
+ id-checkbox="is-visible-checkbox"
54
+ :label="$t('Podcasts still available')"
55
+ />
56
+ </template>
57
+ <ClassicCheckbox
58
+ v-if="displayArticleParam"
59
+ v-model:textInit="displayArticle"
60
+ id-checkbox="display-article-checkbox"
61
+ :label="$t('Display associated article')"
62
+ />
63
+ <ClassicCheckbox
64
+ v-if="displayTranscriptParam"
65
+ v-model:textInit="displayTranscript"
66
+ id-checkbox="display-transcript-checkbox"
67
+ :label="$t('If the transcript is available, show it')"
68
+ />
83
69
  </template>
84
70
 
85
71
  <script lang="ts">
86
72
  import ClassicCheckbox from '../../form/ClassicCheckbox.vue';
87
- import Accordion from '../../misc/Accordion.vue';
88
73
  import { defineComponent } from 'vue'
89
74
  export default defineComponent({
90
75
  components:{
91
- ClassicCheckbox,
92
- Accordion
76
+ ClassicCheckbox
93
77
  },
94
78
  props: {
95
79
  isVisible: { default: false, type: Boolean},
@@ -1,40 +1,24 @@
1
1
  <template>
2
- <div class="module-box text-center-mobile">
3
- <template
4
- v-if="!isVertical"
5
- >
6
- <div class="d-flex mb-2">
7
- <h3 class="mb-0">
8
- {{ $t('Share') }}
9
- </h3>
10
- <span
11
- v-if="authenticated"
12
- id="popover-share-help"
13
- role="button"
14
- tabindex="0"
15
- class="saooti-help ms-2 align-items-start"
16
- />
17
- <Popover
18
- v-if="authenticated"
19
- target="popover-share-help"
20
- :title="$t('Help')"
21
- :content="$t('Share this page without edit and share blocks')"
22
- />
23
- </div>
24
- <div class="d-flex align-items-center">
25
- <ShareButtonsIntern
26
- :podcast="podcast"
27
- :emission="emission"
28
- :playlist="playlist"
29
- :participant-id="participantId"
30
- :organisation-id="organisationId"
31
- />
32
- </div>
33
- </template>
34
- <div
35
- v-else
36
- class="d-flex-row"
37
- >
2
+ <div class="module-box">
3
+ <div class="d-flex align-items-center mb-3">
4
+ <h2 class="big-h2 mb-0">{{ $t('Share') }}</h2>
5
+ <span
6
+ v-if="authenticated"
7
+ id="popover-share-help"
8
+ role="button"
9
+ tabindex="0"
10
+ class="saooti-help ms-2"
11
+ />
12
+ <Popover
13
+ v-if="authenticated"
14
+ target="popover-share-help"
15
+ :title="$t('Help')"
16
+ :content="$t('Share this page without edit and share blocks')"
17
+ relativeClass="page-element"
18
+ :isFixed="true"
19
+ />
20
+ </div>
21
+ <div class="d-flex align-items-center justify-content-between">
38
22
  <ShareButtonsIntern
39
23
  :podcast="podcast"
40
24
  :emission="emission"
@@ -67,7 +51,6 @@ export default defineComponent({
67
51
  playlist: { default: undefined, type: Object as ()=>Playlist},
68
52
  participantId: { default: undefined, type: Number},
69
53
  organisationId: { default: undefined, type: String},
70
- isVertical: { default: false, type: Boolean},
71
54
  },
72
55
  computed: {
73
56
  authenticated(): boolean {