@saooti/octopus-sdk 33.2.8 → 33.2.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.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@saooti/octopus-sdk",
3
- "version": "33.2.8",
3
+ "version": "33.2.10",
4
4
  "private": false,
5
5
  "description": "Javascript SDK for using octopus",
6
6
  "author": "Saooti",
@@ -12,23 +12,21 @@
12
12
  class="d-flex flex-grow-1 text-dark"
13
13
  >
14
14
  <img
15
+ width="260"
16
+ height="260"
15
17
  v-lazy="proxyImageUrl(emission.imageUrl, '260')"
16
18
  class="img-box"
17
19
  :title="$t('Emission name image', {name:emission.name})"
18
20
  :alt="$t('Emission name image', {name:emission.name})"
19
21
  >
20
22
  <div class="emission-item-text">
21
- <div class="d-flex align-items-center">
23
+ <div class="d-flex align-items-center emission-name">
22
24
  <span
23
25
  v-if="!activeEmission && !isPodcastmaker && editRight"
24
26
  :title="$t('Emission have not podcasts')"
25
27
  class="saooti-warning text-danger me-1"
26
28
  />
27
- <div
28
- class="emission-name"
29
- >
30
- {{ emission.name }}
31
- </div>
29
+ {{ emission.name }}
32
30
  </div>
33
31
  <div
34
32
  ref="descriptionEmissionContainer"
@@ -41,18 +39,16 @@
41
39
  />
42
40
  <!-- eslint-enable -->
43
41
  </div>
44
- <div class="flex-grow-1" />
45
42
  <router-link
46
43
  v-if="!isPodcastmaker"
44
+ class="emission-producer mt-auto"
47
45
  :to="{
48
46
  name: 'productor',
49
47
  params: { productorId: emission.orga.id },
50
48
  query: { productor: filterOrga },
51
49
  }"
52
50
  >
53
- <div class="emission-producer">
54
- © {{ emission.orga.name }}
55
- </div>
51
+ © {{ emission.orga.name }}
56
52
  </router-link>
57
53
  </div>
58
54
  </router-link>
@@ -20,6 +20,8 @@
20
20
  class="img-box rounded-0"
21
21
  >
22
22
  <img
23
+ width="260"
24
+ height="260"
23
25
  v-lazy="proxyImageUrl(emission.imageUrl, '260')"
24
26
  :title="$t('Emission name image', {name:emission.name})"
25
27
  :alt="$t('Emission name image', {name:emission.name})"
@@ -44,6 +44,8 @@
44
44
  <template #singleLabel="{ option }">
45
45
  <div class="multiselect-octopus-proposition">
46
46
  <img
47
+ width="32"
48
+ height="32"
47
49
  v-if="!light"
48
50
  v-lazy="proxyImageUrl(option.imageUrl, '32')"
49
51
  class="option__image"
@@ -64,6 +66,8 @@
64
66
  "
65
67
  >
66
68
  <img
69
+ width="32"
70
+ height="32"
67
71
  v-if="!light"
68
72
  v-lazy="proxyImageUrl(option.imageUrl, '32')"
69
73
  class="option__image"
@@ -13,20 +13,20 @@
13
13
  :title="$t('Participant')"
14
14
  >
15
15
  <img
16
+ width="200"
17
+ height="200"
16
18
  v-lazy="proxyImageUrl(participant.imageUrl, '200')"
17
19
  :title="$t('Animator image')"
18
20
  :alt="$t('Animator image')"
19
21
  class="img-box-circle"
20
22
  >
21
- <div class="d-flex align-items-center">
23
+ <div class="d-flex align-items-center participant-name">
22
24
  <span
23
25
  v-if="!activeParticipant && !isPodcastmaker && editRight"
24
26
  :title="$t('Participant have not podcasts')"
25
27
  class="saooti-warning text-danger me-1"
26
28
  />
27
- <div class="participant-name">
28
- {{ name }}
29
- </div>
29
+ {{ name }}
30
30
  </div>
31
31
  <div
32
32
  ref="descriptionParticipantContainer"
