@saooti/octopus-sdk 33.0.0 → 33.0.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.
Files changed (73) hide show
  1. package/README.md +2 -1
  2. package/docker-compose.sonar.yml +8 -0
  3. package/package.json +13 -3
  4. package/public/css/fonts/icomoon.eot +0 -0
  5. package/public/css/fonts/icomoon.svg +1 -0
  6. package/public/css/fonts/icomoon.ttf +0 -0
  7. package/public/css/fonts/icomoon.woff +0 -0
  8. package/public/css/fonts/style.css +35 -32
  9. package/sonarqube-scanner.js +18 -0
  10. package/src/assets/bootstrap-diff.scss +0 -1
  11. package/src/assets/general.scss +2 -3
  12. package/src/assets/multiselect.scss +0 -4
  13. package/src/assets/share.scss +0 -8
  14. package/src/components/display/categories/CategoryList.vue +2 -3
  15. package/src/components/display/comments/AddCommentModal.vue +4 -1
  16. package/src/components/display/comments/CommentBasicView.vue +4 -4
  17. package/src/components/display/comments/CommentInput.vue +2 -2
  18. package/src/components/display/comments/CommentItem.vue +32 -25
  19. package/src/components/display/comments/CommentList.vue +34 -21
  20. package/src/components/display/comments/CommentSection.vue +2 -3
  21. package/src/components/display/edit/EditBox.vue +0 -1
  22. package/src/components/display/emission/EmissionChooser.vue +1 -1
  23. package/src/components/display/emission/EmissionItem.vue +2 -2
  24. package/src/components/display/emission/EmissionList.vue +4 -4
  25. package/src/components/display/filter/AdvancedSearch.vue +1 -1
  26. package/src/components/display/filter/DateFilter.vue +2 -2
  27. package/src/components/display/filter/SearchOrder.vue +1 -1
  28. package/src/components/display/list/ListPaginate.vue +6 -3
  29. package/src/components/display/list/Paginate.vue +32 -28
  30. package/src/components/display/live/LiveHorizontalList.vue +4 -4
  31. package/src/components/display/live/LiveList.vue +41 -33
  32. package/src/components/display/participant/ParticipantItem.vue +3 -3
  33. package/src/components/display/participant/ParticipantList.vue +4 -9
  34. package/src/components/display/playlist/PlaylistItem.vue +3 -3
  35. package/src/components/display/playlist/PlaylistList.vue +4 -4
  36. package/src/components/display/playlist/PodcastList.vue +2 -2
  37. package/src/components/display/playlist/PodcastPlaylistInlineList.vue +1 -1
  38. package/src/components/display/podcasts/ParticipantDescription.vue +1 -1
  39. package/src/components/display/podcasts/PodcastImage.vue +4 -3
  40. package/src/components/display/podcasts/PodcastInlineList.vue +2 -0
  41. package/src/components/display/podcasts/PodcastInlineListClassic.vue +22 -1
  42. package/src/components/display/podcasts/PodcastInlineListTemplate.vue +7 -4
  43. package/src/components/display/podcasts/PodcastItem.vue +2 -2
  44. package/src/components/display/podcasts/PodcastList.vue +4 -4
  45. package/src/components/display/podcasts/PodcastSwiperList.vue +1 -1
  46. package/src/components/display/rubriques/RubriqueChooser.vue +1 -1
  47. package/src/components/display/rubriques/RubriqueList.vue +2 -2
  48. package/src/components/display/sharing/PlayerParameters.vue +1 -1
  49. package/src/components/display/sharing/QrCode.vue +1 -2
  50. package/src/components/display/sharing/ShareButtonsIntern.vue +1 -2
  51. package/src/components/display/sharing/ShareDistribution.vue +1 -2
  52. package/src/components/display/sharing/SharePlayer.vue +47 -33
  53. package/src/components/display/sharing/SharePlayerTypes.vue +1 -1
  54. package/src/components/form/ClassicSelect.vue +0 -1
  55. package/src/components/misc/Footer.vue +1 -1
  56. package/src/components/misc/modal/NewsletterModal.vue +2 -3
  57. package/src/components/misc/modal/ShareModalPlayer.vue +1 -2
  58. package/src/components/misc/player/PlayerCompact.vue +1 -1
  59. package/src/components/misc/player/PlayerLarge.vue +1 -1
  60. package/src/components/mixins/functions.ts +3 -14
  61. package/src/components/mixins/player/playerComment.ts +34 -27
  62. package/src/components/mixins/player/playerLive.ts +1 -10
  63. package/src/components/mixins/player/playerLogic.ts +40 -29
  64. package/src/components/pages/Podcast.vue +4 -0
  65. package/src/helper/duration.ts +7 -36
  66. package/src/i18n.ts +1 -1
  67. package/src/locale/it.ts +0 -1
  68. package/src/main.ts +3 -10
  69. package/src/store/class/adserver/adserverConfig.ts +1 -1
  70. package/src/store/class/general/emission.ts +1 -1
  71. package/src/store/class/general/organisation.ts +1 -1
  72. package/src/store/class/general/podcast.ts +1 -1
  73. package/src/store/paramStore.ts +15 -13
