@saooti/octopus-sdk 30.0.25 → 30.0.29
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 +5 -1
- package/package.json +1 -1
- package/public/config.ts +4 -0
- package/src/assets/bootstrap-diff.scss +0 -2
- package/src/components/display/comments/AddCommentModal.vue +17 -3
- package/src/components/display/comments/CommentInput.vue +54 -27
- package/src/components/display/comments/CommentItem.vue +31 -4
- package/src/components/display/emission/EmissionInlineList.vue +27 -24
- package/src/components/display/emission/EmissionList.vue +1 -1
- package/src/components/display/live/LiveHorizontalList.vue +1 -1
- package/src/components/display/playlist/PlaylistList.vue +1 -1
- package/src/components/display/playlist/PodcastList.vue +1 -1
- package/src/components/display/podcasts/PodcastInlineList.vue +1 -1
- package/src/components/display/podcasts/PodcastList.vue +1 -1
- package/src/components/misc/HomeDropdown.vue +1 -1
- package/src/components/misc/TopBar.vue +6 -1
package/README.md
CHANGED
|
@@ -522,4 +522,8 @@ See [Configuration Reference](https://cli.vuejs.org/config/).
|
|
|
522
522
|
* 30.0.22 Accessibilité
|
|
523
523
|
* 30.0.23 Css + Accessibilité
|
|
524
524
|
* 30.0.24 Css + Accessibilité
|
|
525
|
-
* 30.0.25 Css + Accessibilité
|
|
525
|
+
* 30.0.25 Css + Accessibilité
|
|
526
|
+
* 30.0.26 Css + Accessibilité
|
|
527
|
+
* 30.0.27 Top bar responsive
|
|
528
|
+
* 30.0.28 Limiter caractères des commentaires
|
|
529
|
+
* 30.0.29 Pour podcastmaker sudPresse
|
package/package.json
CHANGED
package/public/config.ts
ADDED
|
@@ -19,8 +19,14 @@
|
|
|
19
19
|
class="form-input"
|
|
20
20
|
type="text"
|
|
21
21
|
:placeholder="$t('Your name')"
|
|
22
|
-
:class="{ 'border border-danger':
|
|
22
|
+
:class="{ 'border border-danger': 0 === countName || !validName }"
|
|
23
23
|
>
|
|
24
|
+
<p
|
|
25
|
+
class="d-flex justify-content-end small-text"
|
|
26
|
+
:class="{ 'text-danger': !validName }"
|
|
27
|
+
>
|
|
28
|
+
{{ countName + ' / ' + maxName }}
|
|
29
|
+
</p>
|
|
24
30
|
<div
|
|
25
31
|
v-if="sendError"
|
|
26
32
|
class="mt-1 text-danger"
|
|
@@ -47,8 +53,8 @@
|
|
|
47
53
|
</button>
|
|
48
54
|
<button
|
|
49
55
|
v-if="!sending"
|
|
50
|
-
class="btn btn-
|
|
51
|
-
:disabled="
|
|
56
|
+
class="btn btn-link m-1"
|
|
57
|
+
:disabled="0 === countName || !validName"
|
|
52
58
|
@click="validateName"
|
|
53
59
|
>
|
|
54
60
|
{{ $t('Validate') }}
|
|
@@ -61,6 +67,7 @@
|
|
|
61
67
|
|
|
62
68
|
<script lang="ts">
|
|
63
69
|
import { IReCaptchaComposition, useReCaptcha } from 'vue-recaptcha-v3';
|
|
70
|
+
import Constants from '../../../../public/config';
|
|
64
71
|
import { state } from '../../../store/paramStore';
|
|
65
72
|
import api from '@/api/initialize';
|
|
66
73
|
import { defineComponent } from 'vue'
|
|
@@ -76,10 +83,17 @@ export default defineComponent({
|
|
|
76
83
|
sending: false as boolean,
|
|
77
84
|
needVerify: true as boolean,
|
|
78
85
|
sendError: false as boolean,
|
|
86
|
+
maxName : Constants.MAX_COMMENT_NAME as number
|
|
79
87
|
};
|
|
80
88
|
},
|
|
81
89
|
|
|
82
90
|
computed: {
|
|
91
|
+
validName(): boolean{
|
|
92
|
+
return this.countName <= this.maxName;
|
|
93
|
+
},
|
|
94
|
+
countName(): number{
|
|
95
|
+
return this.name.length;
|
|
96
|
+
},
|
|
83
97
|
isCaptchaTest(): boolean {
|
|
84
98
|
return (state.generalParameters.isCaptchaTest as boolean);
|
|
85
99
|
},
|
|
@@ -12,21 +12,29 @@
|
|
|
12
12
|
v-if="editName"
|
|
13
13
|
class="d-flex"
|
|
14
14
|
>
|
|
15
|
-
<
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
15
|
+
<div class="d-flex flex-column">
|
|
16
|
+
<input
|
|
17
|
+
v-model="temporaryName"
|
|
18
|
+
class="small-text mt-1"
|
|
19
|
+
type="text"
|
|
20
|
+
:class="{ 'border border-danger': 0 === countName || !validName }"
|
|
21
|
+
>
|
|
22
|
+
<p
|
|
23
|
+
class="d-flex justify-content-end small-text mb-0"
|
|
24
|
+
:class="{ 'text-danger': !validName }"
|
|
25
|
+
>
|
|
26
|
+
{{ countName + ' / ' + maxName }}
|
|
27
|
+
</p>
|
|
28
|
+
</div>
|
|
21
29
|
<button
|
|
22
|
-
class="btn"
|
|
30
|
+
class="btn m-1"
|
|
23
31
|
@click="editName = false"
|
|
24
32
|
>
|
|
25
33
|
{{ $t('Cancel') }}
|
|
26
34
|
</button>
|
|
27
35
|
<button
|
|
28
|
-
class="btn btn-link"
|
|
29
|
-
:disabled="
|
|
36
|
+
class="btn btn-link m-1"
|
|
37
|
+
:disabled="0 === countName || !validName"
|
|
30
38
|
@click="validEdit"
|
|
31
39
|
>
|
|
32
40
|
{{ $t('Validate') }}
|
|
@@ -41,24 +49,29 @@
|
|
|
41
49
|
@focus="textareaFocus = true"
|
|
42
50
|
@blur="textareaFocus = false"
|
|
43
51
|
/>
|
|
44
|
-
<
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
<button
|
|
49
|
-
class="btn me-2"
|
|
50
|
-
@mousedown="cancelAction"
|
|
51
|
-
>
|
|
52
|
-
{{ $t('Cancel') }}
|
|
53
|
-
</button>
|
|
54
|
-
<button
|
|
55
|
-
class="btn btn-link"
|
|
56
|
-
:disabled="0 === newComment.trim().length"
|
|
57
|
-
@mousedown="requestToSend"
|
|
52
|
+
<template v-if="textareaFocus">
|
|
53
|
+
<p
|
|
54
|
+
class="d-flex justify-content-end small-text"
|
|
55
|
+
:class="{ 'text-danger': !validComment }"
|
|
58
56
|
>
|
|
59
|
-
{{
|
|
60
|
-
</
|
|
61
|
-
|
|
57
|
+
{{ countComment + ' / ' + maxComment }}
|
|
58
|
+
</p>
|
|
59
|
+
<div class="d-flex justify-content-end mt-1">
|
|
60
|
+
<button
|
|
61
|
+
class="btn me-2"
|
|
62
|
+
@mousedown="cancelAction"
|
|
63
|
+
>
|
|
64
|
+
{{ $t('Cancel') }}
|
|
65
|
+
</button>
|
|
66
|
+
<button
|
|
67
|
+
class="btn btn-link"
|
|
68
|
+
:disabled="0 === countComment || !validComment"
|
|
69
|
+
@mousedown="requestToSend"
|
|
70
|
+
>
|
|
71
|
+
{{ placeholder }}
|
|
72
|
+
</button>
|
|
73
|
+
</div>
|
|
74
|
+
</template>
|
|
62
75
|
<AddCommentModal
|
|
63
76
|
v-if="checkIdentityModal"
|
|
64
77
|
@validate="postComment"
|
|
@@ -83,7 +96,7 @@ import { state } from '../../../store/paramStore';
|
|
|
83
96
|
import { Podcast } from '@/store/class/general/podcast';
|
|
84
97
|
import { Conference } from '@/store/class/conference/conference';
|
|
85
98
|
import { CommentPodcast } from '@/store/class/general/comment';
|
|
86
|
-
|
|
99
|
+
import Constants from '../../../../public/config';
|
|
87
100
|
import { defineComponent, defineAsyncComponent } from 'vue';
|
|
88
101
|
const AddCommentModal = defineAsyncComponent(() => import('./AddCommentModal.vue'));
|
|
89
102
|
const MessageModal = defineAsyncComponent(() => import('../../misc/modal/MessageModal.vue'));
|
|
@@ -113,10 +126,24 @@ export default defineComponent({
|
|
|
113
126
|
isOneLine: true as boolean,
|
|
114
127
|
editName: false as boolean,
|
|
115
128
|
temporaryName: '' as string,
|
|
129
|
+
maxComment : Constants.MAX_COMMENT as number,
|
|
130
|
+
maxName : Constants.MAX_COMMENT_NAME as number
|
|
116
131
|
};
|
|
117
132
|
},
|
|
118
133
|
|
|
119
134
|
computed: {
|
|
135
|
+
validName(): boolean{
|
|
136
|
+
return this.countName <= this.maxName;
|
|
137
|
+
},
|
|
138
|
+
countName(): number{
|
|
139
|
+
return this.temporaryName.length;
|
|
140
|
+
},
|
|
141
|
+
validComment(): boolean{
|
|
142
|
+
return this.countComment <= this.maxComment;
|
|
143
|
+
},
|
|
144
|
+
countComment(): number{
|
|
145
|
+
return this.newComment.length;
|
|
146
|
+
},
|
|
120
147
|
isPresent(): boolean {
|
|
121
148
|
if (!this.podcast) return true;
|
|
122
149
|
let podcastComment = 'INHERIT';
|
|
@@ -9,16 +9,28 @@
|
|
|
9
9
|
<template v-else>
|
|
10
10
|
<input
|
|
11
11
|
v-model="temporaryName"
|
|
12
|
-
class="form-input
|
|
12
|
+
class="form-input"
|
|
13
13
|
type="text"
|
|
14
|
-
:class="{ 'border border-danger':
|
|
14
|
+
:class="{ 'border border-danger': 0 === countName || !validName }"
|
|
15
|
+
>
|
|
16
|
+
<p
|
|
17
|
+
class="d-flex justify-content-end small-text"
|
|
18
|
+
:class="{ 'text-danger': !validName }"
|
|
15
19
|
>
|
|
20
|
+
{{ countName + ' / ' + maxName }}
|
|
21
|
+
</p>
|
|
16
22
|
<textarea
|
|
17
23
|
v-model="temporaryContent"
|
|
18
|
-
:class="{ 'border border-danger': 0===
|
|
24
|
+
:class="{ 'border border-danger': 0 === countComment || !validComment }"
|
|
19
25
|
class="form-input"
|
|
20
26
|
type="text"
|
|
21
27
|
/>
|
|
28
|
+
<p
|
|
29
|
+
class="d-flex justify-content-end small-text"
|
|
30
|
+
:class="{ 'text-danger': !validComment }"
|
|
31
|
+
>
|
|
32
|
+
{{ countComment + ' / ' + maxComment }}
|
|
33
|
+
</p>
|
|
22
34
|
<div class="d-flex justify-content-end">
|
|
23
35
|
<button
|
|
24
36
|
class="btn m-1"
|
|
@@ -28,7 +40,7 @@
|
|
|
28
40
|
</button>
|
|
29
41
|
<button
|
|
30
42
|
class="btn btn-link m-1"
|
|
31
|
-
:disabled="0 ===
|
|
43
|
+
:disabled="0 === countComment || !validComment || 0 === countName || !validName"
|
|
32
44
|
@click="validEdit"
|
|
33
45
|
>
|
|
34
46
|
{{ $t('Validate') }}
|
|
@@ -122,6 +134,7 @@ import { CommentPodcast } from '@/store/class/general/comment';
|
|
|
122
134
|
import { Podcast } from '@/store/class/general/podcast';
|
|
123
135
|
import { Conference } from '@/store/class/conference/conference';
|
|
124
136
|
import CommentBasicView from './CommentBasicView.vue';
|
|
137
|
+
import Constants from '../../../../public/config';
|
|
125
138
|
import { defineComponent, defineAsyncComponent } from 'vue';
|
|
126
139
|
const CommentInput = defineAsyncComponent(() => import('./CommentInput.vue'));
|
|
127
140
|
const CommentParentInfo = defineAsyncComponent(() => import('./CommentParentInfo.vue'));
|
|
@@ -157,9 +170,23 @@ export default defineComponent({
|
|
|
157
170
|
isEditing: false as boolean,
|
|
158
171
|
temporaryContent: '' as string,
|
|
159
172
|
temporaryName: '' as string,
|
|
173
|
+
maxComment : Constants.MAX_COMMENT as number,
|
|
174
|
+
maxName : Constants.MAX_COMMENT_NAME as number
|
|
160
175
|
};
|
|
161
176
|
},
|
|
162
177
|
computed: {
|
|
178
|
+
validName(): boolean{
|
|
179
|
+
return this.countName <= this.maxName;
|
|
180
|
+
},
|
|
181
|
+
countName(): number{
|
|
182
|
+
return this.temporaryName.length;
|
|
183
|
+
},
|
|
184
|
+
validComment(): boolean{
|
|
185
|
+
return this.countComment <= this.maxComment;
|
|
186
|
+
},
|
|
187
|
+
countComment(): number{
|
|
188
|
+
return this.temporaryContent.length;
|
|
189
|
+
},
|
|
163
190
|
myOrganisationId(): string|undefined {
|
|
164
191
|
return state.generalParameters.organisationId;
|
|
165
192
|
},
|
|
@@ -57,7 +57,7 @@
|
|
|
57
57
|
<router-link
|
|
58
58
|
v-if="!overflowScroll"
|
|
59
59
|
:to="href"
|
|
60
|
-
class="btn btn-link m-4"
|
|
60
|
+
class="btn btn-link align-self-center width-fit-content m-4"
|
|
61
61
|
>
|
|
62
62
|
{{
|
|
63
63
|
buttonText
|
|
@@ -257,31 +257,34 @@ export default defineComponent({
|
|
|
257
257
|
</script>
|
|
258
258
|
|
|
259
259
|
<style lang="scss">
|
|
260
|
-
.
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
260
|
+
.octopus-app{
|
|
261
|
+
.list-episode {
|
|
262
|
+
padding: 2rem 0rem 1rem !important;
|
|
263
|
+
@media (max-width: 450px) {
|
|
264
|
+
padding: 0.5rem 0rem 1rem !important;
|
|
265
|
+
}
|
|
266
|
+
h2 {
|
|
267
|
+
margin-bottom: 1rem;
|
|
268
|
+
}
|
|
269
|
+
}
|
|
270
|
+
.element-list-inline.overflowScroll {
|
|
271
|
+
display: flex;
|
|
272
|
+
flex-wrap: wrap;
|
|
273
|
+
-webkit-overflow-scrolling: touch;
|
|
274
|
+
scroll-behavior: smooth;
|
|
275
|
+
padding-bottom: 1rem;
|
|
276
|
+
width: 100%;
|
|
277
|
+
height: 80vh;
|
|
278
|
+
overflow-y: auto;
|
|
279
|
+
grid-gap: inherit;
|
|
280
|
+
@media (max-width: 960px) {
|
|
281
|
+
overflow-x: hidden;
|
|
282
|
+
flex-direction: column;
|
|
283
|
+
flex-wrap: nowrap;
|
|
264
284
|
}
|
|
265
|
-
|
|
266
|
-
|
|
285
|
+
.item-phone-margin {
|
|
286
|
+
margin: 1rem 0.5rem !important;
|
|
267
287
|
}
|
|
268
|
-
}
|
|
269
|
-
.element-list-inline.overflowScroll {
|
|
270
|
-
display: flex;
|
|
271
|
-
flex-wrap: wrap;
|
|
272
|
-
-webkit-overflow-scrolling: touch;
|
|
273
|
-
scroll-behavior: smooth;
|
|
274
|
-
padding-bottom: 1rem;
|
|
275
|
-
width: 100%;
|
|
276
|
-
height: 80vh;
|
|
277
|
-
overflow-y: auto;
|
|
278
|
-
@media (max-width: 960px) {
|
|
279
|
-
overflow-x: hidden;
|
|
280
|
-
flex-direction: column;
|
|
281
|
-
flex-wrap: nowrap;
|
|
282
|
-
}
|
|
283
|
-
.item-phone-margin {
|
|
284
|
-
margin: 1rem 0.5rem !important;
|
|
285
288
|
}
|
|
286
289
|
}
|
|
287
290
|
</style>
|
|
@@ -41,7 +41,7 @@
|
|
|
41
41
|
<button
|
|
42
42
|
v-show="!allFetched"
|
|
43
43
|
class="btn"
|
|
44
|
-
:class="buttonPlus ? 'btn-link
|
|
44
|
+
:class="buttonPlus ? 'btn-link align-self-center width-fit-content m-4' : 'btn-more'"
|
|
45
45
|
:disabled="loading"
|
|
46
46
|
:title="$t('See more')"
|
|
47
47
|
@click="fetchContent(false)"
|
|
@@ -16,7 +16,7 @@
|
|
|
16
16
|
<button
|
|
17
17
|
v-show="!allFetched"
|
|
18
18
|
class="btn"
|
|
19
|
-
:class="buttonPlus ? 'btn-link m-4 mt-3' : 'btn-more'"
|
|
19
|
+
:class="buttonPlus ? 'btn-link align-self-center width-fit-content m-4 mt-3' : 'btn-more'"
|
|
20
20
|
:disabled="inFetching"
|
|
21
21
|
:title="$t('See more')"
|
|
22
22
|
@click="displayMore"
|
|
@@ -19,7 +19,7 @@
|
|
|
19
19
|
<button
|
|
20
20
|
v-show="!allFetched && loaded"
|
|
21
21
|
class="btn"
|
|
22
|
-
:class="buttonPlus ? 'btn-link
|
|
22
|
+
:class="buttonPlus ? 'btn-link align-self-center width-fit-content m-4':'btn-more'"
|
|
23
23
|
:disabled="inFetching"
|
|
24
24
|
:title="$t('See more')"
|
|
25
25
|
@click="displayMore"
|
|
@@ -40,7 +40,7 @@
|
|
|
40
40
|
<button
|
|
41
41
|
v-show="size < podcasts.length && loaded"
|
|
42
42
|
class="btn"
|
|
43
|
-
:class="buttonPlus ? 'btn-link
|
|
43
|
+
:class="buttonPlus ? 'btn-link align-self-center width-fit-content m-4':'btn-more'"
|
|
44
44
|
:title="$t('See more')"
|
|
45
45
|
@click="displayMore"
|
|
46
46
|
>
|
|
@@ -23,7 +23,7 @@
|
|
|
23
23
|
<button
|
|
24
24
|
v-show="!allFetched && loaded"
|
|
25
25
|
class="btn"
|
|
26
|
-
:class="buttonPlus ? 'btn-link
|
|
26
|
+
:class="buttonPlus ? 'btn-link align-self-center width-fit-content m-4' : 'btn-more'"
|
|
27
27
|
:disabled="inFetching"
|
|
28
28
|
:title="$t('See more')"
|
|
29
29
|
@click="displayMore"
|
|
@@ -325,8 +325,13 @@ export default defineComponent({
|
|
|
325
325
|
height: 2rem;
|
|
326
326
|
}
|
|
327
327
|
}
|
|
328
|
-
@media (max-width:
|
|
328
|
+
@media (max-width: 380px) {
|
|
329
329
|
.top-bar-logo img{
|
|
330
|
+
height: 1rem;
|
|
331
|
+
}
|
|
332
|
+
}
|
|
333
|
+
@media (max-width: 290px) {
|
|
334
|
+
.top-bar-logo{
|
|
330
335
|
display: none;
|
|
331
336
|
}
|
|
332
337
|
}
|