@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
@@ -11,7 +11,7 @@
11
11
  v-for="category in categories"
12
12
  :ref="'category' + category.id"
13
13
  :key="category.id"
14
- class="category-item text-dark bg-white"
14
+ class="btn btn-primary btn-on-dark m-1"
15
15
  @click="checkIfFilter(category)"
16
16
  >
17
17
  {{ category.name }}
@@ -20,7 +20,7 @@
20
20
  <button
21
21
  v-show="hidenCategories.length"
22
22
  id="categories-dropdown"
23
- class="btn admin-button saooti-more"
23
+ class="btn btn-primary btn-on-dark m-1 saooti-more"
24
24
  :title="$t('See more')"
25
25
  />
26
26
  <Popover
@@ -148,12 +148,18 @@ export default defineComponent({
148
148
  }
149
149
  categoryList.style.justifyContent = 'flex-start';
150
150
  this.hidenCategories.length = 0;
151
+ this.categories.forEach((element: Category) => {
152
+ const el = (this.$refs['category' + element.id] as Array<HTMLElement>)[0];
153
+ if (!el) return;
154
+ if (el.classList.contains('hid')) {
155
+ el.classList.remove('hid');
156
+ }
157
+ });
151
158
  this.categories.forEach((element: Category) => {
152
159
  const el = (this.$refs['category' + element.id] as Array<HTMLElement>)[0];
153
160
  if (!el) return;
154
161
  const parent = el.parentElement;
155
162
  if (parent && el.offsetLeft + el.clientWidth <= parent.clientWidth - 20) {
156
- el.classList.remove('hid');
157
163
  return;
158
164
  }
159
165
  this.hidenCategories.push(element);
@@ -183,23 +189,6 @@ export default defineComponent({
183
189
  overflow: hidden;
184
190
  flex-grow: 1;
185
191
  width: 0;
186
- padding: 0 4rem;
187
- }
188
- .category-item {
189
- font-size: 0.6rem;
190
- margin: 0.2rem;
191
- padding: 0.5rem;
192
- height: 1.5rem;
193
- border-radius: 1.5rem;
194
- border: 0;
195
- display: flex;
196
- align-items: center;
197
- justify-content: center;
198
- white-space: nowrap;
199
- flex-shrink: 0;
200
- .router-link-active,&:hover {
201
- background: $octopus-secondary-color !important;
202
- }
203
192
  }
204
193
  }
205
194
  </style>
@@ -71,7 +71,7 @@
71
71
  <template #caret="">
72
72
  <div class="position-relative">
73
73
  <span
74
- class="saooti-down octopus-arrow-down octopus-arrow-down-absolute"
74
+ class="saooti-down octopus-arrow-down-absolute"
75
75
  />
76
76
  </div>
77
77
  </template>
@@ -221,7 +221,7 @@ export default defineComponent({
221
221
  },
222
222
  preloadImage(url: string): void {
223
223
  const img = new Image();
224
- img.src = this.proxyImageUrl(url,'260');
224
+ img.src = this.proxyImageUrl(url,'330');
225
225
  },
226
226
  async fetchRubriques(): Promise<void> {
227
227
  const data = await octopusApi.fetchData<Rubriquage>(0, 'rubriquage/'+this.displayRubriquage);
@@ -1,6 +1,6 @@
1
1
  <template>
2
2
  <div
3
- class="mt-3 emission-item-container shadow-element"
3
+ class="mt-3 emission-item-container"
4
4
  >
5
5
  <router-link
6
6
  :to="{
@@ -12,9 +12,9 @@
12
12
  class="d-flex flex-grow-1 text-dark"
13
13
  >
14
14
  <img
15
- v-lazy="proxyImageUrl(emission.imageUrl, '260')"
16
- width="260"
17
- height="260"
15
+ v-lazy="proxyImageUrl(emission.imageUrl, '330')"
16
+ width="330"
17
+ height="330"
18
18
  class="img-box"
19
19
  :title="$t('Emission name image', {name:emission.name})"
20
20
  :alt="$t('Emission name image', {name:emission.name})"
@@ -41,7 +41,7 @@
41
41
  </div>
42
42
  <router-link
43
43
  v-if="!isPodcastmaker"
44
- class="emission-producer mt-auto"
44
+ class="text-dark mt-auto"
45
45
  :to="{
46
46
  name: 'productor',
47
47
  params: { productorId: emission.orga.id },
@@ -1,6 +1,6 @@
1
1
  <template>
2
2
  <div
3
- class="emission-player-container shadow-element"
3
+ class="emission-player-container"
4
4
  >
5
5
  <router-link
6
6
  :to="{
@@ -20,9 +20,9 @@
20
20
  class="img-box rounded-0"
21
21
  >
22
22
  <img
23
- v-lazy="proxyImageUrl(emission.imageUrl, '260')"
24
- width="260"
25
- height="260"
23
+ v-lazy="proxyImageUrl(emission.imageUrl, '330')"
24
+ width="330"
25
+ height="330"
26
26
  :title="$t('Emission name image', {name:emission.name})"
27
27
  :alt="$t('Emission name image', {name:emission.name})"
28
28
  class="img-box rounded-0"
@@ -54,7 +54,7 @@
54
54
  <div
55
55
  v-for="p in podcasts"
56
56
  :key="p.podcastId"
57
- class="border-top emission-item-border-color p-2 secondary-bg d-flex flex-column"
57
+ class="border-top emission-item-border-color p-2 d-flex flex-column"
58
58
  >
59
59
  <router-link
60
60
  v-if="isProgressBar"
@@ -93,7 +93,7 @@
93
93
  <!-- eslint-enable -->
94
94
  </div>
95
95
  </router-link>
96
- <PodcastPlayBar :podcast="p" />
96
+ <PodcastPlayBar :podcast-id="p.podcastId" :duration="p.duration" />
97
97
  </div>
98
98
  <button
99
99
  v-if="
@@ -233,8 +233,8 @@ export default defineComponent({
233
233
  this.podcasts = data.result;
234
234
  this.$nextTick(() => {
235
235
  for (let index = 0, len = this.podcasts.length; index < len; index++) {
236
- const podcastDesc = (this.$refs['descriptionPodcast'+this.podcasts[index].podcastId] as Array<HTMLElement>)[0];
237
- const podcastDescContainer = (this.$refs['descriptionPodcastContainer'+this.podcasts[index].podcastId] as Array<HTMLElement>)[0];
236
+ const podcastDesc = (this.$refs['descriptionPodcast'+this.podcasts[index].podcastId] as Array<HTMLElement>)?.[0] ?? null;
237
+ const podcastDescContainer = (this.$refs['descriptionPodcastContainer'+this.podcasts[index].podcastId] as Array<HTMLElement>)?.[0] ?? null;
238
238
  if (
239
239
  null !== podcastDesc && null !== podcastDescContainer &&
240
240
  podcastDesc.clientHeight > podcastDescContainer.clientHeight
@@ -249,16 +249,17 @@ export default defineComponent({
249
249
  </script>
250
250
 
251
251
  <style lang="scss">
252
-
252
+ @import '@scss/_variables.scss';
253
253
  .emission-player-container {
254
254
  list-style: none;
255
255
  background: #fff;
256
256
  display: flex;
257
257
  flex-direction: column;
258
258
  width: 100%;
259
- max-width: 13rem;
259
+ max-width: $octopus-item-size;
260
260
  height: min-content;
261
- border-radius: 0.8rem;
261
+ border: 2px solid #eee;
262
+ border-radius: $octopus-borderradius;
262
263
  overflow: hidden;
263
264
  .emission-item-border-color {
264
265
  border-color: #ddd;
@@ -290,6 +291,9 @@ export default defineComponent({
290
291
  flex-wrap: nowrap;
291
292
  }
292
293
  }
294
+ @media (max-width: 450px) {
295
+ max-width: $octopus-mobile-item-size;
296
+ }
293
297
  }
294
298
 
295
299
  </style>
@@ -12,7 +12,7 @@
12
12
  <option value="YES">{{ $t('Authorized advertising') }}</option>
13
13
  <option value="NO">{{ $t('Prohibited advertising') }}</option>
14
14
  </select>
15
- <div class="saooti-down octopus-arrow-down octopus-arrow-down-absolute" />
15
+ <div class="saooti-down octopus-arrow-down-absolute" />
16
16
  </label>
17
17
  </div>
18
18
  </template>
@@ -139,7 +139,7 @@ export default defineComponent({
139
139
  .filter-speech-bubble {
140
140
  position: absolute;
141
141
  background: $octopus-primary-color;
142
- border-radius: 0.4em;
142
+ border-radius:$octopus-borderradius;
143
143
  width: 10rem;
144
144
  right: 4rem;
145
145
  padding: 5px;
@@ -13,7 +13,7 @@
13
13
  >{{ rubriquage.title }}</option>
14
14
  </select>
15
15
  <div
16
- class="saooti-down octopus-arrow-down octopus-arrow-down-absolute"
16
+ class="saooti-down octopus-arrow-down-absolute"
17
17
  />
18
18
  </label>
19
19
  <template v-if="rubriquageId">
@@ -10,25 +10,29 @@
10
10
  <template v-if="!loading">
11
11
  <div
12
12
  v-if="!justSizeChosen"
13
- class="paginate-section mb-2 page-box"
13
+ class="d-flex justify-content-between align-items-center flex-grow-1 w-100"
14
14
  >
15
15
  <div class="text-secondary">
16
16
  <template v-if="textCount && (windowWidth > 1300 || windowWidth<=960)">
17
17
  {{ textCount }}
18
18
  </template>
19
19
  </div>
20
- <Paginate
21
- v-if="!isPhone && !justSizeChosen"
22
- :first="first"
20
+ <PaginateParams
21
+ v-if="!isPhone && !justSizeChosen && totalCount > 0"
23
22
  :rows-per-page="rowsPerPage"
24
- :total-count="totalCount"
25
- :range-size="rangeSize"
26
- @update:first="changeFirst"
27
23
  @update:rowsPerPage="changeSize"
28
24
  />
29
25
  </div>
30
26
  </template>
31
27
  <slot name="list" />
28
+ <Paginate
29
+ v-if="!isPhone && !justSizeChosen && totalCount > 0"
30
+ :first="first"
31
+ :rows-per-page="rowsPerPage"
32
+ :total-count="totalCount"
33
+ :range-size="rangeSize"
34
+ @update:first="changeFirst"
35
+ />
32
36
  <button
33
37
  v-show="((first+rowsPerPage) < totalCount) && (isPhone || justSizeChosen)"
34
38
  :disabled="loading"
@@ -52,12 +56,14 @@
52
56
  import domHelper from '../../../helper/dom';
53
57
  import ClassicLoading from '../../form/ClassicLoading.vue';
54
58
  import { state } from '../../../stores/ParamSdkStore';
59
+ import PaginateParams from './PaginateParams.vue';
55
60
  import Paginate from './Paginate.vue';
56
61
  import { defineComponent } from 'vue'
57
62
  export default defineComponent({
58
63
  name: 'ListPaginate',
59
64
  components: {
60
65
  Paginate,
66
+ PaginateParams,
61
67
  ClassicLoading
62
68
  },
63
69
  props: {
@@ -132,21 +138,4 @@ export default defineComponent({
132
138
  }
133
139
  }
134
140
  })
135
- </script>
136
- <style lang="scss">
137
- .octopus-app .page-box.paginate-section{
138
- display: flex;
139
- justify-content: space-between;
140
- align-items: center;
141
- width: 99vw;
142
- position: sticky;
143
- top: 3.5rem;
144
- z-index: 9;
145
- padding-bottom: 1rem;
146
- padding-top: 1rem;
147
- @media (max-width: 960px) {
148
- position: initial;
149
- justify-content:center;
150
- }
151
- }
152
- </style>
141
+ </script>
@@ -1,94 +1,76 @@
1
1
  <template>
2
- <div
3
- v-if="totalCount > 0"
4
- class="paginate"
5
- >
6
- <div class="d-flex align-items-center justify-content-center">
7
- <label for="rows-per-page-select">{{ $t('Items per page :') }}</label>
8
- <select
9
- id="rows-per-page-select"
10
- :value="rowsPerPage"
11
- class="c-hand p-1 mx-2"
12
- @change="$emit('update:rowsPerPage',parseInt($event.target.value,10))"
2
+ <div class="paginate-fixed" :style="'bottom:'+playerHeight">
3
+ <div class="mx-2">
4
+ {{ $t('Showing items number', {page: (page+1), totalPage: totalPage}) }}
5
+ </div>
6
+ <div class="d-flex flex-nowrap">
7
+ <button
8
+ v-for="paginateButton in buttonsLeft"
9
+ :key="paginateButton.title"
10
+ class="btn"
11
+ :title="paginateButton.title"
12
+ :disabled="paginateButton.disabled"
13
+ @click="paginateButton.action"
13
14
  >
14
- <option
15
- v-for="option in optionsRowsPerPage"
16
- :key="option"
17
- :value="option"
15
+ <svg
16
+ xmlns="http://www.w3.org/2000/svg"
17
+ width="16"
18
+ height="16"
19
+ fill="currentColor"
20
+ viewBox="0 0 16 16"
18
21
  >
19
- {{ option }}
20
- </option>
21
- </select>
22
- <div class="mx-2">
23
- {{ $t('Showing items number', {page: (page+1), totalPage: totalPage}) }}
24
- </div>
25
- <div class="d-flex flex-nowrap">
26
- <button
27
- v-for="paginateButton in buttonsLeft"
28
- :key="paginateButton.title"
22
+ <path
23
+ fill-rule="evenodd"
24
+ :d="paginateButton.path"
25
+ />
26
+ </svg>
27
+ </button>
28
+ <div
29
+ v-for="pageNumber in pagination"
30
+ :key="pageNumber"
31
+ >
32
+ <span
33
+ v-if="null === pageNumber"
29
34
  class="btn"
30
- :title="paginateButton.title"
31
- :disabled="paginateButton.disabled"
32
- @click="paginateButton.action"
33
35
  >
34
- <svg
35
- xmlns="http://www.w3.org/2000/svg"
36
- width="16"
37
- height="16"
38
- fill="currentColor"
39
- viewBox="0 0 16 16"
40
- >
41
- <path
42
- fill-rule="evenodd"
43
- :d="paginateButton.path"
44
- />
45
- </svg>
46
- </button>
47
- <div
48
- v-for="pageNumber in pagination"
49
- :key="pageNumber"
50
- >
51
- <span
52
- v-if="null === pageNumber"
53
- class="btn"
54
- >
55
- ...
56
- </span>
57
- <button
58
- v-else
59
- class="btn"
60
- :class="{ 'active': page === (pageNumber-1) }"
61
- @click="changeFirst((pageNumber-1)*rowsPerPage)"
62
- >
63
- {{ pageNumber }}
64
- </button>
65
- </div>
36
+ ...
37
+ </span>
66
38
  <button
67
- v-for="paginateButton in buttonsRight"
68
- :key="paginateButton.title"
39
+ v-else
69
40
  class="btn"
70
- :title="paginateButton.title"
71
- :disabled="paginateButton.disabled"
72
- @click="paginateButton.action"
41
+ :class="{ 'active': page === (pageNumber-1) }"
42
+ @click="changeFirst((pageNumber-1)*rowsPerPage)"
73
43
  >
74
- <svg
75
- xmlns="http://www.w3.org/2000/svg"
76
- width="16"
77
- height="16"
78
- fill="currentColor"
79
- viewBox="0 0 16 16"
80
- >
81
- <path
82
- fill-rule="evenodd"
83
- :d="paginateButton.path"
84
- />
85
- </svg>
44
+ {{ pageNumber }}
86
45
  </button>
87
46
  </div>
47
+ <button
48
+ v-for="paginateButton in buttonsRight"
49
+ :key="paginateButton.title"
50
+ class="btn"
51
+ :title="paginateButton.title"
52
+ :disabled="paginateButton.disabled"
53
+ @click="paginateButton.action"
54
+ >
55
+ <svg
56
+ xmlns="http://www.w3.org/2000/svg"
57
+ width="16"
58
+ height="16"
59
+ fill="currentColor"
60
+ viewBox="0 0 16 16"
61
+ >
62
+ <path
63
+ fill-rule="evenodd"
64
+ :d="paginateButton.path"
65
+ />
66
+ </svg>
67
+ </button>
88
68
  </div>
89
69
  </div>
90
70
  </template>
91
71
  <script lang="ts">
72
+ import { usePlayerStore } from '@/stores/PlayerStore';
73
+ import { mapState } from 'pinia';
92
74
  import { defineComponent } from 'vue';
93
75
  export default defineComponent({
94
76
  name: "Paginate",
@@ -100,15 +82,10 @@ export default defineComponent({
100
82
  rangeSize:{default:1, type: Number}
101
83
  },
102
84
 
103
- emits:['update:first', 'update:rowsPerPage'],
104
-
105
- data() {
106
- return {
107
- optionsRowsPerPage: [10, 20, 30, 40, 50, 60] as Array<number>,
108
- };
109
- },
85
+ emits:['update:first'],
110
86
 
111
87
  computed:{
88
+ ...mapState(usePlayerStore, ['playerHeight']),
112
89
  buttonsLeft(){
113
90
  return [{
114
91
  title: this.$t('Go to first page'), disabled: 0===this.first, action: ()=>{this.changeFirst(0)}, path:"M11.854 3.646a.5.5 0 0 1 0 .708L8.207 8l3.647 3.646a.5.5 0 0 1-.708.708l-4-4a.5.5 0 0 1 0-.708l4-4a.5.5 0 0 1 .708 0zM4.5 1a.5.5 0 0 0-.5.5v13a.5.5 0 0 0 1 0v-13a.5.5 0 0 0-.5-.5z"},
@@ -145,10 +122,7 @@ export default defineComponent({
145
122
  return (this.totalPage-1)*this.rowsPerPage;
146
123
  }
147
124
  },
148
- created(){
149
- this.initRowsPerPage();
150
- },
151
-
125
+
152
126
  methods:{
153
127
  getPaginationArrayWithEllipsis(rangeStart: number, rangeEnd:number, minPaginationElems:number){
154
128
  const res = [];
@@ -176,13 +150,6 @@ export default defineComponent({
176
150
  res.push(this.totalPage);
177
151
  }
178
152
  return res;
179
- },
180
- initRowsPerPage(){
181
- if(this.optionsRowsPerPage.includes(this.rowsPerPage)){
182
- return;
183
- }
184
- this.optionsRowsPerPage.push(this.rowsPerPage);
185
- this.optionsRowsPerPage.sort((a,b)=>a-b);
186
153
  },
187
154
  changeFirst(newFirst: number){
188
155
  this.$emit('update:first', newFirst);
@@ -192,15 +159,15 @@ export default defineComponent({
192
159
  </script>
193
160
  <style lang="scss">
194
161
  @import '@scss/_variables.scss';
195
- .octopus-app .paginate{
196
- display: flex;
197
- justify-content: flex-end;
198
- select{
199
- border-top: 0;
200
- border-right: 0;
201
- border-left: 0;
202
- background: transparent !important;
203
- }
162
+ .octopus-app .paginate-fixed{
163
+ display: flex;
164
+ align-items: center;
165
+ justify-content: flex-end;
166
+ width: 100%;
167
+ position: sticky;
168
+ background: $octopus-background;
169
+ padding: 0.5rem 0;
170
+ z-index: 10;
204
171
  .btn{
205
172
  border-radius: 0;
206
173
  &.active{
@@ -0,0 +1,66 @@
1
+ <template>
2
+ <div class="paginate">
3
+ <div class="d-flex align-items-center justify-content-center">
4
+ <label for="rows-per-page-select">{{ $t('Items per page :') }}</label>
5
+ <select
6
+ id="rows-per-page-select"
7
+ :value="rowsPerPage"
8
+ class="c-hand p-1 mx-2"
9
+ @change="$emit('update:rowsPerPage',parseInt($event.target.value,10))"
10
+ >
11
+ <option
12
+ v-for="option in optionsRowsPerPage"
13
+ :key="option"
14
+ :value="option"
15
+ >
16
+ {{ option }}
17
+ </option>
18
+ </select>
19
+ </div>
20
+ </div>
21
+ </template>
22
+ <script lang="ts">
23
+ import { defineComponent } from 'vue';
24
+ export default defineComponent({
25
+ name: "Paginate",
26
+
27
+ props: {
28
+ rowsPerPage:{ default:0, type:Number}
29
+ },
30
+
31
+ emits:['update:rowsPerPage'],
32
+
33
+ data() {
34
+ return {
35
+ optionsRowsPerPage: [10, 20, 30, 40, 50, 60] as Array<number>,
36
+ };
37
+ },
38
+ created(){
39
+ this.initRowsPerPage();
40
+ },
41
+
42
+ methods:{
43
+ initRowsPerPage(){
44
+ if(this.optionsRowsPerPage.includes(this.rowsPerPage)){
45
+ return;
46
+ }
47
+ this.optionsRowsPerPage.push(this.rowsPerPage);
48
+ this.optionsRowsPerPage.sort((a,b)=>a-b);
49
+ },
50
+ }
51
+
52
+ });
53
+ </script>
54
+ <style lang="scss">
55
+ @import '@scss/_variables.scss';
56
+ .octopus-app .paginate{
57
+ display: flex;
58
+ justify-content: flex-end;
59
+ select{
60
+ border-top: 0;
61
+ border-right: 0;
62
+ border-left: 0;
63
+ background: transparent !important;
64
+ }
65
+ }
66
+ </style>
@@ -1,5 +1,5 @@
1
1
  <template>
2
- <div class="d-flex flex-column align-items-center text-danger">
2
+ <div class="d-flex flex-column align-items-center text-white">
3
3
  <h3>{{ $t('This live will start') }}</h3>
4
4
  <h3
5
5
  v-if="countdownTimer"
@@ -30,13 +30,6 @@
30
30
  >
31
31
  <PodcastImage
32
32
  class="me-3"
33
- :class="
34
- fetchConference &&
35
- 'null' !== fetchConference &&
36
- fetchConference.status
37
- ? fetchConference.status.toLowerCase() + '-shadow'
38
- : ''
39
- "
40
33
  :podcast="live"
41
34
  :hide-play="false"
42
35
  :playing-podcast="false"
@@ -104,7 +104,7 @@
104
104
  class="position-relative"
105
105
  >
106
106
  <span
107
- class="saooti-down octopus-arrow-down octopus-arrow-down-absolute"
107
+ class="saooti-down octopus-arrow-down-absolute"
108
108
  />
109
109
  </div>
110
110
  </template>
@@ -18,9 +18,9 @@
18
18
  height="200"
19
19
  :title="$t('Animator image')"
20
20
  :alt="$t('Animator image')"
21
- class="img-box-circle"
21
+ class="img-box border"
22
22
  >
23
- <div class="d-flex align-items-center participant-name">
23
+ <div class="d-flex align-items-center h4 justify-content-center mt-2">
24
24
  <span
25
25
  v-if="!activeParticipant && !isPodcastmaker && editRight"
26
26
  :title="$t('Participant have not podcasts')"
@@ -121,27 +121,21 @@ export default defineComponent({
121
121
  })
122
122
  </script>
123
123
  <style lang="scss">
124
+ @import '@scss/_variables.scss';
124
125
  .octopus-app{
125
126
  .participant-item-container {
126
127
  list-style: none;
127
- border-radius: 2rem;
128
+ border-radius: $octopus-borderradius;
128
129
  display: flex;
129
130
  flex-direction: column;
130
131
  margin: 1rem 0;
131
132
  align-items: center;
132
133
 
133
- .participant-name {
134
- margin-top: 1rem;
135
- font-size: 0.9rem;
136
- font-weight: 600;
137
- text-align: center;
138
- }
139
-
140
134
  .participant-description {
141
135
  overflow: hidden;
142
136
  margin-top: 0.5em;
143
137
  word-break: break-word;
144
- max-height: 4rem;
138
+ max-height: 3rem;
145
139
  position: relative;
146
140
  &.after-participant-description:after {
147
141
  content: '...';
@@ -156,7 +150,7 @@ export default defineComponent({
156
150
  background: linear-gradient(
157
151
  to bottom,
158
152
  rgba(255, 255, 255, 0),
159
- #fafafa 40%
153
+ white 40%
160
154
  );
161
155
  }
162
156
  }