Files
tibi-svelte-starter/api/collections/medialib.yml
T

122 lines
2.7 KiB
YAML

########################################################################
# Media library — reusable uploaded assets referenced via foreignMedia
########################################################################
name: medialib
uploadPath: ../media/medialib
meta:
label: { de: "Mediathek", en: "Media Library" }
muiIcon: folder-multiple-image
group: content
imageUrl: "https://images.unsplash.com/photo-1452587925148-ce544e77e70d?auto=format&fit=crop&q=80&w=800"
viewHint:
media:
ai:
targetField: alt
prompt: Beschreibe das Bild kurz und sachlich fuer einen barrierefreien Alt-Text.
image:
maxWidth: 1280
maxHeight: 1280
quality: 0.82
upload:
autoFill:
file: file
preview:
label: title
secondary: tags
tertiary: description
image: file
mediaFile: file
subNavigation:
- name: images
label: { de: "Bilder", en: "Images" }
muiIcon: image
filter:
file.type_like: ^image/
- name: documents
label: { de: "Dokumente", en: "Documents" }
muiIcon: file_document
filter:
file.type_like: ^(?!image/|video/|audio/).+
permissions:
public:
methods:
get: true
user:
methods:
get: true
post: true
put: true
delete: true
"token:${ADMIN_TOKEN}":
methods:
get: true
post: true
put: true
delete: true
imageFilter: !include lib/imageFilter.yml
search:
- name: default
mode: regex
fields: [title, "alt.de", "alt.en", description]
fields:
- name: file
type: file
validator:
required: true
maxFileSize: "50MB"
meta:
label: { de: "Datei", en: "File" }
widget: file
downscale:
maxWidth: 2048
maxHeight: 2048
- name: title
type: string
validator:
maxLength: 255
meta:
label: { de: "Titel", en: "Title" }
- name: alt
type: object
meta:
label: { de: "Alt-Text", en: "Alt Text" }
subFields:
- name: de
type: string
validator:
maxLength: 500
meta:
label: Deutsch
- name: en
type: string
validator:
maxLength: 500
meta:
label: English
- name: description
type: string
validator:
maxLength: 2000
meta:
label: { de: "Beschreibung", en: "Description" }
widget: text
inputProps:
multiline: true
rows: 4
- name: tags
type: string[]
meta:
label: { de: "Schlagwörter", en: "Tags" }
widget: foreignKey
foreign:
collection: tag
- name: _testdata
type: boolean
meta:
hide: true