@saooti/octopus-sdk 38.0.1 → 38.0.3

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/index.ts CHANGED
@@ -21,7 +21,6 @@ export const getNav = () => import("./src/components/misc/ClassicNav.vue");
21
21
  export const getProgressBar = () => import("./src/components/misc/ProgressBar.vue");
22
22
  export const getSpinner = () => import("./src/components/misc/ClassicSpinner.vue");
23
23
  export const getFooter = () => import("./src/components/misc/FooterSection.vue");
24
- export const getLeftMenu = () => import("./src/components/misc/LeftMenu.vue");
25
24
  export const getPlayer = () => import("./src/components/misc/player/PlayerComponent.vue");
26
25
  export const getSnackbar = () => import("./src/components/misc/SnackBar.vue");
27
26
  export const getTopBar = () => import("./src/components/misc/TopBar.vue");
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@saooti/octopus-sdk",
3
- "version": "38.0.1",
3
+ "version": "38.0.3",
4
4
  "private": false,
5
5
  "description": "Javascript SDK for using octopus",
6
6
  "author": "Saooti",
package/src/App.vue CHANGED
@@ -1,11 +1,6 @@
1
1
  <template>
2
2
  <div v-if="isInit" :key="reload" class="d-flex flex-column h-100 octopus-app">
3
- <TopBar v-model:displayMenu="displayMenu" :is-education="false" />
4
- <LeftMenu
5
- v-if="displayMenu"
6
- :is-education="false"
7
- @close="displayMenu = false"
8
- />
3
+ <TopBar :is-education="false" />
9
4
  <CategoryFilter v-if="firstDisplayCategoryFilter" />
10
5
  <router-view />
11
6
  <ClassicLazy v-if="pageFullyLoad" :min-height="125" :unrender="true">
