@saooti/octopus-sdk 31.0.1 → 31.0.4

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 (70) hide show
  1. package/README.md +19 -1
  2. package/index.ts +8 -2
  3. package/package.json +3 -3
  4. package/src/assets/general.scss +8 -0
  5. package/src/assets/share.scss +21 -0
  6. package/src/components/display/categories/CategoryFilter.vue +14 -12
  7. package/src/components/display/categories/CategoryList.vue +27 -25
  8. package/src/components/display/comments/CommentInput.vue +21 -19
  9. package/src/components/display/comments/CommentList.vue +2 -0
  10. package/src/components/display/comments/CommentPlayer.vue +2 -0
  11. package/src/components/display/emission/EmissionInlineList.vue +32 -29
  12. package/src/components/display/emission/EmissionList.vue +12 -8
  13. package/src/components/display/emission/EmissionPlayerItem.vue +16 -1
  14. package/src/components/display/filter/AdvancedSearch.vue +2 -0
  15. package/src/components/display/filter/CategoryFilter.vue +1 -1
  16. package/src/components/display/filter/ProductorSearch.vue +16 -5
  17. package/src/components/display/filter/RubriqueFilter.vue +1 -1
  18. package/src/components/display/live/LiveHorizontalList.vue +1 -1
  19. package/src/components/display/live/LiveItem.vue +2 -1
  20. package/src/components/display/live/LiveList.vue +51 -41
  21. package/src/components/display/organisation/OrganisationChooser.vue +1 -1
  22. package/src/components/display/organisation/OrganisationChooserLight.vue +28 -19
  23. package/src/components/display/participant/ParticipantItem.vue +2 -0
  24. package/src/components/display/participant/ParticipantList.vue +30 -19
  25. package/src/components/display/playlist/PlaylistList.vue +12 -3
  26. package/src/components/display/playlist/PodcastList.vue +26 -16
  27. package/src/components/display/playlist/PodcastPlaylistInlineList.vue +204 -0
  28. package/src/components/display/podcasts/AnimatorsItem.vue +2 -0
  29. package/src/components/display/podcasts/ParticipantDescription.vue +1 -5
  30. package/src/components/display/podcasts/PodcastImage.vue +2 -1
  31. package/src/components/display/podcasts/PodcastInlineList.vue +40 -28
  32. package/src/components/display/podcasts/PodcastItem.vue +12 -0
  33. package/src/components/display/podcasts/PodcastList.vue +11 -3
  34. package/src/components/display/podcasts/PodcastPlayBar.vue +2 -0
  35. package/src/components/display/podcasts/TagList.vue +2 -0
  36. package/src/components/display/rubriques/RubriqueList.vue +4 -2
  37. package/src/components/display/sharing/PlayerParameters.vue +2 -0
  38. package/src/components/display/sharing/QrCode.vue +7 -0
  39. package/src/components/display/sharing/ShareDistribution.vue +2 -0
  40. package/src/components/display/sharing/SharePlayer.vue +3 -12
  41. package/src/components/display/sharing/SharePlayerTypes.vue +48 -1
  42. package/src/components/form/ClassicSearch.vue +2 -0
  43. package/src/components/misc/ErrorMessage.vue +2 -0
  44. package/src/components/misc/Footer.vue +2 -0
  45. package/src/components/misc/LeftMenu.vue +2 -0
  46. package/src/components/misc/Player.vue +14 -0
  47. package/src/components/misc/PlayerButtons.vue +2 -14
  48. package/src/components/misc/PlayerClockAndTimeline.vue +2 -0
  49. package/src/components/misc/PlayerProgressBar.vue +2 -0
  50. package/src/components/misc/Popover.vue +5 -0
  51. package/src/components/misc/Snackbar.vue +2 -0
  52. package/src/components/misc/TopBar.vue +2 -0
  53. package/src/components/misc/modal/NewsletterModal.vue +11 -3
  54. package/src/components/misc/modal/ShareModalPlayer.vue +2 -0
  55. package/src/components/mixins/handle403.ts +17 -0
  56. package/src/components/pages/Emission.vue +17 -4
  57. package/src/components/pages/Error403Page.vue +24 -0
  58. package/src/components/pages/Participant.vue +19 -4
  59. package/src/components/pages/Playlist.vue +17 -3
  60. package/src/components/pages/Podcast.vue +28 -12
  61. package/src/components/pages/Podcasts.vue +4 -0
  62. package/src/locale/en.ts +1 -0
  63. package/src/locale/fr.ts +1 -0
  64. package/src/locale/it.ts +298 -0
  65. package/src/locale/messages.ts +2 -0
  66. package/src/router/router.ts +6 -0
  67. package/src/store/class/general/customPlayer.ts +2 -1
  68. package/src/store/class/general/organisation.ts +1 -0
  69. package/src/store/paramStore.ts +12 -11
  70. package/src/store/typeAppStore.ts +0 -4
