@saooti/octopus-sdk 31.0.1 → 31.0.2

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 (66) hide show
  1. package/README.md +12 -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 +10 -8
  7. package/src/components/display/categories/CategoryList.vue +26 -24
  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/ProductorSearch.vue +6 -1
  16. package/src/components/display/live/LiveHorizontalList.vue +1 -1
  17. package/src/components/display/live/LiveItem.vue +2 -1
  18. package/src/components/display/live/LiveList.vue +51 -41
  19. package/src/components/display/organisation/OrganisationChooser.vue +1 -1
  20. package/src/components/display/organisation/OrganisationChooserLight.vue +28 -19
  21. package/src/components/display/participant/ParticipantItem.vue +2 -0
  22. package/src/components/display/participant/ParticipantList.vue +30 -19
  23. package/src/components/display/playlist/PlaylistList.vue +12 -3
  24. package/src/components/display/playlist/PodcastList.vue +26 -16
  25. package/src/components/display/playlist/PodcastPlaylistInlineList.vue +204 -0
  26. package/src/components/display/podcasts/AnimatorsItem.vue +2 -0
  27. package/src/components/display/podcasts/ParticipantDescription.vue +1 -5
  28. package/src/components/display/podcasts/PodcastImage.vue +2 -1
  29. package/src/components/display/podcasts/PodcastInlineList.vue +40 -28
  30. package/src/components/display/podcasts/PodcastItem.vue +12 -0
  31. package/src/components/display/podcasts/PodcastList.vue +11 -3
  32. package/src/components/display/podcasts/PodcastPlayBar.vue +2 -0
  33. package/src/components/display/podcasts/TagList.vue +2 -0
  34. package/src/components/display/rubriques/RubriqueList.vue +3 -1
  35. package/src/components/display/sharing/PlayerParameters.vue +2 -0
  36. package/src/components/display/sharing/QrCode.vue +7 -0
  37. package/src/components/display/sharing/ShareDistribution.vue +2 -0
  38. package/src/components/display/sharing/SharePlayer.vue +2 -0
  39. package/src/components/form/ClassicSearch.vue +2 -0
  40. package/src/components/misc/ErrorMessage.vue +2 -0
  41. package/src/components/misc/Footer.vue +2 -0
  42. package/src/components/misc/LeftMenu.vue +2 -0
  43. package/src/components/misc/Player.vue +14 -0
  44. package/src/components/misc/PlayerButtons.vue +2 -14
  45. package/src/components/misc/PlayerClockAndTimeline.vue +2 -0
  46. package/src/components/misc/PlayerProgressBar.vue +2 -0
  47. package/src/components/misc/Popover.vue +5 -0
  48. package/src/components/misc/Snackbar.vue +2 -0
  49. package/src/components/misc/TopBar.vue +2 -0
  50. package/src/components/misc/modal/NewsletterModal.vue +11 -3
  51. package/src/components/misc/modal/ShareModalPlayer.vue +2 -0
  52. package/src/components/mixins/handle403.ts +17 -0
  53. package/src/components/pages/Emission.vue +17 -4
  54. package/src/components/pages/Error403Page.vue +24 -0
  55. package/src/components/pages/Participant.vue +19 -4
  56. package/src/components/pages/Playlist.vue +17 -3
  57. package/src/components/pages/Podcast.vue +28 -12
  58. package/src/components/pages/Podcasts.vue +4 -0
  59. package/src/locale/en.ts +1 -0
  60. package/src/locale/fr.ts +1 -0
  61. package/src/locale/it.ts +298 -0
  62. package/src/locale/messages.ts +2 -0
  63. package/src/main.ts +1 -1
  64. package/src/router/router.ts +6 -0
  65. package/src/store/class/general/organisation.ts +1 -0
  66. package/src/store/paramStore.ts +5 -2
