name: navigation
uploadPath: ../media/navigation

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

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

permissions:
    public:
        methods:
            get: true
            post: false
            put: false
            delete: false
    user:
        methods:
            get: true
            post: false
            put: true
            delete: false

x-endpoint: &endpoint
    name: endpoint
    type: boolean
    meta:
        defaultValue:
            eval: 1 == 1
        label: Endpunkt

x-elemente: &elemente
    name: elemente
    type: object[]
    meta:
        label:
            de: Elemente
            en: elements
        folding:
            previewUnfolded: name
            previewFolded: name

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

x-seite: &seite
    name: seite
    type: string
    meta:
        label:
            de: Seite
            en: page
        widget: select
        dependsOn:
            eval: |
                (function(){
                  if($parent.endpoint == undefined) return true;
                  return $parent.endpoint 
                })()

        choices:
            endpoint: content
            params:
                sort: path
                projection: navigation
            mapping:
                id: id
                name: path

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

    - <<: *elemente
      subFields:
          - *endpoint
          - *name
          - *seite
          - name: image
            type: file
            meta:
                label: Bild
                dependsOn:
                    eval: |
                        (function(){
                           if($parent.endpoint == undefined) return false;
                           return !$parent.endpoint 
                        })()

          - name: elemente
            type: object[]
            meta:
                label:
                    de: Elemente
                    en: elements
                dependsOn:
                    eval: |
                        (function(){
                           if($parent.endpoint == undefined) return false;
                           return !$parent.endpoint 
                        })()
                folding:
                    previewUnfolded: name
                    previewFolded: name
            subFields:
                - *name
                - *seite