@saooti/octopus-sdk 30.0.6 → 30.0.10

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 (87) hide show
  1. package/README.md +5 -1
  2. package/index.ts +13 -2
  3. package/package.json +1 -1
  4. package/src/assets/bootstrap-diff.scss +17 -25
  5. package/src/assets/form.scss +7 -37
  6. package/src/assets/general.scss +56 -170
  7. package/src/assets/live.scss +39 -0
  8. package/src/assets/modal.scss +14 -18
  9. package/src/assets/multiselect.scss +30 -77
  10. package/src/assets/octopus-library.scss +1 -0
  11. package/src/assets/share.scss +149 -267
  12. package/src/assets/transition.scss +95 -1
  13. package/src/components/display/categories/CategoryChooser.vue +1 -1
  14. package/src/components/display/categories/CategoryList.vue +2 -4
  15. package/src/components/display/comments/CommentInput.vue +2 -2
  16. package/src/components/display/comments/CommentItem.vue +6 -6
  17. package/src/components/display/comments/CommentParentInfo.vue +1 -1
  18. package/src/components/display/comments/CommentPlayer.vue +1 -1
  19. package/src/components/display/edit/EditCommentBox.vue +8 -16
  20. package/src/components/display/emission/EmissionChooser.vue +1 -3
  21. package/src/components/display/emission/EmissionInlineList.vue +12 -3
  22. package/src/components/display/emission/EmissionItem.vue +22 -64
  23. package/src/components/display/emission/EmissionList.vue +59 -68
  24. package/src/components/display/emission/EmissionPlayerItem.vue +10 -9
  25. package/src/components/display/filter/AdvancedSearch.vue +50 -146
  26. package/src/components/display/filter/CategoryFilter.vue +9 -13
  27. package/src/components/display/filter/MonetizableFilter.vue +3 -5
  28. package/src/components/display/filter/ProductorSearch.vue +20 -40
  29. package/src/components/display/filter/RubriqueChoice.vue +6 -8
  30. package/src/components/display/filter/RubriqueFilter.vue +8 -13
  31. package/src/components/display/live/CountDown.vue +4 -2
  32. package/src/components/display/live/LiveHorizontalList.vue +1 -1
  33. package/src/components/display/live/LiveItem.vue +4 -4
  34. package/src/components/display/live/LiveList.vue +84 -214
  35. package/src/components/display/organisation/OrganisationChooser.vue +5 -23
  36. package/src/components/display/organisation/OrganisationChooserLight.vue +8 -2
  37. package/src/components/display/participant/ParticipantItem.vue +7 -19
  38. package/src/components/display/participant/ParticipantList.vue +39 -52
  39. package/src/components/display/playlist/PlaylistItem.vue +2 -2
  40. package/src/components/display/playlist/PlaylistList.vue +8 -14
  41. package/src/components/display/playlist/PodcastList.vue +21 -40
  42. package/src/components/display/podcasts/AnimatorsItem.vue +0 -1
  43. package/src/components/display/podcasts/ParticipantDescription.vue +4 -16
  44. package/src/components/display/podcasts/PodcastFilterList.vue +20 -63
  45. package/src/components/display/podcasts/PodcastImage.vue +27 -84
  46. package/src/components/display/podcasts/PodcastInlineList.vue +14 -36
  47. package/src/components/display/podcasts/PodcastItem.vue +5 -5
  48. package/src/components/display/podcasts/PodcastList.vue +7 -14
  49. package/src/components/display/podcasts/PodcastModuleBox.vue +9 -28
  50. package/src/components/display/podcasts/TagList.vue +2 -3
  51. package/src/components/display/rubriques/RubriqueChooser.vue +2 -2
  52. package/src/components/display/rubriques/RubriqueList.vue +5 -25
  53. package/src/components/display/sharing/PlayerParameters.vue +30 -71
  54. package/src/components/display/sharing/ShareButtons.vue +21 -45
  55. package/src/components/display/sharing/ShareDistribution.vue +1 -7
  56. package/src/components/display/sharing/SharePlayer.vue +10 -19
  57. package/src/components/display/sharing/SharePlayerColors.vue +4 -8
  58. package/src/components/display/sharing/SharePlayerTypes.vue +1 -2
  59. package/src/components/display/sharing/SubscribeButtons.vue +2 -4
  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 +4 -1
  65. package/src/components/misc/Footer.vue +26 -35
  66. package/src/components/misc/HomeDropdown.vue +42 -91
  67. package/src/components/misc/LeftMenu.vue +108 -141
  68. package/src/components/misc/Player.vue +15 -29
  69. package/src/components/misc/PlayerButtons.vue +14 -37
  70. package/src/components/misc/PlayerClockAndTimeline.vue +1 -1
  71. package/src/components/misc/PlayerProgressBar.vue +15 -50
  72. package/src/components/misc/TopBar.vue +140 -222
  73. package/src/components/misc/modal/NewsletterModal.vue +13 -27
  74. package/src/components/pages/Category.vue +3 -8
  75. package/src/components/pages/Emission.vue +12 -24
  76. package/src/components/pages/Emissions.vue +8 -17
  77. package/src/components/pages/Home.vue +1 -3
  78. package/src/components/pages/Lives.vue +1 -4
  79. package/src/components/pages/Participant.vue +19 -27
  80. package/src/components/pages/Participants.vue +7 -15
  81. package/src/components/pages/Playlist.vue +16 -29
  82. package/src/components/pages/Playlists.vue +1 -11
  83. package/src/components/pages/Podcast.vue +16 -30
  84. package/src/components/pages/Podcasts.vue +9 -23
  85. package/src/components/pages/Search.vue +26 -64
  86. package/src/sass/_variables.scss +0 -1
  87. package/src/store/class/general/media.ts +1 -1
