Compare commits

...

2 commits

Author SHA1 Message Date
87e3053fab added seo 2025-01-05 18:31:40 +01:00
00ccbf8752 add consitent values to lists 2025-01-05 16:56:49 +01:00
11 changed files with 3118 additions and 2191 deletions

14
package-lock.json generated
View file

@ -8,7 +8,7 @@
"name": "webpage-cms", "name": "webpage-cms",
"version": "1.0.0", "version": "1.0.0",
"dependencies": { "dependencies": {
"@offset-dev/strapi-calendar": "^1.0.0-beta.1", "@offset-dev/strapi-calendar": "^1.0.0",
"@strapi/plugin-color-picker": "^5.1.1", "@strapi/plugin-color-picker": "^5.1.1",
"@strapi/plugin-documentation": "^5.1.1", "@strapi/plugin-documentation": "^5.1.1",
"@strapi/plugin-graphql": "^5.1.1", "@strapi/plugin-graphql": "^5.1.1",
@ -1668,9 +1668,9 @@
} }
}, },
"node_modules/@offset-dev/strapi-calendar": { "node_modules/@offset-dev/strapi-calendar": {
"version": "1.0.0-beta.1", "version": "1.0.0",
"resolved": "https://registry.npmjs.org/@offset-dev/strapi-calendar/-/strapi-calendar-1.0.0-beta.1.tgz", "resolved": "https://registry.npmjs.org/@offset-dev/strapi-calendar/-/strapi-calendar-1.0.0.tgz",
"integrity": "sha512-ipMPvE7D94FV8UaBElagdWO/pIyGEZXi880jjcE+mQZtavDwOD6ZyJKelRENTeMKxjN0zDT1Q13oAAJuJMG/iQ==", "integrity": "sha512-ZsMLnJKRXprFScTVIP1psAppoOeWnHNv3BpuJXiIxTnY16tLIG2PHPiWDWtA/aGh/yfqhUg1W5YMMlcLqmDOlA==",
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
"@fullcalendar/core": "^6.1.15", "@fullcalendar/core": "^6.1.15",
@ -22415,9 +22415,9 @@
} }
}, },
"@offset-dev/strapi-calendar": { "@offset-dev/strapi-calendar": {
"version": "1.0.0-beta.1", "version": "1.0.0",
"resolved": "https://registry.npmjs.org/@offset-dev/strapi-calendar/-/strapi-calendar-1.0.0-beta.1.tgz", "resolved": "https://registry.npmjs.org/@offset-dev/strapi-calendar/-/strapi-calendar-1.0.0.tgz",
"integrity": "sha512-ipMPvE7D94FV8UaBElagdWO/pIyGEZXi880jjcE+mQZtavDwOD6ZyJKelRENTeMKxjN0zDT1Q13oAAJuJMG/iQ==", "integrity": "sha512-ZsMLnJKRXprFScTVIP1psAppoOeWnHNv3BpuJXiIxTnY16tLIG2PHPiWDWtA/aGh/yfqhUg1W5YMMlcLqmDOlA==",
"requires": { "requires": {
"@fullcalendar/core": "^6.1.15", "@fullcalendar/core": "^6.1.15",
"@fullcalendar/daygrid": "^6.1.15", "@fullcalendar/daygrid": "^6.1.15",

View file

@ -11,7 +11,7 @@
"strapi": "strapi" "strapi": "strapi"
}, },
"dependencies": { "dependencies": {
"@offset-dev/strapi-calendar": "^1.0.0-beta.1", "@offset-dev/strapi-calendar": "^1.0.0",
"@strapi/plugin-color-picker": "^5.1.1", "@strapi/plugin-color-picker": "^5.1.1",
"@strapi/plugin-documentation": "^5.1.1", "@strapi/plugin-documentation": "^5.1.1",
"@strapi/plugin-graphql": "^5.1.1", "@strapi/plugin-graphql": "^5.1.1",

View file

@ -35,25 +35,19 @@
"image": { "image": {
"type": "media", "type": "media",
"multiple": false, "multiple": false,
"required": true, "allowedTypes": ["images"],
"allowedTypes": [
"images"
],
"pluginOptions": {} "pluginOptions": {}
}, },
"attachment": { "attachment": {
"type": "media", "type": "media",
"multiple": true, "multiple": true,
"required": false, "required": false,
"allowedTypes": [ "allowedTypes": ["images"],
"images"
],
"pluginOptions": {} "pluginOptions": {}
}, },
"date": { "date": {
"pluginOptions": {}, "pluginOptions": {},
"type": "date", "type": "date"
"required": true
} }
} }
} }

