WIP
This commit is contained in:
		@@ -243,7 +243,7 @@ collections:
 | 
			
		||||
                  - {label: "Titel", name: "name", widget: "string"}
 | 
			
		||||
                  - {label: "Link", name: "URL", widget: "string"}
 | 
			
		||||
          - label: "Sprachen"
 | 
			
		||||
            name: "Languages"
 | 
			
		||||
            name: "languages"
 | 
			
		||||
            widget: "object"
 | 
			
		||||
            collapsed: true
 | 
			
		||||
            fields:
 | 
			
		||||
@@ -352,26 +352,6 @@ collections:
 | 
			
		||||
          - {label: "Entwurf", name: "draft", widget: "boolean", default: false, required: false}
 | 
			
		||||
          - {label: "Hintergrundbild", name: "bg_image", widget: "hidden", default: "/media/backgrounds/page-title.png"}
 | 
			
		||||
          - {label: "Metabeschreibung", name: "description", widget: "text", required: false}
 | 
			
		||||
      - name: "impressum"
 | 
			
		||||
        label: "Impressum"
 | 
			
		||||
        file: "content/german/impressum/index.md"
 | 
			
		||||
        fields:
 | 
			
		||||
          - {label: "Titel", name: "title", widget: "string"}
 | 
			
		||||
          - {label: "Entwurf", name: "draft", widget: "boolean", default: false, required: false}
 | 
			
		||||
          - {label: "Hintergrundbild", name: "bg_image", widget: "hidden", default: "/media/backgrounds/page-title.png"}
 | 
			
		||||
          - {label: "Type", name: "type", widget: "hidden", default: "pages"}
 | 
			
		||||
          - {label: "Type", name: "layout", widget: "hidden", default: "single.html"}
 | 
			
		||||
          - {label: "Text", name: "body", widget: "markdown"}
 | 
			
		||||
      - name: "datenschutz"
 | 
			
		||||
        label: "Datenschutz"
 | 
			
		||||
        file: "content/german/datenschutz/index.md"
 | 
			
		||||
        fields:
 | 
			
		||||
          - {label: "Titel", name: "title", widget: "string"}
 | 
			
		||||
          - {label: "Entwurf", name: "draft", widget: "boolean", default: false, required: false}
 | 
			
		||||
          - {label: "Hintergrundbild", name: "bg_image", widget: "hidden", default: "/media/backgrounds/page-title.png"}
 | 
			
		||||
          - {label: "Type", name: "type", widget: "hidden", default: "pages"}
 | 
			
		||||
          - {label: "Type", name: "layout", widget: "hidden", default: "single.html"}
 | 
			
		||||
          - {label: "Text", name: "body", widget: "markdown"}
 | 
			
		||||
      - name: "wettbewerbe-index"
 | 
			
		||||
        label: "Wettbewerbe"
 | 
			
		||||
        file: "content/german/wettbewerbe/_index.md"
 | 
			
		||||
