@saooti/octopus-sdk 37.0.6 → 37.0.8

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 (236) hide show
  1. package/README.md +2 -2
  2. package/index.ts +22 -22
  3. package/package.json +26 -22
  4. package/src/App.vue +69 -60
  5. package/src/api/classicCrud.ts +12 -12
  6. package/src/api/initialize.ts +1 -1
  7. package/src/assets/transition.scss +34 -22
  8. package/src/components/display/aggregator/RssSection.vue +3 -3
  9. package/src/components/display/categories/CategoryChooser.vue +73 -60
  10. package/src/components/display/categories/CategoryFilter.vue +134 -90
  11. package/src/components/display/categories/CategoryList.vue +76 -62
  12. package/src/components/display/comments/AddCommentModal.vue +44 -44
  13. package/src/components/display/comments/CommentBasicView.vue +38 -30
  14. package/src/components/display/comments/CommentInput.vue +121 -106
  15. package/src/components/display/comments/CommentItem.vue +144 -102
  16. package/src/components/display/comments/CommentList.vue +117 -85
  17. package/src/components/display/comments/CommentParentInfo.vue +18 -15
  18. package/src/components/display/comments/CommentPlayer.vue +39 -41
  19. package/src/components/display/comments/CommentSection.vue +68 -53
  20. package/src/components/display/edit/EditBox.vue +7 -7
  21. package/src/components/display/edit/EditBoxRadio.vue +3 -4
  22. package/src/components/display/edit/EditCommentBox.vue +34 -36
  23. package/src/components/display/emission/EmissionInlineList.vue +75 -63
  24. package/src/components/display/emission/EmissionItem.vue +47 -35
  25. package/src/components/display/emission/EmissionList.vue +118 -83
  26. package/src/components/display/emission/EmissionPlayerItem.vue +89 -89
  27. package/src/components/display/filter/AdvancedSearch.vue +81 -73
  28. package/src/components/display/filter/CategorySearchFilter.vue +27 -25
  29. package/src/components/display/filter/DateFilter.vue +38 -38
  30. package/src/components/display/filter/MonetizableFilter.vue +16 -14
  31. package/src/components/display/filter/ProductorSearch.vue +55 -47
  32. package/src/components/display/filter/RubriqueChoice.vue +42 -27
  33. package/src/components/display/filter/RubriqueFilter.vue +130 -85
  34. package/src/components/display/filter/SearchOrder.vue +16 -11
  35. package/src/components/display/list/ListPaginate.vue +72 -70
  36. package/src/components/display/list/PaginateParams.vue +29 -30
  37. package/src/components/display/list/PaginateSection.vue +210 -0
  38. package/src/components/display/list/SwiperList.vue +28 -32
  39. package/src/components/display/live/CountDown.vue +12 -14
  40. package/src/components/display/live/LiveHorizontalList.vue +60 -50
  41. package/src/components/display/live/LiveItem.vue +42 -26
  42. package/src/components/display/live/LiveList.vue +92 -65
  43. package/src/components/display/live/RadioCurrently.vue +47 -42
  44. package/src/components/display/live/RadioImage.vue +40 -42
  45. package/src/components/display/live/RadioItem.vue +15 -22
  46. package/src/components/display/live/RadioList.vue +24 -21
  47. package/src/components/display/live/RadioPlanning.vue +105 -68
  48. package/src/components/display/organisation/OrganisationChooser.vue +58 -42
  49. package/src/components/display/organisation/OrganisationChooserLight.vue +27 -19
  50. package/src/components/display/participant/ParticipantItem.vue +89 -77
  51. package/src/components/display/participant/ParticipantList.vue +90 -60
  52. package/src/components/display/playlist/PlaylistItem.vue +32 -35
  53. package/src/components/display/playlist/PlaylistList.vue +70 -52
  54. package/src/components/display/playlist/PodcastList.vue +61 -50
  55. package/src/components/display/playlist/PodcastPlaylistInlineList.vue +47 -38
  56. package/src/components/display/podcasts/AnimatorsItem.vue +17 -15
  57. package/src/components/display/podcasts/ParticipantDescription.vue +21 -22
  58. package/src/components/display/podcasts/PodcastFilterList.vue +28 -26
  59. package/src/components/display/podcasts/PodcastImage.vue +129 -131
  60. package/src/components/display/podcasts/PodcastInlineList.vue +33 -29
  61. package/src/components/display/podcasts/PodcastInlineListClassic.vue +91 -71
  62. package/src/components/display/podcasts/PodcastInlineListTemplate.vue +94 -85
  63. package/src/components/display/podcasts/PodcastItem.vue +96 -90
  64. package/src/components/display/podcasts/PodcastItemInfo.vue +61 -65
  65. package/src/components/display/podcasts/PodcastList.vue +115 -84
  66. package/src/components/display/podcasts/PodcastModuleBox.vue +95 -104
  67. package/src/components/display/podcasts/PodcastPlayBar.vue +45 -32
  68. package/src/components/display/podcasts/PodcastSwiperList.vue +65 -55
  69. package/src/components/display/podcasts/TagList.vue +33 -37
  70. package/src/components/display/rubriques/RubriqueChooser.vue +70 -51
  71. package/src/components/display/rubriques/RubriqueList.vue +117 -89
  72. package/src/components/display/sharing/PlayerParameters.vue +45 -42
  73. package/src/components/display/sharing/QrCode.vue +52 -46
  74. package/src/components/display/sharing/ShareButtons.vue +18 -18
  75. package/src/components/display/sharing/ShareButtonsIntern.vue +100 -78
  76. package/src/components/display/sharing/ShareDistribution.vue +101 -67
  77. package/src/components/display/sharing/SharePlayer.vue +207 -127
  78. package/src/components/display/sharing/SharePlayerColors.vue +15 -15
  79. package/src/components/display/sharing/SharePlayerRadio.vue +62 -39
  80. package/src/components/display/sharing/SharePlayerTypes.vue +93 -55
  81. package/src/components/display/sharing/SubscribeButtons.vue +83 -32
  82. package/src/components/display/studio/RecordingItemButton.vue +3 -3
  83. package/src/components/form/ClassicCheckbox.vue +32 -31
  84. package/src/components/form/ClassicDatePicker.vue +47 -49
  85. package/src/components/form/ClassicInputText.vue +99 -98
  86. package/src/components/form/ClassicLoading.vue +11 -14
  87. package/src/components/form/ClassicMultiselect.vue +125 -126
  88. package/src/components/form/ClassicRadio.vue +15 -18
  89. package/src/components/form/ClassicSearch.vue +17 -23
  90. package/src/components/form/ClassicSelect.vue +35 -27
  91. package/src/components/form/{Wysiwyg.vue → ClassicWysiwyg.vue} +103 -118
  92. package/src/components/misc/AcpmImage.vue +6 -6
  93. package/src/components/misc/ClassicAccordion.vue +73 -0
  94. package/src/components/misc/ClassicNav.vue +117 -0
  95. package/src/components/misc/ClassicPopover.vue +212 -0
  96. package/src/components/misc/{Spinner.vue → ClassicSpinner.vue} +14 -15
  97. package/src/components/misc/ErrorMessage.vue +9 -17
  98. package/src/components/misc/FooterSection.vue +198 -0
  99. package/src/components/misc/HomeDropdown.vue +60 -60
  100. package/src/components/misc/LeftMenu.vue +115 -79
  101. package/src/components/misc/ProgressBar.vue +36 -32
  102. package/src/components/misc/SnackBar.vue +169 -0
  103. package/src/components/misc/TopBar.vue +162 -116
  104. package/src/components/misc/modal/ClassicModal.vue +99 -103
  105. package/src/components/misc/modal/ClipboardModal.vue +21 -23
  106. package/src/components/misc/modal/MessageModal.vue +22 -28
  107. package/src/components/misc/modal/NewsletterModal.vue +139 -113
  108. package/src/components/misc/modal/QrCodeModal.vue +14 -17
  109. package/src/components/misc/modal/ShareModalPlayer.vue +44 -60
  110. package/src/components/misc/player/PlayerCompact.vue +47 -62
  111. package/src/components/misc/player/{Player.vue → PlayerComponent.vue} +54 -46
  112. package/src/components/misc/player/PlayerLarge.vue +62 -61
  113. package/src/components/misc/player/PlayerProgressBar.vue +40 -30
  114. package/src/components/misc/player/PlayerTimeline.vue +32 -36
  115. package/src/components/misc/player/radio/RadioHistory.vue +62 -59
  116. package/src/components/misc/player/radio/RadioProgressBar.vue +44 -35
  117. package/src/components/mixins/cookies.ts +11 -10
  118. package/src/components/mixins/displayMethods.ts +5 -4
  119. package/src/components/mixins/handle403.ts +9 -9
  120. package/src/components/mixins/imageProxy.ts +14 -7
  121. package/src/components/mixins/init.ts +31 -16
  122. package/src/components/mixins/orgaComputed.ts +7 -7
  123. package/src/components/mixins/organisationFilter.ts +36 -22
  124. package/src/components/mixins/player/playerComment.ts +46 -37
  125. package/src/components/mixins/player/playerDisplay.ts +122 -87
  126. package/src/components/mixins/player/playerLive.ts +65 -43
  127. package/src/components/mixins/player/playerLogic.ts +133 -88
  128. package/src/components/mixins/player/playerTranscript.ts +48 -30
  129. package/src/components/mixins/radio/fetchRadioData.ts +40 -23
  130. package/src/components/mixins/selenium.ts +2 -2
  131. package/src/components/mixins/tagOfMixins.ts +11 -11
  132. package/src/components/pages/CategoryPage.vue +43 -0
  133. package/src/components/pages/{Emission.vue → EmissionPage.vue} +98 -67
  134. package/src/components/pages/{Emissions.vue → EmissionsPage.vue} +51 -44
  135. package/src/components/pages/Error403Page.vue +20 -19
  136. package/src/components/pages/HomePage.vue +144 -0
  137. package/src/components/pages/LivesPage.vue +66 -0
  138. package/src/components/pages/PageNotFound.vue +33 -22
  139. package/src/components/pages/{Participant.vue → ParticipantPage.vue} +63 -49
  140. package/src/components/pages/{Participants.vue → ParticipantsPage.vue} +9 -9
  141. package/src/components/pages/PlaylistPage.vue +175 -0
  142. package/src/components/pages/{Playlists.vue → PlaylistsPage.vue} +16 -14
  143. package/src/components/pages/PodcastPage.vue +365 -0
  144. package/src/components/pages/PodcastsPage.vue +152 -0
  145. package/src/components/pages/RadioPage.vue +131 -0
  146. package/src/components/pages/RubriquePage.vue +45 -0
  147. package/src/components/pages/{Search.vue → SearchPage.vue} +19 -19
  148. package/src/helper/dom.ts +1 -1
  149. package/src/helper/duration.ts +10 -4
  150. package/src/helper/useEventListener.ts +7 -8
  151. package/src/i18n.ts +31 -30
  152. package/src/locale/de.ts +272 -257
  153. package/src/locale/educationen.ts +13 -13
  154. package/src/locale/educationfr.ts +1 -1
  155. package/src/locale/en.ts +332 -324
  156. package/src/locale/es.ts +334 -318
  157. package/src/locale/fr.ts +339 -324
  158. package/src/locale/it.ts +341 -328
  159. package/src/locale/messages.ts +9 -9
  160. package/src/locale/sl.ts +324 -319
  161. package/src/main.ts +28 -31
  162. package/src/router/router.ts +218 -198
  163. package/src/shims-tsx.d.ts +1 -1
  164. package/src/shims-vue.d.ts +1 -1
  165. package/src/stores/ApiStore.ts +44 -44
  166. package/src/stores/AuthStore.ts +21 -15
  167. package/src/stores/CommentStore.ts +13 -11
  168. package/src/stores/FilterStore.ts +25 -15
  169. package/src/stores/GeneralStore.ts +15 -15
  170. package/src/stores/ParamSdkStore.ts +179 -137
  171. package/src/stores/PlayerStore.ts +139 -125
  172. package/src/stores/class/adserver/adserverConfig.ts +1 -1
  173. package/src/stores/class/adserver/adserverOtherEmission.ts +9 -9
  174. package/src/stores/class/cartouchier/cartouche.ts +4 -4
  175. package/src/stores/class/cartouchier/cartouchier.ts +2 -2
  176. package/src/stores/class/conference/conference.ts +10 -9
  177. package/src/stores/class/conference/conferenceMessage.ts +2 -2
  178. package/src/stores/class/conference/conferenceParticipant.ts +1 -1
  179. package/src/stores/class/conference/studioCall.ts +6 -6
  180. package/src/stores/class/contract/contractOrganisation.ts +5 -5
  181. package/src/stores/class/ftp/ftpEmission.ts +9 -9
  182. package/src/stores/class/ftp/testFtpEmission.ts +4 -4
  183. package/src/stores/class/general/audioView.ts +19 -19
  184. package/src/stores/class/general/category.ts +1 -1
  185. package/src/stores/class/general/classicSelectType.ts +2 -3
  186. package/src/stores/class/general/customPlayer.ts +8 -8
  187. package/src/stores/class/general/emission.ts +20 -20
  188. package/src/stores/class/general/fetchParam.ts +8 -2
  189. package/src/stores/class/general/initState.ts +31 -31
  190. package/src/stores/class/general/interfacePageable.ts +13 -13
  191. package/src/stores/class/general/ituneCategory.ts +4 -4
  192. package/src/stores/class/general/listReturn.ts +12 -12
  193. package/src/stores/class/general/media.ts +7 -7
  194. package/src/stores/class/general/organisation.ts +9 -9
  195. package/src/stores/class/general/pageable.ts +10 -10
  196. package/src/stores/class/general/participant.ts +7 -7
  197. package/src/stores/class/general/player.ts +30 -28
  198. package/src/stores/class/general/playlist.ts +17 -19
  199. package/src/stores/class/general/podcast.ts +19 -19
  200. package/src/stores/class/general/sortPageable.ts +4 -4
  201. package/src/stores/class/general/soundcastCategory.ts +7 -7
  202. package/src/stores/class/ouestFrance/ofTag.ts +34 -34
  203. package/src/stores/class/ouestFrance/ofTagInfo.ts +9 -9
  204. package/src/stores/class/ouestFrance/ofTagPage.ts +7 -7
  205. package/src/stores/class/ouestFrance/ofTagSeo.ts +7 -7
  206. package/src/stores/class/ouestFrance/ofTagVente.ts +6 -6
  207. package/src/stores/class/ouestFrance/ofTagWithParents.ts +20 -20
  208. package/src/stores/class/radio/canal.ts +4 -4
  209. package/src/stores/class/radio/live.ts +6 -6
  210. package/src/stores/class/radio/mix.ts +16 -16
  211. package/src/stores/class/radio/playlistMedia.ts +7 -7
  212. package/src/stores/class/radio/recurrence.ts +54 -54
  213. package/src/stores/class/rss/rssEmission.ts +13 -13
  214. package/src/stores/class/rss/rssInfo.ts +7 -7
  215. package/src/stores/class/rubrique/rubriquage.ts +2 -2
  216. package/src/stores/class/rubrique/rubrique.ts +1 -1
  217. package/src/stores/class/stat/statArrayIncome.ts +5 -5
  218. package/src/stores/class/stat/statArrayObject.ts +26 -26
  219. package/src/stores/class/stat/statGraph.ts +6 -6
  220. package/src/stores/class/user/person.ts +4 -2
  221. package/src/stores/class/user/profile.ts +4 -2
  222. package/src/stores/class/user/userKeycloak.ts +4 -5
  223. package/src/components/display/list/Paginate.vue +0 -181
  224. package/src/components/misc/Accordion.vue +0 -78
  225. package/src/components/misc/Footer.vue +0 -169
  226. package/src/components/misc/Nav.vue +0 -119
  227. package/src/components/misc/Popover.vue +0 -193
  228. package/src/components/misc/Snackbar.vue +0 -168
  229. package/src/components/pages/Category.vue +0 -41
  230. package/src/components/pages/Home.vue +0 -125
  231. package/src/components/pages/Lives.vue +0 -64
  232. package/src/components/pages/Playlist.vue +0 -164
  233. package/src/components/pages/Podcast.vue +0 -307
  234. package/src/components/pages/Podcasts.vue +0 -146
  235. package/src/components/pages/Radio.vue +0 -122
  236. package/src/components/pages/Rubrique.vue +0 -42
