@saooti/octopus-sdk 41.0.14-SNAPSHOT → 41.0.15

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/eslint.config.mjs +5 -3
  2. package/index.ts +8 -1
  3. package/package.json +4 -2
  4. package/plateform.conf +1 -1
  5. package/src/App.vue +3 -7
  6. package/src/api/classicApi.ts +1 -1
  7. package/src/components/composable/player/usePlayerLive.ts +2 -2
  8. package/src/components/composable/player/usePlayerLogic.ts +2 -1
  9. package/src/components/composable/radio/usefetchRadioData.ts +29 -12
  10. package/src/components/composable/route/useSimplePageParam.ts +6 -1
  11. package/src/components/display/categories/CategoryChooser.vue +4 -0
  12. package/src/components/display/comments/CommentList.vue +1 -1
  13. package/src/components/display/emission/EmissionList.vue +2 -1
  14. package/src/components/display/emission/EmissionPresentationItem.vue +14 -6
  15. package/src/components/display/filter/AdvancedSearch.vue +2 -2
  16. package/src/components/display/filter/DateFilter.vue +15 -2
  17. package/src/components/display/live/RadioCurrently.vue +2 -5
  18. package/src/components/display/organisation/OrganisationChooserLight.vue +34 -36
  19. package/src/components/display/podcasts/PodcastPlayButton.vue +6 -1
  20. package/src/components/display/rubriques/RubriqueChooser.vue +24 -2
  21. package/src/components/display/rubriques/RubriqueList.vue +18 -0
  22. package/src/components/display/sharing/PlayerParameters.vue +0 -8
  23. package/src/components/display/sharing/SharePlayer.vue +0 -5
  24. package/src/components/display/sharing/SubscribeButtons.vue +4 -2
  25. package/src/components/form/ClassicCheckbox.vue +30 -5
  26. package/src/components/form/ClassicInputText.vue +32 -12
  27. package/src/components/form/ClassicMultiselect.vue +35 -7
  28. package/src/components/misc/ClassicAccordion.vue +4 -4
  29. package/src/components/misc/ClassicHelpButton.vue +44 -0
  30. package/src/components/misc/ClassicLazy.vue +25 -14
  31. package/src/components/misc/ClassicNav.vue +3 -0
  32. package/src/components/misc/ClassicSpinner.vue +1 -1
  33. package/src/components/misc/FooterSection.vue +17 -20
  34. package/src/components/misc/HomeDropdown.vue +3 -110
  35. package/src/components/misc/MobileMenu.vue +59 -64
  36. package/src/components/misc/TopBar.vue +2 -10
  37. package/src/components/misc/TopBarMainContent.vue +8 -12
  38. package/src/components/misc/UserButtonContent.vue +159 -0
  39. package/src/components/misc/modal/ClassicModal.vue +4 -0
  40. package/src/components/misc/player/PlayerCompact.vue +1 -0
  41. package/src/components/misc/player/PlayerComponent.vue +1 -0
  42. package/src/components/misc/player/elements/PlayerImage.vue +0 -1
  43. package/src/components/misc/player/elements/PlayerTitle.vue +3 -3
  44. package/src/components/misc/player/radio/RadioHistory.vue +3 -2
  45. package/src/components/misc/player/video/PlayerVideo.vue +2 -2
  46. package/src/components/pages/HomePage.vue +5 -4
  47. package/src/components/pages/PageLogout.vue +1 -6
  48. package/src/components/pages/PodcastPage.vue +0 -1
  49. package/src/components/pages/PodcastsPage.vue +1 -1
  50. package/src/components/pages/VideoPage.vue +5 -2
  51. package/src/helper/equals.ts +26 -0
  52. package/src/locale/de.ts +6 -5
  53. package/src/locale/en.ts +6 -5
  54. package/src/locale/es.ts +6 -5
  55. package/src/locale/fr.ts +6 -5
  56. package/src/locale/it.ts +6 -5
  57. package/src/locale/sl.ts +6 -5
  58. package/src/router/router.ts +10 -74
  59. package/src/router/utils.ts +112 -0
  60. package/src/stores/AuthStore.ts +7 -2
  61. package/src/stores/FilterStore.ts +126 -71
  62. package/src/stores/PlayerStore.ts +11 -1
  63. package/src/stores/class/conference/conference.ts +2 -0
  64. package/src/stores/class/general/organisation.ts +2 -2
  65. package/src/stores/class/general/player.ts +2 -2
  66. package/src/style/_variables.scss +6 -0
  67. package/src/style/general.scss +18 -1
  68. package/tsconfig.json +6 -2
  69. package/typings/index.d.ts +1 -0
  70. package/src/helper/radio/radioHelper.ts +0 -15