@@ -388,39 +368,6 @@ collections:
 | 
			
		||||
          - {label: "Entwurf", name: "draft", widget: "boolean", default: false, required: false}
 | 
			
		||||
          - {label: "Hintergrundbild", name: "bg_image", widget: "hidden", default: "/media/backgrounds/page-title.png"}
 | 
			
		||||
          - {label: "Metabeschreibung", name: "description", widget: "text", required: false}
 | 
			
		||||
      - name: "schuelervertretung-index"
 | 
			
		||||
        label: "Schülervertretung"
 | 
			
		||||
        file: "content/german/schuelervertretung/index.md"
 | 
			
		||||
        fields:
 | 
			
		||||
          - {label: "Titel", name: "title", widget: "string"}
 | 
			
		||||
          - {label: "Entwurf", name: "draft", widget: "boolean", default: false, required: false}
 | 
			
		||||
          - {label: "Hintergrundbild", name: "bg_image", widget: "hidden", default: "/media/backgrounds/page-title.png"}
 | 
			
		||||
          - {label: "Metabeschreibung", name: "description", widget: "text", required: false}
 | 
			
		||||
          - {label: "Type", name: "type", widget: "hidden", default: "pages"}
 | 
			
		||||
          - {label: "Type", name: "layout", widget: "hidden", default: "single.html"}
 | 
			
		||||
          - {label: "Text", name: "body", widget: "markdown", required: false}
 | 
			
		||||
      - name: "schuelerrat-geschaeftsordnung"
 | 
			
		||||
        label: "Geschäftsordnung der Schülervertretung"
 | 
			
		||||
        file: "content/german/schuelervertretung/geschaeftsordnung.md"
 | 
			
		||||
        fields:
 | 
			
		||||
          - {label: "Titel", name: "title", widget: "string"}
 | 
			
		||||
          - {label: "Entwurf", name: "draft", widget: "boolean", default: false, required: false}
 | 
			
		||||
          - {label: "Hintergrundbild", name: "bg_image", widget: "hidden", default: "/media/backgrounds/page-title.png"}
 | 
			
		||||
          - {label: "Metabeschreibung", name: "description", widget: "text", required: false}
 | 
			
		||||
          - {label: "Type", name: "type", widget: "hidden", default: "pages"}
 | 
			
		||||
          - {label: "Type", name: "layout", widget: "hidden", default: "single.html"}
 | 
			
		||||
          - {label: "Text", name: "body", widget: "markdown", required: false}
 | 
			
		||||
      - name: "bibo"
 | 
			
		||||
        label: "Schulbibliothek"
 | 
			
		||||
        file: "content/german/bibo/index.md"
 | 
			
		||||
        fields:
 | 
			
		||||
          - {label: "Titel", name: "title", widget: "string"}
 | 
			
		||||
          - {label: "Entwurf", name: "draft", widget: "boolean", default: false, required: false}
 | 
			
		||||
          - {label: "Hintergrundbild", name: "bg_image", widget: "hidden", default: "/media/backgrounds/page-title.png"}
 | 
			
		||||
          - {label: "Metabeschreibung", name: "description", widget: "text", required: false}
 | 
			
		||||
          - {label: "Type", name: "type", widget: "hidden", default: "pages"}
 | 
			
		||||
          - {label: "Type", name: "layout", widget: "hidden", default: "single.html"}
 | 
			
		||||
          - {label: "Text", name: "body", widget: "markdown", required: false}
 | 
			
		||||
      - name: "abiturienten"
 | 
			
		||||
        label: "Abiturienten"
 | 
			
		||||
        file: "content/german/abiturienten/_index.md"
 | 
			
		||||
@@ -439,28 +386,6 @@ collections:
 | 
			
		||||
          - {label: "Hintergrundbild", name: "bg_image", widget: "hidden", default: "/media/backgrounds/page-title.png"}
 | 
			
		||||
          - {label: "Metabeschreibung", name: "description", widget: "text", required: false}
 | 
			
		||||
          - {label: "Text", name: "body", widget: "markdown", required: false}
 | 
			
		||||
      - name: "elternvertretung-index"
 | 
			
		||||
        label: "Elternvertretung"
 | 
			
		||||
        file: "content/german/elternvertretung/index.md"
 | 
			
		||||
        fields:
 | 
			
		||||
          - {label: "Titel", name: "title", widget: "string"}
 | 
			
		||||
          - {label: "Entwurf", name: "draft", widget: "boolean", default: false, required: false}
 | 
			
		||||
          - {label: "Hintergrundbild", name: "bg_image", widget: "hidden", default: "/media/backgrounds/page-title.png"}
 | 
			
		||||
          - {label: "Metabeschreibung", name: "description", widget: "text", required: false}
 | 
			
		||||
          - {label: "Type", name: "type", widget: "hidden", default: "pages"}
 | 
			
		||||
          - {label: "Type", name: "layout", widget: "hidden", default: "single.html"}
 | 
			
		||||
          - {label: "Text", name: "body", widget: "markdown", required: false}
 | 
			
		||||
      - name: "jia-index"
 | 
			
		||||
        label: "Junior-Ingenieur-Akademie"
 | 
			
		||||
        file: "content/german/jia/index.md"
 | 
			
		||||
        fields:
 | 
			
		||||
          - {label: "Titel", name: "title", widget: "string"}
 | 
			
		||||
          - {label: "Entwurf", name: "draft", widget: "boolean", default: false, required: false}
 | 
			
		||||
          - {label: "Hintergrundbild", name: "bg_image", widget: "hidden", default: "/media/backgrounds/page-title.png"}
 | 
			
		||||
          - {label: "Metabeschreibung", name: "description", widget: "text", required: false}
 | 
			
		||||
          - {label: "Type", name: "type", widget: "hidden", default: "pages"}
 | 
			
		||||
          - {label: "Type", name: "layout", widget: "hidden", default: "single.html"}
 | 
			
		||||
          - {label: "Text", name: "body", widget: "markdown", required: false}
 | 
			
		||||
  - name: "pages"
 | 
			
		||||
    icon: "page"
 | 
			
		||||
    label: "Zusatzseiten"
 | 
			
		||||
@@ -480,7 +405,7 @@ collections:
 | 
			
		||||
      - {label: "Layout", name: "layout", widget: "hidden", default: "single.html"}
 | 
			
		||||
      - label: "Aliase"
 | 
			
		||||
        name: "aliases"
 | 
			
		||||
        widget: "string"
 | 
			
		||||
        widget: "categories"
 | 
			
		||||
        required: false
 | 
			
		||||
      - {label: "Text", name: "body", widget: "markdown", required: false}
 | 
			
		||||
  - name: "author" 
 | 
			
		||||
