my-notes-viewer/api/collections/content.yml
2021-03-22 15:59:05 +01:00

165 lines
4.5 KiB
YAML

###############################################################
# Content Blöcke
###############################################################
# Name/URL-Anteil der Kollektion
name: content
uploadPath: ../media/content
# Metaangaben zur Kollektion welche in der Admin-UI verwendet werden können
meta:
# Navigationseintrag in der Admin-UI
label: { de: "Inhaltsblöcke", en: "Content Blocks" }
# Icon (Material UI) für den Navigationseintrag
muiIcon: web
# Identifizierung eines Eintrags für z.B. Select-Boxen in der Admin-UI
rowIdentTpl: { twig: "{{ path }}" }
# Standardsortierung der Liste
defaultSort: { field: "path", order: "ASC" }
# Admin-Backend Ansichten
defaultImageFilter: s
views:
# Mobile Darstellung
- type: simpleList
mediaQuery: "(max-width:599px)"
primaryText: path
# Desktop
- type: table
mediaQuery: "(min-width:600px)"
columns:
- path
imageFilter:
xs:
- fit: true
height: 90
width: 90
resampling: lanczos
quality: 60
s:
- fit: true
height: 300
width: 300
resampling: lanczos
quality: 60
m:
- fit: true
height: 600
width: 600
resampling: lanczos
quality: 60
l:
- fit: true
height: 1200
width: 1200
resampling: lanczos
quality: 60
xl:
- fit: true
height: 2000
width: 2000
resampling: lanczos
quality: 60
# Zugriff auf diese Kollektion
permissions:
# öffentlicher Zugriff
public:
methods:
# Liste und Einzeleinträge lesen
get: true
# neuen Eintrag anlegen
post: false
# Eintrag editieren
put: false
# Eintrag löschen
delete: false
# zum Projekt zugeordneter Benutzer ohne Zusatzberechtigungen
user:
methods:
get: true
post: true
put: true
delete: true
hooks:
post:
return:
type: javascript
file: hooks/content/post_return.js
put:
return:
type: javascript
file: hooks/content/put_return.js
delete:
return:
type: javascript
file: hooks/content/delete_return.js
# Feldliste der Kollektion
fields:
- name: path
type: string
index: [ single, unique ]
meta:
label: { de: "Pfad", en: "Path" }
- name: blocks
type: object[]
meta:
label: { de: "Oben", en: "Top" }
subFields:
- name: layout
type: number
meta:
widget: select
label: { de: "Layout", en: "layout" }
choices:
- { id: 1, name: { de: "Bild links", en: "image left" } }
- { id: 2, name: { de: "Bild rechts", en: "image right" } }
- {
id: 3,
name:
{ de: "Bild über Text", en: "image above text" },
}
- {
id: 4,
name:
{ de: "Bild unter Text", en: "image below text" },
}
- name: title
type: string
meta:
label: { de: "Titel", en: "title" }
- name: subtitle
type: string
meta:
label: { de: "Untertitel", en: "subtitle" }
- name: text
type: string
meta:
widget: richtext
label: { de: "Text", en: "text" }
- name: button_text
type: string
meta:
label: { de: "Button-Text", en: "button text" }
- name: button_url
type: string
meta:
label: { de: "Button-URL", en: "button URL" }
- name: images
type: object[]
meta:
label: { de: "Bild(er)", en: "image(s)" }
subFields:
- name: file
type: file
meta:
widget: image
label: { de: "Datei", en: "file" }
- name: label
type: string
meta:
label: { de: "Label", en: "label" }