name: navigation
uploadPath: ../media/navigation

meta:
    label: "Navigation"
    muiIcon: navigation
    allowExportAll: true
    backup:
        active: true
        collectionName: backups
    views:
        - type: simpleList
          mediaQuery: "(max-width:599px)"
          primaryText: tree

        - type: table
          mediaQuery: "(min-width:600px)"
          columns:
              - source: tree
                name: Navigationsbaum

permissions:
    public:
        methods:
            get: true
            post: false
            put: false
            delete: false
    user:
        methods:
            get: true
            post: false
            put: true
            delete: false
hooks:
    post:
        return:
            type: javascript
            file: hooks/clear_cache.js
    put:
        return:
            type: javascript
            file: hooks/clear_cache.js

fields:
    - name: tree
      type: number
      meta:
          label: Baum
          widget: select
          helperText: Die Servicenavigation sollte Seiten wie bspw. die Datneschutzerklärung oder das Impressum umfassen.
          choices:
              - id: 0
                name:
                    de: Hauptnavigation
                    en: main navigation
              - id: 1
                name:
                    de: Servicenavigation
                    en: service navigation

    - name: pages
      type: object[]
      meta:
          label:
              de: Seiten
              en: pages
          folding:
              previewUnfolded: name
              previewFolded: name

          widget: containerLessObjectArray
      subFields:
          - name: name
            type: string
            meta:
                label:
                    de: Name
                    en: name
                helperText: Dieser Name wird zur Anzeige in der Navigation verwendet.

          - name: page
            type: string
            meta:
                label:
                    de: Seite
                    en: page
                widget: select
                choices:
                    endpoint: page
                    params:
                        sort: path
                        projection: navigation
                    mapping:
                        id: id
                        name: path
