@saooti/octopus-sdk 30.0.4 → 30.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 (151) hide show
  1. package/README.md +5 -0
  2. package/index.ts +13 -2
  3. package/package.json +1 -1
  4. package/src/App.vue +4 -4
  5. package/src/api/comments.ts +1 -1
  6. package/src/assets/bootstrap-diff.scss +2 -1
  7. package/src/assets/form.scss +7 -15
  8. package/src/assets/general.scss +14 -20
  9. package/src/assets/multiselect.scss +2 -2
  10. package/src/assets/share.scss +1 -12
  11. package/src/components/display/categories/CategoryChooser.vue +1 -1
  12. package/src/components/display/categories/CategoryFilter.vue +4 -4
  13. package/src/components/display/categories/CategoryList.vue +1 -1
  14. package/src/components/display/comments/CommentInput.vue +3 -3
  15. package/src/components/display/comments/CommentItem.vue +4 -3
  16. package/src/components/display/comments/CommentList.vue +4 -4
  17. package/src/components/display/comments/CommentParentInfo.vue +1 -1
  18. package/src/components/display/comments/CommentPlayer.vue +2 -2
  19. package/src/components/display/comments/CommentSection.vue +3 -3
  20. package/src/components/display/edit/EditBox.vue +1 -1
  21. package/src/components/display/edit/EditCommentBox.vue +1 -1
  22. package/src/components/display/emission/EmissionChooser.vue +2 -2
  23. package/src/components/display/emission/EmissionInlineList.vue +3 -3
  24. package/src/components/display/emission/EmissionItem.vue +3 -3
  25. package/src/components/display/emission/EmissionList.vue +4 -4
  26. package/src/components/display/emission/EmissionPlayerItem.vue +3 -3
  27. package/src/components/display/filter/AdvancedSearch.vue +40 -106
  28. package/src/components/display/filter/CategoryFilter.vue +10 -14
  29. package/src/components/display/filter/MonetizableFilter.vue +1 -1
  30. package/src/components/display/filter/ProductorSearch.vue +21 -40
  31. package/src/components/display/filter/RubriqueChoice.vue +4 -4
  32. package/src/components/display/filter/RubriqueFilter.vue +10 -14
  33. package/src/components/display/live/LiveHorizontalList.vue +1 -1
  34. package/src/components/display/live/LiveItem.vue +2 -2
  35. package/src/components/display/live/LiveList.vue +1 -1
  36. package/src/components/display/organisation/OrganisationChooser.vue +1 -1
  37. package/src/components/display/organisation/OrganisationChooserLight.vue +9 -3
  38. package/src/components/display/participant/ParticipantItem.vue +1 -1
  39. package/src/components/display/participant/ParticipantList.vue +1 -1
  40. package/src/components/display/playlist/PlaylistItem.vue +2 -2
  41. package/src/components/display/playlist/PlaylistList.vue +1 -1
  42. package/src/components/display/playlist/PodcastList.vue +10 -21
  43. package/src/components/display/podcasts/AnimatorsItem.vue +1 -1
  44. package/src/components/display/podcasts/ParticipantDescription.vue +2 -1
  45. package/src/components/display/podcasts/PodcastFilterList.vue +11 -20
  46. package/src/components/display/podcasts/PodcastImage.vue +3 -3
  47. package/src/components/display/podcasts/PodcastInlineList.vue +3 -3
  48. package/src/components/display/podcasts/PodcastItem.vue +3 -3
  49. package/src/components/display/podcasts/PodcastList.vue +2 -2
  50. package/src/components/display/podcasts/PodcastModuleBox.vue +2 -2
  51. package/src/components/display/rubriques/RubriqueChooser.vue +1 -1
  52. package/src/components/display/rubriques/RubriqueList.vue +4 -4
  53. package/src/components/display/sharing/PlayerParameters.vue +31 -103
  54. package/src/components/display/sharing/ShareButtons.vue +3 -3
  55. package/src/components/display/sharing/ShareDistribution.vue +1 -1
  56. package/src/components/display/sharing/SharePlayer.vue +35 -51
  57. package/src/components/display/sharing/SharePlayerColors.vue +2 -2
  58. package/src/components/display/sharing/SharePlayerTypes.vue +5 -5
  59. package/src/components/display/sharing/SubscribeButtons.vue +2 -2
  60. package/src/components/form/ClassicCheckbox.vue +61 -0
  61. package/src/components/form/ClassicLoading.vue +28 -0
  62. package/src/components/form/ClassicRadio.vue +61 -0
  63. package/src/components/form/ClassicSearch.vue +82 -0
  64. package/src/components/misc/ErrorMessage.vue +1 -1
  65. package/src/components/misc/Footer.vue +28 -37
  66. package/src/components/misc/HomeDropdown.vue +44 -93
  67. package/src/components/misc/LeftMenu.vue +111 -144
  68. package/src/components/misc/Player.vue +16 -30
  69. package/src/components/misc/PlayerButtons.vue +16 -39
  70. package/src/components/misc/PlayerClockAndTimeline.vue +1 -1
  71. package/src/components/misc/PlayerProgressBar.vue +16 -51
  72. package/src/components/misc/Popover.vue +8 -2
  73. package/src/components/misc/TopBar.vue +142 -224
  74. package/src/components/misc/modal/ClipboardModal.vue +1 -1
  75. package/src/components/misc/modal/NewsletterModal.vue +15 -29
  76. package/src/components/misc/modal/QrCodeModal.vue +2 -2
  77. package/src/components/misc/modal/ShareModalPlayer.vue +1 -1
  78. package/src/components/mixins/init.ts +1 -1
  79. package/src/components/mixins/organisationFilter.ts +1 -1
  80. package/src/components/pages/Category.vue +4 -9
  81. package/src/components/pages/Emission.vue +13 -25
  82. package/src/components/pages/Emissions.vue +10 -19
  83. package/src/components/pages/Home.vue +5 -7
  84. package/src/components/pages/Lives.vue +3 -5
  85. package/src/components/pages/Participant.vue +19 -27
  86. package/src/components/pages/Participants.vue +7 -15
  87. package/src/components/pages/Playlist.vue +17 -30
  88. package/src/components/pages/Playlists.vue +1 -11
  89. package/src/components/pages/Podcast.vue +20 -34
  90. package/src/components/pages/Podcasts.vue +12 -26
  91. package/src/components/pages/Search.vue +26 -64
  92. package/src/store/class/{adserverConfig.ts → adserver/adserverConfig.ts} +0 -0
  93. package/src/store/class/adserver/adserverOtherEmission.ts +13 -0
  94. package/src/store/class/{adserverTiming.ts → adserver/adserverTiming.ts} +0 -0
  95. package/src/store/class/cartouchier/cartouche.ts +15 -0
  96. package/src/store/class/cartouchier/cartouchier.ts +9 -0
  97. package/src/store/class/conference/conference.ts +35 -0
  98. package/src/store/class/conference/conferenceMessage.ts +10 -0
  99. package/src/store/class/conference/conferenceParticipant.ts +18 -0
  100. package/src/store/class/conference/pad.ts +15 -0
  101. package/src/store/class/conference/studioCall.ts +7 -0
  102. package/src/store/class/contract/contract.ts +7 -0
  103. package/src/store/class/contract/contractOrganisation.ts +7 -0
  104. package/src/store/class/ftp/ftpEmission.ts +41 -0
  105. package/src/store/class/ftp/ftpParam.ts +12 -0
  106. package/src/store/class/ftp/testFtpEmission.ts +5 -0
  107. package/src/store/class/general/audioView.ts +21 -0
  108. package/src/store/class/{category.ts → general/category.ts} +1 -1
  109. package/src/store/class/general/comment.ts +16 -0
  110. package/src/store/class/general/customPlayer.ts +8 -0
  111. package/src/store/class/{emission.ts → general/emission.ts} +2 -2
  112. package/src/store/class/general/fetchParam.ts +33 -0
  113. package/src/store/class/general/initState.ts +25 -0
  114. package/src/store/class/general/ituneCategory.ts +5 -0
  115. package/src/store/class/general/media.ts +14 -0
  116. package/src/store/class/general/organisation.ts +19 -0
  117. package/src/store/class/general/pageable.ts +13 -0
  118. package/src/store/class/{participant.ts → general/participant.ts} +0 -0
  119. package/src/store/class/{player.ts → general/player.ts} +0 -0
  120. package/src/store/class/{playlist.ts → general/playlist.ts} +2 -2
  121. package/src/store/class/{podcast.ts → general/podcast.ts} +2 -1
  122. package/src/store/class/general/sortPageable.ts +5 -0
  123. package/src/store/class/general/soundcastCategory.ts +8 -0
  124. package/src/store/class/ouestFrance/ofTag.ts +36 -0
  125. package/src/store/class/ouestFrance/ofTagInfo.ts +9 -0
  126. package/src/store/class/ouestFrance/ofTagPage.ts +7 -0
  127. package/src/store/class/ouestFrance/ofTagSeo.ts +7 -0
  128. package/src/store/class/ouestFrance/ofTagVente.ts +6 -0
  129. package/src/store/class/ouestFrance/ofTagWithParents.ts +26 -0
  130. package/src/store/class/rss/aggregator.ts +28 -0
  131. package/src/store/class/rss/rssEmission.ts +14 -0
  132. package/src/store/class/rss/rssInfo.ts +8 -0
  133. package/src/store/class/{rubriquage.ts → rubrique/rubriquage.ts} +0 -0
  134. package/src/store/class/rubrique/rubriquageFilter.ts +6 -0
  135. package/src/store/class/rubrique/rubrique.ts +8 -0
  136. package/src/store/class/stat/statArrayIncome.ts +6 -0
  137. package/src/store/class/stat/statArrayObject.ts +34 -0
  138. package/src/store/class/stat/statGraph.ts +7 -0
  139. package/src/store/class/{person.ts → user/person.ts} +2 -2
  140. package/src/store/class/user/profile.ts +12 -0
  141. package/src/store/class/user/userKeycloak.ts +24 -0
  142. package/src/store/paramStore.ts +1 -1
  143. package/src/store/typeAppStore.ts +10 -10
  144. package/src/store/class/comment.ts +0 -16
  145. package/src/store/class/conference.ts +0 -31
  146. package/src/store/class/customPlayer.ts +0 -8
  147. package/src/store/class/fetchParam.ts +0 -33
  148. package/src/store/class/media.ts +0 -14
  149. package/src/store/class/organisation.ts +0 -19
  150. package/src/store/class/rubriquageFilter.ts +0 -6
  151. package/src/store/class/rubrique.ts +0 -9