package/README.md CHANGED
@@ -686,4 +686,5 @@ See [Configuration Reference](https://cli.vuejs.org/config/).
686
686
  * 32.0.33 Pétouilles graphiques ou d'UX diverses
687
687
  * 32.0.34 Modale RSS
688
688
  * 32.0.35 Enlever Dummy param
689
- * 32.0.36 Select -> font family
689
+ * 32.0.36 Select -> font family
690
+ * 32.0.40 Problème majeur !!!
@@ -0,0 +1,8 @@
1
+ version: '3'
2
+ services:
3
+ sonarqube:
4
+ container_name: sonarqube
5
+ image: sonarqube:latest
6
+ ports:
7
+ - "9000:9000"
8
+ - "9092:9092"
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@saooti/octopus-sdk",
3
- "version": "33.0.0",
3
+ "version": "33.0.1",
4
4
  "private": false,
5
5
  "description": "Javascript SDK for using octopus",
6
6
  "author": "Saooti",
@@ -11,21 +11,26 @@
11
11
  "lint": "eslint --ext .js,.vue --ignore-path .gitignore --fix src",
12
12
  "build_bundle": "vue-cli-service build --target lib --name octopus ./index.js",
13
13
  "prettifile": "prettier --single-quote --trailing-comma es5 --write",
14
- "prettify": "prettier --single-quote --trailing-comma es5 --write src/**/**/**/*.{js,vue}"
14
+ "prettify": "prettier --single-quote --trailing-comma es5 --write src/**/**/**/*.{js,vue}",
15
+ "sonar": "node sonarqube-scanner.js",
16
+ "test": "jest --coverage"
15
17
  },
16
18
  "dependencies": {
17
- "@saooti/octopus-api": "^0.32.3",
19
+ "@saooti/octopus-api": "^0.33.0",
18
20
  "@vue/cli": "^5.0.8",
19
21
  "@vue/compat": "^3.2.37",
20
22
  "autoprefixer": "^10.4.8",
21
23
  "axios": "^0.24.0",
22
24
  "bootstrap": "5.2.0",
25
+ "express": "^4.18.2",
23
26
  "hls.js": "^1.1.5",
24
27
  "humanize-duration": "^3.27.2",
28
+ "jest": "^29.1.2",
25
29
  "jquery": "^3.5.14",
26
30
  "moment": "^2.29.4",
27
31
  "qrcode.vue": "^3.3.3",
28
32
  "sass": "^1.53.0",
33
+ "sonarqube-scanner": "^2.8.2",
29
34
  "swiper": "^8.3.1",
30
35
  "v-calendar": "^3.0.0-alpha.8",
31
36
  "vite": "^3.0.4",
@@ -94,5 +99,10 @@
94
99
  "repository": {
95
100
  "type": "git",
96
101
  "url": "git+https://github.com/saooti/octopus-sdk.git"
102
+ },
103
+ "jestSonar": {
104
+ "reportPath": "coverage",
105
+ "reportFile": "test-reporter.xml",
106
+ "indent": 4
97
107
  }
98
108
  }
Binary file
@@ -41,6 +41,7 @@
41
41
  <glyph unicode="&#xe91f;" glyph-name="disconnected" d="M953.728 673.082l-138.777-137.799-187.398 187.398 137.556 137.556c16.126 16.126 16.126 42.024 0 58.15s-42.024 16.126-58.15 0l-137.556-137.799-53.996 54.485c-16.126 16.126-42.024 16.126-58.15 0-62.791-62.791-97.242-146.35-97.242-235.042 0-61.081 16.37-119.963 47.155-171.028-41.536-49.109-53.263-90.401-63.77-127.293-10.751-38.116-20.28-70.855-64.746-115.566-44.711-44.711-77.452-53.996-115.566-64.746-42.757-12.216-91.378-26.144-150.993-85.758-16.126-16.126-16.126-42.024 0-58.15 8.062-8.062 18.569-11.971 29.075-11.971s21.013 3.91 29.075 11.971c44.711 44.711 77.452 53.996 115.566 64.746 42.757 12.216 91.378 26.144 150.993 85.758s73.542 108.236 85.758 151.237c8.062 28.342 15.393 53.996 37.137 83.803 62.547-61.326 145.13-95.286 232.841-95.286 88.69 0 172.249 34.695 235.042 97.242 7.818 7.818 11.971 18.080 11.971 29.075s-4.398 21.257-11.971 29.075l-54.24 54.24 138.533 137.556c16.126 15.882 16.126 42.024 0.244 58.15-16.126 15.882-42.268 15.882-58.393 0v0z" />
