# Der Name der Kollektion ist beliebig, aber wird in unserem # Beispiel vom ContentBuilder als "medialib" referenziert. name: medialib uploadPath: ../media/medialib fields: - !include fields/title.yml # Ein Feld vom Typ "file" wird für die Mediathek natürlich # benötigt. - name: file type: file meta: label: de: Datei en: File permissions: public: methods: get: true post: false put: false delete: false user: methods: get: true post: true put: true delete: true meta: label: de: Medienbibliothek en: Media Library muiIcon: multimedia defaultSort: field: title order: ASC # "defaultImageFilter" dient auch hier nur zur Reduzierung der # Bildgröße bei der Anzeige im tibi-admin (Listen). # Die Bildgröße für die Einbindung ins erzeugte HTML des ContentBuilder # hat hiermit nix zu tun. defaultImageFilter: s # Wird unter "image-/file-/videoSelect" im ContentBuilder Feld kein # "subNavigation" Index definiert, werden auch folgende "views" # verwendet. views: - type: table mediaQuery: "(min-width: 0px)" columns: - source: updateTime label: letztes Update type: datetime - source: title filter: true - source: file # Wird ein "subNavigation" Index für "image-/file-/videoSelect" definiert, # wird die entsprechende Navigation aus folgender Liste angesprochen. # "0" ist dabei der Index für das erste Element dieser Liste. subNavigation: - # Der "name" der Navigation ist für die Mediathek nicht von Bedeutung, # kann aber für "eval"-Code interessant sein. name: modal # Auf "label" wurde hier verzichtet, damit dieses Element nicht in der # Hauptnavigation des tibi-admin auftaucht. # Folgende Ansicht wird für unsere Auswahl der Datei im ContentBuilder # angeboten. views: - type: table mediaQuery: "(min-width: 0px)" columns: - source: title filter: true - source: file # Damit der ContentBuilder weiß, welche Datei ausgewählt wurde, ist # ist folgender "defaultCallback" notwendig. # Die Funktion wird beim Klick auf die entsprechende Datei aufgerufen. # Als Funktionsparameter steht der gesamte Datensatz der Auswahl zur # Verfügung. # Die Funktionen "parent.selectAsset" und "parent.focus" sind ContentBuilder # spezifisch und schließen die Listenansicht direkt nach Übergabe der # Datei-URL. # Die URL setzt sich aus dem Pfad zur Datei und dem Filter "l" zusammen. # Es wurde eine relative URL konstruiert, da das ContentBuilder-Widget # mit "baseHref" zur Projekt-URL erstellt wird. defaultCallback: eval: | //js (entry) => { parent.selectAsset("medialib/" + entry.id + "/" + entry.file?.src + "?filter=l") parent.focus() }s //!js - name: modalForeign # Name des Eingabefelds oder der Ansicht. defaultSort: # Standard-Sortierkriterien, die angewendet werden, wenn keine anderen Sortierkriterien spezifiziert sind. field: "path" # Standardmäßig wird nach dem "path"-Feld sortiert. order: "ASC" # Standardmäßig wird in aufsteigender Reihenfolge (ASC) sortiert. views: # Liste der Ansichten, die in diesem Feld angezeigt werden können. - type: table # Es wird eine Tabellenansicht verwendet. columns: # Liste der Spalten, die in der Tabelle angezeigt werden. - path # Es wird nur die Spalte "path" angezeigt. 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 openapi: disabled: true