View file

@ -28,10 +28,26 @@
"targetField": "title", "targetField": "title",
"required": true "required": true
}, },
"content": {
"pluginOptions": {},
"type": "blocks"
},
"image": {
"type": "media",
"multiple": false,
"allowedTypes": ["images"],
"pluginOptions": {}
},
"attachment": {
"type": "media",
"multiple": true,
"required": false,
"allowedTypes": ["images"],
"pluginOptions": {}
},
"date": { "date": {
"pluginOptions": {}, "pluginOptions": {},
"type": "datetime", "type": "date"
"required": true
} }
} }
} }

View file

@ -24,6 +24,11 @@
"repeatable": false, "repeatable": false,
"pluginOptions": {}, "pluginOptions": {},
"component": "global.footer" "component": "global.footer"
},
"SEO": {
"type": "component",
"repeatable": false,
"component": "shared.seo"
} }
} }
} }

View file

@ -28,22 +28,26 @@
"targetField": "title", "targetField": "title",
"required": true "required": true
}, },
"content": {
"pluginOptions": {},
"type": "blocks"
},
"image": {
"type": "media",
"multiple": false,
"allowedTypes": ["images"],
"pluginOptions": {}
},
"attachment": { "attachment": {
"type": "media", "type": "media",
"multiple": true, "multiple": true,
"required": false, "required": false,
"allowedTypes": [ "allowedTypes": ["images"],
"images"
],
"pluginOptions": {} "pluginOptions": {}
}, },
"date": { "date": {
"pluginOptions": {}, "pluginOptions": {},
"type": "datetime", "type": "date"
"required": true
},
"content": {
"type": "blocks"
} }
} }
} }

View file

@ -34,20 +34,19 @@
"image": { "image": {
"type": "media", "type": "media",
"multiple": false, "multiple": false,
"required": true, "allowedTypes": ["images"],
"allowedTypes": [
"images"
],
"pluginOptions": {} "pluginOptions": {}
}, },
"attachment": { "attachment": {
"type": "media", "type": "media",
"multiple": true, "multiple": true,
"required": false, "required": false,
"allowedTypes": [ "allowedTypes": ["images"],
"images"
],
"pluginOptions": {} "pluginOptions": {}
},
"date": {
"pluginOptions": {},
"type": "date"
} }
} }
} }

View file

@ -0,0 +1,25 @@
{
"collectionName": "components_shared_seos",
"info": {
"displayName": "seo",
"icon": "search",
"description": ""
},
"options": {},
"attributes": {
"metaTitle": {
"required": true,
"type": "string",
"maxLength": 60
},
"metaDescription": {
"type": "string",
"required": true,
"minLength": 50
},
"keywords": {
"type": "text",
"regex": "[^,]+"
}
}
}

View file

