tibi-docs/api/collections/medialib.yml

101 lines
3.3 KiB
YAML

# 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()
}
//!js