gcg-website/static/admin/config/collections/blog.js

113 lines
2.4 KiB
JavaScript
Raw Normal View History

2023-05-29 16:22:34 +02:00
import { DateFormat, MarkdownProps } from "../props.js";
2023-10-01 15:24:00 +02:00
import {
AuthorRelation,
DescriptionText,
DraftBoolean,
Title,
} from "./widgets.js";
2023-05-29 16:22:34 +02:00
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",
2023-06-21 17:58:49 +02:00
folder: "content/blog",
2023-05-29 16:22:34 +02:00
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",
hint: "16:9 Seitenverhältnis beachten",
2023-05-29 16:22:34 +02:00
widget: "image",
required: true,
default: "/media/image.webp",
},
2023-10-01 15:24:00 +02:00
AuthorRelation,
2023-05-29 16:22:34 +02:00
{
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,
options_length: 10000,
2023-05-29 16:22:34 +02:00
},
{
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: false,
options_length: 10000,
2023-05-29 16:22:34 +02:00
},
{
name: "tags",
label: "Tags",
widget: "list",
delimiter: ",",
2023-10-01 15:24:00 +02:00
required: false,
2023-05-29 16:22:34 +02:00
},
{
name: "type",
label: "Typ",
widget: "hidden",
default: "post",
},
{
name: "body",
label: "Inhalt",
widget: "markdown",
required: true,
...MarkdownProps,
},
],
};
export default BlogCollection;