@@ -13,21 +13,21 @@
13
13
  class="d-flex flex-grow-1 text-dark"
14
14
  >
15
15
  <img
16
+ width="260"
17
+ height="260"
16
18
  v-lazy="proxyImageUrl(playlist.imageUrl, '260')"
17
19
  :title="$t('Playlist name image', {name:name})"
18
20
  :alt="$t('Playlist name image', {name:name})"
19
21
  class="img-box"
20
22
  >
21
23
  <div class="emission-item-text">
22
- <div class="d-flex align-items-center">
24
+ <div class="d-flex align-items-center emission-name">
23
25
  <span
24
26
  v-if="!activePlaylist && !isPodcastmaker"
25
27
  :title="$t('Playlist have not podcasts')"
26
28
  class="saooti-warning text-danger me-1"
27
29
  />
28
- <div class="emission-name">
29
- {{ name }}
30
- </div>
30
+ {{ name }}
31
31
  </div>
32
32
  <div
33
33
  ref="descriptionPlaylistContainer"
@@ -40,7 +40,6 @@
40
40
  />
41
41
  <!-- eslint-enable -->
42
42
  </div>
43
- <div class="flex-grow-1" />
44
43
  <router-link
45
44
  v-if="!isPodcastmaker && playlist.organisation"
46
45
  :to="{
@@ -48,11 +47,9 @@
48
47
  params: { productorId: playlist.organisation.id },
49
48
  query: { productor: $store.state.filter.organisationId },
50
49
  }"
51
- class="text-dark"
50
+ class="emission-producer text-primary mt-auto"
52
51
  >
53
- <div class="emission-producer text-primary">
54
- © {{ playlist.organisation.name }}
55
- </div>
52
+ © {{ playlist.organisation.name }}
56
53
  </router-link>
57
54
  </div>
58
55
  </router-link>
@@ -10,10 +10,9 @@
10
10
  query: { productor: $store.state.filter.organisationId },
11
11
  }"
12
12
  :title="$t('Participant')"
13
+ class="podcast-item-animator text-dark"
13
14
  >
14
- <div class="podcast-item-animator text-dark">
15
- {{ animatorName }}
16
- </div>
15
+ {{ animatorName }}
17
16
  </router-link>
18
17
  </div>
19
18
  </template>
