Update and rework project structure with new pagebuilder concept. (based on RK Architekten and SFU Politik configs and sources)

This commit is contained in:
2022-11-17 16:01:52 +00:00
parent 825dfc18f9
commit 30c05143fe
1421 changed files with 3875 additions and 4975 deletions

View File

@@ -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