@saooti/octopus-sdk 36.0.2 → 36.0.3
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.
- package/package.json +1 -1
- package/public/css/fonts/icomoon.eot +0 -0
- package/public/css/fonts/icomoon.svg +21 -12
- package/public/css/fonts/icomoon.ttf +0 -0
- package/public/css/fonts/icomoon.woff +0 -0
- package/public/css/fonts/style.css +32 -5
- package/public/img/header-emissions.webp +0 -0
- package/public/img/header-home.webp +0 -0
- package/public/img/header-intervenants.webp +0 -0
- package/public/img/header-playlists.webp +0 -0
- package/public/img/header-podcasts.webp +0 -0
- package/src/assets/bootstrap.scss +26 -12
- package/src/assets/form.scss +2 -2
- package/src/assets/general.scss +16 -26
- package/src/assets/live.scss +0 -18
- package/src/assets/multiselect.scss +15 -25
- package/src/assets/share.scss +47 -12
- package/src/components/display/categories/CategoryChooser.vue +1 -1
- package/src/components/display/categories/CategoryFilter.vue +109 -62
- package/src/components/display/categories/CategoryList.vue +9 -20
- package/src/components/display/emission/EmissionChooser.vue +1 -1
- package/src/components/display/emission/EmissionInlineList.vue +1 -1
- package/src/components/display/emission/EmissionItem.vue +5 -5
- package/src/components/display/emission/EmissionPlayerItem.vue +10 -7
- package/src/components/display/filter/MonetizableFilter.vue +1 -1
- package/src/components/display/filter/ProductorSearch.vue +1 -1
- package/src/components/display/filter/RubriqueChoice.vue +1 -1
- package/src/components/display/list/ListPaginate.vue +14 -25
- package/src/components/display/list/Paginate.vue +71 -104
- package/src/components/display/list/PaginateParams.vue +66 -0
- package/src/components/display/live/CountDown.vue +1 -1
- package/src/components/display/live/LiveItem.vue +0 -7
- package/src/components/display/organisation/OrganisationChooser.vue +1 -1
- package/src/components/display/participant/ParticipantItem.vue +6 -12
- package/src/components/display/participant/ParticipantList.vue +2 -24
- package/src/components/display/playlist/PlaylistItem.vue +10 -10
- package/src/components/display/podcasts/AnimatorsItem.vue +1 -2
- package/src/components/display/podcasts/ParticipantDescription.vue +0 -30
- package/src/components/display/podcasts/PodcastFilterList.vue +1 -1
- package/src/components/display/podcasts/PodcastImage.vue +19 -13
- package/src/components/display/podcasts/PodcastInlineListClassic.vue +1 -1
- package/src/components/display/podcasts/PodcastInlineListTemplate.vue +14 -12
- package/src/components/display/podcasts/PodcastItem.vue +15 -9
- package/src/components/display/podcasts/PodcastItemInfo.vue +18 -55
- package/src/components/display/podcasts/PodcastModuleBox.vue +52 -25
- package/src/components/display/podcasts/PodcastSwiperList.vue +20 -10
- package/src/components/display/podcasts/TagList.vue +7 -2
- package/src/components/display/rubriques/RubriqueChooser.vue +2 -2
- package/src/components/display/rubriques/RubriqueList.vue +11 -19
- package/src/components/display/sharing/PlayerParameters.vue +59 -75
- package/src/components/display/sharing/ShareButtons.vue +20 -37
- package/src/components/display/sharing/ShareButtonsIntern.vue +75 -83
- package/src/components/display/sharing/ShareDistribution.vue +3 -2
- package/src/components/display/sharing/SharePlayer.vue +50 -50
- package/src/components/display/sharing/SharePlayerColors.vue +4 -4
- package/src/components/display/sharing/SharePlayerTypes.vue +25 -27
- package/src/components/display/sharing/SubscribeButtons.vue +2 -2
- package/src/components/form/ClassicCheckbox.vue +1 -1
- package/src/components/form/ClassicSearch.vue +2 -1
- package/src/components/misc/Footer.vue +19 -15
- package/src/components/misc/HomeDropdown.vue +14 -14
- package/src/components/misc/Popover.vue +2 -1
- package/src/components/misc/ProgressBar.vue +1 -1
- package/src/components/misc/TopBar.vue +54 -44
- package/src/components/misc/modal/ClassicModal.vue +2 -2
- package/src/components/misc/modal/NewsletterModal.vue +0 -1
- package/src/components/misc/player/Player.vue +5 -14
- package/src/components/misc/player/PlayerCompact.vue +2 -1
- package/src/components/pages/Emission.vue +64 -62
- package/src/components/pages/Emissions.vue +0 -9
- package/src/components/pages/Participant.vue +13 -15
- package/src/components/pages/Participants.vue +0 -7
- package/src/components/pages/Playlist.vue +43 -37
- package/src/components/pages/Playlists.vue +0 -5
- package/src/components/pages/Podcast.vue +65 -100
- package/src/components/pages/Podcasts.vue +1 -37
- package/src/locale/de.ts +6 -1
- package/src/locale/en.ts +6 -1
- package/src/locale/es.ts +6 -1
- package/src/locale/fr.ts +6 -1
- package/src/locale/it.ts +6 -1
- package/src/locale/sl.ts +6 -1
- package/src/sass/_variables.scss +6 -1
- package/src/stores/ParamSdkStore.ts +14 -22
- 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="
|
|
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
|
|
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>
|
|
@@ -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,'
|
|
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
|
|
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, '
|
|
16
|
-
width="
|
|
17
|
-
height="
|
|
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="
|
|
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
|
|
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, '
|
|
24
|
-
width="
|
|
25
|
-
height="
|
|
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"
|
|
@@ -249,16 +249,16 @@ 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:
|
|
259
|
+
max-width: $octopus-item-size;
|
|
260
260
|
height: min-content;
|
|
261
|
-
border-radius:
|
|
261
|
+
border-radius: $octopus-borderradius;
|
|
262
262
|
overflow: hidden;
|
|
263
263
|
.emission-item-border-color {
|
|
264
264
|
border-color: #ddd;
|
|
@@ -290,6 +290,9 @@ export default defineComponent({
|
|
|
290
290
|
flex-wrap: nowrap;
|
|
291
291
|
}
|
|
292
292
|
}
|
|
293
|
+
@media (max-width: 450px) {
|
|
294
|
+
max-width: $octopus-mobile-item-size;
|
|
295
|
+
}
|
|
293
296
|
}
|
|
294
297
|
|
|
295
298
|
</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
|
|
15
|
+
<div class="saooti-down octopus-arrow-down-absolute" />
|
|
16
16
|
</label>
|
|
17
17
|
</div>
|
|
18
18
|
</template>
|
|
@@ -10,25 +10,29 @@
|
|
|
10
10
|
<template v-if="!loading">
|
|
11
11
|
<div
|
|
12
12
|
v-if="!justSizeChosen"
|
|
13
|
-
class="
|
|
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
|
-
<
|
|
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
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
<div class="d-flex
|
|
7
|
-
<
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
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
|
-
<
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
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
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
</
|
|
25
|
-
<div
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
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
|
-
|
|
35
|
-
|
|
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-
|
|
68
|
-
:key="paginateButton.title"
|
|
39
|
+
v-else
|
|
69
40
|
class="btn"
|
|
70
|
-
:
|
|
71
|
-
|
|
72
|
-
@click="paginateButton.action"
|
|
41
|
+
:class="{ 'active': page === (pageNumber-1) }"
|
|
42
|
+
@click="changeFirst((pageNumber-1)*rowsPerPage)"
|
|
73
43
|
>
|
|
74
|
-
|
|
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'
|
|
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
|
-
|
|
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
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
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: white;
|
|
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>
|
|
@@ -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"
|
|
@@ -18,9 +18,9 @@
|
|
|
18
18
|
height="200"
|
|
19
19
|
:title="$t('Animator image')"
|
|
20
20
|
:alt="$t('Animator image')"
|
|
21
|
-
class="img-box
|
|
21
|
+
class="img-box border"
|
|
22
22
|
>
|
|
23
|
-
<div class="d-flex align-items-center
|
|
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:
|
|
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:
|
|
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
|
-
|
|
153
|
+
white 40%
|
|
160
154
|
);
|
|
161
155
|
}
|
|
162
156
|
}
|
|
@@ -11,7 +11,7 @@
|
|
|
11
11
|
>
|
|
12
12
|
<template #list>
|
|
13
13
|
<div
|
|
14
|
-
class="
|
|
14
|
+
class="podcast-list"
|
|
15
15
|
>
|
|
16
16
|
<template
|
|
17
17
|
v-for="p in displayArray"
|
|
@@ -138,26 +138,4 @@ export default defineComponent({
|
|
|
138
138
|
},
|
|
139
139
|
},
|
|
140
140
|
})
|
|
141
|
-
</script>
|
|
142
|
-
|
|
143
|
-
<style lang="scss">
|
|
144
|
-
.octopus-app{
|
|
145
|
-
.participant-list {
|
|
146
|
-
align-self: stretch;
|
|
147
|
-
flex-grow: 1;
|
|
148
|
-
margin: 0;
|
|
149
|
-
padding: 0;
|
|
150
|
-
display: grid; /* 1 */
|
|
151
|
-
grid-template-columns: repeat(auto-fill, 14rem); /* 2 */
|
|
152
|
-
grid-gap: 2rem; /* 3 */
|
|
153
|
-
justify-content: space-between; /* 4 */
|
|
154
|
-
}
|
|
155
|
-
/** PHONES*/
|
|
156
|
-
@media (max-width: 655px) {
|
|
157
|
-
.participant-list {
|
|
158
|
-
align-self: auto;
|
|
159
|
-
grid-gap: 0;
|
|
160
|
-
}
|
|
161
|
-
}
|
|
162
|
-
}
|
|
163
|
-
</style>
|
|
141
|
+
</script>
|