@saooti/octopus-sdk 30.0.26 → 30.0.30

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 CHANGED
@@ -523,4 +523,8 @@ See [Configuration Reference](https://cli.vuejs.org/config/).
523
523
  * 30.0.23 Css + Accessibilité
524
524
  * 30.0.24 Css + Accessibilité
525
525
  * 30.0.25 Css + Accessibilité
526
- * 30.0.26 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
530
+ * 30.0.30 Problème fetch participants
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@saooti/octopus-sdk",
3
- "version": "30.0.26",
3
+ "version": "30.0.30",
4
4
  "private": false,
5
5
  "description": "Javascript SDK for using octopus",
6
6
  "author": "Saooti",
@@ -0,0 +1,4 @@
1
+ export default Object.freeze({
2
+ MAX_COMMENT : 4096,
3
+ MAX_COMMENT_NAME : 127
4
+ });
@@ -19,8 +19,14 @@
19
19
  class="form-input"
20
20
  type="text"
21
21
  :placeholder="$t('Your name')"
22
- :class="{ 'border border-danger': name.length < 2 }"
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"
@@ -48,7 +54,7 @@
48
54
  <button
49
55
  v-if="!sending"
50
56
  class="btn btn-link m-1"
51
- :disabled="name.length <= 2"
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
- <input
16
- v-model="temporaryName"
17
- class="small-text mt-1"
18
- type="text"
19
- :class="{ 'border border-danger': temporaryName.length < 2 }"
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="temporaryName.length < 2"
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
- <div
45
- v-if="textareaFocus"
46
- class="d-flex justify-content-end mt-1"
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
- {{ placeholder }}
60
- </button>
61
- </div>
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 me-2 mb-2 width-auto"
12
+ class="form-input"
13
13
  type="text"
14
- :class="{ 'border border-danger': temporaryName.length < 2 }"
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===temporaryContent.length }"
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 === temporaryContent.length || temporaryName.length < 2"
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
  },
@@ -257,31 +257,34 @@ export default defineComponent({
257
257
  </script>
258
258
 
259
259
  <style lang="scss">
260
- .list-episode {
261
- padding: 2rem 0rem 1rem !important;
262
- @media (max-width: 450px) {
263
- padding: 0.5rem 0rem 1rem !important;
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
- h2 {
266
- margin-bottom: 1rem;
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>
@@ -168,7 +168,6 @@ export default defineComponent({
168
168
  async fetchContent(reset: boolean): Promise<void> {
169
169
  this.loading = true;
170
170
  if (reset) {
171
- this.emissions.length = 0;
172
171
  this.dfirst = 0;
173
172
  }
174
173
  const param: FetchParam = {
@@ -80,7 +80,6 @@ export default defineComponent({
80
80
  async fetchContent(reset: boolean): Promise<void> {
81
81
  this.inFetching = true;
82
82
  if (reset) {
83
- this.lives.length = 0;
84
83
  this.dfirst = 0;
85
84
  this.notEmpty = false;
86
85
  }
@@ -168,7 +168,7 @@ export default defineComponent({
168
168
  background: linear-gradient(
169
169
  to bottom,
170
170
  rgba(255, 255, 255, 0),
171
- #f3f3f3 40%
171
+ #fafafa 40%
172
172
  );
173
173
  }
174
174
  }
@@ -96,6 +96,9 @@ export default defineComponent({
96
96
  methods: {
97
97
  async fetchContent(reset: boolean): Promise<void> {
98
98
  this.loading = true;
99
+ if (reset) {
100
+ this.dfirst = 0;
101
+ }
99
102
  const data = await octopusApi.fetchParticipants({
100
103
  first: this.dfirst,
101
104
  size: this.dsize,
@@ -147,7 +147,6 @@ export default defineComponent({
147
147
  async fetchContent(reset: boolean): Promise<void> {
148
148
  this.inFetching = true;
149
149
  if (reset) {
150
- this.podcasts.length = 0;
151
150
  this.dfirst = 0;
152
151
  this.loading = true;
153
152
  this.loaded = false;
@@ -4,7 +4,7 @@
4
4
  >
5
5
  <button
6
6
  v-if="authenticated"
7
- class="btn btn-primary m-1"
7
+ class="btn btn-primary hide-phone m-1"
8
8
  @click="goToUrl('/main/priv/backoffice')"
9
9
  >
10
10
  {{ $t('My space') }}
@@ -325,8 +325,13 @@ export default defineComponent({
325
325
  height: 2rem;
326
326
  }
327
327
  }
328
- @media (max-width: 290px) {
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
  }