WIP: CMS rebuild
This commit is contained in:
parent
3a96b046ba
commit
5059d1602c
@ -960,7 +960,7 @@ collections:
|
||||
name: "previous"
|
||||
widget: "object"
|
||||
fields:
|
||||
- {label: "Aktiviert", name: "enable", widget: "hidden", default: true}
|
||||
- {label: "Aktiviert", name: "enable", widget: "boolean", default: true}
|
||||
- {label: "Titel", name: "title", widget: "string", required: true}
|
||||
- {label: "Link", name: "link", widget: "string", required: true}
|
||||
- label: "Kacheln"
|
||||
|
54
static/admin/config/collections/abiturienten.js
Normal file
54
static/admin/config/collections/abiturienten.js
Normal file
@ -0,0 +1,54 @@
|
||||
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"
|
||||
},
|
||||
create: true,
|
||||
editor: {
|
||||
preview: true,
|
||||
frame: true
|
||||
},
|
||||
summary_fields: ["title", "draft"],
|
||||
sortable_fields: {
|
||||
fields: ["title"],
|
||||
default: {
|
||||
field: "title",
|
||||
direction: "Descending"
|
||||
}
|
||||
},
|
||||
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
|
||||
}
|
||||
]
|
||||
};
|
||||
|
||||
export default AbiturientenCollection;
|
71
static/admin/config/collections/cantorfora.js
Normal file
71
static/admin/config/collections/cantorfora.js
Normal file
@ -0,0 +1,71 @@
|
||||
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"
|
||||
},
|
||||
create: true,
|
||||
editor: {
|
||||
preview: true,
|
||||
frame: true
|
||||
},
|
||||
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
|
||||
},
|
||||
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;
|
66
static/admin/config/collections/cantorpreis.js
Normal file
66
static/admin/config/collections/cantorpreis.js
Normal file
@ -0,0 +1,66 @@
|
||||
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"
|
||||
},
|
||||
sortable_fields: {
|
||||
fields: ['title', 'name'],
|
||||
default: {
|
||||
field: "title",
|
||||
direction: "Descending"
|
||||
}
|
||||
},
|
||||
summary: "{{title}} - {{name}}",
|
||||
create: true,
|
||||
editor: {
|
||||
preview: true,
|
||||
frame: 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
|
||||
}
|
||||
]
|
||||
};
|
||||
|
||||
export default CantorpreisCollection;
|
111
static/admin/config/collections/chronikjahre.js
Normal file
111
static/admin/config/collections/chronikjahre.js
Normal file
@ -0,0 +1,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"
|
||||
},
|
||||
create: true,
|
||||
editor: {
|
||||
preview: false
|
||||
},
|
||||
summary_fields: ["title", "draft", "cantorpreisträger", "topics"],
|
||||
sortable_fields: {
|
||||
fields: ['title'],
|
||||
default: {
|
||||
field: "title",
|
||||
direction: "Descending"
|
||||
}
|
||||
},
|
||||
fields: [
|
||||
{
|
||||
name: "title",
|
||||
label: "Jahr",
|
||||
widget: "string"
|
||||
},
|
||||
DraftBoolean,
|
||||
{
|
||||
name: "type",
|
||||
label: "Typ",
|
||||
widget: "hidden",
|
||||
default: "schulchronik"
|
||||
},
|
||||
{
|
||||
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: "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: "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;
|
8
static/admin/config/collections/index.js
Normal file
8
static/admin/config/collections/index.js
Normal file
@ -0,0 +1,8 @@
|
||||
import SettingsCollection from "./settings-collection.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";
|
||||
|
||||
export { SettingsCollection, ChronikjahreCollection, SuperhaufenCollection, CantorpreisCollection, AbiturientenCollection, CantorforaCollection };
|
135
static/admin/config/collections/settings-collection.js
Normal file
135
static/admin/config/collections/settings-collection.js
Normal file
@ -0,0 +1,135 @@
|
||||
import { DateFormat, MarkdownProps } from "../props.js";
|
||||
import { EnableBoolean, Title } from "./widgets.js";
|
||||
|
||||
const SettingsCollection = {
|
||||
name: "settings",
|
||||
label: "Einstellungen",
|
||||
icon: "settings",
|
||||
description: "Hier können die Basiseinstellungen der Website geändert werden. Die meisten Bereiche müssen nur in Ausnahmefällen angepasst werden.",
|
||||
editor: {
|
||||
preview: false
|
||||
},
|
||||
files: [
|
||||
{
|
||||
name: "data-homepage",
|
||||
label: "Startseiteneinstellungen",
|
||||
file: "data/de/homepage.yml",
|
||||
fields: [
|
||||
{
|
||||
name: "top_banner",
|
||||
label: "Banner",
|
||||
widget: "object",
|
||||
collapsed: true,
|
||||
summary: "{{fields.enable | ternary('aktiv', 'inaktiv')}}",
|
||||
fields: [
|
||||
EnableBoolean,
|
||||
{
|
||||
name: "text",
|
||||
label: "Text",
|
||||
widget: "markdown",
|
||||
required: false,
|
||||
...MarkdownProps
|
||||
},
|
||||
{
|
||||
name: "color",
|
||||
label: "Farbe",
|
||||
widget: "color",
|
||||
required: false
|
||||
},
|
||||
{
|
||||
name: "font_color",
|
||||
label: "Schriftfarbe",
|
||||
widget: "color",
|
||||
required: false
|
||||
},
|
||||
{
|
||||
name: "icon",
|
||||
label: "Symbol",
|
||||
widget: "string",
|
||||
required: false,
|
||||
hint: "Liste unter https://assets.cantorgymnasium.de/fonts/mdi/v7/preview.html"
|
||||
},
|
||||
{
|
||||
name: "temporarily",
|
||||
label: "Zeitschaltung",
|
||||
widget: "object",
|
||||
fields: [
|
||||
EnableBoolean,
|
||||
{
|
||||
name: "start_date",
|
||||
label: "Startdatum",
|
||||
widget: "datetime",
|
||||
...DateFormat,
|
||||
required: false,
|
||||
},
|
||||
{
|
||||
name: "end_date",
|
||||
label: "Enddatum",
|
||||
widget: "datetime",
|
||||
...DateFormat,
|
||||
required: false,
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
name: "slider",
|
||||
label: "Karusell",
|
||||
widget: "object",
|
||||
collapsed: true,
|
||||
summary: "{{fields.enable | ternary('aktiv', 'inaktiv')}}",
|
||||
fields: [
|
||||
EnableBoolean,
|
||||
{
|
||||
name: "bg_image",
|
||||
label: "Hintergrundbild",
|
||||
widget: "image",
|
||||
required: false,
|
||||
},
|
||||
Title(true),
|
||||
{
|
||||
name: "slider_item",
|
||||
label: "Elemente",
|
||||
label_singular: "Element",
|
||||
widget: "list",
|
||||
collapsed: true,
|
||||
fields: [
|
||||
{
|
||||
name: "content",
|
||||
label: "Text",
|
||||
widget: "string",
|
||||
required: false
|
||||
},
|
||||
{
|
||||
name: "button",
|
||||
label: "Button",
|
||||
widget: "object",
|
||||
required: false,
|
||||
collapsed: true,
|
||||
fields: [
|
||||
EnableBoolean,
|
||||
{
|
||||
name: "label",
|
||||
label: "Aufschrift",
|
||||
widget: "string",
|
||||
required: false
|
||||
},
|
||||
{
|
||||
name: "link",
|
||||
label: "Link",
|
||||
widget: "string",
|
||||
required: false
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
};
|
||||
|
||||
export default SettingsCollection;
|
101
static/admin/config/collections/superhaufen.js
Normal file
101
static/admin/config/collections/superhaufen.js
Normal file
@ -0,0 +1,101 @@
|
||||
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"
|
||||
},
|
||||
create: true,
|
||||
editor: {
|
||||
preview: true,
|
||||
frame: true,
|
||||
},
|
||||
summary_fields: ["title", "draft", "tiles"],
|
||||
fields: [
|
||||
Title(false),
|
||||
DraftBoolean,
|
||||
{
|
||||
name: "type",
|
||||
label: "Typ",
|
||||
widget: "hidden",
|
||||
default: "superhaufen"
|
||||
},
|
||||
{
|
||||
name: "previous",
|
||||
label: "Rückverlinkung",
|
||||
widget: "object",
|
||||
collapsed: true,
|
||||
fields: [
|
||||
EnableBoolean,
|
||||
Title(false),
|
||||
{
|
||||
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: "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
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
export default SuperhaufenCollection;
|
30
static/admin/config/collections/widgets.js
Normal file
30
static/admin/config/collections/widgets.js
Normal file
@ -0,0 +1,30 @@
|
||||
const EnableBoolean = {
|
||||
name: "enable",
|
||||
label: "Aktivieren",
|
||||
widget: "boolean",
|
||||
required: false
|
||||
};
|
||||
|
||||
const DraftBoolean = {
|
||||
name: "draft",
|
||||
label: "Entwurf",
|
||||
widget: "boolean",
|
||||
default: false,
|
||||
required: false
|
||||
}
|
||||
|
||||
const Title = (optional = false) => ({
|
||||
name: "title",
|
||||
label: "Titel",
|
||||
widget: "string",
|
||||
required: !optional
|
||||
});
|
||||
|
||||
const DescriptionText = {
|
||||
name: "description",
|
||||
label: "Beschreibung",
|
||||
widget: "text",
|
||||
required: false
|
||||
};
|
||||
|
||||
export { EnableBoolean, DraftBoolean, Title, DescriptionText };
|
37
static/admin/config/index.js
Normal file
37
static/admin/config/index.js
Normal file
@ -0,0 +1,37 @@
|
||||
import { SettingsCollection } 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"
|
||||
}
|
||||
},
|
||||
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
|
||||
]
|
||||
};
|
||||
|
||||
export default config;
|
56
static/admin/config/props.js
Normal file
56
static/admin/config/props.js
Normal file
@ -0,0 +1,56 @@
|
||||
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',
|
||||
]
|
||||
}
|
||||
};
|
||||
|
||||
const DateFormat = {
|
||||
date_format: "dd.MM.yyyy",
|
||||
time_format: false,
|
||||
format: "yyyy-MM-dd'T'HH:mm:ss.SSSXXX"
|
||||
};
|
||||
|
||||
export { MarkdownProps, DateFormat };
|
42
static/admin/config/schulchronik.js
Normal file
42
static/admin/config/schulchronik.js
Normal file
@ -0,0 +1,42 @@
|
||||
import { AbiturientenCollection, CantorforaCollection, CantorpreisCollection, ChronikjahreCollection, 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"
|
||||
}
|
||||
},
|
||||
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
|
||||
]
|
||||
};
|
||||
|
||||
export default config;
|
@ -9,7 +9,7 @@ const IconNames = {
|
||||
group: "mdi mdi-crowd",
|
||||
trophy: "mdi mdi-trophy-outline",
|
||||
pi: "mdi mdi-pi-box",
|
||||
pillar: "mdi mdi-pillar",
|
||||
schulchronik: "mdi mdi-pillar",
|
||||
"graduation-cap": "mdi mdi-school-outline",
|
||||
help: "mdi mdi-lifebuoy",
|
||||
dash: "mdi mdi-monitor-dashboard",
|
||||
|
@ -10,6 +10,7 @@
|
||||
<body>
|
||||
<script src="https://cdn.jsdelivr.net/npm/@staticcms/app@^2.0.0/dist/static-cms-app.js"></script>
|
||||
<script type="module">
|
||||
import config from "./config/index.js";
|
||||
// imports
|
||||
import {
|
||||
AboutPreview,
|
||||
@ -61,7 +62,7 @@
|
||||
CMS.registerPreviewTemplate("contact-index", KontaktPreview);
|
||||
CMS.registerPreviewTemplate("event-index", EventPreview);
|
||||
CMS.registerPreviewTemplate("anmeldung-index", AnmeldungPreview);
|
||||
CMS.registerPreviewTemplate("schulchronik", ChronikPreview);
|
||||
CMS.registerPreviewTemplate("chronikjahre", ChronikPreview);
|
||||
CMS.registerPreviewTemplate("anmeldeformular", AnmeldeformularPreview);
|
||||
CMS.registerPreviewTemplate("schulchronik-index", ChronikIndexPreview);
|
||||
CMS.registerPreviewTemplate("author", AuthorPreview);
|
||||
@ -119,7 +120,7 @@
|
||||
CMS.registerFieldPreview("author", "active", BooleanPreview);
|
||||
CMS.registerFieldPreview("author", "simplified", BooleanPreview);
|
||||
CMS.registerFieldPreview("blog", "date", DatePreview);
|
||||
CMS.registerFieldPreview("schulchronik", "topics", CountPreview);
|
||||
CMS.registerFieldPreview("chronikjahre", "topics", CountPreview);
|
||||
["projektwoche", "superhaufen"].forEach((collection) =>
|
||||
CMS.registerFieldPreview(collection, "tiles", CountPreview)
|
||||
);
|
||||
@ -132,7 +133,7 @@
|
||||
"wettbewerbe",
|
||||
"begabte",
|
||||
"projektwoche",
|
||||
"schulchronik",
|
||||
"chronikjahre",
|
||||
"abiturienten",
|
||||
"superhaufen",
|
||||
"cantorfora",
|
||||
|
@ -209,7 +209,7 @@ collections:
|
||||
- {label: "Titel", name: "title", widget: "string", required: false}
|
||||
- {label: "Inhalt", name: "content", widget: "markdown", required: true}
|
||||
- name: "schulchronik"
|
||||
icon: "pillar"
|
||||
icon: "schulchronik"
|
||||
label: "Schulchronik"
|
||||
label_singular: "Chronikjahr"
|
||||
folder: "content/german/schulchronik"
|
||||
|
@ -4,571 +4,109 @@
|
||||
<meta charset="utf-8" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||
<link rel="stylesheet" href="https://assets.cantorgymnasium.de/fonts/mdi/v7/css/materialdesignicons.min.css">
|
||||
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@staticcms/app@^2.0.0/dist/main.css" />
|
||||
<title>Chronikverwaltung</title>
|
||||
</head>
|
||||
<body>
|
||||
<style>
|
||||
body {
|
||||
font-family: sans-serif;
|
||||
}
|
||||
.icon-md {
|
||||
font-size: 25px;
|
||||
}
|
||||
</style>
|
||||
<script src="https://cdn.jsdelivr.net/npm/@staticcms/app@^1.2.7/dist/static-cms-app.js"></script>
|
||||
<!--script src="https://cantorgymnasium.de/plugins/wordcloud/wordcloud2.min.js"></script-->
|
||||
<script id="cms-init">
|
||||
CMS.init();
|
||||
</script>
|
||||
<script id="icons">
|
||||
var icons = [['settings', 'mdi mdi-cog-outline'], ['user', 'mdi mdi-fountain-pen-tip'], ['page', 'mdi mdi-file-document-outline'], ['page-add', 'mdi mdi-file-document-plus-outline'], ['document', 'mdi mdi-file-document-multiple-outline'], ['news', 'mdi mdi-newspaper'], ['award', 'mdi mdi-seal-variant'], ['group', 'mdi mdi-crowd'], ['trophy', 'mdi mdi-trophy-outline'], ['pi', 'mdi mdi-pi-box'], ['pillar', 'mdi mdi-pillar'], ['graduation-cap', 'mdi mdi-school-outline'], ['help', 'mdi mdi-lifebuoy'], ['dash', 'mdi mdi-monitor-dashboard'], ['presentation', 'mdi mdi-presentation'], ['superhaufen', 'mdi mdi-view-dashboard'], ['stats', 'mdi mdi-chart-bar']];
|
||||
icons.forEach(icon => {
|
||||
CMS.registerIcon(icon[0], ({}) => { return(h('i', {className: icon[1] + " icon-md"})); });
|
||||
});
|
||||
</script>
|
||||
<script id="links">
|
||||
CMS.registerAdditionalLink({
|
||||
id: 'wiki',
|
||||
title: 'GCG.Wiki',
|
||||
data: 'https://wiki.cantorgymnasium.de',
|
||||
options: {
|
||||
icon: 'help',
|
||||
},
|
||||
});
|
||||
</script>
|
||||
<script>
|
||||
CMS.registerShortcode('gallery', {
|
||||
label: 'Bildergallerie',
|
||||
openTag: '{{< ',
|
||||
closeTag: ' >}}',
|
||||
separator: ' ',
|
||||
toProps: args => {
|
||||
if (args.length > 0) {
|
||||
var dir = args.find(arg => arg.startsWith('dir='))?.split('=')[1].replaceAll("\"","") ?? '';
|
||||
return { dir: dir };
|
||||
}
|
||||
return { dir: '' };
|
||||
},
|
||||
toArgs: ({ dir }) => {
|
||||
return [`dir=\"${dir}\"`];
|
||||
},
|
||||
control: ({ dir, onChange }) => {
|
||||
return h('div', {className: "row", style: { border: "1px solid #868686", borderRadius: "8px", padding: "10px" }},
|
||||
h('b', {style: {width: "30%", fontFamily: "sans-serif", margin: "10px"}}, "Gallerie-Ordner: "),
|
||||
h('input', {
|
||||
key: 'control-input',
|
||||
value: dir,
|
||||
style: {
|
||||
border: "1px solid #ced4da", borderRadius: "8px", padding: "10px", width: "80%"
|
||||
},
|
||||
onChange: event => {
|
||||
onChange({ dir: event.target.value });
|
||||
},
|
||||
}));
|
||||
},
|
||||
preview: ({ dir }) => {
|
||||
return h('div', {className: "row", style: { border: "1px solid #868686", borderRadius: "8px", padding: "10px", marginBottom: "5px" }},
|
||||
h('b', {style: { marginRight: "5px" }}, "Gallerie-Ordner:"),
|
||||
h('code', {}, dir));
|
||||
},
|
||||
});
|
||||
CMS.registerShortcode('figure', {
|
||||
label: 'Bild',
|
||||
openTag: '{{< ',
|
||||
closeTag: ' >}}',
|
||||
separator: ' ',
|
||||
toProps: args => {
|
||||
if (args.length > 0) {
|
||||
var src = args.find(arg => arg.startsWith('src='))?.split('=')[1].replaceAll("\"","") ?? '';
|
||||
return { src };
|
||||
}
|
||||
|
||||
return { dir: '' };
|
||||
},
|
||||
toArgs: ({ src }) => {
|
||||
return [`src=\"${src}\"`];
|
||||
},
|
||||
control: ({ src, onChange }) => {
|
||||
return h('div', {className: "row", style: { border: "1px solid #868686", borderRadius: "16px", padding: "10px" }},
|
||||
h('b', {style: {width: "30%", fontFamily: "sans-serif", margin: "10px"}}, "Bild-Pfad:"),
|
||||
h('input', {
|
||||
key: 'control-input',
|
||||
value: src,
|
||||
style: {
|
||||
border: "1px solid #ced4da", borderRadius: "8px", padding: "10px", width: "80%"
|
||||
},
|
||||
onChange: event => {
|
||||
onChange({ src: event.target.value });
|
||||
},
|
||||
}));
|
||||
},
|
||||
preview: ({ src }) => {
|
||||
return h('div', {className: "row", style: { border: "1px solid #ccc", borderRadius: "16px", padding: "10px" }},
|
||||
h('b', {style: { marginRight: "5px" }}, "Gallerie-Ordner:"),
|
||||
h('code', {}, src));
|
||||
},
|
||||
});
|
||||
CMS.registerShortcode('download', {
|
||||
label: 'Download-Karte',
|
||||
openTag: '{{< ',
|
||||
closeTag: ' >}}',
|
||||
separator: ' ',
|
||||
toProps: args => {
|
||||
if (args.length > 0) {
|
||||
var title = "";
|
||||
var link = "";
|
||||
var linkIndex = args.findIndex(arg => arg.startsWith('link="'));
|
||||
var titleIndex = args.findIndex(arg => arg.startsWith('title="'));
|
||||
if (titleIndex + 1 < linkIndex) {
|
||||
title += args.find(arg => arg.startsWith('title='))?.split('=')[1].replaceAll("\"","") ?? '';
|
||||
for (let i = titleIndex + 1; i < linkIndex; i++) {
|
||||
title += " " + args[i].replaceAll("\"","") ;
|
||||
}
|
||||
} else {
|
||||
title = args.find(arg => arg.startsWith('title='))?.split('=')[1].replaceAll("\"","") ?? ''
|
||||
}
|
||||
if (linkIndex + 1 < args.length) {
|
||||
link += args.find(arg => arg.startsWith('link='))?.split('=')[1].replaceAll("\"","") ?? '';
|
||||
for (let i = linkIndex + 1; i < args.length; i++) {
|
||||
link += " " + args[i].replaceAll("\"","");
|
||||
}
|
||||
} else {
|
||||
link = args.find(arg => arg.startsWith('link='))?.split('=')[1].replaceAll("\"","") ?? ''
|
||||
}
|
||||
title.trim();
|
||||
link.trim();
|
||||
return { title: title, link: link };
|
||||
}
|
||||
<script src="https://cdn.jsdelivr.net/npm/@staticcms/app@^2.0.0/dist/static-cms-app.js"></script>
|
||||
<script type="module">
|
||||
import config from "../../admin/config/schulchronik.js";
|
||||
// imports
|
||||
import {
|
||||
PagePreview,
|
||||
HeaderPreview,
|
||||
ChronikPreview,
|
||||
ChronikIndexPreview,
|
||||
CantorpreisPreview,
|
||||
AbiturientenPreview,
|
||||
ProjektwochePreview,
|
||||
PreviewStyles,
|
||||
} from "../../admin/previews/page-previews/index.js";
|
||||
import {
|
||||
BooleanPreview,
|
||||
DraftPreview,
|
||||
CountPreview,
|
||||
BodyPreview,
|
||||
DatePreview,
|
||||
} from "../../admin/previews/field-previews/index.js";
|
||||
import {
|
||||
GalleryShortcode,
|
||||
ImageShortcode,
|
||||
DownloadShortcode,
|
||||
CardShortcode,
|
||||
YoutubeShortcode,
|
||||
AudioShortcode,
|
||||
SliderShortcode,
|
||||
} from "../../admin/shortcodes/index.js";
|
||||
import { WikiLink } from "../../admin/links/index.js";
|
||||
import Icons from "../../admin/icons.js";
|
||||
|
||||
return { title: '', link: '' };
|
||||
},
|
||||
toArgs: ({ title, link }) => {
|
||||
return [`title=\"${title}\"`, `link=\"${link}\"`];
|
||||
},
|
||||
control: ({ title, link, onChange }) => {
|
||||
return h('div', {className: "row", style: { border: "1px solid #868686", borderRadius: "8px", padding: "10px" }},
|
||||
h('b', {style: {width: "30%", fontFamily: "sans-serif", margin: "10px"}}, "Download-Karte:"),
|
||||
h('input', {
|
||||
key: 'control-input',
|
||||
value: title,
|
||||
style: {
|
||||
border: "1px solid #ced4da", borderRadius: "8px", padding: "10px", width: "35%", marginLeft: "5px", marginRight: "5px"
|
||||
},
|
||||
onChange: event => {
|
||||
onChange({ title: event.target.value, link: link });
|
||||
},
|
||||
}),
|
||||
h('input', {
|
||||
key: 'control-input',
|
||||
value: link,
|
||||
style: {
|
||||
border: "1px solid #ced4da", borderRadius: "8px", padding: "10px", width: "35%", marginLeft: "5px", marginRight: "5px"
|
||||
},
|
||||
onChange: event => {
|
||||
onChange({ title: title, link: event.target.value });
|
||||
},
|
||||
})
|
||||
);
|
||||
},
|
||||
preview: ({ title, link }) => {
|
||||
return h('div', {className: "container mb-0"},
|
||||
h('div', {className: "card border-primary rounded-0 hover-shadow mb-5"},
|
||||
h('div', {className: "card-body mb-0"},
|
||||
h('h4', {className: "card-title"},
|
||||
h('a', {className: "text-decoration-none", href: link}, title),
|
||||
),
|
||||
h('a', {className: "mb-0 btn btn-primary btn-sm text-decoration-none", href: link}, "Download")
|
||||
)))},
|
||||
});
|
||||
CMS.registerShortcode('card', {
|
||||
label: 'Link-Karte',
|
||||
openTag: '{{< ',
|
||||
closeTag: ' >}}',
|
||||
separator: ' ',
|
||||
toProps: args => {
|
||||
if (args.length > 0) {
|
||||
var title = "";
|
||||
var link = "";
|
||||
var linkIndex = args.findIndex(arg => arg.startsWith('link="'));
|
||||
var titleIndex = args.findIndex(arg => arg.startsWith('title="'));
|
||||
if (titleIndex + 1 < linkIndex) {
|
||||
title += args.find(arg => arg.startsWith('title='))?.split('=')[1].replaceAll("\"","") ?? '';
|
||||
for (let i = titleIndex + 1; i < linkIndex; i++) {
|
||||
title += " " + args[i].replaceAll("\"","") ;
|
||||
}
|
||||
} else {
|
||||
title = args.find(arg => arg.startsWith('title='))?.split('=')[1].replaceAll("\"","") ?? ''
|
||||
}
|
||||
if (linkIndex + 1 < args.length) {
|
||||
link += args.find(arg => arg.startsWith('link='))?.split('=')[1].replaceAll("\"","") ?? '';
|
||||
for (let i = linkIndex + 1; i < args.length; i++) {
|
||||
link += " " + args[i].replaceAll("\"","");
|
||||
}
|
||||
} else {
|
||||
link = args.find(arg => arg.startsWith('link='))?.split('=')[1].replaceAll("\"","") ?? ''
|
||||
}
|
||||
title.trim();
|
||||
link.trim();
|
||||
return { title: title, link: link };
|
||||
}
|
||||
// cms initialization
|
||||
CMS.init({ config });
|
||||
|
||||
return { title: '', link: '' };
|
||||
},
|
||||
toArgs: ({ title, link }) => {
|
||||
return [`title=\"${title}\"`, `link=\"${link}\"`];
|
||||
},
|
||||
control: ({ title, link, onChange }) => {
|
||||
return h('div', {className: "row", style: { border: "1px solid #868686", borderRadius: "8px", padding: "10px" }},
|
||||
h('b', {style: {width: "30%", fontFamily: "sans-serif", margin: "10px"}}, "Link-Karte:"),
|
||||
h('input', {
|
||||
key: 'control-input',
|
||||
value: title,
|
||||
style: {
|
||||
border: "1px solid #ced4da", borderRadius: "8px", padding: "10px", width: "40%", marginLeft: "5px", marginRight: "5px"
|
||||
},
|
||||
onChange: event => {
|
||||
onChange({ title: event.target.value, link: link });
|
||||
},
|
||||
}),
|
||||
h('input', {
|
||||
key: 'control-input',
|
||||
value: link,
|
||||
style: {
|
||||
border: "1px solid #ced4da", borderRadius: "8px", padding: "10px", width: "40%", marginLeft: "5px", marginRight: "5px"
|
||||
},
|
||||
onChange: event => {
|
||||
onChange({ title: title, link: event.target.value });
|
||||
},
|
||||
})
|
||||
);
|
||||
},
|
||||
preview: ({ title, link }) => {
|
||||
return h('div', {className: "container mb-0"},
|
||||
h('div', {className: "card border-primary rounded-0 hover-shadow mb-5"},
|
||||
h('div', {className: "card-body mb-0"},
|
||||
h('h4', {className: "card-title"},
|
||||
h('a', {className: "text-decoration-none", href: link}, title),
|
||||
),
|
||||
h('a', {className: "mb-0 btn btn-primary btn-sm text-decoration-none", href: link}, "Mehr anzeigen")
|
||||
)))},
|
||||
});
|
||||
CMS.registerShortcode('youtube', {
|
||||
label: 'YouTube-Video',
|
||||
openTag: '{{< ',
|
||||
closeTag: ' >}}',
|
||||
separator: ' ',
|
||||
toProps: args => {
|
||||
if (args.length > 0) {
|
||||
return { src: args[0] };
|
||||
}
|
||||
|
||||
return { src: '' };
|
||||
},
|
||||
toArgs: ({ src }) => { return [src] },
|
||||
control: ({ src, onChange }) => {
|
||||
return h('div', {className: "row", style: { border: "1px solid #868686", borderRadius: "8px", padding: "10px" }},
|
||||
h('b', {style: {fontFamily: "sans-serif", margin: "10px"}}, "YoutTube-Video:"),
|
||||
h('input', {
|
||||
key: 'control-input',
|
||||
value: src,
|
||||
style: {
|
||||
border: "1px solid #ced4da", borderRadius: "8px", padding: "10px", width: "80%"
|
||||
},
|
||||
onChange: event => {
|
||||
onChange({ src: event.target.value });
|
||||
},
|
||||
}),
|
||||
h('div', {className: "row", style: {"marginTop": "10px"}},
|
||||
h(
|
||||
'iframe',
|
||||
{
|
||||
key: 'control-preview',
|
||||
width: '100%',
|
||||
height: '360',
|
||||
src: `https://piped.kavin.rocks/embed/${src}`,
|
||||
style: { borderRadius: "8px" }
|
||||
},
|
||||
'',
|
||||
)
|
||||
));
|
||||
},
|
||||
preview: ({ src }) => {
|
||||
return h(
|
||||
'span',
|
||||
{},
|
||||
h(
|
||||
'iframe',
|
||||
{
|
||||
width: '420',
|
||||
height: '315',
|
||||
src: `https://piped.kavin.rocks/embed/${src}`,
|
||||
},
|
||||
'',
|
||||
),
|
||||
);
|
||||
},
|
||||
});
|
||||
</script>
|
||||
<script id="preview-styles">
|
||||
CMS.registerPreviewStyle("https://assets.cantorgymnasium.de/bootstrap/v5/css/bootstrap.min.css");
|
||||
CMS.registerPreviewStyle("https://assets.cantorgymnasium.de/fonts/fira/fira.css");
|
||||
CMS.registerPreviewStyle("https://assets.cantorgymnasium.de/fonts/mdi/v7/css/materialdesignicons.min.css");
|
||||
CMS.registerPreviewStyle("https://cantorgymnasium.de/scss/style.css");
|
||||
</script>
|
||||
<!--script>
|
||||
var ChronikPreview = ({widgetFor, widgetsFor, entry, document, window }) => {
|
||||
const divStyle = {
|
||||
backgroundImage: 'url("/media/backgrounds/page-title.webp"),url("/media/backgrounds/page-title.webp")',
|
||||
};
|
||||
return h('div', {"id": "sc-root"},
|
||||
h('section', {className: "page-title-section overlay", style: divStyle},
|
||||
h('div', {className: "container"},
|
||||
h('div', {className: "col-md-8"},
|
||||
h('ul', {className: "list-inline"},
|
||||
h('li', {className: "list-inline-item h2"},
|
||||
h('a', {className: "text-primary font-secondary", href: ""}, "Schulchronik")),
|
||||
h('li', {className: "list-inline-item h2"},
|
||||
h("i", {className: "mdi mdi-chevron-double-right text-white"})),
|
||||
h('li', {className: "list-inline-item text-white h2 font-secondary"}, entry.data.title)
|
||||
)
|
||||
)
|
||||
)
|
||||
),
|
||||
h('section', {className: "section-sm"},
|
||||
h('div', {className: "container"},
|
||||
h('div', {className: "row"},
|
||||
h('div', {className: "col-12 mb-4 content"},
|
||||
widgetsFor('topics').map(function(i, index) {
|
||||
return h('div', {"id": i.data.id, className: "modal"},
|
||||
h('div', {className: "modal-dialog modal-lg", "role": "document"},
|
||||
h('div', {className: "modal-content"},
|
||||
h('div', {className: "modal-header"},
|
||||
h('h5', {className: "modal-title"}, i.data.title),
|
||||
h('button', {className: "close", type: "button", "dataDismiss": "modal", "ariaLabel": "Close"},
|
||||
h('span', {"ariaHidden": "true"}, '\u{00d7}')
|
||||
)
|
||||
),
|
||||
h('div', {className: "modal-body"},
|
||||
h('div', {className: "content"}, i.content)
|
||||
)
|
||||
)
|
||||
)
|
||||
);
|
||||
}),
|
||||
entry.data.pretext != "" && entry.data.pretext != null ? h('div', {"id": "pretext", className: "modal"},
|
||||
h('div', {className: "modal-dialog modal-lg", "role": "document"},
|
||||
h('div', {className: "modal-content"},
|
||||
h('div', {className: "modal-header"},
|
||||
h('h5', {className: "modal-title"}, entry.data.title),
|
||||
h('button', {className: "close", type: "button", "dataDismiss": "modal", "ariaLabel": "Close"},
|
||||
h('span', {"ariaHidden": "true"}, '\u{00d7}')
|
||||
)
|
||||
),
|
||||
h('div', {className: "modal-body"},
|
||||
h('div', {className: "content"}, widgetFor('pretext'))
|
||||
)
|
||||
)
|
||||
)
|
||||
) : null,
|
||||
h('div', {"id": "wc-canvas"}),
|
||||
() => {
|
||||
var topics = [[entry.data.title, 100, "pretext"]];
|
||||
widgetsFor('topics').map(function(i, index) {
|
||||
topics.push([i.data.title, 40, i.data.id]);
|
||||
});
|
||||
var script = document.createElement('script');
|
||||
var div = document.getElementById('sc-root');
|
||||
div.appendChild(script);
|
||||
WordCloud(
|
||||
document.getElementById('wc-canvas'),
|
||||
{
|
||||
click: function (item) {
|
||||
if (item[1] != 100 || (item[1] == 100 && item[2] == "pretext")) {
|
||||
$('#' + item[2]).modal('show');
|
||||
}
|
||||
},
|
||||
color: function (word, weight) {
|
||||
return (weight === 100) ? '#ffbc3b' : '#1a1a37';
|
||||
},
|
||||
fontFamily: 'Fira Sans, serif',
|
||||
fontWeight: 800,
|
||||
list: topics,
|
||||
shrinkToFit: true,
|
||||
gridSize: 25,
|
||||
rotateRatio: 0,
|
||||
}
|
||||
);
|
||||
},
|
||||
widgetFor('body')
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
);
|
||||
};
|
||||
// preview templates
|
||||
CMS.registerPreviewTemplate("chronikjahre", ChronikPreview);
|
||||
CMS.registerPreviewTemplate("schulchronik-index", ChronikIndexPreview);
|
||||
CMS.registerPreviewTemplate("cantorpreis", CantorpreisPreview);
|
||||
CMS.registerPreviewTemplate("superhaufen", ProjektwochePreview);
|
||||
["abiturienten", "cantorfora"].forEach((page) =>
|
||||
CMS.registerPreviewTemplate(page, AbiturientenPreview)
|
||||
);
|
||||
[
|
||||
"cantorpreis-index",
|
||||
"abiturienten-index",
|
||||
].forEach((page) => CMS.registerPreviewTemplate(page, HeaderPreview));
|
||||
[
|
||||
"abiturienten",
|
||||
"cantorfora-index",
|
||||
"schulchronik-index",
|
||||
"chronikseiten",
|
||||
].forEach((page) => CMS.registerPreviewTemplate(page, PagePreview));
|
||||
|
||||
CMS.registerPreviewTemplate("schulchronik", ChronikPreview);
|
||||
PreviewStyles.forEach((url) => {
|
||||
CMS.registerPreviewStyle(url);
|
||||
});
|
||||
|
||||
</script-->
|
||||
<script>
|
||||
var PostPreviewContent = ({widgetFor, entry}) => {
|
||||
const divStyle = {
|
||||
backgroundImage: 'url("/media/backgrounds/page-title.webp"),url("/media/backgrounds/page-title.webp")',
|
||||
};
|
||||
return h('div', {},
|
||||
h('section', {className: "page-title-section overlay", style: divStyle},
|
||||
h('div', {className: "container"},
|
||||
h('div', {className: "col-md-8"},
|
||||
h('ul', {className: "list-inline"},
|
||||
h('li', {className: "list-inline-item h2"},
|
||||
h('a', {className: "text-primary font-secondary", href: ""}, "Startseite")),
|
||||
h('li', {className: "list-inline-item h2"},
|
||||
h("i", {className: "mdi mdi-chevron-double-right text-white"})),
|
||||
h('li', {className: "list-inline-item text-white h2 font-secondary"}, entry.data.title)
|
||||
),
|
||||
h('p', {className: "text-lighten"}, entry.data.description)))),
|
||||
h('section', {className: "section-sm"},
|
||||
h('div', {className: "container"},
|
||||
h('div', {className: "row"},
|
||||
h('div', {className: "col-12 mb-4"},
|
||||
h('div', {className: "content"}, widgetFor('body')))))));
|
||||
};
|
||||
["abiturienten", "cantorfora", "chronikseiten"].forEach(page => {
|
||||
CMS.registerPreviewTemplate(page, PostPreviewContent);
|
||||
});
|
||||
</script>
|
||||
<script>
|
||||
var PagePreview = ({widgetFor, entry}) => {
|
||||
const divStyle = {
|
||||
backgroundImage: 'url("/media/backgrounds/page-title.webp"),url("/media/backgrounds/page-title.webp")',
|
||||
};
|
||||
return h('div', {},
|
||||
h('section', {className: "page-title-section overlay", style: divStyle},
|
||||
h('div', {className: "row"},
|
||||
h('div', {className: "container"},
|
||||
h('div', {className: "col-md-8"},
|
||||
h('ul', {className: "list-inline"},
|
||||
h('li', {className: "list-inline-item h2"},
|
||||
h('a', {className: "text-primary font-secondary", href: ""}, "Startseite")),
|
||||
h('li', {className: "list-inline-item h2"},
|
||||
h("i", {className: "mdi mdi-chevron-double-right text-white"})),
|
||||
h('li', {className: "list-inline-item text-white h2 font-secondary"}, entry.data.title)),
|
||||
h('p', {className: "text-lighten"}, entry.data.description))))));
|
||||
};
|
||||
//shortcodes
|
||||
CMS.registerShortcode("gallery", GalleryShortcode);
|
||||
CMS.registerShortcode("image", ImageShortcode);
|
||||
CMS.registerShortcode("download", DownloadShortcode);
|
||||
CMS.registerShortcode("card", CardShortcode);
|
||||
CMS.registerShortcode("youtube", YoutubeShortcode);
|
||||
CMS.registerShortcode("audio", AudioShortcode);
|
||||
CMS.registerShortcode("slider", SliderShortcode);
|
||||
|
||||
["cantorpreis-index"].forEach(page => {
|
||||
CMS.registerPreviewTemplate(page, PagePreview);
|
||||
});
|
||||
</script>
|
||||
<script>
|
||||
const NoDateCard = ({ entry, widgetFor, viewStyle }) => {
|
||||
return h(
|
||||
'div',
|
||||
{ style: { width: '100%', height: '100%' } },
|
||||
viewStyle === 'grid' ? widgetFor('image') : null,
|
||||
h(
|
||||
'div',
|
||||
{ style: { padding: '16px', width: '100%' } },
|
||||
h(
|
||||
'div',
|
||||
{
|
||||
style: {
|
||||
display: 'flex',
|
||||
width: '100%',
|
||||
justifyContent: 'space-between',
|
||||
alignItems: 'start',
|
||||
},
|
||||
},
|
||||
h(
|
||||
'div',
|
||||
{
|
||||
style: {
|
||||
display: 'flex',
|
||||
flexDirection: viewStyle === 'grid' ? 'column' : 'row',
|
||||
alignItems: 'baseline',
|
||||
gap: '8px',
|
||||
},
|
||||
},
|
||||
h('strong', { style: { fontSize: '20px' } }, entry.data.title),
|
||||
),
|
||||
h(
|
||||
'div',
|
||||
{
|
||||
style: {
|
||||
backgroundColor: entry.data.draft === true ? 'RoyalBlue' : 'green',
|
||||
color: 'white',
|
||||
border: 'none',
|
||||
padding: '4px 8px',
|
||||
textAlign: 'center',
|
||||
textDecoration: 'none',
|
||||
display: 'inline-block',
|
||||
cursor: 'pointer',
|
||||
borderRadius: '4px',
|
||||
},
|
||||
},
|
||||
entry.data.draft === true ? 'Entwurf' : 'Öffentlich',
|
||||
),
|
||||
),
|
||||
),
|
||||
);
|
||||
};
|
||||
const SmallCard = ({ entry, widgetFor, viewStyle }) => {
|
||||
return h(
|
||||
'div',
|
||||
{ style: { width: '100%', height: '100%' } },
|
||||
h(
|
||||
'div',
|
||||
{ style: { padding: '16px', width: '100%' } },
|
||||
h(
|
||||
'div',
|
||||
{
|
||||
style: {
|
||||
display: 'flex',
|
||||
width: '100%',
|
||||
justifyContent: 'space-between',
|
||||
alignItems: 'start',
|
||||
},
|
||||
},
|
||||
h(
|
||||
'div',
|
||||
{
|
||||
style: {
|
||||
display: 'flex',
|
||||
flexDirection: viewStyle === 'grid' ? 'column' : 'row',
|
||||
alignItems: 'baseline',
|
||||
gap: '8px',
|
||||
},
|
||||
},
|
||||
h('strong', { style: { fontSize: '20px' } }, entry.data.title),
|
||||
),
|
||||
h(
|
||||
'div',
|
||||
{
|
||||
style: {
|
||||
backgroundColor: entry.data.draft === true ? 'RoyalBlue' : 'green',
|
||||
color: 'white',
|
||||
border: 'none',
|
||||
padding: '4px 8px',
|
||||
textAlign: 'center',
|
||||
textDecoration: 'none',
|
||||
display: 'inline-block',
|
||||
cursor: 'pointer',
|
||||
borderRadius: '4px',
|
||||
},
|
||||
},
|
||||
entry.data.draft === true ? 'Entwurf' : 'Öffentlich',
|
||||
),
|
||||
),
|
||||
),
|
||||
);
|
||||
};
|
||||
|
||||
['schulchronik', 'chronikseiten', 'cantorpreis-index'].forEach(page => {
|
||||
CMS.registerPreviewCard(page, SmallCard);
|
||||
});
|
||||
|
||||
CMS.registerPreviewCard('abiturienten', NoDateCard);
|
||||
CMS.registerPreviewCard('cantorfora', NoDateCard);
|
||||
// links
|
||||
CMS.registerAdditionalLink(WikiLink);
|
||||
|
||||
// icons
|
||||
Icons.forEach((i) => CMS.registerIcon(i.name, i.icon));
|
||||
|
||||
// field previews
|
||||
|
||||
CMS.registerFieldPreview("chronikjahre", "topics", CountPreview);
|
||||
CMS.registerFieldPreview("superhaufen", "tiles", CountPreview);
|
||||
[
|
||||
"cantorpreis",
|
||||
"chronikjahre",
|
||||
"abiturienten",
|
||||
"superhaufen",
|
||||
"cantorfora",
|
||||
"chronikseiten",
|
||||
].forEach((collection) =>
|
||||
CMS.registerFieldPreview(collection, "draft", DraftPreview)
|
||||
);
|
||||
["chronikseiten", "cantorpreis"].forEach(
|
||||
(collection) => CMS.registerFieldPreview(collection, "body", BodyPreview)
|
||||
);
|
||||
[
|
||||
"cantorpreis-index",
|
||||
"abiturienten-index",
|
||||
"cantorfora",
|
||||
].forEach((collection) =>
|
||||
CMS.registerFieldPreview(collection, "description", BodyPreview)
|
||||
);
|
||||
CMS.registerFieldPreview("chronikseiten", "title", BodyPreview);
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
||||
|
Loading…
x
Reference in New Issue
Block a user