@@ -40,10 +40,10 @@ import ChevronLeftIcon from "vue-material-design-icons/ChevronLeft.vue";
40
40
  import ChevronRightIcon from "vue-material-design-icons/ChevronRight.vue";
41
41
  import { usePlayerStore } from "../../../../stores/PlayerStore";
42
42
  import dayjs from "dayjs";
43
- import radioHelper from "../../../../helper/radio/radioHelper";
44
43
  import { computed, nextTick, onMounted, onUnmounted, ref, useTemplateRef, watch } from "vue";
45
44
  import { MediaRadio } from "@/stores/class/general/player";
46
45
  import { useI18n } from "vue-i18n";
46
+ import { useFetchRadio } from "../../../composable/radio/usefetchRadioData";
47
47
 
48
48
 
49
49
  //Data
@@ -54,6 +54,7 @@ const historyListContainerRef = useTemplateRef('historyListContainer');
54
54
  //Composables
55
55
  const { t } = useI18n();
56
56
  const playerStore = usePlayerStore();
57
+ const {displayTitle} = useFetchRadio();
57
58
 
58
59
 
59
60
  //Computed
@@ -119,7 +120,7 @@ function displayPreviousItem(item: MediaRadio): string {
119
120
  if (item.podcastId) {
120
121
  return item.title;
121
122
  }
122
- return radioHelper.displayTitle(item);
123
+ return displayTitle(item);
123
124
  }
124
125
  </script>
125
126
  <style lang="scss">
@@ -39,10 +39,10 @@ const playerStore = usePlayerStore();
39
39
  //Computed
40
40
  const isSecured = computed(() => "SECURED" === playerStore.playerLive?.organisation?.privacy);