@@ -8,16 +8,12 @@
8
8
  :id="idPopover"
9
9
  tabindex="-1"
10
10
  class="saooti-help m-0"
11
- :title="$t('Help')"
11
+ :title="title"
12
12
  />
13
13
  <span class="mx-1">:</span>
14
14
  <Popover
15
15
  :target="idPopover"
16
16
  >
17
- <div class="text-center font-weight-bold">
18
- {{ title }}
19
- </div>
20
- <hr>
21
17
  <div
22
18
  v-for="participant in participants"
23
19
  :key="'desc-'+participant.participantId"
@@ -286,6 +286,7 @@ export default defineComponent({
286
286
 
287
287
 
288
288
  <style lang="scss">
289
+ .octopus-app{
289
290
  .live-image-status {
290
291
  text-align: center;
291
292
  width: 100%;
@@ -363,5 +364,5 @@ export default defineComponent({
363
364
  z-index: 2;
364
365
  }
365
366
  }
366
-
367
+ }
367
368
  </style>
@@ -55,6 +55,7 @@
55
55
  alignLeft ? 'justify-content-start' : '',
56
56
  overflowScroll ? 'overflowScroll' : '',
57
57
  ]"
58
+ :css="isInlineAnimation"
58
59
  >
59
60
  <PodcastItem
60
61
  v-for="p in podcasts"
@@ -71,13 +72,14 @@
71
72
  {{ buttonText }}
72
73
  <div
73
74
  v-if="buttonPlus"
74
- class="ms-1 saooti-plus"
75
+ class="ms-1 saooti-more"
75
76
  />
76
77
  </router-link>
77
78
  </div>
78
79
  </template>
79
80
 
80
81
  <script lang="ts">
82
+ import { handle403 } from '../../mixins/handle403';
81
83
  import octopusApi from '@saooti/octopus-api';
82
84
  import domHelper from '../../../helper/dom';
83
85
  import PodcastItem from './PodcastItem.vue';
@@ -88,6 +90,7 @@ import { Podcast } from '@/store/class/general/podcast';
88
90
  import { RubriquageFilter } from '@/store/class/rubrique/rubriquageFilter';
89
91
  import { defineComponent } from 'vue'
90
92
  import { RouteLocationRaw } from 'vue-router';
93
+ import { AxiosError } from 'axios';
91
94
  export default defineComponent({
92
95
  name: 'PodcastInlineList',
93
96
 
@@ -96,6 +99,8 @@ export default defineComponent({
96
99
  ClassicLoading
97
100
  },
98
101
 
102
+ mixins: [handle403],
103
+
99
104
  props: {
100
105
  organisationId: { default: undefined, type: String},
101
106
  emissionId: { default: undefined, type: Number},
@@ -137,6 +142,9 @@ export default defineComponent({
137
142
  overflowScroll(): boolean {
138
143
  return (state.emissionPage.overflowScroll as boolean);
139
144
  },
145
+ isInlineAnimation(): boolean {
146
+ return (state.generalParameters.isInlineAnimation as boolean);
147
+ },
140
148
  filterOrga(): string {
141
149
  return this.$store.state.filter.organisationId;
142
150
  },
@@ -207,34 +215,38 @@ export default defineComponent({
207
215
  },
208
216
  methods: {
209
217
  async fetchNext(): Promise<void> {
210
- const data = await octopusApi.fetchPodcasts({
211
- first: this.first,
212
- size: this.size + 1,
213
- organisationId: this.organisation,
214
- emissionId: this.emissionId,
215
- iabId: this.iabId,
216
- rubriqueId: this.rubriqueId.length ?this.rubriqueId:undefined,
217
- rubriquageId: this.rubriquageId.length ?this.rubriquageId : undefined,
218
- noRubriquageId: this.noRubriquageId.length ? this.noRubriquageId : undefined,
219
- sort: this.popularSort ? 'POPULARITY' : 'DATE',
220
- query: this.query,
221
- });
222
- this.loading = false;
223
- this.loaded = true;
224
- this.totalCount = data.count;
225
- if (this.allPodcasts.length + data.result.length < this.totalCount) {
226
- const nexEl = data.result.pop() as Podcast;
227
- this.preloadImage(nexEl.imageUrl?nexEl.imageUrl:'');
228
- }
229
- this.allPodcasts = this.allPodcasts.concat(
230
- data.result.filter((pod: Podcast|null) => null !== pod)
231
- );
232
- if (this.allPodcasts.length <= 3) {
233
- this.alignLeft = true;
234
- } else {
235
- this.alignLeft = false;
218
+ try {
219
+ const data = await octopusApi.fetchPodcasts({
220
+ first: this.first,
221
+ size: this.size + 1,
222
+ organisationId: this.organisation,
223
+ emissionId: this.emissionId,
224
+ iabId: this.iabId,
225
+ rubriqueId: this.rubriqueId.length ?this.rubriqueId:undefined,
226
+ rubriquageId: this.rubriquageId.length ?this.rubriquageId : undefined,
227
+ noRubriquageId: this.noRubriquageId.length ? this.noRubriquageId : undefined,
228
+ sort: this.popularSort ? 'POPULARITY' : 'DATE',
229
+ query: this.query,
230
+ });
231
+ this.loading = false;
232
+ this.loaded = true;
233
+ this.totalCount = data.count;
234
+ if (this.allPodcasts.length + data.result.length < this.totalCount) {
235
+ const nexEl = data.result.pop() as Podcast;
236
+ this.preloadImage(nexEl.imageUrl?nexEl.imageUrl:'');
237
+ }
238
+ this.allPodcasts = this.allPodcasts.concat(
239
+ data.result.filter((pod: Podcast|null) => null !== pod)
240
+ );
241
+ if (this.allPodcasts.length <= 3) {
242
+ this.alignLeft = true;
243
+ } else {
244
+ this.alignLeft = false;
245
+ }
246
+ this.first += this.size;
247
+ } catch (error) {
248
+ this.handle403((error as AxiosError));
236
249
  }
237
- this.first += this.size;
238
250
  },
239
251
  displayPrevious(): void {
240
252
  this.direction = -1;
@@ -197,6 +197,16 @@ export default defineComponent({
197
197
  s: () => 'sec',
198
198
  ms: () => 'ms',
199
199
  },
200
+ shortIt: {
201
+ y: () => 'anni',
202
+ mo: () => 'mesi',
203
+ w: () => 'settimane',
204
+ d: () => 'giorni',
205
+ h: () => 'h',
206
+ m: () => 'min',
207
+ s: () => 'sec',
208
+ ms: () => 'ms',
209
+ },
200
210
  },
201
211
  });
202
212
  }
@@ -243,6 +253,7 @@ export default defineComponent({
243
253
  </script>
244
254
 
245
255
  <style lang="scss">
256
+ .octopus-app{
246
257
  .podcast-item-container {
247
258
  border-radius: 0.8rem;
248
259
  list-style: none;
@@ -308,4 +319,5 @@ export default defineComponent({
308
319
  margin: 0.5rem !important;
309
320
  }
310
321
  }
322
+ }
311
323
  </style>
@@ -33,13 +33,14 @@
33
33
  </template>
34
34
  <div
35
35
  :class="buttonPlus?'ms-1':''"
36
- class="saooti-plus"
36
+ class="saooti-more"
37
37
  />
38
38
  </button>
39
39
  </div>
40
40
  </template>
41
41
 
42
42
  <script lang="ts">
43
+ import { handle403 } from '../../mixins/handle403';
43
44
  import octopusApi from '@saooti/octopus-api';
44
45
  import PodcastItem from './PodcastItem.vue';
45
46
  import { state } from '../../../store/paramStore';
@@ -47,6 +48,7 @@ import ClassicLoading from '../../form/ClassicLoading.vue';
47
48
  import { Podcast } from '@/store/class/general/podcast';
48
49
  import { defineComponent } from 'vue'
49
50
  import { FetchParam } from '@/store/class/general/fetchParam';
51
+ import { AxiosError } from 'axios';
50
52
  export default defineComponent({
51
53
  name: 'PodcastList',
52
54
 
@@ -55,6 +57,8 @@ export default defineComponent({
55
57
  ClassicLoading
56
58
  },
57
59
 
60
+ mixins: [handle403],
61
+
58
62
  props: {
59
63
  first: { default: 0, type: Number},
60
64
  size: { default: 12, type: Number},
@@ -174,8 +178,12 @@ export default defineComponent({
174
178
  if (this.notValid && !this.isProduction) {
175
179
  param.publisherId = this.$store.state.profile.userId;
176
180
  }
177
- const data = await octopusApi.fetchPodcasts(param);
178
- this.afterFetching(reset, data);
181
+ try {
182
+ const data = await octopusApi.fetchPodcasts(param);
183
+ this.afterFetching(reset, data);
184
+ } catch (error) {
185
+ this.handle403((error as AxiosError));
186
+ }
179
187
  },
180
188
  afterFetching(reset: boolean, data: {count: number, result: Array<Podcast>, sort: string}): void {
181
189
  if (reset) {
@@ -84,6 +84,7 @@ export default defineComponent({
84
84
  </script>
85
85
 
86
86
  <style lang="scss">
87
+ .octopus-app{
87
88
  .podcast-play-bar {
88
89
  .progress{
89
90
  height: 6px;
@@ -97,4 +98,5 @@ export default defineComponent({
97
98
  position: absolute;
98
99
  }
99
100
  }
101
+ }
100
102
  </style>
@@ -51,6 +51,7 @@ export default defineComponent({
51
51
  </script>
52
52
 
53
53
  <style lang="scss">
54
+ .octopus-app{
54
55
  .tag-list-component{
55
56
  .ouest-france-logo{
56
57
  width: 20px;
@@ -65,4 +66,5 @@ export default defineComponent({
65
66
  border-radius: 0.5rem;
66
67
  }
67
68
  }
69
+ }
68
70
  </style>
@@ -31,7 +31,7 @@
31
31
  class="dropdown btn-group"
32
32
  >
33
33
  <button
34
- class="btn dropdown-toggle admin-button dropdown-toggle-no-caret saooti-plus"
34
+ class="btn dropdown-toggle admin-button dropdown-toggle-no-caret saooti-more"
35
35
  data-bs-toggle="dropdown"
36
36
  aria-expanded="false"
37
37
  :title="$t('See more')"
@@ -130,7 +130,7 @@ export default defineComponent({
130
130
  this.$store.commit('filterRubrique', newFilter);
131
131
  const queries = this.$route.query;
132
132
  const queryString = newFilter.map(value => value.rubriquageId+':'+value.rubriqueId).join();
133
- this.$router.push({ query: { ...queries, ...{ rubriquesId: queryString }} });
133
+ this.$router.replace({ query: { ...queries, ...{ rubriquesId: queryString }} });
134
134
  this.selectNewRubriquage();
135
135
  },
136
136
  selectNewRubriquage(){
@@ -179,6 +179,7 @@ export default defineComponent({
179
179
  </script>
180
180
 
181
181
  <style lang="scss">
182
+ .octopus-app{
182
183
  #rubrique-list-container {
183
184
  display: flex;
184
185
  justify-content: flex-start;
@@ -210,4 +211,5 @@ export default defineComponent({
210
211
  background: #eee !important;
211
212
  }
212
213
  }
214
+ }
213
215
  </style>
@@ -157,9 +157,11 @@ export default defineComponent({
157
157
  </script>
158
158
 
159
159
  <style lang="scss">
160
+ .octopus-app{
160
161
  .input-share-player {
161
162
  border: 1px solid #ddd;
162
163
  border-radius: 50px;
163
164
  width: 60px;
164
165
  }
166
+ }
165
167
  </style>
@@ -50,6 +50,9 @@ export default defineComponent({
50
50
  return (state.generalParameters.authenticated as boolean);
51
51
  },
52
52
  },
53
+ created(){
54
+ this.initColor();
55
+ },
53
56
  methods:{
54
57
  download(): void{
55
58
  const link = document.createElement('a');
@@ -62,6 +65,10 @@ export default defineComponent({
62
65
  }
63
66
  },
64
67
  async initColor(): Promise<void> {
68
+ if(state.generalParameters.podcastmaker && state.generalParameters.podcastmakerColor){
69
+ this.color = state.generalParameters.podcastmakerColor;
70
+ return;
71
+ }
65
72
  if (!this.authenticated) return;
66
73
  let data;
67
74
  if(this.$store.state.organisation && this.$store.state.organisation.attributes && Object.keys(this.$store.state.organisation.attributes).length > 1){
@@ -170,6 +170,7 @@ export default defineComponent({
170
170
  </script>
171
171
 
172
172
  <style lang="scss">
173
+ .octopus-app{
173
174
  .sharing-distribution-container {
174
175
  border: 0.05rem solid #dee2e6;
175
176
  border-radius: 0.3rem;
@@ -214,4 +215,5 @@ export default defineComponent({
214
215
  margin: 0.2rem 0.5rem;
215
216
  }
216
217
  }
218
+ }
217
219
  </style>
@@ -33,7 +33,7 @@
33
33
  :podcast="podcast"
34
34
  :emission="emission"
35
35
  :playlist="playlist"
36
- :custom-players="customPlayers"
36
+ :organisation-id="organisationId"
37
37
  />
38
38
  </div>
39
39
  <SharePlayerColors
@@ -82,7 +82,6 @@ import octopusApi from '@saooti/octopus-api';
82
82
  import { Podcast } from '@/store/class/general/podcast';
83
83
  import { Emission } from '@/store/class/general/emission';
84
84
  import { Playlist } from '@/store/class/general/playlist';
85
- import { CustomPlayer } from '@/store/class/general/customPlayer';
86
85
  import { defineComponent, defineAsyncComponent } from 'vue';
87
86
  const ShareModalPlayer = defineAsyncComponent(() => import('../../misc/modal/ShareModalPlayer.vue'));
88
87
  const PlayerParameters = defineAsyncComponent(() => import('./PlayerParameters.vue'));
@@ -119,7 +118,6 @@ export default defineComponent({
119
118
  iFrameNumber: '3' as string,
120
119
  isVisible: false as boolean,
121
120
  displayArticle: true as boolean,
122
- customPlayers: [] as Array<CustomPlayer>,
123
121
  colors: ['#000000', '#ffffff'],
124
122
  };
125
123
  },
@@ -333,15 +331,6 @@ export default defineComponent({
333
331
  } else {
334
332
  this.theme = '#000000';
335
333
  }
336
- let dataFetched = await octopusApi.fetchCustomPlayer('customPlayer/organisation/'+ this.organisationId);
337
- this.customPlayers = dataFetched.content;
338
- const totalCount = dataFetched.totalElements;
339
- let index = 1;
340
- while (totalCount > this.customPlayers.length) {
341
- dataFetched = await octopusApi.fetchCustomPlayer('customPlayer/organisation/'+ this.organisationId+'?start='+index);
342
- this.customPlayers = this.customPlayers.concat(dataFetched.content);
343
- ++index;
344
- }
345
334
  },
346
335
  updateEpisodeNumber(value: string): void {
347
336
  this.episodeNumbers = value;
@@ -364,6 +353,7 @@ export default defineComponent({
364
353
 
365
354
  <style lang="scss">
366
355
  @import '../../../sass/_variables.scss';
356
+ .octopus-app{
367
357
  .sticker {
368
358
  align-self: center;
369
359
  background: $octopus-primary-dark;
@@ -385,4 +375,5 @@ export default defineComponent({
385
375
  .max-iframe {
386
376
  max-width: 300px;
387
377
  }
378
+ }
388
379
  </style>
@@ -48,6 +48,8 @@
48
48
  </template>
49
49
 
50
50
  <script lang="ts">
51
+ import { state } from '../../../store/paramStore';
52
+ import octopusApi from '@saooti/octopus-api';
51
53
  import { Podcast } from '@/store/class/general/podcast';
52
54
  import { CustomPlayer } from '@/store/class/general/customPlayer';
53
55
  import { defineComponent } from 'vue';
@@ -58,12 +60,21 @@ export default defineComponent({
58
60
  podcast: { default: undefined, type: Object as ()=> Podcast},
59
61
  emission: { default: undefined, type: Object as ()=> Emission},
60
62
  playlist: { default: undefined, type: Object as ()=> Playlist},
61
- customPlayers: { default: ()=>[], type: Array as ()=> Array<CustomPlayer>},
62
63
  iFrameModel: { default: 'default', type: String},
64
+ organisationId: { default: undefined, type: String},
63
65
  },
64
66
  emits:['update:iFrameModel'],
65
67
 
68
+ data() {
69
+ return {
70
+ customPlayers: [] as Array<CustomPlayer>,
71
+ };
72
+ },
73
+
66
74
  computed: {
75
+ authenticated(): boolean {
76
+ return (state.generalParameters.authenticated as boolean);
77
+ },
67
78
  customPlayersDisplay(): Array<CustomPlayer>{
68
79
  return this.customPlayers.filter((player: CustomPlayer)=>{
69
80
  return (('EPISODE' === player.typePlayer ||'SUGGESTION' === player.typePlayer) && this.podcast && this.podcast.podcastId) ||
@@ -71,5 +82,41 @@ export default defineComponent({
71
82
  });
72
83
  },
73
84
  },
85
+ async created() {
86
+ await this.initCustomPlayers();
87
+ },
88
+
89
+ methods: {
90
+ async fetchCustomPlayers(type:string, trySelect: boolean): Promise<boolean>{
91
+ let players = await octopusApi.fetchCustomPlayer('customPlayer/type/'+ this.organisationId+'/'+type);
92
+ let playersContent = players.content;
93
+ const totalCount = players.totalElements;
94
+ let index = 1;
95
+ while (totalCount > playersContent.length) {
96
+ players = await octopusApi.fetchCustomPlayer('customPlayer/type/'+ this.organisationId+'/'+type+'?start='+index);
97
+ playersContent = playersContent.concat(players.content);
98
+ ++index;
99
+ }
100
+ this.customPlayers = this.customPlayers.concat(playersContent);
101
+ if(trySelect && this.customPlayers[0] && this.customPlayers[0].selected){
102
+ this.$emit('update:iFrameModel',this.customPlayers[0].customId);
103
+ return false;
104
+ }
105
+ return true;
106
+ },
107
+ async initCustomPlayers(): Promise<void> {
108
+ if (!this.authenticated) return;
109
+ if(this.playlist){
110
+ this.fetchCustomPlayers('PLAYLIST', true);
111
+ }else if(this.emission && !this.podcast){
112
+ this.fetchCustomPlayers('EMISSION', true);
113
+ }else{
114
+ let playerTrySelect = true;
115
+ playerTrySelect = await this.fetchCustomPlayers('EPISODE', playerTrySelect);
116
+ playerTrySelect = await this.fetchCustomPlayers('EMISSION', playerTrySelect);
117
+ playerTrySelect = await this.fetchCustomPlayers('SUGGESTION', playerTrySelect);
118
+ }
119
+ },
120
+ }
74
121
  })
75
122
  </script>
@@ -61,6 +61,7 @@ export default defineComponent({
61
61
  });
62
62
  </script>
63
63
  <style lang="scss">
64
+ .octopus-app{
64
65
  .champs-searchPage{
65
66
  input {
66
67
  border: 2px solid #dee2e6;
@@ -81,4 +82,5 @@ export default defineComponent({
81
82
  margin: 1rem;
82
83
  }
83
84
  }
85
+ }
84
86
  </style>
@@ -28,10 +28,12 @@ export default defineComponent({
28
28
  </script>
29
29
 
30
30
  <style lang="scss">
31
+ .octopus-app{
31
32
  .bg-error-message {
32
33
  background-color: #ffd84a9c;
33
34
  }
34
35
  .alert-text{
35
36
  color: darkred;
36
37
  }
38
+ }
37
39
  </style>
@@ -201,6 +201,7 @@ export default defineComponent({
201
201
  </script>
202
202
 
203
203
  <style lang="scss">
204
+ .octopus-app{
204
205
  #footer{
205
206
  font-size: 0.7rem;
206
207
  .acpm_image {
@@ -221,4 +222,5 @@ export default defineComponent({
221
222
  }
222
223
  }
223
224
  }
225
+ }
224
226
  </style>
@@ -195,6 +195,7 @@ export default defineComponent({
195
195
  </script>
196
196
 
197
197
  <style lang="scss">
198
+ .octopus-app{
198
199
  .left-menu-container {
199
200
  position: fixed;
200
201
  top: 3rem;
@@ -225,4 +226,5 @@ export default defineComponent({
225
226
  width: 94%;
226
227
  }
227
228
  }
229
+ }
228
230
  </style>
@@ -51,6 +51,15 @@
51
51
  :player-error="playerError"
52
52
  :listen-time="listenTime"
53
53
  />
54
+ <div
55
+ class="play-button-box primary-bg text-light"
56
+ @click="stopPlayer"
57
+ >
58
+ <div
59
+ class="saooti-cross"
60
+ :title="$t('Close')"
61
+ />
62
+ </div>
54
63
  <PlayerClockAndTimeline
55
64
  v-model:showTimeline="showTimeline"
56
65
  :comments="comments"
@@ -204,6 +213,9 @@ export default defineComponent({
204
213
  },
205
214
 
206
215
  methods: {
216
+ stopPlayer(): void {
217
+ this.$store.commit('playerPlayPodcast');
218
+ },
207
219
  getListenerId(): string{
208
220
  let listenerId = this.getCookie("octopus_listenerId");
209
221
  if(!listenerId){
@@ -473,6 +485,7 @@ reject('There is an error while reading media content');
473
485
  </script>
474
486
 
475
487
  <style lang="scss">
488
+ .octopus-app{
476
489
  .player-container {
477
490
  position: fixed;
478
491
  overflow: hidden;
@@ -497,4 +510,5 @@ reject('There is an error while reading media content');
497
510
  }
498
511
  }
499
512
  }
513
+ }
500
514
  </style>
@@ -23,16 +23,6 @@
23
23
  }"
24
24
  />
25
25
  </div>
26
- <div
27
- v-if="isPlaying || isPaused"
28
- class="play-button-box primary-bg text-light"
29
- @click="stopPlayer"
30
- >
31
- <div
32
- class="saooti-stop-bounty"
33
- :title="$t('Stop')"
34
- />
35
- </div>
36
26
  </template>
37
27
 
38
28
  <script lang="ts">
@@ -114,9 +104,6 @@ export default defineComponent({
114
104
  this.onPause();
115
105
  }
116
106
  },
117
- stopPlayer(): void {
118
- this.$store.commit('playerPlayPodcast');
119
- },
120
107
  onPlay(): void {
121
108
  this.$store.commit('playerPause', false);
122
109
  },
@@ -128,6 +115,7 @@ export default defineComponent({
128
115
  </script>
129
116
 
130
117
  <style lang="scss">
118
+ .octopus-app{
131
119
  .player-image {
132
120
  border-radius: 0.2rem;
133
121
  height: 2.4rem;
@@ -151,5 +139,5 @@ export default defineComponent({
151
139
  flex-shrink: 0;
152
140
  cursor: pointer;
153
141
  }
154
-
142
+ }
155
143
  </style>
@@ -61,6 +61,7 @@ export default defineComponent({
61
61
  </script>
62
62
  <style lang="scss">
63
63
  @import '../../sass/_variables.scss';
64
+ .octopus-app{
64
65
  .player-container {
65
66
  .timeline-button {
66
67
  background: black;
@@ -82,4 +83,5 @@ export default defineComponent({
82
83
  }
83
84
  }
84
85
  }
86
+ }
85
87
  </style>
@@ -146,6 +146,7 @@ export default defineComponent({
146
146
  </script>
147
147
 
148
148
  <style lang="scss">
149
+ .octopus-app{
149
150
  .player-grow-content {
150
151
  display: flex;
151
152
  flex-direction: column;
@@ -165,4 +166,5 @@ export default defineComponent({
165
166
  position: absolute;
166
167
  }
167
168
  }
169
+ }
168
170
  </style>
@@ -106,8 +106,13 @@ export default defineComponent({
106
106
  })
107
107
  </script>
108
108
  <style lang="scss">
109
+ .octopus-app{
109
110
  .popover{
110
111
  max-height: 80vh;
111
112
  overflow: auto;
113
+ hr{
114
+ width: 100px;
115
+ }
116
+ }
112
117
  }
113
118
  </style>
@@ -160,7 +160,9 @@ export default defineComponent({
160
160
  })
161
161
  </script>
162
162
  <style lang="scss">
163
+ .octopus-app{
163
164
  .snack-bar-wrap{
164
165
  bottom: 0px;
165
166
  }
167
+ }
166
168
  </style>
@@ -257,6 +257,7 @@ export default defineComponent({
257
257
  </script>
258
258
 
259
259
  <style lang="scss">
260
+ .octopus-app{
260
261
  .top-bar-container {
261
262
  position: sticky;
262
263
  top: 0;
@@ -336,4 +337,5 @@ export default defineComponent({
336
337
  }
337
338
  }
338
339
  }
340
+ }
339
341
  </style>