@@ -9,11 +9,8 @@
9
9
  id-checkbox="search-rubriquage-checkbox"
10
10
  :label="$t('By topic')"
11
11
  />
12
- <div
13
- v-if="isRubriquage"
14
- class="d-flex ms-1 flex-column mb-2 flex-grow-1"
15
- >
16
- <RubriqueChoice
12
+ <div v-if="isRubriquage" class="d-flex ms-1 flex-column mb-2 flex-grow-1">
13
+ <RubriqueChoice
17
14
  v-for="(filter, index) in arrayFilter"
18
15
  :key="index"
19
16
  :index="index"
@@ -22,42 +19,47 @@
22
19
  :rubrique-id-selected="filter.rubriqueId"
23
20
  :rubriquage-id-selected="filter.rubriquageId"
24
21
  :no-deselect="true"
25
- @updateRubrique="updateRubrique"
26
- @updateRubriquage="updateRubriquage"
27
- @deleteRubriqueChoice="deleteRubriqueChoice(index)"
22
+ @update-rubrique="updateRubrique"
23
+ @update-rubriquage="updateRubriquage"
24
+ @delete-rubrique-choice="deleteRubriqueChoice(index)"
28
25
  />
29
26
  <button
30
27
  v-if="availableRubriquage.length"
31
28
  class="btn mt-2"
