@saooti/octopus-sdk 38.1.14 → 38.1.16
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 +32 -32
- package/src/components/display/podcasts/PodcastInlineListClassic.vue +4 -1
- package/src/components/display/podcasts/PodcastModuleBox.vue +9 -10
- package/src/components/display/podcasts/PodcastSwiperList.vue +4 -1
- package/src/components/display/podcasts/TagList.vue +24 -10
- package/src/components/form/ClassicSelect.vue +7 -7
- package/src/components/misc/ClassicAccordion.vue +13 -7
- package/src/components/misc/ClassicNav.vue +3 -3
- package/src/components/misc/ClassicPopover.vue +15 -6
- package/src/components/misc/HomeDropdown.vue +11 -11
- package/src/components/misc/ProgressBar.vue +5 -1
- package/src/components/misc/player/ChapteringModal.vue +18 -7
- package/src/components/misc/player/PlayerChaptering.vue +13 -6
- package/src/components/misc/player/PlayerProgressBar.vue +1 -1
- package/src/components/pages/Error403Page.vue +9 -14
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@saooti/octopus-sdk",
|
|
3
|
-
"version": "38.1.
|
|
3
|
+
"version": "38.1.16",
|
|
4
4
|
"private": false,
|
|
5
5
|
"description": "Javascript SDK for using octopus",
|
|
6
6
|
"author": "Saooti",
|
|
@@ -16,35 +16,35 @@
|
|
|
16
16
|
"dependencies": {
|
|
17
17
|
"@popperjs/core": "^2.11.8",
|
|
18
18
|
"@saooti/octopus-api": "^0.36.0",
|
|
19
|
-
"@tiptap/extension-link": "^2.1.
|
|
20
|
-
"@tiptap/extension-underline": "^2.1.
|
|
21
|
-
"@tiptap/pm": "^2.1.
|
|
22
|
-
"@tiptap/starter-kit": "^2.1.
|
|
23
|
-
"@tiptap/vue-3": "^2.1.
|
|
19
|
+
"@tiptap/extension-link": "^2.1.16",
|
|
20
|
+
"@tiptap/extension-underline": "^2.1.16",
|
|
21
|
+
"@tiptap/pm": "^2.1.16",
|
|
22
|
+
"@tiptap/starter-kit": "^2.1.16",
|
|
23
|
+
"@tiptap/vue-3": "^2.1.16",
|
|
24
24
|
"@vue/cli": "^5.0.8",
|
|
25
|
-
"@vue/compat": "^3.
|
|
26
|
-
"@vuepic/vue-datepicker": "^7.
|
|
27
|
-
"@vueuse/core": "^10.
|
|
28
|
-
"autoprefixer": "^10.4.
|
|
29
|
-
"axios": "^1.6.
|
|
25
|
+
"@vue/compat": "^3.4.15",
|
|
26
|
+
"@vuepic/vue-datepicker": "^7.4.1",
|
|
27
|
+
"@vueuse/core": "^10.7.2",
|
|
28
|
+
"autoprefixer": "^10.4.17",
|
|
29
|
+
"axios": "^1.6.5",
|
|
30
30
|
"dayjs": "^1.11.10",
|
|
31
|
-
"eslint-config-prettier": "^9.
|
|
32
|
-
"eslint-plugin-prettier": "^5.
|
|
31
|
+
"eslint-config-prettier": "^9.1.0",
|
|
32
|
+
"eslint-plugin-prettier": "^5.1.3",
|
|
33
33
|
"express": "^4.18.2",
|
|
34
|
-
"hls.js": "^1.
|
|
35
|
-
"humanize-duration": "^3.
|
|
34
|
+
"hls.js": "^1.5.1",
|
|
35
|
+
"humanize-duration": "^3.31.0",
|
|
36
36
|
"jest": "^29.7.0",
|
|
37
37
|
"pinia": "^2.1.7",
|
|
38
38
|
"qrcode.vue": "^3.4.1",
|
|
39
|
-
"sass": "^1.
|
|
40
|
-
"sonarqube-scanner": "^3.
|
|
41
|
-
"swiper": "^11.0.
|
|
42
|
-
"video.js": "^8.
|
|
39
|
+
"sass": "^1.70.0",
|
|
40
|
+
"sonarqube-scanner": "^3.3.0",
|
|
41
|
+
"swiper": "^11.0.5",
|
|
42
|
+
"video.js": "^8.9.0",
|
|
43
43
|
"videojs-contrib-quality-levels": "^4.0.0",
|
|
44
44
|
"videojs-hls-quality-selector": "^1.1.4",
|
|
45
|
-
"vite": "^4.5.
|
|
46
|
-
"vue": "^3.
|
|
47
|
-
"vue-i18n": "^9.
|
|
45
|
+
"vite": "^4.5.1",
|
|
46
|
+
"vue": "^3.4.15",
|
|
47
|
+
"vue-i18n": "^9.9.0",
|
|
48
48
|
"vue-recaptcha": "^2.0.3",
|
|
49
49
|
"vue-router": "^4.2.5",
|
|
50
50
|
"vue-select": "^4.0.0-beta.6",
|
|
@@ -52,17 +52,17 @@
|
|
|
52
52
|
"vue3-swatches": "^1.2.3"
|
|
53
53
|
},
|
|
54
54
|
"devDependencies": {
|
|
55
|
-
"@types/videojs-contrib-quality-levels": "^2.0.
|
|
56
|
-
"@types/videojs-hls-quality-selector": "^1.1.
|
|
57
|
-
"@types/vue-select": "^3.16.
|
|
58
|
-
"@typescript-eslint/eslint-plugin": "^6.
|
|
59
|
-
"@typescript-eslint/parser": "^6.
|
|
60
|
-
"@vitejs/plugin-vue": "^4.
|
|
61
|
-
"@vue/compiler-sfc": "^3.
|
|
55
|
+
"@types/videojs-contrib-quality-levels": "^2.0.4",
|
|
56
|
+
"@types/videojs-hls-quality-selector": "^1.1.3",
|
|
57
|
+
"@types/vue-select": "^3.16.8",
|
|
58
|
+
"@typescript-eslint/eslint-plugin": "^6.19.0",
|
|
59
|
+
"@typescript-eslint/parser": "^6.19.0",
|
|
60
|
+
"@vitejs/plugin-vue": "^4.6.2",
|
|
61
|
+
"@vue/compiler-sfc": "^3.4.15",
|
|
62
62
|
"@vue/eslint-config-typescript": "^12.0.0",
|
|
63
|
-
"eslint": "^8.
|
|
64
|
-
"eslint-plugin-vue": "^9.
|
|
65
|
-
"typescript": "^5.
|
|
63
|
+
"eslint": "^8.56.0",
|
|
64
|
+
"eslint-plugin-vue": "^9.20.1",
|
|
65
|
+
"typescript": "^5.3.3"
|
|
66
66
|
},
|
|
67
67
|
"eslintConfig": {
|
|
68
68
|
"root": true,
|
|
@@ -227,7 +227,10 @@ export default defineComponent({
|
|
|
227
227
|
sort: this.popularSort ? "POPULARITY" : "DATE",
|
|
228
228
|
query: this.query,
|
|
229
229
|
includeStatus: ["READY", "PROCESSING"],
|
|
230
|
-
after:
|
|
230
|
+
after:
|
|
231
|
+
this.popularSort && this.lastThreeMonths
|
|
232
|
+
? dayjs().subtract(3, "months").toISOString()
|
|
233
|
+
: undefined,
|
|
231
234
|
},
|
|
232
235
|
true,
|
|
233
236
|
);
|
|
@@ -39,10 +39,6 @@
|
|
|
39
39
|
/>
|
|
40
40
|
<!-- eslint-enable -->
|
|
41
41
|
<div class="my-3">
|
|
42
|
-
<ParticipantDescription
|
|
43
|
-
class="mb-1"
|
|
44
|
-
:participants="podcast.animators"
|
|
45
|
-
/>
|
|
46
42
|
<div class="mb-1">
|
|
47
43
|
{{ $t("Emission") + " : " }}
|
|
48
44
|
<router-link
|
|
@@ -57,6 +53,15 @@
|
|
|
57
53
|
{{ podcast.emission.name }}
|
|
58
54
|
</router-link>
|
|
59
55
|
</div>
|
|
56
|
+
<ParticipantDescription
|
|
57
|
+
class="mb-1"
|
|
58
|
+
:participants="podcast.animators"
|
|
59
|
+
/>
|
|
60
|
+
<ParticipantDescription
|
|
61
|
+
class="mb-1"
|
|
62
|
+
:participants="podcast.guests"
|
|
63
|
+
:is-guest="true"
|
|
64
|
+
/>
|
|
60
65
|
<div v-if="!isPodcastmaker" class="mb-1">
|
|
61
66
|
{{ $t("Producted by : ") }}
|
|
62
67
|
<router-link
|
|
@@ -81,7 +86,6 @@
|
|
|
81
86
|
{{ $t("Author credits") + " : " + authorCredit }}
|
|
82
87
|
</div>
|
|
83
88
|
|
|
84
|
-
|
|
85
89
|
<a
|
|
86
90
|
v-if="podcast.article"
|
|
87
91
|
class="btn d-flex align-items-center my-2 width-fit-content mb-1"
|
|
@@ -92,11 +96,6 @@
|
|
|
92
96
|
<span class="saooti-newspaper me-1" />
|
|
93
97
|
<div>{{ $t("See associated article") }}</div>
|
|
94
98
|
</a>
|
|
95
|
-
<ParticipantDescription
|
|
96
|
-
class="mb-1"
|
|
97
|
-
:participants="podcast.guests"
|
|
98
|
-
:is-guest="true"
|
|
99
|
-
/>
|
|
100
99
|
<PodcastPlayBar
|
|
101
100
|
v-if="isProgressBar"
|
|
102
101
|
:podcast-id="podcast.podcastId"
|
|
@@ -131,7 +131,10 @@ export default defineComponent({
|
|
|
131
131
|
sort: this.popularSort ? "POPULARITY" : "DATE",
|
|
132
132
|
query: this.query,
|
|
133
133
|
includeStatus: ["READY", "PROCESSING"],
|
|
134
|
-
after:
|
|
134
|
+
after:
|
|
135
|
+
this.popularSort && this.lastThreeMonths
|
|
136
|
+
? dayjs().subtract(3, "months").toISOString()
|
|
137
|
+
: undefined,
|
|
135
138
|
},
|
|
136
139
|
true,
|
|
137
140
|
);
|
|
@@ -6,7 +6,12 @@
|
|
|
6
6
|
<div>
|
|
7
7
|
{{ $t("Podcast tags") + ": " }}
|
|
8
8
|
</div>
|
|
9
|
-
<div
|
|
9
|
+
<div
|
|
10
|
+
v-for="(tag, index) in tagList"
|
|
11
|
+
:key="tag"
|
|
12
|
+
class="tag-list-element"
|
|
13
|
+
:class="ouestFranceMainTag === tag ? 'main-of-tag' : ''"
|
|
14
|
+
>
|
|
10
15
|
<div
|
|
11
16
|
:id="'tag-list-from-podcast-page' + index"
|
|
12
17
|
role="button"
|
|
@@ -47,20 +52,29 @@ export default defineComponent({
|
|
|
47
52
|
mixins: [tagOfMixins],
|
|
48
53
|
props: {
|
|
49
54
|
tagList: { default: () => [], type: Array as () => Array<string> },
|
|
50
|
-
podcastAnnotations: {
|
|
55
|
+
podcastAnnotations: {
|
|
56
|
+
default: () => {},
|
|
57
|
+
type: Object as () => {
|
|
58
|
+
[key: string]: string | number | boolean | undefined;
|
|
59
|
+
},
|
|
60
|
+
},
|
|
51
61
|
},
|
|
52
|
-
computed:{
|
|
53
|
-
ouestFranceMainTag():string|undefined{
|
|
54
|
-
if(this.podcastAnnotations?.["mainOfTag"]){
|
|
62
|
+
computed: {
|
|
63
|
+
ouestFranceMainTag(): string | undefined {
|
|
64
|
+
if (this.podcastAnnotations?.["mainOfTag"]) {
|
|
55
65
|
for (var key in this.podcastAnnotations) {
|
|
56
|
-
if(
|
|
57
|
-
|
|
66
|
+
if (
|
|
67
|
+
this.podcastAnnotations[key] ===
|
|
68
|
+
this.podcastAnnotations["mainOfTag"] &&
|
|
69
|
+
key !== "mainOfTag"
|
|
70
|
+
) {
|
|
71
|
+
return "[of]" + key;
|
|
58
72
|
}
|
|
59
73
|
}
|
|
60
74
|
}
|
|
61
75
|
return undefined;
|
|
62
|
-
}
|
|
63
|
-
}
|
|
76
|
+
},
|
|
77
|
+
},
|
|
64
78
|
});
|
|
65
79
|
</script>
|
|
66
80
|
|
|
@@ -81,7 +95,7 @@ export default defineComponent({
|
|
|
81
95
|
border: 1px solid #999;
|
|
82
96
|
border-radius: $octopus-borderradius;
|
|
83
97
|
}
|
|
84
|
-
.main-of-tag{
|
|
98
|
+
.main-of-tag {
|
|
85
99
|
box-shadow: rgba(0, 0, 0, 0.35) 0px 5px 15px;
|
|
86
100
|
font-size: 0.9rem;
|
|
87
101
|
}
|
|
@@ -67,14 +67,14 @@ export default defineComponent({
|
|
|
67
67
|
select option:hover {
|
|
68
68
|
box-shadow: 0 0 10px 100px #dddddd inset;
|
|
69
69
|
}
|
|
70
|
-
select:focus > option:checked {
|
|
71
|
-
|
|
70
|
+
select:focus > option:checked {
|
|
71
|
+
background: #dddddd !important;
|
|
72
72
|
}
|
|
73
|
-
.classic-select select{
|
|
73
|
+
.classic-select select {
|
|
74
74
|
-webkit-appearance: none;
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
75
|
+
-moz-appearance: none;
|
|
76
|
+
background-image: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="14" height="10" role="presentation"><path fill="%233c3c3c80" d="M9.211364 7.59931l4.48338-4.867229c.407008-.441854.407008-1.158247 0-1.60046l-.73712-.80023c-.407008-.441854-1.066904-.441854-1.474243 0L7 5.198617 2.51662.33139c-.407008-.441853-1.066904-.441853-1.474243 0l-.737121.80023c-.407008.441854-.407008 1.158248 0 1.600461l4.48338 4.867228L7 10l2.211364-2.40069z"></path></svg>') !important;
|
|
77
|
+
background-repeat: no-repeat !important;
|
|
78
78
|
background-position-x: calc(100% - 6px) !important;
|
|
79
79
|
background-position-y: 0.7rem !important;
|
|
80
80
|
}
|
|
@@ -86,7 +86,7 @@ export default defineComponent({
|
|
|
86
86
|
border: 0;
|
|
87
87
|
height: unset;
|
|
88
88
|
-webkit-appearance: auto !important;
|
|
89
|
-
|
|
89
|
+
-moz-appearance: auto !important;
|
|
90
90
|
}
|
|
91
91
|
}
|
|
92
92
|
</style>
|
|
@@ -1,5 +1,11 @@
|
|
|
1
1
|
<template>
|
|
2
|
-
<div
|
|
2
|
+
<div
|
|
3
|
+
class="my-2"
|
|
4
|
+
:class="[
|
|
5
|
+
displayAccordion ? 'octopus-accordion' : '',
|
|
6
|
+
isOpen ? 'octopus-accordion-open' : '',
|
|
7
|
+
]"
|
|
8
|
+
>
|
|
3
9
|
<template v-if="displayAccordion">
|
|
4
10
|
<button
|
|
5
11
|
:id="'accordion-' + idComposer"
|
|
@@ -51,20 +57,20 @@ export default defineComponent({
|
|
|
51
57
|
});
|
|
52
58
|
</script>
|
|
53
59
|
<style lang="scss">
|
|
54
|
-
@import
|
|
55
|
-
.octopus-accordion{
|
|
56
|
-
> button{
|
|
60
|
+
@import "@scss/_variables.scss";
|
|
61
|
+
.octopus-accordion {
|
|
62
|
+
> button {
|
|
57
63
|
background: white;
|
|
58
64
|
min-height: 50px;
|
|
59
65
|
color: $octopus-primary-color;
|
|
60
66
|
border: 1px solid transparent;
|
|
61
|
-
&:hover{
|
|
67
|
+
&:hover {
|
|
62
68
|
border: 1px solid $octopus-primary-color;
|
|
63
69
|
}
|
|
64
70
|
}
|
|
65
|
-
&.octopus-accordion-open{
|
|
71
|
+
&.octopus-accordion-open {
|
|
66
72
|
border: 1px solid $octopus-primary-color;
|
|
67
|
-
> button{
|
|
73
|
+
> button {
|
|
68
74
|
background: $octopus-primary-color;
|
|
69
75
|
color: white;
|
|
70
76
|
}
|
|
@@ -85,15 +85,15 @@ export default defineComponent({
|
|
|
85
85
|
background-color 0.15s ease-in-out,
|
|
86
86
|
border-color 0.15s ease-in-out;
|
|
87
87
|
border: 0.1rem solid transparent;
|
|
88
|
-
&:hover{
|
|
88
|
+
&:hover {
|
|
89
89
|
border-color: #dee2e6;
|
|
90
90
|
border-bottom-color: $octopus-primary-color;
|
|
91
91
|
color: $octopus-primary-color;
|
|
92
92
|
}
|
|
93
|
-
&.active{
|
|
93
|
+
&.active {
|
|
94
94
|
border-color: $octopus-primary-color;
|
|
95
95
|
background: $octopus-primary-color;
|
|
96
|
-
color:white;
|
|
96
|
+
color: white;
|
|
97
97
|
}
|
|
98
98
|
}
|
|
99
99
|
.octopus-nav.light .octopus-nav-link {
|
|
@@ -8,8 +8,11 @@
|
|
|
8
8
|
:class="[onlyClick ? 'octopus-dropdown' : '', popoverClass]"
|
|
9
9
|
:style="positionInlineStyle"
|
|
10
10
|
@blur="clearDataBlur"
|
|
11
|
-
@mouseenter="overPopover=true"
|
|
12
|
-
@mouseleave="
|
|
11
|
+
@mouseenter="overPopover = true"
|
|
12
|
+
@mouseleave="
|
|
13
|
+
overPopover = false;
|
|
14
|
+
clearData();
|
|
15
|
+
"
|
|
13
16
|
>
|
|
14
17
|
<div v-if="title" class="bg-secondary p-2">
|
|
15
18
|
{{ title }}
|
|
@@ -44,7 +47,7 @@ export default defineComponent({
|
|
|
44
47
|
posX: 0 as number,
|
|
45
48
|
posY: 0 as number,
|
|
46
49
|
targetElement: null as HTMLElement | null,
|
|
47
|
-
overPopover: false as boolean
|
|
50
|
+
overPopover: false as boolean,
|
|
48
51
|
};
|
|
49
52
|
},
|
|
50
53
|
computed: {
|
|
@@ -70,7 +73,10 @@ export default defineComponent({
|
|
|
70
73
|
"mouseenter",
|
|
71
74
|
this.setPopoverData,
|
|
72
75
|
);
|
|
73
|
-
this.targetElement.addEventListener(
|
|
76
|
+
this.targetElement.addEventListener(
|
|
77
|
+
"mouseleave",
|
|
78
|
+
this.clearDataTimeout,
|
|
79
|
+
);
|
|
74
80
|
}
|
|
75
81
|
if (!this.onlyMouse) {
|
|
76
82
|
this.targetElement.addEventListener("click", this.setPopoverData);
|
|
@@ -85,7 +91,10 @@ export default defineComponent({
|
|
|
85
91
|
"mouseenter",
|
|
86
92
|
this.setPopoverData,
|
|
87
93
|
);
|
|
88
|
-
this.targetElement.removeEventListener(
|
|
94
|
+
this.targetElement.removeEventListener(
|
|
95
|
+
"mouseleave",
|
|
96
|
+
this.clearDataTimeout,
|
|
97
|
+
);
|
|
89
98
|
}
|
|
90
99
|
if (!this.onlyMouse) {
|
|
91
100
|
this.targetElement.removeEventListener("click", this.setPopoverData);
|
|
@@ -185,7 +194,7 @@ export default defineComponent({
|
|
|
185
194
|
},
|
|
186
195
|
clearDataTimeout() {
|
|
187
196
|
setTimeout(() => {
|
|
188
|
-
if(!this.overPopover){
|
|
197
|
+
if (!this.overPopover) {
|
|
189
198
|
this.clearData();
|
|
190
199
|
}
|
|
191
200
|
}, 500);
|
|
@@ -3,8 +3,8 @@
|
|
|
3
3
|
<button
|
|
4
4
|
v-if="isAuthenticatedWithOrga"
|
|
5
5
|
:title="$t('My space')"
|
|
6
|
-
@click="goToAdministration"
|
|
7
6
|
class="btn admin-button hide-smallest-screen m-1 saooti-admin-menu"
|
|
7
|
+
@click="goToAdministration"
|
|
8
8
|
/>
|
|
9
9
|
<router-link
|
|
10
10
|
v-if="isAuthenticatedWithOrga && isContribution"
|
|
@@ -60,7 +60,7 @@
|
|
|
60
60
|
</template>
|
|
61
61
|
</template>
|
|
62
62
|
<hr />
|
|
63
|
-
<a class="octopus-dropdown-item c-hand" @click="logoutFunction"
|
|
63
|
+
<a class="octopus-dropdown-item c-hand" @click="logoutFunction">
|
|
64
64
|
{{ $t("Logout") }}
|
|
65
65
|
</a>
|
|
66
66
|
</template>
|
|
@@ -148,25 +148,25 @@ export default defineComponent({
|
|
|
148
148
|
return state.generalParameters.isContribution ?? false;
|
|
149
149
|
},
|
|
150
150
|
},
|
|
151
|
-
methods:{
|
|
152
|
-
async logoutFunction(){
|
|
151
|
+
methods: {
|
|
152
|
+
async logoutFunction() {
|
|
153
153
|
try {
|
|
154
|
-
await crudApi.postData(4,
|
|
155
|
-
await this.$router.push({ path:
|
|
154
|
+
await crudApi.postData(4, "/logout", undefined);
|
|
155
|
+
await this.$router.push({ path: "/" });
|
|
156
156
|
location.reload();
|
|
157
157
|
} catch (error) {
|
|
158
158
|
//Do nothing
|
|
159
159
|
}
|
|
160
160
|
},
|
|
161
|
-
goToAdministration(){
|
|
162
|
-
if("backoffice" !== this.$route.name){
|
|
161
|
+
goToAdministration() {
|
|
162
|
+
if ("backoffice" !== this.$route.name) {
|
|
163
163
|
this.$router.push("/main/priv/backoffice");
|
|
164
|
-
}else if (window.history.length > 1) {
|
|
164
|
+
} else if (window.history.length > 1) {
|
|
165
165
|
this.$router.go(-1);
|
|
166
166
|
} else {
|
|
167
167
|
this.$router.push("/");
|
|
168
168
|
}
|
|
169
|
-
}
|
|
170
|
-
}
|
|
169
|
+
},
|
|
170
|
+
},
|
|
171
171
|
});
|
|
172
172
|
</script>
|
|
@@ -1,5 +1,9 @@
|
|
|
1
1
|
<template>
|
|
2
|
-
<div
|
|
2
|
+
<div
|
|
3
|
+
v-if="!inPlayer || display"
|
|
4
|
+
id="test-menu-dropdown"
|
|
5
|
+
class="octopus-progress"
|
|
6
|
+
>
|
|
3
7
|
<div
|
|
4
8
|
v-if="secondaryProgress"
|
|
5
9
|
class="octopus-progress-bar bg-light"
|
|
@@ -10,12 +10,23 @@
|
|
|
10
10
|
v-for="(chapter, index) in playerChapteringPercent"
|
|
11
11
|
:key="chapter"
|
|
12
12
|
class="btn d-flex flex-nowrap align-items-center p-2 mt-1 c-hand text-truncate mb-1"
|
|
13
|
-
:class="actualChapter === index ? 'chapter-selected':'border'"
|
|
13
|
+
:class="actualChapter === index ? 'chapter-selected' : 'border'"
|
|
14
14
|
@click="goToChapter(index)"
|
|
15
15
|
>
|
|
16
16
|
<div class="d-flex align-items-center me-auto">
|
|
17
|
-
<svg
|
|
18
|
-
|
|
17
|
+
<svg
|
|
18
|
+
v-if="actualChapter === index"
|
|
19
|
+
xmlns="http://www.w3.org/2000/svg"
|
|
20
|
+
width="16"
|
|
21
|
+
height="16"
|
|
22
|
+
fill="currentColor"
|
|
23
|
+
class="bi bi-soundwave"
|
|
24
|
+
viewBox="0 0 16 16"
|
|
25
|
+
>
|
|
26
|
+
<path
|
|
27
|
+
fill-rule="evenodd"
|
|
28
|
+
d="M8.5 2a.5.5 0 0 1 .5.5v11a.5.5 0 0 1-1 0v-11a.5.5 0 0 1 .5-.5m-2 2a.5.5 0 0 1 .5.5v7a.5.5 0 0 1-1 0v-7a.5.5 0 0 1 .5-.5m4 0a.5.5 0 0 1 .5.5v7a.5.5 0 0 1-1 0v-7a.5.5 0 0 1 .5-.5m-6 1.5A.5.5 0 0 1 5 6v4a.5.5 0 0 1-1 0V6a.5.5 0 0 1 .5-.5m8 0a.5.5 0 0 1 .5.5v4a.5.5 0 0 1-1 0V6a.5.5 0 0 1 .5-.5m-10 1A.5.5 0 0 1 3 7v2a.5.5 0 0 1-1 0V7a.5.5 0 0 1 .5-.5m12 0a.5.5 0 0 1 .5.5v2a.5.5 0 0 1-1 0V7a.5.5 0 0 1 .5-.5"
|
|
29
|
+
/>
|
|
19
30
|
</svg>
|
|
20
31
|
<div v-else>{{ index + 1 }}</div>
|
|
21
32
|
<div class="ms-2">{{ "- " + chapter.title }}</div>
|
|
@@ -42,7 +53,7 @@ export default defineComponent({
|
|
|
42
53
|
components: {
|
|
43
54
|
ClassicModal,
|
|
44
55
|
},
|
|
45
|
-
props: {actualChapter: {default: -1, type: Number}},
|
|
56
|
+
props: { actualChapter: { default: -1, type: Number } },
|
|
46
57
|
emits: ["close"],
|
|
47
58
|
data() {
|
|
48
59
|
return {
|
|
@@ -88,8 +99,8 @@ export default defineComponent({
|
|
|
88
99
|
<style lang="scss">
|
|
89
100
|
@import "@scss/_variables.scss";
|
|
90
101
|
.octopus-app {
|
|
91
|
-
|
|
102
|
+
.chapter-selected {
|
|
92
103
|
border: $octopus-primary-color 3px solid;
|
|
93
|
-
|
|
104
|
+
}
|
|
94
105
|
}
|
|
95
|
-
</style>
|
|
106
|
+
</style>
|
|
@@ -9,7 +9,11 @@
|
|
|
9
9
|
</div>
|
|
10
10
|
<span class="saooti-right small-text" />
|
|
11
11
|
</button>
|
|
12
|
-
<ChapteringModal
|
|
12
|
+
<ChapteringModal
|
|
13
|
+
v-if="showChaptering"
|
|
14
|
+
:actual-chapter="actualIndex"
|
|
15
|
+
@close="showChaptering = false"
|
|
16
|
+
/>
|
|
13
17
|
</div>
|
|
14
18
|
<div v-else-if="playerChapteringPercent" class="margin-chaptering"></div>
|
|
15
19
|
</template>
|
|
@@ -72,15 +76,18 @@ export default defineComponent({
|
|
|
72
76
|
},
|
|
73
77
|
methods: {
|
|
74
78
|
isInChapter(val: number, chapter: ChapterPercent) {
|
|
75
|
-
return
|
|
79
|
+
return (
|
|
80
|
+
Math.floor(chapter.startPercent) <= val &&
|
|
81
|
+
val < Math.floor(chapter.endPercent)
|
|
82
|
+
);
|
|
76
83
|
},
|
|
77
84
|
},
|
|
78
85
|
});
|
|
79
86
|
</script>
|
|
80
87
|
<style lang="scss">
|
|
81
88
|
.octopus-app {
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
89
|
+
.margin-chaptering {
|
|
90
|
+
height: 23px;
|
|
91
|
+
}
|
|
85
92
|
}
|
|
86
|
-
</style>
|
|
93
|
+
</style>
|
|
@@ -24,15 +24,10 @@
|
|
|
24
24
|
v-if="authenticated"
|
|
25
25
|
class="btn btn-primary"
|
|
26
26
|
@click="logoutFunction"
|
|
27
|
-
|
|
28
|
-
>{{ authText }}</button
|
|
29
|
-
>
|
|
30
|
-
<a
|
|
31
|
-
v-else
|
|
32
|
-
class="btn btn-primary"
|
|
33
|
-
href="/sso/login"
|
|
34
|
-
>{{ authText }}</a
|
|
35
27
|
>
|
|
28
|
+
{{ authText }}
|
|
29
|
+
</button>
|
|
30
|
+
<a v-else class="btn btn-primary" href="/sso/login">{{ authText }}</a>
|
|
36
31
|
</div>
|
|
37
32
|
</template>
|
|
38
33
|
|
|
@@ -56,17 +51,17 @@ export default defineComponent({
|
|
|
56
51
|
mounted() {
|
|
57
52
|
document.title = this.metaTitle;
|
|
58
53
|
},
|
|
59
|
-
methods:{
|
|
60
|
-
async logoutFunction(){
|
|
54
|
+
methods: {
|
|
55
|
+
async logoutFunction() {
|
|
61
56
|
try {
|
|
62
|
-
await crudApi.postData(4,
|
|
63
|
-
await this.$router.push({ path:
|
|
57
|
+
await crudApi.postData(4, "/logout", undefined);
|
|
58
|
+
await this.$router.push({ path: "/" });
|
|
64
59
|
location.reload();
|
|
65
60
|
} catch (error) {
|
|
66
61
|
//Do nothing
|
|
67
62
|
}
|
|
68
|
-
}
|
|
69
|
-
}
|
|
63
|
+
},
|
|
64
|
+
},
|
|
70
65
|
});
|
|
71
66
|
</script>
|
|
72
67
|
<style lang="scss">
|