@@ -54,7 +49,6 @@ export default defineComponent({
54
49
 
55
50
  data() {
56
51
  return {
57
- displayMenu: false as boolean,
58
52
  reload: false as boolean,
59
53
  isInit: false as boolean,
60
54
  pageFullyLoad: false as boolean,
@@ -32,7 +32,7 @@
32
32
  cursor: pointer;
33
33
  margin-right: 5px;
34
34
  }
35
- .form-input{
35
+ .form-input, .v3-input-emoji-picker .v3-input-picker-root .v3-emoji-picker-textarea{
36
36
  appearance: none;
37
37
  background: #fff;
38
38
  background-image: none;
@@ -149,6 +149,18 @@ body{
149
149
  display: block !important;
150
150
  }
151
151
  }
152
+ .show-phone-flex{
153
+ display: none !important;
154
+ @media (max-width: 960px) {
155
+ display: flex !important;
156
+ }
157
+ }
158
+ .show-small-phone-flex{
159
+ display: none !important;
160
+ @media (max-width: 380px) {
161
+ display: flex !important;
162
+ }
163
+ }
152
164
  .hid{
153
165
  display: none !important;
154
166
  }
@@ -164,7 +176,7 @@ body{
164
176
  flex-shrink: 0;
165
177
  @media (max-width: 960px) {
166
178
  flex-grow: 0;
167
- margin-right: auto !important;
179
+ //margin-right: auto !important;
168
180
  }
169
181
  @media (max-width: 450px) {
170
182
  margin: auto;
@@ -18,6 +18,15 @@
18
18
  <div :class="button.icon" />
19
19
  </a>
20
20
  </template>
21
+ <router-link
22
+ v-if="!isPodcastmaker && authenticated && podcast && isProduction"
23
+ :class="getClass('saooti-share')"
24
+ :title="$t('Advanced sharing')"
25
+ :to="{
26
+ name: 'advancedShare',
27
+ params: { podcastId: podcast.podcastId }
28
+ }"
29
+ />
21
30
  </div>
22
31
  </div>
23
32
  <div v-if="podcast || emission || playlist" class="d-flex flex-column me-2">
@@ -206,6 +215,12 @@ export default defineComponent({
206
215
  authenticated(): boolean {
207
216
  return state.generalParameters.authenticated as boolean;
208
217
  },
218
+ isProduction() : boolean{
219
+ return state.generalParameters.isProduction as boolean;
220
+ },
221
+ isPodcastmaker(): boolean {
222
+ return state.generalParameters.podcastmaker as boolean;
223
+ },
209
224
  rssUrl(): string {
210
225
  let api = state.generalParameters.ApiUri + "rss/";
211
226
  if (this.emission) {
@@ -1,5 +1,5 @@
1
1
  <template>
2
- <div class="d-flex align-items-center octopus-form-item">
2
+ <div class="d-flex flex-nowrap align-items-center octopus-form-item">
3
3
  <div :class="isSwitch ? 'octopus-form-switch me-2' : ''">
4
4
  <input
5
5
  :id="idCheckbox"
@@ -4,7 +4,7 @@
4
4
  v-for="option in options"
5
5
  :key="option.title"
6
6
  class="octopus-form-item"
7
- :class="isColumn ? 'd-flex align-items-center' : 'me-2'"
7
+ :class="isColumn ? 'd-flex flex-nowrap align-items-center' : 'me-2'"
8
8
  >
9
9
  <input
10
10
  :id="idRadio + option.value"
@@ -3,7 +3,7 @@
3
3
  <template v-if="displayAccordion">
4
4
  <button
5
5
  :id="'accordion-' + idComposer"
6
- class="btn-transparent bg-white w-100 p-2 text-start d-flex align-items-center"
6
+ class="btn-transparent bg-white w-100 p-2 text-start d-flex flex-no-wrap align-items-center"
7
7
  :class="isOpen ? 'really-light-primary-bg' : ''"
8
8
  @click="isOpen = !isOpen"
9
9
  >
@@ -55,7 +55,7 @@ export default defineComponent({
55
55
  .octopus-accordion {
56
56
  border: 1px solid #ccc;
57
57
  > button {
58
- height: 50px;
58
+ min-height: 50px;
59
59
  }
60
60
  .img-accordion {
61
61
  width: 30px;
@@ -193,6 +193,8 @@ export default defineComponent({
193
193
  border-radius: $octopus-borderradius;
194
194
  position: absolute;
195
195
  z-index: 9999;
196
+ max-height: 80vh;
197
+ overflow: auto;
196
198
  &.octopus-dropdown {
197
199
  min-width: 200px;
198
200
  .octopus-dropdown-item {
@@ -105,6 +105,18 @@ export default defineComponent({
105
105
  },
106
106
  routerBackoffice() {
107
107
  return [
108
+ {
109
+ title: this.$t('My space'),
110
+ class: "octopus-dropdown-item show-small-phone-flex",
111
+ path: "/main/priv/backoffice",
112
+ condition: this.isAuthenticatedWithOrga,
113
+ },
114
+ {
115
+ title: this.$t('Upload'),
116
+ class: "octopus-dropdown-item show-small-phone-flex",
117
+ path: "/main/priv/upload",
118
+ condition: this.isAuthenticatedWithOrga && this.isContribution,
119
+ },
108
120
  {
109
121
  title: this.$t("Edit my profile"),
110
122
  class: "octopus-dropdown-item",
@@ -1,41 +1,52 @@
1
1
  <template>
2
- <div class="left-menu-container" @mouseleave="onMenuClick">
3
- <template v-for="link in routerLinkArray" :key="link.routeName">
2
+ <div>
3
+ <button
4
+ id="mobile-menu-dropdown"
5
+ class="btn-transparent saooti-menu"
6
+ :title="$t('open left Menu')"
7
+ />
8
+ <ClassicPopover
9
+ target="mobile-menu-dropdown"
10
+ :only-click="true"
11
+ :is-fixed="true"
12
+ :left-pos="true"
13
+ >
14
+ <template v-for="link in routerLinkArray" :key="link.routeName">
15
+ <router-link
16
+ v-if="link.condition"
17
+ :class="'home' === link.routeName ? 'octopus-dropdown-item show-phone-flex' : 'octopus-dropdown-item'"
18
+ :to="{
19
+ name: link.routeName,
20
+ query: getQueriesRouter(link.routeName),
21
+ }"
22
+ >
23
+ {{ link.title }}
24
+ </router-link>
25
+ </template>
26
+ <OrganisationChooserLight
27
+ v-if="!isPodcastmaker && organisationId"
28
+ width="auto"
29
+ class="octopus-dropdown-item"
30
+ page="leftMenu"
31
+ :defaultanswer="$t('No organisation filter')"
32
+ :value="organisationId"
33
+ :reset="reset"
34
+ @selected="onOrganisationSelected"
35
+ />
36
+ <hr class="show-phone" />
4
37
  <router-link
5
- v-if="link.condition"
6
- :class="'home' === link.routeName ? 'show-phone' : ''"
38
+ v-for="category in categories"
39
+ :key="category.id"
40
+ class="show-phone-flex octopus-dropdown-item"
7
41
  :to="{
8
- name: link.routeName,
9
- query: getQueriesRouter(link.routeName),
42
+ name: 'category',
43
+ params: { iabId: category.id },
44
+ query: { productor: filterOrgaId },
10
45
  }"
11
- @click="onMenuClick"
12
46
  >
13
- {{ link.title }}
47
+ {{ category.name }}
14
48
  </router-link>
15
- </template>
16
- <OrganisationChooserLight
17
- v-if="!isPodcastmaker && organisationId"
18
- width="auto"
19
- page="leftMenu"
20
- :defaultanswer="$t('No organisation filter')"
21
- :value="organisationId"
22
- :reset="reset"
23
- @selected="onOrganisationSelected"
24
- />
25
- <hr class="show-phone" />
26
- <router-link
27
- v-for="category in categories"
28
- :key="category.id"
29
- class="show-phone"
30
- :to="{
31
- name: 'category',
32
- params: { iabId: category.id },
33
- query: { productor: filterOrgaId },
34
- }"
35
- @click="onMenuClick"
36
- >
37
- {{ category.name }}
38
- </router-link>
49
+ </ClassicPopover>
39
50
  </div>
40
51
  </template>
41
52
 
@@ -52,23 +63,24 @@ import { Organisation } from "@/stores/class/general/organisation";
52
63
  const OrganisationChooserLight = defineAsyncComponent(
53
64
  () => import("../display/organisation/OrganisationChooserLight.vue"),
54
65
  );
66
+ import ClassicPopover from "../misc/ClassicPopover.vue";
55
67
  export default defineComponent({
56
- name: "LeftMenu",
68
+ name: "MobileMenu",
57
69
  components: {
58
70
  OrganisationChooserLight,
71
+ ClassicPopover
59
72
  },
60
73
  mixins: [orgaFilter],
61
74
  props: {
62
75
  isEducation: { default: false, type: Boolean },
63
76
  },
64
- emits: ["close"],
65
77
  data() {
66
78
  return {
67
79
  organisationId: undefined as string | undefined,
68
80
  reset: false as boolean,
69
81
  };
70
82
  },
71
- computed: {
83
+ computed:{
72
84
  ...mapState(useGeneralStore, ["storedCategories"]),
73
85
  ...mapState(useFilterStore, [
74
86
  "filterLive",
@@ -110,7 +122,7 @@ export default defineComponent({
110
122
  },
111
123
  ];
112
124
  },
113
- categories(): Array<Category> {
125
+ categories(): Array<Category> {
114
126
  return this.storedCategories.filter((c: Category) => {
115
127
  if (this.isPodcastmaker) return c.podcastOrganisationCount;
116
128
  return c.podcastCount;
@@ -143,7 +155,6 @@ export default defineComponent({
143
155
  },
144
156
  },
145
157
  },
146
-
147
158
  methods: {
148
159
  getQueriesRouter(routeName: string) {
149
160
  if (
@@ -159,9 +170,7 @@ export default defineComponent({
159
170
  rubriquesId: this.rubriqueQueryParam,
160
171
  };
161
172
  },
162
- onMenuClick() {
163
- this.$emit("close");
164
- },
173
+
165
174
  async onOrganisationSelected(organisation: Organisation | undefined) {
166
175
  if (organisation?.id) {
167
176
  await this.selectOrganisation(organisation.id);
@@ -170,40 +179,10 @@ export default defineComponent({
170
179
  this.removeSelectedOrga();
171
180
  },
172
181
  },
182
+
173
183
  });
174
184
  </script>
175
185
 
176
186
  <style lang="scss">
177
- .octopus-app {
178
- .left-menu-container {
179
- position: fixed;
180
- top: 3rem;
181
- bottom: 0;
182
- right: 0;
183
- z-index: 10;
184
- background: #fff;
185
- width: 20%;
186
- padding: 2rem;
187
- display: flex;
188
- flex-direction: column;
189
- font-size: 0.9rem;
190
187
 
191
- a {
192
- color: black !important;
193
- font-weight: bold;
194
- margin-bottom: 1rem;
195
- }
196
- /** PHONES*/
197
- @media (max-width: 960px) {
198
- width: 75%;
199
- max-height: 80%;
200
- top: 2.5rem;
201
- overflow-y: auto;
202
- height: 100%;
203
- }
204
- @media (max-width: 450px) {
205
- width: 94%;
206
- }
207
- }
208
- }
209
188
  </style>
@@ -10,7 +10,6 @@
10
10
  rubriquesId: rubriqueQueryParam,
11
11
  },
12
12
  }"
13
- @click="onDisplayMenu(true)"
14
13
  >
15
14
  <img
16
15
  v-if="!filterOrgaId || '' === imgUrl"
@@ -33,7 +32,7 @@
33
32
  width="auto"
34
33
  :defaultanswer="$t('No organisation filter')"
35
34
  :value="organisationId"
36
- class="ms-3 me-2"
35
+ class="ms-3 me-2 hide-phone"
37
36
  :reset="reset"
38
37
  @selected="onOrganisationSelected"
39
38
  />
@@ -82,11 +81,8 @@
82
81
  </div>
83
82
  </ClassicPopover>
84
83
  </div>
85
- <button
86
- class="btn-transparent saooti-menu"
87
- :title="$t('open left Menu')"
88
- @click="onDisplayMenu(false)"
89
- />
84
+ <MobileMenu :is-education="isEducation"/>
85
+
90
86
  <div class="d-flex flex-column">
91
87
  <div class="d-flex justify-content-end flex-nowrap">
92
88
  <HomeDropdown :is-education="isEducation" />
@@ -117,19 +113,21 @@ import { defineComponent, defineAsyncComponent } from "vue";
117
113
  const OrganisationChooserLight = defineAsyncComponent(
118
114
  () => import("../display/organisation/OrganisationChooserLight.vue"),
119
115
  );
116
+ const MobileMenu = defineAsyncComponent(
117
+ () => import("./MobileMenu.vue"),
118
+ );
120
119
  export default defineComponent({
121
120
  name: "TopBar",
122
121
  components: {
123
122
  OrganisationChooserLight,
124
123
  HomeDropdown,
125
124
  ClassicPopover,
125
+ MobileMenu
126
126
  },
127
127
  mixins: [orgaFilter, imageProxy],
128
128
  props: {
129
- displayMenu: { default: false, type: Boolean },
130
129
  isEducation: { default: false, type: Boolean },
131
130
  },
132
- emits: ["update:displayMenu"],
133
131
  data() {
134
132
  return {
135
133
  scrolled: false as boolean,
@@ -259,12 +257,6 @@ export default defineComponent({
259
257
  if (this.minScroll < window.scrollY) {
260
258
  this.minScroll = window.scrollY;
261
259
  }
262
- if (!this.scrolled) {
263
- this.$emit("update:displayMenu", false);
264
- }
265
- },
266
- onDisplayMenu(param: boolean): void {
267
- this.$emit("update:displayMenu", param ? false : !this.displayMenu);
268
260
  },
269
261
  async onOrganisationSelected(
270
262
  organisation: Organisation | undefined,
@@ -327,7 +319,6 @@ export default defineComponent({
327
319
  }
328
320
  /** PHONES*/
329
321
  @media (max-width: 960px) {
330
- .default-multiselect-width,
331
322
  .link-hover {
332
323
  display: none;
333
324
  }
package/src/locale/de.ts CHANGED
@@ -349,4 +349,5 @@ export default {
349
349
  "Chronological":"Chronologisch",
350
350
  "Trigger automatic reading if this is possible":"Wenn möglich, automatisches Auslesen auslösen",
351
351
  "High version":"Hohe Version",
352
+ "Advanced sharing":"Erweitertes Teilen",
352
353
  }
package/src/locale/en.ts CHANGED
@@ -18,7 +18,7 @@ export default {
18
18
  "See my statistics": "Audience Report",
19
19
  "Edit / Delete episodes": "My episodes",
20
20
  "Welcome in the Backoffice": "Administration",
21
- "Please set an animator": "Please select or create a facilitator.",
21
+ "Please set an animator": "Please select or create a host.",
22
22
  "Term of use": "Terms of use",
23
23
  "Producted by : ": "Produced by : ",
24
24
  "Loading podcasts ...": "Loading podcasts ...",
@@ -349,4 +349,5 @@ export default {
349
349
  "Chronological":"Chronological",
350
350
  "Trigger automatic reading if this is possible":"Trigger automatic reading if this is possible",
351
351
  "High version":"High version",
352
+ "Advanced sharing":"Advanced sharing",
352
353
  };
package/src/locale/es.ts CHANGED
@@ -350,4 +350,5 @@ export default {
350
350
  "Chronological":"Cronológico",
351
351
  "Trigger automatic reading if this is possible":"Activar la lectura automática si esto es posible",
352
352
  "High version":"Versión alta",
353
+ "Advanced sharing":"Reparto adelantado",
353
354
  }
package/src/locale/fr.ts CHANGED
@@ -356,4 +356,5 @@ export default {
356
356
  "Chronological":"Chronologique",
357
357
  "Trigger automatic reading if this is possible":"Déclencher la lecture automatique si celle ci est possible",
358
358
  "High version":"Version en hauteur",
359
+ "Advanced sharing":"Partage avancé",
359
360
  };
package/src/locale/it.ts CHANGED
@@ -342,4 +342,5 @@ export default{
342
342
  "Chronological":"Cronologico",
343
343
  "Trigger automatic reading if this is possible":"Attivare la lettura automatica, se possibile",
344
344
  "High version":"Versione alta",
345
+ "Advanced sharing":"Condivisione avanzata",
345
346
  };
package/src/locale/sl.ts CHANGED
@@ -339,4 +339,5 @@ export default {
339
339
  "Chronological":"Kronološko",
340
340
  "Trigger automatic reading if this is possible":"Sprožite samodejno branje, če je to mogoče",
341
341
  "High version":"Visoka različica",
342
+ "Advanced sharing":"Napredno deljenje",
342
343
  }
@@ -211,6 +211,11 @@ const routes: Array<RouteRecordRaw> = [
211
211
  path: "/main/pub/contact",
212
212
  component: Home,
213
213
  },
214
+ {
215
+ path: "/main/priv/share",
216
+ name: "advancedShare",
217
+ component: Home,
218
+ },
214
219
  {
215
220
  path: "/main/pub/cgu",
216
221
  component: Home,
@@ -3,16 +3,16 @@ import { Category } from "./class/general/category";
3
3
 
4
4
  const state: ParamStore = {
5
5
  generalParameters: {
6
- organisationId: undefined/* "ecbd98d9-79bd-4312-ad5e-fc7c1c4a191c" */,
7
- authenticated: false,
8
- isAdmin: false,
9
- isRoleLive: false,
10
- isCommments: false,
11
- isOrganisation: false,
12
- isPlaylist: false,
13
- isProduction: false,
14
- isContribution: false,
15
- ApiUri: "https://api.staging.saooti.org/",
6
+ organisationId:"ecbd98d9-79bd-4312-ad5e-fc7c1c4a191c",
7
+ authenticated: true,
8
+ isAdmin: true,
9
+ isRoleLive: true,
10
+ isCommments: true,
11
+ isOrganisation:true,
12
+ isPlaylist: true,
13
+ isProduction: true,
14
+ isContribution: true,
15
+ ApiUri: "https://api.dev2.saooti.org/",
16
16
  podcastmaker: false,
17
17
  buttonPlus: true,
18
18
  allCategories: [],
@@ -26,8 +26,8 @@ const state: ParamStore = {
26
26
  SharePlayer: true,
27
27
  ShareButtons: true,
28
28
  ShareDistribution: true,
29
- MiniplayerUri: "https://playerbeta.staging.saooti.org/",
30
- hlsUri: "https://hls.live.staging.saooti.org/",
29
+ MiniplayerUri: "https://playerbeta.dev2.saooti.org/",
30
+ hlsUri: "https://hls.live.dev2.saooti.org/",
31
31
  mainRubrique: 0,
32
32
  resourceUrl: undefined,
33
33
  podcastItemShowEmission: false,
@@ -79,13 +79,13 @@ const state: ParamStore = {
79
79
  userName: "",
80
80
  },
81
81
  octopusApi: {
82
- url: "https://api.staging.saooti.org/",
83
- commentsUrl: "https://comments.staging.saooti.org/",
84
- imageUrl: "https://imageproxy.staging.saooti.org/",
85
- studioUrl: "https://studio.staging.saooti.org/",
86
- playerUrl: "https://playerbeta.staging.saooti.org/",
87
- speechToTextUrl: "https://speech2text.staging.saooti.org/",
88
- recoUrl: "https://reco.staging.saooti.org/",
82
+ url: "https://api.dev2.saooti.org/",
83
+ commentsUrl: "https://comments.dev2.saooti.org/",
84
+ imageUrl: "https://imageproxy.dev2.saooti.org/",
85
+ studioUrl: "https://studio.dev2.saooti.org/",
86
+ playerUrl: "https://playerbeta.dev2.saooti.org/",
87
+ speechToTextUrl: "https://speech2text.dev2.saooti.org/",
88
+ recoUrl: "https://reco.dev2.saooti.org/",
89
89
  organisationId: undefined,
90
90
  rubriqueIdFilter: undefined,
91
91
  },