@@ -1,5 +1,5 @@
1
1
  <template>
2
- <li
2
+ <div
3
3
  class="emission-player-container shadow-element"
4
4
  >
5
5
  <router-link
@@ -17,7 +17,7 @@
17
17
  {{ rubriqueName }}
18
18
  </div>
19
19
  <div
20
- class="img-box no-border-round"
20
+ class="img-box rounded-0"
21
21
  :style="{
22
22
  'background-image':
23
23
  'url(\'' + emission.imageUrl + '?dummy=' + dummyParam + '\')',
@@ -31,7 +31,7 @@
31
31
  </div>
32
32
  </div>
33
33
  <div class="d-flex flex-column p-2">
34
- <div class="fw-bold text-uppercase text-ellipsis">
34
+ <div class="fw-bold text-uppercase text-truncate">
35
35
  {{ emission.name }}
36
36
  </div>
37
37
  <div
@@ -52,7 +52,7 @@
52
52
  :key="p.podcastId"
53
53
  class="border-top emission-item-border-color p-2 secondary-bg d-flex"
54
54
  >
55
- <div class="d-flex justify-content-between flex-grow">
55
+ <div class="d-flex justify-content-between flex-grow-1">
56
56
  <router-link
57
57
  :to="{
58
58
  name: 'podcast',
@@ -61,7 +61,7 @@
61
61
  }"
62
62
  class="d-flex flex-column define-width text-dark"
63
63
  >
64
- <div class="fw-bold text-ellipsis">
64
+ <div class="fw-bold text-truncate">
65
65
  {{ p.title }}
66
66
  </div>
67
67
  <div
@@ -117,7 +117,7 @@
117
117
  {{ $t('More episodes') }}
118
118
  </router-link>
119
119
  </div>
120
- </li>
120
+ </div>
121
121
  </template>
122
122
 
123
123
  <script lang="ts">
