2024-02-13 17:36:09 +01:00
# Der Name der Kollektion wird in der Rest-API-URL verwendet, z.B.
# /_/tibi_starter/medialib
2022-11-21 10:33:21 +01:00
name : medialib
2024-02-13 17:36:09 +01:00
# Enthält die Kollektion Felder vom Typ "file", so werden die
# hochgeladenen Dateien unter dem Ordner abgelegt, der mit
# "uploadPath" bestimmt wird.
2022-11-21 10:33:21 +01:00
uploadPath : ../media/medialib
meta :
2024-02-13 17:36:09 +01:00
allowExportAll : true # Erlaubt das Exportieren aller Einträge in dieser Sammlung - Nur für Admins
label : # label der Collection in der Sidebar
2022-11-21 10:33:21 +01:00
de : Medienbibliothek
en : Media Library
2024-02-13 17:36:09 +01:00
muiIcon : multimedia # icon in navigation
2022-11-21 10:33:21 +01:00
defaultSort :
2023-06-03 20:07:58 +02:00
field : sort
2024-02-13 17:36:09 +01:00
order : MANUALLY #alternativ auch ASC und DESC möglich
2024-01-27 19:58:35 +01:00
backup :
2024-02-13 17:36:09 +01:00
active : true # sollen backups beim verändern erstellt werden
collectionName : backups # in welcher collection es gespeichert werden soll
2024-01-27 19:58:35 +01:00
2024-02-13 17:36:09 +01:00
quickEdit : # Erlaubt das Bearbeiten von Einträgen in der Listenansicht, ohne dass eine neue Seite geöffnet wird
2024-01-27 19:58:35 +01:00
enabled : true
2024-02-13 17:36:09 +01:00
fields : # felder, die in dieser Ansicht bearbeitet werden können
2024-01-27 19:58:35 +01:00
- title
- alt
- file
2022-11-21 10:33:21 +01:00
# "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.
2024-01-27 19:58:35 +01:00
defaultImageFilter : xs
2022-11-21 10:33:21 +01:00
2023-06-11 17:39:38 +02:00
multiupload :
2024-02-13 17:36:09 +01:00
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
})()
2023-08-20 10:03:26 +02:00
2024-01-27 19:58:35 +01:00
views :
2024-02-13 17:36:09 +01:00
- !include fields/medialibSimpleList.yml
- !include fields/medialibTable.yml
- !include fields/medialibCardList.yml
2023-06-02 19:40:19 +02:00
2024-01-27 19:58:35 +01:00
subNavigation :
2023-06-02 19:40:19 +02:00
- 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.
2024-01-27 19:58:35 +01:00
mediaQuery : "(min-width: 0px)" # Die Tabellenansicht wird nur angezeigt, wenn die Bildschirmbreite mindestens 0px beträgt.
2023-06-02 19:40:19 +02:00
columns : # Liste der Spalten, die in der Tabelle angezeigt werden.
2024-01-27 19:58:35 +01:00
- source : file
2023-06-02 19:40:19 +02:00
defaultCallback : # Standard-Callback-Funktion, die ausgeführt wird, wenn keine andere spezifiziert ist.
eval : | # Der Code wird als JavaScript evaluiert.
//js
2024-01-27 19:58:35 +01:00
(entry) => {
parent.selectEntry(entry)
2022-11-21 10:33:21 +01:00
}
//!js
2023-02-21 09:54:25 +01:00
2024-02-13 17:36:09 +01:00
# Allgeine Zugriffsregeln auf Kollektions-Ebene werden mit dem
# "permissions" Objekt festgelegt.
2023-06-03 20:07:58 +02:00
permissions :
2024-02-13 17:36:09 +01:00
# Unter "public" werden die Zugriffsrechte für die Öffentlichkeit
# definiert.
2023-06-03 20:07:58 +02:00
public :
2024-02-13 17:36:09 +01:00
# "methods" führt die HTTP-Methoden auf, die erlaubt sind
2023-06-03 20:07:58 +02:00
methods :
2024-02-13 17:36:09 +01:00
# "get: true" bedeutet hier, dass jeder die Daten lesen darf
2023-06-03 20:07:58 +02:00
get : true
2024-02-13 17:36:09 +01:00
# "post", also Einträge erstellen, "put" = Bearbeiten und
# "delete" = löschen darf die Öffentlichkeit nicht.
2023-06-03 20:07:58 +02:00
post : false
put : false
delete : false
2024-02-13 17:36:09 +01:00
# 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).
2023-06-03 20:07:58 +02:00
user :
methods :
get : true
post : true
put : true
delete : true
2024-02-13 17:36:09 +01:00
# 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.
2023-06-03 20:07:58 +02:00
2024-02-13 17:36:09 +01:00
# 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.
2023-06-03 20:07:58 +02:00
projections :
2024-02-13 17:36:09 +01:00
# dashboard = name der Projektion
2023-06-03 20:07:58 +02:00
dashboard :
2024-02-13 17:36:09 +01:00
# "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 :
2023-06-03 20:07:58 +02:00
select :
2024-02-13 17:36:09 +01:00
file : 1
alt : 1
2023-06-03 20:07:58 +02:00
hooks :
2024-02-13 17:36:09 +01:00
# 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"
2024-01-27 19:58:35 +01:00
post :
2024-02-13 17:36:09 +01:00
# "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.
2023-06-03 20:07:58 +02:00
return :
type : javascript
2024-01-27 19:58:35 +01:00
file : hooks/clear_cache.js
put :
2024-02-13 17:36:09 +01:00
#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.
2024-01-27 19:58:35 +01:00
return :
type : javascript
file : hooks/clear_cache.js
2024-02-13 17:36:09 +01:00
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.
2023-06-03 20:07:58 +02:00
fields :
2024-02-13 17:36:09 +01:00
# 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
2024-01-27 19:58:35 +01:00
- name : alt
2023-06-03 20:07:58 +02:00
type : string
meta :
label :
2024-01-27 19:58:35 +01:00
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
2023-06-03 20:07:58 +02:00
type : string
meta :
label :
2024-01-27 19:58:35 +01:00
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.
2023-06-03 20:07:58 +02:00
2024-02-13 17:36:09 +01:00
- name : category
type : string
2023-06-03 20:07:58 +02:00
meta :
label :
2024-02-13 17:36:09 +01:00
de : Kategorie
en : Category
- !include fields/manualSort.yml