Files
kontextwerk/api/collections/medialib.yml
2025-10-02 08:54:03 +02:00

211 lines
5.1 KiB
YAML

name: medialib
uploadPath: ../media/medialib
meta:
allowExportAll: true
label:
de: Medienbibliothek
en: Media Library
muiIcon: multimedia
defaultSort:
field: sort
order: MANUALLY
backup:
active: true
collectionName: backups
quickEdit:
enabled: true
fields:
- title
- alt
- file
- tags
defaultImageFilter: xs
multiupload:
fields:
- source: category
prefilledFields:
- source: title
defaultValue:
eval: |
(function(){
return $file.name.split(".")[0]
})()
- source: alt
defaultValue:
eval: |
(function(){
return $file.name.split(".")[0]
})()
views: &views
- !include fields/medialibSimpleList.yml
- !include fields/medialibTable.yml
- !include fields/medialibCardList.yml
subNavigation:
- name: modalForeign
defaultSort:
field: "path"
order: "ASC"
views: *views
defaultCallback:
eval: |
//js
(entry) => {
parent.selectEntry(entry)
}
//!js
- name: websiteContent
label: Inhalt
muiIcon: accountGroup
setDefault:
field: type
value: websiteContent
defaultSort:
field: "sort"
order: "MANUALLY"
views: *views
filter:
"type": "websiteContent"
- name: other
label: Andere
muiIcon: accountGroup
defaultSort:
field: "sort"
order: "MANUALLY"
views: *views
filter:
"type": { $ne: "websiteContent" }
permissions:
public:
methods:
get: true
post: true
put: false
delete: true
validProjections:
- list
- details
user:
methods:
get: true
post: true
put: true
delete: true
token:${TOKEN}:
methods:
get: true
post: true
put: true
delete: true
pages:
methods:
get: true
post: true
put: true
delete: true
projections:
dashboard:
select:
details:
select:
file: 0
list:
select:
file: 1
alt: 1
hooks:
put:
return:
type: javascript
file: hooks/clear_cache.js
delete:
delete:
type: javascript
file: hooks/medialib/delete_delete.js
imageFilter: !include lib/imageFilter.yml
fields:
- !include fields/file.yml
- name: type
type: string
meta:
label:
de: Typ
en: Type
widget: select
choices:
- name: websiteContent
id: websiteContent
- name: returnOrderFoto
id: returnOrderFoto
- 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
- name: tags
type: string[]
meta:
label:
de: Tags
en: Tags
widget: foreignKey
filter:
type: foreignKey
foreign:
collection: tag
id: id
sort: name
subNavigation: 0
render:
raw: true
eval: |
//js
$foreignEntry?.name
//!js
- name: comment
type: string
meta:
label:
de: Kommentar
en: Comment
inputProps:
multiline: true
- !include fields/manualSort.yml
indexes:
- name: fulltext # Ein eindeutiger Name für den Index. Es ist optional, wird jedoch empfohlen, um den Index später leicht identifizieren zu können.
key: # Bestimmt, auf welche Felder der Index angewendet werden soll. Dies kann ein einfacher String sein, wenn der Index nur ein Feld umfasst, oder ein Array von Strings, wenn der Index mehrere Felder umfasst.
- $text:$**