@saooti/octopus-sdk 33.1.3 → 33.2.1
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/index.ts +5 -0
- package/package.json +1 -3
- package/src/App.vue +1 -1
- package/src/assets/_utilities.scss +532 -0
- package/src/assets/bootstrap.scss +231 -0
- package/src/assets/form.scss +3 -46
- package/src/assets/general.scss +10 -58
- package/src/assets/multiselect.scss +8 -3
- package/src/assets/octopus-library.scss +2 -4
- package/src/components/display/categories/CategoryChooser.vue +2 -2
- package/src/components/display/categories/CategoryFilter.vue +60 -46
- package/src/components/display/categories/CategoryList.vue +22 -19
- package/src/components/display/comments/AddCommentModal.vue +60 -67
- package/src/components/display/comments/CommentBasicView.vue +3 -4
- package/src/components/display/comments/CommentInput.vue +4 -4
- package/src/components/display/comments/CommentItem.vue +2 -2
- package/src/components/display/comments/CommentPlayer.vue +2 -2
- package/src/components/display/emission/EmissionChooser.vue +1 -1
- package/src/components/display/emission/EmissionItem.vue +2 -1
- package/src/components/display/emission/EmissionPlayerItem.vue +0 -11
- package/src/components/display/filter/AdvancedSearch.vue +2 -2
- package/src/components/display/filter/MonetizableFilter.vue +1 -1
- package/src/components/display/filter/RubriqueChoice.vue +1 -1
- package/src/components/display/organisation/OrganisationChooser.vue +1 -1
- package/src/components/display/participant/ParticipantItem.vue +2 -1
- package/src/components/display/playlist/PlaylistItem.vue +3 -2
- package/src/components/display/podcasts/ParticipantDescription.vue +2 -1
- package/src/components/display/podcasts/PodcastImage.vue +3 -3
- package/src/components/display/podcasts/PodcastInlineList.vue +1 -1
- package/src/components/display/podcasts/PodcastInlineListClassic.vue +1 -1
- package/src/components/display/podcasts/PodcastInlineListTemplate.vue +6 -2
- package/src/components/display/podcasts/PodcastItemInfo.vue +2 -2
- package/src/components/display/podcasts/PodcastPlayBar.vue +9 -35
- package/src/components/display/podcasts/TagList.vue +0 -2
- package/src/components/display/rubriques/RubriqueChooser.vue +2 -2
- package/src/components/display/rubriques/RubriqueList.vue +25 -20
- package/src/components/display/sharing/PlayerParameters.vue +76 -99
- package/src/components/display/sharing/ShareButtons.vue +3 -5
- package/src/components/display/sharing/ShareButtonsIntern.vue +1 -1
- package/src/components/display/sharing/ShareDistribution.vue +11 -10
- package/src/components/display/sharing/SharePlayer.vue +3 -0
- package/src/components/display/sharing/SubscribeButtons.vue +1 -1
- package/src/components/form/ClassicCheckbox.vue +73 -14
- package/src/components/form/ClassicLoading.vue +5 -1
- package/src/components/form/ClassicRadio.vue +12 -3
- package/src/components/form/ClassicSelect.vue +2 -9
- package/src/components/misc/Accordion.vue +76 -0
- package/src/components/misc/ErrorMessage.vue +2 -1
- package/src/components/misc/HomeDropdown.vue +66 -63
- package/src/components/misc/Nav.vue +99 -0
- package/src/components/misc/Popover.vue +139 -98
- package/src/components/misc/ProgressBar.vue +96 -0
- package/src/components/misc/Spinner.vue +37 -0
- package/src/components/misc/TopBar.vue +1 -1
- package/src/components/misc/modal/ClassicModal.vue +140 -0
- package/src/components/misc/modal/ClipboardModal.vue +25 -40
- package/src/components/misc/modal/MessageModal.vue +45 -60
- package/src/components/misc/modal/NewsletterModal.vue +85 -94
- package/src/components/misc/modal/QrCodeModal.vue +19 -36
- package/src/components/misc/modal/ShareModalPlayer.vue +72 -133
- package/src/components/misc/player/Player.vue +0 -6
- package/src/components/misc/player/PlayerCompact.vue +5 -4
- package/src/components/misc/player/PlayerLarge.vue +13 -9
- package/src/components/misc/player/PlayerProgressBar.vue +10 -48
- package/src/components/mixins/player/playerLogic.ts +3 -3
- package/src/components/pages/Podcast.vue +1 -1
- package/src/assets/bootstrap-diff.scss +0 -195
- package/src/assets/modal.scss +0 -49
|
@@ -1,84 +1,77 @@
|
|
|
1
1
|
<template>
|
|
2
|
-
<
|
|
3
|
-
id="add-comment-modal"
|
|
4
|
-
|
|
2
|
+
<ClassicModal
|
|
3
|
+
id-modal="add-comment-modal"
|
|
4
|
+
:title-modal="$t('Welcome, thanks for your comment')"
|
|
5
|
+
:closable="false"
|
|
6
|
+
@close="closePopup"
|
|
5
7
|
>
|
|
6
|
-
<
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
<
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
8
|
+
<template #body>
|
|
9
|
+
<template v-if="!sending">
|
|
10
|
+
<div>{{ $t("Let's get acquainted :") }}</div>
|
|
11
|
+
<input
|
|
12
|
+
v-model="name"
|
|
13
|
+
class="form-input"
|
|
14
|
+
type="text"
|
|
15
|
+
:placeholder="$t('Your name')"
|
|
16
|
+
:class="{ 'border border-danger': 0 === countName || !validName }"
|
|
17
|
+
>
|
|
18
|
+
<p
|
|
19
|
+
class="d-flex justify-content-end h6"
|
|
20
|
+
:class="{ 'text-danger': !validName }"
|
|
21
|
+
>
|
|
22
|
+
{{ countName + ' / ' + maxName }}
|
|
23
|
+
</p>
|
|
24
|
+
<div
|
|
25
|
+
v-if="''!==errorText"
|
|
26
|
+
class="mt-1 text-danger"
|
|
27
|
+
>
|
|
28
|
+
{{ errorText }}
|
|
13
29
|
</div>
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
>
|
|
46
|
-
{{ $t('Close') }}
|
|
47
|
-
</button>
|
|
48
|
-
<vue-recaptcha
|
|
49
|
-
v-if="!isVerify"
|
|
50
|
-
ref="invisibleRecaptcha"
|
|
51
|
-
:load-recaptcha-script="true"
|
|
52
|
-
@verify="handleSuccess"
|
|
53
|
-
@expired="handleError"
|
|
54
|
-
size="invisible"
|
|
55
|
-
sitekey="6LfyP_4ZAAAAAPODj8nov2LvosIwcX0GYeBSungh"
|
|
56
|
-
>
|
|
57
|
-
</vue-recaptcha>
|
|
58
|
-
<button
|
|
59
|
-
v-if="!sending"
|
|
60
|
-
class="btn btn-primary m-1"
|
|
61
|
-
:disabled="0 === countName || !validName"
|
|
62
|
-
@click="submit"
|
|
63
|
-
>
|
|
64
|
-
{{ $t('Validate') }}
|
|
65
|
-
</button>
|
|
66
|
-
</div>
|
|
67
|
-
</div>
|
|
68
|
-
</div>
|
|
69
|
-
</div>
|
|
30
|
+
</template>
|
|
31
|
+
<template v-else>
|
|
32
|
+
<div>{{ $t('Send in progress') }}</div>
|
|
33
|
+
</template>
|
|
34
|
+
</template>
|
|
35
|
+
<template #footer>
|
|
36
|
+
<button
|
|
37
|
+
class="btn m-1"
|
|
38
|
+
@click="closePopup"
|
|
39
|
+
>
|
|
40
|
+
{{ $t('Close') }}
|
|
41
|
+
</button>
|
|
42
|
+
<vue-recaptcha
|
|
43
|
+
v-if="!isVerify"
|
|
44
|
+
ref="invisibleRecaptcha"
|
|
45
|
+
:load-recaptcha-script="true"
|
|
46
|
+
size="invisible"
|
|
47
|
+
sitekey="6LfyP_4ZAAAAAPODj8nov2LvosIwcX0GYeBSungh"
|
|
48
|
+
@verify="handleSuccess"
|
|
49
|
+
@expired="handleError"
|
|
50
|
+
/>
|
|
51
|
+
<button
|
|
52
|
+
v-if="!sending"
|
|
53
|
+
class="btn btn-primary m-1"
|
|
54
|
+
:disabled="0 === countName || !validName"
|
|
55
|
+
@click="submit"
|
|
56
|
+
>
|
|
57
|
+
{{ $t('Validate') }}
|
|
58
|
+
</button>
|
|
59
|
+
</template>
|
|
60
|
+
</ClassicModal>
|
|
70
61
|
</template>
|
|
71
62
|
|
|
72
63
|
<script lang="ts">
|
|
73
64
|
import Constants from '../../../../public/config';
|
|
74
65
|
import { state } from '../../../store/paramStore';
|
|
66
|
+
import ClassicModal from '../../misc/modal/ClassicModal.vue';
|
|
75
67
|
import api from '@/api/initialize';
|
|
76
68
|
import { VueRecaptcha } from 'vue-recaptcha';
|
|
77
69
|
import { defineComponent } from 'vue';
|
|
78
70
|
export default defineComponent({
|
|
79
71
|
name: 'AddCommentModal',
|
|
80
72
|
components:{
|
|
81
|
-
VueRecaptcha
|
|
73
|
+
VueRecaptcha,
|
|
74
|
+
ClassicModal
|
|
82
75
|
},
|
|
83
76
|
|
|
84
77
|
props: {},
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
<template>
|
|
2
2
|
<div>
|
|
3
|
-
<div class="d-flex
|
|
3
|
+
<div class="d-flex h6">
|
|
4
4
|
<strong
|
|
5
5
|
v-if="recordingInLive && ('Live' === comment.phase || 'Prelive' === comment.phase)"
|
|
6
6
|
class="recording-bg me-1 text-light p-1"
|
|
@@ -17,9 +17,8 @@
|
|
|
17
17
|
<Popover
|
|
18
18
|
:disable="editRight || isValid"
|
|
19
19
|
:target="'popover-comment' + comment.comId"
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
</Popover>
|
|
20
|
+
:content="$t('Comment waiting')"
|
|
21
|
+
/>
|
|
23
22
|
<span
|
|
24
23
|
v-if="comment.certified"
|
|
25
24
|
class="saooti-certified"
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
>
|
|
6
6
|
<strong
|
|
7
7
|
v-if="knownIdentity && !editName"
|
|
8
|
-
class="
|
|
8
|
+
class="h6 mt-1 c-hand"
|
|
9
9
|
@click="changeIdentity"
|
|
10
10
|
>{{ knownIdentity }}</strong>
|
|
11
11
|
<div
|
|
@@ -15,12 +15,12 @@
|
|
|
15
15
|
<div class="d-flex flex-column">
|
|
16
16
|
<input
|
|
17
17
|
v-model="temporaryName"
|
|
18
|
-
class="
|
|
18
|
+
class="h6 mt-1"
|
|
19
19
|
type="text"
|
|
20
20
|
:class="{ 'border border-danger': 0 === countName || !validName }"
|
|
21
21
|
>
|
|
22
22
|
<p
|
|
23
|
-
class="d-flex justify-content-end
|
|
23
|
+
class="d-flex justify-content-end h6 mb-0"
|
|
24
24
|
:class="{ 'text-danger': !validName }"
|
|
25
25
|
>
|
|
26
26
|
{{ countName + ' / ' + maxName }}
|
|
@@ -51,7 +51,7 @@
|
|
|
51
51
|
/>
|
|
52
52
|
<template v-if="textareaFocus">
|
|
53
53
|
<p
|
|
54
|
-
class="d-flex justify-content-end
|
|
54
|
+
class="d-flex justify-content-end h6"
|
|
55
55
|
:class="{ 'text-danger': !validComment }"
|
|
56
56
|
>
|
|
57
57
|
{{ countComment + ' / ' + maxComment }}
|
|
@@ -15,7 +15,7 @@
|
|
|
15
15
|
:class="{ 'border border-danger': 0 === countName || !validName }"
|
|
16
16
|
>
|
|
17
17
|
<p
|
|
18
|
-
class="d-flex justify-content-end
|
|
18
|
+
class="d-flex justify-content-end h6"
|
|
19
19
|
:class="{ 'text-danger': !validName }"
|
|
20
20
|
>
|
|
21
21
|
{{ countName + ' / ' + maxName }}
|
|
@@ -27,7 +27,7 @@
|
|
|
27
27
|
type="text"
|
|
28
28
|
/>
|
|
29
29
|
<p
|
|
30
|
-
class="d-flex justify-content-end
|
|
30
|
+
class="d-flex justify-content-end h6"
|
|
31
31
|
:class="{ 'text-danger': !validComment }"
|
|
32
32
|
>
|
|
33
33
|
{{ countComment + ' / ' + maxComment }}
|
|
@@ -20,9 +20,9 @@
|
|
|
20
20
|
</div>
|
|
21
21
|
<div
|
|
22
22
|
v-if="displayContent"
|
|
23
|
-
class="
|
|
23
|
+
class="h6 mt-auto"
|
|
24
24
|
>
|
|
25
|
-
<div class="primary
|
|
25
|
+
<div class="text-primary flex-shrink-0">
|
|
26
26
|
{{ displayContent.name }}
|
|
27
27
|
</div>
|
|
28
28
|
<div class="ms-1 me-1">
|
|
@@ -251,17 +251,6 @@ export default defineComponent({
|
|
|
251
251
|
height: min-content;
|
|
252
252
|
border-radius: 0.8rem;
|
|
253
253
|
overflow: hidden;
|
|
254
|
-
.progress{
|
|
255
|
-
height: 6px;
|
|
256
|
-
}
|
|
257
|
-
.progress-bar-cursor{
|
|
258
|
-
width: 10px;
|
|
259
|
-
height: 10px;
|
|
260
|
-
border-radius: 50%;
|
|
261
|
-
background: black;
|
|
262
|
-
align-self: center;
|
|
263
|
-
position: absolute;
|
|
264
|
-
}
|
|
265
254
|
.emission-item-border-color {
|
|
266
255
|
border-color: #ddd;
|
|
267
256
|
}
|
|
@@ -15,7 +15,7 @@
|
|
|
15
15
|
class="advanced-search-container"
|
|
16
16
|
>
|
|
17
17
|
<div class="d-flex flex-column">
|
|
18
|
-
<div class="primary
|
|
18
|
+
<div class="text-primary mb-2">
|
|
19
19
|
{{ $t('Filter') }}
|
|
20
20
|
</div>
|
|
21
21
|
<MonetizableFilter
|
|
@@ -59,7 +59,7 @@
|
|
|
59
59
|
</div>
|
|
60
60
|
</div>
|
|
61
61
|
<div class="d-flex flex-column">
|
|
62
|
-
<div class="primary
|
|
62
|
+
<div class="text-primary mb-2">
|
|
63
63
|
{{ $t('Sort') }}
|
|
64
64
|
</div>
|
|
65
65
|
<SearchOrder
|
|
@@ -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 octopus-arrow-down-absolute" />
|
|
16
16
|
</label>
|
|
17
17
|
</div>
|
|
18
18
|
</template>
|
|
@@ -22,7 +22,8 @@
|
|
|
22
22
|
<span
|
|
23
23
|
v-if="!activeParticipant && !isPodcastmaker && editRight"
|
|
24
24
|
:title="$t('Participant have not podcasts')"
|
|
25
|
-
class="saooti-warning text-danger me-1"
|
|
25
|
+
class="saooti-warning text-danger me-1"
|
|
26
|
+
/>
|
|
26
27
|
<div class="participant-name">
|
|
27
28
|
{{ name }}
|
|
28
29
|
</div>
|
|
@@ -23,7 +23,8 @@
|
|
|
23
23
|
<span
|
|
24
24
|
v-if="!activePlaylist && !isPodcastmaker"
|
|
25
25
|
:title="$t('Playlist have not podcasts')"
|
|
26
|
-
class="saooti-warning text-danger me-1"
|
|
26
|
+
class="saooti-warning text-danger me-1"
|
|
27
|
+
/>
|
|
27
28
|
<div class="emission-name">
|
|
28
29
|
{{ name }}
|
|
29
30
|
</div>
|
|
@@ -49,7 +50,7 @@
|
|
|
49
50
|
}"
|
|
50
51
|
class="text-dark"
|
|
51
52
|
>
|
|
52
|
-
<div class="emission-producer primary
|
|
53
|
+
<div class="emission-producer text-primary">
|
|
53
54
|
© {{ playlist.organisation.name }}
|
|
54
55
|
</div>
|
|
55
56
|
</router-link>
|
|
@@ -13,6 +13,7 @@
|
|
|
13
13
|
/>
|
|
14
14
|
<span class="mx-1">:</span>
|
|
15
15
|
<Popover
|
|
16
|
+
:title="$t('Animated by')"
|
|
16
17
|
:target="idPopover"
|
|
17
18
|
>
|
|
18
19
|
<div
|
|
@@ -24,7 +25,7 @@
|
|
|
24
25
|
<!-- eslint-disable vue/no-v-html -->
|
|
25
26
|
<div
|
|
26
27
|
v-if="participant.description"
|
|
27
|
-
class="
|
|
28
|
+
class="participant-desc html-wysiwyg-content"
|
|
28
29
|
v-html="participant.description"
|
|
29
30
|
/>
|
|
30
31
|
<!-- eslint-enable -->
|
|
@@ -42,7 +42,7 @@
|
|
|
42
42
|
<div
|
|
43
43
|
v-show="!playingPodcast"
|
|
44
44
|
:title="$t('Play')"
|
|
45
|
-
class="saooti-play primary
|
|
45
|
+
class="saooti-play text-primary"
|
|
46
46
|
/>
|
|
47
47
|
<div
|
|
48
48
|
v-if="!classicPodcastPlay"
|
|
@@ -70,14 +70,14 @@
|
|
|
70
70
|
</div>
|
|
71
71
|
<div
|
|
72
72
|
v-if="!classicPodcastPlay"
|
|
73
|
-
class="
|
|
73
|
+
class="h6 mt-3 fw-bolder"
|
|
74
74
|
>
|
|
75
75
|
{{ textVisible }}
|
|
76
76
|
</div>
|
|
77
77
|
</button>
|
|
78
78
|
<div
|
|
79
79
|
v-if="displayDescription && isMobile"
|
|
80
|
-
class="background-icon primary
|
|
80
|
+
class="background-icon bg-primary saooti-arrow-up"
|
|
81
81
|
:class="isDescription ? 'saooti-arrow-down':'saooti-arrow-up'"
|
|
82
82
|
:title="isDescription ? $t('Hide description'):$t('Show description')"
|
|
83
83
|
@click="showDescription"
|
|
@@ -12,7 +12,7 @@
|
|
|
12
12
|
:previous-available="previousAvailable"
|
|
13
13
|
:next-available="nextAvailable"
|
|
14
14
|
:no-rubriquage-id="noRubriquageId"
|
|
15
|
-
:
|
|
15
|
+
:podcast-id="podcastId"
|
|
16
16
|
@sortChrono="sortChrono"
|
|
17
17
|
@sortPopular="sortPopular"
|
|
18
18
|
@displayPrevious="displayPrevious"
|
|
@@ -4,7 +4,8 @@
|
|
|
4
4
|
>
|
|
5
5
|
<div
|
|
6
6
|
class="d-flex align-items-center"
|
|
7
|
-
:class="podcastId?'mb-4':'mb-2'"
|
|
7
|
+
:class="podcastId?'mb-4':'mb-2'"
|
|
8
|
+
>
|
|
8
9
|
<h2 class="mb-0">
|
|
9
10
|
{{ title }}
|
|
10
11
|
</h2>
|
|
@@ -16,7 +17,10 @@
|
|
|
16
17
|
@click="handleSeeMoreButton"
|
|
17
18
|
/>
|
|
18
19
|
</div>
|
|
19
|
-
<div
|
|
20
|
+
<div
|
|
21
|
+
v-if="!podcastId"
|
|
22
|
+
class="d-flex justify-content-between"
|
|
23
|
+
>
|
|
20
24
|
<div class="d-flex">
|
|
21
25
|
<button
|
|
22
26
|
class="btn btn-underline"
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
<template>
|
|
2
2
|
<div class="d-contents podcast-item-info">
|
|
3
3
|
<div class="d-flex justify-content-between flex-wrap text-secondary mb-3">
|
|
4
|
-
<div class="me-3
|
|
4
|
+
<div class="me-3 h6">
|
|
5
5
|
{{ date }}
|
|
6
6
|
</div>
|
|
7
7
|
<div
|
|
8
8
|
v-if="0 !== durationString.length"
|
|
9
|
-
class="
|
|
9
|
+
class="h6"
|
|
10
10
|
>
|
|
11
11
|
{{ durationString }}
|
|
12
12
|
</div>
|
|
@@ -7,23 +7,11 @@
|
|
|
7
7
|
{{ playedTime }}
|
|
8
8
|
</div>
|
|
9
9
|
<div class="position-relative flex-grow-1">
|
|
10
|
-
<
|
|
11
|
-
|
|
10
|
+
<ProgressBar
|
|
11
|
+
:main-progress="percentProgress"
|
|
12
|
+
class="medium"
|
|
12
13
|
@mouseup="seekTo"
|
|
13
|
-
|
|
14
|
-
<div
|
|
15
|
-
class="progress-bar primary-bg"
|
|
16
|
-
role="progressbar"
|
|
17
|
-
aria-valuenow="0"
|
|
18
|
-
aria-valuemin="0"
|
|
19
|
-
aria-valuemax="100"
|
|
20
|
-
:style="'width: ' + percentProgress + '%'"
|
|
21
|
-
/>
|
|
22
|
-
<div
|
|
23
|
-
class="progress-bar-cursor"
|
|
24
|
-
:style="'left:' + percentProgress + '%'"
|
|
25
|
-
/>
|
|
26
|
-
</div>
|
|
14
|
+
/>
|
|
27
15
|
</div>
|
|
28
16
|
<div class="ms-2">
|
|
29
17
|
{{ totalTime }}
|
|
@@ -32,12 +20,16 @@
|
|
|
32
20
|
</template>
|
|
33
21
|
|
|
34
22
|
<script lang="ts">
|
|
23
|
+
import ProgressBar from '../../misc/ProgressBar.vue';
|
|
35
24
|
import DurationHelper from '../../../helper/duration';
|
|
36
25
|
import displayMethods from '../../mixins/displayMethods';
|
|
37
26
|
import { state } from '../../../store/paramStore';
|
|
38
27
|
import { defineComponent } from 'vue'
|
|
39
28
|
export default defineComponent({
|
|
40
29
|
name: 'PodcastPlayBar',
|
|
30
|
+
components:{
|
|
31
|
+
ProgressBar
|
|
32
|
+
},
|
|
41
33
|
mixins: [displayMethods],
|
|
42
34
|
props: {
|
|
43
35
|
podcastId: { default: undefined, type: Number},
|
|
@@ -80,22 +72,4 @@ export default defineComponent({
|
|
|
80
72
|
}
|
|
81
73
|
},
|
|
82
74
|
})
|
|
83
|
-
</script>
|
|
84
|
-
|
|
85
|
-
<style lang="scss">
|
|
86
|
-
.octopus-app{
|
|
87
|
-
.podcast-play-bar {
|
|
88
|
-
.progress{
|
|
89
|
-
height: 6px;
|
|
90
|
-
}
|
|
91
|
-
.progress-bar-cursor{
|
|
92
|
-
width: 10px;
|
|
93
|
-
height: 10px;
|
|
94
|
-
border-radius: 50%;
|
|
95
|
-
background: black;
|
|
96
|
-
align-self: center;
|
|
97
|
-
position: absolute;
|
|
98
|
-
}
|
|
99
|
-
}
|
|
100
|
-
}
|
|
101
|
-
</style>
|
|
75
|
+
</script>
|
|
@@ -47,7 +47,7 @@
|
|
|
47
47
|
<div
|
|
48
48
|
v-if="undefined!==option"
|
|
49
49
|
class="multiselect-octopus-proposition"
|
|
50
|
-
:class="option.rubriqueId <= 0 ? 'primary
|
|
50
|
+
:class="option.rubriqueId <= 0 ? 'text-primary' : ''"
|
|
51
51
|
:data-selenium="'rubric-chooser-' + seleniumFormat(option.name)"
|
|
52
52
|
>
|
|
53
53
|
<span class="option__title">{{ option.name }}</span>
|
|
@@ -60,7 +60,7 @@
|
|
|
60
60
|
{{ $t('No elements found. Consider changing the search query.') }}
|
|
61
61
|
</template>
|
|
62
62
|
<template #caret>
|
|
63
|
-
<span class="saooti-down octopus-arrow-down" />
|
|
63
|
+
<span class="saooti-down octopus-arrow-down octopus-arrow-down-absolute" />
|
|
64
64
|
</template>
|
|
65
65
|
</VueMultiselect>
|
|
66
66
|
</div>
|
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
<label
|
|
8
8
|
for="rubrique-list-select"
|
|
9
9
|
class="hid"
|
|
10
|
-
>{{$t('By topic')}}</label>
|
|
10
|
+
>{{ $t('By topic') }}</label>
|
|
11
11
|
<select
|
|
12
12
|
id="rubrique-list-select"
|
|
13
13
|
v-model="rubriquage"
|
|
@@ -32,31 +32,32 @@
|
|
|
32
32
|
{{ rubrique.name }}
|
|
33
33
|
</button>
|
|
34
34
|
</div>
|
|
35
|
-
<
|
|
35
|
+
<button
|
|
36
36
|
v-show="hidenRubriques.length"
|
|
37
|
-
|
|
37
|
+
id="rubriques-dropdown"
|
|
38
|
+
class="btn admin-button saooti-more"
|
|
39
|
+
:title="$t('See more')"
|
|
40
|
+
/>
|
|
41
|
+
<Popover
|
|
42
|
+
target="rubriques-dropdown"
|
|
43
|
+
:only-click="true"
|
|
44
|
+
:is-fixed="true"
|
|
45
|
+
:left-pos="true"
|
|
38
46
|
>
|
|
39
47
|
<button
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
:key="rubrique.rubriqueId"
|
|
49
|
-
class="me-3 dropdown-item"
|
|
50
|
-
@click="addFilter(rubrique)"
|
|
51
|
-
>
|
|
52
|
-
{{ rubrique.name }}
|
|
53
|
-
</div>
|
|
54
|
-
</div>
|
|
55
|
-
</div>
|
|
48
|
+
v-for="rubrique in hidenRubriques"
|
|
49
|
+
:key="rubrique.rubriqueId"
|
|
50
|
+
class="me-3 octopus-dropdown-item"
|
|
51
|
+
@mousedown="addFilter(rubrique)"
|
|
52
|
+
>
|
|
53
|
+
{{ rubrique.name }}
|
|
54
|
+
</button>
|
|
55
|
+
</Popover>
|
|
56
56
|
</div>
|
|
57
57
|
</template>
|
|
58
58
|
|
|
59
59
|
<script lang="ts">
|
|
60
|
+
import Popover from '../../misc/Popover.vue';
|
|
60
61
|
import { Rubrique } from '@/store/class/rubrique/rubrique';
|
|
61
62
|
import { Rubriquage } from '@/store/class/rubrique/rubriquage';
|
|
62
63
|
import { RubriquageFilter } from '@/store/class/rubrique/rubriquageFilter';
|
|
@@ -64,9 +65,14 @@ import { defineComponent } from 'vue'
|
|
|
64
65
|
export default defineComponent({
|
|
65
66
|
name: 'RubriqueList',
|
|
66
67
|
|
|
68
|
+
components:{
|
|
69
|
+
Popover
|
|
70
|
+
},
|
|
71
|
+
|
|
67
72
|
props: {
|
|
68
73
|
rubriquages: { default: () => [], type: Array as ()=>Array<Rubriquage>},
|
|
69
74
|
},
|
|
75
|
+
|
|
70
76
|
|
|
71
77
|
data() {
|
|
72
78
|
return {
|
|
@@ -114,7 +120,6 @@ export default defineComponent({
|
|
|
114
120
|
window.removeEventListener('resize', this.resizeWindow);
|
|
115
121
|
},
|
|
116
122
|
methods: {
|
|
117
|
-
|
|
118
123
|
initRubriques(): void{
|
|
119
124
|
if(!this.rubriquage){ return ;}
|
|
120
125
|
this.$store.commit('filterRubriqueDisplay', this.rubriquage.rubriques);
|