name: module

meta:
    label: Module
    allowExportAll: true
    backup:
        active: true
        collectionName: backups

    views:
        - type: table
          columns:
              - source: type
                name: Typ
                filter: true

    subNavigation:
        - name: modal
          views:
              - type: table
                columns:
                    - source: type
          defaultCallback: # Standard-Callback-Funktion, die ausgeführt wird, wenn keine andere spezifiziert ist.
              eval: | # Der Code wird als JavaScript evaluiert.
                  //js
                  (entry) => {  // Diese Funktion nimmt den Eintrag (entry) als Argument.
                      parent.selectEntry(entry)  // Die Funktion selectEntry auf dem übergeordneten Objekt wird mit dem Eintrag als Argument aufgerufen.
                  }
                  //!js
hooks:
    post:
        return:
            type: javascript
            file: hooks/clear_cache.js
    put:
        return:
            type: javascript
            file: hooks/clear_cache.js

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

imageFilter:
    xs:
        - fit: true
          height: 90
          width: 90
          resampling: lanczos
          quality: 60
    s:
        - fit: true
          height: 300
          width: 300
          resampling: lanczos
          quality: 60
    m:
        - fit: true
          height: 600
          width: 600
          resampling: lanczos
          quality: 60
    l:
        - fit: true
          height: 1240
          width: 1240
          resampling: lanczos
          quality: 60
    xl:
        - fit: true
          height: 2000
          width: 2000
          resampling: lanczos
          quality: 60

fields:
    - name: type
      type: string
      meta:
          label: Modultyp
          helperText: "Wählen Sie den Typ des Moduls aus."
          widget: select
          choices:
              - name: Arbeitskreislauf
                id: iconCycleCircle

              - name: Icons im Rechteck
                id: iconCycleSquare

              - name: Weltkarte
                id: worldCard

              - name: Chef Team
                id: chefTeam

              - name: Mitarbeiter Team
                id: employeeTeam

              - name: Stellenanzeigen Verlinkungen
                id: jobOfferLink

              - name: Stellenanzeigen
                id: jobOffer

    - name: jobOfferPage
      type: string
      meta:
          label: Stellenanzeigen
          widget: select
          dependsOn:
              eval: $parent.type == 'jobOfferLink'
          choices:
              endpoint: page
              params:
                  sort: path
                  projection: navigation
              mapping:
                  id: path
                  name: path

    - name: iconCycleCircle
      type: object
      meta:
          label: Icons im Kreis
          widget: containerLessObject

          dependsOn:
              eval: $parent.type == 'iconCycleCircle'
      subFields: !include fieldLists/iconCycleCircle.yml

    - name: iconCycleSquare
      type: object
      meta:
          label: Icons im Rechteck
          dependsOn:
              eval: $parent.type == 'iconCycleSquare'
      subFields: !include fieldLists/iconCycleSquare.yml

    - name: worldCard
      type: object
      meta:
          label: Weltkarte
          widget: containerLessObject
          dependsOn:
              eval: $parent.type == 'worldCard'
      subFields:
          - name: row
            type: object[]
            meta:
                label: Weltkartenreihe
                widget: grid
            subFields:
                - name: cards
                  type: object[]
                  meta:
                      label: Kartenspalten
                      widget: grid
                      direction: row
                      metaElements:
                          - verticalAlignment
                          - horizontalAlignment
                  subFields: !include fieldLists/cards.yml
