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