@saooti/octopus-sdk 30.0.5 → 30.0.9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +5 -0
- package/index.ts +13 -2
- package/package.json +1 -1
- package/src/assets/bootstrap-diff.scss +17 -25
- package/src/assets/form.scss +7 -52
- package/src/assets/general.scss +56 -170
- package/src/assets/live.scss +39 -0
- package/src/assets/modal.scss +14 -18
- package/src/assets/multiselect.scss +30 -77
- package/src/assets/octopus-library.scss +1 -0
- package/src/assets/share.scss +149 -267
- package/src/assets/transition.scss +95 -1
- package/src/components/display/categories/CategoryChooser.vue +1 -1
- package/src/components/display/categories/CategoryList.vue +2 -4
- package/src/components/display/comments/CommentInput.vue +2 -2
- package/src/components/display/comments/CommentItem.vue +7 -6
- package/src/components/display/comments/CommentParentInfo.vue +1 -1
- package/src/components/display/comments/CommentPlayer.vue +1 -1
- package/src/components/display/edit/EditCommentBox.vue +8 -16
- package/src/components/display/emission/EmissionChooser.vue +1 -3
- package/src/components/display/emission/EmissionInlineList.vue +12 -3
- package/src/components/display/emission/EmissionItem.vue +22 -64
- package/src/components/display/emission/EmissionList.vue +59 -68
- package/src/components/display/emission/EmissionPlayerItem.vue +10 -9
- package/src/components/display/filter/AdvancedSearch.vue +50 -150
- package/src/components/display/filter/CategoryFilter.vue +9 -13
- package/src/components/display/filter/MonetizableFilter.vue +3 -5
- package/src/components/display/filter/ProductorSearch.vue +20 -40
- package/src/components/display/filter/RubriqueChoice.vue +6 -8
- package/src/components/display/filter/RubriqueFilter.vue +8 -13
- package/src/components/display/live/CountDown.vue +4 -2
- package/src/components/display/live/LiveHorizontalList.vue +1 -1
- package/src/components/display/live/LiveItem.vue +4 -4
- package/src/components/display/live/LiveList.vue +84 -214
- package/src/components/display/organisation/OrganisationChooser.vue +5 -23
- package/src/components/display/organisation/OrganisationChooserLight.vue +8 -2
- package/src/components/display/participant/ParticipantItem.vue +7 -19
- package/src/components/display/participant/ParticipantList.vue +39 -52
- package/src/components/display/playlist/PlaylistItem.vue +2 -2
- package/src/components/display/playlist/PlaylistList.vue +8 -14
- package/src/components/display/playlist/PodcastList.vue +21 -40
- package/src/components/display/podcasts/AnimatorsItem.vue +0 -1
- package/src/components/display/podcasts/ParticipantDescription.vue +5 -16
- package/src/components/display/podcasts/PodcastFilterList.vue +20 -63
- package/src/components/display/podcasts/PodcastImage.vue +27 -84
- package/src/components/display/podcasts/PodcastInlineList.vue +14 -36
- package/src/components/display/podcasts/PodcastItem.vue +5 -5
- package/src/components/display/podcasts/PodcastList.vue +7 -14
- package/src/components/display/podcasts/PodcastModuleBox.vue +9 -28
- package/src/components/display/podcasts/TagList.vue +2 -3
- package/src/components/display/rubriques/RubriqueChooser.vue +2 -2
- package/src/components/display/rubriques/RubriqueList.vue +5 -25
- package/src/components/display/sharing/PlayerParameters.vue +30 -71
- package/src/components/display/sharing/ShareButtons.vue +22 -46
- package/src/components/display/sharing/ShareDistribution.vue +1 -7
- package/src/components/display/sharing/SharePlayer.vue +10 -19
- package/src/components/display/sharing/SharePlayerColors.vue +4 -8
- package/src/components/display/sharing/SharePlayerTypes.vue +1 -2
- package/src/components/display/sharing/SubscribeButtons.vue +2 -4
- package/src/components/form/ClassicCheckbox.vue +61 -0
- package/src/components/form/ClassicLoading.vue +28 -0
- package/src/components/form/ClassicRadio.vue +61 -0
- package/src/components/form/ClassicSearch.vue +82 -0
- package/src/components/misc/ErrorMessage.vue +4 -1
- package/src/components/misc/Footer.vue +26 -35
- package/src/components/misc/HomeDropdown.vue +42 -91
- package/src/components/misc/LeftMenu.vue +108 -141
- package/src/components/misc/Player.vue +15 -29
- package/src/components/misc/PlayerButtons.vue +14 -37
- package/src/components/misc/PlayerClockAndTimeline.vue +1 -1
- package/src/components/misc/PlayerProgressBar.vue +15 -50
- package/src/components/misc/Popover.vue +8 -2
- package/src/components/misc/TopBar.vue +140 -222
- package/src/components/misc/modal/NewsletterModal.vue +13 -27
- package/src/components/pages/Category.vue +3 -8
- package/src/components/pages/Emission.vue +12 -24
- package/src/components/pages/Emissions.vue +8 -17
- package/src/components/pages/Home.vue +1 -3
- package/src/components/pages/Lives.vue +1 -4
- package/src/components/pages/Participant.vue +19 -27
- package/src/components/pages/Participants.vue +7 -15
- package/src/components/pages/Playlist.vue +16 -29
- package/src/components/pages/Playlists.vue +1 -11
- package/src/components/pages/Podcast.vue +16 -30
- package/src/components/pages/Podcasts.vue +9 -23
- package/src/components/pages/Search.vue +26 -64
- package/src/sass/_variables.scss +0 -1
- package/src/store/class/general/media.ts +1 -1
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
<template>
|
|
2
|
-
<
|
|
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
|
|
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-
|
|
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-
|
|
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
|
-
</
|
|
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
|
-
|
|
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
|
|
8
|
-
|
|
9
|
-
|
|
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
|
-
<
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
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
|
-
<
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
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
|
-
<
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
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
|
-
<
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
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
|
|
114
|
+
<div class="primary-color mb-2">
|
|
150
115
|
{{ $t('Sort') }}
|
|
151
116
|
</div>
|
|
152
|
-
<
|
|
153
|
-
v-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
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,39 +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
|
-
|
|
432
|
-
|
|
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
|
-
.basic-select {
|
|
440
|
-
width: 100%;
|
|
441
|
-
margin: 0 !important;
|
|
442
|
-
}
|
|
443
|
-
|
|
444
|
-
label.wrap {
|
|
445
|
-
width: 100%;
|
|
446
|
-
margin: 0.5em 0;
|
|
447
|
-
position: relative;
|
|
448
|
-
}
|
|
449
|
-
}
|
|
450
|
-
|
|
451
|
-
@media (min-width: 401px) {
|
|
452
|
-
label.wrap {
|
|
453
|
-
position: relative;
|
|
454
|
-
margin: 0;
|
|
455
|
-
}
|
|
456
355
|
}
|
|
457
356
|
select {
|
|
458
357
|
-webkit-appearance: none;
|
|
459
358
|
-moz-appearance: none;
|
|
460
359
|
appearance: none;
|
|
360
|
+
padding-right: 40px;
|
|
461
361
|
}
|
|
462
362
|
}
|
|
463
363
|
</style>
|
|
@@ -1,17 +1,11 @@
|
|
|
1
1
|
<template>
|
|
2
2
|
<div class="d-flex mt-3 align-items-center">
|
|
3
|
-
<
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
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="
|
|
6
|
+
<label class="position-relative">
|
|
8
7
|
<select
|
|
9
8
|
ref="select"
|
|
10
9
|
v-model="monetization"
|
|
11
|
-
class="
|
|
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
|
|
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
|
-
<
|
|
12
|
+
<ClassicCheckbox
|
|
14
13
|
v-if="!!organisationId"
|
|
14
|
+
v-model:textInit="keepOrganisation"
|
|
15
15
|
class="m-3"
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
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
|
-
<
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
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
|
-
|
|
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="
|
|
3
|
+
<label class="position-relative">
|
|
4
4
|
<select
|
|
5
5
|
v-model="rubriquageId"
|
|
6
|
-
class="
|
|
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
|
|
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
|
|
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
|
-
<
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
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);
|
|
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;
|