32
29
  @click="addFilter"
33
30
  >
34
- {{ $t('Add a sort criterion by topic') }}
31
+ {{ $t("Add a sort criterion by topic") }}
35
32
  </button>
36
33
  </div>
37
34
  </div>
38
35
  </template>
39
36
 
40
37
  <script lang="ts">
41
- import octopusApi from '@saooti/octopus-api';
42
- import ClassicCheckbox from '../../form/ClassicCheckbox.vue';
43
- import { Rubriquage } from '@/stores/class/rubrique/rubriquage';
44
- import { RubriquageFilter } from '@/stores/class/rubrique/rubriquageFilter';
45
- import { useFilterStore } from '@/stores/FilterStore';
46
- import { mapState, mapActions } from 'pinia';
47
- import { defineComponent, defineAsyncComponent } from 'vue';
48
- const RubriqueChoice = defineAsyncComponent(() => import('./RubriqueChoice.vue'));
38
+ import octopusApi from "@saooti/octopus-api";
39
+ import ClassicCheckbox from "../../form/ClassicCheckbox.vue";
40
+ import { Rubriquage } from "@/stores/class/rubrique/rubriquage";
41
+ import { RubriquageFilter } from "@/stores/class/rubrique/rubriquageFilter";
42
+ import { useFilterStore } from "@/stores/FilterStore";
43
+ import { mapState, mapActions } from "pinia";
44
+ import { defineComponent, defineAsyncComponent } from "vue";
45
+ const RubriqueChoice = defineAsyncComponent(
46
+ () => import("./RubriqueChoice.vue"),
47
+ );
49
48
  export default defineComponent({
50
49
  components: {
51
50
  RubriqueChoice,
52
- ClassicCheckbox
51
+ ClassicCheckbox,
53
52
  },
54
53
  props: {
55
- organisationId: { default: undefined, type: String},
56
- resetRubriquage: { default: false, type: Boolean},
57
- modifyFilter:{ default: true, type: Boolean},
58
- initRubriqueFilter:{ default: undefined, type: Array as ()=> Array<RubriquageFilter>},
54
+ organisationId: { default: undefined, type: String },
55
+ resetRubriquage: { default: false, type: Boolean },
56
+ modifyFilter: { default: true, type: Boolean },
57
+ initRubriqueFilter: {
58
+ default: undefined,
59
+ type: Array as () => Array<RubriquageFilter>,
60
+ },
59
61
  },
60
- emits: ['updateRubriquageFilter'],
62
+ emits: ["updateRubriquageFilter"],
61
63
 
62
64
  data() {
63
65
  return {
@@ -73,91 +75,111 @@ export default defineComponent({
73
75
  },
74
76
 
75
77
  computed: {
76
- ...mapState(useFilterStore, ['filterRubrique', 'filterOrgaId']),
77
- organisation(): string|undefined {
78
- return this.organisationId ?this.organisationId: this.filterOrgaId;
78
+ ...mapState(useFilterStore, ["filterRubrique", "filterOrgaId"]),
79
+ organisation(): string | undefined {
80
+ return this.organisationId ? this.organisationId : this.filterOrgaId;
79
81
  },
80
- availableRubriquage(): Array<Rubriquage>{
81
- if(this.arrayFilter.length){
82
- const rubriquageIdToNotShow = this.arrayFilter.map(a => a.rubriquageId);
83
- return this.rubriquageData.filter((element)=>{
84
- if(element.rubriquageId){
82
+ availableRubriquage(): Array<Rubriquage> {
83
+ if (this.arrayFilter.length) {
84
+ const rubriquageIdToNotShow = this.arrayFilter.map(
85
+ (a) => a.rubriquageId,
86
+ );
87
+ return this.rubriquageData.filter((element) => {
88
+ if (element.rubriquageId) {
85
89
  return !rubriquageIdToNotShow.includes(element.rubriquageId);
86
90
  }
87
91
  });
88
92
  }
89
93
  return this.rubriquageData;
90
- }
94
+ },
91
95
  },
92
96
  watch: {
93
97
  organisation(): void {
94
- if(this.isRubriquage){
98
+ if (this.isRubriquage) {
95
99
  this.fetchTopics(true);
96
100
  }
97
101
  },
98
102
  isRubriquage(): void {
99
- if(this.isInternChanged ||this.isInit){
103
+ if (this.isInternChanged || this.isInit) {
100
104
  return;
101
105
  }
102
106
  this.isInternChanged = true;
103
- if(0===this.arrayFilter.length && this.availableRubriquage[0].rubriquageId){
104
- this.arrayFilter.push({rubriquageId: this.availableRubriquage[0].rubriquageId, rubriqueId: 0, nameRubriquage:this.rubriquageData[0].title, nameRubrique:""});
107
+ if (
108
+ 0 === this.arrayFilter.length &&
109
+ this.availableRubriquage[0].rubriquageId
110
+ ) {
111
+ this.arrayFilter.push({
112
+ rubriquageId: this.availableRubriquage[0].rubriquageId,
113
+ rubriqueId: 0,
114
+ nameRubriquage: this.rubriquageData[0].title,
115
+ nameRubrique: "",
116
+ });
105
117
  }
106
- if(this.isRubriquage){
107
- if(this.saveOrganisation !== this.organisation){
118
+ if (this.isRubriquage) {
119
+ if (this.saveOrganisation !== this.organisation) {
108
120
  this.fetchTopics(true);
109
121
  }
110
- this.$emit('updateRubriquageFilter', this.arrayFilter);
111
- }else{
112
- this.$emit('updateRubriquageFilter', []);
122
+ this.$emit("updateRubriquageFilter", this.arrayFilter);
123
+ } else {
124
+ this.$emit("updateRubriquageFilter", []);
113
125
  }
114
- if(this.modifyFilter){
126
+ if (this.modifyFilter) {
115
127
  this.resetRubriqueFilter();
116
128
  }
117
129
  this.$nextTick(() => {
118
130
  this.isInternChanged = false;
119
131
  });
120
132
  },
121
- arrayFilter:{
133
+ arrayFilter: {
122
134
  deep: true,
123
- handler(){
124
- if(this.isInternChanged ||this.isInit){
135
+ handler() {
136
+ if (this.isInternChanged || this.isInit) {
125
137
  return;
126
138
  }
127
139
  this.isInternChanged = true;
128
- if(this.modifyFilter){
140
+ if (this.modifyFilter) {
129
141
  this.resetRubriqueFilter();
130
142
  }
131
- if(this.isRubriquage){
132
- this.$emit('updateRubriquageFilter', this.arrayFilter);
143
+ if (this.isRubriquage) {
144
+ this.$emit("updateRubriquageFilter", this.arrayFilter);
133
145
  }
134
146
  this.$nextTick(() => {
135
147
  this.isInternChanged = false;
136
148
  });
137
- }
149
+ },
138
150
  },
139
- filterRubrique:{
151
+ filterRubrique: {
140
152
  deep: true,
141
- async handler(){
142
- if(this.isInternChanged || !this.modifyFilter){
153
+ async handler() {
154
+ if (this.isInternChanged || !this.modifyFilter) {
143
155
  return;
144
156
  }
145
157
  this.isInternChanged = true;
146
- if(this.saveOrganisation !== this.filterOrgaId){
158
+ if (this.saveOrganisation !== this.filterOrgaId) {
147
159
  await this.fetchTopics(false);
148
160
  }
149
- if(this.filterRubrique.length){
161
+ if (this.filterRubrique.length) {
150
162
  this.arrayFilter = Array.from(this.filterRubrique);
151
163
  this.isRubriquage = true;
152
- }else if(this.rubriquageData[0].rubriquageId){
153
- this.arrayFilter = [{rubriquageId: this.rubriquageData[0].rubriquageId, rubriqueId: 0, nameRubriquage:this.rubriquageData[0].title, nameRubrique:""}];
164
+ } else if (this.rubriquageData[0].rubriquageId) {
165
+ this.arrayFilter = [
166
+ {
167
+ rubriquageId: this.rubriquageData[0].rubriquageId,
168
+ rubriqueId: 0,
169
+ nameRubriquage: this.rubriquageData[0].title,
170
+ nameRubrique: "",
171
+ },
172
+ ];
154
173
  this.isRubriquage = false;
155
174
  }
156
- this.$emit('updateRubriquageFilter',this.isRubriquage? this.arrayFilter : []);
175
+ this.$emit(
176
+ "updateRubriquageFilter",
177
+ this.isRubriquage ? this.arrayFilter : [],
178
+ );
157
179
  this.$nextTick(() => {
158
180
  this.isInternChanged = false;
159
181
  });
160
- }
182
+ },
161
183
  },
162
184
  resetRubriquage(): void {
163
185
  this.isRubriquage = false;
@@ -165,12 +187,12 @@ export default defineComponent({
165
187
  },
166
188
 
167
189
  created() {
168
- if(!this.modifyFilter){
169
- if(this.initRubriqueFilter && this.initRubriqueFilter.length > 0){
190
+ if (!this.modifyFilter) {
191
+ if (this.initRubriqueFilter && this.initRubriqueFilter.length > 0) {
170
192
  this.arrayFilter = Array.from(this.initRubriqueFilter);
171
193
  this.isRubriquage = true;
172
194
  }
173
- }else if(this.filterRubrique.length){
195
+ } else if (this.filterRubrique.length) {
174
196
  this.arrayFilter = Array.from(this.filterRubrique);
175
197
  this.isRubriquage = true;
176
198
  }
@@ -180,63 +202,86 @@ export default defineComponent({
180
202
  });
181
203
  },
182
204
  methods: {
183
- ...mapActions(useFilterStore, ['filterUpdateRubrique']),
184
- deleteRubriqueChoice(index: number): void{
185
- this.arrayFilter.splice(index,1);
205
+ ...mapActions(useFilterStore, ["filterUpdateRubrique"]),
206
+ deleteRubriqueChoice(index: number): void {
207
+ this.arrayFilter.splice(index, 1);
186
208
  },
187
- getRubriquage(index: number){
209
+ getRubriquage(index: number) {
188
210
  const elementToNotShow = Array.from(this.arrayFilter);
189
211
  elementToNotShow.splice(index, 1);
190
- if(elementToNotShow.length){
191
- const rubriquageIdToNotShow = elementToNotShow.map(a => a.rubriquageId);
192
- return this.rubriquageData.filter((element)=>{
193
- if(element.rubriquageId){
212
+ if (elementToNotShow.length) {
213
+ const rubriquageIdToNotShow = elementToNotShow.map(
214
+ (a) => a.rubriquageId,
215
+ );
216
+ return this.rubriquageData.filter((element) => {
217
+ if (element.rubriquageId) {
194
218
  return !rubriquageIdToNotShow.includes(element.rubriquageId);
195
219
  }
196
220
  });
197
221
  }
198
222
  return this.rubriquageData;
199
223
  },
200
- addFilter(): void{
201
- if(this.availableRubriquage[0].rubriquageId){
202
- this.arrayFilter.push({rubriquageId: this.availableRubriquage[0].rubriquageId, rubriqueId: 0,nameRubriquage:this.rubriquageData[0].title, nameRubrique:""});
224
+ addFilter(): void {
225
+ if (this.availableRubriquage[0].rubriquageId) {
226
+ this.arrayFilter.push({
227
+ rubriquageId: this.availableRubriquage[0].rubriquageId,
228
+ rubriqueId: 0,
229
+ nameRubriquage: this.rubriquageData[0].title,
230
+ nameRubrique: "",
231
+ });
203
232
  }
204
233
  },
205
- updateRubrique(newValue: {rubriqueId: number; index: number}): void{
234
+ updateRubrique(newValue: { rubriqueId: number; index: number }): void {
206
235
  const item = this.arrayFilter[newValue.index];
207
236
  item.rubriqueId = newValue.rubriqueId;
208
237
  this.arrayFilter.splice(newValue.index, 1, item);
209
238
  },
210
- updateRubriquage(newValue: {rubriquageId: number; index: number}): void{
239
+ updateRubriquage(newValue: { rubriquageId: number; index: number }): void {
211
240
  const item = this.arrayFilter[newValue.index];
212
241
  item.rubriquageId = newValue.rubriquageId;
213
242
  this.arrayFilter.splice(newValue.index, 1, item);
214
243
  },
215
244
  async fetchTopics(initArrayFilter: boolean): Promise<void> {
216
- if(initArrayFilter){
245
+ if (initArrayFilter) {
217
246
  this.arrayFilter.length = 0;
218
247
  }
219
248
  if (!this.organisation) return;
220
- const data = await octopusApi.fetchDataWithParams<Array<Rubriquage>>(0, 'rubriquage/find/'+this.organisation,{}, true);
221
- this.rubriquageData = data.filter((element: Rubriquage)=>{
249
+ const data = await octopusApi.fetchDataWithParams<Array<Rubriquage>>(
250
+ 0,
251
+ "rubriquage/find/" + this.organisation,
252
+ {},
253
+ true,
254
+ );
255
+ this.rubriquageData = data.filter((element: Rubriquage) => {
222
256
  return element.rubriques.length;
223
257
  });
224
258
  this.saveOrganisation = this.organisation;
225
259
  if (0 === this.rubriquageData.length) return;
226
- if(initArrayFilter && this.rubriquageData[0].rubriquageId){
227
- this.arrayFilter.push({rubriquageId: this.rubriquageData[0].rubriquageId, rubriqueId: 0, nameRubriquage:this.rubriquageData[0].title, nameRubrique:""});
260
+ if (initArrayFilter && this.rubriquageData[0].rubriquageId) {
261
+ this.arrayFilter.push({
262
+ rubriquageId: this.rubriquageData[0].rubriquageId,
263
+ rubriqueId: 0,
264
+ nameRubriquage: this.rubriquageData[0].title,
265
+ nameRubrique: "",
266
+ });
228
267
  }
229
268
  },
230
- resetRubriqueFilter(): void{
231
- if(0===this.filterRubrique.length || this.isInit || !this.modifyFilter){
269
+ resetRubriqueFilter(): void {
270
+ if (
271
+ 0 === this.filterRubrique.length ||
272
+ this.isInit ||
273
+ !this.modifyFilter
274
+ ) {
232
275
  return;
233
276
  }
234
277
  const queries = this.$route.query;
235
278
  if (queries.rubriquesId) {
236
- this.$router.replace({ query: {...queries, ...{rubriquesId: undefined} } });
279
+ this.$router.replace({
280
+ query: { ...queries, ...{ rubriquesId: undefined } },
281
+ });
237
282
  }
238
283
  this.filterUpdateRubrique([]);
239
- }
284
+ },
240
285
  },
241
- })
242
- </script>
286
+ });
287
+ </script>
@@ -2,25 +2,30 @@
2
2
  <ClassicRadio
3
3
  v-model:textInit="sort"
4
4
  id-radio="sort-radio"
5
- :options="[{title:$t('Sort score'), value:'SCORE'},
6
- {title:$t('Sort last'), value:isEmission?'LAST_PODCAST_DESC':'DATE'},
7
- {title:$t('Sort name'), value:'NAME'}]"
5
+ :options="[
6
+ { title: $t('Sort score'), value: 'SCORE' },
7
+ {
8
+ title: $t('Sort last'),
9
+ value: isEmission ? 'LAST_PODCAST_DESC' : 'DATE',
10
+ },
11
+ { title: $t('Sort name'), value: 'NAME' },
12
+ ]"
8
13
  />
9
14
  </template>
10
15
 
11
16
  <script lang="ts">
12
- import ClassicRadio from '../../form/ClassicRadio.vue';
13
- import { defineComponent } from 'vue';
17
+ import ClassicRadio from "../../form/ClassicRadio.vue";
18
+ import { defineComponent } from "vue";
14
19
  export default defineComponent({
15
20
  components: {
16
21
  ClassicRadio,
17
22
  },
18
23
  props: {
19
- isEmission: { default: false, type: Boolean},
20
- sortCriteria: { default: 'DATE', type: String},
24
+ isEmission: { default: false, type: Boolean },
25
+ sortCriteria: { default: "DATE", type: String },
21
26
  },
22
27
 
23
- emits: ['updateSortCriteria'],
28
+ emits: ["updateSortCriteria"],
24
29
  data() {
25
30
  return {
26
31
  sort: this.sortCriteria,
@@ -28,11 +33,11 @@ export default defineComponent({
28
33
  },
29
34
  watch: {
30
35
  sort(): void {
31
- this.$emit('updateSortCriteria', this.sort);
36
+ this.$emit("updateSortCriteria", this.sort);
32
37
  },
33
38
  sortCriteria(): void {
34
39
  this.sort = this.sortCriteria;
35
40
  },
36
41
  },
37
- })
38
- </script>
42
+ });
43
+ </script>
@@ -1,31 +1,27 @@
1
1
  <template>
2
- <div
3
- :id="id"
4
- class="d-flex flex-column align-items-center"
5
- >
6
- <ClassicLoading
7
- :loading-text="loadingText"
8
- :error-text="errorText"
9
- />
2
+ <div :id="id" class="d-flex flex-column align-items-center">
3
+ <ClassicLoading :loading-text="loadingText" :error-text="errorText" />
10
4
  <template v-if="!loading">
11
5
  <div
12
6
  v-if="!justSizeChosen"
13
7
  class="d-flex justify-content-between align-items-center flex-grow-1 w-100"
14
8
  >
15
9
  <div class="text-secondary">
16
- <template v-if="textCount && (windowWidth > 1300 || windowWidth<=960)">
10
+ <template
11
+ v-if="textCount && (windowWidth > 1300 || windowWidth <= 960)"
12
+ >
17
13
  {{ textCount }}
18
14
  </template>
19
15
  </div>
20
16
  <PaginateParams
21
17
  v-if="!isPhone && !justSizeChosen && totalCount > 0"
22
18
  :rows-per-page="rowsPerPage"
23
- @update:rowsPerPage="changeSize"
19
+ @update:rows-per-page="changeSize"
24
20
  />
25
21
  </div>
26
22
  </template>
27
23
  <slot name="list" />
28
- <Paginate
24
+ <PaginateSection
29
25
  v-if="!isPhone && !justSizeChosen && totalCount > 0"
30
26
  :first="first"
31
27
  :rows-per-page="rowsPerPage"
@@ -34,108 +30,114 @@
34
30
  @update:first="changeFirst"
35
31
  />
36
32
  <button
37
- v-show="((first+rowsPerPage) < totalCount) && (isPhone || justSizeChosen)"
33
+ v-show="first + rowsPerPage < totalCount && (isPhone || justSizeChosen)"
38
34
  :disabled="loading"
39
35
  class="btn"
40
- :class="buttonPlus ? 'btn-primary align-self-center width-fit-content m-4' : 'btn-more'"
36
+ :class="
37
+ buttonPlus
38
+ ? 'btn-primary align-self-center width-fit-content m-4'
39
+ : 'btn-more'
40
+ "
41
41
  :title="$t('See more')"
42
42
  @click="fetchMore"
43
43
  >
44
44
  <template v-if="buttonPlus">
45
- {{ $t('See more') }}
45
+ {{ $t("See more") }}
46
46
  </template>
47
- <div
48
- :class="buttonPlus?'ms-1':''"
49
- class="saooti-more"
50
- />
47
+ <div :class="buttonPlus ? 'ms-1' : ''" class="saooti-more" />
51
48
  </button>
52
49
  </div>
53
50
  </template>
54
51
 
55
52
  <script lang="ts">
56
- import domHelper from '../../../helper/dom';
57
- import ClassicLoading from '../../form/ClassicLoading.vue';
58
- import { state } from '../../../stores/ParamSdkStore';
59
- import PaginateParams from './PaginateParams.vue';
60
- import Paginate from './Paginate.vue';
61
- import { defineComponent } from 'vue'
53
+ import domHelper from "../../../helper/dom";
54
+ import ClassicLoading from "../../form/ClassicLoading.vue";
55
+ import { state } from "../../../stores/ParamSdkStore";
56
+ import PaginateParams from "./PaginateParams.vue";
57
+ import PaginateSection from "./PaginateSection.vue";
58
+ import { defineComponent } from "vue";
62
59
  export default defineComponent({
63
- name: 'ListPaginate',
60
+ name: "ListPaginate",
64
61
  components: {
65
- Paginate,
62
+ PaginateSection,
66
63
  PaginateParams,
67
- ClassicLoading
64
+ ClassicLoading,
68
65
  },
69
66
  props: {
70
- first: { default: 0, type: Number},
71
- rowsPerPage: { default: 30, type: Number},
72
- totalCount: { default: 0, type: Number},
73
- textCount: { default: undefined, type: String},
74
- id: {default: '', type: String},
75
- loadingText:{ default: undefined, type: String},
76
- errorText:{ default: undefined, type: String},
77
- loading: { default: false, type:Boolean},
78
- isMobile: { default: false, type: Boolean},
79
- justSizeChosen:{default: false, type: Boolean}
67
+ first: { default: 0, type: Number },
68
+ rowsPerPage: { default: 30, type: Number },
69
+ totalCount: { default: 0, type: Number },
70
+ textCount: { default: undefined, type: String },
71
+ id: { default: "", type: String },
72
+ loadingText: { default: undefined, type: String },
73
+ errorText: { default: undefined, type: String },
74
+ loading: { default: false, type: Boolean },
75
+ isMobile: { default: false, type: Boolean },
76
+ justSizeChosen: { default: false, type: Boolean },
80
77
  },
81
78
 
82
- emits: ['update:first', 'update:rowsPerPage', 'update:isMobile'],
79
+ emits: ["update:first", "update:rowsPerPage", "update:isMobile"],
83
80
  data() {
84
81
  return {
85
82
  windowWidth: window.innerWidth,
86
- };
83
+ };
87
84
  },
88
- computed:{
85
+ computed: {
89
86
  buttonPlus(): boolean {
90
- return (state.generalParameters.buttonPlus as boolean);
87
+ return state.generalParameters.buttonPlus as boolean;
91
88
  },
92
- isPhone(){
89
+ isPhone() {
93
90
  return 960 >= this.windowWidth;
94
91
  },
95
- rangeSize(){
96
- if(this.windowWidth > 1600){
92
+ rangeSize() {
93
+ if (this.windowWidth > 1600) {
97
94
  return 3;
98
95
  }
99
96
  return this.windowWidth > 1530 ? 2 : 1;
100
97
  },
101
98
  },
102
- watch:{
103
- isPhone:{
104
- immediate:true,
105
- handler(){
106
- this.$emit('update:isMobile', this.isPhone);
107
- }
108
- }
99
+ watch: {
100
+ isPhone: {
101
+ immediate: true,
102
+ handler() {
103
+ this.$emit("update:isMobile", this.isPhone);
104
+ },
105
+ },
109
106
  },
110
107
  mounted() {
111
108
  this.$nextTick(() => {
112
- window.addEventListener('resize', this.onResize);
113
- })
109
+ window.addEventListener("resize", this.onResize);
110
+ });
114
111
  },
115
- beforeUnmount() {
116
- window.removeEventListener('resize', this.onResize);
112
+ beforeUnmount() {
113
+ window.removeEventListener("resize", this.onResize);
117
114
  },
118
- methods:{
115
+ methods: {
119
116
  onResize() {
120
117
  this.windowWidth = window.innerWidth;
121
118
  },
122
- fetchMore(){
123
- this.$emit('update:first', this.first + this.rowsPerPage);
119
+ fetchMore() {
120
+ this.$emit("update:first", this.first + this.rowsPerPage);
124
121
  },
125
- changeFirst(firstValue: number){
122
+ changeFirst(firstValue: number) {
126
123
  this.scrollToTop();
127
- this.$emit('update:first', firstValue);
124
+ this.$emit("update:first", firstValue);
128
125
  },
129
- changeSize(sizeValue: number){
126
+ changeSize(sizeValue: number) {
130
127
  this.scrollToTop();
131
- this.$emit('update:rowsPerPage', sizeValue)
128
+ this.$emit("update:rowsPerPage", sizeValue);
132
129
  },
133
- scrollToTop(){
130
+ scrollToTop() {
134
131
  const element = document.getElementById(this.id);
135
- if(!element || element.getBoundingClientRect().top > 0){return;}
136
- const y = element.getBoundingClientRect().top + window.scrollY - domHelper.convertRemToPixels(3.5);
137
- window.scrollTo({top: y, behavior: 'smooth'});
138
- }
139
- }
140
- })
141
- </script>
132
+ if (!element || element.getBoundingClientRect().top > 0) {
133
+ return;
134
+ }
135
+ const y =
136
+ element.getBoundingClientRect().top +
137
+ window.scrollY -
138
+ domHelper.convertRemToPixels(3.5);
139
+ window.scrollTo({ top: y, behavior: "smooth" });
140
+ },
141
+ },
142
+ });
143
+ </script>