@saooti/octopus-sdk 29.0.1 → 29.0.2
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/README.md +1 -0
- package/package.json +5 -1
- package/src/assets/bootstrap-diff.scss +4 -0
- package/src/assets/form.scss +19 -0
- package/src/assets/modal.scss +9 -10
- package/src/components/display/categories/CategoryList.vue +20 -19
- package/src/components/display/comments/AddCommentModal.vue +67 -67
- package/src/components/display/comments/CommentItem.vue +10 -7
- package/src/components/display/emission/EmissionInlineList.vue +4 -2
- package/src/components/display/filter/AdvancedSearch.vue +40 -27
- package/src/components/display/podcasts/ParticipantDescription.vue +20 -6
- package/src/components/display/rubriques/RubriqueList.vue +20 -19
- package/src/components/display/sharing/PlayerParameters.vue +8 -4
- package/src/components/display/sharing/ShareButtons.vue +11 -11
- package/src/components/misc/HomeDropdown.vue +116 -87
- package/src/components/misc/modal/MessageModal.vue +51 -50
- package/src/components/misc/modal/NewsletterModal.vue +88 -82
- package/src/components/misc/modal/QrCodeModal.vue +25 -21
- package/src/components/misc/modal/ShareModalPlayer.vue +91 -51
- package/src/components/pages/Participant.vue +2 -1
- package/src/main.ts +8 -3
package/README.md
CHANGED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@saooti/octopus-sdk",
|
|
3
|
-
"version": "29.0.
|
|
3
|
+
"version": "29.0.2",
|
|
4
4
|
"private": false,
|
|
5
5
|
"description": "Javascript SDK for using octopus",
|
|
6
6
|
"author": "Saooti",
|
|
@@ -25,9 +25,11 @@
|
|
|
25
25
|
"core-js": "^3.18.1",
|
|
26
26
|
"hls.js": "^1.0.10",
|
|
27
27
|
"humanize-duration": "^3.27.0",
|
|
28
|
+
"jquery": "^3.6.0",
|
|
28
29
|
"luxon": "^2.0.2",
|
|
29
30
|
"moment": "^2.29.0",
|
|
30
31
|
"moment-locales-webpack-plugin": "^1.2.0",
|
|
32
|
+
"popper.js": "^1.16.1",
|
|
31
33
|
"portal-vue": "^2.1.7",
|
|
32
34
|
"qrcode.vue": "^3.3.2",
|
|
33
35
|
"sass": "^1.42.1",
|
|
@@ -45,7 +47,9 @@
|
|
|
45
47
|
"webpack": "^5.55.1"
|
|
46
48
|
},
|
|
47
49
|
"devDependencies": {
|
|
50
|
+
"@types/bootstrap": "^5.1.6",
|
|
48
51
|
"@types/hls.js": "^1.0.0",
|
|
52
|
+
"@types/jquery": "^3.5.6",
|
|
49
53
|
"@types/vue-datetime": "^1.0.1",
|
|
50
54
|
"@typescript-eslint/eslint-plugin": "^4.32.0",
|
|
51
55
|
"@typescript-eslint/parser": "^4.32.0",
|
|
@@ -8,6 +8,7 @@
|
|
|
8
8
|
}
|
|
9
9
|
}
|
|
10
10
|
.btn{
|
|
11
|
+
font-size:.7rem;
|
|
11
12
|
border-radius: 50px;
|
|
12
13
|
background: $octopus-light-secondary-color;
|
|
13
14
|
transition: background .2s, border .2s, box-shadow .2s, color .2s;
|
|
@@ -230,6 +231,9 @@
|
|
|
230
231
|
//border: 1px solid #ddd;
|
|
231
232
|
border-radius: 5px;
|
|
232
233
|
}
|
|
234
|
+
.dropdown-toggle-no-caret::after{
|
|
235
|
+
display: none;
|
|
236
|
+
}
|
|
233
237
|
.dropdown-menu {
|
|
234
238
|
padding: $dropdown-padding-y 0.5rem;
|
|
235
239
|
@media (max-width: 450px) {
|
package/src/assets/form.scss
CHANGED
|
@@ -81,4 +81,23 @@ background: $octopus-primary-color;
|
|
|
81
81
|
.theme-saooti .vdatetime-time-picker__item--selected,
|
|
82
82
|
.theme-saooti .vdatetime-popup__actions__button {
|
|
83
83
|
color: $octopus-primary-color;
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
//Navigation Bar
|
|
87
|
+
.nav{
|
|
88
|
+
border-bottom: 0.05rem solid #ddd;
|
|
89
|
+
.nav-item{
|
|
90
|
+
flex-grow: 1;
|
|
91
|
+
text-align: center;
|
|
92
|
+
a {
|
|
93
|
+
color: black;
|
|
94
|
+
}
|
|
95
|
+
.nav-link{
|
|
96
|
+
border-bottom: 0.1rem solid transparent;
|
|
97
|
+
}
|
|
98
|
+
.active{
|
|
99
|
+
border-bottom-color: $octopus-primary-color;
|
|
100
|
+
color: $octopus-primary-color;
|
|
101
|
+
}
|
|
102
|
+
}
|
|
84
103
|
}
|
package/src/assets/modal.scss
CHANGED
|
@@ -1,14 +1,13 @@
|
|
|
1
1
|
//Modal
|
|
2
|
-
.modal
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
transition: opacity .3s ease;
|
|
2
|
+
.modal{
|
|
3
|
+
display: block;
|
|
4
|
+
}
|
|
5
|
+
.modal-backdrop{
|
|
6
|
+
|
|
7
|
+
}
|
|
8
|
+
.modal-backdrop {
|
|
9
|
+
opacity: 0.5;
|
|
10
|
+
z-index: 0;
|
|
12
11
|
}
|
|
13
12
|
|
|
14
13
|
.modal-wrapper {
|
|
@@ -14,28 +14,29 @@
|
|
|
14
14
|
{{ category.name }}
|
|
15
15
|
</button>
|
|
16
16
|
</div>
|
|
17
|
-
<
|
|
17
|
+
<div
|
|
18
18
|
v-show="hidenCategories.length"
|
|
19
|
-
|
|
20
|
-
toggle-class="text-decoration-none text-dark category-item category-item-plus"
|
|
21
|
-
no-caret
|
|
22
|
-
:aria-label="$t('See more')"
|
|
19
|
+
class="dropdown btn-group"
|
|
23
20
|
>
|
|
24
|
-
<
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
</template>
|
|
30
|
-
<b-dropdown-item
|
|
31
|
-
v-for="category in hidenCategories"
|
|
32
|
-
:key="category.id"
|
|
33
|
-
class="me-3"
|
|
34
|
-
@click="checkIfFilter(category)"
|
|
21
|
+
<button
|
|
22
|
+
class="btn dropdown-toggle btn-secondary text-decoration-none text-dark category-item category-item-plus dropdown-toggle-no-caret"
|
|
23
|
+
data-bs-toggle="dropdown"
|
|
24
|
+
aria-expanded="false"
|
|
25
|
+
:aria-label="$t('See more')"
|
|
35
26
|
>
|
|
36
|
-
|
|
37
|
-
</
|
|
38
|
-
|
|
27
|
+
<i class="saooti-plus" />
|
|
28
|
+
</button>
|
|
29
|
+
<ul class="dropdown-menu dropdown-menu-right px-4">
|
|
30
|
+
<div
|
|
31
|
+
v-for="category in hidenCategories"
|
|
32
|
+
:key="category.id"
|
|
33
|
+
class="me-3 dropdown-item"
|
|
34
|
+
@click="checkIfFilter(category)"
|
|
35
|
+
>
|
|
36
|
+
{{ category.name }}
|
|
37
|
+
</div>
|
|
38
|
+
</ul>
|
|
39
|
+
</div>
|
|
39
40
|
</div>
|
|
40
41
|
</template>
|
|
41
42
|
|
|
@@ -1,73 +1,73 @@
|
|
|
1
1
|
<template>
|
|
2
|
-
<div
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
#default
|
|
14
|
-
>
|
|
15
|
-
<div>{{ $t("Let's get acquainted :") }}</div>
|
|
16
|
-
<input
|
|
17
|
-
v-model="name"
|
|
18
|
-
class="form-input"
|
|
19
|
-
type="text"
|
|
20
|
-
:placeholder="$t('Your name')"
|
|
21
|
-
>
|
|
22
|
-
<div
|
|
23
|
-
v-if="sendError"
|
|
24
|
-
class="mt-1 text-danger"
|
|
25
|
-
>
|
|
26
|
-
{{ $t('Recaptcha error') }}
|
|
2
|
+
<div
|
|
3
|
+
id="add-comment-modal"
|
|
4
|
+
class="modal"
|
|
5
|
+
>
|
|
6
|
+
<div class="modal-backdrop" />
|
|
7
|
+
<div class="modal-dialog">
|
|
8
|
+
<div class="modal-content">
|
|
9
|
+
<div class="modal-header">
|
|
10
|
+
<h5 class="modal-title">
|
|
11
|
+
{{ $t('Welcome, thanks for your comment') }}
|
|
12
|
+
</h5>
|
|
27
13
|
</div>
|
|
28
|
-
<div
|
|
29
|
-
v-if="
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
14
|
+
<div class="modal-body">
|
|
15
|
+
<template v-if="!sending">
|
|
16
|
+
<div>{{ $t("Let's get acquainted :") }}</div>
|
|
17
|
+
<input
|
|
18
|
+
v-model="name"
|
|
19
|
+
class="form-input"
|
|
20
|
+
type="text"
|
|
21
|
+
:placeholder="$t('Your name')"
|
|
22
|
+
>
|
|
23
|
+
<div
|
|
24
|
+
v-if="sendError"
|
|
25
|
+
class="mt-1 text-danger"
|
|
26
|
+
>
|
|
27
|
+
{{ $t('Recaptcha error') }}
|
|
28
|
+
</div>
|
|
29
|
+
<div
|
|
30
|
+
v-if="isCaptchaTest"
|
|
31
|
+
class="mt-1 text-danger"
|
|
32
|
+
>
|
|
33
|
+
{{ $t('Recaptcha not active') }}
|
|
34
|
+
</div>
|
|
35
|
+
</template>
|
|
36
|
+
<template v-else>
|
|
37
|
+
<div>{{ $t('Send in progress') }}</div>
|
|
38
|
+
</template>
|
|
33
39
|
</div>
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
@click="closePopup"
|
|
66
|
-
>
|
|
67
|
-
{{ $t('Close') }}
|
|
68
|
-
</button>
|
|
69
|
-
</template>
|
|
70
|
-
</b-modal>
|
|
40
|
+
<div class="modal-footer">
|
|
41
|
+
<template
|
|
42
|
+
v-if="!sending"
|
|
43
|
+
>
|
|
44
|
+
<button
|
|
45
|
+
class="btn btn-light m-1"
|
|
46
|
+
@click="closePopup"
|
|
47
|
+
>
|
|
48
|
+
{{ $t('Cancel') }}
|
|
49
|
+
</button>
|
|
50
|
+
<button
|
|
51
|
+
class="btn btn-primary m-1"
|
|
52
|
+
:disabled="name.length <= 2"
|
|
53
|
+
@click="recaptcha"
|
|
54
|
+
>
|
|
55
|
+
{{ $t('Validate') }}
|
|
56
|
+
</button>
|
|
57
|
+
</template>
|
|
58
|
+
<template
|
|
59
|
+
v-else
|
|
60
|
+
>
|
|
61
|
+
<button
|
|
62
|
+
class="btn m-1"
|
|
63
|
+
@click="closePopup"
|
|
64
|
+
>
|
|
65
|
+
{{ $t('Close') }}
|
|
66
|
+
</button>
|
|
67
|
+
</template>
|
|
68
|
+
</div>
|
|
69
|
+
</div>
|
|
70
|
+
</div>
|
|
71
71
|
</div>
|
|
72
72
|
</template>
|
|
73
73
|
|
|
@@ -19,16 +19,13 @@
|
|
|
19
19
|
<b
|
|
20
20
|
:id="'popover-comment' + comment.comId"
|
|
21
21
|
class="me-2 text-danger"
|
|
22
|
+
data-bs-toggle="popover"
|
|
23
|
+
data-bs-trigger="hover focus"
|
|
24
|
+
:data-bs-content="$t('Comment waiting')"
|
|
25
|
+
data-bs-custom-class="wizard-help"
|
|
22
26
|
>{{
|
|
23
27
|
comment.name
|
|
24
28
|
}}</b>
|
|
25
|
-
<b-popover
|
|
26
|
-
:target="'popover-comment' + comment.comId"
|
|
27
|
-
triggers="hover"
|
|
28
|
-
custom-class="wizard-help"
|
|
29
|
-
>
|
|
30
|
-
{{ $t('Comment waiting') }}
|
|
31
|
-
</b-popover>
|
|
32
29
|
</template>
|
|
33
30
|
</template>
|
|
34
31
|
<template v-else>
|
|
@@ -177,6 +174,7 @@ import { CommentPodcast } from '@/store/class/comment';
|
|
|
177
174
|
import { Podcast } from '@/store/class/podcast';
|
|
178
175
|
import { Conference } from '@/store/class/conference';
|
|
179
176
|
const moment = require('moment');
|
|
177
|
+
const bootstrap = require('bootstrap/dist/js/bootstrap.esm.min.js');
|
|
180
178
|
import { defineComponent, defineAsyncComponent } from 'vue';
|
|
181
179
|
const CommentInput = defineAsyncComponent(() => import('./CommentInput.vue'));
|
|
182
180
|
const CommentParentInfo = defineAsyncComponent(() => import('./CommentParentInfo.vue'));
|
|
@@ -262,6 +260,11 @@ export default defineComponent({
|
|
|
262
260
|
);
|
|
263
261
|
},
|
|
264
262
|
},
|
|
263
|
+
mounted(){
|
|
264
|
+
Array.from(document.querySelectorAll('b[data-bs-toggle="popover"]')).forEach(popoverNode => new bootstrap.Popover(popoverNode,{
|
|
265
|
+
trigger: 'hover focus'
|
|
266
|
+
}));
|
|
267
|
+
},
|
|
265
268
|
methods: {
|
|
266
269
|
answerComment(): void {
|
|
267
270
|
this.collapseVisible = true;
|
|
@@ -238,9 +238,11 @@ export default defineComponent({
|
|
|
238
238
|
)
|
|
239
239
|
return undefined;
|
|
240
240
|
const rubrique = this.rubriques.find(
|
|
241
|
-
(element: Rubrique) => emission.rubriqueIds.includes(element.rubriqueId
|
|
241
|
+
(element: Rubrique) => element.rubriqueId && emission.rubriqueIds.includes(element.rubriqueId) && element.rubriquageId === parseInt(this.displayRubriquage)
|
|
242
242
|
);
|
|
243
|
-
|
|
243
|
+
if(rubrique){
|
|
244
|
+
return rubrique.name;
|
|
245
|
+
}
|
|
244
246
|
},
|
|
245
247
|
mainRubriquage(emission: Emission): string {
|
|
246
248
|
if (
|
|
@@ -149,38 +149,51 @@
|
|
|
149
149
|
<div class="primary-color mb-2 padding-left-custom-radio">
|
|
150
150
|
{{ $t('Sort') }}
|
|
151
151
|
</div>
|
|
152
|
-
<
|
|
153
|
-
v-
|
|
154
|
-
class="
|
|
152
|
+
<div
|
|
153
|
+
v-if="isSearchBar"
|
|
154
|
+
class="form-check"
|
|
155
155
|
>
|
|
156
|
-
<
|
|
157
|
-
|
|
156
|
+
<input
|
|
157
|
+
id="radio_score"
|
|
158
|
+
v-model="sort"
|
|
159
|
+
class="form-check-input"
|
|
160
|
+
type="radio"
|
|
161
|
+
name="sortRadio"
|
|
158
162
|
value="SCORE"
|
|
159
163
|
>
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
</
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
164
|
+
<label
|
|
165
|
+
class="form-check-label"
|
|
166
|
+
for="radio_score"
|
|
167
|
+
>{{ $t('Sort score') }}</label>
|
|
168
|
+
</div>
|
|
169
|
+
<div class="form-check">
|
|
170
|
+
<input
|
|
171
|
+
id="radio_podcast"
|
|
172
|
+
v-model="sort"
|
|
173
|
+
class="form-check-input"
|
|
174
|
+
type="radio"
|
|
175
|
+
name="sortRadio"
|
|
176
|
+
:value="isEmission?'LAST_PODCAST_DESC':'DATE'"
|
|
167
177
|
>
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
</
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
178
|
+
<label
|
|
179
|
+
class="form-check-label"
|
|
180
|
+
for="radio_podcast"
|
|
181
|
+
>{{ $t('Sort last') }}</label>
|
|
182
|
+
</div>
|
|
183
|
+
<div class="form-check">
|
|
184
|
+
<input
|
|
185
|
+
id="radio_name"
|
|
186
|
+
v-model="sort"
|
|
187
|
+
class="form-check-input"
|
|
188
|
+
type="radio"
|
|
189
|
+
name="sortRadio"
|
|
190
|
+
value="NAME"
|
|
175
191
|
>
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
</
|
|
180
|
-
|
|
181
|
-
{{ $t('Sort name') }}
|
|
182
|
-
</b-form-radio>
|
|
183
|
-
</b-form-radio-group>
|
|
192
|
+
<label
|
|
193
|
+
class="form-check-label"
|
|
194
|
+
for="radio_name"
|
|
195
|
+
>{{ $t('Sort name') }}</label>
|
|
196
|
+
</div>
|
|
184
197
|
</div>
|
|
185
198
|
</div>
|
|
186
199
|
</div>
|
|
@@ -6,14 +6,16 @@
|
|
|
6
6
|
{{ title }}
|
|
7
7
|
<span
|
|
8
8
|
:id="idPopover"
|
|
9
|
-
class="saooti-help m-0"
|
|
9
|
+
class="saooti-help m-0 c-hand"
|
|
10
|
+
data-bs-toggle="popover"
|
|
11
|
+
data-bs-trigger="hover focus"
|
|
10
12
|
:aria-label="$t('Help')"
|
|
13
|
+
data-bs-custom-class="participant-help"
|
|
11
14
|
/>
|
|
12
15
|
<span class="mx-1">:</span>
|
|
13
|
-
<
|
|
14
|
-
:
|
|
15
|
-
|
|
16
|
-
custom-class="participant-help"
|
|
16
|
+
<div
|
|
17
|
+
:id="idPopover+'content'"
|
|
18
|
+
class="d-none"
|
|
17
19
|
>
|
|
18
20
|
<div class="text-center fw-bold">
|
|
19
21
|
{{ title }}
|
|
@@ -32,7 +34,7 @@
|
|
|
32
34
|
/>
|
|
33
35
|
<div class="horizontal-separator my-1" />
|
|
34
36
|
</div>
|
|
35
|
-
</
|
|
37
|
+
</div>
|
|
36
38
|
<router-link
|
|
37
39
|
v-for="participant in participants"
|
|
38
40
|
:key="participant.participantId"
|
|
@@ -52,6 +54,7 @@
|
|
|
52
54
|
</template>
|
|
53
55
|
|
|
54
56
|
<script lang="ts">
|
|
57
|
+
const bootstrap = require('bootstrap/dist/js/bootstrap.esm.min.js');
|
|
55
58
|
import { Participant } from '@/store/class/participant';
|
|
56
59
|
import { defineComponent } from 'vue'
|
|
57
60
|
export default defineComponent({
|
|
@@ -80,6 +83,17 @@ export default defineComponent({
|
|
|
80
83
|
return this.$t('Animated by').toString();
|
|
81
84
|
}
|
|
82
85
|
},
|
|
86
|
+
mounted(){
|
|
87
|
+
const contentPopover = document.querySelector('#'+this.idPopover+'content');
|
|
88
|
+
if(contentPopover){
|
|
89
|
+
new bootstrap.Popover(document.querySelector('#'+this.idPopover),{
|
|
90
|
+
trigger: 'hover focus',
|
|
91
|
+
html: true,
|
|
92
|
+
content: (contentPopover as HTMLElement).innerHTML
|
|
93
|
+
});
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
},
|
|
83
97
|
|
|
84
98
|
methods: {
|
|
85
99
|
getName(person: any): string {
|
|
@@ -27,28 +27,29 @@
|
|
|
27
27
|
{{ rubrique.name }}
|
|
28
28
|
</button>
|
|
29
29
|
</div>
|
|
30
|
-
<
|
|
30
|
+
<div
|
|
31
31
|
v-show="hidenRubriques.length"
|
|
32
|
-
|
|
33
|
-
toggle-class="text-decoration-none text-dark rubrique-item rubrique-item-plus"
|
|
34
|
-
no-caret
|
|
35
|
-
:aria-label="$t('See more')"
|
|
32
|
+
class="dropdown btn-group"
|
|
36
33
|
>
|
|
37
|
-
<
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
</template>
|
|
43
|
-
<b-dropdown-item
|
|
44
|
-
v-for="rubrique in hidenRubriques"
|
|
45
|
-
:key="rubrique.rubriqueId"
|
|
46
|
-
class="me-3"
|
|
47
|
-
@click="addFilter(rubrique)"
|
|
34
|
+
<button
|
|
35
|
+
class="btn dropdown-toggle btn-secondary text-decoration-none text-dark category-item category-item-plus dropdown-toggle-no-caret"
|
|
36
|
+
data-bs-toggle="dropdown"
|
|
37
|
+
aria-expanded="false"
|
|
38
|
+
:aria-label="$t('See more')"
|
|
48
39
|
>
|
|
49
|
-
|
|
50
|
-
</
|
|
51
|
-
|
|
40
|
+
<i class="saooti-plus" />
|
|
41
|
+
</button>
|
|
42
|
+
<ul class="dropdown-menu dropdown-menu-right px-4">
|
|
43
|
+
<div
|
|
44
|
+
v-for="rubrique in hidenRubriques"
|
|
45
|
+
:key="rubrique.rubriqueId"
|
|
46
|
+
class="me-3 dropdown-item"
|
|
47
|
+
@click="addFilter(rubrique)"
|
|
48
|
+
>
|
|
49
|
+
{{ rubrique.name }}
|
|
50
|
+
</div>
|
|
51
|
+
</ul>
|
|
52
|
+
</div>
|
|
52
53
|
</div>
|
|
53
54
|
</template>
|
|
54
55
|
|
|
@@ -37,23 +37,27 @@
|
|
|
37
37
|
v-if="!podcast || isEmission || isLargeEmission"
|
|
38
38
|
class="d-flex align-items-center w-100 flex-wrap mt-1"
|
|
39
39
|
>
|
|
40
|
-
<
|
|
40
|
+
<input
|
|
41
41
|
v-model="episodeNumbers"
|
|
42
|
+
class="form-check-input"
|
|
43
|
+
type="radio"
|
|
42
44
|
name="episodeNumbers"
|
|
43
45
|
value="all"
|
|
44
|
-
|
|
46
|
+
>
|
|
45
47
|
<span class="flex-shrink">{{ $t('Show every episode') }}</span>
|
|
46
48
|
</div>
|
|
47
49
|
<div
|
|
48
50
|
class="d-flex align-items-center flex-wrap"
|
|
49
51
|
:class="!podcast || isEmission || isLargeEmission ? '' : 'mt-3'"
|
|
50
52
|
>
|
|
51
|
-
<
|
|
53
|
+
<input
|
|
52
54
|
v-if="!podcast || isEmission || isLargeEmission"
|
|
53
55
|
v-model="episodeNumbers"
|
|
56
|
+
class="form-check-input"
|
|
57
|
+
type="radio"
|
|
54
58
|
name="episodeNumbers"
|
|
55
59
|
value="number"
|
|
56
|
-
|
|
60
|
+
>
|
|
57
61
|
<span class="flex-shrink">{{ $t('Show') }}</span>
|
|
58
62
|
<input
|
|
59
63
|
id="number-input"
|
|
@@ -12,19 +12,13 @@
|
|
|
12
12
|
</h3>
|
|
13
13
|
<span
|
|
14
14
|
v-if="authenticated"
|
|
15
|
-
id="
|
|
16
|
-
class="saooti-help ms-2"
|
|
15
|
+
id="share-button-popover"
|
|
16
|
+
class="saooti-help ms-2 c-hand"
|
|
17
|
+
data-bs-toggle="popover"
|
|
18
|
+
data-bs-trigger="hover focus"
|
|
17
19
|
:aria-label="$t('Help')"
|
|
20
|
+
:data-bs-content="$t('Share this page without edit and share blocks')"
|
|
18
21
|
/>
|
|
19
|
-
<b-popover
|
|
20
|
-
v-if="authenticated"
|
|
21
|
-
target="popover-share-help"
|
|
22
|
-
triggers="hover"
|
|
23
|
-
placement="right"
|
|
24
|
-
custom-class="wizard-help"
|
|
25
|
-
>
|
|
26
|
-
{{ $t('Share this page without edit and share blocks') }}
|
|
27
|
-
</b-popover>
|
|
28
22
|
</div>
|
|
29
23
|
<div
|
|
30
24
|
class="d-flex"
|
|
@@ -253,6 +247,7 @@ import { Podcast } from '@/store/class/podcast';
|
|
|
253
247
|
import { state } from '../../../store/paramStore';
|
|
254
248
|
import Snackbar from '../../misc/Snackbar.vue';
|
|
255
249
|
import { displayMethods } from '../../mixins/functions';
|
|
250
|
+
const bootstrap = require('bootstrap/dist/js/bootstrap.esm.min.js');
|
|
256
251
|
import { defineComponent, defineAsyncComponent } from 'vue';
|
|
257
252
|
const ClipboardModal = defineAsyncComponent(() => import('../../misc/modal/ClipboardModal.vue'));
|
|
258
253
|
const NewsletterModal = defineAsyncComponent(() => import('../../misc/modal/NewsletterModal.vue'));
|
|
@@ -331,6 +326,11 @@ export default defineComponent({
|
|
|
331
326
|
created(){
|
|
332
327
|
this.isMobile = this.checkIfDeviceMobile();
|
|
333
328
|
},
|
|
329
|
+
mounted(){
|
|
330
|
+
new bootstrap.Popover(document.querySelector('#share-button-popover'),{
|
|
331
|
+
trigger: 'hover focus'
|
|
332
|
+
});
|
|
333
|
+
},
|
|
334
334
|
methods: {
|
|
335
335
|
openPopup(): void {
|
|
336
336
|
this.dataRSSSave = !this.dataRSSSave;
|