@@ -38,10 +37,6 @@ export default defineComponent({
38
37
  <style lang="scss">
39
38
  .octopus-app{
40
39
  .podcast-item-animator {
41
- display: flex;
42
- align-items: flex-start;
43
- justify-content: center;
44
-
45
40
  font-size: 0.55rem;
46
41
  font-weight: 300;
47
42
  text-transform: capitalize;
@@ -4,6 +4,8 @@
4
4
  class="img-box d-flex flex-column justify-content-start align-items-start position-relative justify rounded-lg flex-shrink-0 float-start"
5
5
  >
6
6
  <img
7
+ width="260"
8
+ height="260"
7
9
  v-lazy="proxyImageUrl(podcast.imageUrl,'260')"
8
10
  class="img-box"
9
11
  :alt="$t('Episode name image', {name:podcast.title})"
@@ -36,37 +38,21 @@
36
38
  @click="play"
37
39
  >
38
40
  <div
39
- v-if="!isLiveToBeRecorded"
41
+ :title="!playingPodcast? $t('Play') : textVisible"
40
42
  class="icon-container"
43
+ :class="{
44
+ 'saooti-play text-primary': !playingPodcast,
45
+ 'special-icon-play-button': !classicPodcastPlay,
46
+ iconName:!classicPodcastPlay || isLiveToBeRecorded,
47
+ 'bloc-paddle':playingPodcast,
48
+ 'error-icon':isLiveToBeRecorded
49
+ }"
41
50
  >
42
- <div
43
- v-show="!playingPodcast"
44
- :title="$t('Play')"
45
- class="saooti-play text-primary"
46
- />
47
- <div
48
- v-if="!classicPodcastPlay"
49
- class="special-icon-play-button"
50
- :class="iconName"
51
- />
52
- <div
53
- v-show="playingPodcast"
54
- class="bloc-paddle"
55
- >
51
+ <template v-if="playingPodcast">
56
52
  <span class="paddle1" />
57
53
  <span class="paddle2" />
58
54
  <span class="paddle3" />
59
- </div>
60
- </div>
61
- <div
62
- v-else
63
- class="icon-container error-icon"
64
- >
65
- <div
66
- :title="textVisible"
67
- class="big-icon-error"
68
- :class="iconName"
69
- />
55
+ </template>
70
56
  </div>
71
57
  <div
72
58
  v-if="!classicPodcastPlay"
@@ -343,13 +329,14 @@ export default defineComponent({
343
329
  }
344
330
 
345
331
  .icon-container {
346
- background: #00000050;
332
+ background: #00000050 !important;
347
333
  border-radius: 50%;
348
334
  height: 3rem;
349
335
  width: 3rem;
350
336
  display: flex;
351
337
  align-items: center;
352
338
  justify-content: center;
339
+ z-index: 2;
353
340
  &.error-icon {
354
341
  background: #00000050 !important;
355
342
  cursor: default !important;
@@ -357,16 +344,11 @@ export default defineComponent({
357
344
  &:hover {
358
345
  background: #00000030;
359
346
  }
360
- > .saooti-play {
347
+ &.saooti-play {
361
348
  font-size: 2em;
362
349
  position: relative;
363
350
  right: -0.2rem;
364
351
  }
365
- .big-icon-error {
366
- font-size: 2em;
367
- position: relative;
368
- }
369
- z-index: 2;
370
352
  }
371
353
  }
372
354
  }
@@ -1,5 +1,6 @@
1
1
  <template>
2
2
  <div
3
+ id="podcast-item-container"
3
4
  class="podcast-item-container"
4
5
  :class="[
5
6
  podcastShadow ? 'shadow-element' : '',
@@ -10,18 +11,18 @@
10
11
  >
11
12
  <PodcastImage
12
13
  :podcast="podcast"
13
- :hide-play="!podcastItemDescription || (podcastItemDescription && (!hover || !description))"
14
+ :hide-play="!podcastItemDescription || (podcastItemDescription && (!hoverDesc || !description))"
14
15
  :display-description="0!==description.length && podcastItemDescription"
15
16
  :arrow-direction="arrowDirection"
16
17
  @hideDescription="hideDescription"
17
18
  @showDescription="showDescription"
18
19
  />
19
20
  <div
20
- v-if="podcastItemDescription"
21
+ v-if="podcastItemDescription && hoverDesc"
21
22
  ref="descriptionPodcastContainer"
22
23
  class="description-podcast-item html-wysiwyg-content"
23
24
  :class="[
24
- hover && ''!==description ? 'visible' : 'invisible',
25
+ hoverDesc && ''!==description ? 'visible' : 'invisible',
25
26
  isDescriptionBig ? 'after-podcast-description' : '',
26
27
  ]"
27
28
  >
@@ -67,7 +68,8 @@ export default defineComponent({
67
68
 
68
69
  data() {
69
70
  return {
70
- hover: false as boolean,
71
+ firstDisplayDesc : false as boolean,
72
+ hoverDesc: false as boolean,
71
73
  arrowDirection: 'up' as string,
72
74
  isDescriptionBig: false as boolean,
73
75
  };
@@ -91,24 +93,28 @@ export default defineComponent({
91
93
  },
92
94
  },
93
95
 
94
- mounted() {
95
- if(!this.podcastItemDescription){return}
96
- const podcastDesc = (this.$refs.descriptionPodcast as HTMLElement);
97
- const podcastDescContainer = (this.$refs.descriptionPodcastContainer as HTMLElement);
98
- if (podcastDesc?.clientHeight > podcastDescContainer?.clientHeight) {
99
- this.isDescriptionBig = true;
100
- }
101
- },
102
96
  methods: {
97
+ initDescription():void{
98
+ if(this.firstDisplayDesc){return;}
99
+ const podcastDesc = (this.$refs.descriptionPodcast as HTMLElement);
100
+ const podcastDescContainer = (this.$refs.descriptionPodcastContainer as HTMLElement);
101
+ if (podcastDesc?.clientHeight > podcastDescContainer?.clientHeight) {
102
+ this.isDescriptionBig = true;
103
+ }
104
+ this.firstDisplayDesc=true;
105
+ },
103
106
  showDescription(): void {
104
107
  if(!this.podcastItemDescription){return}
105
108
  this.arrowDirection = 'down';
106
- this.hover = true;
109
+ this.hoverDesc = true;
110
+ this.$nextTick(() => {
111
+ this.initDescription();
112
+ });
107
113
  },
108
114
  hideDescription(): void {
109
115
  if(!this.podcastItemDescription){return}
110
116
  this.arrowDirection = 'up';
111
- this.hover = false;
117
+ this.hoverDesc = false;
112
118
  },
113
119
  },
114
120
  })
@@ -1,51 +1,47 @@
1
1
  <template>
2
- <div class="d-contents podcast-item-info">
3
- <div class="d-flex justify-content-between flex-wrap text-secondary mb-3">
4
- <div class="me-3 h6">
5
- {{ date }}
6
- </div>
7
- <div
8
- v-if="0 !== durationString.length"
9
- class="h6"
10
- >
11
- {{ durationString }}
12
- </div>
2
+ <div class="d-flex justify-content-between flex-wrap text-secondary m-2 mb-3">
3
+ <div class="me-3 h6">
4
+ {{ date }}
13
5
  </div>
14
- <AnimatorsItem
15
- v-if="animators && 0!==animators.length"
16
- :animator="animators[0]"
17
- />
6
+ <div
7
+ v-if="0 !== durationString.length"
8
+ class="h6"
9
+ >
10
+ {{ durationString }}
11
+ </div>
12
+ </div>
13
+ <AnimatorsItem
14
+ v-if="animators && 0!==animators.length"
15
+ :animator="animators[0]"
16
+ />
17
+ <router-link
18
+ :to="{
19
+ name: 'podcast',
20
+ params: { podcastId: podcastId },
21
+ query: { productor: filterOrga },
22
+ }"
23
+ class="text-dark flex-grow-1 title-podcast-item"
24
+ >
25
+ {{ title }}
26
+ </router-link>
27
+ <PodcastPlayBar
28
+ :podcast-id="podcastId"
29
+ :duration="duration"
30
+ class="mx-2"
31
+ />
32
+ <div class="d-flex justify-content-between">
33
+ <div v-if="isPodcastmaker" class="useless-div-for-podcastmaker" />
18
34
  <router-link
35
+ v-if="!isPodcastmaker"
19
36
  :to="{
20
- name: 'podcast',
21
- params: { podcastId: podcastId },
37
+ name: 'productor',
38
+ params: { productorId: podcastOrganisationId },
22
39
  query: { productor: filterOrga },
23
40
  }"
24
- class="text-dark d-flex flex-column flex-grow-1"
41
+ class="text-dark producer-podcast-item"
25
42
  >
26
- <div class="title-podcast-item">
27
- {{ title }}
28
- </div>
43
+ {{ '© ' + podcastOrganisationName }}
29
44
  </router-link>
30
- <PodcastPlayBar
31
- :podcast-id="podcastId"
32
- :duration="duration"
33
- class="mx-2"
34
- />
35
- <div class="d-flex justify-content-between">
36
- <div class="useless-div-for-podcastmaker" />
37
- <router-link
38
- v-if="!isPodcastmaker"
39
- :to="{
40
- name: 'productor',
41
- params: { productorId: podcastOrganisationId },
42
- query: { productor: filterOrga },
43
- }"
44
- class="text-dark producer-podcast-item"
45
- >
46
- <div>{{ '© ' + podcastOrganisationName }}</div>
47
- </router-link>
48
- </div>
49
45
  </div>
50
46
  </template>
51
47
 
@@ -130,13 +126,6 @@ export default defineComponent({
130
126
 
131
127
  <style lang="scss">
132
128
  .octopus-app{
133
- .podcast-item-info {
134
- .text-secondary {
135
- margin: 0.5rem !important;
136
- }
137
- .saooti-pin {
138
- font-size: 22px;
139
- }
140
129
  .title-podcast-item {
141
130
  font-weight: 700;
142
131
  margin: 0.25rem 0.5rem 0.5rem;
@@ -155,7 +144,7 @@ export default defineComponent({
155
144
  margin: 0.2rem 0.5rem 0.5rem;
156
145
  font-size: 0.55rem;
157
146
  color: #666;
147
+ margin-left: auto;
158
148
  }
159
149
  }
160
- }
161
150
  </style>
@@ -16,6 +16,8 @@
16
16
  role="button"
17
17
  >
18
18
  <img
19
+ width="20"
20
+ height="20"
19
21
  v-if="isOuestFranceTag(tag)"
20
22
  class="ouest-france-logo"
21
23
  alt="Ouest France Logo"
@@ -14,6 +14,8 @@
14
14
  :class="icon"
15
15
  />
16
16
  <img
17
+ width="30"
18
+ height="30"
17
19
  v-if="imageUrl"
18
20
  class="img-accordion"
19
21
  :src="imageUrl"
@@ -45,6 +45,8 @@
45
45
  :title="$t('Octopus is ACPM Podcast accredited')"
46
46
  >
47
47
  <img
48
+ width="44"
49
+ height="44"
48
50
  class="acpm_image"
49
51
  src="/img/ACPM.webp"
50
52
  :title="$t('Octopus is ACPM Podcast accredited')"
@@ -7,6 +7,8 @@
7
7
  :to="podcastShareUrl"
8
8
  >
9
9
  <img
10
+ width="48"
11
+ height="48"
10
12
  v-lazy="proxyImageUrl(podcastImage,'48')"
11
13
  :alt="$t('Podcast image')"
12
14
  class="player-image"
@@ -12,6 +12,8 @@
12
12
  :to="podcastShareUrl"
13
13
  >
14
14
  <img
15
+ width="200"
16
+ height="200"
15
17
  v-lazy="proxyImageUrl(podcastImage,'200')"
16
18
  :alt="$t('Podcast image')"
17
19
  class="img-box"
@@ -19,6 +19,8 @@
19
19
  </h2>
20
20
  <div class="mb-5 mt-3 descriptionText">
21
21
  <img
22
+ width="260"
23
+ height="260"
22
24
  v-lazy="proxyImageUrl(imageUrl, '260')"
23
25
  :alt="$t('Emission name image', { name: name })"
24
26
  class="img-box shadow-element float-start me-3 mb-3"
@@ -3,6 +3,8 @@
3
3
  <div class="not-auth-content d-flex-column justify-content-between">
4
4
  <div class="d-flex flex-column justify-content-around">
5
5
  <img
6
+ width="250"
7
+ height="auto"
6
8
  class="logo-octopus"
7
9
  src="/img/logo_octopus_final.svg"
8
10
  :alt="$t('Logo of main page')"
@@ -10,6 +12,8 @@
10
12
  <h2>{{ $t('You do not have the right to access this page' ) }}</h2>
11
13
  </div>
12
14
  <img
15
+ width="600"
16
+ height="auto"
13
17
  class="stop-octopus-img"
14
18
  src="/img/403.webp"
15
19
  :alt="$t('You do not have the right to access this page')"
@@ -10,6 +10,8 @@
10
10
  class="d-flex flex-column align-items-center mb-3"
11
11
  >
12
12
  <img
13
+ width="200"
14
+ height="200"
13
15
  v-lazy="proxyImageUrl(participant.imageUrl, '200')"
14
16
  :title="$t('Animator image')"
15
17
  :alt="$t('Animator image')"
@@ -14,6 +14,8 @@
14
14
  <h2>{{ name }}</h2>
15
15
  <div class="mb-5 mt-3 descriptionText">
16
16
  <img
17
+ width="260"
18
+ height="260"
17
19
  v-lazy="proxyImageUrl(imageUrl, '260')"
18
20
  :alt="$t('Playlist name image', { name: name })"
19
21
  class="img-box shadow-element float-start me-3 mb-3"