2022-11-21 10:33:21 +01:00
# Der Name der Kollektion ist beliebig, aber wird in unserem
# Beispiel vom ContentBuilder als "medialib" referenziert.
name : medialib
uploadPath : ../media/medialib
meta :
label :
de : Medienbibliothek
en : Media Library
muiIcon : multimedia
defaultSort :
2023-06-03 20:07:58 +02:00
field : sort
order : MANUALLY #alternativ auch ASC und DESC möglich
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.
defaultImageFilter : s
2023-06-11 17:39:38 +02:00
multiupload :
fields :
- source : description #specify wich fields should be editable in Modal, if property isnt set, then all fields will automatically be selected
prefilledFields : #specifies wich fields should have a default value, wont be visible to the user, just an informational text for wich fields will recieve an default value.
- source : title
defaultValue :
eval : |
(function(){
2023-06-16 18:05:25 +02:00
return "Title" + $file.name
2023-06-11 17:39:38 +02:00
})()
2022-11-21 10:33:21 +01:00
# Wird unter "image-/file-/videoSelect" im ContentBuilder Feld kein
# "subNavigation" Index definiert, werden auch folgende "views"
# verwendet.
views :
2023-06-03 20:07:58 +02:00
- type : simpleList
2023-06-10 14:52:41 +02:00
mediaQuery : "(min-width: 0px)"
selectionPriority : 3 #gibt an, wenn mediaQuery passt, mit welcher priorität es default mäßig ausgewählt sein soll, je niedriger, desto wichtiger
2023-08-20 10:03:26 +02:00
primaryText :
source : path
filter : true
secondaryText :
source : title
filter : true
2023-11-15 08:00:12 +01:00
2023-08-20 10:03:26 +02:00
tertiaryText :
source : description
filter : true
2023-06-10 14:52:41 +02:00
fileDropArea :
label :
{
de : "Ziehen Sie Dateien per Drag and Drop hierher oder klicken Sie, um Dateien auszuwählen." ,
en : "Drag and drop some files here, or click to upload." ,
}
helperText : { de : "Maximale Uploadgröße: 1,54 MB" , en : "Maximum upload size: 1.54MB" }
targetField : file
pageAsDropArea : true
2022-11-21 10:33:21 +01:00
columns :
2023-06-03 20:07:58 +02:00
- source : file
2022-11-21 10:33:21 +01:00
- source : updateTime
2023-06-03 20:07:58 +02:00
type : datetime
2022-11-21 10:33:21 +01:00
label : letztes Update
2023-06-03 20:07:58 +02:00
- source : title
filter : true
- source : description
filter : true
- type : table
2023-06-10 14:52:41 +02:00
mediaQuery : "(min-width: 768px)"
selectionPriority : 2
fileDropArea :
label :
{
de : "Ziehen Sie Dateien per Drag and Drop hierher oder klicken Sie, um Dateien auszuwählen." ,
en : "Drag and drop some files here, or click to upload." ,
}
helperText : { de : "Maximale Uploadgröße: 1,54 MB" , en : "Maximum upload size: 1.54MB" }
targetField : file
pageAsDropArea : true
2023-06-03 20:07:58 +02:00
columns :
- source : file
- source : updateTime
2022-11-21 10:33:21 +01:00
type : datetime
2023-06-03 20:07:58 +02:00
label : letztes Update
2022-11-21 10:33:21 +01:00
- source : title
filter : true
2023-06-03 20:07:58 +02:00
- source : description
filter : true
- type : cardList
mediaQuery : "(min-width: 1200px)"
2023-06-10 14:52:41 +02:00
selectionPriority : 1
2023-06-03 20:07:58 +02:00
fileDropArea :
label :
{
de : "Ziehen Sie Dateien per Drag and Drop hierher oder klicken Sie, um Dateien auszuwählen." ,
en : "Drag and drop some files here, or click to upload." ,
}
helperText : { de : "Maximale Uploadgröße: 1,54 MB" , en : "Maximum upload size: 1.54MB" }
targetField : file
pageAsDropArea : false
fields :
2022-11-21 10:33:21 +01:00
- source : file
2023-06-03 20:07:58 +02:00
- source : updateTime
type : datetime
label : letztes Update
- source : title
filter : true
- source : description
filter : true
2022-11-21 10:33:21 +01:00
# 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 :
2023-06-03 20:07:58 +02:00
- type : cards
2022-11-21 10:33:21 +01:00
mediaQuery : "(min-width: 0px)"
2023-06-03 20:07:58 +02:00
fields :
- source : file
- source : updateTime
type : datetime
label : letztes Update
2022-11-21 10:33:21 +01:00
- source : title
filter : true
2023-06-03 20:07:58 +02:00
- source : description
filter : true
2022-11-21 10:33:21 +01:00
# 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()
2023-06-03 20:07:58 +02:00
}
2023-06-02 19:40:19 +02:00
//!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.
2022-11-21 10:33:21 +01:00
}
//!js
2023-02-21 09:54:25 +01:00
2023-06-03 20:07:58 +02:00
permissions :
public :
methods :
get : true
post : false
put : false
delete : false
user :
methods :
get : true
post : true
put : true
delete : true
projections :
dashboard :
select :
hooks :
delete :
return :
type : javascript
file : hooks/medialib/delete_return.js
fields :
# Ein Feld vom Typ "file" wird für die Mediathek natürlich
# benötigt.
- name : file
type : file
meta :
label :
de : Datei
en : File
- name : title
type : string
meta :
label :
de : Titel
en : Title
- name : description
type : string
meta :
widget : richtext
label :
de : Kurzbeschreibung
en : Short Description
- name : sort
type : number
meta :
label :
de : Manuelle Sortierung
en : Manual Sorting
inputProps :
{ readonly: true, placeholder : { de : "Wert wird automatisch gesetzt" , en : "Value is set automatically" } }
helperText :
de : Dieses Feld wird für die manuelle Sortierung benötigt. Sobald ein Eintrag per Drag&Drop verschoben wurde, wird die neue Position innerhalb der Liste eingetragen.
en : This field is required for manual sorting. As soon as an entry is moved using Drag&Drop, the new position is entered in the list.