@@ -238,6 +238,9 @@ export default defineComponent({
238
238
  height: min-content;
239
239
  border-radius: 0.8rem;
240
240
  overflow: hidden;
241
+ .emission-item-border-color {
242
+ border-color: #ddd;
243
+ }
241
244
  .emission-description {
242
245
  overflow: hidden;
243
246
  margin-top: 0.5em;
@@ -266,7 +269,5 @@ export default defineComponent({
266
269
  }
267
270
  }
268
271
  }
269
- .emission-item-border-color {
270
- border-color: #ddd;
271
- }
272
+
272
273
  </style>
@@ -1,18 +1,14 @@
1
1
  <template>
2
2
  <div>
3
3
  <div
4
- class="d-flex justify-content-center mb-3"
4
+ class="d-flex justify-content-center mb-3 text-secondary c-hand"
5
5
  @click="showFilters = !showFilters"
6
6
  >
7
- <div class="text-secondary c-hand">
8
- {{ $t('Advanced filters') }}
9
- </div>
10
- <div
11
- class="text-secondary c-hand align-self-center large-font-size"
7
+ <div>{{ $t('Advanced filters') }}</div>
8
+ <div
9
+ class="h3 saooti-arrow_down m-0"
12
10
  :class="{ 'arrow-transform': showFilters }"
13
- >
14
- <div class="saooti-arrow_down saooti-arrow_down-margin" />
15
- </div>
11
+ />
16
12
  </div>
17
13
  <div
18
14
  v-show="showFilters"
@@ -23,8 +19,7 @@
23
19
  {{ $t('Filter') }}
24
20
  </div>
25
21
  <MonetizableFilter
26
- v-if="isMonetizableFilter"
27
- :is-education="isEducation"
22
+ v-if="isMonetizableFilter && !isEducation"
28
23
  :is-emission="isEmission"
29
24
  @updateMonetization="updateMonetization"
30
25
  />
@@ -43,20 +38,12 @@
43
38
  {{ $t('Emission with episode published :') }}
44
39
  </div>
45
40
  <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>
41
+ <ClassicCheckbox
42
+ v-model:textInit="isFrom"
43
+ class="flex-shrink-0"
44
+ id-checkbox="search-from-checkbox"
45
+ :label="$t('From the :')"
46
+ />
60
47
  <DatePicker
61
48
  v-model="fromDate"
62
49
  class="ps-3 pe-3"
@@ -75,20 +62,12 @@
75
62
  </DatePicker>
76
63
  </div>
77
64
  <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>
65
+ <ClassicCheckbox
66
+ v-model:textInit="isTo"
67
+ class="flex-shrink-0"
68
+ id-checkbox="search-to-checkbox"
69
+ :label="$t('To the :')"
70
+ />
92
71
  <DatePicker
93
72
  v-model="toDate"
94
73
  class="ps-3"
@@ -111,89 +90,39 @@
111
90
  v-if="organisation && organisationRight && !isPodcastmaker"
112
91
  class="d-flex flex-column mt-3"
113
92
  >
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>
93
+ <ClassicCheckbox
94
+ v-model:textInit="isNotVisible"
95
+ class="flex-shrink-0"
96
+ id-checkbox="search-future-checkbox"
97
+ :label="textNotVisible"
98
+ :is-disabled="isCheckboxNotValidate && isNotValidate"
99
+ />
129
100
  </div>
130
101
  <div
131
102
  v-if="isCheckboxNotValidate"
132
103
  class="d-flex flex-column mt-3"
133
104
  >
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>
105
+ <ClassicCheckbox
106
+ v-model:textInit="isNotValidate"
107
+ class="flex-shrink-0"
108
+ id-checkbox="search-not-validate-checkbox"
109
+ :label="textNotValidate"
110
+ />
146
111
  </div>
147
112
  </div>
148
113
  <div class="d-flex flex-column">
149
- <div class="primary-color mb-2 padding-left-custom-radio">
114
+ <div class="primary-color mb-2">
150
115
  {{ $t('Sort') }}
151
116
  </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>
117
+ <ClassicRadio
118
+ v-model:textInit="sort"
119
+ id-select="sort-radio"
120
+ :options="isSearchBar? [{title:$t('Sort score'), value:'SCORE'},
121
+ {title:$t('Sort last'), value:isEmission?'LAST_PODCAST_DESC':'DATE'},
122
+ {title:$t('Sort name'), value:'NAME'}]:
123
+ [{title:$t('Sort last'), value:isEmission?'LAST_PODCAST_DESC':'DATE'},
124
+ {title:$t('Sort name'), value:'NAME'}]"
125
+ />
197
126
  </div>
198
127
  </div>
199
128
  </div>
@@ -204,6 +133,8 @@ import { state } from '../../../store/paramStore';
204
133
  import moment from 'moment';
205
134
  import CategoryFilter from './CategoryFilter.vue';
206
135
  import RubriqueFilter from './RubriqueFilter.vue';
136
+ import ClassicCheckbox from '../../form/ClassicCheckbox.vue';
137
+ import ClassicRadio from '../../form/ClassicRadio.vue';
207
138
  import { RubriquageFilter } from '@/store/class/rubrique/rubriquageFilter';
208
139
  import { DatePicker } from 'v-calendar';
209
140
  import { defineComponent, defineAsyncComponent } from 'vue';
@@ -213,7 +144,9 @@ export default defineComponent({
213
144
  MonetizableFilter,
214
145
  DatePicker,
215
146
  CategoryFilter,
216
- RubriqueFilter
147
+ RubriqueFilter,
148
+ ClassicCheckbox,
149
+ ClassicRadio
217
150
  },
218
151
  props: {
219
152
  organisationId: { default: undefined, type: String},
@@ -237,10 +170,6 @@ export default defineComponent({
237
170
  return {
238
171
  isFrom: false as boolean,
239
172
  isTo: false as boolean,
240
- lang: {
241
- ok: this.$t('Validate') as string,
242
- cancel: this.$t('Cancel') as string,
243
- },
244
173
  fromDate: moment().subtract(10, 'days').toISOString() as string,
245
174
  toDate: moment().toISOString() as string,
246
175
  isNotVisible: false as boolean,
@@ -401,18 +330,6 @@ export default defineComponent({
401
330
  </script>
402
331
 
403
332
  <style lang="scss">
404
-
405
- .padding-left-custom-radio {
406
- padding-left: 1.5rem;
407
- @media (max-width: 720px) {
408
- padding-left: 0;
409
- margin-top: 1rem;
410
- }
411
- }
412
- .large-font-size {
413
- font-size: 1.3rem;
414
- }
415
-
416
333
  .advanced-search-container {
417
334
  background: #fff;
418
335
  border-radius: 0.8rem;
@@ -425,35 +342,22 @@ export default defineComponent({
425
342
  flex-wrap: wrap;
426
343
  justify-content: flex-start;
427
344
  }
428
-
429
345
  @media (max-width: 450px) {
430
346
  flex-direction: column;
431
- .vdatetime {
432
- padding: 0.5em 0 !important;
347
+ padding: 1rem;
348
+ .vdatetime, label {
349
+ padding: 0.5rem 0 !important;
433
350
  width: 100%;
434
351
  input {
435
352
  width: 100%;
436
353
  }
437
354
  }
438
- padding: 1rem;
439
-
440
- label.wrap {
441
- width: 100%;
442
- margin: 0.5em 0;
443
- position: relative;
444
- }
445
- }
446
-
447
- @media (min-width: 401px) {
448
- label.wrap {
449
- position: relative;
450
- margin: 0;
451
- }
452
355
  }
453
356
  select {
454
357
  -webkit-appearance: none;
455
358
  -moz-appearance: none;
456
359
  appearance: none;
360
+ padding-right: 40px;
457
361
  }
458
362
  }
459
363
  </style>
@@ -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
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() {
@@ -1,14 +1,13 @@
1
1
  <template>
2
2
  <div
3
- v-if="!isEducation"
4
3
  class="d-flex align-items-center"
5
4
  >
6
5
  <div>{{ $t('Advertising') + ' :' }}</div>
7
- <label class="wrap">
6
+ <label class="position-relative">
8
7
  <select
9
8
  ref="select"
10
9
  v-model="monetization"
11
- class="basic-select ms-2 mb-0 border c-hand"
10
+ class="ms-2 mb-0 c-hand"
12
11
  @change="onChange"
13
12
  >
14
13
  <option
@@ -24,7 +23,7 @@
24
23
  <option value="YES">{{ $t('Authorized advertising') }}</option>
25
24
  <option value="NO">{{ $t('Prohibited advertising') }}</option>
26
25
  </select>
27
- <div class="saooti-arrow_down octopus-arrow-down-2 classic-select" />
26
+ <div class="saooti-arrow_down octopus-arrow-down" />
28
27
  </label>
29
28
  </div>
30
29
  </template>
@@ -34,7 +33,6 @@ import { defineComponent } from 'vue'
34
33
  export default defineComponent({
35
34
  props: {
36
35
  isEmission: { default: false, type: Boolean},
37
- isEducation: { default: false, type: Boolean},
38
36
  },
39
37
  emits: ['updateMonetization'],
40
38
 
@@ -7,25 +7,15 @@
7
7
  <OrganisationChooser
8
8
  :defaultanswer="$t('No organisation filter')"
9
9
  :value="organisationId"
10
- :all="true"
11
10
  @selected="onOrganisationSelected"
12
11
  />
13
- <div
12
+ <ClassicCheckbox
14
13
  v-if="!!organisationId"
14
+ v-model:textInit="keepOrganisation"
15
15
  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>
16
+ id-checkbox="organisation-checkbox"
17
+ @clickAction="onKeepOrganisation"
18
+ />
29
19
  <div
30
20
  v-if="showBubble"
31
21
  class="filter-speech-bubble"
@@ -37,36 +27,29 @@
37
27
  }}
38
28
  </div>
39
29
  </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>
30
+ <ClassicSearch
31
+ v-model:textInit="queryIntern"
32
+ class="d-flex align-items-center flex-grow-1"
33
+ :autofocus="true"
34
+ id-checkbox="productor-search-input"
35
+ :label="searchText"
36
+ />
58
37
  </div>
59
38
  </template>
60
39
 
61
40
  <script lang="ts">
41
+ import ClassicSearch from '../../form/ClassicSearch.vue';
62
42
  import { state } from '../../../store/paramStore';
63
43
  import { orgaFilter } from '../../mixins/organisationFilter';
64
44
  import { Organisation } from '@/store/class/general/organisation';
65
45
  import { defineComponent, defineAsyncComponent } from 'vue';
66
46
  const OrganisationChooser = defineAsyncComponent(() => import('../organisation/OrganisationChooser.vue'));
47
+ const ClassicCheckbox = defineAsyncComponent(() => import('../../form/ClassicCheckbox.vue'));
67
48
  export default defineComponent({
68
49
  components: {
69
50
  OrganisationChooser,
51
+ ClassicSearch,
52
+ ClassicCheckbox
70
53
  },
71
54
  mixins:[orgaFilter],
72
55
 
@@ -82,7 +65,7 @@ export default defineComponent({
82
65
  keepOrganisation: false as boolean,
83
66
  showBubble: false as boolean,
84
67
  imgUrl: '' as string,
85
- notInitFocus: true as boolean
68
+ queryIntern: '' as string,
86
69
  };
87
70
  },
88
71
 
@@ -102,6 +85,9 @@ export default defineComponent({
102
85
  },
103
86
  },
104
87
  watch: {
88
+ queryIntern(): void {
89
+ this.$emit('updateSearchPattern', this.queryIntern);
90
+ },
105
91
  filterOrga(): void {
106
92
  if (this.filterOrga) {
107
93
  this.keepOrganisation = true;
@@ -117,12 +103,6 @@ export default defineComponent({
117
103
  this.keepOrganisation = true;
118
104
  }
119
105
  },
120
- mounted() {
121
- if (this.$refs.search) {
122
- (this.$refs.search as HTMLElement).focus();
123
- this.notInitFocus = false;
124
- }
125
- },
126
106
  methods: {
127
107
  onOrganisationSelected(organisation: Organisation): void {
128
108
  if (this.$route.query.productor) {
@@ -1,9 +1,9 @@
1
1
  <template>
2
2
  <div class="d-flex align-items-center">
3
- <label class="wrap">
3
+ <label class="position-relative">
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
@@ -13,11 +13,11 @@
13
13
  >{{ rubriquage.title }}</option>
14
14
  </select>
15
15
  <div
16
- class="saooti-arrow_down octopus-arrow-down-2 classic-select"
16
+ class="saooti-arrow_down octopus-arrow-down"
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
@@ -36,12 +36,10 @@
36
36
  </template>
37
37
  <button
38
38
  v-if="index"
39
- class="btn btn-circle primary-color ms-1"
39
+ class="btn admin-button ms-1 saooti-bin"
40
40
  aria-label="delete"
41
41
  @click="deleteRubriquage"
42
- >
43
- <span class="saooti-bin" />
44
- </button>
42
+ />
45
43
  </div>
46
44
  </template>
47
45
 
@@ -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,6 +38,7 @@
44
38
 
45
39
  <script lang="ts">
46
40
  import octopusApi from '@saooti/octopus-api';
41
+ import ClassicCheckbox from '../../form/ClassicCheckbox.vue';
47
42
  import { Rubriquage } from '@/store/class/rubrique/rubriquage';
48
43
  import { RubriquageFilter } from '@/store/class/rubrique/rubriquageFilter';
49
44
  import { defineComponent, defineAsyncComponent } from 'vue';
@@ -51,6 +46,7 @@ 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},
@@ -65,7 +61,6 @@ export default defineComponent({
65
61
  rubriqueId: [] as Array<number>,
66
62
  arrayFilter: [] as Array<RubriquageFilter>,
67
63
  rubriquageData: [] as Array<Rubriquage>,
68
- reset: false as boolean,
69
64
  saveOrganisation: "" as string,
70
65
  isInit: true as boolean,
71
66
  isInternChanged: false as boolean,
@@ -3,7 +3,6 @@
3
3
  <h3>{{ $t('This live will start') }}</h3>
4
4
  <h3
5
5
  v-if="countdownTimer"
6
- ref="countdown"
7
6
  >
8
7
  {{
9
8
  $t('In days hours minutes seconds', {
@@ -44,6 +43,10 @@ export default defineComponent({
44
43
  this.timer();
45
44
  }, 1000);
46
45
  },
46
+ unmounted() {
47
+ clearInterval((this.countdownTimer as unknown as number));
48
+ },
49
+
47
50
  methods: {
48
51
  timer(): void {
49
52
  this.days = Math.floor(this.seconds / 24 / 60 / 60);
@@ -52,7 +55,6 @@ export default defineComponent({
52
55
  const minutesLeft = Math.floor(hoursLeft - this.hours * 3600);
53
56
  this.minutes = Math.floor(minutesLeft / 60);
54
57
  this.remainingSeconds = this.seconds % 60;
55
- /* this.$refs.countdown.innerHTML = this.pad(days) + ":" + this.pad(hours) + ":" + this.pad(minutes) + ":" + this.pad(remainingSeconds); */
56
58
  if (0 === this.seconds) {
57
59
  clearInterval((this.countdownTimer as unknown as number));
58
60
  this.countdownTimer = undefined;
@@ -16,7 +16,7 @@
16
16
  <button
17
17
  v-show="!allFetched"
18
18
  class="btn"
19
- :class="buttonPlus ? 'btn-linkPlus mt-3' : 'btn-more'"
19
+ :class="buttonPlus ? 'btn-link-plus mt-3' : 'btn-more'"
20
20
  :disabled="inFetching"
21
21
  :aria-label="$t('See more')"
22
22
  @click="displayMore"