@@ -43,20 +43,12 @@
43
43
  {{ $t('Emission with episode published :') }}
44
44
  </div>
45
45
  <div class="d-flex align-items-center">
46
- <div class="flex-shrink">
47
- <input
48
- id="search-from-checkbox"
49
- v-model="isFrom"
50
- type="checkbox"
51
- class="form-check-input"
52
- >
53
- <label
54
- class="form-check-label"
55
- for="search-from-checkbox"
56
- >{{
57
- $t('From the :')
58
- }}</label>
59
- </div>
46
+ <ClassicCheckbox
47
+ v-model:textInit="isFrom"
48
+ class="flex-shrink-0"
49
+ id-checkbox="search-from-checkbox"
50
+ :label="$t('From the :')"
51
+ />
60
52
  <DatePicker
61
53
  v-model="fromDate"
62
54
  class="ps-3 pe-3"
@@ -75,20 +67,12 @@
75
67
  </DatePicker>
76
68
  </div>
77
69
  <div class="d-flex align-items-center">
78
- <div class="flex-shrink">
79
- <input
80
- id="search-to-checkbox"
81
- v-model="isTo"
82
- type="checkbox"
83
- class="form-check-input"
84
- >
85
- <label
86
- class="form-check-label"
87
- for="search-to-checkbox"
88
- >{{
89
- $t('To the :')
90
- }}</label>
91
- </div>
70
+ <ClassicCheckbox
71
+ v-model:textInit="isTo"
72
+ class="flex-shrink-0"
73
+ id-checkbox="search-to-checkbox"
74
+ :label="$t('To the :')"
75
+ />
92
76
  <DatePicker