42
42
  <glyph unicode="&#xe920;" glyph-name="feed" d="M874.361 810.23c-16.177 16.177-40.981 16.177-57.157 0s-16.177-40.981 0-57.157c168.238-168.238 168.238-442.169 0-610.405-16.177-16.177-16.177-40.981 0-57.157 7.549-7.549 18.336-11.865 29.118-11.865s20.492 4.314 28.040 11.865c199.517 199.517 199.517 525.21 0 724.723zM740.632 677.576c-16.177 16.179-40.981 16.179-57.157 0s-16.177-40.981 0-57.157c46.374-46.374 71.178-106.769 71.178-172.55 0-64.707-24.806-126.176-71.178-171.472-16.177-16.177-16.177-40.981 0-57.157 7.549-7.549 18.336-11.865 29.118-11.865s20.492 4.314 28.040 11.865c61.473 60.395 95.982 142.356 94.904 228.633 0 86.277-33.431 168.238-94.904 229.711zM206.796 753.069c16.177 16.177 16.177 40.981 0 57.157s-40.981 16.177-57.157 0c-199.517-199.517-199.517-525.21 0-724.723 7.547-7.549 18.334-11.865 28.040-11.865 10.783 0 20.492 4.314 29.116 11.865 16.177 16.177 16.177 40.981 0 57.157-168.238 168.238-168.238 442.169 0 610.405zM339.447 619.337c16.179 16.179 16.179 40.981 0 57.157s-40.981 16.179-57.157 0c-126.176-126.179-126.176-331.086 1.078-458.346 7.549-7.549 18.334-11.865 29.116-11.865s20.492 4.314 28.040 11.865c16.179 16.177 16.179 40.981 0 57.157-94.904 94.904-95.982 249.125-1.078 344.029zM645.728 447.865c0-73.854-59.871-133.729-133.729-133.729s-133.729 59.871-133.729 133.729c0 73.856 59.871 133.729 133.729 133.729s133.729-59.871 133.729-133.729z" />
43
43
  <glyph unicode="&#xe921;" glyph-name="headphones" d="M921.597 437.765v61.443c0 225.278-184.32 409.598-409.598 409.598s-409.598-184.32-409.598-409.598v-61.443c-61.443-20.485-102.402-76.797-102.402-143.362v-153.604c0-87.040 66.565-153.604 153.604-153.604s153.604 66.565 153.604 153.604v153.604c0 66.565-40.958 122.877-102.402 143.362v61.443c0 168.957 138.24 307.195 307.195 307.195s307.195-138.24 307.195-307.195v-61.443c-61.443-20.485-102.402-76.797-102.402-143.362v-153.604c0-87.040 66.565-153.604 153.604-153.604s153.604 66.565 153.604 153.604v153.604c0 66.565-40.96 122.877-102.402 143.362z" />
44
+ <glyph unicode="&#xe922;" glyph-name="text-to-speech" d="M906.77 926.296h-481.423c-64.672 0-117.229-52.558-117.229-117.229v-22.078h59.397v22.078c0 32.433 25.4 57.834 57.834 57.834h481.423c32.433 0 57.834-25.4 57.834-57.834v-722.134c0-32.433-25.4-57.834-57.834-57.834h-481.423c-32.433 0-57.834 25.4-57.834 57.834v13.677h-59.397v-13.677c0-64.672 52.558-117.229 117.229-117.229h481.423c64.672 0 117.229 52.558 117.229 117.229v722.134c0 64.672-52.558 117.229-117.229 117.229zM873.946 565.229h-282.718v-59.397h282.718c16.412 0 29.698 13.285 29.698 29.698s-13.285 29.698-29.698 29.698zM873.946 740.292h-404.833c-16.412 0-29.698-13.285-29.698-29.698s13.285-29.698 29.698-29.698h404.833c16.412 0 29.698 13.285 29.698 29.698s-13.285 29.698-29.698 29.698zM428.474 185.406c0-16.412 13.285-29.698 29.698-29.698h415.774c16.412 0 29.698 13.285 29.698 29.698s-13.285 29.698-29.698 29.698h-415.774c-16.412 0-29.698-13.285-29.698-29.698zM873.946 390.166h-282.718v-59.397h282.718c16.412 0 29.698 13.285 29.698 29.698s-13.285 29.698-29.698 29.698zM485.135 539.048v-181.901c0-16.607 13.677-30.284 30.284-30.284s30.284 13.482 30.284 30.284v181.901c0 16.607-13.482 30.284-30.284 30.284-16.607 0-30.284-13.677-30.284-30.284zM30.283 508.568c-16.803 0-30.284-13.482-30.284-30.284v-60.569c0-16.607 13.677-30.284 30.284-30.284s30.284 13.482 30.284 30.284v60.569c0 16.607-13.482 30.284-30.284 30.284v0zM121.333 569.332v-242.665c0-16.607 13.482-30.284 30.284-30.284 16.607 0 30.284 13.482 30.284 30.284v242.665c0 16.607-13.482 30.284-30.284 30.284s-30.284-13.677-30.284-30.284zM242.665 720.949v-545.899c0-16.607 13.482-30.284 30.284-30.284 16.607 0 30.284 13.482 30.284 30.284v545.899c0 16.607-13.482 30.284-30.284 30.284s-30.284-13.677-30.284-30.284zM394.282 660.185c-16.803 0-30.48-13.482-30.284-30.284v-363.998c0-16.607 13.482-30.284 30.284-30.284 16.607 0 30.284 13.482 30.284 30.284v363.998c0 16.607-13.482 30.284-30.284 30.284v0z" />
44
45
  <glyph unicode="&#xe923;" glyph-name="export" horiz-adv-x="820" d="M746.329 845.36c16.856 16.856 44.182 16.856 61.030 0 16.856-16.849 16.856-44.175 0-61.030l-388.425-388.425c-16.849-16.856-44.175-16.856-61.030 0s-16.856 44.182 0 61.030zM733.677 771.68h-172.632c-23.837 0-43.155 19.326-43.155 43.163s19.32 43.155 43.155 43.155h215.799c23.837 0 43.155-19.32 43.155-43.155v-215.799c0-23.837-19.32-43.155-43.155-43.155s-43.163 19.32-43.163 43.155zM647.374 404.841c0 23.837 19.32 43.155 43.155 43.155s43.155-19.32 43.155-43.155v-242.766c0-68.531-55.547-124.077-124.077-124.077h-485.532c-68.531 0-124.077 55.547-124.077 124.077v485.532c0 68.531 55.547 124.077 124.077 124.077h263.001c23.837 0 43.155-19.32 43.155-43.155s-19.32-43.155-43.155-43.155h-263.001c-20.859 0-37.767-16.906-37.767-37.767v-485.532c0-20.859 16.906-37.767 37.767-37.767h485.532c20.859 0 37.767 16.906 37.767 37.767z" />
