name: module

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

    views:
        - type: table
          columns:
              - source: type
                name: Typ
                filter: true
              - source: label
                name: Label
                filter: true
              - source: germanLabelTranslation
                name: Deutsche Übersetzung
                filter: true

    subNavigation:
        - name: modal
          views:
              - type: table
                columns:
                    - source: type
          defaultCallback:
              eval: |
                  //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

fields:
    - name: type
      type: string
      meta:
          label:
              de: Modultyp
              en: Module Type
          helperText:
              de: "Wählen Sie den Typ des Moduls aus."
              en: "Choose the type of the module."
          widget: select
          choices:
              - name: Größen Label
                id: sizeLabel

    - name: label
      type: string
      index: [single, unique]
      meta:
          label:
              de: Label
              en: Label

    - name: germanLabelTranslation
      index: [single, unique]
      type: string
      meta:
          label:
              de: Deutsche Übersetzung
              en: German Translation
indexes:
    - name: fulltext #  Ein eindeutiger Name für den Index. Es ist optional, wird jedoch empfohlen, um den Index später leicht identifizieren zu können.
      key: # Bestimmt, auf welche Felder der Index angewendet werden soll. Dies kann ein einfacher String sein, wenn der Index nur ein Feld umfasst, oder ein Array von Strings, wenn der Index mehrere Felder umfasst.
          - $text:$**