93
77
  v-model="toDate"
94
78
  class="ps-3"
@@ -111,89 +95,39 @@
111
95
  v-if="organisation && organisationRight && !isPodcastmaker"
112
96
  class="d-flex flex-column mt-3"
113
97
  >
114
- <div class="flex-shrink">
115
- <input
116
- id="search-future-checkbox"
117
- v-model="isNotVisible"
118
- type="checkbox"
119
- class="form-check-input"
120
- :disabled="isCheckboxNotValidate && isNotValidate"
121
- >
122
- <label
123
- class="form-check-label"
124
- for="search-future-checkbox"
125
- >{{
126
- textNotVisible
127
- }}</label>
128
- </div>
98
+ <ClassicCheckbox
99
+ v-model:textInit="isNotVisible"
100
+ class="flex-shrink-0"
101
+ id-checkbox="search-future-checkbox"
102
+ :label="textNotVisible"
103
+ :is-disabled="isCheckboxNotValidate && isNotValidate"
104
+ />
129
105
  </div>
130
106
  <div
131
107
  v-if="isCheckboxNotValidate"
132
108
  class="d-flex flex-column mt-3"
133
109
  >
134
- <div class="flex-shrink">
135
- <input
136
- id="search-not-validate-checkbox"
137
- v-model="isNotValidate"
138
- type="checkbox"
139
- class="form-check-input"
140
- >
141
- <label
142
- class="form-check-label"
143
- for="search-not-validate-checkbox"
144
- >{{ textNotValidate }}</label>
145
- </div>
110
+ <ClassicCheckbox
111
+ v-model:textInit="isNotValidate"
112
+ class="flex-shrink-0"
113
+ id-checkbox="search-not-validate-checkbox"
114
+ :label="textNotValidate"
115
+ />
146
116
  </div>