45
46
  <glyph unicode="&#xe924;" glyph-name="send" horiz-adv-x="820" d="M425 422.657l-334.37-33.308-88.397-281.845c-7.687-23.062 5.126-47.402 28.184-55.087 10.249-3.843 21.778-2.562 32.029 2.562l734.080 354.87c20.499 10.251 29.465 34.587 19.218 56.37-3.843 8.968-10.251 15.373-19.218 19.216l-732.799 356.151c-21.778 10.251-47.4 1.281-58.93-20.499-5.126-10.249-6.405-21.778-2.56-32.027l88.397-281.843 334.37-32.029c14.094-1.279 25.622-14.094 23.062-29.465 0-12.811-10.249-21.778-23.062-23.062v0z" />
46
47
  <glyph unicode="&#xe925;" glyph-name="search" horiz-adv-x="820" d="M803.702 129.737l-132.279 132.279c47.436 63.527 73.349 142.309 73.349 223.599 0 99.052-38.451 192.253-108.247 262.677-70.214 70.841-164.042 109.71-264.14 109.71-98.634 0-191.836-38.869-262.677-109.71s-109.71-164.251-109.71-262.886c0-100.097 39.078-193.925 109.71-264.14 70.423-69.796 163.624-108.247 262.677-108.247 81.29 0 160.072 25.912 223.599 73.349l132.279-132.279c10.24-10.24 23.823-16.091 37.824-16.091s27.375 5.642 37.824 16.091 16.091 23.823 16.091 37.824c-0.418 14.001-6.060 27.375-16.3 37.824zM637.152 485.406c0-146.071-118.696-264.766-264.766-264.766s-264.766 118.696-264.766 264.766c0 143.563 121.203 264.766 264.766 264.766 145.862 0 264.766-118.696 264.766-264.766z" />
Binary file
Binary file
@@ -1,10 +1,10 @@
1
1
  @font-face {
2
2
  font-family: 'icomoon';
3
- src: url('/css/fonts/icomoon.eot?8edpg2');
4
- src: url('/css/fonts/icomoon.eot?8edpg2#iefix') format('embedded-opentype'),
5
- url('/css/fonts/icomoon.ttf?8edpg2') format('truetype'),
6
- url('/css/fonts/icomoon.woff?8edpg2') format('woff'),
7
- url('/css/fonts/icomoon.svg?8edpg2#icomoon') format('svg');
3
+ src: url('/css/fonts/icomoon.eot?svfrvx');
4
+ src: url('/css/fonts/icomoon.eot?svfrvx#iefix') format('embedded-opentype'),
5
+ url('/css/fonts/icomoon.ttf?svfrvx') format('truetype'),
6
+ url('/css/fonts/icomoon.woff?svfrvx') format('woff'),
7
+ url('/css/fonts/icomoon.svg?svfrvx#icomoon') format('svg');
8
8
  font-weight: normal;
9
9
  font-style: normal;
10
10
  font-display: block;
@@ -25,6 +25,9 @@
25
25
  -moz-osx-font-smoothing: grayscale;
26
26
  }
27
27
 
28
+ .saooti-text-to-speech:before {
29
+ content: "\e922";
30
+ }
28
31
  .saooti-left:before {
29
32
  content: "\e900";
30
33
  }
@@ -220,87 +223,87 @@
220
223
  }
221
224
  .saooti-stitcher-logo .path2:before {
222
225
  content: "\e94b";
223
-
226
+
224
227
  color: rgb(0, 0, 0);
225
228
  }
226
229
  .saooti-stitcher-logo .path3:before {
227
230
  content: "\e94c";
228
-
231
+
229
232
  color: rgb(0, 0, 0);
230
233
  }
231
234
  .saooti-stitcher-logo .path4:before {
232
235
  content: "\e94d";
233
-
236
+
234
237
  color: rgb(0, 0, 0);
235
238
  }
236
239
  .saooti-stitcher-logo .path5:before {
237
240
  content: "\e94e";
238
-
241
+
239
242
  color: rgb(0, 0, 0);
240
243
  }
