120 lines
4.5 KiB
YAML
120 lines
4.5 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()
|
|
}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
|