@saooti/octopus-sdk 38.0.2 → 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 +0 -1
- package/package.json +1 -1
- package/src/App.vue +1 -7
- package/src/assets/general.scss +13 -1
- package/src/components/display/sharing/ShareButtonsIntern.vue +3 -0
- package/src/components/form/ClassicCheckbox.vue +1 -1
- package/src/components/form/ClassicRadio.vue +1 -1
- package/src/components/misc/ClassicAccordion.vue +2 -2
- package/src/components/misc/ClassicPopover.vue +2 -0
- package/src/components/misc/HomeDropdown.vue +12 -0
- package/src/components/misc/{LeftMenu.vue → MobileMenu.vue} +50 -71
- package/src/components/misc/TopBar.vue +7 -16
- package/src/locale/en.ts +1 -1
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
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
|
|
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,
|
package/src/assets/general.scss
CHANGED
|
@@ -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;
|
|
@@ -218,6 +218,9 @@ export default defineComponent({
|
|
|
218
218
|
isProduction() : boolean{
|
|
219
219
|
return state.generalParameters.isProduction as boolean;
|
|
220
220
|
},
|
|
221
|
+
isPodcastmaker(): boolean {
|
|
222
|
+
return state.generalParameters.podcastmaker as boolean;
|
|
223
|
+
},
|
|
221
224
|
rssUrl(): string {
|
|
222
225
|
let api = state.generalParameters.ApiUri + "rss/";
|
|
223
226
|
if (this.emission) {
|
|
@@ -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;
|
|
@@ -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
|
|
3
|
-
<
|
|
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-
|
|
6
|
-
:
|
|
38
|
+
v-for="category in categories"
|
|
39
|
+
:key="category.id"
|
|
40
|
+
class="show-phone-flex octopus-dropdown-item"
|
|
7
41
|
:to="{
|
|
8
|
-
name:
|
|
9
|
-
|
|
42
|
+
name: 'category',
|
|
43
|
+
params: { iabId: category.id },
|
|
44
|
+
query: { productor: filterOrgaId },
|
|
10
45
|
}"
|
|
11
|
-
@click="onMenuClick"
|
|
12
46
|
>
|
|
13
|
-
{{
|
|
47
|
+
{{ category.name }}
|
|
14
48
|
</router-link>
|
|
15
|
-
</
|
|
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: "
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
<
|
|
86
|
-
|
|
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/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
|
|
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 ...",
|