241
244
  .saooti-stitcher-logo .path6:before {
242
245
  content: "\e94f";
243
-
246
+
244
247
  color: rgb(0, 0, 0);
245
248
  }
246
249
  .saooti-stitcher-logo .path7:before {
247
250
  content: "\e950";
248
-
251
+
249
252
  color: rgb(0, 0, 0);
250
253
  }
251
254
  .saooti-stitcher-logo .path8:before {
252
255
  content: "\e951";
253
-
256
+
254
257
  color: rgb(0, 0, 0);
255
258
  }
256
259
  .saooti-stitcher-logo .path9:before {
257
260
  content: "\e952";
258
-
261
+
259
262
  color: rgb(53, 144, 197);
260
263
  }
261
264
  .saooti-stitcher-logo .path10:before {
262
265
  content: "\e953";
263
-
266
+
264
267
  color: rgb(53, 144, 197);
265
268
  }
266
269
  .saooti-stitcher-logo .path11:before {
267
270
  content: "\e954";
268
-
271
+
269
272
  color: rgb(197, 56, 39);
270
273
  }
271
274
  .saooti-stitcher-logo .path12:before {
272
275
  content: "\e955";
273
-
276
+
274
277
  color: rgb(197, 56, 39);
275
278
  }
276
279
  .saooti-stitcher-logo .path13:before {
277
280
  content: "\e956";
278
-
281
+
279
282
  color: rgb(236, 139, 36);
280
283
  }
281
284
  .saooti-stitcher-logo .path14:before {
282
285
  content: "\e957";
283
-
286
+
284
287
  color: rgb(236, 139, 36);
285
288
  }
286
289
  .saooti-stitcher-logo .path15:before {
287
290
  content: "\e958";
288
-
291
+
289
292
  color: rgb(251, 198, 24);
290
293
  }
291
294
  .saooti-stitcher-logo .path16:before {
292
295
  content: "\e959";
293
-
296
+
294
297
  color: rgb(251, 198, 24);
295
298
  }
296
299
  .saooti-stitcher-logo .path17:before {
297
300
  content: "\e95a";
298
-
301
+
299
302
  color: rgb(97, 34, 104);
300
303
  }
301
304
  .saooti-stitcher-logo .path18:before {
302
305
  content: "\e95b";
303
-
306
+
304
307
  color: rgb(97, 34, 104);
305
308
  }
306
309
  .saooti-pocket-casts:before {
@@ -334,32 +337,32 @@
334
337
  }
335
338
  .saooti-google-podcasts .path2:before {
336
339
  content: "\e963";
337
-
340
+
338
341
  color: rgb(66, 133, 244);
339
342
  }
340
343
  .saooti-google-podcasts .path3:before {
341
344
  content: "\e964";
342
-
345
+
343
346
  color: rgb(234, 67, 53);
344
347
  }
345
348
  .saooti-google-podcasts .path4:before {
346
349
  content: "\e965";
347
-
350
+
348
351
  color: rgb(52, 168, 83);
349
352
  }
350
353
  .saooti-google-podcasts .path5:before {
351
354
  content: "\e966";
352
-
355
+
353
356
  color: rgb(250, 185, 8);
354
357
  }
355
358
  .saooti-google-podcasts .path6:before {
356
359
  content: "\e967";
357
-
360
+
358
361
  color: rgb(52, 168, 83);
359
362
  }
360
363
  .saooti-google-podcasts .path7:before {
361
364
  content: "\e968";
362
-
365
+
363
366
  color: rgb(250, 185, 8);
364
367
  }
365
368
  .saooti-amazon .path1:before {
@@ -368,12 +371,12 @@
368
371
  }
369
372
  .saooti-amazon .path2:before {
370
373
  content: "\e96a";
371
-
374
+
372
375
  color: rgb(255, 153, 0);
373
376
  }
374
377
  .saooti-amazon .path3:before {
375
378
  content: "\e96b";
376
-
379
+
377
380
  color: rgb(0, 0, 0);
378
381
  }
379
382
  .saooti-Whatsapp .path1:before {
@@ -382,12 +385,12 @@
382
385
  }
383
386
  .saooti-Whatsapp .path2:before {
384
387
  content: "\e96d";
385
-
388
+
386
389
  color: rgb(255, 255, 255);
387
390
  }
388
391
  .saooti-Whatsapp .path3:before {
389
392
  content: "\e96e";
390
-
393
+
391
394
  color: rgb(44, 183, 66);
392
395
  }
393
396
  .saooti-more:before {
@@ -0,0 +1,18 @@
1
+ const scanner = require('sonarqube-scanner');
2
+ scanner({
3
+ options:{
4
+ "sonar.exclusions":"**/*.test.tsx",
5
+ "sonar.tests":"./src",
6
+ "sonar.test.inclusions":"**/*.test.tsx,**/*.test.ts",
7
+ "sonar.typescript.lcov.reportPaths": "coverage/lcov.info",
8
+ "sonar.testExecutionReportPaths": "coverage/test-report.xml"
9
+ },
10
+ serverUrl:"http://localhost:9000",
11
+ login:"admin",
12
+ password:"admin",
13
+ options:{
14
+ "sonar.sources":"./src"
15
+ },
16
+ },
17
+ ()=>process.exit()
18
+ );
@@ -39,7 +39,6 @@
39
39
  }