41
41
  const hlsVideoUrl = computed(() => {
42
- if (!playerStore.playerLive) {
42
+ if (!playerStore.playerHlsIdentifier) {
43
43
  return "";
44
44
  }
45
- return `${apiStore.hlsUrl}live/video_dev.${playerStore.playerLive.conferenceId}/index.m3u8`;
45
+ return `${apiStore.hlsUrl}live/video_${playerStore.playerHlsIdentifier}/index.m3u8`;
46
46
  });
47
47
 
48
48
  onMounted(()=>{
@@ -14,7 +14,7 @@
14
14
  :button-text="t('All podcast button', { name: c.name })"
15
15
  />
16
16
  <template #preview>
17
- <div style="min-height: 650px"></div>
17
+ <div style="min-height: 650px" />
18
18
  </template>
19
19
  </ClassicLazy>
20
20
  </template>
@@ -33,7 +33,7 @@
33
33
  :button-text="t('All podcast button', { name: r.name })"
34
34
  />
35
35
  <template #preview>
36
- <div style="min-height: 650px"></div>
36
+ <div style="min-height: 650px" />
37
37
  </template>
38
38
  </ClassicLazy>
39
39
  <template v-if="rubriqueDisplay && rubriqueDisplay.length > 0">
@@ -43,7 +43,7 @@
43
43
  name: 'podcasts',
44
44
  query: {
45
45
  iabId: filterStore.filterIab?.id,
46
- rubriquesId: rubriqueQueryParam.value,
46
+ rubriquesId: rubriqueQueryParam,
47
47
  productor: filterStore.filterOrgaId
48
48
  },
49
49
  }"
@@ -129,8 +129,9 @@ const categories = computed(() => {
129
129
  });
130
130
  } else {
131
131
  arrayCategories = generalStore.storedCategories.filter((c: Category) => {
132
- if (state.generalParameters.podcastmaker)
132
+ if (state.generalParameters.podcastmaker) {
133
133
  return c.podcastOrganisationCount;
134
+ }
134
135
  return c.podcastCount;
135
136
  });
136
137
  }
@@ -1,6 +1,6 @@
1
1
  <template>
2
2
  <section
3
- class="page-box page-box-absolute page-logout"
3
+ class="page-box page-box-absolute page-logout bg-gradient"
4
4
  >
5
5
  <div class="logout-section">
6
6
  <h1 class="mb-3">{{ t("Logout") }}</h1>
@@ -19,11 +19,6 @@ const { t } = useI18n();
19
19
  </script>
20
20
  <style lang="scss">
21
21
  .octopus-app .page-logout {
22
- background: linear-gradient(
23
- 90deg,
24
- var(--octopus-primary) 0%,
25
- var(--octopus-tertiary) 100%
26
- );
27
22
  display: flex;
28
23
  align-items: center;
29
24
  justify-content: center;
@@ -255,7 +255,6 @@ async function fetchConferenceStatus() {
255
255
  api: 9,
256
256
  path: "conference/info/" + podcast.value?.conferenceId,
257
257
  });
258
-
259
258
  fetchConference.value = {...fetchConference.value, ...data};
260
259
  } catch {
261
260
  //Do nothing
@@ -38,6 +38,7 @@
38
38
  />
39
39
  </section>
40
40
  </template>
41
+
41
42
  <script setup lang="ts">
42
43
  import PodcastList from "../display/podcasts/PodcastList.vue";
43
44
  import ProductorSearch from "../display/filter/ProductorSearch.vue";
@@ -85,7 +86,6 @@ const {
85
86
  isInit
86
87
  } = useAdvancedParamInit(props, false);
87
88
 
88
-
89
89
  //Computed
90
90
  const orgaArray = computed(() => organisationId.value ? [organisationId.value] : []);
91
91
  const withVideo = computed(() => false === onlyVideo.value ? undefined : true);
@@ -193,7 +193,7 @@ const hlsVideoUrl = computed(() => {
193
193
  if (!recordingLive.value || !podcastConference.value) {
194
194
  return "";
195
195
  }
196
- return `${apiStore.hlsUrl}live/video_dev.${podcastConference.value.conferenceId}/index.m3u8`;
196
+ return `${apiStore.hlsUrl}live/video_${podcastConference.value.hlsIdentifier}/index.m3u8`;
197
197
  });
198
198
  const isSecured = computed(() => {
199
199
  return "SECURED" === podcast.value?.organisation?.privacy;
@@ -255,7 +255,10 @@ async function getPodcastDetails(): Promise<void> {
255
255
  playerStore.playerPlay(
256
256
  {
257
257
  ...podcast.value,
258
- ...{ conferenceId: podcast.value.conferenceId },
258
+ ...{
259
+ conferenceId: podcast.value.conferenceId,
260
+ hlsIdentifier: podcastConference.value?.hlsIdentifier,
261
+ },
259
262
  },
260
263
  true,
261
264
  );
@@ -0,0 +1,26 @@
1
+ export function deepEqual(obj1: any, obj2: any) {
2
+
3
+ if(obj1 === obj2) // it's just the same object. No need to compare.
4
+ {return true;}
5
+
6
+ if(isPrimitive(obj1) && isPrimitive(obj2)) // compare primitives
7
+ {return obj1 === obj2;}
8
+
9
+ if(Object.keys(obj1).length !== Object.keys(obj2).length) {
10
+ return false;
11
+ }
12
+
13
+ // compare objects with same number of keys
14
+ for(const key in obj1)
15
+ {
16
+ if(!(key in obj2)) {return false;} //other object doesn't have this prop
17
+ if(!deepEqual(obj1[key], obj2[key])) {return false;}
18
+ }
19
+
20
+ return true;
21
+ }
22
+
23
+ //check if value is primitive
24
+ function isPrimitive(obj: unknown) {
25
+ return (obj !== Object(obj));
26
+ }
package/src/locale/de.ts CHANGED
@@ -57,6 +57,9 @@ export default {
57
57
  "Type string to filter by organisation": "Nach Organisation filtern",
58
58
  "Type string to filter by emission": "Nach Reihe filtern",
59
59
  "Type string to filter by podcast": "Nach Podcast filtern",
60
+ "Type string to filter by categories": "Nach Kategorien filtern",
61
+ "Type string to filter by rubrics": "Nach Rubriken filtern",
62
+ "Enter name of topic": "Geben Sie den Titel ein \"{topic}\"",
60
63
  "No organisation filter": "Keine Organisation",
61
64
  "No emission filter": "Keine Reihe",
62
65
  "No podcast filter": "Kein Podcast",
@@ -74,7 +77,6 @@ export default {
74
77
  Duration: "Dauer: {duration}",
75
78
  Animator: "Autor",
76
79
  "No category filter": "Keine Kategorie",
77
- "Type string to filter by categories": "Nach Kategorien filtern",
78
80
  Search: "Suche",
79
81
  Close: "Schließen",
80
82
  Embed: "Player",
@@ -131,7 +133,6 @@ export default {
131
133
  Advertising: "Werbung",
132
134
  "By topic": "Nach Thema",
133
135
  "By rubric": "Nach Rubrik",
134
- "Type string to filter by rubrics": "Nach Rubriken filtern",
135
136
  "No rubric filter": "Keine Rubrik",
136
137
  "From the :": "Vom:",
137
138
  "To the :": "Bis zum:",
@@ -146,8 +147,8 @@ export default {
146
147
  "Sort score": "Nach Relevanz",
147
148
  "Sort name": "Nach Titel",
148
149
  "Sort last": "Nach Datum",
149
- "Choose color": "Farbe wählen",
150
- "Choose theme": "Design wählen",
150
+ "Choose color": "Akzentfarbe",
151
+ "Choose theme": "Thema (Spielerhintergrund)",
151
152
  "Podcast no visible": "Podcast nicht sichtbar",
152
153
  "Display episodes": "Folgen anzeigen",
153
154
  "Podcast published in future": "Podcast geplant",
@@ -167,7 +168,6 @@ export default {
167
168
  "open left Menu": "Menü öffnen/schließen",
168
169
  Participant: "Sprecher",
169
170
  "Number of player podcasts": "Anzahl der Podcasts im Player",
170
- "Proceed reading": "Weiterhören",
171
171
  "Without topic": "Ohne Thema",
172
172
  "Without rubric": "Ohne Rubrik",
173
173
  "Consider podcasts no visible":
@@ -414,4 +414,5 @@ export default {
414
414
  "Code copied!":"Code kopiert!",
415
415
  "Copied!":"Kopiert!",
416
416
  "Color of the QR Code": "Farbe des QR-Codes",
417
+ "Silent stream":"Stiller Fluss",
417
418
  }
package/src/locale/en.ts CHANGED
@@ -58,6 +58,9 @@ export default {
58
58
  "Type string to filter by organisation": "Filter by organization",
59
59
  "Type string to filter by emission": "Filter by series",
60
60
  "Type string to filter by podcast": "Filter by podcast",
61
+ "Type string to filter by categories": "Filter categories by title",
62
+ "Type string to filter by rubrics": "Filter by rubrics",
63
+ "Enter name of topic": "Enter name of \"{topic}\"",
61
64
  "No organisation filter": "No organization filter",
62
65
  "No emission filter": "No series filter",
63
66
  "No podcast filter": "No podcast filter",
@@ -75,7 +78,6 @@ export default {
75
78
  Duration: "Duration : {duration}",
76
79
  Animator: "Host",
77
80
  "No category filter": "No category filter",
78
- "Type string to filter by categories": "Filter categories by title",
79
81
  Search: "Search",
80
82
  Close: "Close",
81
83
  Embed: "Player",
@@ -131,7 +133,6 @@ export default {
131
133
  Advertising: "Advertising",
132
134
  "By topic": "By topic",
133
135
  "By rubric": "By rubric",
134
- "Type string to filter by rubrics": "Filter by rubrics",
135
136
  "No rubric filter": "No rubric filter",
136
137
  "From the :": "From the :",
137
138
  "To the :": "To the :",
@@ -145,8 +146,8 @@ export default {
145
146
  "Sort score": "Sorted by relevancy score",
146
147
  "Sort name": "Sorted title",
147
148
  "Sort last": "Sorted last",
148
- "Choose color": "Choose color",
149
- "Choose theme": "Choose theme",
149
+ "Choose color": "Accent color",
150
+ "Choose theme": "Theme (player background)",
150
151
  "Podcast no visible": "Podcast not visible",
151
152
  "Display episodes": "Display episodes",
152
153
  "Podcast published in future": "Podcast published in the future",
@@ -166,7 +167,6 @@ export default {
166
167
  "open left Menu": "Open/Close Menu",
167
168
  Participant: "Speaker",
168
169
  "Number of player podcasts": "Number of podcasts in the player ",
169
- "Proceed reading": "Continue Listening",
170
170
  "Without topic": "Without a topic",
171
171
  "Without rubric": "Without a rubric",
172
172
  "Consider podcasts no visible":
@@ -417,4 +417,5 @@ export default {
417
417
  "Code copied!":"Code copied!",
418
418
  "Copied!":"Copied!",
419
419
  "Color of the QR Code": "Color of the QR Code",
420
+ "Silent stream":"Silent stream",
420
421
  };
package/src/locale/es.ts CHANGED
@@ -57,6 +57,9 @@ export default {
57
57
  "Type string to filter by organisation": "Filtrar por organización",
58
58
  "Type string to filter by emission": "Filtrar por programa",
59
59
  "Type string to filter by podcast": "Filtrar por pódcast",
60
+ "Type string to filter by categories": "Filtrar las categorías por título",
61
+ "Type string to filter by rubrics": "Filtrar por sección",
62
+ "Enter name of topic": "Introduzca el título de",
60
63
  "No organisation filter": "Sin filtro de organización",
61
64
  "No emission filter": "Sin filtro de programa",
62
65
  "No podcast filter": "Sin filtro de pódcast",
@@ -74,7 +77,6 @@ export default {
74
77
  Duration: "Duración: {duration}",
75
78
  Animator: "Presentador/a",
76
79
  "No category filter": "Sin filtro de categoría",
77
- "Type string to filter by categories": "Filtrar las categorías por título",
78
80
  Search: "Buscar",
79
81
  Close: "Cerrar",
80
82
  Embed: "Reproductor",
@@ -130,7 +132,6 @@ export default {
130
132
  Advertising: "Publicidad",
131
133
  "By topic": "Por tema",
132
134
  "By rubric": "Por sección",
133
- "Type string to filter by rubrics": "Filtrar por sección",
134
135
  "No rubric filter": "Sin filtro de sección",
135
136
  "From the :": "De:",
136
137
  "To the :": "A:",
@@ -145,8 +146,8 @@ export default {
145
146
  "Sort score": "Clasificación por pertinencia",
146
147
  "Sort name": "Clasificación por título",
147
148
  "Sort last": "Clasificación por fecha más reciente",
148
- "Choose color": "Elegir color",
149
- "Choose theme": "Elegir tema",
149
+ "Choose color": "Color de acento",
150
+ "Choose theme": "Tema (fondo del jugador)",
150
151
  "Podcast no visible": "Este pódcast no puede visualizarse",
151
152
  "Display episodes": "Mostrar episodios",
152
153
  "Podcast published in future": "Pódcast pendiente de publicación",
@@ -167,7 +168,6 @@ export default {
167
168
  "open left Menu": "Abrir/Cerrar menú",
168
169
  Participant: "Participante",
169
170
  "Number of player podcasts": "Número de pódcast en el reproductor",
170
- "Proceed reading": "Seguir escuchando",
171
171
  "Without topic": "Sin tema",
172
172
  "Without rubric": "Sin sección",
173
173
  "Consider podcasts no visible":
@@ -415,4 +415,5 @@ export default {
415
415
  "Code copied!":"¡Código copiado!",
416
416
  "Copied!":"¡Copiado!",
417
417
  "Color of the QR Code": "Color del código QR",
418
+ "Silent stream":"Flujo silencioso",
418
419
  }
package/src/locale/fr.ts CHANGED
@@ -58,6 +58,9 @@ export default {
58
58
  "Type string to filter by organisation": "Filtrer les producteurs par nom",
59
59
  "Type string to filter by emission": "Filtrer les émissions par titre",
60
60
  "Type string to filter by podcast": "Filtrer les épisodes par titre",
61
+ "Type string to filter by rubrics": "Filtrer les rubriques",
62
+ "Type string to filter by categories": "Filtrer les thématiques par intitulé",
63
+ "Enter name of topic": "Saisir l'intitulé de \"{topic}\"",
61
64
  "No organisation filter": "Tous les producteurs",
62
65
  "No emission filter": "Toutes les émissions",
63
66
  "No podcast filter": "Tous les épisodes",
@@ -74,7 +77,6 @@ export default {
74
77
  Duration: "Durée : {duration}",
75
78
  Animator: "Intervenant",
76
79
  "No category filter": "Toutes les thématiques",
77
- "Type string to filter by categories": "Filtrer les thématiques par intitulé",
78
80
  Search: "Rechercher",
79
81
  Close: "Fermer",
80
82
  Embed: "Player",
@@ -131,7 +133,6 @@ export default {
131
133
  Advertising: "Publicité",
132
134
  "By topic": "Selon rubriquage",
133
135
  "By rubric": "Par rubrique",
134
- "Type string to filter by rubrics": "Filtrer les rubriques",
135
136
  "No rubric filter": "Toutes les rubriques",
136
137
  "From the :": "Depuis le :",
137
138
  "To the :": "Jusqu'au :",
@@ -146,8 +147,8 @@ export default {
146
147
  "Sort score": "Pertinence",
147
148
  "Sort name": "Alphabétique",
148
149
  "Sort last": "Antéchronologique",
149
- "Choose color": "Couleur",
150
- "Choose theme": "Thème",
150
+ "Choose color": "Couleur d'accent",
151
+ "Choose theme": "Thème (fond du player)",
151
152
  "Podcast no visible": "Épisode non visible actuellement",
152
153
  "Display episodes": "Affichage des épisodes",
153
154
  "Podcast publish in future": "Épisode publié dans le futur",
@@ -168,7 +169,6 @@ export default {
168
169
  "open left Menu": "Ouvrir/Fermer le menu",
169
170
  Participant: "Intervenant",
170
171
  "Number of player podcasts": "Nombre d'épisodes dans le miniplayer",
171
- "Proceed reading": "Poursuivre la lecture",
172
172
  "Without topic": "Sans rubriquage",
173
173
  "Without rubric": "Non rubriqué",
174
174
  "Consider podcasts no visible":
@@ -424,4 +424,5 @@ export default {
424
424
  "Code copied!":"Code copié !",
425
425
  "Copied!":"Copié !",
426
426
  "Color of the QR Code": "Couleur du Qr Code",
427
+ "Silent stream":"Flux silencieux",
427
428
  };
package/src/locale/it.ts CHANGED
@@ -56,6 +56,9 @@ export default{
56
56
  'Type string to filter by organisation': 'Filtra per organizzazione',
57
57
  'Type string to filter by emission': 'Filtra per serie',
58
58
  'Type string to filter by podcast': 'Filtra per podcast',
59
+ 'Type string to filter by categories': 'Filtra la categoria tramite il titolo',
60
+ 'Type string to filter by rubrics': 'Filtra per rubriche',
61
+ 'Enter name of topic': 'Inserisci il titolo di {topic}',
59
62
  'No organisation filter': 'Nessun filtro per organizzazione',
60
63
  'No emission filter': 'Nessun filtro per serie',
61
64
  'No podcast filter': 'Nessun filtro per podcast',
@@ -71,7 +74,6 @@ export default{
71
74
  Duration: 'Durata: {duration}',
72
75
  Animator: 'Host',
73
76
  'No category filter': 'Nessun filtro per la categoria',
74
- 'Type string to filter by categories': 'Filtra la categoria tramite il titolo',
75
77
  Search: 'Ricerca',
76
78
  Close: 'Chiudi',
77
79
  Embed: 'Player',
@@ -127,7 +129,6 @@ export default{
127
129
  Advertising: 'Pubblicità',
128
130
  'By topic': 'Per tema',
129
131
  'By rubric': 'Per rubrica',
130
- 'Type string to filter by rubrics': 'Filtra per rubriche',
131
132
  'No rubric filter': 'No filtri rubrica',
132
133
  'From the :': 'Dal :',
133
134
  'To the :': "Al :",
@@ -141,8 +142,8 @@ export default{
141
142
  'Sort score': 'Suddiviso per grado di rilevanza',
142
143
  'Sort name': 'Suddividi titolo',
143
144
  'Sort last': 'Suddividi ultimo',
144
- 'Choose color': 'Seleziona colore',
145
- 'Choose theme': 'Seleziona tema',
145
+ 'Choose color': 'Colore accento',
146
+ 'Choose theme': 'Tema (sfondo del giocatore)',
146
147
  'Podcast no visible': 'Podcast non visibile',
147
148
  'Display episodes': 'Mostra episodi',
148
149
  'Podcast published in future': 'Podcast pubblicato in futuro',
@@ -163,7 +164,6 @@ export default{
163
164
  'open left Menu': 'Apri/Chiudi Menu',
164
165
  Participant: 'Speaker',
165
166
  'Number of player podcasts': "Numero di podcast nel lettore",
166
- 'Proceed reading': 'Continua ad ascoltare',
167
167
  'Without topic': 'Senza un tema',
168
168
  'Without rubric': 'Senza una rubrica',
169
169
  'Consider podcasts no visible':
@@ -411,4 +411,5 @@ export default{
411
411
  "Code copied!":"Codice copiato!",
412
412
  "Copied!":"Copiato!",
413
413
  "Color of the QR Code": "Colore del codice QR",
414
+ "Silent stream":"Flusso silenzioso",
414
415
  };
package/src/locale/sl.ts CHANGED
@@ -56,6 +56,9 @@ export default {
56
56
  "Type string to filter by organisation": "Išči po organizaciji",
57
57
  "Type string to filter by emission": "Išči po oddaji",
58
58
  "Type string to filter by podcast": "Išči po podkastu",
59
+ "Type string to filter by categories": "Razvrsti po kategorijah",
60
+ "Type string to filter by rubrics": "Razvrsti po rubrikah",
61
+ "Enter name of topic": "Vnesite naslov {topic}",
59
62
  "No organisation filter": "Brez filtra za organizacije",
60
63
  "No emission filter": "Brez filtra za oddaje",
61
64
  "No podcast filter": "Brez filtra za podkaste",
@@ -72,7 +75,6 @@ export default {
72
75
  Duration: "Trajanje: {duration}",
73
76
  Animator: "Napovedovalec",
74
77
  "No category filter": "Brez filtra za kategorijo",
75
- "Type string to filter by categories": "Razvrsti po kategorijah",
76
78
  Search: "Išči",
77
79
  Close: "Zapri",
78
80
  Embed: "Predvajalnik",
@@ -128,7 +130,6 @@ export default {
128
130
  Advertising: "Oglaševanje",
129
131
  "By topic": "Po temi",
130
132
  "By rubric": "Po rubriki",
131
- "Type string to filter by rubrics": "Razvrsti po rubrikah",
132
133
  "No rubric filter": "Brez filtra po rubriki",
133
134
  "From the :": "Od:",
134
135
  "To the :": "Do:",
@@ -142,8 +143,8 @@ export default {
142
143
  "Sort score": "Razvrščeno po relevantnosti",
143
144
  "Sort name": "Naslov",
144
145
  "Sort last": "Zadnje",
145
- "Choose color": "Izberi barvo",
146
- "Choose theme": "Izberi temo",
146
+ "Choose color": "Poudarjena barva",
147
+ "Choose theme": "Tema (ozadje igralca)",
147
148
  "Podcast no visible": "Podkast je skrit",
148
149
  "Display episodes": "Prikaži epizode",
149
150
  "Podcast published in future": "Podkast bo objavljen v prihodnje",
@@ -163,7 +164,6 @@ export default {
163
164
  "open left Menu": "Meni odpri/zapri",
164
165
  Participant: "Sodelujoči",
165
166
  "Number of player podcasts": "Število podkastov v predvajalniku",
166
- "Proceed reading": "Nadaljuj s poslušanjem",
167
167
  "Without topic": "Brez teme",
168
168
  "Without rubric": "Brez rubrike",
169
169
  "Consider podcasts no visible": "Občinstvu skriti podkasti",
@@ -406,4 +406,5 @@ export default {
406
406
  "Code copied!":"Koda kopirana!",
407
407
  "Copied!":"Kopirano!",
408
408
  "Color of the QR Code": "Barva kode QR",
409
+ "Silent stream":"Tihi tok",
409
410
  }
@@ -4,12 +4,10 @@ import {
4
4
  RouteLocationNormalized,
5
5
  RouteRecordRaw,
6
6
  } from "vue-router";
7
- import { useFilterStore } from "../stores/FilterStore";
8
- import { useSaveFetchStore } from "@/stores/SaveFetchStore";
9
- import { Rubriquage } from "@/stores/class/rubrique/rubriquage";
10
7
  import classicApi from "@/api/classicApi";
11
- import { useAuthStore } from "../stores/AuthStore";
8
+ import { AuthStore } from "../stores/AuthStore";
12
9
  import fetchHelper from "@/helper/fetchHelper";
10
+ import { setupRouter } from "./utils";
13
11
 
14
12
  /*--------------------------------------------------------------------------
15
13
  Composants publics
@@ -334,13 +332,16 @@ const router = createRouter({
334
332
  history: createWebHistory(),
335
333
  routes: routes,
336
334
  scrollBehavior(to, from) {
337
- if (to.name === from.name && to.meta.noScroll) return false;
338
- return { left: 0, top: 0 };
335
+ if (to.name === from.name && to.meta.noScroll) {
336
+ return false;
337
+ } else {
338
+ return { left: 0, top: 0 };
339
+ }
339
340
  },
340
341
  });
341
342
 
342
343
  //Do in frontoffice but not podcastmakers
343
- async function getMyOrgaActive(authStore: any): Promise<string>{
344
+ async function getMyOrgaActive(authStore: AuthStore): Promise<string>{
344
345
  const orgaActive = await classicApi.fetchData<string>({
345
346
  api: 3,
346
347
  path: "user/active"
@@ -352,72 +353,7 @@ async function getMyOrgaActive(authStore: any): Promise<string>{
352
353
  }
353
354
  return orgaActive;
354
355
  }
355
- async function changeOrgaFilter(orgaFilter: string, filterStore: any){
356
- const saveStore = useSaveFetchStore();
357
- const response = await saveStore.getOrgaData(orgaFilter);
358
- const data = await classicApi.fetchData<Array<Rubriquage>>({
359
- api: 0,
360
- path: "rubriquage/find/" + orgaFilter,
361
- parameters: {
362
- sort: "HOMEPAGEORDER",
363
- homePageOrder: true,
364
- },
365
- specialTreatement: true,
366
- });
367
- const isLive = await saveStore.getOrgaLiveEnabled(orgaFilter);
368
- filterStore.filterUpdateOrga({
369
- orgaId: orgaFilter,
370
- imgUrl: response.imageUrl,
371
- name: response.name,
372
- rubriquageArray: data.filter((element: Rubriquage) => {
373
- return element.rubriques.length;
374
- }),
375
- isLive: isLive,
376
- });
377
- }
378
- let fetchMyOrgaActive = false;
379
- router.beforeResolve(async () =>{
380
- fetchMyOrgaActive = false;
381
- });
382
- router.beforeEach(async (to, from) => {
383
- if ("/logout" === to.path && "/logout" !== from.path) {
384
- setTimeout(() => {
385
- window.location.reload(true);
386
- }, 500);
387
- }
388
- const authStore = useAuthStore();
389
- const filterStore = useFilterStore();
390
-
391
- const isSamePath = to.matched[0]?.path === from.matched[0]?.path && to.path.includes(from.path);
392
- let orgaToFocus = isSamePath ? (to.query.productor?.toString() ?? undefined) : undefined;
393
356
 
394
- if(authStore.authProfile){
395
- if(!isSamePath && !fetchMyOrgaActive){
396
- await getMyOrgaActive(authStore);
397
- fetchMyOrgaActive = true;
398
- }
399
- if(undefined!==orgaToFocus){
400
- orgaToFocus = authStore.authOrgaId;
401
- }
402
- }
403
- if (isSamePath && orgaToFocus !== from.query.productor) {
404
- if (undefined === orgaToFocus) {
405
- filterStore.filterUpdateOrga({ orgaId: undefined });
406
- } else if (filterStore.filterOrgaId !== orgaToFocus) {
407
- await changeOrgaFilter(orgaToFocus, filterStore);
408
- }
409
- }
410
- if (
411
- "/logout" !== to.path &&
412
- filterStore.filterOrgaId !== to.query.productor &&
413
- undefined !== filterStore.filterOrgaId
414
- ) {
415
- return {
416
- path: to.path,
417
- query: { ...to.query, ...{ productor: filterStore.filterOrgaId } },
418
- params: to.params,
419
- name: to.name,
420
- };
421
- }
422
- });
357
+ setupRouter(router, getMyOrgaActive);
358
+
423
359
  export default router;