147
117
  </div>
148
118
  <div class="d-flex flex-column">
149
119
  <div class="primary-color mb-2 padding-left-custom-radio">
150
120
  {{ $t('Sort') }}
151
121
  </div>
152
- <div
153
- v-if="isSearchBar"
154
- class="form-check"
155
- >
156
- <input
157
- id="radio_score"
158
- v-model="sort"
159
- class="form-check-input"
160
- type="radio"
161
- name="sortRadio"
162
- value="SCORE"
163
- >
164
- <label
165
- class="form-check-label"
166
- for="radio_score"
167
- >{{ $t('Sort score') }}</label>
168
- </div>
169
- <div class="form-check">
170
- <input
171
- id="radio_podcast"
172
- v-model="sort"
173
- class="form-check-input"
174
- type="radio"
175
- name="sortRadio"
176
- :value="isEmission?'LAST_PODCAST_DESC':'DATE'"
177
- >
178
- <label
179
- class="form-check-label"
180
- for="radio_podcast"
181
- >{{ $t('Sort last') }}</label>
182
- </div>
183
- <div class="form-check">
184
- <input
185
- id="radio_name"
186
- v-model="sort"
187
- class="form-check-input"
188
- type="radio"
189
- name="sortRadio"
190
- value="NAME"
191
- >
192
- <label
193
- class="form-check-label"
194
- for="radio_name"
195
- >{{ $t('Sort name') }}</label>
196
- </div>
122
+ <ClassicRadio
123
+ v-model:textInit="sort"
124
+ id-select="sort-radio"
125
+ :options="isSearchBar? [{title:$t('Sort score'), value:'SCORE'},
126
+ {title:$t('Sort last'), value:isEmission?'LAST_PODCAST_DESC':'DATE'},
127
+ {title:$t('Sort name'), value:'NAME'}]:
128
+ [{title:$t('Sort last'), value:isEmission?'LAST_PODCAST_DESC':'DATE'},
129
+ {title:$t('Sort name'), value:'NAME'}]"
130
+ />
197
131
  </div>
198
132
  </div>
199
133
  </div>
@@ -204,7 +138,9 @@ import { state } from '../../../store/paramStore';
204
138
  import moment from 'moment';
205
139
  import CategoryFilter from './CategoryFilter.vue';
206
140
  import RubriqueFilter from './RubriqueFilter.vue';
207
- import { RubriquageFilter } from '@/store/class/rubriquageFilter';
141
+ import ClassicCheckbox from '../../form/ClassicCheckbox.vue';
142
+ import ClassicRadio from '../../form/ClassicRadio.vue';
143
+ import { RubriquageFilter } from '@/store/class/rubrique/rubriquageFilter';
208
144
  import { DatePicker } from 'v-calendar';
209
145
  import { defineComponent, defineAsyncComponent } from 'vue';
210
146
  const MonetizableFilter = defineAsyncComponent(() => import('./MonetizableFilter.vue'));