40
40
  position: relative;
41
41
  &:after {
42
- background: none repeat scroll 0 0 transparent;
43
42
  bottom: 0;
44
43
  content: "";
45
44
  display: block;
@@ -20,9 +20,7 @@ body{
20
20
  a{
21
21
  word-break: break-word;
22
22
  }
23
- h1{
24
- margin-bottom: 2rem;
25
- }
23
+
26
24
  h1,h2,h3,h4,h5,h6,.h1,.h2,.h3,.h4,.h5,.h6{
27
25
  &:not(.text-uppercase){
28
26
  letter-spacing: -0.03em;
@@ -37,6 +35,7 @@ body{
37
35
  font-size: 1.8rem;
38
36
  text-align: center;
39
37
  color: #666;
38
+ margin-bottom: 2rem;
40
39
  @media (max-width: 500px){
41
40
  font-size: 1.2rem;
42
41
  margin: 0.5rem 0 1rem;
@@ -365,10 +365,6 @@
365
365
  border-top: 1px solid #e8e8e8;
366
366
  }
367
367
 
368
- .multiselect__content::webkit-scrollbar {
369
- display: none;
370
- }
371
-
372
368
  .multiselect__element {
373
369
  display: block;
374
370
  }
@@ -46,10 +46,6 @@
46
46
  flex-grow: 1;
47
47
  margin: 1em 0 0;
48
48
  padding: 0;
49
- /*For ie11 */
50
- display: flex;
51
- flex-wrap: wrap;
52
- /* end */
53
49
  display: grid; /* 1 */
54
50
  grid-template-columns: repeat(auto-fill, 13rem); /* 2 */
55
51
  grid-gap: 1rem; /* 3 */
@@ -104,10 +100,6 @@
104
100
  flex-grow: 1;
105
101
  margin: 0;
106
102
  padding: 0;
107
- /*For ie11 */
108
- display: flex;
109
- flex-wrap: wrap;
110
- /* end */
111
103
  display: grid; /* 1 */
112
104
  grid-gap: 1rem; /* 3 */
113
105
  justify-content: space-between; /* 4 */
@@ -27,7 +27,7 @@
27
27
  aria-expanded="false"
28
28
  :title="$t('See more')"
29
29
  />
30
- <ul class="dropdown-menu dropdown-menu-right px-4">
30
+ <div class="dropdown-menu dropdown-menu-right px-4">
31
31
  <div
32
32
  v-for="category in hidenCategories"
33
33
  :key="category.id"
@@ -36,7 +36,7 @@
36
36
  >
37
37
  {{ category.name }}
38
38
  </div>
39
- </ul>
39
+ </div>
40
40
  </div>
41
41
  </div>
42
42
  </template>
@@ -185,7 +185,6 @@ export default defineComponent({
185
185
  font-size: 0.6rem;
186
186
  margin: 0.2rem;
187
187
  padding: 0.5rem;
188
- display: block;
189
188
  height: 1.5rem;
190
189
  border-radius: 1.5rem;
191
190
  border: 0;
@@ -81,7 +81,10 @@ export default defineComponent({
81
81
  },
82
82
  computed: {
83
83
  errorText():string {
84
- return this.isCaptchaTest ? this.$t('Recaptcha not active') : this.sendError? this.$t('Recaptcha error') : '';
84
+ if(this.isCaptchaTest){
85
+ return this.$t('Recaptcha not active');
86
+ }
87
+ return this.sendError? this.$t('Recaptcha error') : '';
85
88
  },
86
89
  validName(): boolean{
87
90
  return this.countName <= this.maxName;
@@ -1,11 +1,11 @@
1
1
  <template>
2
2
  <div>
3
3
  <div class="d-flex small-text">
4
- <b
4
+ <strong
5
5
  v-if="recordingInLive && ('Live' === comment.phase || 'Prelive' === comment.phase)"
6
6
  class="recording-bg me-1 text-light p-1"
7
- >{{ $t('Live') }}</b>
8
- <b
7
+ >{{ $t('Live') }}</strong>
8
+ <strong
9
9
  :id="'popover-comment' + comment.comId"
10
10
  role="button"
11
11
  tabindex="-1"
@@ -13,7 +13,7 @@
13
13
  class="me-2"
14
14
  >{{
15
15
  comment.name
16
- }}</b>
16
+ }}</strong>
17
17
  <Popover
18
18
  :disable="editRight || isValid"
19
19
  :target="'popover-comment' + comment.comId"
@@ -3,11 +3,11 @@
3
3
  v-if="isPresent"
4
4
  class="d-flex flex-column comment-input-container mt-3"
5
5
  >
6
- <b
6
+ <strong
7
7
  v-if="knownIdentity && !editName"
8
8
  class="small-text mt-1 c-hand"
9
9
  @click="changeIdentity"
10
- >{{ knownIdentity }}</b>
10
+ >{{ knownIdentity }}</strong>
11
11
  <div
12
12
  v-if="editName"
13
13
  class="d-flex"
@@ -68,11 +68,11 @@
68
68
  <span v-if="comment.relatedComments">
69
69
  <template v-if="!collapseVisible">
70
70
  {{ $t('Display answers', { nb: comment.relatedComments }) }}
71
- <i v-if="editRight">{{
71
+ <em v-if="editRight">{{
72
72
  $t('(nb valid comment answers)', {
73
73
  nb: comment.relatedValidComments,
74
74
  })
75
- }}</i>
75
+ }}</em>
76
76
  </template>
77
77
  <template v-else>
78
78
  {{ $t('Hide answers') }}
@@ -264,41 +264,48 @@ export default defineComponent({
264
264
  }
265
265
  this.$emit('update:comment', updatedComment);
266
266
  },
267
+ receiveUpdateComment(event: {type: string; comment: CommentPodcast; oldStatus?:string }){
268
+ let updatedStatus = "";
269
+ if (event.comment.status && event.comment.status !== event.oldStatus) {
270
+ updatedStatus = event.comment.status;
271
+ }
272
+ const updatedComment = this.comment;
273
+ if(undefined !== updatedComment.relatedValidComments){
274
+ if ('Invalid' ===updatedStatus) {
275
+ updatedComment.relatedValidComments -= 1;
276
+ } else if ('Valid' === updatedStatus) {
277
+ updatedComment.relatedValidComments += 1;
278
+ }
279
+ }
280
+ this.$emit('update:comment', updatedComment);
281
+ },
282
+ receiveDeleteComment(event: {type: string; comment: CommentPodcast; oldStatus?:string }){
283
+ const deletedComment = this.comment;
284
+ if(undefined !== deletedComment.relatedComments){
285
+ deletedComment.relatedComments -= 1;
286
+ }
287
+ if (undefined !== deletedComment.relatedValidComments && 'Valid' === event.comment.status) {
288
+ deletedComment.relatedValidComments -= 1;
289
+ }
290
+ this.$emit('update:comment', deletedComment);
291
+ },
292
+
267
293
  receiveCommentEvent(event: {type: string; comment: CommentPodcast; oldStatus?:string }): void {
268
294
  switch (event.type) {
269
295
  case 'Create':this.newComment(event.comment, true);break;
270
296
  case 'Update':
271
297
  if (this.$refs.commentList) {
272
298
  (this.$refs.commentList as InstanceType<typeof CommentList>).updateComment(event);
273
- } else {
274
- const updatedComment = this.comment;
275
- let updatedStatus = "";
276
- if (event.comment.status && event.comment.status !== event.oldStatus) {
277
- updatedStatus = event.comment.status;
278
- }
279
- if(undefined !== updatedComment.relatedValidComments){
280
- if ('Invalid' ===updatedStatus) {
281
- updatedComment.relatedValidComments -= 1;
282
- } else if ('Valid' === updatedStatus) {
283
- updatedComment.relatedValidComments += 1;
284
- }
285
- }
286
- this.$emit('update:comment', updatedComment);
299
+ return;
287
300
  }
301
+ this.receiveUpdateComment(event);
288
302
  break;
289
303
  case 'Delete':
290
304
  if (this.$refs.commentList) {
291
305
  (this.$refs.commentList as InstanceType<typeof CommentList>).deleteComment(event.comment);
292
- } else {
293
- const deletedComment = this.comment;
294
- if(undefined !== deletedComment.relatedComments){
295
- deletedComment.relatedComments -= 1;
296
- }
297
- if (undefined !== deletedComment.relatedValidComments && 'Valid' === event.comment.status) {
298
- deletedComment.relatedValidComments -= 1;
299
- }
300
- this.$emit('update:comment', deletedComment);
306
+ return;
301
307
  }
308
+ this.receiveDeleteComment(event);
302
309
  break;
303
310
  default:
304
311
  break;
@@ -94,7 +94,14 @@ export default defineComponent({
94
94
  },
95
95
  watchVariable():string{
96
96
  return `${this.reload}|${this.status}`;
97
+ },
98
+ statusPost():Array<string>{
99
+ if(this.editRight && this.status){
100
+ return [this.status];
101
+ }
102
+ return this.editRight? ['Valid','Pending', 'Invalid']:['Valid'];
97
103
  }
104
+
98
105
  },
99
106
  watch: {
100
107
  watchVariable: {
@@ -126,7 +133,7 @@ export default defineComponent({
126
133
  first: this.first,
127
134
  size: this.size,
128
135
  podcastId: this.podcastId,
129
- status:this.editRight && this.status?[this.status]: this.editRight? ['Valid','Pending', 'Invalid']:['Valid'],
136
+ status:this.statusPost,
130
137
  organisationId: undefined === this.podcastId? this.organisation: undefined,
131
138
  });
132
139
  }
@@ -148,11 +155,11 @@ export default defineComponent({
148
155
  (element: CommentPodcast) => element.comId === comId
149
156
  );
150
157
  },
151
- commentIsNotInList(commentIdReferer:undefined|number):boolean{
158
+ commentInAnotherList(commentIdReferer:undefined|number):boolean{
152
159
  return !this.isFlat && undefined!==commentIdReferer && null!==commentIdReferer && this.comId !==commentIdReferer;
153
160
  },
154
161
  deleteComment(comment: CommentPodcast): void {
155
- if (this.commentIsNotInList(comment.commentIdReferer)){
162
+ if (this.commentInAnotherList(comment.commentIdReferer)){
156
163
  const comItem = (this.$refs['comItem' + comment.commentIdReferer] as Array<InstanceType<typeof CommentItem>>)[0];
157
164
  comItem.receiveCommentEvent({ type: 'Delete', comment: comment });
158
165
  return;
@@ -165,33 +172,39 @@ export default defineComponent({
165
172
  }
166
173
  this.comments.splice(index, 1);
167
174
  },
175
+ updateExistingComment(comment: CommentPodcast, index: number){
176
+ if ((!this.editRight && 'Valid' !== comment.status) ||
177
+ (this.editRight && this.status && this.status !== comment.status)) {
178
+ this.comments.splice(index, 1);
179
+ } else {
180
+ this.comments.splice(index, 1, comment);
181
+ }
182
+ },
183
+ updateNotExistingComment(comment: CommentPodcast){
184
+ let indexNewComment = 0;
185
+ for (let i = 0, len = this.comments.length; i < len; i++) {
186
+ if (
187
+ moment(this.comments[i].date).isBefore(moment(comment.date))
188
+ ) {
189
+ indexNewComment = i;
190
+ break;
191
+ }
192
+ }
193
+ this.comments.splice(indexNewComment, 0, comment);
194
+ },
168
195
  updateComment(data: {type: string; comment: CommentPodcast; oldStatus?:string }): void {
169
- if (this.commentIsNotInList(data.comment.commentIdReferer)){
196
+ if (this.commentInAnotherList(data.comment.commentIdReferer)){
170
197
  const comItem = (this.$refs['comItem' + data.comment.commentIdReferer] as Array<InstanceType<typeof CommentItem>>)[0];
171
198
  comItem.receiveCommentEvent(data);
172
199
  return;
173
200
  }
174
201
  const index = this.findCommentIndex(data.comment.comId);
175
202
  if (-1 !== index) {
176
- if ((!this.editRight && 'Valid' !== data.comment.status) ||
177
- (this.editRight && this.status && this.status !== data.comment.status)) {
178
- this.comments.splice(index, 1);
179
- } else {
180
- this.comments.splice(index, 1, data.comment);
181
- }
203
+ this.updateExistingComment(data.comment, index);
182
204
  }else if((!this.editRight && 'Valid' === data.comment.status) ||
183
205
  (this.editRight && !this.status) ||
184
206
  (this.editRight && this.status && this.status === data.comment.status)){
185
- let indexNewComment = 0;
186
- for (let i = 0, len = this.comments.length; i < len; i++) {
187
- if (
188
- moment(this.comments[i].date).isBefore(moment(data.comment.date))
189
- ) {
190
- indexNewComment = i;
191
- break;
192
- }
193
- }
194
- this.comments.splice(indexNewComment, 0, data.comment);
207
+ this.updateNotExistingComment(data.comment);
195
208
  }
196
209
  if (this.comId && data.oldStatus!==data.comment.status) {
197
210
  this.$emit('updateStatus', data.comment.status);
@@ -201,7 +214,7 @@ export default defineComponent({
201
214
  if (!myself && !this.editRight && 'Valid' !== comment.status) {
202
215
  return;
203
216
  }
204
- if (this.commentIsNotInList(comment.commentIdReferer)){
217
+ if (this.commentInAnotherList(comment.commentIdReferer)){
205
218
  const comItem = (this.$refs['comItem' + comment.commentIdReferer] as Array<InstanceType<typeof CommentItem>>)[0];
206
219
  comItem.receiveCommentEvent({ type: 'Create', comment: comment });
207
220
  return;
@@ -42,7 +42,6 @@ import { Podcast } from '@/store/class/general/podcast';
42
42
  import { Conference } from '@/store/class/conference/conference';
43
43
 
44
44
  import { defineComponent } from 'vue'
45
- import CommentListVue from './CommentList.vue';
46
45
  import { CommentPodcast } from '@/store/class/general/comment';
47
46
  export default defineComponent({
48
47
  name: 'CommentSection',
@@ -119,10 +118,10 @@ export default defineComponent({
119
118
  this.totalCount = value.count;
120
119
  },
121
120
  newComment(comment: CommentPodcast): void {
122
- (this.$refs.commentList as InstanceType<typeof CommentListVue>).addNewComment(comment, true);
121
+ (this.$refs.commentList as InstanceType<typeof CommentList>).addNewComment(comment, true);
123
122
  },
124
123
  receiveCommentEvent(event: {type: string; comment: CommentPodcast; oldStatus?:string }): void {
125
- const commentList = (this.$refs.commentList as InstanceType<typeof CommentListVue>);
124
+ const commentList = (this.$refs.commentList as InstanceType<typeof CommentList>);
126
125
  switch (event.type) {
127
126
  case 'Create':commentList.addNewComment(event.comment);break;
128
127
  case 'Update':commentList.updateComment(event);break;