263 lines
10 KiB
YAML
263 lines
10 KiB
YAML
# Der Name der Kollektion wird in der Rest-API-URL verwendet, z.B.
|
|
# /_/tibi_starter/medialib
|
|
name: medialib
|
|
|
|
# Enthält die Kollektion Felder vom Typ "file", so werden die
|
|
# hochgeladenen Dateien unter dem Ordner abgelegt, der mit
|
|
# "uploadPath" bestimmt wird.
|
|
uploadPath: ../media/medialib
|
|
|
|
meta:
|
|
allowExportAll: true # Erlaubt das Exportieren aller Einträge in dieser Sammlung - Nur für Admins
|
|
label: # label der Collection in der Sidebar
|
|
de: Medienbibliothek
|
|
en: Media Library
|
|
muiIcon: multimedia # icon in navigation
|
|
defaultSort:
|
|
field: sort
|
|
order: MANUALLY #alternativ auch ASC und DESC möglich
|
|
|
|
backup:
|
|
active: true # sollen backups beim verändern erstellt werden
|
|
collectionName: backups # in welcher collection es gespeichert werden soll
|
|
|
|
quickEdit: # Erlaubt das Bearbeiten von Einträgen in der Listenansicht, ohne dass eine neue Seite geöffnet wird
|
|
enabled: true
|
|
fields: # felder, die in dieser Ansicht bearbeitet werden können
|
|
- title
|
|
- alt
|
|
- file
|
|
|
|
# "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: xs
|
|
|
|
multiupload:
|
|
fields:
|
|
- source: category # gibt an, welche Felder in der Modalansicht bearbeitet werden können, wenn die Eigenschaft nicht festgelegt ist, werden automatisch alle Felder ausgewählt
|
|
prefilledFields: # gibt an, welche Felder in der Modalansicht vorbefüllt werden können, wenn die Eigenschaft nicht festgelegt ist, werden automatisch alle Felder ausgewählt
|
|
- source: title
|
|
defaultValue: # extrahiert den namen des files und fügt ihn in das feld "title" ein
|
|
eval: |
|
|
(function(){
|
|
return "Title" + $file.name
|
|
})()
|
|
|
|
views:
|
|
- !include fields/medialibSimpleList.yml
|
|
- !include fields/medialibTable.yml
|
|
- !include fields/medialibCardList.yml
|
|
|
|
subNavigation:
|
|
- 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.
|
|
mediaQuery: "(min-width: 0px)" # Die Tabellenansicht wird nur angezeigt, wenn die Bildschirmbreite mindestens 0px beträgt.
|
|
columns: # Liste der Spalten, die in der Tabelle angezeigt werden.
|
|
- source: file
|
|
|
|
defaultCallback: # Standard-Callback-Funktion, die ausgeführt wird, wenn keine andere spezifiziert ist.
|
|
eval: | # Der Code wird als JavaScript evaluiert.
|
|
//js
|
|
(entry) => {
|
|
parent.selectEntry(entry)
|
|
}
|
|
//!js
|
|
|
|
# Allgeine Zugriffsregeln auf Kollektions-Ebene werden mit dem
|
|
# "permissions" Objekt festgelegt.
|
|
permissions:
|
|
# Unter "public" werden die Zugriffsrechte für die Öffentlichkeit
|
|
# definiert.
|
|
public:
|
|
# "methods" führt die HTTP-Methoden auf, die erlaubt sind
|
|
methods:
|
|
# "get: true" bedeutet hier, dass jeder die Daten lesen darf
|
|
get: true
|
|
# "post", also Einträge erstellen, "put" = Bearbeiten und
|
|
# "delete" = löschen darf die Öffentlichkeit nicht.
|
|
post: false
|
|
put: false
|
|
delete: false
|
|
# Ist "validProjections" definiert, sind auch nur genau die
|
|
# aufgelisteten Projektionen erlaubt, welche zwingend mit dem
|
|
# GET-Parameter "projection=..." ausgewählt werden müssen.
|
|
validProjections:
|
|
- list
|
|
- details
|
|
|
|
# Der Key "user" steht für ALLE Benutzer die dem Projekt
|
|
# zugeordnet sind.
|
|
# D.h. eine feinere Abstufung auf Benutzerebene ist mit dem
|
|
# Key "user" allein nicht möglich.
|
|
# Für eine feinere Abstufung können nachgelagerte Hooks
|
|
# dienen oder die Verwendung von zugeordneten benutzerdefinierten
|
|
# "permissions" (siehe meta Objekt).
|
|
user:
|
|
methods:
|
|
get: true
|
|
post: true
|
|
put: true
|
|
delete: true
|
|
# Fehlt "validProjections", sind automatisch alle Projektionen
|
|
# erlaubt, wobei hier auch der GET-Parameter "projection="
|
|
# weggelassen werden darf und somit alle Felder in der Ausgabe
|
|
# zu finden sind.
|
|
|
|
# Folgende Brechtigung wird angewandt, wenn der Zugriff über
|
|
# den GET-Parameter "token=" oder die Header-Anweisung "token: "
|
|
# angefragt wird.
|
|
# "token" ist dabei die Markierung, dass es sich um einen Token
|
|
# handelt und "${TOKEN}" ist der benutzerdefinierte Token selbst.
|
|
# Dieser wird hier über eine Umgebungsvariable "TOKEN" injiziert,
|
|
# die in "config.yml.env" definiert werden kann mit "TOKEN=...".
|
|
token:${TOKEN}:
|
|
methods:
|
|
get: true
|
|
post: true
|
|
put: true
|
|
delete: true
|
|
|
|
# Alle Berechtigungs-Namen, die nicht "public", "user" oder "token:..."
|
|
# heißen, sind benutzerdefinierte Berechtigungen, die Benutzern
|
|
# zugeordnet werden können.
|
|
# Eine mögliche Auflistung um Vorschläge im tibi-admin anzubieten,
|
|
# werden im Top-Level meta-Objekt der "config.yml" unter "permissions"
|
|
# definiert.
|
|
pages:
|
|
methods:
|
|
get: true
|
|
post: true
|
|
put: true
|
|
delete: true
|
|
|
|
# Projektionen der Daten werden via GET-Parameter "projection=..."
|
|
# referenziert.
|
|
# "projections" is ein Objekt, dass die Namen der Projektionen
|
|
# als Key führt.
|
|
projections:
|
|
# dashboard = name der Projektion
|
|
|
|
dashboard:
|
|
# "select" definiert als Keys die Felder, die beim Abruf
|
|
# dieser Projektion in den Ausgabe-Daten enthalten sind.
|
|
# Felder werden über die Punkt-Notation referenziert.
|
|
select:
|
|
# keine auflistung von feldern, da alle felder ausgewählt werden
|
|
details:
|
|
# Alternativ kann "select" auch Auschlussregeln definieren.
|
|
# Eine Mischung von Inkludieren und Auschluss ist NICHT
|
|
# möglich.
|
|
select:
|
|
file: 0
|
|
list:
|
|
select:
|
|
file: 1
|
|
alt: 1
|
|
hooks:
|
|
# Hooks für die Methode "get"
|
|
#get:
|
|
# "read"-Schritt wird ausgeführt, bevor die Daten von der Datenbank
|
|
# gelesen werden.
|
|
#read:
|
|
#"type" ist derzeit immer "javascript"
|
|
# type: javascript
|
|
#"file" zeigt auf die Datei mit dem Javascript-Code relativ zum
|
|
#Ordner der "config.yml" Datei.
|
|
# file: hooks/democol/get_read.js
|
|
#"return"-Schritt wird ausgeführt, bevor die gelesenen Daten über
|
|
#HTTP übertragen werden.
|
|
#return:
|
|
# type: javascript
|
|
# file: hooks/democol/get_return.js
|
|
# Hooks für die Methode "post"
|
|
post:
|
|
# "bind" wird ausgeführt, bevor die übertragenen Daten in eine
|
|
# Objekt-Struktur umgewandelt werden.
|
|
# Der tibi-server erwarten nach diesem Schritt gültige JSON-Daten,
|
|
# d.h. sollte es möglich gemacht werden, dass andere Daten übertragen
|
|
# werden, sind diese in diesem Hook abzufangen und zu verarbeiten.
|
|
|
|
#bind:
|
|
# type: javascript
|
|
# file: hooks/democol/post_bind.js
|
|
# "validate" wird ausgeführt, bevor die Daten validiert werden.
|
|
#validate:
|
|
# type: javascript
|
|
# file: hooks/democol/post_validate.js
|
|
# "create" wird ausgeführt, bevor das Objekt/Dokument in der Datenbank
|
|
# angelegt wird.
|
|
#create:
|
|
# type: javascript
|
|
# file: hooks/democol/post_create.js
|
|
# "return" wird ausgeführt, bevor die Serverantwort über HTTP
|
|
# übertragen wird.
|
|
return:
|
|
type: javascript
|
|
file: hooks/clear_cache.js
|
|
put:
|
|
#bind:
|
|
# type: javascript
|
|
# file: hooks/democol/put_bind.js
|
|
#validate:
|
|
# type: javascript
|
|
# file: hooks/democol/put_validate.js
|
|
# "bind" und "validate" habe die gleiche Bedeutung wie Hooks der
|
|
# Methode "post".
|
|
# "update" wird ausgeführt bevor das Objekt in der Datenbank
|
|
# aktualisiert wird.
|
|
#update:
|
|
# type: javascript
|
|
# file: hooks/democol/put_update.js
|
|
# "return" wird auch hier vor der Serverantwort ausgeführt.
|
|
return:
|
|
type: javascript
|
|
file: hooks/clear_cache.js
|
|
|
|
imageFilter: !include fields/imageFilter.yml
|
|
|
|
# "fields" stellen die Eigentliche Struktur der Kollektion dar.
|
|
# "fields" ist als Array angelegt um eine Standard-Sortierung
|
|
# im tibi-admin vorzugeben.
|
|
fields:
|
|
# Das Einbinden von Feldern über extra Dateien bietet sich nur
|
|
# an, wenn das jeweilige Feld mehrfach von dieser oder anderen
|
|
# Kollektionen verwendet wird.
|
|
# Auf die möglichen Definitionen wird im Kapitel "fields"
|
|
# eingegangen.
|
|
- !include fields/file.yml
|
|
|
|
- name: alt
|
|
type: string
|
|
meta:
|
|
label:
|
|
de: Alternativtext
|
|
en: Alternative text
|
|
helperText:
|
|
de: Der Alternativtext wird angezeigt, wenn die Datei nicht geladen werden kann.
|
|
en: The alternative text is displayed if the file cannot be loaded.
|
|
|
|
- name: title
|
|
type: string
|
|
meta:
|
|
label:
|
|
de: Titel
|
|
en: Title
|
|
helperText:
|
|
de: Der Titel wird angezeigt, wenn die Datei geladen wird.
|
|
en: The title is displayed when the file is loaded.
|
|
|
|
- name: category
|
|
type: string
|
|
meta:
|
|
label:
|
|
de: Kategorie
|
|
en: Category
|
|
|
|
- !include fields/manualSort.yml
|