@@ -552,12 +477,12 @@ collections:
 | 
			
		||||
        name: "categories"
 | 
			
		||||
        widget: "list"
 | 
			
		||||
        required: false
 | 
			
		||||
        field: {label: "Kategorie", name: "category", widget: "string"}
 | 
			
		||||
        field: {label: "Kategorie", name: "category", widget: "array"}
 | 
			
		||||
      - label: "Tags"
 | 
			
		||||
        name: "tags"
 | 
			
		||||
        widget: "list"
 | 
			
		||||
        required: false
 | 
			
		||||
        field: {label: "Tag", name: "tag", widget: "string"}
 | 
			
		||||
        field: {label: "Tag", name: "tag", widget: "array"}
 | 
			
		||||
      - {label: "Type", name: "type", widget: "hidden", default: "post"}
 | 
			
		||||
      - {label: "Text", name: "body", widget: "markdown"}
 | 
			
		||||
  - name: "forms"
 | 
			
		||||
 
 | 
			
		||||
@@ -39,7 +39,7 @@
 | 
			
		||||
      CMS.registerShortcode('gallery', {
 | 
			
		||||
        label: 'Gallery',
 | 
			
		||||
        openTag: '{{< ',
 | 
			
		||||
        closeTag: ' >}}',
 | 
			
		||||
        closeTag: ' />}}',
 | 
			
		||||
        separator: ' ',
 | 
			
		||||
        toProps: args => {
 | 
			
		||||
          if (args.length > 0) {
 | 
			
		||||
@@ -66,8 +66,8 @@
 | 
			
		||||
        },
 | 
			
		||||
        preview: ({ dir }) => {
 | 
			
		||||
          return h('div', {"className": "row", "style": { border: "1px solid #ccc", borderRadius: "16px", padding: "10px" }},
 | 
			
		||||
          h('b', {}, "Gallerie-Ordner: "),
 | 
			
		||||
          h('span', {}, dir));
 | 
			
		||||
          h('b', {"style": { marginRight: "5px" }}, "Gallerie-Ordner:"),
 | 
			
		||||
          h('code', {}, dir));
 | 
			
		||||
        },
 | 
			
		||||
      });
 | 
			
		||||
      CMS.registerShortcode('load-photoswipe', {
 | 
			
		||||
@@ -87,6 +87,44 @@
 | 
			
		||||
          
 | 
			
		||||
        },
 | 
			
		||||
      });
 | 
			
		||||
      
 | 
			
		||||
    </script>
 | 
			
		||||
    <script>
 | 
			
		||||
      const CategoriesControl = ({ label, value, field, onChange }) => {
 | 
			
		||||
        const separator = useMemo(() => field.separator ?? ', ', [field.separator]);
 | 
			
		||||
    
 | 
			
		||||
        const handleChange = useCallback((e) => {
 | 
			
		||||
          onChange(e.target.value.split(separator).map(e => e.trim()));
 | 
			
		||||
        }, [separator, onChange]);
 | 
			
		||||
    
 | 
			
		||||
        return h('div', {}, 
 | 
			
		||||
          h('label', { for: 'inputId' }, label),
 | 
			
		||||
          h('input', {
 | 
			
		||||
            id: 'inputId',
 | 
			
		||||
            type: 'text',
 | 
			
		||||
            value: value ? value.join(separator) : '',
 | 
			
		||||
            onChange: this.handleChange,
 | 
			
		||||
          })
 | 
			
		||||
        );
 | 
			
		||||
      };
 | 
			
		||||
    
 | 
			
		||||
      const CategoriesPreview = ({ value }) => {
 | 
			
		||||
        return h(
 | 
			
		||||
          'ul',
 | 
			
		||||
          {},
 | 
			
		||||
          value.map(function (val, index) {
 | 
			
		||||
            return h('li', { key: index }, val);
 | 
			
		||||
          }),
 | 
			
		||||
        );
 | 
			
		||||
      };
 | 
			
		||||
    
 | 
			
		||||
      const schema = {
 | 
			
		||||
        properties: {
 | 
			
		||||
          separator: { type: 'string' },
 | 
			
		||||
        },
 | 
			
		||||
      };
 | 
			
		||||
    
 | 
			
		||||
      CMS.registerWidget('categories', CategoriesControl, CategoriesPreview, schema);
 | 
			
		||||
    </script>
 | 
			
		||||
    <script>
 | 
			
		||||
CMS.registerPreviewStyle("https://cantorgymnasium.de/plugins/bootstrap/bootstrap.min.css");
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user