CMS refactor
This commit is contained in:
@ -2,53 +2,55 @@ import { MarkdownProps } from "../props.js";
|
||||
import { DraftBoolean, Title } from "./widgets.js";
|
||||
|
||||
const AbiturientenCollection = {
|
||||
name: "abiturienten",
|
||||
label: "Abiturienten",
|
||||
label_singular: "Abiturjahrgang",
|
||||
description: "Hier kann die Übersicht der Abiturjahrgänge bearbeitet werden. Dieser Bereich wird von der Schulchronik verwaltet.",
|
||||
icon: "graduation-cap",
|
||||
folder: "content/german/abiturienten",
|
||||
filter: {
|
||||
field: "type",
|
||||
value: "abiturienten"
|
||||
name: "abiturienten",
|
||||
label: "Abiturienten",
|
||||
label_singular: "Abiturjahrgang",
|
||||
description:
|
||||
"Hier kann die Übersicht der Abiturjahrgänge bearbeitet werden. Dieser Bereich wird von der Schulchronik verwaltet.",
|
||||
icon: "graduation-cap",
|
||||
folder: "content/german/abiturienten",
|
||||
filter: {
|
||||
field: "type",
|
||||
value: "abiturienten",
|
||||
},
|
||||
create: true,
|
||||
editor: {
|
||||
preview: true,
|
||||
frame: true,
|
||||
size: "half",
|
||||
},
|
||||
summary_fields: ["title", "draft"],
|
||||
sortable_fields: {
|
||||
fields: ["title"],
|
||||
default: {
|
||||
field: "title",
|
||||
direction: "Descending",
|
||||
},
|
||||
create: true,
|
||||
editor: {
|
||||
preview: true,
|
||||
frame: true
|
||||
},
|
||||
fields: [
|
||||
Title(false),
|
||||
DraftBoolean,
|
||||
{
|
||||
name: "image",
|
||||
label: "Bild",
|
||||
widget: "image",
|
||||
default: "/media/image.webp",
|
||||
required: false,
|
||||
},
|
||||
summary_fields: ["title", "draft"],
|
||||
sortable_fields: {
|
||||
fields: ["title"],
|
||||
default: {
|
||||
field: "title",
|
||||
direction: "Descending"
|
||||
}
|
||||
{
|
||||
name: "type",
|
||||
label: "Typ",
|
||||
widget: "hidden",
|
||||
default: "abiturienten",
|
||||
},
|
||||
fields: [
|
||||
Title(false),
|
||||
DraftBoolean,
|
||||
{
|
||||
name: "image",
|
||||
label: "Bild",
|
||||
widget: "image",
|
||||
default: "/media/image.webp",
|
||||
required: false
|
||||
},
|
||||
{
|
||||
name: "type",
|
||||
label: "Typ",
|
||||
widget: "hidden",
|
||||
default: "abiturienten"
|
||||
},
|
||||
{
|
||||
name: "body",
|
||||
label: "Text",
|
||||
widget: "markdown",
|
||||
required: false,
|
||||
...MarkdownProps
|
||||
}
|
||||
]
|
||||
{
|
||||
name: "body",
|
||||
label: "Text",
|
||||
widget: "markdown",
|
||||
required: false,
|
||||
...MarkdownProps,
|
||||
},
|
||||
],
|
||||
};
|
||||
|
||||
export default AbiturientenCollection;
|
||||
export default AbiturientenCollection;
|
||||
|
100
static/admin/config/collections/author.js
Normal file
100
static/admin/config/collections/author.js
Normal file
@ -0,0 +1,100 @@
|
||||
import { MarkdownProps, PatternEmail } from "../props.js";
|
||||
import { DescriptionText } from "./widgets.js";
|
||||
|
||||
const AuthorCollection = {
|
||||
name: "author",
|
||||
label: "Autoren",
|
||||
label_singular: "Autor",
|
||||
description:
|
||||
"Autoren können einem Blogartikel zugewiesen werden. Wir unterscheiden in aktive und inaktive sowie vereinfachte Autoren, welche nur mit dem Namen angezeigt werden, und erweiterte Autoren, für die eine Übersichtsseite angelegt wird.Autoren können einem Blogartikel zugewiesen werden.",
|
||||
icon: "user",
|
||||
folder: "content/german/author",
|
||||
create: true,
|
||||
editor: {
|
||||
preview: true,
|
||||
frame: true,
|
||||
size: "half",
|
||||
},
|
||||
filter: {
|
||||
field: "type",
|
||||
value: "author",
|
||||
},
|
||||
view_filters: [
|
||||
{
|
||||
label: "aktiv",
|
||||
field: "active",
|
||||
pattern: true,
|
||||
},
|
||||
{
|
||||
label: "inaktiv",
|
||||
field: "active",
|
||||
pattern: false,
|
||||
},
|
||||
{
|
||||
label: "einfach",
|
||||
field: "simplified",
|
||||
pattern: true,
|
||||
},
|
||||
{
|
||||
label: "erweitert",
|
||||
field: "simplified",
|
||||
pattern: false,
|
||||
},
|
||||
],
|
||||
view_groups: [
|
||||
{
|
||||
label: "vereinfacht",
|
||||
field: "simplified",
|
||||
},
|
||||
{
|
||||
label: "aktiv",
|
||||
field: "active",
|
||||
},
|
||||
],
|
||||
summary_fields: ["title", "active", "simplified", "body"],
|
||||
fields: [
|
||||
{
|
||||
name: "title",
|
||||
label: "Name",
|
||||
widget: "string",
|
||||
required: true,
|
||||
},
|
||||
DescriptionText,
|
||||
{
|
||||
name: "email",
|
||||
label: "E-Mail-Adresse",
|
||||
widget: "string",
|
||||
required: false,
|
||||
...PatternEmail,
|
||||
},
|
||||
{
|
||||
name: "image",
|
||||
label: "Bild",
|
||||
widget: "image",
|
||||
required: false,
|
||||
default: "/media/authors/gcg.webp",
|
||||
},
|
||||
{
|
||||
name: "simplified",
|
||||
label: "vereinfacht",
|
||||
widget: "boolean",
|
||||
required: false,
|
||||
},
|
||||
{
|
||||
name: "active",
|
||||
label: "aktiv",
|
||||
widget: "boolean",
|
||||
required: false,
|
||||
default: true,
|
||||
},
|
||||
{
|
||||
name: "body",
|
||||
label: "Beschreibung",
|
||||
widget: "markdown",
|
||||
required: false,
|
||||
...MarkdownProps,
|
||||
},
|
||||
],
|
||||
};
|
||||
|
||||
export default AuthorCollection;
|
62
static/admin/config/collections/begabte.js
Normal file
62
static/admin/config/collections/begabte.js
Normal file
@ -0,0 +1,62 @@
|
||||
import { MarkdownProps } from "../props.js";
|
||||
import { DescriptionText, DraftBoolean, Title } from "./widgets.js";
|
||||
|
||||
const BegabteCollection = {
|
||||
name: "begabte",
|
||||
label: "Begabtenförderung",
|
||||
label_singular: "Begabtenförderungsangebot",
|
||||
description:
|
||||
"Hier kann die Übersicht der Begabtenförderungsangebote bearbeitet werden.",
|
||||
icon: "pi",
|
||||
folder: "content/german/begabte",
|
||||
create: true,
|
||||
editor: {
|
||||
preview: true,
|
||||
frame: true,
|
||||
size: "half",
|
||||
},
|
||||
filter: {
|
||||
field: "type",
|
||||
value: "begabte",
|
||||
},
|
||||
summary_fields: ["title", "draft", "body"],
|
||||
fields: [
|
||||
Title(false),
|
||||
DraftBoolean,
|
||||
DescriptionText,
|
||||
{
|
||||
name: "image",
|
||||
label: "Titelbild",
|
||||
widget: "image",
|
||||
required: true,
|
||||
default: "/media/image.webp",
|
||||
},
|
||||
{
|
||||
name: "class",
|
||||
label: "Klassenstufe(n)",
|
||||
widget: "string",
|
||||
required: true,
|
||||
},
|
||||
{
|
||||
name: "web_url",
|
||||
label: "Website",
|
||||
widget: "string",
|
||||
required: false,
|
||||
},
|
||||
{
|
||||
name: "type",
|
||||
label: "Typ",
|
||||
widget: "hidden",
|
||||
default: "begabte",
|
||||
},
|
||||
{
|
||||
name: "body",
|
||||
label: "Inhalt",
|
||||
widget: "markdown",
|
||||
required: true,
|
||||
...MarkdownProps,
|
||||
},
|
||||
],
|
||||
};
|
||||
|
||||
export default BegabteCollection;
|
114
static/admin/config/collections/blog.js
Normal file
114
static/admin/config/collections/blog.js
Normal file
@ -0,0 +1,114 @@
|
||||
import { DateFormat, MarkdownProps } from "../props.js";
|
||||
import { DescriptionText, DraftBoolean, Title } from "./widgets.js";
|
||||
|
||||
const BlogCollection = {
|
||||
name: "blog",
|
||||
label: "Aktuelles",
|
||||
label_singular: "Artikel",
|
||||
description:
|
||||
'Diese Artikel werden im Bereich "Aktuelles" auf der Schulhomepage angezeigt. Sie können sowohl direkt veröffentlicht, als auch als Entwurf gespeichert werden.',
|
||||
icon: "news",
|
||||
folder: "content/german/blog",
|
||||
create: true,
|
||||
editor: {
|
||||
preview: true,
|
||||
frame: true,
|
||||
size: "half",
|
||||
},
|
||||
filter: {
|
||||
field: "type",
|
||||
value: "post",
|
||||
},
|
||||
view_groups: [
|
||||
{
|
||||
label: "Entwurf",
|
||||
field: "draft",
|
||||
},
|
||||
],
|
||||
sortable_fields: {
|
||||
fields: ["date", "title"],
|
||||
default: {
|
||||
field: "date",
|
||||
direction: "Descending",
|
||||
},
|
||||
},
|
||||
summary_fields: ["date", "title", "draft", "author", "body"],
|
||||
fields: [
|
||||
Title(false),
|
||||
{
|
||||
name: "date",
|
||||
label: "Datum",
|
||||
widget: "datetime",
|
||||
required: true,
|
||||
...DateFormat,
|
||||
},
|
||||
DraftBoolean,
|
||||
DescriptionText,
|
||||
{
|
||||
name: "image",
|
||||
label: "Titelbild",
|
||||
widget: "image",
|
||||
required: true,
|
||||
default: "/media/image.webp",
|
||||
},
|
||||
{
|
||||
name: "author",
|
||||
label: "Autor(en)",
|
||||
hint: "Verwaltet im Autoren-Bereich. Mehrere Autoren werden in alphabetischer Reihenfolge aufgelistet.",
|
||||
widget: "relation",
|
||||
collection: "author",
|
||||
value_field: "{{slug}}",
|
||||
search_fields: ["{{title}}"],
|
||||
display_fields: ["{{title}}"],
|
||||
multiple: true,
|
||||
required: true,
|
||||
},
|
||||
{
|
||||
name: "categories",
|
||||
label: "Kategorien",
|
||||
hint: "Verwaltet in den Einstellungen",
|
||||
widget: "relation",
|
||||
collection: "settings",
|
||||
file: "data-categories",
|
||||
value_field: "blog.*",
|
||||
search_fields: ["blog.*"],
|
||||
display_fields: ["blog.*"],
|
||||
multiple: true,
|
||||
required: true,
|
||||
},
|
||||
{
|
||||
name: "subjects",
|
||||
label: "Fächer",
|
||||
hint: "Verwaltet in den Einstellungen",
|
||||
widget: "relation",
|
||||
collection: "settings",
|
||||
file: "data-categories",
|
||||
value_field: "subjects.*",
|
||||
search_fields: ["subjects.*"],
|
||||
display_fields: ["subjects.*"],
|
||||
multiple: true,
|
||||
required: true,
|
||||
},
|
||||
{
|
||||
name: "tags",
|
||||
label: "Tags",
|
||||
widget: "list",
|
||||
delimiter: ",",
|
||||
},
|
||||
{
|
||||
name: "type",
|
||||
label: "Typ",
|
||||
widget: "hidden",
|
||||
default: "post",
|
||||
},
|
||||
{
|
||||
name: "body",
|
||||
label: "Inhalt",
|
||||
widget: "markdown",
|
||||
required: true,
|
||||
...MarkdownProps,
|
||||
},
|
||||
],
|
||||
};
|
||||
|
||||
export default BlogCollection;
|
@ -2,70 +2,72 @@ import { MarkdownProps } from "../props.js";
|
||||
import { DescriptionText, DraftBoolean, Title } from "./widgets.js";
|
||||
|
||||
const CantorforaCollection = {
|
||||
name: "cantorfora",
|
||||
label: "Cantorfora",
|
||||
label_singular: "Cantorforum",
|
||||
description: "Hier kann die Übersicht der Cantorfora bearbeitet werden. Dieser Bereich wird von der Schulchronik verwaltet.",
|
||||
icon: "presentation",
|
||||
folder: "content/german/cantorfora",
|
||||
filter: {
|
||||
field: "type",
|
||||
value: "cantorfora"
|
||||
name: "cantorfora",
|
||||
label: "Cantorfora",
|
||||
label_singular: "Cantorforum",
|
||||
description:
|
||||
"Hier kann die Übersicht der Cantorfora bearbeitet werden. Dieser Bereich wird von der Schulchronik verwaltet.",
|
||||
icon: "presentation",
|
||||
folder: "content/german/cantorfora",
|
||||
filter: {
|
||||
field: "type",
|
||||
value: "cantorfora",
|
||||
},
|
||||
create: true,
|
||||
editor: {
|
||||
preview: true,
|
||||
frame: true,
|
||||
size: "half",
|
||||
},
|
||||
view_groups: [
|
||||
{
|
||||
label: "Entwürfe",
|
||||
field: "draft",
|
||||
},
|
||||
create: true,
|
||||
editor: {
|
||||
preview: true,
|
||||
frame: true
|
||||
],
|
||||
summary_fields: ["title", "draft", "description"],
|
||||
sortable_fields: {
|
||||
fields: ["index", "title"],
|
||||
default: {
|
||||
field: "index",
|
||||
direction: "Descending",
|
||||
},
|
||||
view_groups: [
|
||||
{
|
||||
label: "Entwürfe",
|
||||
field: "draft"
|
||||
}
|
||||
],
|
||||
summary_fields: ["title", "draft", "description"],
|
||||
sortable_fields: {
|
||||
fields: ['index', 'title'],
|
||||
default: {
|
||||
field: "index",
|
||||
direction: "Descending"
|
||||
}
|
||||
},
|
||||
fields: [
|
||||
Title(false),
|
||||
{
|
||||
name: "index",
|
||||
label: "Laufindex",
|
||||
hint: "Nummer des Cantorforums",
|
||||
widget: "number",
|
||||
value_type: "int",
|
||||
min: 1,
|
||||
step: 1,
|
||||
required: true,
|
||||
},
|
||||
fields: [
|
||||
Title(false),
|
||||
{
|
||||
name: "index",
|
||||
label: "Laufindex",
|
||||
hint: "Nummer des Cantorforums",
|
||||
widget: "number",
|
||||
value_type: "int",
|
||||
min: 1,
|
||||
step: 1,
|
||||
required: true
|
||||
},
|
||||
DraftBoolean,
|
||||
DescriptionText,
|
||||
{
|
||||
name: "image",
|
||||
label: "Titelbild",
|
||||
widget: "image",
|
||||
default: "/media/image.webp",
|
||||
required: true
|
||||
},
|
||||
{
|
||||
name: "type",
|
||||
label: "Typ",
|
||||
widget: "hidden",
|
||||
default: "cantorfora"
|
||||
},
|
||||
{
|
||||
name: "body",
|
||||
label: "Text",
|
||||
widget: "markdown",
|
||||
required: true,
|
||||
...MarkdownProps
|
||||
}
|
||||
]
|
||||
DraftBoolean,
|
||||
DescriptionText,
|
||||
{
|
||||
name: "image",
|
||||
label: "Titelbild",
|
||||
widget: "image",
|
||||
default: "/media/image.webp",
|
||||
required: true,
|
||||
},
|
||||
{
|
||||
name: "type",
|
||||
label: "Typ",
|
||||
widget: "hidden",
|
||||
default: "cantorfora",
|
||||
},
|
||||
{
|
||||
name: "body",
|
||||
label: "Text",
|
||||
widget: "markdown",
|
||||
required: true,
|
||||
...MarkdownProps,
|
||||
},
|
||||
],
|
||||
};
|
||||
|
||||
export default CantorforaCollection;
|
||||
export default CantorforaCollection;
|
||||
|
@ -2,65 +2,67 @@ import { MarkdownProps } from "../props.js";
|
||||
import { DescriptionText, DraftBoolean } from "./widgets.js";
|
||||
|
||||
const CantorpreisCollection = {
|
||||
name: "cantorpreis",
|
||||
label: "Cantorpreisträger",
|
||||
description: "Hier sind alle Cantorpreisträger aufgelistet. Dieser Bereich wird von der Schulchronik verwaltet.",
|
||||
icon: "award",
|
||||
folder: "content/german/cantorpreis",
|
||||
filter: {
|
||||
field: "type",
|
||||
value: "cantorpreis"
|
||||
name: "cantorpreis",
|
||||
label: "Cantorpreisträger",
|
||||
description:
|
||||
"Hier sind alle Cantorpreisträger aufgelistet. Dieser Bereich wird von der Schulchronik verwaltet.",
|
||||
icon: "award",
|
||||
folder: "content/german/cantorpreis",
|
||||
filter: {
|
||||
field: "type",
|
||||
value: "cantorpreis",
|
||||
},
|
||||
sortable_fields: {
|
||||
fields: ["title", "name"],
|
||||
default: {
|
||||
field: "title",
|
||||
direction: "Descending",
|
||||
},
|
||||
sortable_fields: {
|
||||
fields: ['title', 'name'],
|
||||
default: {
|
||||
field: "title",
|
||||
direction: "Descending"
|
||||
}
|
||||
},
|
||||
summary: "{{title}} - {{name}}",
|
||||
create: true,
|
||||
editor: {
|
||||
preview: true,
|
||||
frame: true,
|
||||
size: "half",
|
||||
},
|
||||
summary_fields: ["title", "name", "draft", "body"],
|
||||
fields: [
|
||||
{
|
||||
name: "title",
|
||||
label: "Jahr",
|
||||
widget: "string",
|
||||
required: true,
|
||||
},
|
||||
summary: "{{title}} - {{name}}",
|
||||
create: true,
|
||||
editor: {
|
||||
preview: true,
|
||||
frame: true
|
||||
{
|
||||
name: "name",
|
||||
label: "Name",
|
||||
widget: "string",
|
||||
required: true,
|
||||
},
|
||||
summary_fields: ["title", "name", "draft", "body"],
|
||||
fields: [
|
||||
{
|
||||
name: "title",
|
||||
label: "Jahr",
|
||||
widget: "string",
|
||||
required: true
|
||||
},
|
||||
{
|
||||
name: "name",
|
||||
label: "Name",
|
||||
widget: "string",
|
||||
required: true
|
||||
},
|
||||
DraftBoolean,
|
||||
DescriptionText,
|
||||
{
|
||||
name: "image",
|
||||
label: "Bild",
|
||||
widget: "image",
|
||||
default: "/media/image.webp",
|
||||
required: false
|
||||
},
|
||||
{
|
||||
name: "type",
|
||||
label: "Typ",
|
||||
widget: "hidden",
|
||||
default: "cantorpreis"
|
||||
},
|
||||
{
|
||||
name: "body",
|
||||
label: "Text",
|
||||
widget: "markdown",
|
||||
required: false,
|
||||
...MarkdownProps
|
||||
}
|
||||
]
|
||||
DraftBoolean,
|
||||
DescriptionText,
|
||||
{
|
||||
name: "image",
|
||||
label: "Bild",
|
||||
widget: "image",
|
||||
default: "/media/image.webp",
|
||||
required: false,
|
||||
},
|
||||
{
|
||||
name: "type",
|
||||
label: "Typ",
|
||||
widget: "hidden",
|
||||
default: "cantorpreis",
|
||||
},
|
||||
{
|
||||
name: "body",
|
||||
label: "Text",
|
||||
widget: "markdown",
|
||||
required: false,
|
||||
...MarkdownProps,
|
||||
},
|
||||
],
|
||||
};
|
||||
|
||||
export default CantorpreisCollection;
|
||||
export default CantorpreisCollection;
|
||||
|
@ -2,110 +2,111 @@ import { MarkdownProps } from "../props.js";
|
||||
import { DraftBoolean, EnableBoolean } from "./widgets.js";
|
||||
|
||||
const ChronikjahreCollection = {
|
||||
name: "chronikjahre",
|
||||
description: "Hier können die Chronikjahre bearbeitet werden. Dieser Bereich wird von der Schulchronik verwaltet.",
|
||||
icon: "schulchronik",
|
||||
label: "Chronikjahre",
|
||||
label_singular: "Chronikjahr",
|
||||
folder: "content/german/schulchronik",
|
||||
filter: {
|
||||
field: "type",
|
||||
value: "schulchronik"
|
||||
name: "chronikjahre",
|
||||
description:
|
||||
"Hier können die Chronikjahre bearbeitet werden. Dieser Bereich wird von der Schulchronik verwaltet.",
|
||||
icon: "schulchronik",
|
||||
label: "Chronikjahre",
|
||||
label_singular: "Chronikjahr",
|
||||
folder: "content/german/schulchronik",
|
||||
filter: {
|
||||
field: "type",
|
||||
value: "schulchronik",
|
||||
},
|
||||
create: true,
|
||||
editor: {
|
||||
preview: false,
|
||||
size: "half",
|
||||
},
|
||||
summary_fields: ["title", "draft", "cantorpreisträger", "topics"],
|
||||
sortable_fields: {
|
||||
fields: ["title"],
|
||||
default: {
|
||||
field: "title",
|
||||
direction: "Descending",
|
||||
},
|
||||
create: true,
|
||||
editor: {
|
||||
preview: false
|
||||
},
|
||||
fields: [
|
||||
{
|
||||
name: "title",
|
||||
label: "Jahr",
|
||||
widget: "string",
|
||||
},
|
||||
summary_fields: ["title", "draft", "cantorpreisträger", "topics"],
|
||||
sortable_fields: {
|
||||
fields: ['title'],
|
||||
default: {
|
||||
field: "title",
|
||||
direction: "Descending"
|
||||
}
|
||||
DraftBoolean,
|
||||
{
|
||||
name: "type",
|
||||
label: "Typ",
|
||||
widget: "hidden",
|
||||
default: "schulchronik",
|
||||
},
|
||||
fields: [
|
||||
{
|
||||
name: "pretext",
|
||||
label: "Einleitung",
|
||||
hint: "Text für die Jahreszahl",
|
||||
widget: "markdown",
|
||||
required: false,
|
||||
...MarkdownProps,
|
||||
},
|
||||
{
|
||||
name: "topics",
|
||||
label: "Kreative Haufen",
|
||||
label_singular: "Haufen",
|
||||
widget: "list",
|
||||
required: false,
|
||||
collapsed: true,
|
||||
fields: [
|
||||
{
|
||||
name: "title",
|
||||
label: "Jahr",
|
||||
widget: "string"
|
||||
},
|
||||
DraftBoolean,
|
||||
{
|
||||
name: "type",
|
||||
label: "Typ",
|
||||
widget: "hidden",
|
||||
default: "schulchronik"
|
||||
name: "title",
|
||||
label: "Titel",
|
||||
widget: "string",
|
||||
required: true,
|
||||
},
|
||||
{
|
||||
name: "pretext",
|
||||
label: "Einleitung",
|
||||
hint: "Text für die Jahreszahl",
|
||||
widget: "markdown",
|
||||
required: false,
|
||||
...MarkdownProps
|
||||
name: "content",
|
||||
label: "Inhalt",
|
||||
widget: "markdown",
|
||||
required: false,
|
||||
...MarkdownProps,
|
||||
},
|
||||
{
|
||||
name: "topics",
|
||||
label: "Kreative Haufen",
|
||||
label_singular: "Haufen",
|
||||
widget: "list",
|
||||
required: false,
|
||||
collapsed: true,
|
||||
fields: [
|
||||
{
|
||||
name: "title",
|
||||
label: "Titel",
|
||||
widget: "string",
|
||||
required: true,
|
||||
},
|
||||
{
|
||||
name: "content",
|
||||
label: "Inhalt",
|
||||
widget: "markdown",
|
||||
required: false,
|
||||
...MarkdownProps
|
||||
},
|
||||
{
|
||||
name: "superhaufen",
|
||||
label: "Superhaufen",
|
||||
widget: "object",
|
||||
required: false,
|
||||
fields: [
|
||||
EnableBoolean,
|
||||
{
|
||||
name: "link",
|
||||
label: "Superhaufen",
|
||||
widget: "relation",
|
||||
collection: "superhaufen",
|
||||
search_fields: ["title"],
|
||||
value_field: "title",
|
||||
required: false,
|
||||
collapsed: true
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
name: "superhaufen",
|
||||
label: "Superhaufen",
|
||||
widget: "object",
|
||||
required: false,
|
||||
fields: [
|
||||
EnableBoolean,
|
||||
{
|
||||
name: "link",
|
||||
label: "Superhaufen",
|
||||
widget: "relation",
|
||||
collection: "superhaufen",
|
||||
search_fields: ["title"],
|
||||
value_field: "title",
|
||||
required: false,
|
||||
collapsed: true,
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
name: "cantorpreisträger",
|
||||
label: "Cantorpreisträger",
|
||||
widget: "relation",
|
||||
collection: "cantorpreis",
|
||||
search_fields: ["jahr", "name"],
|
||||
value_field: "name",
|
||||
required: false
|
||||
},
|
||||
{
|
||||
name: "body",
|
||||
label: "Text",
|
||||
hint: "Erscheint zusätzlich zu den Kreativen Haufen",
|
||||
widget: "markdown",
|
||||
required: false,
|
||||
...MarkdownProps
|
||||
}
|
||||
],
|
||||
},
|
||||
{
|
||||
name: "cantorpreisträger",
|
||||
label: "Cantorpreisträger",
|
||||
widget: "relation",
|
||||
collection: "cantorpreis",
|
||||
search_fields: ["jahr", "name"],
|
||||
value_field: "name",
|
||||
required: false,
|
||||
},
|
||||
{
|
||||
name: "body",
|
||||
label: "Text",
|
||||
hint: "Erscheint zusätzlich zu den Kreativen Haufen",
|
||||
widget: "markdown",
|
||||
required: false,
|
||||
...MarkdownProps,
|
||||
},
|
||||
],
|
||||
};
|
||||
|
||||
]
|
||||
}
|
||||
|
||||
export default ChronikjahreCollection;
|
||||
export default ChronikjahreCollection;
|
||||
|
@ -2,55 +2,57 @@ import { MarkdownProps } from "../props.js";
|
||||
import { DescriptionText, DraftBoolean, Title } from "./widgets.js";
|
||||
|
||||
const ChronikseitenCollection = {
|
||||
name: "chronikseiten",
|
||||
label: "Chronikseiten",
|
||||
label_singular: "Zusatzseite (Chronik)",
|
||||
description: "Chronikseiten entsprechen von der Funktionalität herkömmlichen Zusatzseiten, sind allerdings der Schulchronik vorbehalten.",
|
||||
icon: "page-add",
|
||||
folder: "content/german/chronikseiten",
|
||||
create: true,
|
||||
editor: {
|
||||
preview: true,
|
||||
frame: true
|
||||
name: "chronikseiten",
|
||||
label: "Chronikseiten",
|
||||
label_singular: "Zusatzseite (Chronik)",
|
||||
description:
|
||||
"Chronikseiten entsprechen von der Funktionalität herkömmlichen Zusatzseiten, sind allerdings der Schulchronik vorbehalten.",
|
||||
icon: "page-add",
|
||||
folder: "content/german/chronikseiten",
|
||||
create: true,
|
||||
editor: {
|
||||
preview: true,
|
||||
frame: true,
|
||||
size: "half",
|
||||
},
|
||||
filter: {
|
||||
field: "type",
|
||||
value: "pages",
|
||||
},
|
||||
summary_fields: ["title", "draft", "aliases", "body"],
|
||||
fields: [
|
||||
Title(false),
|
||||
DraftBoolean,
|
||||
DescriptionText,
|
||||
{
|
||||
name: "type",
|
||||
label: "Typ",
|
||||
widget: "hidden",
|
||||
default: "pages",
|
||||
},
|
||||
filter: {
|
||||
field: "type",
|
||||
value: "pages"
|
||||
{
|
||||
name: "aliases",
|
||||
label: "Aliase",
|
||||
label_singular: "Alias",
|
||||
widget: "list",
|
||||
collapsed: true,
|
||||
required: false,
|
||||
fields: [
|
||||
{
|
||||
name: "alias",
|
||||
label: "Alias",
|
||||
widget: "string",
|
||||
},
|
||||
],
|
||||
},
|
||||
summary_fields: ["title", "draft", "aliases", "body"],
|
||||
fields: [
|
||||
Title(false),
|
||||
DraftBoolean,
|
||||
DescriptionText,
|
||||
{
|
||||
name: "type",
|
||||
label: "Typ",
|
||||
widget: "hidden",
|
||||
default: "pages"
|
||||
},
|
||||
{
|
||||
name: "aliases",
|
||||
label: "Aliase",
|
||||
label_singular: "Alias",
|
||||
widget: "list",
|
||||
collapsed: true,
|
||||
required: false,
|
||||
fields: [
|
||||
{
|
||||
name: "alias",
|
||||
label: "Alias",
|
||||
widget: "string"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
name: "body",
|
||||
label: "Text",
|
||||
widget: "markdown",
|
||||
required: false,
|
||||
...MarkdownProps
|
||||
}
|
||||
]
|
||||
}
|
||||
{
|
||||
name: "body",
|
||||
label: "Inhalt",
|
||||
widget: "markdown",
|
||||
required: false,
|
||||
...MarkdownProps,
|
||||
},
|
||||
],
|
||||
};
|
||||
|
||||
export default ChronikseitenCollection;
|
||||
export default ChronikseitenCollection;
|
||||
|
65
static/admin/config/collections/forms.js
Normal file
65
static/admin/config/collections/forms.js
Normal file
@ -0,0 +1,65 @@
|
||||
import { MarkdownProps } from "../props.js";
|
||||
import { DescriptionText, DraftBoolean, Title } from "./widgets.js";
|
||||
|
||||
const FormsCollection = {
|
||||
name: "forms",
|
||||
label: "Dokumente",
|
||||
label_singular: "Dokument",
|
||||
description:
|
||||
"Hier sind Formulare, Vorlagen und andere Dokumente zu hinterlegen.",
|
||||
icon: "document",
|
||||
folder: "content/german/forms",
|
||||
create: true,
|
||||
editor: {
|
||||
preview: true,
|
||||
frame: true,
|
||||
size: "half",
|
||||
},
|
||||
filter: {
|
||||
field: "type",
|
||||
value: "forms",
|
||||
},
|
||||
summary_fields: ["title", "draft"],
|
||||
fields: [
|
||||
Title(false),
|
||||
DraftBoolean,
|
||||
DescriptionText,
|
||||
{
|
||||
name: "files",
|
||||
label: "Dateien",
|
||||
label_singular: "Datei",
|
||||
widget: "list",
|
||||
required: false,
|
||||
collapsed: true,
|
||||
fields: [
|
||||
{
|
||||
name: "title",
|
||||
label: "Bezeichnung",
|
||||
widget: "string",
|
||||
required: true,
|
||||
},
|
||||
{
|
||||
name: "link",
|
||||
label: "Datei",
|
||||
widget: "file",
|
||||
required: true,
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
name: "type",
|
||||
label: "Typ",
|
||||
widget: "hidden",
|
||||
default: "forms",
|
||||
},
|
||||
{
|
||||
name: "body",
|
||||
label: "Inhalt",
|
||||
widget: "markdown",
|
||||
required: false,
|
||||
...MarkdownProps,
|
||||
},
|
||||
],
|
||||
};
|
||||
|
||||
export default FormsCollection;
|
92
static/admin/config/collections/ganztag.js
Normal file
92
static/admin/config/collections/ganztag.js
Normal file
@ -0,0 +1,92 @@
|
||||
import { MarkdownProps } from "../props.js";
|
||||
import { Title, DescriptionText, DraftBoolean } from "./widgets.js";
|
||||
|
||||
const GanztagCollection = {
|
||||
name: "ganztagsangebote",
|
||||
label: "Ganztag",
|
||||
label_singular: "Arbeitsgemeinschaft",
|
||||
description:
|
||||
"Hier kann die Übersicht der Ganztagsangebote bearbeitet werden.",
|
||||
icon: "group",
|
||||
folder: "content/german/ganztagsangebote",
|
||||
create: true,
|
||||
editor: {
|
||||
preview: true,
|
||||
frame: true,
|
||||
size: "half",
|
||||
},
|
||||
filter: {
|
||||
field: "type",
|
||||
value: "ganztagsangebote",
|
||||
},
|
||||
summary_fields: ["title", "draft", "category", "schedule", "room"],
|
||||
fields: [
|
||||
Title(false),
|
||||
DraftBoolean,
|
||||
DescriptionText,
|
||||
{
|
||||
name: "image",
|
||||
label: "Titelbild",
|
||||
widget: "image",
|
||||
default: "/media/ganztagsangebote/image.webp",
|
||||
required: true,
|
||||
},
|
||||
{
|
||||
name: "category",
|
||||
label: "Themebereich",
|
||||
hint: "Verwaltet in den Einstellungen",
|
||||
widget: "relation",
|
||||
collection: "settings",
|
||||
file: "data-categories",
|
||||
value_field: "ganztag.*",
|
||||
search_fields: ["ganztag.*"],
|
||||
display_fields: ["ganztag.*"],
|
||||
required: true,
|
||||
},
|
||||
{
|
||||
name: "duration",
|
||||
label: "Dauer",
|
||||
widget: "string",
|
||||
required: true,
|
||||
},
|
||||
{
|
||||
name: "schedule",
|
||||
label: "Tag/Stunden",
|
||||
widget: "string",
|
||||
required: true,
|
||||
},
|
||||
{
|
||||
name: "class",
|
||||
label: "Klassenstufen(n)",
|
||||
widget: "string",
|
||||
required: true,
|
||||
},
|
||||
{
|
||||
name: "room",
|
||||
label: "Raum",
|
||||
widget: "string",
|
||||
required: true,
|
||||
},
|
||||
{
|
||||
name: "apply_url",
|
||||
label: "Anmeldelink",
|
||||
widget: "hidden",
|
||||
default: "https://moodle.bildung-lsa.de/gcg/mod/choice/view.php?id=828",
|
||||
},
|
||||
{
|
||||
name: "type",
|
||||
label: "Typ",
|
||||
widget: "hidden",
|
||||
default: "ganztagsangebote",
|
||||
},
|
||||
{
|
||||
name: "body",
|
||||
label: "Inhalt",
|
||||
widget: "markdown",
|
||||
required: false,
|
||||
...MarkdownProps,
|
||||
},
|
||||
],
|
||||
};
|
||||
|
||||
export default GanztagCollection;
|
347
static/admin/config/collections/index-pages.js
Normal file
347
static/admin/config/collections/index-pages.js
Normal file
@ -0,0 +1,347 @@
|
||||
import {
|
||||
DataObject,
|
||||
DateFormat,
|
||||
MarkdownProps,
|
||||
PatternEmail,
|
||||
} from "../props.js";
|
||||
import { DescriptionText, EnableBoolean, Title } from "./widgets.js";
|
||||
|
||||
const IndexPagesCollection = {
|
||||
name: "index-pages",
|
||||
label: "Hauptseiten",
|
||||
label_singular: "Hauptseite",
|
||||
description:
|
||||
"Hauptseiten können nur manuell durch den Administrator angelegt und in die Website eingebunden werden. Über diesen Bereich ist die Änderung der Inhalte möglich.",
|
||||
icon: "page",
|
||||
editor: {
|
||||
preview: true,
|
||||
frame: true,
|
||||
size: "half",
|
||||
},
|
||||
summary_fields: ["title", "description"],
|
||||
files: [
|
||||
{
|
||||
name: "blog-index",
|
||||
label: "Aktuelles",
|
||||
file: "content/german/blog/_index.md",
|
||||
fields: [Title(false), DescriptionText],
|
||||
},
|
||||
{
|
||||
name: "about-index",
|
||||
label: "Über die Schule",
|
||||
file: "content/german/about/_index.md",
|
||||
fields: [
|
||||
Title(false),
|
||||
DescriptionText,
|
||||
{
|
||||
name: "image",
|
||||
label: "Bild",
|
||||
widget: "image",
|
||||
required: false,
|
||||
},
|
||||
{
|
||||
name: "stats",
|
||||
label: "Statistik",
|
||||
...DataObject,
|
||||
fields: [
|
||||
EnableBoolean,
|
||||
{
|
||||
name: "zahlen",
|
||||
label: "Elemente",
|
||||
label_singular: "Element",
|
||||
widget: "list",
|
||||
required: false,
|
||||
collapsed: false,
|
||||
fields: [
|
||||
{
|
||||
name: "name",
|
||||
label: "Bezeichnung",
|
||||
widget: "string",
|
||||
required: true,
|
||||
},
|
||||
{
|
||||
name: "count",
|
||||
label: "Zahl",
|
||||
widget: "number",
|
||||
value_type: "int",
|
||||
min: 0,
|
||||
step: 1,
|
||||
required: true,
|
||||
},
|
||||
],
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
name: "body",
|
||||
label: "Inhalt",
|
||||
widget: "markdown",
|
||||
required: false,
|
||||
...MarkdownProps,
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
name: "anmeldung-index",
|
||||
label: "Aufnahmeverfahren",
|
||||
file: "content/german/anmeldung/_index.md",
|
||||
fields: [
|
||||
Title(false),
|
||||
DescriptionText,
|
||||
{
|
||||
name: "body",
|
||||
label: "Inhalt",
|
||||
widget: "markdown",
|
||||
required: false,
|
||||
...MarkdownProps,
|
||||
},
|
||||
{
|
||||
name: "elements",
|
||||
label: "Abschnitte",
|
||||
label_singular: "Abschnitt",
|
||||
widget: "list",
|
||||
required: false,
|
||||
collapsed: true,
|
||||
fields: [
|
||||
Title(false),
|
||||
{
|
||||
name: "content",
|
||||
label: "Inhalt",
|
||||
widget: "markdown",
|
||||
required: true,
|
||||
...MarkdownProps,
|
||||
},
|
||||
],
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
name: "author-index",
|
||||
label: "Autoren",
|
||||
file: "content/german/author/_index.md",
|
||||
fields: [Title(false), DescriptionText],
|
||||
},
|
||||
{
|
||||
name: "anmeldeformular",
|
||||
label: "Anmeldeformular",
|
||||
file: "content/german/anmeldeformular/_index.md",
|
||||
fields: [
|
||||
Title(false),
|
||||
DescriptionText,
|
||||
{
|
||||
name: "body",
|
||||
label: "Inhalt",
|
||||
widget: "markdown",
|
||||
required: false,
|
||||
...MarkdownProps,
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
name: "cantorpreis-index",
|
||||
label: "Cantorpreis",
|
||||
file: "content/german/cantorpreis/_index.md",
|
||||
fields: [Title(false), DescriptionText],
|
||||
},
|
||||
{
|
||||
name: "kontakt",
|
||||
label: "Kontakt",
|
||||
file: "content/german/kontakt/_index.md",
|
||||
fields: [
|
||||
Title(false),
|
||||
DescriptionText,
|
||||
{
|
||||
name: "kontaktdaten",
|
||||
label: "Kontaktdaten",
|
||||
widget: "list",
|
||||
required: true,
|
||||
collapsed: true,
|
||||
fields: [
|
||||
{
|
||||
name: "name",
|
||||
label: "Name",
|
||||
widget: "string",
|
||||
required: true,
|
||||
},
|
||||
{
|
||||
name: "position",
|
||||
label: "Berufsbezeichnung",
|
||||
widget: "string",
|
||||
required: true,
|
||||
},
|
||||
{
|
||||
name: "email",
|
||||
label: "E-Mail-Adresse",
|
||||
widget: "string",
|
||||
required: true,
|
||||
...PatternEmail,
|
||||
},
|
||||
],
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
name: "termine",
|
||||
label: "Termine",
|
||||
file: "content/german/termine/_index.md",
|
||||
fields: [
|
||||
Title(false),
|
||||
DescriptionText,
|
||||
{
|
||||
name: "events",
|
||||
label: "Termine",
|
||||
label_singular: "Termin",
|
||||
widget: "list",
|
||||
required: true,
|
||||
collapsed: true,
|
||||
fields: [
|
||||
{
|
||||
name: "title",
|
||||
label: "Bezeichnung",
|
||||
widget: "string",
|
||||
required: true,
|
||||
},
|
||||
{
|
||||
name: "date",
|
||||
label: "Datum/Startdatum",
|
||||
widget: "datetime",
|
||||
required: true,
|
||||
...DateFormat,
|
||||
},
|
||||
{
|
||||
name: "enddate",
|
||||
label: "Enddatum",
|
||||
hint: "Für mehrtägige Veanstaltungen, nur sichtbar wenn eingestellt",
|
||||
widget: "datetime",
|
||||
required: false,
|
||||
...DateFormat,
|
||||
},
|
||||
{
|
||||
name: "location",
|
||||
label: "Ort",
|
||||
widget: "string",
|
||||
required: false,
|
||||
},
|
||||
],
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
name: "forms-index",
|
||||
label: "Dokumente und Formulare",
|
||||
file: "content/german/forms/_index.md",
|
||||
fields: [Title(false), DescriptionText],
|
||||
},
|
||||
{
|
||||
name: "ganztagsangebote-index",
|
||||
label: "Unser Ganztagsbereich",
|
||||
file: "content/german/ganztagsangebote/_index.md",
|
||||
fields: [Title(false), DescriptionText],
|
||||
},
|
||||
{
|
||||
name: "projektwoche-index",
|
||||
label: "Projektwoche",
|
||||
file: "content/german/projektwoche/_index.md",
|
||||
fields: [Title(false), DescriptionText],
|
||||
},
|
||||
{
|
||||
name: "wettbewerbe-index",
|
||||
label: "Wettbewerbe",
|
||||
file: "content/german/wettbewerbe/_index.md",
|
||||
fields: [Title(false), DescriptionText],
|
||||
},
|
||||
{
|
||||
name: "begabte-index",
|
||||
label: "Begabtenförderung",
|
||||
file: "content/german/begabte/_index.md",
|
||||
fields: [Title(false), DescriptionText],
|
||||
},
|
||||
{
|
||||
name: "abiturienten-index",
|
||||
label: "Abiturienten",
|
||||
file: "content/german/abiturienten/_index.md",
|
||||
fields: [Title(false), DescriptionText],
|
||||
},
|
||||
{
|
||||
name: "cantorfora-index",
|
||||
label: "Cantorfora",
|
||||
file: "content/german/cantorfora/_index.md",
|
||||
fields: [
|
||||
Title(false),
|
||||
DescriptionText,
|
||||
{
|
||||
name: "body",
|
||||
label: "Inhalt",
|
||||
widget: "markdown",
|
||||
required: false,
|
||||
...MarkdownProps,
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
name: "schulchronik-index",
|
||||
label: "Schulchronik",
|
||||
file: "content/german/schulchronik/_index.md",
|
||||
fields: [
|
||||
Title(false),
|
||||
DescriptionText,
|
||||
{
|
||||
name: "body",
|
||||
label: "Inhalt",
|
||||
widget: "markdown",
|
||||
required: false,
|
||||
...MarkdownProps,
|
||||
},
|
||||
{
|
||||
name: "infocard",
|
||||
label: "Zitatkarte",
|
||||
...DataObject,
|
||||
fields: [
|
||||
EnableBoolean,
|
||||
{
|
||||
name: "image",
|
||||
label: "Bild",
|
||||
widget: "image",
|
||||
required: false,
|
||||
},
|
||||
{
|
||||
name: "quote",
|
||||
label: "Zitat",
|
||||
widget: "text",
|
||||
required: false,
|
||||
},
|
||||
{
|
||||
name: "author",
|
||||
label: "Autor",
|
||||
widget: "string",
|
||||
required: false,
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
name: "links",
|
||||
label: "Informationsseiten",
|
||||
widget: "list",
|
||||
required: false,
|
||||
collapsed: true,
|
||||
fields: [
|
||||
{
|
||||
name: "title",
|
||||
label: "Bezeichnung",
|
||||
widget: "string",
|
||||
required: true,
|
||||
},
|
||||
{
|
||||
name: "link",
|
||||
label: "Link",
|
||||
widget: "string",
|
||||
required: true,
|
||||
},
|
||||
],
|
||||
},
|
||||
],
|
||||
},
|
||||
],
|
||||
};
|
||||
|
||||
export default IndexPagesCollection;
|
@ -1,9 +1,37 @@
|
||||
import SettingsCollection from "./settings-collection.js";
|
||||
import IndexPagesCollection from "./index-pages.js";
|
||||
import PagesCollection from "./pages.js";
|
||||
import AuthorCollection from "./author.js";
|
||||
import BlogCollection from "./blog.js";
|
||||
import FormsCollection from "./forms.js";
|
||||
import GanztagCollection from "./ganztag.js";
|
||||
import WettbewerbeCollection from "./wettbewerbe.js";
|
||||
import BegabteCollection from "./begabte.js";
|
||||
import ProjektwocheCollection from "./projektwoche.js";
|
||||
import ChronikjahreCollection from "./chronikjahre.js";
|
||||
import SuperhaufenCollection from "./superhaufen.js";
|
||||
import CantorpreisCollection from "./cantorpreis.js";
|
||||
import AbiturientenCollection from "./abiturienten.js";
|
||||
import CantorforaCollection from "./cantorfora.js";
|
||||
import ChronikseitenCollection from "./chronikseiten.js";
|
||||
import StatsCollection from "./stats.js";
|
||||
|
||||
export { SettingsCollection, ChronikjahreCollection, SuperhaufenCollection, CantorpreisCollection, AbiturientenCollection, CantorforaCollection, ChronikseitenCollection };
|
||||
export {
|
||||
SettingsCollection,
|
||||
IndexPagesCollection,
|
||||
PagesCollection,
|
||||
AuthorCollection,
|
||||
BlogCollection,
|
||||
FormsCollection,
|
||||
GanztagCollection,
|
||||
WettbewerbeCollection,
|
||||
BegabteCollection,
|
||||
ProjektwocheCollection,
|
||||
ChronikjahreCollection,
|
||||
SuperhaufenCollection,
|
||||
CantorpreisCollection,
|
||||
AbiturientenCollection,
|
||||
CantorforaCollection,
|
||||
ChronikseitenCollection,
|
||||
StatsCollection,
|
||||
};
|
||||
|
58
static/admin/config/collections/pages.js
Normal file
58
static/admin/config/collections/pages.js
Normal file
@ -0,0 +1,58 @@
|
||||
import { MarkdownProps } from "../props.js";
|
||||
import { DescriptionText, DraftBoolean, Title } from "./widgets.js";
|
||||
|
||||
const PagesCollection = {
|
||||
name: "pages",
|
||||
label: "Zusatzseiten",
|
||||
label_singular: "Zusatzseite",
|
||||
description:
|
||||
"Zusatzseiten können direkt aus der grafischen Oberfläche heraus erstellt werden und sind unter https://cantorgymnasium.de/pages/[SEITENTITEL] einsehbar. Sie bestehen immer aus einem Titel, einer Metabeschreibung (kurzer Einstiegstext) und dem eigentlichen Inhalt. Einer Zusatzseite kann auch ein Alias, also eine alternative URL zugewiesen werden.",
|
||||
icon: "page-add",
|
||||
folder: "content/german/pages",
|
||||
create: true,
|
||||
editor: {
|
||||
preview: true,
|
||||
frame: true,
|
||||
size: "half",
|
||||
},
|
||||
filter: {
|
||||
field: "type",
|
||||
value: "pages",
|
||||
},
|
||||
summary_fields: ["title", "draft", "aliases", "description"],
|
||||
fields: [
|
||||
Title(false),
|
||||
DraftBoolean,
|
||||
DescriptionText,
|
||||
{
|
||||
name: "type",
|
||||
label: "Typ",
|
||||
widget: "hidden",
|
||||
default: "pages",
|
||||
},
|
||||
{
|
||||
name: "aliases",
|
||||
label: "Aliase",
|
||||
label_singular: "Alias",
|
||||
widget: "list",
|
||||
collapsed: true,
|
||||
required: false,
|
||||
fields: [
|
||||
{
|
||||
name: "alias",
|
||||
label: "Alias",
|
||||
widget: "string",
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
name: "body",
|
||||
label: "Inhalt",
|
||||
widget: "markdown",
|
||||
required: false,
|
||||
...MarkdownProps,
|
||||
},
|
||||
],
|
||||
};
|
||||
|
||||
export default PagesCollection;
|
73
static/admin/config/collections/projektwoche.js
Normal file
73
static/admin/config/collections/projektwoche.js
Normal file
@ -0,0 +1,73 @@
|
||||
import { MarkdownProps } from "../props.js";
|
||||
import { DescriptionText, DraftBoolean, IconList, Title } from "./widgets.js";
|
||||
|
||||
const ProjektwocheCollection = {
|
||||
name: "projektwoche",
|
||||
label: "Projektwochen",
|
||||
label_singular: "Projektwoche",
|
||||
description: "Hier kann die Übersicht der Projektwochen bearbeitet werden.",
|
||||
icon: "projektwoche",
|
||||
folder: "content/german/projektwoche",
|
||||
filter: {
|
||||
field: "type",
|
||||
value: "projektwoche",
|
||||
},
|
||||
create: true,
|
||||
editor: {
|
||||
preview: true,
|
||||
frame: true,
|
||||
size: "half",
|
||||
},
|
||||
summary_fields: ["title", "draft", "tiles", "description"],
|
||||
fields: [
|
||||
Title(false),
|
||||
DraftBoolean,
|
||||
DescriptionText,
|
||||
{
|
||||
name: "type",
|
||||
label: "Typ",
|
||||
widget: "hidden",
|
||||
default: "projektwoche",
|
||||
},
|
||||
{
|
||||
name: "body",
|
||||
label: "Inhalt",
|
||||
widget: "markdown",
|
||||
required: false,
|
||||
...MarkdownProps,
|
||||
},
|
||||
{
|
||||
name: "tiles",
|
||||
label: "Kacheln",
|
||||
hint: "Die Vorschau zeigt nur die generierten Symbolkarten, NICHT die Inhalte.",
|
||||
widget: "list",
|
||||
required: false,
|
||||
collapsed: true,
|
||||
fields: [
|
||||
Title(false),
|
||||
{
|
||||
name: "bg_color",
|
||||
label: "Hintergrundfarbe",
|
||||
widget: "color",
|
||||
required: true,
|
||||
},
|
||||
IconList,
|
||||
{
|
||||
name: "font_color",
|
||||
label: "Symbolfarbe",
|
||||
widget: "color",
|
||||
required: true,
|
||||
},
|
||||
{
|
||||
name: "content",
|
||||
label: "Inhalt",
|
||||
widget: "markdown",
|
||||
required: true,
|
||||
...MarkdownProps,
|
||||
},
|
||||
],
|
||||
},
|
||||
],
|
||||
};
|
||||
|
||||
export default ProjektwocheCollection;
|
File diff suppressed because it is too large
Load Diff
@ -1,78 +0,0 @@
|
||||
const StatistikCollection = {
|
||||
name: "statistik",
|
||||
label: "Statistik",
|
||||
description: "Hier können statistische Daten bearbeitet werden. Dieser Bereich wird von der Schulchronik verwaltet.",
|
||||
icon: "stats",
|
||||
editor: {
|
||||
preview: false
|
||||
},
|
||||
files: [
|
||||
{
|
||||
name: "abiturdurchschnitte",
|
||||
label: "Abiturdurchschnitte",
|
||||
file: "static/data/abiturdurchschnitte.json",
|
||||
fields: [
|
||||
{
|
||||
name: "abiturdurchschnitte",
|
||||
label: "Abiturdurchschnitte",
|
||||
label_singular: "Abiturdurchschnitt",
|
||||
widget: "list",
|
||||
required: false,
|
||||
fields: [
|
||||
{
|
||||
name: "jahr",
|
||||
label: "Jahr",
|
||||
widget: "number",
|
||||
value_type: "int",
|
||||
step: 1,
|
||||
required: true
|
||||
},
|
||||
{
|
||||
name: "schnitt",
|
||||
label: "Schnitt",
|
||||
widget: "number",
|
||||
value_type: "float",
|
||||
step: 0.01,
|
||||
required: true
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
name: "schuelerzahlen",
|
||||
label: "Schülerzahlen",
|
||||
file: "static/data/schuelerzahlen.json",
|
||||
fields: [
|
||||
{
|
||||
name: "schuelerzahlen",
|
||||
label: "Schülerzahlen",
|
||||
widget: "list",
|
||||
required: false,
|
||||
fields: [
|
||||
{
|
||||
name: "year",
|
||||
label: "Jahr",
|
||||
widget: "number",
|
||||
required: true
|
||||
},
|
||||
{
|
||||
name: "all",
|
||||
label: "Gesamt",
|
||||
widget: "number",
|
||||
required: true
|
||||
},
|
||||
{
|
||||
name: "girls",
|
||||
label: "davon Mädchen",
|
||||
widget: "number",
|
||||
required: true
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
export default StatistikCollection;
|
83
static/admin/config/collections/stats.js
Normal file
83
static/admin/config/collections/stats.js
Normal file
@ -0,0 +1,83 @@
|
||||
const StatsCollection = {
|
||||
name: "statistik",
|
||||
label: "Statistik",
|
||||
description:
|
||||
"Hier können statistische Daten bearbeitet werden. Dieser Bereich wird von der Schulchronik verwaltet.",
|
||||
icon: "stats",
|
||||
editor: {
|
||||
preview: false,
|
||||
size: "half",
|
||||
},
|
||||
files: [
|
||||
{
|
||||
name: "abiturdurchschnitte",
|
||||
label: "Abiturdurchschnitte",
|
||||
file: "static/data/abiturdurchschnitte.json",
|
||||
fields: [
|
||||
{
|
||||
name: "abiturdurchschnitte",
|
||||
label: "Abiturdurchschnitte",
|
||||
label_singular: "Jahr",
|
||||
widget: "list",
|
||||
required: false,
|
||||
fields: [
|
||||
{
|
||||
name: "jahr",
|
||||
label: "Jahr",
|
||||
widget: "number",
|
||||
value_type: "int",
|
||||
required: true,
|
||||
},
|
||||
{
|
||||
name: "schnitt",
|
||||
label: "Schnitt",
|
||||
widget: "number",
|
||||
value_type: "float",
|
||||
step: 0.01,
|
||||
required: true,
|
||||
},
|
||||
],
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
name: "schuelerzahlen",
|
||||
label: "Schülerzahlen",
|
||||
file: "static/data/schuelerzahlen.json",
|
||||
fields: [
|
||||
{
|
||||
name: "schuelerzahlen",
|
||||
label: "Schülerzahlen",
|
||||
label_singular: "Jahr",
|
||||
widget: "list",
|
||||
required: false,
|
||||
fields: [
|
||||
{
|
||||
name: "year",
|
||||
label: "Jahr",
|
||||
widget: "number",
|
||||
value_type: "int",
|
||||
required: true,
|
||||
},
|
||||
{
|
||||
name: "all",
|
||||
label: "Gesamtzahl",
|
||||
widget: "number",
|
||||
value_type: "int",
|
||||
required: true,
|
||||
},
|
||||
{
|
||||
name: "girls",
|
||||
label: "davon Mädchen",
|
||||
widget: "number",
|
||||
value_type: "int",
|
||||
required: true,
|
||||
},
|
||||
],
|
||||
},
|
||||
],
|
||||
},
|
||||
],
|
||||
};
|
||||
|
||||
export default StatsCollection;
|
@ -2,100 +2,102 @@ import { MarkdownProps } from "../props.js";
|
||||
import { DraftBoolean, EnableBoolean, Title } from "./widgets.js";
|
||||
|
||||
const SuperhaufenCollection = {
|
||||
name: "superhaufen",
|
||||
label: "Superhaufen",
|
||||
description: "\"Superhaufen\" sind ein besonderer Bereich der Schulchronik, um besonders ausführliche Ereignisse darzustellen. Dieser Bereich wird von der Schulchronik verwaltet.",
|
||||
icon: "superhaufen",
|
||||
folder: "content/german/superhaufen",
|
||||
filter: {
|
||||
field: "type",
|
||||
value: "superhaufen"
|
||||
name: "superhaufen",
|
||||
label: "Superhaufen",
|
||||
description:
|
||||
'"Superhaufen" sind ein besonderer Bereich der Schulchronik, um besonders ausführliche Ereignisse darzustellen. Dieser Bereich wird von der Schulchronik verwaltet.',
|
||||
icon: "superhaufen",
|
||||
folder: "content/german/superhaufen",
|
||||
filter: {
|
||||
field: "type",
|
||||
value: "superhaufen",
|
||||
},
|
||||
create: true,
|
||||
editor: {
|
||||
preview: true,
|
||||
frame: true,
|
||||
size: "half",
|
||||
},
|
||||
summary_fields: ["title", "draft", "tiles"],
|
||||
fields: [
|
||||
Title(false),
|
||||
DraftBoolean,
|
||||
{
|
||||
name: "type",
|
||||
label: "Typ",
|
||||
widget: "hidden",
|
||||
default: "superhaufen",
|
||||
},
|
||||
create: true,
|
||||
editor: {
|
||||
preview: true,
|
||||
frame: true,
|
||||
},
|
||||
summary_fields: ["title", "draft", "tiles"],
|
||||
fields: [
|
||||
{
|
||||
name: "previous",
|
||||
label: "Rückverlinkung",
|
||||
widget: "object",
|
||||
collapsed: true,
|
||||
fields: [
|
||||
EnableBoolean,
|
||||
Title(false),
|
||||
DraftBoolean,
|
||||
{
|
||||
name: "type",
|
||||
label: "Typ",
|
||||
widget: "hidden",
|
||||
default: "superhaufen"
|
||||
name: "link",
|
||||
label: "Link",
|
||||
widget: "string",
|
||||
required: true,
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
name: "tiles",
|
||||
label: "Kacheln",
|
||||
hint: "Die Vorschau zeigt nur die generierten Symbolkarten, NICHT die Inhalte.",
|
||||
widget: "list",
|
||||
required: false,
|
||||
collapsed: true,
|
||||
fields: [
|
||||
Title(false),
|
||||
{
|
||||
name: "bg_color",
|
||||
label: "Hintergrundfarbe",
|
||||
widget: "color",
|
||||
required: true,
|
||||
},
|
||||
{
|
||||
name: "previous",
|
||||
label: "Rückverlinkung",
|
||||
widget: "object",
|
||||
collapsed: true,
|
||||
fields: [
|
||||
EnableBoolean,
|
||||
Title(false),
|
||||
{
|
||||
name: "link",
|
||||
label: "Link",
|
||||
widget: "string",
|
||||
required: true
|
||||
}
|
||||
]
|
||||
name: "icon",
|
||||
label: "Symbol",
|
||||
widget: "string",
|
||||
required: true,
|
||||
},
|
||||
{
|
||||
name: "tiles",
|
||||
label: "Kacheln",
|
||||
hint: "Die Vorschau zeigt nur die generierten Symbolkarten, NICHT die Inhalte.",
|
||||
widget: "list",
|
||||
required: false,
|
||||
collapsed: true,
|
||||
fields: [
|
||||
Title(false),
|
||||
{
|
||||
name: "bg_color",
|
||||
label: "Hintergrundfarbe",
|
||||
widget: "color",
|
||||
required: true,
|
||||
},
|
||||
{
|
||||
name: "icon",
|
||||
label: "Symbol",
|
||||
widget: "string",
|
||||
required: true,
|
||||
},
|
||||
{
|
||||
name: "font_color",
|
||||
label: "Symbolfarbe",
|
||||
widget: "color",
|
||||
required: true,
|
||||
},
|
||||
{
|
||||
name: "content",
|
||||
label: "Inhalt",
|
||||
widget: "markdown",
|
||||
required: true,
|
||||
...MarkdownProps
|
||||
},
|
||||
{
|
||||
name: "unterhaufen",
|
||||
label: "Unterhaufen",
|
||||
widget: "list",
|
||||
required: false,
|
||||
collapsed: true,
|
||||
fields: [
|
||||
Title(false),
|
||||
{
|
||||
name: "content",
|
||||
label: "Inhalt",
|
||||
widget: "markdown",
|
||||
required: true,
|
||||
...MarkdownProps
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
name: "font_color",
|
||||
label: "Symbolfarbe",
|
||||
widget: "color",
|
||||
required: true,
|
||||
},
|
||||
{
|
||||
name: "content",
|
||||
label: "Inhalt",
|
||||
widget: "markdown",
|
||||
required: true,
|
||||
...MarkdownProps,
|
||||
},
|
||||
{
|
||||
name: "unterhaufen",
|
||||
label: "Unterhaufen",
|
||||
widget: "list",
|
||||
required: false,
|
||||
collapsed: true,
|
||||
fields: [
|
||||
Title(false),
|
||||
{
|
||||
name: "content",
|
||||
label: "Inhalt",
|
||||
widget: "markdown",
|
||||
required: true,
|
||||
...MarkdownProps,
|
||||
},
|
||||
],
|
||||
},
|
||||
],
|
||||
},
|
||||
],
|
||||
};
|
||||
|
||||
export default SuperhaufenCollection;
|
||||
export default SuperhaufenCollection;
|
||||
|
73
static/admin/config/collections/wettbewerbe.js
Normal file
73
static/admin/config/collections/wettbewerbe.js
Normal file
@ -0,0 +1,73 @@
|
||||
import { MarkdownProps } from "../props.js";
|
||||
import { DescriptionText, DraftBoolean, Title } from "./widgets.js";
|
||||
|
||||
const WettbewerbeCollection = {
|
||||
name: "wettbewerbe",
|
||||
label: "Wettbewerbe",
|
||||
label_singular: "Wettbewerb",
|
||||
description: "Hier kann die Übersicht der Wettbewerbe bearbeitet werden.",
|
||||
icon: "trophy",
|
||||
folder: "content/german/wettbewerbe",
|
||||
create: true,
|
||||
editor: {
|
||||
preview: true,
|
||||
frame: true,
|
||||
size: "half",
|
||||
},
|
||||
filter: {
|
||||
field: "type",
|
||||
value: "wettbewerbe",
|
||||
},
|
||||
summary_fields: ["title", "draft", "category"],
|
||||
fields: [
|
||||
Title(false),
|
||||
DraftBoolean,
|
||||
DescriptionText,
|
||||
{
|
||||
name: "image",
|
||||
label: "Titelbild",
|
||||
widget: "image",
|
||||
required: true,
|
||||
default: "/media/image.webp",
|
||||
},
|
||||
{
|
||||
name: "category",
|
||||
label: "Fach",
|
||||
hint: "Verwaltet in den Einstellungen",
|
||||
widget: "relation",
|
||||
collection: "settings",
|
||||
file: "data-categories",
|
||||
value_field: "contests.*",
|
||||
search_fields: ["contests.*"],
|
||||
display_fields: ["contests.*"],
|
||||
required: true,
|
||||
},
|
||||
{
|
||||
name: "class",
|
||||
label: "Klassenstufe(n)",
|
||||
widget: "string",
|
||||
required: true,
|
||||
},
|
||||
{
|
||||
name: "web_url",
|
||||
label: "Website",
|
||||
widget: "string",
|
||||
required: false,
|
||||
},
|
||||
{
|
||||
name: "type",
|
||||
label: "Typ",
|
||||
widget: "hidden",
|
||||
default: "wettbewerbe",
|
||||
},
|
||||
{
|
||||
name: "body",
|
||||
label: "Inhalt",
|
||||
widget: "markdown",
|
||||
required: true,
|
||||
...MarkdownProps,
|
||||
},
|
||||
],
|
||||
};
|
||||
|
||||
export default WettbewerbeCollection;
|
@ -1,30 +1,88 @@
|
||||
import { DataObject } from "../props.js";
|
||||
|
||||
const EnableBoolean = {
|
||||
name: "enable",
|
||||
label: "Aktivieren",
|
||||
widget: "boolean",
|
||||
required: false
|
||||
name: "enable",
|
||||
label: "Aktivieren",
|
||||
widget: "boolean",
|
||||
required: false,
|
||||
};
|
||||
|
||||
const DisableBoolean = {
|
||||
name: "disable",
|
||||
label: "Deaktivieren",
|
||||
widget: "boolean",
|
||||
required: false,
|
||||
};
|
||||
|
||||
const DraftBoolean = {
|
||||
name: "draft",
|
||||
label: "Entwurf",
|
||||
widget: "boolean",
|
||||
default: false,
|
||||
required: false
|
||||
}
|
||||
name: "draft",
|
||||
label: "Entwurf",
|
||||
widget: "boolean",
|
||||
default: false,
|
||||
required: false,
|
||||
};
|
||||
|
||||
const Title = (optional = false) => ({
|
||||
name: "title",
|
||||
label: "Titel",
|
||||
widget: "string",
|
||||
required: !optional
|
||||
name: "title",
|
||||
label: "Titel",
|
||||
widget: "string",
|
||||
required: !optional,
|
||||
});
|
||||
|
||||
const DescriptionText = {
|
||||
name: "description",
|
||||
label: "Beschreibung",
|
||||
widget: "text",
|
||||
required: false
|
||||
name: "description",
|
||||
label: "Beschreibung",
|
||||
widget: "text",
|
||||
required: false,
|
||||
};
|
||||
|
||||
export { EnableBoolean, DraftBoolean, Title, DescriptionText };
|
||||
const IconList = {
|
||||
name: "icon",
|
||||
label: "Symbol",
|
||||
widget: "string",
|
||||
required: false,
|
||||
hint: "Liste unter https://assets.cantorgymnasium.de/fonts/mdi/v7/preview.html",
|
||||
};
|
||||
|
||||
const PreviewNumber = {
|
||||
name: "number",
|
||||
label: "Anzahl",
|
||||
hint: "Anzahl der Elemente, die auf der Startseite angezeigt werden sollen.",
|
||||
widget: "number",
|
||||
value_type: "int",
|
||||
min: 0,
|
||||
step: 1,
|
||||
required: true,
|
||||
};
|
||||
|
||||
const ButtonObject = {
|
||||
name: "button",
|
||||
label: "Button",
|
||||
...DataObject,
|
||||
fields: [
|
||||
EnableBoolean,
|
||||
{
|
||||
name: "label",
|
||||
label: "Aufschrift",
|
||||
widget: "string",
|
||||
required: false,
|
||||
},
|
||||
{
|
||||
name: "link",
|
||||
label: "Link",
|
||||
widget: "string",
|
||||
required: false,
|
||||
},
|
||||
],
|
||||
};
|
||||
|
||||
export {
|
||||
EnableBoolean,
|
||||
DisableBoolean,
|
||||
DraftBoolean,
|
||||
Title,
|
||||
DescriptionText,
|
||||
IconList,
|
||||
PreviewNumber,
|
||||
ButtonObject,
|
||||
};
|
||||
|
@ -1,37 +1,71 @@
|
||||
import { SettingsCollection } from "./collections/index.js";
|
||||
import {
|
||||
AbiturientenCollection,
|
||||
AuthorCollection,
|
||||
BegabteCollection,
|
||||
BlogCollection,
|
||||
CantorforaCollection,
|
||||
CantorpreisCollection,
|
||||
ChronikjahreCollection,
|
||||
ChronikseitenCollection,
|
||||
FormsCollection,
|
||||
GanztagCollection,
|
||||
IndexPagesCollection,
|
||||
PagesCollection,
|
||||
ProjektwocheCollection,
|
||||
SettingsCollection,
|
||||
StatsCollection,
|
||||
SuperhaufenCollection,
|
||||
WettbewerbeCollection,
|
||||
} from "./collections/index.js";
|
||||
|
||||
const config = {
|
||||
backend: {
|
||||
name: "gitea",
|
||||
repo: "gcg/gcg-website",
|
||||
branch: "master",
|
||||
api_root: "https://git.cantorgymnasium.de/api/v1",
|
||||
base_url: "https://oauth.cantorgymnasium.de",
|
||||
commit_messages: {
|
||||
create: "{{collection}} {{slug}} erstellt",
|
||||
update: "{{collection}} {{slug}} aktualisiert",
|
||||
delete: "{{collection}} {{slug}} gelöscht",
|
||||
updateMedia: "{{path}} hochgeladen",
|
||||
deleteMedia: "{{path}} gelöscht"
|
||||
}
|
||||
backend: {
|
||||
name: "gitea",
|
||||
repo: "gcg/gcg-website",
|
||||
branch: "master",
|
||||
api_root: "https://git.cantorgymnasium.de/api/v1",
|
||||
base_url: "https://oauth.cantorgymnasium.de",
|
||||
commit_messages: {
|
||||
create: "{{collection}} {{slug}} erstellt",
|
||||
update: "{{collection}} {{slug}} aktualisiert",
|
||||
delete: "{{collection}} {{slug}} gelöscht",
|
||||
updateMedia: "{{path}} hochgeladen",
|
||||
deleteMedia: "{{path}} gelöscht",
|
||||
},
|
||||
local_backend: true,
|
||||
media_folder: "/static/media",
|
||||
public_folder: "/media",
|
||||
media_library: {
|
||||
max_file_size: 10240000,
|
||||
folder_support: true
|
||||
},
|
||||
site_url: "https://cantorgymnasium.de",
|
||||
locale: "de",
|
||||
slug: {
|
||||
encoding: "ascii",
|
||||
clean_accents: true,
|
||||
sanitize_replacement: "-"
|
||||
},
|
||||
collections: [
|
||||
SettingsCollection
|
||||
]
|
||||
},
|
||||
local_backend: true,
|
||||
media_folder: "/static/media",
|
||||
public_folder: "/media",
|
||||
media_library: {
|
||||
max_file_size: 10240000,
|
||||
folder_support: true,
|
||||
},
|
||||
site_url: "https://cantorgymnasium.de",
|
||||
locale: "de",
|
||||
slug: {
|
||||
encoding: "ascii",
|
||||
clean_accents: true,
|
||||
sanitize_replacement: "-",
|
||||
},
|
||||
collections: [
|
||||
SettingsCollection,
|
||||
IndexPagesCollection,
|
||||
PagesCollection,
|
||||
AuthorCollection,
|
||||
BlogCollection,
|
||||
FormsCollection,
|
||||
GanztagCollection,
|
||||
WettbewerbeCollection,
|
||||
BegabteCollection,
|
||||
ProjektwocheCollection,
|
||||
ChronikjahreCollection,
|
||||
SuperhaufenCollection,
|
||||
CantorpreisCollection,
|
||||
AbiturientenCollection,
|
||||
CantorforaCollection,
|
||||
ChronikseitenCollection,
|
||||
StatsCollection,
|
||||
],
|
||||
};
|
||||
|
||||
export default config;
|
||||
export default config;
|
||||
|
@ -1,56 +1,77 @@
|
||||
const MarkdownProps = {
|
||||
toolbar_buttons: {
|
||||
main: [
|
||||
'bold',
|
||||
'italic',
|
||||
'strikethrough',
|
||||
'code',
|
||||
'font',
|
||||
'unordered-list',
|
||||
'ordered-list',
|
||||
'decrease-indent',
|
||||
'increase-indent',
|
||||
'insert-table',
|
||||
'blockquote',
|
||||
'file-link',
|
||||
'code-block',
|
||||
'shortcode',
|
||||
],
|
||||
empty: [],
|
||||
selection: ['bold', 'italic', 'strikethrough', 'code', 'font', 'file-link', 'blockquote'],
|
||||
table_empty: [
|
||||
'bold',
|
||||
'italic',
|
||||
'strikethrough',
|
||||
'code',
|
||||
'insert-row',
|
||||
'delete-row',
|
||||
'insert-column',
|
||||
'delete-column',
|
||||
'delete-table',
|
||||
'file-link',
|
||||
'shortcode',
|
||||
],
|
||||
table_selection: [
|
||||
'bold',
|
||||
'italic',
|
||||
'strikethrough',
|
||||
'code',
|
||||
'insert-row',
|
||||
'delete-row',
|
||||
'insert-column',
|
||||
'delete-column',
|
||||
'delete-table',
|
||||
'file-link',
|
||||
'shortcode',
|
||||
]
|
||||
}
|
||||
toolbar_buttons: {
|
||||
main: [
|
||||
"bold",
|
||||
"italic",
|
||||
"strikethrough",
|
||||
"code",
|
||||
"font",
|
||||
"unordered-list",
|
||||
"ordered-list",
|
||||
"decrease-indent",
|
||||
"increase-indent",
|
||||
"insert-table",
|
||||
"blockquote",
|
||||
"file-link",
|
||||
"code-block",
|
||||
"shortcode",
|
||||
],
|
||||
empty: [],
|
||||
selection: [
|
||||
"bold",
|
||||
"italic",
|
||||
"strikethrough",
|
||||
"code",
|
||||
"font",
|
||||
"file-link",
|
||||
"blockquote",
|
||||
],
|
||||
table_empty: [
|
||||
"bold",
|
||||
"italic",
|
||||
"strikethrough",
|
||||
"code",
|
||||
"insert-row",
|
||||
"delete-row",
|
||||
"insert-column",
|
||||
"delete-column",
|
||||
"delete-table",
|
||||
"file-link",
|
||||
"shortcode",
|
||||
],
|
||||
table_selection: [
|
||||
"bold",
|
||||
"italic",
|
||||
"strikethrough",
|
||||
"code",
|
||||
"insert-row",
|
||||
"delete-row",
|
||||
"insert-column",
|
||||
"delete-column",
|
||||
"delete-table",
|
||||
"file-link",
|
||||
"shortcode",
|
||||
],
|
||||
},
|
||||
};
|
||||
|
||||
const DateFormat = {
|
||||
date_format: "dd.MM.yyyy",
|
||||
time_format: false,
|
||||
format: "yyyy-MM-dd'T'HH:mm:ss.SSSXXX"
|
||||
date_format: "dd.MM.yyyy",
|
||||
time_format: false,
|
||||
format: "yyyy-MM-dd'T'HH:mm:ss.SSSXXX",
|
||||
};
|
||||
|
||||
export { MarkdownProps, DateFormat };
|
||||
const DataObject = {
|
||||
widget: "object",
|
||||
collapsed: true,
|
||||
summary: "{{fields.enable | ternary('aktiv', 'inaktiv')}}",
|
||||
};
|
||||
|
||||
const PatternEmail = {
|
||||
pattern: [
|
||||
"^\\w+([-+.']\\w+)*@\\w+([-.]\\w+)*\\.\\w+([-.]\\w+)*$",
|
||||
"name@domain.tld",
|
||||
],
|
||||
};
|
||||
|
||||
export { MarkdownProps, DateFormat, DataObject, PatternEmail };
|
||||
|
@ -1,43 +1,51 @@
|
||||
import { AbiturientenCollection, CantorforaCollection, CantorpreisCollection, ChronikjahreCollection, ChronikseitenCollection, SuperhaufenCollection } from "./collections/index.js";
|
||||
|
||||
import {
|
||||
AbiturientenCollection,
|
||||
CantorforaCollection,
|
||||
CantorpreisCollection,
|
||||
ChronikjahreCollection,
|
||||
ChronikseitenCollection,
|
||||
StatsCollection,
|
||||
SuperhaufenCollection,
|
||||
} from "./collections/index.js";
|
||||
|
||||
const config = {
|
||||
backend: {
|
||||
name: "gitea",
|
||||
repo: "gcg/gcg-website",
|
||||
branch: "master",
|
||||
api_root: "https://git.cantorgymnasium.de/api/v1",
|
||||
base_url: "https://oauth.cantorgymnasium.de",
|
||||
commit_messages: {
|
||||
create: "{{collection}} {{slug}} erstellt",
|
||||
update: "{{collection}} {{slug}} aktualisiert",
|
||||
delete: "{{collection}} {{slug}} gelöscht",
|
||||
updateMedia: "{{path}} hochgeladen",
|
||||
deleteMedia: "{{path}} gelöscht"
|
||||
}
|
||||
backend: {
|
||||
name: "gitea",
|
||||
repo: "gcg/gcg-website",
|
||||
branch: "master",
|
||||
api_root: "https://git.cantorgymnasium.de/api/v1",
|
||||
base_url: "https://oauth.cantorgymnasium.de",
|
||||
commit_messages: {
|
||||
create: "{{collection}} {{slug}} erstellt",
|
||||
update: "{{collection}} {{slug}} aktualisiert",
|
||||
delete: "{{collection}} {{slug}} gelöscht",
|
||||
updateMedia: "{{path}} hochgeladen",
|
||||
deleteMedia: "{{path}} gelöscht",
|
||||
},
|
||||
local_backend: true,
|
||||
media_folder: "/static/media",
|
||||
public_folder: "/media",
|
||||
media_library: {
|
||||
max_file_size: 10240000,
|
||||
folder_support: true
|
||||
},
|
||||
site_url: "https://cantorgymnasium.de/schulchronik/",
|
||||
locale: "de",
|
||||
slug: {
|
||||
encoding: "ascii",
|
||||
clean_accents: true,
|
||||
sanitize_replacement: "-"
|
||||
},
|
||||
collections: [
|
||||
ChronikjahreCollection,
|
||||
SuperhaufenCollection,
|
||||
CantorpreisCollection,
|
||||
AbiturientenCollection,
|
||||
CantorforaCollection,
|
||||
ChronikseitenCollection
|
||||
]
|
||||
},
|
||||
local_backend: true,
|
||||
media_folder: "/static/media",
|
||||
public_folder: "/media",
|
||||
media_library: {
|
||||
max_file_size: 10240000,
|
||||
folder_support: true,
|
||||
},
|
||||
site_url: "https://cantorgymnasium.de/schulchronik/",
|
||||
locale: "de",
|
||||
slug: {
|
||||
encoding: "ascii",
|
||||
clean_accents: true,
|
||||
sanitize_replacement: "-",
|
||||
},
|
||||
collections: [
|
||||
ChronikjahreCollection,
|
||||
SuperhaufenCollection,
|
||||
CantorpreisCollection,
|
||||
AbiturientenCollection,
|
||||
CantorforaCollection,
|
||||
ChronikseitenCollection,
|
||||
StatsCollection,
|
||||
],
|
||||
};
|
||||
|
||||
export default config;
|
||||
export default config;
|
||||
|
Reference in New Issue
Block a user