@@ -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')"
@@ -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>
@@ -364,6 +364,7 @@ export default defineComponent({
364
364
 
365
365
  <style lang="scss">
366
366
  @import '../../../sass/_variables.scss';
367
+ .octopus-app{
367
368
  .sticker {
368
369
  align-self: center;
369
370
  background: $octopus-primary-dark;
@@ -385,4 +386,5 @@ export default defineComponent({
385
386
  .max-iframe {
386
387
  max-width: 300px;
387
388
  }
389
+ }
388
390
  </style>
@@ -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>
@@ -242,9 +242,7 @@ export default defineComponent({
242
242
  `" title="` +
243
243
  this.$t('Listen this episode') +
244
244
  `">
245
- <img width="44" height="44" style="display: inline-block;vertical-align: middle" src="` +
246
- this.resourcesUrl +
247
- `/img/play-podcast.png">
245
+ <img width="44" height="44" style="display: inline-block;vertical-align: middle" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAB4AAAAeCAYAAAA7MK6iAAAABmJLR0QA/wD/AP+gvaeTAAAAxElEQVRIie3WMWpCURBG4Q8FSRrtbC2SPhvICmzchVuwtXQLbsE2pVUIkjqQHVgqNmIj6EvxGHhFQAIvcxt/OPVhhrlzh3sKZ4MvTLLFVYNPvJYQB294LiGucMYSw2xxcMQcj9niYIsputni4BvjEuJgjZcS4goXrDDKFgcnLDDIFgd7zNDLFgfvTUHnL23ISJuV7iS3Ooarn1VxkeeUvkDSV2b6J3FQT+pDW8Jb4vRD4Kqe1Kf/Ev4mTj32PhQ6b+9pPT+XHgysHrPM6QAAAABJRU5ErkJggg=="/>
248
246
  </a>
249
247
  <a style="color: #000;text-decoration: none; margin-right:8px" href="` +
250
248
  window.location.href +
@@ -283,6 +281,9 @@ export default defineComponent({
283
281
  });
284
282
  },
285
283
  },
284
+ created(){
285
+ this.initColor();
286
+ },
286
287
  methods: {
287
288
  closePopup(event: { preventDefault: () => void }): void {
288
289
  event.preventDefault();
@@ -302,12 +303,18 @@ export default defineComponent({
302
303
  },
303
304
  afterCopy(): void{
304
305
  (this.$refs.snackbar as InstanceType<typeof SnackbarVue>).open(this.$t('Data in clipboard'));
306
+ },
307
+ initColor(): void {
308
+ if(state.generalParameters.podcastmaker && state.generalParameters.podcastmakerColor){
309
+ this.color = state.generalParameters.podcastmakerColor;
310
+ }
305
311
  }
306
312
  },
307
313
  })
308
314
  </script>
309
315
 
310
316
  <style lang="scss">
317
+ .octopus-app{
311
318
  #newsletter-modal {
312
319
  textarea {
313
320
  border: 2px solid #eee;
@@ -323,4 +330,5 @@ export default defineComponent({
323
330
  max-width: 60%;
324
331
  }
325
332
  }
333
+ }
326
334
  </style>
@@ -139,6 +139,7 @@ export default defineComponent({
139
139
  </script>
140
140
 
141
141
  <style lang="scss">
142
+ .octopus-app{
142
143
  .share-modal-border {
143
144
  border-right: solid 1px rgb(222, 226, 230);
144
145
  border-left: solid 1px rgb(222, 226, 230);
@@ -178,4 +179,5 @@ export default defineComponent({
178
179
  align-self: center;
179
180
  }
180
181
  }
182
+ }
181
183
  </style>
@@ -0,0 +1,17 @@
1
+ import { AxiosError } from 'axios';
2
+ import { defineComponent } from 'vue';
3
+ export const handle403 = defineComponent({
4
+ methods: {
5
+ handle403(error: AxiosError): void {
6
+ if (403 === error.response?.status) {
7
+ if(!this.$store.state.authentication.isAuthenticated){
8
+ this.$router.push("/sso/login");
9
+ }else{
10
+ this.$router.push({
11
+ path: '/main/pub/error'
12
+ });
13
+ }
14
+ }
15
+ },
16
+ },
17
+ });