<!DOCTYPE html> <html> <head> <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://assets.cantorgymnasium.de/static-cms/v4/main.css" /> <title>Static CMS</title> </head> <body> <script src="https://assets.cantorgymnasium.de/static-cms/v4/static-cms-app.js"></script> <script type="module"> import config from "./config/index.js"; // imports import { AboutPreview, BlogPreview, ContestPreview, PagePreview, EventPreview, AnmeldungPreview, HeaderPreview, ChronikPreview, KontaktPreview, AnmeldeformularPreview, ChronikIndexPreview, AuthorPreview, FormsPreview, CantorpreisPreview, ProjektwochePreview, AbiturientenPreview, PreviewStyles, } from "./previews/page-previews/index.js"; import { BooleanPreview, DraftPreview, CountPreview, BodyPreview, DatePreview, } from "./previews/field-previews/index.js"; import { GalleryShortcode, ImageShortcode, DownloadShortcode, CardShortcode, YoutubeShortcode, AudioShortcode, SliderShortcode, VideoShortcode, } from "./shortcodes/index.js"; import { StatusPage, WikiLink } from "./links/index.js"; import Icons from "./icons.js"; // cms initialization CMS.init({ config }); // preview templates CMS.registerPreviewTemplate("about-index", AboutPreview); CMS.registerPreviewTemplate("blog", BlogPreview); CMS.registerPreviewTemplate("wettbewerbe", ContestPreview); CMS.registerPreviewTemplate("kontakt", KontaktPreview); CMS.registerPreviewTemplate("termine", EventPreview); CMS.registerPreviewTemplate("anmeldung-index", AnmeldungPreview); CMS.registerPreviewTemplate("chronikjahre", ChronikPreview); CMS.registerPreviewTemplate("anmeldeformular", AnmeldeformularPreview); CMS.registerPreviewTemplate("schulchronik-index", ChronikIndexPreview); CMS.registerPreviewTemplate("author", AuthorPreview); CMS.registerPreviewTemplate("forms", FormsPreview); CMS.registerPreviewTemplate("cantorpreis", CantorpreisPreview); CMS.registerPreviewTemplate("begabte", ContestPreview); ["projektwoche", "superhaufen", "ganztagsangebote-index"].forEach((page) => CMS.registerPreviewTemplate(page, ProjektwochePreview) ); ["abiturienten", "cantorfora"].forEach((page) => CMS.registerPreviewTemplate(page, AbiturientenPreview) ); [ "blog-index", "cantorpreis-index", "forms-index", "wettbewerbe-index", "begabte-index", "abiturienten-index", "projektwoche-index", "author-index", ].forEach((page) => CMS.registerPreviewTemplate(page, HeaderPreview)); [ "abiturienten", "cantorfora-index", "pages", "anmeldeformular", "schulchronik-index", "chronikseiten", ].forEach((page) => CMS.registerPreviewTemplate(page, PagePreview)); PreviewStyles.forEach((url) => { CMS.registerPreviewStyle(url); }); //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); CMS.registerShortcode("video", VideoShortcode); // links CMS.registerAdditionalLink(StatusPage); CMS.registerAdditionalLink(WikiLink); // icons Icons.forEach((i) => CMS.registerIcon(i.name, i.icon)); // field previews CMS.registerFieldPreview("author", "active", BooleanPreview); CMS.registerFieldPreview("author", "simplified", BooleanPreview); CMS.registerFieldPreview("blog", "date", DatePreview); CMS.registerFieldPreview("chronikjahre", "topics", CountPreview); ["projektwoche", "superhaufen"].forEach((collection) => CMS.registerFieldPreview(collection, "tiles", CountPreview) ); [ "forms", "blog", "cantorpreis", "pages", "wettbewerbe", "begabte", "projektwoche", "chronikjahre", "abiturienten", "superhaufen", "cantorfora", "chronikseiten", ].forEach((collection) => CMS.registerFieldPreview(collection, "draft", DraftPreview) ); [ "blog", "author", "chronikseiten", "pages", "cantorpreis", "begabte", ].forEach((collection) => CMS.registerFieldPreview(collection, "body", BodyPreview) ); [ "cantorpreis-index", "wettbewerbe-index", "abiturienten-index", "pages", "projektwoche", "cantorfora", "blog-index", "about-index", "anmeldung-index", "kontakt", "termine", "forms-index", "ganztagsangebote-index", "begabte-index", "projektwoche-index", ].forEach((collection) => CMS.registerFieldPreview(collection, "description", BodyPreview) ); ["chronikseiten", "blog"].forEach((collection) => CMS.registerFieldPreview(collection, "title", BodyPreview) ); // access control CMS.registerEventListener({ name: "login", handler: ({ author: { login, name } }) => { const adminUsers = [ "Tramus00", "denyskon", "gfelke", "lberthold", "cschapitz", "bgorsler", "tmesse", "spflug", "fberner" ]; if (login && !adminUsers.includes(login)) { alert( "Sie sind nicht berechtigt, diese Seite aufzurufen. Sie werden nun zur Startseite weitergeleitet." ); location.href = "/"; } else { console.log("Willkommen im Admin-Bereich!") } }, }); </script> </body> </html>