@ -1,26 +1,24 @@
import type { Schema, Struct } from '@strapi/strapi'; import type { Schema, Struct } from "@strapi/strapi";
export interface DynamicZoneColumnImageText extends Struct.ComponentSchema { export interface DynamicZoneColumnImageText extends Struct.ComponentSchema {
collectionName: 'components_dynamic_zone_column_image_texts'; collectionName: "components_dynamic_zone_column_image_texts";
info: { info: {
description: ''; description: "";
displayName: 'Text-Bild-Spalte'; displayName: "Text-Bild-Spalte";
icon: 'bulletList'; icon: "bulletList";
}; };
attributes: { attributes: {
image: Schema.Attribute.Media<'images'> & Schema.Attribute.Required; image: Schema.Attribute.Media<"images"> & Schema.Attribute.Required;
image_left: Schema.Attribute.Boolean & image_left: Schema.Attribute.Boolean & Schema.Attribute.Required & Schema.Attribute.DefaultTo<true>;
Schema.Attribute.Required &
Schema.Attribute.DefaultTo<true>;
text: Schema.Attribute.Blocks & Schema.Attribute.Required; text: Schema.Attribute.Blocks & Schema.Attribute.Required;
}; };
} }
export interface DynamicZoneDualColumnText extends Struct.ComponentSchema { export interface DynamicZoneDualColumnText extends Struct.ComponentSchema {
collectionName: 'components_dynamic_zone_dual_column_texts'; collectionName: "components_dynamic_zone_dual_column_texts";
info: { info: {
displayName: 'Text-Text-Spalte'; displayName: "Text-Text-Spalte";
icon: 'stack'; icon: "stack";
}; };
attributes: { attributes: {
left_side: Schema.Attribute.Blocks & Schema.Attribute.Required; left_side: Schema.Attribute.Blocks & Schema.Attribute.Required;
@ -29,40 +27,38 @@ export interface DynamicZoneDualColumnText extends Struct.ComponentSchema {
} }
export interface DynamicZoneEmphasiseArticle extends Struct.ComponentSchema { export interface DynamicZoneEmphasiseArticle extends Struct.ComponentSchema {
collectionName: 'components_dynamic_zone_emphasise_articles'; collectionName: "components_dynamic_zone_emphasise_articles";
info: { info: {
description: ''; description: "";
displayName: 'Artikel hervorheben'; displayName: "Artikel hervorheben";
icon: 'dashboard'; icon: "dashboard";
}; };
attributes: { attributes: {
articles: Schema.Attribute.Relation<'oneToMany', 'api::article.article'>; articles: Schema.Attribute.Relation<"oneToMany", "api::article.article">;
base_url: Schema.Attribute.String & base_url: Schema.Attribute.String & Schema.Attribute.Required & Schema.Attribute.DefaultTo<"/artikel">;
Schema.Attribute.Required &
Schema.Attribute.DefaultTo<'/artikel'>;
description: Schema.Attribute.Text; description: Schema.Attribute.Text;
titel: Schema.Attribute.String & Schema.Attribute.Required; titel: Schema.Attribute.String & Schema.Attribute.Required;
}; };
} }
export interface DynamicZoneFullImage extends Struct.ComponentSchema { export interface DynamicZoneFullImage extends Struct.ComponentSchema {
collectionName: 'components_dynamic_zone_full_images'; collectionName: "components_dynamic_zone_full_images";
info: { info: {
description: ''; description: "";
displayName: 'Voll-Bild'; displayName: "Voll-Bild";
icon: 'dashboard'; icon: "dashboard";
}; };
attributes: { attributes: {
image: Schema.Attribute.Media<'images'> & Schema.Attribute.Required; image: Schema.Attribute.Media<"images"> & Schema.Attribute.Required;
}; };
} }
export interface DynamicZoneFullText extends Struct.ComponentSchema { export interface DynamicZoneFullText extends Struct.ComponentSchema {
collectionName: 'components_dynamic_zone_full_texts'; collectionName: "components_dynamic_zone_full_texts";
info: { info: {
description: ''; description: "";
displayName: 'Voll-Text'; displayName: "Voll-Text";
icon: 'dashboard'; icon: "dashboard";
}; };
attributes: { attributes: {
text: Schema.Attribute.Blocks & Schema.Attribute.Required; text: Schema.Attribute.Blocks & Schema.Attribute.Required;
@ -70,142 +66,155 @@ export interface DynamicZoneFullText extends Struct.ComponentSchema {
} }
export interface DynamicZoneGallery extends Struct.ComponentSchema { export interface DynamicZoneGallery extends Struct.ComponentSchema {
collectionName: 'components_dynamic_zone_galleries'; collectionName: "components_dynamic_zone_galleries";
info: { info: {
description: ''; description: "";
displayName: 'Galerie'; displayName: "Galerie";
icon: 'apps'; icon: "apps";
}; };
attributes: { attributes: {
images: Schema.Attribute.Media<'images', true> & Schema.Attribute.Required; images: Schema.Attribute.Media<"images", true> & Schema.Attribute.Required;
}; };
} }
export interface GlobalFooter extends Struct.ComponentSchema { export interface GlobalFooter extends Struct.ComponentSchema {
collectionName: 'components_global_footers'; collectionName: "components_global_footers";
info: { info: {
description: ''; description: "";
displayName: 'Fu\u00DFzeile'; displayName: "Fu\u00DFzeile";
icon: 'apps'; icon: "apps";
}; };
attributes: { attributes: {
copyright: Schema.Attribute.String; copyright: Schema.Attribute.String;
designed_developed_by: Schema.Attribute.String; designed_developed_by: Schema.Attribute.String;
links: Schema.Attribute.Component<'shared.link', true>; links: Schema.Attribute.Component<"shared.link", true>;
}; };
} }
export interface GlobalNavbar extends Struct.ComponentSchema { export interface GlobalNavbar extends Struct.ComponentSchema {
collectionName: 'components_global_navbars'; collectionName: "components_global_navbars";
info: { info: {
description: ''; description: "";
displayName: 'Navigationsleiste'; displayName: "Navigationsleiste";
icon: 'bold'; icon: "bold";
}; };
attributes: { attributes: {
logo: Schema.Attribute.Media<'images'> & Schema.Attribute.Required; logo: Schema.Attribute.Media<"images"> & Schema.Attribute.Required;
navbar_items: Schema.Attribute.Component<'items.navbar-items', true>; navbar_items: Schema.Attribute.Component<"items.navbar-items", true>;
}; };
} }
export interface ItemsNavbarItems extends Struct.ComponentSchema { export interface ItemsNavbarItems extends Struct.ComponentSchema {
collectionName: 'components_items_left_navbar_items'; collectionName: "components_items_left_navbar_items";
info: { info: {
description: ''; description: "";
displayName: 'Navigations-\u00DCberpunkt'; displayName: "Navigations-\u00DCberpunkt";
icon: 'bulletList'; icon: "bulletList";
}; };
attributes: { attributes: {
default_active_child: Schema.Attribute.String; default_active_child: Schema.Attribute.String;
name: Schema.Attribute.String; name: Schema.Attribute.String;
navbar_sub_items: Schema.Attribute.Component< navbar_sub_items: Schema.Attribute.Component<"items.navbar-sub-items", true>;
'items.navbar-sub-items', page: Schema.Attribute.Relation<"oneToOne", "api::page.page">;
true
>;
page: Schema.Attribute.Relation<'oneToOne', 'api::page.page'>;
URL: Schema.Attribute.String; URL: Schema.Attribute.String;
}; };
} }
export interface ItemsNavbarSubItems extends Struct.ComponentSchema { export interface ItemsNavbarSubItems extends Struct.ComponentSchema {
collectionName: 'components_items_navbar_sub_items'; collectionName: "components_items_navbar_sub_items";
info: { info: {
description: ''; description: "";
displayName: 'Navigations-Unterpunkt'; displayName: "Navigations-Unterpunkt";
icon: 'bulletList'; icon: "bulletList";
}; };
attributes: { attributes: {
name: Schema.Attribute.String & Schema.Attribute.Required; name: Schema.Attribute.String & Schema.Attribute.Required;
page: Schema.Attribute.Relation<'oneToOne', 'api::page.page'>; page: Schema.Attribute.Relation<"oneToOne", "api::page.page">;
URL: Schema.Attribute.String & Schema.Attribute.Required; URL: Schema.Attribute.String & Schema.Attribute.Required;
}; };
} }
export interface SharedHero extends Struct.ComponentSchema { export interface SharedHero extends Struct.ComponentSchema {
collectionName: 'components_shared_heroes'; collectionName: "components_shared_heroes";
info: { info: {
description: ''; description: "";
displayName: 'hero'; displayName: "hero";
icon: 'rocket'; icon: "rocket";
}; };
attributes: { attributes: {
banner: Schema.Attribute.Media<'images'> & Schema.Attribute.Required; banner: Schema.Attribute.Media<"images"> & Schema.Attribute.Required;
title: Schema.Attribute.String & Schema.Attribute.Required; title: Schema.Attribute.String & Schema.Attribute.Required;
}; };
} }
export interface SharedLink extends Struct.ComponentSchema { export interface SharedLink extends Struct.ComponentSchema {
collectionName: 'components_shared_links'; collectionName: "components_shared_links";
info: { info: {
description: ''; description: "";
displayName: 'Link'; displayName: "Link";
icon: 'link'; icon: "link";
}; };
attributes: { attributes: {
target: Schema.Attribute.Enumeration< target: Schema.Attribute.Enumeration<["_blank", "_self", "_parent", "_top"]> &
['_blank', '_self', '_parent', '_top']
> &
Schema.Attribute.Required & Schema.Attribute.Required &
Schema.Attribute.DefaultTo<'_self'>; Schema.Attribute.DefaultTo<"_self">;
text: Schema.Attribute.String & Schema.Attribute.Required; text: Schema.Attribute.String & Schema.Attribute.Required;
URL: Schema.Attribute.String & Schema.Attribute.Required; URL: Schema.Attribute.String & Schema.Attribute.Required;
}; };
} }
export interface SharedList extends Struct.ComponentSchema { export interface SharedList extends Struct.ComponentSchema {
collectionName: 'components_shared_lists'; collectionName: "components_shared_lists";
info: { info: {
description: ''; description: "";
displayName: 'Inhaltsauswahl'; displayName: "Inhaltsauswahl";
icon: 'apps'; icon: "apps";
}; };
attributes: { attributes: {
enable_detail: Schema.Attribute.Boolean & enable_detail: Schema.Attribute.Boolean & Schema.Attribute.Required & Schema.Attribute.DefaultTo<false>;
Schema.Attribute.Required & lookup: Schema.Attribute.Relation<"oneToOne", "api::collection-lookup.collection-lookup">;
Schema.Attribute.DefaultTo<false>;
lookup: Schema.Attribute.Relation<
'oneToOne',
'api::collection-lookup.collection-lookup'
>;
}; };
} }
declare module '@strapi/strapi' { export interface SharedSeo extends Struct.ComponentSchema {
collectionName: "components_shared_seos";
info: {
description: "";
displayName: "seo";
icon: "search";
};
attributes: {
keywords: Schema.Attribute.Text;
metaDescription: Schema.Attribute.String &
Schema.Attribute.Required &
Schema.Attribute.SetMinMaxLength<{
minLength: 50;
}>;
metaTitle: Schema.Attribute.String &
Schema.Attribute.Required &
Schema.Attribute.SetMinMaxLength<{
maxLength: 60;
}>;
};
}
declare module "@strapi/strapi" {
export module Public { export module Public {
export interface ComponentSchemas { export interface ComponentSchemas {
'dynamic-zone.column-image-text': DynamicZoneColumnImageText; "dynamic-zone.column-image-text": DynamicZoneColumnImageText;
'dynamic-zone.dual-column-text': DynamicZoneDualColumnText; "dynamic-zone.dual-column-text": DynamicZoneDualColumnText;
'dynamic-zone.emphasise-article': DynamicZoneEmphasiseArticle; "dynamic-zone.emphasise-article": DynamicZoneEmphasiseArticle;
'dynamic-zone.full-image': DynamicZoneFullImage; "dynamic-zone.full-image": DynamicZoneFullImage;
'dynamic-zone.full-text': DynamicZoneFullText; "dynamic-zone.full-text": DynamicZoneFullText;
'dynamic-zone.gallery': DynamicZoneGallery; "dynamic-zone.gallery": DynamicZoneGallery;
'global.footer': GlobalFooter; "global.footer": GlobalFooter;
'global.navbar': GlobalNavbar; "global.navbar": GlobalNavbar;
'items.navbar-items': ItemsNavbarItems; "items.navbar-items": ItemsNavbarItems;
'items.navbar-sub-items': ItemsNavbarSubItems; "items.navbar-sub-items": ItemsNavbarSubItems;
'shared.hero': SharedHero; "shared.hero": SharedHero;
'shared.link': SharedLink; "shared.link": SharedLink;
'shared.list': SharedList; "shared.list": SharedList;
"shared.seo": SharedSeo;
} }
} }
} }

File diff suppressed because it is too large Load diff