feat: convert home page to be cms supported.
This commit is contained in:
@@ -206,6 +206,215 @@ export interface Page {
|
||||
media?: (number | null) | Media;
|
||||
};
|
||||
layout: (CallToActionBlock | ContentBlock | MediaBlock | ArchiveBlock | FormBlock)[];
|
||||
/**
|
||||
* Edit the homepage in the same order it appears on the frontend. The generic Hero and Content tabs are hidden for the home page to avoid duplicate controls.
|
||||
*/
|
||||
home?: {
|
||||
/**
|
||||
* Top full-screen gala image, badge, headline, intro text, primary buttons, video trigger, and partner ticker.
|
||||
*/
|
||||
hero?: {
|
||||
/**
|
||||
* Current frontend image: /images/gala-saal-overview.jpg
|
||||
*/
|
||||
backgroundImage?: (number | null) | Media;
|
||||
imageAlt?: string | null;
|
||||
badge?: string | null;
|
||||
headingLine1?: string | null;
|
||||
headingAccent?: string | null;
|
||||
description?: string | null;
|
||||
primaryCta?: {
|
||||
label?: string | null;
|
||||
url?: string | null;
|
||||
};
|
||||
secondaryCta?: {
|
||||
label?: string | null;
|
||||
url?: string | null;
|
||||
};
|
||||
videoLabel?: string | null;
|
||||
partnersLabel?: string | null;
|
||||
partners?:
|
||||
| {
|
||||
name?: string | null;
|
||||
id?: string | null;
|
||||
}[]
|
||||
| null;
|
||||
};
|
||||
/**
|
||||
* Cream text panel plus right-side stage image and five eligibility rows.
|
||||
*/
|
||||
quickCheck?: {
|
||||
eyebrow?: string | null;
|
||||
heading?: string | null;
|
||||
/**
|
||||
* Current frontend image: /images/buehne-gewinner.jpg
|
||||
*/
|
||||
image?: (number | null) | Media;
|
||||
imageAlt?: string | null;
|
||||
body?: string | null;
|
||||
criteria?:
|
||||
| {
|
||||
label?: string | null;
|
||||
desc?: string | null;
|
||||
id?: string | null;
|
||||
}[]
|
||||
| null;
|
||||
note?: string | null;
|
||||
cta?: {
|
||||
label?: string | null;
|
||||
url?: string | null;
|
||||
};
|
||||
};
|
||||
/**
|
||||
* Jubilation image, stats, editorial quote, body copy, and CTA.
|
||||
*/
|
||||
intro?: {
|
||||
eyebrow?: string | null;
|
||||
heading?: string | null;
|
||||
/**
|
||||
* Current frontend image: /images/preistraeger-jubel.jpg
|
||||
*/
|
||||
image?: (number | null) | Media;
|
||||
imageAlt?: string | null;
|
||||
stats?:
|
||||
| {
|
||||
value?: string | null;
|
||||
label?: string | null;
|
||||
id?: string | null;
|
||||
}[]
|
||||
| null;
|
||||
quote?: string | null;
|
||||
body?: string | null;
|
||||
cta?: {
|
||||
label?: string | null;
|
||||
url?: string | null;
|
||||
};
|
||||
};
|
||||
/**
|
||||
* Three-slide status module shown after the award intro.
|
||||
*/
|
||||
status?: {
|
||||
/**
|
||||
* Only this selected phase is rendered on the frontend; visitors do not see a slider.
|
||||
*/
|
||||
activePhase?: ('0' | '1' | '2') | null;
|
||||
phases?:
|
||||
| {
|
||||
num?: string | null;
|
||||
tag?: string | null;
|
||||
pulse?: boolean | null;
|
||||
phase?: string | null;
|
||||
headline?: string | null;
|
||||
body?: string | null;
|
||||
cta?: {
|
||||
label?: string | null;
|
||||
url?: string | null;
|
||||
};
|
||||
accent?: string | null;
|
||||
bg?: string | null;
|
||||
glow?: string | null;
|
||||
meta?: string | null;
|
||||
successApplications?: string | null;
|
||||
successWinners?: string | null;
|
||||
membershipCta?: {
|
||||
label?: string | null;
|
||||
url?: string | null;
|
||||
};
|
||||
id?: string | null;
|
||||
}[]
|
||||
| null;
|
||||
noActionLabel?: string | null;
|
||||
};
|
||||
/**
|
||||
* Blue card grid with featured winner relationships.
|
||||
*/
|
||||
winners?: {
|
||||
eyebrow?: string | null;
|
||||
heading?: string | null;
|
||||
cta?: {
|
||||
label?: string | null;
|
||||
url?: string | null;
|
||||
};
|
||||
/**
|
||||
* Choose the winner cards shown on the home page. If empty, the latest 2025 winners are used.
|
||||
*/
|
||||
featured?: (number | Preistraeger)[] | null;
|
||||
};
|
||||
/**
|
||||
* Portrait carousel and quote copy.
|
||||
*/
|
||||
testimonials?: {
|
||||
eyebrow?: string | null;
|
||||
heading?: string | null;
|
||||
items?:
|
||||
| {
|
||||
image?: (number | null) | Media;
|
||||
imageUrl?: string | null;
|
||||
name?: string | null;
|
||||
role?: string | null;
|
||||
company?: string | null;
|
||||
year?: string | null;
|
||||
quote?: string | null;
|
||||
id?: string | null;
|
||||
}[]
|
||||
| null;
|
||||
};
|
||||
/**
|
||||
* Cream left panel and networking image.
|
||||
*/
|
||||
benefits?: {
|
||||
eyebrow?: string | null;
|
||||
heading?: string | null;
|
||||
/**
|
||||
* Current frontend image: /images/networking-innenhof.jpg
|
||||
*/
|
||||
image?: (number | null) | Media;
|
||||
imageAlt?: string | null;
|
||||
imageLabel?: string | null;
|
||||
items?:
|
||||
| {
|
||||
num?: string | null;
|
||||
title?: string | null;
|
||||
desc?: string | null;
|
||||
id?: string | null;
|
||||
}[]
|
||||
| null;
|
||||
};
|
||||
/**
|
||||
* Final application pitch, award image, embedded form heading, and footnote.
|
||||
*/
|
||||
application?: {
|
||||
eyebrow?: string | null;
|
||||
heading?: string | null;
|
||||
body?: string | null;
|
||||
benefits?:
|
||||
| {
|
||||
num?: string | null;
|
||||
label?: string | null;
|
||||
desc?: string | null;
|
||||
id?: string | null;
|
||||
}[]
|
||||
| null;
|
||||
/**
|
||||
* Current frontend image: /images/preisuebergabe.jpg
|
||||
*/
|
||||
awardImage?: (number | null) | Media;
|
||||
awardImageAlt?: string | null;
|
||||
awardCaption?: string | null;
|
||||
formEyebrow?: string | null;
|
||||
formTitle?: string | null;
|
||||
footnote?: string | null;
|
||||
footnoteStrong?: string | null;
|
||||
};
|
||||
/**
|
||||
* Copy shown when the hero video button is clicked.
|
||||
*/
|
||||
videoModal?: {
|
||||
title?: string | null;
|
||||
description?: string | null;
|
||||
closeLabel?: string | null;
|
||||
};
|
||||
};
|
||||
meta?: {
|
||||
title?: string | null;
|
||||
/**
|
||||
@@ -818,6 +1027,48 @@ export interface Form {
|
||||
updatedAt: string;
|
||||
createdAt: string;
|
||||
}
|
||||
/**
|
||||
* This interface was referenced by `Config`'s JSON-Schema
|
||||
* via the `definition` "preistraeger".
|
||||
*/
|
||||
export interface Preistraeger {
|
||||
id: number;
|
||||
title: string;
|
||||
image?: (number | null) | Media;
|
||||
category?: string | null;
|
||||
year?: number | null;
|
||||
awardType?: string | null;
|
||||
shortDesc?: string | null;
|
||||
longDesc?: string | null;
|
||||
/**
|
||||
* Fallback description. Prefer Kurzbeschreibung / Langbeschreibung for migrated Preisträger content.
|
||||
*/
|
||||
description?: string | null;
|
||||
quote?: string | null;
|
||||
quotePerson?: string | null;
|
||||
quoteRole?: string | null;
|
||||
location?: string | null;
|
||||
industry?: string | null;
|
||||
website?: string | null;
|
||||
hasMedia?: boolean | null;
|
||||
/**
|
||||
* Route in the legacy SPA used for previewing the current migrated Preisträger state.
|
||||
*/
|
||||
spaPath?: string | null;
|
||||
publishedAt?: string | null;
|
||||
meta?: {
|
||||
title?: string | null;
|
||||
description?: string | null;
|
||||
};
|
||||
/**
|
||||
* When enabled, the slug will auto-generate from the title field on save and autosave.
|
||||
*/
|
||||
generateSlug?: boolean | null;
|
||||
slug: string;
|
||||
updatedAt: string;
|
||||
createdAt: string;
|
||||
_status?: ('draft' | 'published') | null;
|
||||
}
|
||||
/**
|
||||
* This interface was referenced by `Config`'s JSON-Schema
|
||||
* via the `definition` "events".
|
||||
@@ -869,48 +1120,6 @@ export interface Event {
|
||||
createdAt: string;
|
||||
_status?: ('draft' | 'published') | null;
|
||||
}
|
||||
/**
|
||||
* This interface was referenced by `Config`'s JSON-Schema
|
||||
* via the `definition` "preistraeger".
|
||||
*/
|
||||
export interface Preistraeger {
|
||||
id: number;
|
||||
title: string;
|
||||
image?: (number | null) | Media;
|
||||
category?: string | null;
|
||||
year?: number | null;
|
||||
awardType?: string | null;
|
||||
shortDesc?: string | null;
|
||||
longDesc?: string | null;
|
||||
/**
|
||||
* Fallback description. Prefer Kurzbeschreibung / Langbeschreibung for migrated Preisträger content.
|
||||
*/
|
||||
description?: string | null;
|
||||
quote?: string | null;
|
||||
quotePerson?: string | null;
|
||||
quoteRole?: string | null;
|
||||
location?: string | null;
|
||||
industry?: string | null;
|
||||
website?: string | null;
|
||||
hasMedia?: boolean | null;
|
||||
/**
|
||||
* Route in the legacy SPA used for previewing the current migrated Preisträger state.
|
||||
*/
|
||||
spaPath?: string | null;
|
||||
publishedAt?: string | null;
|
||||
meta?: {
|
||||
title?: string | null;
|
||||
description?: string | null;
|
||||
};
|
||||
/**
|
||||
* When enabled, the slug will auto-generate from the title field on save and autosave.
|
||||
*/
|
||||
generateSlug?: boolean | null;
|
||||
slug: string;
|
||||
updatedAt: string;
|
||||
createdAt: string;
|
||||
_status?: ('draft' | 'published') | null;
|
||||
}
|
||||
/**
|
||||
* This interface was referenced by `Config`'s JSON-Schema
|
||||
* via the `definition` "redirects".
|
||||
@@ -1228,6 +1437,198 @@ export interface PagesSelect<T extends boolean = true> {
|
||||
archive?: T | ArchiveBlockSelect<T>;
|
||||
formBlock?: T | FormBlockSelect<T>;
|
||||
};
|
||||
home?:
|
||||
| T
|
||||
| {
|
||||
hero?:
|
||||
| T
|
||||
| {
|
||||
backgroundImage?: T;
|
||||
imageAlt?: T;
|
||||
badge?: T;
|
||||
headingLine1?: T;
|
||||
headingAccent?: T;
|
||||
description?: T;
|
||||
primaryCta?:
|
||||
| T
|
||||
| {
|
||||
label?: T;
|
||||
url?: T;
|
||||
};
|
||||
secondaryCta?:
|
||||
| T
|
||||
| {
|
||||
label?: T;
|
||||
url?: T;
|
||||
};
|
||||
videoLabel?: T;
|
||||
partnersLabel?: T;
|
||||
partners?:
|
||||
| T
|
||||
| {
|
||||
name?: T;
|
||||
id?: T;
|
||||
};
|
||||
};
|
||||
quickCheck?:
|
||||
| T
|
||||
| {
|
||||
eyebrow?: T;
|
||||
heading?: T;
|
||||
image?: T;
|
||||
imageAlt?: T;
|
||||
body?: T;
|
||||
criteria?:
|
||||
| T
|
||||
| {
|
||||
label?: T;
|
||||
desc?: T;
|
||||
id?: T;
|
||||
};
|
||||
note?: T;
|
||||
cta?:
|
||||
| T
|
||||
| {
|
||||
label?: T;
|
||||
url?: T;
|
||||
};
|
||||
};
|
||||
intro?:
|
||||
| T
|
||||
| {
|
||||
eyebrow?: T;
|
||||
heading?: T;
|
||||
image?: T;
|
||||
imageAlt?: T;
|
||||
stats?:
|
||||
| T
|
||||
| {
|
||||
value?: T;
|
||||
label?: T;
|
||||
id?: T;
|
||||
};
|
||||
quote?: T;
|
||||
body?: T;
|
||||
cta?:
|
||||
| T
|
||||
| {
|
||||
label?: T;
|
||||
url?: T;
|
||||
};
|
||||
};
|
||||
status?:
|
||||
| T
|
||||
| {
|
||||
activePhase?: T;
|
||||
phases?:
|
||||
| T
|
||||
| {
|
||||
num?: T;
|
||||
tag?: T;
|
||||
pulse?: T;
|
||||
phase?: T;
|
||||
headline?: T;
|
||||
body?: T;
|
||||
cta?:
|
||||
| T
|
||||
| {
|
||||
label?: T;
|
||||
url?: T;
|
||||
};
|
||||
accent?: T;
|
||||
bg?: T;
|
||||
glow?: T;
|
||||
meta?: T;
|
||||
successApplications?: T;
|
||||
successWinners?: T;
|
||||
membershipCta?:
|
||||
| T
|
||||
| {
|
||||
label?: T;
|
||||
url?: T;
|
||||
};
|
||||
id?: T;
|
||||
};
|
||||
noActionLabel?: T;
|
||||
};
|
||||
winners?:
|
||||
| T
|
||||
| {
|
||||
eyebrow?: T;
|
||||
heading?: T;
|
||||
cta?:
|
||||
| T
|
||||
| {
|
||||
label?: T;
|
||||
url?: T;
|
||||
};
|
||||
featured?: T;
|
||||
};
|
||||
testimonials?:
|
||||
| T
|
||||
| {
|
||||
eyebrow?: T;
|
||||
heading?: T;
|
||||
items?:
|
||||
| T
|
||||
| {
|
||||
image?: T;
|
||||
imageUrl?: T;
|
||||
name?: T;
|
||||
role?: T;
|
||||
company?: T;
|
||||
year?: T;
|
||||
quote?: T;
|
||||
id?: T;
|
||||
};
|
||||
};
|
||||
benefits?:
|
||||
| T
|
||||
| {
|
||||
eyebrow?: T;
|
||||
heading?: T;
|
||||
image?: T;
|
||||
imageAlt?: T;
|
||||
imageLabel?: T;
|
||||
items?:
|
||||
| T
|
||||
| {
|
||||
num?: T;
|
||||
title?: T;
|
||||
desc?: T;
|
||||
id?: T;
|
||||
};
|
||||
};
|
||||
application?:
|
||||
| T
|
||||
| {
|
||||
eyebrow?: T;
|
||||
heading?: T;
|
||||
body?: T;
|
||||
benefits?:
|
||||
| T
|
||||
| {
|
||||
num?: T;
|
||||
label?: T;
|
||||
desc?: T;
|
||||
id?: T;
|
||||
};
|
||||
awardImage?: T;
|
||||
awardImageAlt?: T;
|
||||
awardCaption?: T;
|
||||
formEyebrow?: T;
|
||||
formTitle?: T;
|
||||
footnote?: T;
|
||||
footnoteStrong?: T;
|
||||
};
|
||||
videoModal?:
|
||||
| T
|
||||
| {
|
||||
title?: T;
|
||||
description?: T;
|
||||
closeLabel?: T;
|
||||
};
|
||||
};
|
||||
meta?:
|
||||
| T
|
||||
| {
|
||||
|
||||
Reference in New Issue
Block a user