wm-fontis-tibi-2023/api/collections/content.yml
robin fc612ad924
All checks were successful
deploy to production / deploy (push) Successful in 49s
sort
2023-12-08 13:18:42 +00:00

447 lines
12 KiB
YAML

name: page
uploadPath: ../media/page
meta:
label: Inhalt
muiIcon: tableOfContents
allowExportAll: true
backup:
active: true
collectionName: backups
defaultSort:
field: sort
order: MANUALLY
views:
- type: simpleList
selectionPriority: 0
primaryText: pageTitle
secondaryText: path
mediaQuery: "(min-width: 0px)"
tertiaryText: type
- type: table
selectionPriority: 1
mediaQuery: "(min-width: 700px)"
columns:
- source: type
name: Typ
filter: true
- source: path
name: Pfad
filter: true
- source: pageTitle
name: Titel
filter: true
- source: active
name: Aktiv
filter: true
tablist:
activeTab: general
tabs:
- name: general
label: Allgemein
subFields:
- source: path
- source: pageTitle
- source: type
- source: active
- source: sort
- name: teaser
label: Homepage Seitenteaser
subFields:
- source: teaser
- name: personPreview
label: Personenvorschau
subFields:
- source: personType
- source: personPreview
- name: jobOffer
label: Job Angebot
subFields:
- source: jobOffer
- name: site
label: Seite
subFields:
- source: rows
- name: meta
label: Meta
subFields:
- source: meta
subNavigation:
- name: seite
label:
de: Seiten
en: pages
muiIcon: book-open-page-variant
defaultSort:
field: "sort"
order: "MANUALLY"
setDefault:
field: type
value: page
views:
- type: table
columns:
- source: path
name: Pfad
filter: true
- source: pageTitle
name: Titel
filter: true
- source: active
name: Aktiv
filter: true
filter:
type: page
- name: teamMembers
label:
de: Teammitglieder
en: Team members
muiIcon: accountGroup
setDefault:
field: type
value: teamMembers
defaultSort:
field: "sort"
order: "MANUALLY"
views:
- type: table
columns:
- source: path
name: Pfad
fiter: true
- source: personType
name: Typ
filter: true
- source: pageTitle
name: Titel
filter: true
- source: active
name: Aktiv
filter: true
filter:
type: teamMembers
- name: jobOffers
label:
de: Stellenanzeigen
en: Job offers
muiIcon: briefcase
setDefault:
field: type
value: jobOffers
defaultSort:
field: "sort"
order: "MANUALLY"
views:
- type: table
columns:
- source: path
name: Pfad
filter: true
- source: pageTitle
name: Titel
filter: true
- source: active
name: Aktiv
filter: true
filter:
type: jobOffers
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: 1240
width: 1240
resampling: lanczos
quality: 60
xl:
- fit: true
height: 2000
width: 2000
resampling: lanczos
quality: 60
permissions:
public:
methods:
get: true
post: false
put: false
delete: false
user:
methods:
get: true
post: true
put: true
delete: true
hooks:
post:
return:
type: javascript
file: hooks/clear_cache.js
put:
return:
type: javascript
file: hooks/clear_cache.js
projections:
navigation:
select:
path: 1
fields:
- type: string
name: path
meta:
label: Pfad
helperText: "Ein Pfad sollte mit einem / starten und ohne eins enden."
containerProps:
layout:
size:
default: "col-6"
small: "col-12"
large: "col-6"
- type: boolean
name: active
meta:
label: Aktiv
helperText: Ist dies Aktiviert, so wird die Seite verfügbar.
defaultValue: true
containerProps:
layout:
size:
default: "col-6"
small: "col-12"
large: "col-6"
- type: string
name: type
meta:
label: Inhaltstyp
widget: select
defaultValue: page
containerProps:
layout:
size:
default: "col-6"
small: "col-12"
large: "col-6"
choices:
- name: Seite
id: page
- name: Teammitglieder
id: teamMembers
- name: Stellenanzeigen
id: jobOffers
- name: pageTitle
type: string
meta:
label: Titel der Seite
helperText: "Dieser Titel wird in der Seite als h1 angezeigt."
containerProps:
layout:
size:
default: "col-6"
small: "col-12"
large: "col-6"
- name: personType
type: string
meta:
label: Typ
widget: select
defaultValue: chef
dependsOn:
eval: $.type == "teamMembers"
choices:
- name: Chef
id: chef
- name: Mitarbeiter
id: employee
- name: personPreview
type: object
meta:
label: Personenvorschau
dependsOn:
eval: $.type == "teamMembers"
subFields:
- name: initialImage
type: string
meta:
label: Bild
containerProps:
layout:
size:
default: "col-6"
small: "col-12"
large: "col-6"
dependsOn:
eval: $.personType == 'chef'
widget: foreignKey # Verwendetes Widget.
foreign:
collection: medialib # Name der Sammlung, in der die ausgewählten Daten gespeichert sind.
id: id # Feldname, das als eindeutige Kennung für die ausgewählten Daten verwendet wird.
subNavigation: 0 # Bestimmt, welche Navigation für die Auswahl der ausgewählten Daten angezeigt wird.
#projection: xyz
#sort: "title"
render:
defaultCollectionViews: true
- name: hoverImage
type: string
meta:
label: Bild beim Hover
containerProps:
layout:
size:
default: "col-6"
small: "col-12"
large: "col-6"
dependsOn:
eval: $.personType == 'chef'
widget: foreignKey # Verwendetes Widget.
foreign:
collection: medialib # Name der Sammlung, in der die ausgewählten Daten gespeichert sind.
id: id # Feldname, das als eindeutige Kennung für die ausgewählten Daten verwendet wird.
subNavigation: 0 # Bestimmt, welche Navigation für die Auswahl der ausgewählten Daten angezeigt wird.
#projection: xyz
#sort: "title"
render:
defaultCollectionViews: true
- name: name
type: string
meta:
label: Name
- !include fields/teaserHomepage.yml
- name: jobOffer
type: object
meta:
label: Job Angebot
dependsOn:
eval: $.type == "jobOffers"
subFields:
- name: title
type: string
meta:
label: Titel
- name: text
type: string
meta:
widget: richtext
label: Text
- name: emailButton
type: boolean
meta:
label: E-Mail Button Anzeigen
- name: emailSubject
type: string
meta:
label: E-Mail Betreff
dependsOn:
eval: $parent.emailButton == true
- name: rows
type: object[]
meta:
label: Zeilen
widget: grid
dependsOn:
eval: $.type != "jobOffers" && ($.type != "teamMembers" || $.personType == "chef")
metaElements:
- source: backgroundImage
- source: noBottomMargin
- source: noTopMargin
- source: flexWrapNormal
- source: twoToThree
- source: nextPage
subFields: !include fieldLists/row.yml
- name: meta
type: object
meta:
label: Meta Agaben
dependsOn:
eval: $.type == "page"
subFields:
- name: title
type: string
meta:
label: Titel
containerProps:
layout:
size:
default: "col-6"
small: "col-12"
large: "col-6"
- name: description
type: string
meta:
label: Beschreibung
containerProps:
layout:
size:
default: "col-6"
small: "col-12"
large: "col-6"
- name: keywords
type: string
meta:
label: Schlüsselwörter
- 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.