@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,7 +1,7 @@
1
1
  <template>
2
2
  <div
3
3
  class="top-bar-container"
4
- :class="{ 'shadow-element': scrolled }"
4
+ :class="{ 'scrolled': scrolled }"
5
5
  >
6
6
  <router-link
7
7
  class="top-bar-logo"
@@ -25,7 +25,7 @@
25
25
  width="auto"
26
26
  :defaultanswer="$t('No organisation filter')"
27
27
  :value="organisationId"
28
- class="me-2"
28
+ class="ms-3 me-2"
29
29
  :reset="reset"
30
30
  @selected="onOrganisationSelected"
31
31
  />
@@ -40,11 +40,39 @@
40
40
  name: link.routeName,
41
41
  query: getQueriesRouter(link.routeName),
42
42
  }"
43
- class="link-hover p-3 fw-bold"
43
+ class="link-hover p-3"
44
44
  >
45
45
  {{ link.title }}
46
46
  </router-link>
47
47
  </template>
48
+ <button id="more-dropdown" class="d-flex align-items-center btn-transparent p-3">
49
+ <div class="link-hover">{{$t('More')}}</div>
50
+ <div class="hide-phone ms-1 saooti-down"></div>
51
+ </button>
52
+ <Popover
53
+ target="more-dropdown"
54
+ :only-click="true"
55
+ :is-fixed="true"
56
+ :left-pos="true"
57
+ >
58
+ <div class="d-flex flex-column">
59
+ <template
60
+ v-for="link in routerLinkInsideArray"
61
+ :key="link.routeName"
62
+ >
63
+ <router-link
64
+ v-if="link.condition"
65
+ :to="{
66
+ name: link.routeName,
67
+ query: getQueriesRouter(link.routeName),
68
+ }"
69
+ class="link-hover p-1 octopus-dropdown-item"
70
+ >
71
+ {{ link.title }}
72
+ </router-link>
73
+ </template>
74
+ </div>
75
+ </Popover>
48
76
  </div>
49
77
  <button
50
78
  class="btn-transparent saooti-menu"
@@ -52,9 +80,7 @@
52
80
  @click="onDisplayMenu(false)"
53
81
  />
54
82
  <div class="d-flex flex-column">
55
- <div class="hosted-by">
56
- {{ $t('Hosted by') }}<span class="ms-1 me-1 text-primary">Saooti</span>
57
- </div>
83
+
58
84
  <div class="d-flex justify-content-end flex-nowrap">
59
85
  <HomeDropdown :is-education="isEducation" />
60
86
  <router-link
@@ -79,6 +105,7 @@ import imageProxy from '../mixins/imageProxy';
79
105
  import { useFilterStore } from '@/stores/FilterStore';
80
106
  import { mapState } from 'pinia';
81
107
  import { RubriquageFilter } from '@/stores/class/rubrique/rubriquageFilter';
108
+ import Popover from '../misc/Popover.vue';
82
109
  import { defineComponent,defineAsyncComponent } from 'vue';
83
110
  const OrganisationChooserLight = defineAsyncComponent(() => import('../display/organisation/OrganisationChooserLight.vue'));
