@saooti/octopus-sdk 41.1.11 → 41.1.13
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/CHANGELOG.md +13 -0
- package/package.json +1 -1
- package/src/components/display/emission/EmissionItem.vue +23 -4
- package/src/components/display/podcasts/PodcastModuleBox.vue +14 -6
- package/src/components/layout/PresentationItem.vue +1 -1
- package/src/components/pages/EmissionPage.vue +20 -8
- package/src/components/pages/PodcastPage.vue +6 -6
- package/src/stores/ParamSdkStore.ts +14 -2
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,18 @@
|
|
|
1
1
|
# CHANGELOG
|
|
2
2
|
|
|
3
|
+
## 41.1.13 (18/12/2025)
|
|
4
|
+
|
|
5
|
+
**Misc**
|
|
6
|
+
|
|
7
|
+
- Ajustements affichage pour smartphones
|
|
8
|
+
|
|
9
|
+
## 41.1.12 (18/12/2025)
|
|
10
|
+
|
|
11
|
+
**Feature**
|
|
12
|
+
|
|
13
|
+
- Ajout option de configuration dans `SdkParam` pour désactiver l'affichage des
|
|
14
|
+
mots-clés.
|
|
15
|
+
|
|
3
16
|
## 41.1.11 (16/12/2025)
|
|
4
17
|
|
|
5
18
|
**Misc**
|
package/package.json
CHANGED
|
@@ -73,9 +73,10 @@ import ClassicImageBanner from '../../misc/ClassicImageBanner.vue';
|
|
|
73
73
|
import { useI18n } from "vue-i18n";
|
|
74
74
|
|
|
75
75
|
//Props
|
|
76
|
-
const props = defineProps
|
|
77
|
-
|
|
78
|
-
|
|
76
|
+
const props = defineProps<{
|
|
77
|
+
/** The emission to display */
|
|
78
|
+
emission: Emission;
|
|
79
|
+
}>();
|
|
79
80
|
|
|
80
81
|
//Data
|
|
81
82
|
const activeEmission = ref(true);
|
|
@@ -135,5 +136,23 @@ async function hasPodcast(): Promise<void> {
|
|
|
135
136
|
<style scoped lang="scss">
|
|
136
137
|
article {
|
|
137
138
|
max-height: 254px; // Image size + a few pixels for border
|
|
139
|
+
|
|
140
|
+
// Adjust display for small screens
|
|
141
|
+
@media (width <= 960px) {
|
|
142
|
+
max-height: 500px;
|
|
143
|
+
|
|
144
|
+
a {
|
|
145
|
+
flex-direction: column;
|
|
146
|
+
flex-wrap: nowrap;
|
|
147
|
+
}
|
|
148
|
+
|
|
149
|
+
.element-name {
|
|
150
|
+
font-size: 1rem;
|
|
151
|
+
}
|
|
152
|
+
|
|
153
|
+
.element-description {
|
|
154
|
+
font-size: 0.7rem;
|
|
155
|
+
}
|
|
156
|
+
}
|
|
138
157
|
}
|
|
139
|
-
</style>
|
|
158
|
+
</style>
|
|
@@ -130,7 +130,7 @@
|
|
|
130
130
|
</div>
|
|
131
131
|
</div>
|
|
132
132
|
<TagList
|
|
133
|
-
v-if="
|
|
133
|
+
v-if="showTags"
|
|
134
134
|
:tag-list="tags"
|
|
135
135
|
:orga-id="podcast.organisation.id"
|
|
136
136
|
:podcast-annotations="podcast.annotations"
|
|
@@ -196,11 +196,11 @@ import { useI18n } from "vue-i18n";
|
|
|
196
196
|
import { useRouter } from "vue-router";
|
|
197
197
|
|
|
198
198
|
//Props
|
|
199
|
-
const props = defineProps
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
podcastConference
|
|
203
|
-
})
|
|
199
|
+
const props = defineProps<{
|
|
200
|
+
podcast: Podcast;
|
|
201
|
+
playingPodcast?: Podcast;
|
|
202
|
+
podcastConference?: Conference;
|
|
203
|
+
}>();
|
|
204
204
|
|
|
205
205
|
//Emits
|
|
206
206
|
const emit = defineEmits(["updatePodcast"]);
|
|
@@ -297,4 +297,12 @@ function removeDeleted(): void {
|
|
|
297
297
|
router.push("/");
|
|
298
298
|
}
|
|
299
299
|
}
|
|
300
|
+
|
|
301
|
+
const showTags = computed((): boolean => {
|
|
302
|
+
if (state.emissionsPage.hideTags === true) {
|
|
303
|
+
return false;
|
|
304
|
+
}
|
|
305
|
+
|
|
306
|
+
return undefined !== tags.value && 0 !== tags.value.length;
|
|
307
|
+
});
|
|
300
308
|
</script>
|
|
@@ -60,7 +60,7 @@
|
|
|
60
60
|
|
|
61
61
|
<!-- Tag list -->
|
|
62
62
|
<TagList
|
|
63
|
-
v-if="
|
|
63
|
+
v-if="showTags"
|
|
64
64
|
:tag-list="emission.tags"
|
|
65
65
|
:orga-id="authOrgaId"
|
|
66
66
|
:emission-annotations="emission.annotations"
|
|
@@ -173,16 +173,19 @@ const TagList = defineAsyncComponent(() => import("../display/podcasts/TagList.v
|
|
|
173
173
|
|
|
174
174
|
|
|
175
175
|
//Props
|
|
176
|
-
const props = defineProps
|
|
177
|
-
emissionId:
|
|
178
|
-
pr
|
|
179
|
-
ps
|
|
180
|
-
routeQuery
|
|
176
|
+
const props = withDefaults(defineProps<{
|
|
177
|
+
emissionId: number;
|
|
178
|
+
pr?: number;
|
|
179
|
+
ps?: number;
|
|
180
|
+
routeQuery?: string;
|
|
181
181
|
/** When true, display emission title in podcastmaker header */
|
|
182
|
-
useEmissionTitle
|
|
182
|
+
useEmissionTitle?: boolean;
|
|
183
|
+
}>(), {
|
|
184
|
+
pr: 0,
|
|
185
|
+
ps: 30,
|
|
186
|
+
routeQuery: ''
|
|
183
187
|
});
|
|
184
188
|
|
|
185
|
-
|
|
186
189
|
//Data
|
|
187
190
|
const loaded = ref(false);
|
|
188
191
|
const error = ref(false);
|
|
@@ -271,4 +274,13 @@ function podcastsFetched(podcasts: Array<Podcast>) {
|
|
|
271
274
|
}
|
|
272
275
|
}
|
|
273
276
|
}
|
|
277
|
+
|
|
278
|
+
/** Indicates whether to show tags */
|
|
279
|
+
const showTags = computed((): boolean => {
|
|
280
|
+
if (state.podcastPage.hideTags === true) {
|
|
281
|
+
return false;
|
|
282
|
+
}
|
|
283
|
+
|
|
284
|
+
return undefined !== emission.value.tags && 0 !== emission.value.tags.length;
|
|
285
|
+
});
|
|
274
286
|
</script>
|
|
@@ -110,13 +110,13 @@ const PodcastmakerHeader = defineAsyncComponent(
|
|
|
110
110
|
);
|
|
111
111
|
|
|
112
112
|
//Props
|
|
113
|
-
const props = defineProps
|
|
114
|
-
updateStatus
|
|
115
|
-
playingPodcast
|
|
116
|
-
podcastId:
|
|
113
|
+
const props = defineProps<{
|
|
114
|
+
updateStatus?: string;
|
|
115
|
+
playingPodcast?: Podcast;
|
|
116
|
+
podcastId: number;
|
|
117
117
|
/** When true, display emission title in podcastmaker header */
|
|
118
|
-
useEmissionTitle
|
|
119
|
-
});
|
|
118
|
+
useEmissionTitle?: boolean;
|
|
119
|
+
}>();
|
|
120
120
|
|
|
121
121
|
|
|
122
122
|
//Data
|
|
@@ -24,6 +24,7 @@ const state: ParamStore = {
|
|
|
24
24
|
isVideoPage:false,
|
|
25
25
|
},
|
|
26
26
|
};
|
|
27
|
+
|
|
27
28
|
export interface ParamStore {
|
|
28
29
|
generalParameters: {
|
|
29
30
|
forceOrganisationId?: string;
|
|
@@ -38,6 +39,8 @@ export interface ParamStore {
|
|
|
38
39
|
ShareButtons?: boolean;
|
|
39
40
|
mainRubrique?: number;
|
|
40
41
|
downloadButton?:boolean;
|
|
42
|
+
/** If true, hide tags on podcast page */
|
|
43
|
+
hideTags?: boolean;
|
|
41
44
|
};
|
|
42
45
|
emissionsPage: {
|
|
43
46
|
itemPlayer?: boolean;
|
|
@@ -45,14 +48,23 @@ export interface ParamStore {
|
|
|
45
48
|
mainRubrique?: number;
|
|
46
49
|
buttonMore?: boolean;
|
|
47
50
|
progressBar?: boolean;
|
|
51
|
+
/** If true, hide tags on emission page */
|
|
52
|
+
hideTags?: boolean;
|
|
48
53
|
},
|
|
49
54
|
player: {
|
|
50
55
|
isVideoPage?:boolean;
|
|
51
56
|
};
|
|
52
57
|
}
|
|
53
|
-
const definedProps = (obj:unknown) => Object.fromEntries(Object.entries(obj).filter(([, v]) => v !== undefined));
|
|
54
58
|
|
|
55
|
-
|
|
59
|
+
function definedProps<T>(obj: Partial<T>|undefined): Partial<T> {
|
|
60
|
+
if (obj === undefined) {
|
|
61
|
+
return {};
|
|
62
|
+
} else {
|
|
63
|
+
return Object.fromEntries(Object.entries(obj).filter(([, v]) => v !== undefined)) as Partial<T>;
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
const initialize = function initialize(initObject: Partial<ParamStore>): void {
|
|
56
68
|
state.generalParameters = Object.assign(
|
|
57
69
|
state.generalParameters,
|
|
58
70
|
definedProps(initObject.generalParameters),
|