# Ein Label für tibi-admin wird mehrsprachig folgendermaßen definiert
label:
    de: Demo-Kolletion
    en: Demo-Collection

# Jede Kolletion kann ein eigenes Icon aus mdijs bekommen.
muiIcon: web

# Die Standardsortierung bei ersten Aufruf der Kollektion.
defaultSort:
    # Nach welchem Feld soll sortiert werden?
    field: updatedTime
    # ASC für aufsteigend oder DESC für absteigend
    order: DESC

# Ist ein Javascript Message-Object-Empfänger implementiert, der empfangene
# Daten als Vorschau rendern kann, so ist dieser hier zu definieren.
# Implementierungshinweise zu einem Solchen gibt es später.
previewUrl: https://demo.testversion.online/preview

# Aus den definierten "imageFilter"-Angaben kann ein Filter für die
# Ausgabe der Thunbnails in der Admin-Ansicht ausgewählt werden.
defaultImageFilter: s

# Jede Kollektion kann über media-Querys mit mehreren Ansichten veknüpft werden.
# Mögliche Ansichten und die dazugehörigen CSS-Queries sind hier zu defineren.
views:
    # Natürlich können die Angaben auch ausgelagert und mehrfach verwendet werden.
    # Die möglichen Angaben werden im Kapitel "views" gezeigt.
    - !include simpleList.yml
    - !include table.yml

# Wird eine Kollektion als eine Gesamtliste schnell unübersichtlich, hild die 
# Definition von "subNavigation".
# Die meisten Angaben sind aus obiger Beschreibung den meta-Objektes bekannt.
# Es wird hier nur auf die zusätzlichen Angaben eingegangen.
subNavigation:
    - # Jede Unternavigation braucht einen eindeutigen Namen um diese später
      # in z.B. Javascript-Code wieder erkennen zu können.
      name: pages

      # Die Angabe des "label" ist optional. Wird sie nicht angegeben, wird
      # wird diese Unternavigation nicht in der Navigation angezeigt.
      # Ohne "label" kann die Unternavigation aber weiterhin für die Referenzierung
      # z.B. in der Mediathek-Ansicht des ContentBuilders verwendet werden.
      label:
          de: Seiten
          en: Pages

      muiIcon: page-layout-body

      defaultSort:
          field: titel
          order: ASC

      # Standardmäßig wird man beim Klick auf einen Eintrag der Kollektion
      # (z.B. Zeile in der Tabelle) direkt zum Editieren des Datensatzes weitergeleitet.
      # Möchte man das nicht, so kann hier ein alternatives Verhalten definiert werden.
      # Mögliche Werte sind:
      # - "edit" (Standard)
      # - "view" (Anzeigen des Datensatzes)
      # - Objekt mit "eval"-Attribut
      #
      # Beim Objekt mit "eval"-Attribut wird der Code mit dem Javascript-Kontext für
      # Kollektionen im tibi-admin ausgeführt. Das Ergebnis kann hierbei wieder "edit"
      # oder "view" sein.
      # Außerdem ist es möglich, eine eigene Funktion zu definieren, die den Datensatz
      # als Parameter erhält. Diese Funktion wird dann für den jweiligen Datensatz
      # ausgeführt, auf den geklickt wurde. Mehr dazu unter dem Widget "ContentBuilder".
      defaultCallback: view

      views:
          - !include simpleList.yml
          - !include table.yml
      # Um mehr Übersicht zu bekommen können zum Einen andere "views" und "defaultSort"
      # genutzt werden. Es kann aber auch eine Einschränkung der Daten über eine 
      # Vorfilterung via "filter" geben. "filter" ist ein Objekt mit MongoDB-Filterangaben.
      # siehe: https://www.mongodb.com/docs/compass/current/query/filter/
      filter:
          type: page
          
    - name: news
      label:
          de: Neuigkeiten
          en: News
      muiIcon: newspaper
      defaultSort:
          field: date
          order: DESC
      defaultCallback: edit
      views:
          - !include simpleList.yml
          - !include table.yml
      filter:
          type: news

# Standardmäßig werden im Formular zu Eingabe der Daten alle Felder von "fields"
# untereinander angeordnet.
# Um diese Anordnung in Tabs zu strukturieren, ist die Verwendung von "tablist"
# vorgesehen.
# Die Definition befindet sich in einem gesonderten Kapitel
tablist: !include tablist.yml

# OpenAPI-Spezifikation für die API-Endpunkte der Kollektion
openapi:
    get:
        summary: 
            en: list all datasets of democol
            de: listet alle Datensätze der Kollektion democol auf
        description: 
            en: list all datasets of democol with pagination and/or filtering
            de: listet alle Datensätze der Kollektion democol mit Paginierung und/oder Filterung