Update and rework project structure with new pagebuilder concept. (based on RK Architekten and SFU Politik configs and sources)
This commit is contained in:
@@ -9,7 +9,7 @@ uploadPath: ../media/content
|
||||
# Metaangaben zur Kollektion welche in der Admin-UI verwendet werden können
|
||||
meta:
|
||||
# Navigationseintrag in der Admin-UI
|
||||
label: { de: "Seiten", en: "Pages" }
|
||||
label: { de: "Seiten / Inhalte", en: "Pages / Content" }
|
||||
# Icon (Material UI) für den Navigationseintrag
|
||||
muiIcon: web
|
||||
# Identifizierung eines Eintrags für z.B. Select-Boxen in der Admin-UI
|
||||
@@ -24,75 +24,113 @@ meta:
|
||||
mediaQuery: "(max-width:599px)"
|
||||
primaryText: path
|
||||
columns:
|
||||
- source: path
|
||||
twig: "{{path}}"
|
||||
- source: public
|
||||
- source: locale
|
||||
type: flag
|
||||
- source: path
|
||||
# Desktop
|
||||
- type: table
|
||||
mediaQuery: "(min-width:600px)"
|
||||
columns:
|
||||
- source: path
|
||||
twig: "{{path}}"
|
||||
- source: public
|
||||
- source: type
|
||||
- source: locale
|
||||
type: flag
|
||||
- source: path
|
||||
- source: project.general.title
|
||||
|
||||
subNavigation:
|
||||
- name: page
|
||||
label:
|
||||
de: Standardseiten
|
||||
en: Default Pages
|
||||
muiIcon: book-open-page-variant
|
||||
defaultSort:
|
||||
field: "path"
|
||||
order: "ASC"
|
||||
views:
|
||||
- type: simpleList
|
||||
mediaQuery: "(max-width:599px)"
|
||||
primaryText: titel
|
||||
secondaryText: path
|
||||
tertiaryText: public
|
||||
columns:
|
||||
- source: public
|
||||
filter: true
|
||||
- source: locale
|
||||
type: flag
|
||||
- source: path
|
||||
- type: table
|
||||
mediaQuery: "(min-width:600px)"
|
||||
columns:
|
||||
- source: public
|
||||
filter: true
|
||||
- source: locale
|
||||
type: flag
|
||||
- source: path
|
||||
- source: updateTime
|
||||
label: { de: "letzte Aktualisierung", en: "last update" }
|
||||
type: date
|
||||
filter:
|
||||
type: page
|
||||
|
||||
tablist:
|
||||
meta:
|
||||
expand: assignments
|
||||
# meta:
|
||||
# expand: contentTab
|
||||
tabs:
|
||||
- name: general
|
||||
meta:
|
||||
label: { de: "Allgemein", en: "General" }
|
||||
label: { de: "Allgemein", en: "General" }
|
||||
subFields:
|
||||
- source: public
|
||||
- source: path
|
||||
- source: locale
|
||||
- source: type
|
||||
- source: tags
|
||||
- source: priority
|
||||
- name: meta
|
||||
meta:
|
||||
label: { de: "Meta", en: "Meta" }
|
||||
source: meta
|
||||
label: { de: "Meta", en: "Meta" }
|
||||
subFields:
|
||||
- source: meta
|
||||
- name: assignments
|
||||
meta:
|
||||
label: { de: "Verknüpfungen", en: "Assignments" }
|
||||
source: meta
|
||||
- name: contentTab
|
||||
label: { de: "Seiteninhalt", en: "Page Content" }
|
||||
subFields:
|
||||
- source: pages
|
||||
- source: linkedArticleEntries
|
||||
- source: pageBuilder
|
||||
- name: project
|
||||
label: { de: "Projektdetails", en: "Project Details" }
|
||||
dependsOn:
|
||||
eval: $.type?.includes("project")
|
||||
subFields:
|
||||
- source: project
|
||||
|
||||
imageFilter:
|
||||
xs:
|
||||
- fit: true
|
||||
height: 90
|
||||
width: 90
|
||||
resampling: "lancos"
|
||||
resampling: "lanczos"
|
||||
quality: 60
|
||||
s:
|
||||
- fit: true
|
||||
height: 300
|
||||
width: 300
|
||||
resampling: "lancos"
|
||||
resampling: "lanczos"
|
||||
quality: 60
|
||||
m:
|
||||
- fit: true
|
||||
height: 600
|
||||
width: 600
|
||||
resampling: "lancos"
|
||||
resampling: "lanczos"
|
||||
quality: 60
|
||||
l:
|
||||
- fit: true
|
||||
height: 1200
|
||||
width: 1200
|
||||
resampling: "lancos"
|
||||
resampling: "lanczos"
|
||||
quality: 60
|
||||
xl:
|
||||
- fit: true
|
||||
height: 2000
|
||||
width: 2000
|
||||
resampling: "lancos"
|
||||
resampling: "lanczos"
|
||||
quality: 60
|
||||
|
||||
# Zugriff auf diese Kollektion
|
||||
@@ -111,87 +149,92 @@ permissions:
|
||||
# zum Projekt zugeordneter Benutzer ohne Zusatzberechtigungen
|
||||
user:
|
||||
methods:
|
||||
# Liste und Einzeleinträge lesen
|
||||
get: true
|
||||
# neuen Eintrag anlegen
|
||||
post: true
|
||||
# Eintrag editieren
|
||||
put: true
|
||||
# Eintrag löschen
|
||||
delete: true
|
||||
# token als Zusatzsicherung gegen Spam, mehr siehe Hook
|
||||
"token:${PUBLIC_TOKEN}":
|
||||
methods:
|
||||
# Liste und Einzeleinträge lesen
|
||||
get: false
|
||||
# neuen Eintrag anlegen
|
||||
post: false
|
||||
# Eintrag editieren
|
||||
put: false
|
||||
# Eintrag löschen
|
||||
delete: false
|
||||
|
||||
hooks:
|
||||
post:
|
||||
return:
|
||||
create:
|
||||
type: javascript
|
||||
file: hooks/content/post_return.js
|
||||
file: hooks/content/post_create.js
|
||||
put:
|
||||
return:
|
||||
update:
|
||||
type: javascript
|
||||
file: hooks/content/put_return.js
|
||||
delete:
|
||||
return:
|
||||
type: javascript
|
||||
file: hooks/content/delete_return.js
|
||||
file: hooks/content/put_update.js
|
||||
|
||||
# Feldliste der Kollektion
|
||||
fields:
|
||||
# Allgemeine Felder
|
||||
- name: public
|
||||
type: boolean
|
||||
meta:
|
||||
filter: true
|
||||
label:
|
||||
de: Veröffentlicht
|
||||
en: Public
|
||||
helperText:
|
||||
de: Der Inhalt wird auf der Seite angezeigt.
|
||||
en: This content is displayed on the page.
|
||||
- name: path
|
||||
type: string
|
||||
index: [single, unique]
|
||||
meta:
|
||||
hideInRoot: true
|
||||
filter: true
|
||||
label: { de: "Pfad", en: "Path" }
|
||||
helperText:
|
||||
de: "Der Pfad muss eindeutig sein und ohne ein Slash (/) beginnen und enden."
|
||||
de: "Der Pfad muss eindeutig sein, und zwingend ohne einen Slash (/) beginnen und enden."
|
||||
en: "The path must be unique and must start and end without a slash (/)."
|
||||
- !include fields/_locale.yml
|
||||
- name: pages
|
||||
- name: type
|
||||
type: string[]
|
||||
index: [single]
|
||||
meta:
|
||||
hideInRoot: true
|
||||
helperText:
|
||||
de: "Verknüpft Seiten mit beliebigen anderen Seiten."
|
||||
en: "Links the page to any other page."
|
||||
widget: chipArray
|
||||
filter: true
|
||||
defaultValue:
|
||||
eval: |
|
||||
$navigation?.name ? [$navigation.name] : []
|
||||
label:
|
||||
de: Verknüpfung zu Seiten
|
||||
en: Assignment to pages
|
||||
defaultValue: []
|
||||
de: Inhaltstyp
|
||||
en: type of content
|
||||
autocomplete: true
|
||||
choices:
|
||||
endpoint: "content"
|
||||
mapping:
|
||||
id: "id"
|
||||
name: "path"
|
||||
params:
|
||||
sort: "path"
|
||||
- name: linkedArticleEntries
|
||||
type: string[]
|
||||
meta:
|
||||
hideInRoot: true
|
||||
widget: linkedEntries
|
||||
helperText:
|
||||
de: "Verknüpfte Artikel dieser Seite."
|
||||
en: "Linked articles to this page."
|
||||
label:
|
||||
de: Verknüpfte Artikel
|
||||
en: Linked articles
|
||||
defaultValue: []
|
||||
choices:
|
||||
endpoint: "articles"
|
||||
params:
|
||||
sort: "article.general.publish_date.from"
|
||||
filter: { "article.assignments.pages": { source: "path" } }
|
||||
template: { twig: "<td>{{ article.content.title }}</td><td>{{ article.general.locale }}</td>" }
|
||||
fieldviews:
|
||||
- { source: article.general.public, type: boolean }
|
||||
- { source: article.content.title, widget: text }
|
||||
- { source: article.general.type, widget: select }
|
||||
- { source: article.general.locale, widget: flag }
|
||||
- id: page
|
||||
name:
|
||||
de: Seite (Standard)
|
||||
en: Page (Standard)
|
||||
- id: PageProjects
|
||||
name:
|
||||
de: Seite (Projekte)
|
||||
en: Page (Projects)
|
||||
- id: project
|
||||
name:
|
||||
de: Projekt
|
||||
en: Project
|
||||
- name: tags
|
||||
type: string[]
|
||||
meta:
|
||||
hideInRoot: true
|
||||
widget: chipArray
|
||||
helperText:
|
||||
de: "Über die Zuweisung von Schlagworten, können Seiten noch einmal genauer kategorisiert werden."
|
||||
en: "Pages can be categorized more precisely by assigning keywords."
|
||||
widget: chipArray
|
||||
label:
|
||||
de: Schlagwort / Tag / Label
|
||||
en: Kayword / Tag / Label
|
||||
@@ -203,27 +246,10 @@ fields:
|
||||
name: "name"
|
||||
params:
|
||||
sort: "name"
|
||||
- name: priority
|
||||
type: number
|
||||
meta:
|
||||
hideInRoot: true
|
||||
defaultValue: [0]
|
||||
label: { de: "Priorität", en: "Priority" }
|
||||
helperText:
|
||||
de: "Sind mehr als ein Stichwort mit einer Seite verknüpft, führt die Priorität (z.B.: eine Zahl von 0..10..x) der gefundenen Seiten zu einer automatischen Vorauswahl aus den gefundenen Seiten."
|
||||
en: "If more than one keyword is linked to a page, the priority (e.g. a number 0..10..x) of the pages found leads to an automatic preselection from the pages found."
|
||||
# - name: blocks
|
||||
# type: object[]
|
||||
# meta:
|
||||
# label: { de: "Artikel dieser Seite", en: "Page Articles" }
|
||||
# collapse: { titleFieldName: "article.content.title" }
|
||||
# subFields:
|
||||
# - !include fields/_article.yml
|
||||
|
||||
# Felder für Meta-Informationen der Seite (Meta-Tags) im Tab "Meta"
|
||||
- name: meta
|
||||
type: object
|
||||
meta:
|
||||
hideInRoot: true
|
||||
subFields:
|
||||
- name: metaTitle
|
||||
type: string
|
||||
@@ -263,3 +289,6 @@ fields:
|
||||
helperText:
|
||||
de: "Beispiel: Stichwort1, Stichwort2, Stichwort3"
|
||||
en: "Example: keyword1, keyword2, keyword3"
|
||||
|
||||
# Page Builder im Tab "Seiteninhalt"
|
||||
- !include fields/pageBuilder.yml
|
||||
|
||||
Reference in New Issue
Block a user