@@ -213,7 +149,9 @@ export default defineComponent({
213
149
  MonetizableFilter,
214
150
  DatePicker,
215
151
  CategoryFilter,
216
- RubriqueFilter
152
+ RubriqueFilter,
153
+ ClassicCheckbox,
154
+ ClassicRadio
217
155
  },
218
156
  props: {
219
157
  organisationId: { default: undefined, type: String},
@@ -436,10 +374,6 @@ export default defineComponent({
436
374
  }
437
375
  }
438
376
  padding: 1rem;
439
- .basic-select {
440
- width: 100%;
441
- margin: 0 !important;
442
- }
443
377
 
444
378
  label.wrap {
445
379
  width: 100%;
@@ -1,17 +1,11 @@
1
1
  <template>
2
2
  <div class="d-flex mt-3 align-items-center">
3
- <div class="flex-shrink me-2">
4
- <input
5
- id="search-category-checkbox"
6
- v-model="isCategory"
7
- type="checkbox"
8
- class="form-check-input"
9
- >
10
- <label
11
- class="form-check-label"
12
- for="search-category-checkbox"
13
- >{{ $t('By category') }}</label>
14
- </div>
3
+ <ClassicCheckbox
4
+ v-model:textInit="isCategory"
5
+ class="flex-shrink-0 me-2"
6
+ id-checkbox="search-category-checkbox"
7
+ :label="$t('By category')"
8
+ />
15
9
  <CategoryChooser
16
10
  v-model:categorySelected="iabId"
17
11
  width="auto"
@@ -21,12 +15,14 @@
21
15
  </template>
22
16
 
23
17
  <script lang="ts">
18
+ import ClassicCheckbox from '../../form/ClassicCheckbox.vue';
24
19
  import CategoryChooser from '../categories/CategoryChooser.vue';
25
- import { Category } from '@/store/class/category';
20
+ import { Category } from '@/store/class/general/category';
26
21
  import { defineComponent } from 'vue'
27
22
  export default defineComponent({
28
23
  components: {
29
- CategoryChooser
24
+ CategoryChooser,
25
+ ClassicCheckbox
30
26
  },
31
27
  emits: ['updateCategory'],
32
28
  data() {
@@ -8,7 +8,7 @@
8
8
  <select
9
9
  ref="select"
10
10
  v-model="monetization"
11
- class="basic-select ms-2 mb-0 border c-hand"
11
+ class="ms-2 mb-0 c-hand"
12
12
  @change="onChange"
13
13
  >
14
14
  <option
@@ -10,22 +10,13 @@
10
10
  :all="true"
11
11
  @selected="onOrganisationSelected"
12
12
  />
13
- <div
13
+ <ClassicCheckbox
14
14
  v-if="!!organisationId"
15
+ v-model:textInit="keepOrganisation"
15
16
  class="m-3"
16
- >
17
- <input
18
- id="orgaCheck"
19
- v-model="keepOrganisation"
20
- type="checkbox"
21
- class="form-check-input"
22
- @click="onKeepOrganisation"
23
- >
24
- <label
25
- class="form-check-label"
26
- for="orgaCheck"
27
- />
28
- </div>
17
+ id-checkbox="organisation-checkbox"
18
+ @clickAction="onKeepOrganisation"
19
+ />
29
20
  <div
30
21
  v-if="showBubble"
31
22
  class="filter-speech-bubble"
@@ -37,36 +28,29 @@
37
28
  }}
38
29
  </div>
39
30
  </div>
40
- <div class="d-flex align-items-center flex-grow">
41
- <label
42
- for="search"
43
- class="d-inline"
44
- :aria-label="$t('Search')"
45
- />
46
- <input
47
- id="search"
48
- ref="search"
49
- class="filter-search-input input-no-outline"
50
- :placeholder="searchText"
51
- :value="searchPattern"
52
- :readonly="notInitFocus"
53
- @input="
54
- event => $emit('updateSearchPattern', event.target.value)
55
- "
56
- >
57
- </div>
31
+ <ClassicSearch
32
+ v-model:textInit="queryIntern"
33
+ class="d-flex align-items-center flex-grow-1"
34
+ :autofocus="true"
35
+ id-checkbox="productor-search-input"
36
+ :label="searchText"
37
+ />
58
38
  </div>
59
39
  </template>
60
40
 
61
41
  <script lang="ts">
42
+ import ClassicSearch from '../../form/ClassicSearch.vue';
62
43
  import { state } from '../../../store/paramStore';
63
44
  import { orgaFilter } from '../../mixins/organisationFilter';
64
- import { Organisation } from '@/store/class/organisation';
45
+ import { Organisation } from '@/store/class/general/organisation';
65
46
  import { defineComponent, defineAsyncComponent } from 'vue';
66
47
  const OrganisationChooser = defineAsyncComponent(() => import('../organisation/OrganisationChooser.vue'));
48
+ const ClassicCheckbox = defineAsyncComponent(() => import('../../form/ClassicCheckbox.vue'));
67
49
  export default defineComponent({
68
50
  components: {
69
51
  OrganisationChooser,
52
+ ClassicSearch,
53
+ ClassicCheckbox
70
54
  },
71
55
  mixins:[orgaFilter],
72
56
 
@@ -82,7 +66,7 @@ export default defineComponent({
82
66
  keepOrganisation: false as boolean,
83
67
  showBubble: false as boolean,
84
68
  imgUrl: '' as string,
85
- notInitFocus: true as boolean
69
+ queryIntern: '' as string,
86
70
  };
87
71
  },
88
72
 
@@ -102,6 +86,9 @@ export default defineComponent({
102
86
  },
103
87
  },
104
88
  watch: {
89
+ queryIntern(): void {
90
+ this.$emit('updateSearchPattern', this.queryIntern);
91
+ },
105
92
  filterOrga(): void {
106
93
  if (this.filterOrga) {
107
94
  this.keepOrganisation = true;
@@ -117,12 +104,6 @@ export default defineComponent({
117
104
  this.keepOrganisation = true;
118
105
  }
119
106
  },
120
- mounted() {
121
- if (this.$refs.search) {
122
- (this.$refs.search as HTMLElement).focus();
123
- this.notInitFocus = false;
124
- }
125
- },
126
107
  methods: {
127
108
  onOrganisationSelected(organisation: Organisation): void {
128
109
  if (this.$route.query.productor) {
@@ -3,7 +3,7 @@
3
3
  <label class="wrap">
4
4
  <select
5
5
  v-model="rubriquageId"
6
- class="basic-select ms-2 mb-0 border c-hand"
6
+ class="ms-2 mb-0 c-hand"
7
7
  @change="onRubriquageSelected"
8
8
  >
9
9
  <option
@@ -17,7 +17,7 @@
17
17
  />
18
18
  </label>
19
19
  <template v-if="rubriquageId">
20
- <div class="ms-3 flex-shrink">
20
+ <div class="ms-3 flex-shrink-0">
21
21
  {{ $t('By rubric') }}
22
22
  </div>
23
23
  <RubriqueChooser
@@ -46,8 +46,8 @@
46
46
  </template>
47
47
 
48
48
  <script lang="ts">
49
- import { Rubriquage } from '@/store/class/rubriquage';
50
- import { Rubrique } from '@/store/class/rubrique';
49
+ import { Rubriquage } from '@/store/class/rubrique/rubriquage';
50
+ import { Rubrique } from '@/store/class/rubrique/rubrique';
51
51
  import { defineComponent, defineAsyncComponent } from 'vue';
52
52
  const RubriqueChooser = defineAsyncComponent(() => import('../rubriques/RubriqueChooser.vue'));
53
53
  export default defineComponent({
@@ -3,18 +3,12 @@
3
3
  v-if="organisationId && rubriquageData"
4
4
  class="d-flex mt-3 align-items-center"
5
5
  >
6
- <div class="flex-shrink">
7
- <input
8
- id="search-rubriquage-checkbox"
9
- v-model="isRubriquage"
10
- type="checkbox"
11
- class="form-check-input"
12
- >
13
- <label
14
- class="form-check-label"
15
- for="search-rubriquage-checkbox"
16
- >{{ $t('By topic') }}</label>
17
- </div>
6
+ <ClassicCheckbox
7
+ v-model:textInit="isRubriquage"
8
+ class="flex-shrink-0"
9
+ id-checkbox="search-rubriquage-checkbox"
10
+ :label="$t('By topic')"
11
+ />
18
12
  <div
19
13
  v-if="isRubriquage"
20
14
  class="d-flex flex-column mb-2"
@@ -44,13 +38,15 @@
44
38
 
45
39
  <script lang="ts">
46
40
  import octopusApi from '@saooti/octopus-api';
47
- import { Rubriquage } from '@/store/class/rubriquage';
48
- import { RubriquageFilter } from '@/store/class/rubriquageFilter';
41
+ import ClassicCheckbox from '../../form/ClassicCheckbox.vue';
42
+ import { Rubriquage } from '@/store/class/rubrique/rubriquage';
43
+ import { RubriquageFilter } from '@/store/class/rubrique/rubriquageFilter';
49
44
  import { defineComponent, defineAsyncComponent } from 'vue';
50
45
  const RubriqueChoice = defineAsyncComponent(() => import('./RubriqueChoice.vue'));
51
46
  export default defineComponent({
52
47
  components: {
53
48
  RubriqueChoice,
49
+ ClassicCheckbox
54
50
  },
55
51
  props: {
56
52
  organisationId: { default: undefined, type: String},
@@ -34,7 +34,7 @@ import octopusApi from '@saooti/octopus-api';
34
34
  import PodcastItem from '../podcasts/PodcastItem.vue';
35
35
  import { state } from '../../../store/paramStore';
36
36
 
37
- import { Podcast } from '@/store/class/podcast';
37
+ import { Podcast } from '@/store/class/general/podcast';
38
38
  import { defineComponent } from 'vue'
39
39
  export default defineComponent({
40
40
  name: 'LiveHorizontalList',
@@ -131,8 +131,8 @@ import moment from 'moment';
131
131
  // @ts-ignore
132
132
  import humanizeDuration from 'humanize-duration';
133
133
  import { displayMethods } from '../../mixins/functions';
134
- import { Podcast } from '@/store/class/podcast';
135
- import { Participant } from '@/store/class/participant';
134
+ import { Podcast } from '@/store/class/general/podcast';
135
+ import { Participant } from '@/store/class/general/participant';
136
136
 
137
137
  import { defineComponent, defineAsyncComponent } from 'vue';
138
138
  const RecordingItemButton = defineAsyncComponent(() => import('@/components/display/studio/RecordingItemButton.vue'));
@@ -116,7 +116,7 @@ import LiveItem from './LiveItem.vue';
116
116
  import octopusApi from '@saooti/octopus-api';
117
117
  import moment from 'moment';
118
118
  import { state } from '../../../store/paramStore';
119
- import { Conference } from '@/store/class/conference';
119
+ import { Conference } from '@/store/class/conference/conference';
120
120
  import { defineComponent } from 'vue'
121
121
  export default defineComponent({
122
122
  name: 'LiveList',
@@ -119,7 +119,7 @@ import { selenium } from '../../mixins/functions';
119
119
  import VueMultiselect from 'vue-multiselect';
120
120
  import octopusApi from '@saooti/octopus-api';
121
121
  import { state } from '../../../store/paramStore';
122
- import { Organisation } from '@/store/class/organisation';
122
+ import { Organisation } from '@/store/class/general/organisation';
123
123
 
124
124
  const ELEMENTS_COUNT = 50;
125
125
  const DEFAULT_ORGANISATION_ID = "";
@@ -7,7 +7,7 @@
7
7
  <select
8
8
  :id="'organisation_chooser_light' + page"
9
9
  v-model="actual"
10
- class="basic-select mb-0 c-hand"
10
+ class="mb-0 c-hand border-0"
11
11
  @change="onOrganisationSelected"
12
12
  >
13
13
  <option :value="organisation.id">
@@ -28,7 +28,7 @@
28
28
  <script lang="ts">
29
29
  import octopusApi from '@saooti/octopus-api';
30
30
 
31
- import { Organisation } from '@/store/class/organisation';
31
+ import { Organisation } from '@/store/class/general/organisation';
32
32
  import { defineComponent } from 'vue'
33
33
  export default defineComponent({
34
34
  props: {
@@ -83,4 +83,10 @@ export default defineComponent({
83
83
  })
84
84
  </script>
85
85
 
86
- <style lang="scss"></style>
86
+ <style lang="scss" scoped>
87
+ select {
88
+ -webkit-appearance: none;
89
+ -moz-appearance: none;
90
+ appearance: none;
91
+ }
92
+ </style>
@@ -63,7 +63,7 @@
63
63
 
64
64
  <script lang="ts">
65
65
  import octopusApi from '@saooti/octopus-api';
66
- import { Participant } from '@/store/class/participant';
66
+ import { Participant } from '@/store/class/general/participant';
67
67
  import { state } from '../../../store/paramStore';
68
68
  import { displayMethods } from '../../mixins/functions';
69
69
  import { defineComponent } from 'vue'
@@ -43,7 +43,7 @@
43
43
  import octopusApi from '@saooti/octopus-api';
44
44
  import ParticipantItem from './ParticipantItem.vue';
45
45
 
46
- import { Participant } from '@/store/class/participant';
46
+ import { Participant } from '@/store/class/general/participant';
47
47
  import { defineComponent } from 'vue'
48
48
  export default defineComponent({
49
49
  name: 'ParticipantList',
@@ -49,7 +49,7 @@
49
49
  <!-- eslint-enable -->
50
50
  </div>
51
51
  </router-link>
52
- <div class="flex-grow" />
52
+ <div class="flex-grow-1" />
53
53
  <router-link
54
54
  v-if="!isPodcastmaker && playlist.organisation"
55
55
  :to="{
@@ -68,7 +68,7 @@
68
68
  </template>
69
69
 
70
70
  <script lang="ts">
71
- import { Playlist } from '@/store/class/playlist';
71
+ import { Playlist } from '@/store/class/general/playlist';
72
72
  import { state } from '../../../store/paramStore';
73
73
  import { displayMethods } from '../../mixins/functions';
74
74
  import { defineComponent } from 'vue'
@@ -43,7 +43,7 @@ import octopusApi from '@saooti/octopus-api';
43
43
  import PlaylistItem from './PlaylistItem.vue';
44
44
  import { state } from '../../../store/paramStore';
45
45
 
46
- import { Playlist } from '@/store/class/playlist';
46
+ import { Playlist } from '@/store/class/general/playlist';
47
47
  import { defineComponent } from 'vue'
48
48
  export default defineComponent({
49
49
  name: 'PlaylistList',
@@ -30,25 +30,13 @@
30
30
  >
31
31
  {{ $t('Number podcasts', { nb: podcasts.length }) + $t('sort by score') }}
32
32
  </div>
33
- <div
33
+ <ClassicSearch
34
34
  v-if="notEmptyPlaylist"
35
- class="d-flex position-relative width-600 align-self-baseline"
36
- >
37
- <label
38
- for="search"
39
- class="d-inline"
40
- :aria-label="$t('Search')"
41
- />
42
- <input
43
- id="search"
44
- v-model="searchPattern"
45
- :placeholder="$t('Search')"
46
- class="filter-search-input input-no-outline flex-grow"
47
- >
48
- <div
49
- class="saooti-search-bounty filter-list-search-icon search-icon-container"
50
- />
51
- </div>
35
+ v-model:textInit="searchPattern"
36
+ class="width-600 align-self-baseline"
37
+ id-checkbox="podcast-list-search"
38
+ :label="$t('Search')"
39
+ />
52
40
  <ul
53
41
  v-show="loaded"
54
42
  class="podcast-list"
@@ -78,15 +66,16 @@
78
66
  import octopusApi from '@saooti/octopus-api';
79
67
  import PodcastItem from '../podcasts/PodcastItem.vue';
80
68
  import { state } from '../../../store/paramStore';
81
-
82
- import { Podcast } from '@/store/class/podcast';
83
- import { Playlist } from '@/store/class/playlist';
69
+ import ClassicSearch from '../../form/ClassicSearch.vue';
70
+ import { Podcast } from '@/store/class/general/podcast';
71
+ import { Playlist } from '@/store/class/general/playlist';
84
72
  import { defineComponent } from 'vue'
85
73
  export default defineComponent({
86
74
  name: 'PodcastList',
87
75
 
88
76
  components: {
89
77
  PodcastItem,
78
+ ClassicSearch
90
79
  },
91
80
 
92
81
  props: {
@@ -23,7 +23,7 @@
23
23
  </template>
24
24
 
25
25
  <script lang="ts">
26
- import { Participant } from '@/store/class/participant';
26
+ import { Participant } from '@/store/class/general/participant';
27
27
  import { defineComponent } from 'vue'
28
28
  export default defineComponent({
29
29
  name: 'AnimatorsItem',
@@ -6,6 +6,7 @@
6
6
  {{ title }}
7
7
  <span
8
8
  :id="idPopover"
9
+ tabindex="-1"
9
10
  class="saooti-help m-0"
10
11
  :aria-label="$t('Help')"
11
12
  />
@@ -54,7 +55,7 @@
54
55
 
55
56
  <script lang="ts">
56
57
  import Popover from '../../misc/Popover.vue';
57
- import { Participant } from '@/store/class/participant';
58
+ import { Participant } from '@/store/class/general/participant';
58
59
  import { defineComponent } from 'vue'
59
60
  export default defineComponent({
60
61
  name: 'ParticipantDescription',