84
111
  export default defineComponent({
@@ -86,6 +113,7 @@ export default defineComponent({
86
113
  components: {
87
114
  OrganisationChooserLight,
88
115
  HomeDropdown,
116
+ Popover
89
117
  },
90
118
  mixins:[orgaFilter, imageProxy],
91
119
  props: {
@@ -108,7 +136,11 @@ export default defineComponent({
108
136
  return [
109
137
  {title : this.$t('Live'), routeName: 'lives', condition : (state.generalParameters.isLiveTab as boolean) &&((this.filterOrgaId && this.filterLive) || !this.filterOrgaId)},
110
138
  {title : this.$t('Podcasts'), routeName: 'podcasts', condition : true},
111
- {title : this.$t('Emissions'), routeName: 'emissions', condition : true},
139
+ {title : this.$t('Emissions'), routeName: 'emissions', condition : true}
140
+ ]
141
+ },
142
+ routerLinkInsideArray(){
143
+ return [
112
144
  {title : this.$t('Speakers'), routeName: 'participants', condition : true},
113
145
  {title : this.$t('Playlists'), routeName: 'playlists', condition : true},
114
146
  {title : this.$t('Productors'), routeName: 'productors', condition : !this.isPodcastmaker && (!this.filterOrgaId || this.isEducation)}]
@@ -204,7 +236,7 @@ export default defineComponent({
204
236
  top: 0;
205
237
  background: #fff;
206
238
  width: 100%;
207
- height: 5rem;
239
+ height: 3.5rem;
208
240
  z-index: 10;
209
241
  padding: 0 1rem;
210
242
  display: flex;
@@ -222,26 +254,19 @@ export default defineComponent({
222
254
  margin: 0.5rem;
223
255
  }
224
256
 
225
- .top-bar-logo {
226
- margin: 1rem 2rem 1rem 1rem;
227
- img {
228
- max-width: 160px !important;
229
- max-height: 2.5rem;
230
- height: 2.5rem;
231
- &.educationLogo {
232
- height: auto;
233
- }
257
+ .top-bar-logo img{
258
+ max-width: 140px !important;
259
+ max-height: 2.5rem;
260
+ height: 2.5rem;
261
+ &.educationLogo {
262
+ height: auto;
263
+ }
264
+ @media (max-width: 650px) {
265
+ height: 2rem;
234
266
  }
235
267
  }
236
- .hosted-by {
237
- font-size: 0.6rem;
238
- position: absolute;
239
- top: 5px;
240
- right: 0;
241
- }
242
- &.shadow-element {
243
- height: 3.5rem;
244
- .link-hover,.hosted-by {
268
+ &.cscrolled{
269
+ .link-hover {
245
270
  display: none;
246
271
  }
247
272
  .saooti-menu {
@@ -249,30 +274,15 @@ export default defineComponent({
249
274
  }
250
275
  }
251
276
  /** PHONES*/
252
- @media (max-width: 1470px) {
253
- height: 3.5rem;
254
- .default-multiselect-width, .hosted-by, .link-hover {
277
+ @media (max-width: 960px) {
278
+ .default-multiselect-width, .link-hover {
255
279
  display: none;
256
280
  }
257
281
  .saooti-menu {
258
282
  display: block;
259
283
  }
260
284
  }
261
- @media (max-width: 650px) {
262
- .top-bar-logo img{
263
- height: 2rem;
264
- }
265
- }
266
- @media (max-width: 380px) {
267
- .top-bar-logo img{
268
- height: 1rem;
269
- }
270
- }
271
- @media (max-width: 290px) {
272
- .top-bar-logo{
273
- display: none;
274
- }
275
- }
285
+
276
286
  }
277
287
  }
278
288
  </style>
@@ -102,7 +102,7 @@ export default defineComponent({
102
102
  align-items: center;
103
103
  justify-content: space-between;
104
104
  border: 0;
105
- border-radius: 0.8rem 0.8rem 0 0;
105
+ border-radius: $octopus-borderradius $octopus-borderradius 0 0;
106
106
  background: $octopus-primary-color;
107
107
  color: white;
108
108
  padding: 1rem;
@@ -122,7 +122,7 @@ export default defineComponent({
122
122
  outline: 0;
123
123
  height: auto !important;
124
124
  max-height: initial !important;
125
- border-radius: 0.8rem;
125
+ border-radius: $octopus-borderradius;
126
126
  box-shadow: 0 0.2rem 0.5rem rgba(40,40,40,.3);
127
127
  }
128
128
  .octopus-modal-footer{
@@ -323,7 +323,6 @@ export default defineComponent({
323
323
  border: 2px solid #eee;
324
324
  height: 200px;
325
325
  padding: 1em;
326
- border-radius: 1em;
327
326
  }
328
327
  .octopus-modal-dialog{
329
328
  max-width: 80%;
@@ -17,7 +17,7 @@
17
17
  @seeked="onSeeked"
18
18
  />
19
19
  <PlayerCompact
20
- v-if="!largeVersion"
20
+ v-if="!playerLargeVersion"
21
21
  v-model:notListenTime="notListenTime"
22
22
  :player-error="playerError"
23
23
  :hls-ready="hlsReady"
@@ -27,7 +27,7 @@
27
27
  :duration-live-position="durationLivePosition"
28
28
  :listen-time="listenTime"
29
29
  @stopPlayer="stopPlayer"
30
- @changePlayerLargeVersion="largeVersion = true"
30
+ @changePlayerLargeVersion="playerUpdateLargeVersion(true)"
31
31
  />
32
32
  <PlayerLarge
33
33
  v-else
@@ -40,7 +40,7 @@
40
40
  :duration-live-position="durationLivePosition"
41
41
  :listen-time="listenTime"
42
42
  @stopPlayer="stopPlayer"
43
- @changePlayerLargeVersion="largeVersion = false"
43
+ @changePlayerLargeVersion="playerUpdateLargeVersion(false)"
44
44
  />
45
45
  </template>
46
46
  </div>
@@ -76,23 +76,14 @@ export default defineComponent({
76
76
  displayAlertBar: false as boolean,
77
77
  hlsReady: false as boolean,
78
78
  comments: [] as Array<CommentPodcast>,
79
- showTimeline: false as boolean,
80
- largeVersion: false as boolean,
81
79
  audioUrlToPlay: "" as string
82
80
  };
83
81
  },
84
82
  computed: {
85
- ...mapState(usePlayerStore, ['playerStatus']),
83
+ ...mapState(usePlayerStore, ['playerStatus', 'playerHeight', 'playerLargeVersion']),
86
84
  display(){
87
85
  return 'STOPPED' !== this.playerStatus;
88
86
  },
89
- playerHeight() {
90
- if ('STOPPED' === this.playerStatus || this.forceHide) return 0;
91
- if (this.largeVersion) return '27rem';
92
- if (window.innerWidth > 450 && !this.showTimeline) return '5rem';
93
- if (window.innerWidth > 450 && this.showTimeline) return '6rem';
94
- return '3.5rem';
95
- },
96
87
  },
97
88
 
98
89
  watch: {
@@ -102,7 +93,7 @@ export default defineComponent({
102
93
  },
103
94
 
104
95
  methods: {
105
- ...mapActions(usePlayerStore, ['playerPlay']),
96
+ ...mapActions(usePlayerStore, ['playerPlay', 'playerUpdateLargeVersion']),
106
97
  onHidden(): void {
107
98
  if (this.forceHide) {
108
99
  this.playerPlay();
@@ -128,6 +128,7 @@ export default defineComponent({
128
128
  </script>
129
129
 
130
130
  <style lang="scss">
131
+ @import '@scss/_variables.scss';
131
132
  .octopus-app{
132
133
  .player-grow-content {
133
134
  display: flex;
@@ -138,7 +139,7 @@ export default defineComponent({
138
139
  font-size: 0.8rem;
139
140
  }
140
141
  .player-image {
141
- border-radius: 0.2rem;
142
+ border-radius: $octopus-borderradius;
142
143
  height: 2.4rem;
143
144
  width: 2.4rem;
144
145
  cursor: pointer;
@@ -1,11 +1,30 @@
1
1
  <template>
2
2
  <div class="page-box">
3
- <div
4
- v-if="loaded && !error"
5
- >
6
- <h1>{{ $t('Emission') }}</h1>
7
- <div class="d-flex">
8
- <div class="d-flex flex-column flex-grow-1">
3
+ <template v-if="loaded && !error" >
4
+ <div class="page-element-title-container">
5
+ <div class="page-element-title">
6
+ <h1>{{ $t('Emission') }}</h1>
7
+ </div>
8
+ <div class="page-element-bg" :style="backgroundDisplay"></div>
9
+ </div>
10
+ <div class="d-flex flex-column page-element">
11
+ <div class="module-box">
12
+ <div class="mb-5 descriptionText">
13
+ <img
14
+ v-lazy="proxyImageUrl(imageUrl, '330')"
15
+ width="330"
16
+ height="330"
17
+ :alt="$t('Emission name image', { name: name })"
18
+ class="img-box float-start me-3 mb-3"
19
+ >
20
+ <h2>{{ name }}</h2>
21
+ <!-- eslint-disable vue/no-v-html -->
22
+ <p
23
+ class="html-wysiwyg-content"
24
+ v-html="urlify(description)"
25
+ />
26
+ <!-- eslint-enable -->
27
+ </div>
9
28
  <EditBox
10
29
  v-if="editRight && pageParameters.isEditBox"
11
30
  :emission="emission"
@@ -13,67 +32,44 @@
13
32
  :ftp-emission="ftpEmission"
14
33
  @isUpdated="getEmissionDetails"
15
34
  />
16
- <div class="module-box">
17
- <h2>
18
- {{ name }}
19
- </h2>
20
- <div class="mb-5 mt-3 descriptionText">
21
- <img
22
- v-lazy="proxyImageUrl(imageUrl, '260')"
23
- width="260"
24
- height="260"
25
- :alt="$t('Emission name image', { name: name })"
26
- class="img-box shadow-element float-start me-3 mb-3"
27
- >
28
- <!-- eslint-disable vue/no-v-html -->
29
- <p
30
- class="html-wysiwyg-content"
31
- v-html="urlify(description)"
32
- />
33
- <!-- eslint-enable -->
34
- </div>
35
- </div>
36
- <SubscribeButtons
37
- v-if="pageParameters.isShareButtons && countLink >= 1"
38
- :emission="emission"
39
- />
40
35
  </div>
41
- <div class="d-flex flex-column flex-grow-mobile">
42
- <SharePlayer
43
- v-if="pageParameters.isSharePlayer && (authenticated || notExclusive)"
44
- :emission="emission"
45
- :exclusive="exclusive"
46
- :not-exclusive="notExclusive"
47
- :organisation-id="myOrganisationId"
48
- :is-education="isEducation"
49
- />
50
- <ShareButtons
51
- v-if="pageParameters.isShareButtons"
52
- :emission="emission"
53
- :is-vertical="!authenticated && !notExclusive"
54
- />
55
- </div>
56
- </div>
57
- <div v-if="editRight">
58
- <ShareDistribution
59
- v-if="pageParameters.isShareDistribution"
60
- :emission-id="emissionId"
36
+ <SharePlayer
37
+ v-if="pageParameters.isSharePlayer && (authenticated || notExclusive)"
38
+ :emission="emission"
39
+ :exclusive="exclusive"
40
+ :not-exclusive="notExclusive"
41
+ :organisation-id="myOrganisationId"
42
+ :is-education="isEducation"
61
43
  />
62
- </div>
63
- <template v-if="pageParameters.isDisplayPodcasts">
64
- <LiveHorizontalList
65
- v-if="!isPodcastmaker"
66
- :emission-id="emissionId"
44
+ <ShareButtons
45
+ v-if="pageParameters.isShareButtons"
46
+ :emission="emission"
47
+ />
48
+ <SubscribeButtons
49
+ v-if="pageParameters.isShareButtons && countLink >= 1"
50
+ :emission="emission"
67
51
  />
68
- <PodcastFilterList
69
- :show-count="true"
52
+ <ShareDistribution
53
+ v-if="editRight && pageParameters.isShareDistribution"
70
54
  :emission-id="emissionId"
71
- :category-filter="false"
72
- :edit-right="editRight"
73
- :productor-id="emission.orga.id"
74
55
  />
75
- </template>
76
- </div>
56
+ <template v-if="pageParameters.isDisplayPodcasts">
57
+ <LiveHorizontalList
58
+ v-if="!isPodcastmaker"
59
+ class="mx-2"
60
+ :emission-id="emissionId"
61
+ />
62
+ <PodcastFilterList
63
+ class="mx-2"
64
+ :show-count="true"
65
+ :emission-id="emissionId"
66
+ :category-filter="false"
67
+ :edit-right="editRight"
68
+ :productor-id="emission.orga.id"
69
+ />
70
+ </template>
71
+ </div>
72
+ </template>
77
73
  <ClassicLoading
78
74
  :loading-text="!loaded?$t('Loading content ...'):undefined"
79
75
  :error-text="error?$t(`Emission doesn't exist`):undefined"
@@ -169,6 +165,12 @@ export default defineComponent({
169
165
  }
170
166
  return count;
171
167
  },
168
+ backgroundDisplay():string{
169
+ if(!this.emission){
170
+ return "";
171
+ }
172
+ return `background-image: url('${this.emission.imageUrl}');`;
173
+ },
172
174
  },
173
175
  watch: {
174
176
  emissionId: {
@@ -1,8 +1,6 @@
1
1
  <template>
2
2
  <div class="page-box">
3
- <h1>{{ titleDisplay }}</h1>
4
3
  <ProductorSearch
5
- v-if="isProductorSearch"
6
4
  v-model:organisationId="organisationId"
7
5
  v-model:search-pattern="searchPattern"
8
6
  type="emission"
@@ -11,7 +9,6 @@
11
9
  :is-education="isEducation"
12
10
  :reset-rubriquage="resetRubriquage"
13
11
  :is-emission="true"
14
- :is-search-bar="isProductorSearch"
15
12
  :sort-criteria="sortEmission"
16
13
  :organisation-id="organisationId"
17
14
  :include-hidden="includeHidden"
@@ -85,12 +82,6 @@ export default defineComponent({
85
82
 
86
83
  computed: {
87
84
  ...mapState(useFilterStore, ['filterIab', 'filterRubrique']),
88
- titleDisplay(): string{
89
- return state.emissionsPage.titlePage??this.$t('All emissions');
90
- },
91
- isProductorSearch(): boolean{
92
- return (state.podcastsPage.ProductorSearch as boolean);
93
- },
94
85
  organisationRight(): boolean {
95
86
  return (true===this.authenticated && this.myOrganisationId === this.organisationId) ||
96
87
  true===state.generalParameters.isAdmin
@@ -15,7 +15,7 @@
15
15
  height="200"
16
16
  :title="$t('Animator image')"
17
17
  :alt="$t('Animator image')"
18
- class="img-box-circle mb-3"
18
+ class="img-box mb-3"
19
19
  >
20
20
  <h2 class="text-capitalize">
21
21
  {{ name }}
@@ -26,20 +26,18 @@
26
26
  v-html="urlify(description)"
27
27
  />
28
28
  <!-- eslint-enable -->
29
- <div class="d-flex mt-3">
30
- <EditBox
31
- v-if="editRight && pageParameters.isEditBox"
32
- :participant="participant"
33
- class="flex-grow-1"
34
- @participantUpdate="updateParticipant"
35
- />
36
- <ShareButtons
37
- v-if="pageParameters.isShareButtons"
38
- :participant-id="participantId"
39
- :organisation-id="participant.orga.id"
40
- :is-vertical="false"
41
- />
42
- </div>
29
+ <EditBox
30
+ v-if="editRight && pageParameters.isEditBox"
31
+ :participant="participant"
32
+ class="w-100"
33
+ @participantUpdate="updateParticipant"
34
+ />
35
+ <ShareButtons
36
+ v-if="pageParameters.isShareButtons"
37
+ class="w-100"
38
+ :participant-id="participantId"
39
+ :organisation-id="participant.orga.id"
40
+ />
43
41
  </div>
44
42
  <PodcastFilterList
45
43
  v-if="!pageParameters.lightStyle"
@@ -1,6 +1,5 @@
1
1
  <template>
2
2
  <div class="page-box">
3
- <h1>{{ titleDisplay }}</h1>
4
3
  <ProductorSearch
5
4
  v-model:organisation-id="organisationId"
6
5
  v-model:search-pattern="searchPattern"
@@ -20,7 +19,6 @@
20
19
  import { orgaComputed } from '../mixins/orgaComputed';
21
20
  import ParticipantList from '../display/participant/ParticipantList.vue';
22
21
  import ProductorSearch from '../display/filter/ProductorSearch.vue';
23
- import { state } from '../../stores/ParamSdkStore';
24
22
  import { defineComponent } from 'vue'
25
23
  export default defineComponent({
26
24
  components: {
@@ -39,11 +37,6 @@ export default defineComponent({
39
37
  organisationId: undefined as string | undefined,
40
38
  };
41
39
  },
42
- computed: {
43
- titleDisplay(): string{
44
- return state.intervenantsPage.titlePage ?? this.$t('All participants');
45
- },
46
- },
47
40
  created() {
48
41
  this.organisationId = this.productor ?this.productor: this.filterOrgaId;
49
42
  },
@@ -1,50 +1,50 @@
1
1
  <template>
2
2
  <div class="page-box">
3
- <div
3
+ <template
4
4
  v-if="loaded && !error"
5
5
  >
6
- <h1>{{ $t('Playlist') }}</h1>
7
- <div class="d-flex">
8
- <div class="d-flex flex-column flex-grow-1">
9
- <EditBox
10
- v-if="editRight && pageParameters.isEditBox"
11
- :playlist="playlist"
12
- />
13
- <div class="module-box">
6
+ <div class="page-element-title-container">
7
+ <div class="page-element-title">
8
+ <h1>{{ $t('Playlist') }}</h1>
9
+ </div>
10
+ <div class="page-element-bg" :style="backgroundDisplay"></div>
11
+ </div>
12
+ <div class="d-flex flex-column page-element">
13
+ <div class="module-box">
14
+ <div class="mb-5 mt-3 descriptionText">
15
+ <img
16
+ v-lazy="proxyImageUrl(imageUrl, '330')"
17
+ width="330"
18
+ height="330"
19
+ :alt="$t('Playlist name image', { name: name })"
20
+ class="img-box float-start me-3 mb-3"
21
+ >
14
22
  <h2>{{ name }}</h2>
15
- <div class="mb-5 mt-3 descriptionText">
16
- <img
17
- v-lazy="proxyImageUrl(imageUrl, '260')"
18
- width="260"
19
- height="260"
20
- :alt="$t('Playlist name image', { name: name })"
21
- class="img-box shadow-element float-start me-3 mb-3"
22
- >
23
- <!-- eslint-disable vue/no-v-html -->
24
- <p
25
- class="html-wysiwyg-content"
26
- v-html="urlify(description)"
27
- />
28
- <!-- eslint-enable -->
29
- </div>
23
+ <!-- eslint-disable vue/no-v-html -->
24
+ <p
25
+ class="html-wysiwyg-content"
26
+ v-html="urlify(description)"
27
+ />
28
+ <!-- eslint-enable -->
30
29
  </div>
31
- </div>
32
- <div class="d-flex flex-column flex-grow-mobile">
33
- <SharePlayer
34
- v-if="pageParameters.isSharePlayer && authenticated"
35
- :playlist="playlist"
36
- :organisation-id="myOrganisationId"
37
- :is-education="isEducation"
38
- />
39
- <ShareButtons
40
- v-if="pageParameters.isShareButtons"
30
+ <EditBox
31
+ v-if="editRight && pageParameters.isEditBox"
41
32
  :playlist="playlist"
42
- :is-vertical="!(pageParameters.isSharePlayer && authenticated)"
43
33
  />
44
34
  </div>
35
+ <SharePlayer
36
+ v-if="pageParameters.isSharePlayer && authenticated"
37
+ :playlist="playlist"
38
+ :organisation-id="myOrganisationId"
39
+ :is-education="isEducation"
40
+ />
41
+ <ShareButtons
42
+ v-if="pageParameters.isShareButtons"
43
+ :playlist="playlist"
44
+ />
45
+ <PodcastList :playlist="playlist" />
45
46
  </div>
46
- <PodcastList :playlist="playlist" />
47
- </div>
47
+ </template>
48
48
  <ClassicLoading
49
49
  :loading-text="!loaded?$t('Loading content ...'):undefined"
50
50
  :error-text="error?$t(`Playlist doesn't exist`):undefined"
@@ -112,6 +112,12 @@ export default defineComponent({
112
112
  this.myOrganisationId === this.playlist?.organisation?.id) ||
113
113
  true ===state.generalParameters.isAdmin
114
114
  },
115
+ backgroundDisplay():string{
116
+ if(!this.playlist){
117
+ return "";
118
+ }
119
+ return `background-image: url('${this.playlist.imageUrl}');`;
120
+ },
115
121
  },
116
122
  watch: {
117
123
  playlistId: {
@@ -1,6 +1,5 @@
1
1
  <template>
2
2
  <div class="page-box">
3
- <h1>{{ $t('All playlists') }}</h1>
4
3
  <router-link
5
4
  v-if="editRight && !isPodcastmaker"
6
5
  to="/main/priv/edit/playlist"
@@ -11,7 +10,6 @@
11
10
  </div>
12
11
  </router-link>
13
12
  <ProductorSearch
14
- v-if="isProductorSearch"
15
13
  v-model:organisationId="organisationId"
16
14
  v-model:search-pattern="searchPattern"
17
15
  type="playlist"
@@ -52,9 +50,6 @@ export default defineComponent({
52
50
  },
53
51
 
54
52
  computed: {
55
- isProductorSearch(): boolean {
56
- return (state.podcastsPage.ProductorSearch as boolean);
57
- },
58
53
  isPodcastmaker(): boolean {
59
54
  return (state.generalParameters.podcastmaker as boolean);
60
55
  },