Initial commit
This commit is contained in:
16
api/collections/fields/active.yml
Normal file
16
api/collections/fields/active.yml
Normal file
@@ -0,0 +1,16 @@
|
||||
type: boolean
|
||||
name: active
|
||||
meta:
|
||||
label:
|
||||
de: Aktiv
|
||||
en: Active
|
||||
helperText:
|
||||
de: Ist dies Aktiviert, so wird der Inhalt verfügbar.
|
||||
en: If this is activated, the content will be available.
|
||||
defaultValue: true
|
||||
containerProps:
|
||||
layout:
|
||||
size:
|
||||
default: "col-6"
|
||||
small: "col-12"
|
||||
large: "col-6"
|
||||
3
api/collections/fields/backup.yml
Normal file
3
api/collections/fields/backup.yml
Normal file
@@ -0,0 +1,3 @@
|
||||
backup:
|
||||
active: true # sollen backups beim verändern erstellt werden
|
||||
collectionName: backups # in welcher collection es gespeichert werden soll
|
||||
72
api/collections/fields/callToActionButton.yml
Normal file
72
api/collections/fields/callToActionButton.yml
Normal file
@@ -0,0 +1,72 @@
|
||||
name: callToActionButtons
|
||||
type: object[]
|
||||
meta:
|
||||
label:
|
||||
de: Call to Action
|
||||
en: Call to Action
|
||||
subFields:
|
||||
- name: buttonText
|
||||
type: string
|
||||
meta:
|
||||
label:
|
||||
de: Button-Text
|
||||
en: Button Text
|
||||
containerProps:
|
||||
layout:
|
||||
size:
|
||||
default: "col-6"
|
||||
small: "col-12"
|
||||
large: "col-6"
|
||||
|
||||
- name: page
|
||||
type: string
|
||||
meta:
|
||||
label:
|
||||
de: Button-Link (URL)
|
||||
en: Button link (URL)
|
||||
containerProps:
|
||||
layout:
|
||||
size:
|
||||
default: "col-6"
|
||||
small: "col-12"
|
||||
large: "col-6"
|
||||
|
||||
- name: ctaType
|
||||
type: number
|
||||
meta:
|
||||
label: Button Farbe
|
||||
widget: select
|
||||
choices:
|
||||
- id: 0
|
||||
name: Primär
|
||||
- id: 1
|
||||
name: Sekundär
|
||||
containerProps:
|
||||
layout:
|
||||
size:
|
||||
default: "col-6"
|
||||
small: "col-12"
|
||||
large: "col-6"
|
||||
|
||||
- name: buttonTarget
|
||||
type: string
|
||||
meta:
|
||||
label:
|
||||
de: Button-Link (Ziel)
|
||||
en: Button link (Target)
|
||||
widget: select
|
||||
containerProps:
|
||||
layout:
|
||||
size:
|
||||
default: "col-6"
|
||||
small: "col-12"
|
||||
large: "col-6"
|
||||
choices:
|
||||
- name:
|
||||
de: im gleichen Fenster
|
||||
en: in the same window
|
||||
id: _self
|
||||
- name:
|
||||
de: in einem neuen Fenster
|
||||
en: in a new window
|
||||
id: _blank
|
||||
465
api/collections/fields/contentBlocks.yml
Normal file
465
api/collections/fields/contentBlocks.yml
Normal file
@@ -0,0 +1,465 @@
|
||||
x-block-full-preview: &block-full-preview
|
||||
eval: |
|
||||
//js
|
||||
(async () => {
|
||||
const {ContentBlock, getRenderedElement} = await import($projectBase + "_/assets/dist/admin.mjs?t=" + $project?.updateTime)
|
||||
const container = getRenderedElement(ContentBlock, {
|
||||
props: {
|
||||
block: Object.assign({}, $this, {
|
||||
}),
|
||||
apiBase: $projectBase,
|
||||
},
|
||||
addCss: [
|
||||
$projectBase + "_/assets/dist/index.css",
|
||||
$projectBase + "_/assets/dist/admin.css",
|
||||
],
|
||||
})
|
||||
let style = "max-width: 1900px; background-color: white;"
|
||||
// if (!$this?.aktiv) {
|
||||
// style += "opacity: 0.5;"
|
||||
// }
|
||||
container.style = style
|
||||
return container
|
||||
})()
|
||||
//!js
|
||||
|
||||
x-block-light-preview: &block-light-preview
|
||||
eval: |
|
||||
//js
|
||||
"<div style=\"padding-left: 30px;\"><b>" +
|
||||
($this.headline || "") + "</b>" +
|
||||
($this.type ?
|
||||
" <small>Blocktyp: " +
|
||||
{
|
||||
"columns": "Spalten",
|
||||
"predefinedBlock": "Vordefinierter Block",
|
||||
|
||||
}[$this.type] +
|
||||
"</small>" :
|
||||
"") +
|
||||
($this.anchorId ?
|
||||
" <small>#" + $this.anchorId +
|
||||
"</small>" :
|
||||
"") +
|
||||
"<br>" +
|
||||
($this.subline || "") +
|
||||
"</div>"
|
||||
//!js
|
||||
raw: true
|
||||
|
||||
name: blocks
|
||||
type: object[]
|
||||
meta:
|
||||
label:
|
||||
de: Inhalt
|
||||
en: Content
|
||||
#widget: containerLessObjectArray
|
||||
widget: previewBasedObjectArray
|
||||
pathStep:
|
||||
title: Inhalt
|
||||
preview: *block-full-preview
|
||||
folding:
|
||||
previewFolded: *block-full-preview
|
||||
previewUnfolded: *block-light-preview
|
||||
metaElements:
|
||||
tablist:
|
||||
tabs:
|
||||
- name: allgemein
|
||||
label: Allgemein
|
||||
subFields:
|
||||
- source: topline
|
||||
- source: headline
|
||||
- source: headlineH1
|
||||
- source: doublyLined
|
||||
- source: subline
|
||||
- source: anchorId
|
||||
- source: headlineLink
|
||||
- source: headlineLinkText
|
||||
- name: callToAction
|
||||
label: Call to Action
|
||||
subFields:
|
||||
- source: callToActionButtons
|
||||
- name: paddingBackground
|
||||
label: Hintergrund und Abstand
|
||||
subFields:
|
||||
- source: background
|
||||
- source: padding
|
||||
- source: contentWidth
|
||||
- source: crinkledSection
|
||||
- source: additionalHeightBottom
|
||||
|
||||
subFields:
|
||||
########################### globale Einstellungen ###########################
|
||||
- name: headline
|
||||
type: string
|
||||
meta:
|
||||
label:
|
||||
de: Überschrift
|
||||
en: Headline
|
||||
containerProps:
|
||||
layout:
|
||||
size:
|
||||
default: "col-6"
|
||||
small: "col-12"
|
||||
large: "col-6"
|
||||
- name: headlineH1
|
||||
type: boolean
|
||||
meta:
|
||||
label:
|
||||
de: Überschrift als H1
|
||||
en: Headline as H1
|
||||
containerProps:
|
||||
layout:
|
||||
size:
|
||||
default: "col-6"
|
||||
small: "col-12"
|
||||
large: "col-6"
|
||||
- name: headlineLink
|
||||
type: string
|
||||
meta:
|
||||
label:
|
||||
de: Überschrift-Link
|
||||
en: Headline-Link
|
||||
foreign:
|
||||
collection: content
|
||||
id: path
|
||||
subNavigation: 0
|
||||
render:
|
||||
defaultCollectionViews: true
|
||||
containerProps:
|
||||
layout:
|
||||
size:
|
||||
default: "col-6"
|
||||
small: "col-12"
|
||||
large: "col-6"
|
||||
- name: headlineLinkText
|
||||
type: string
|
||||
meta:
|
||||
label:
|
||||
de: Überschrift-Link
|
||||
en: Headline-Link
|
||||
foreign:
|
||||
collection: content
|
||||
id: path
|
||||
subNavigation: 0
|
||||
render:
|
||||
defaultCollectionViews: true
|
||||
containerProps:
|
||||
layout:
|
||||
size:
|
||||
default: "col-6"
|
||||
small: "col-12"
|
||||
large: "col-6"
|
||||
- !include ./callToActionButton.yml
|
||||
- name: doublyLined
|
||||
type: boolean
|
||||
meta:
|
||||
label:
|
||||
de: Doppelt unterstrichen
|
||||
en: Doubly underlined
|
||||
containerProps:
|
||||
layout:
|
||||
size:
|
||||
default: "col-6"
|
||||
small: "col-12"
|
||||
large: "col-6"
|
||||
- name: subline
|
||||
type: string
|
||||
meta:
|
||||
label:
|
||||
de: Unterzeile
|
||||
en: Subline
|
||||
containerProps:
|
||||
layout:
|
||||
size:
|
||||
default: "col-6"
|
||||
small: "col-12"
|
||||
large: "col-6"
|
||||
- name: topline
|
||||
type: string
|
||||
meta:
|
||||
label:
|
||||
de: Topline
|
||||
en: Topline
|
||||
containerProps:
|
||||
layout:
|
||||
size:
|
||||
default: "col-6"
|
||||
small: "col-12"
|
||||
large: "col-6"
|
||||
- name: anchorId
|
||||
type: string
|
||||
meta:
|
||||
# dependsOn:
|
||||
# eval: |
|
||||
# (function() {
|
||||
# return $parent?.type !== 'predefinedBlock'
|
||||
# })()
|
||||
label:
|
||||
de: Anker-ID
|
||||
en: Anchor ID
|
||||
helperText:
|
||||
de: Der Block kann über diese Anker-Id direkt über links mit URL#Anker-ID angesprungen werden.
|
||||
en: The block can be jumped directly via links with URL#AnchorID.
|
||||
containerProps:
|
||||
layout:
|
||||
size:
|
||||
default: "col-6"
|
||||
small: "col-12"
|
||||
large: "col-6"
|
||||
- name: crinkledSection
|
||||
type: boolean
|
||||
meta:
|
||||
label:
|
||||
de: Geknitterter Abschnitt
|
||||
en: crinkled Section
|
||||
containerProps:
|
||||
layout:
|
||||
size:
|
||||
default: "col-6"
|
||||
small: "col-12"
|
||||
large: "col-6"
|
||||
|
||||
- name: background
|
||||
type: object
|
||||
meta:
|
||||
label:
|
||||
de: Hintergrund
|
||||
en: Background
|
||||
subFields:
|
||||
- name: color
|
||||
type: string
|
||||
meta:
|
||||
label:
|
||||
de: Hintergrundfarbe
|
||||
en: Background color
|
||||
widget: select
|
||||
choices:
|
||||
- name:
|
||||
de: weiß / transparent
|
||||
en: white / transparent
|
||||
id: white
|
||||
|
||||
- name:
|
||||
de: schwarz
|
||||
en: black
|
||||
id: black
|
||||
defaultValue: white
|
||||
containerProps:
|
||||
layout:
|
||||
size:
|
||||
default: "col-6"
|
||||
small: "col-12"
|
||||
large: "col-6"
|
||||
|
||||
- name: image
|
||||
type: string
|
||||
meta:
|
||||
label:
|
||||
de: Hintergrundbild
|
||||
en: Background Image
|
||||
widget: foreignKey
|
||||
foreign:
|
||||
collection: medialib
|
||||
id: id
|
||||
subNavigation: 0
|
||||
render: !include ../lib/foreignMediaRender.yml
|
||||
containerProps:
|
||||
layout:
|
||||
size:
|
||||
default: "col-6"
|
||||
small: "col-12"
|
||||
large: "col-6"
|
||||
- name: minHeight
|
||||
type: string
|
||||
meta:
|
||||
label:
|
||||
de: Mindesthöhe
|
||||
en: Min height
|
||||
widget: select
|
||||
choices:
|
||||
- name:
|
||||
de: keine
|
||||
en: none
|
||||
id: "none"
|
||||
|
||||
- name:
|
||||
de: Normale höhe
|
||||
en: Normal height
|
||||
id: normal
|
||||
|
||||
- name:
|
||||
de: erweiterte Höhe
|
||||
en: extended height
|
||||
id: extended
|
||||
|
||||
containerProps:
|
||||
layout:
|
||||
size:
|
||||
default: "col-6"
|
||||
small: "col-12"
|
||||
large: "col-6"
|
||||
- name: headerHeightUp
|
||||
type: boolean
|
||||
meta:
|
||||
label:
|
||||
de: Um höhe des Header nach oben
|
||||
en: Header up
|
||||
containerProps:
|
||||
layout:
|
||||
size:
|
||||
default: "col-6"
|
||||
small: "col-12"
|
||||
large: "col-6"
|
||||
- name: overlay
|
||||
type: boolean
|
||||
meta:
|
||||
label:
|
||||
de: Overlay
|
||||
en: Overlay
|
||||
containerProps:
|
||||
layout:
|
||||
size:
|
||||
default: "col-6"
|
||||
small: "col-12"
|
||||
large: "col-6"
|
||||
|
||||
- name: noVerticalPadding
|
||||
type: boolean
|
||||
meta:
|
||||
label:
|
||||
de: Kein vertikaler Innenabstand
|
||||
en: No vertical padding
|
||||
containerProps:
|
||||
layout:
|
||||
size:
|
||||
default: "col-6"
|
||||
small: "col-12"
|
||||
large: "col-6"
|
||||
helperText:
|
||||
de: Nur nötig, wenn man nicht mit den "geknittertem Abschnitt" arbeitet
|
||||
en: Only not necessary if you work with the "crinkled section"
|
||||
- name: noHorizontalMargin
|
||||
type: boolean
|
||||
meta:
|
||||
label:
|
||||
de: Kein horizontaler Außenabstand
|
||||
en: No horizontal margin
|
||||
|
||||
containerProps:
|
||||
layout:
|
||||
size:
|
||||
default: "col-6"
|
||||
small: "col-12"
|
||||
large: "col-6"
|
||||
|
||||
- name: contentWidth
|
||||
type: number
|
||||
meta:
|
||||
widget: select
|
||||
label:
|
||||
de: Breite
|
||||
en: Width
|
||||
choices:
|
||||
- id: 0
|
||||
name:
|
||||
de: 100%
|
||||
en: 100%
|
||||
- id: 1
|
||||
name:
|
||||
de: Schmal
|
||||
en: Narrow
|
||||
- id: 2
|
||||
name:
|
||||
de: normal
|
||||
en: normal
|
||||
|
||||
- name: type
|
||||
type: string
|
||||
meta:
|
||||
label:
|
||||
de: Typ
|
||||
en: Type
|
||||
widget: select
|
||||
containerProps:
|
||||
layout:
|
||||
breakBefore: true
|
||||
breakAfter: true
|
||||
size:
|
||||
default: "col-6"
|
||||
small: "col-12"
|
||||
large: "col-6"
|
||||
defaultValue: columns
|
||||
choices:
|
||||
- name:
|
||||
de: keine Auswahl
|
||||
en: no selection
|
||||
id: ""
|
||||
|
||||
- name:
|
||||
de: Text- und Bild-Spalten
|
||||
en: Text and image columns
|
||||
id: columns
|
||||
|
||||
- name:
|
||||
de: Vordefinierter Block
|
||||
en: Predefined Block
|
||||
id: predefinedBlock
|
||||
|
||||
- name:
|
||||
de: Produkt Slider
|
||||
en: Product Slider
|
||||
id: productSlider
|
||||
|
||||
- name:
|
||||
de: Haupt Homepage
|
||||
en: Main Homepage
|
||||
id: homepage
|
||||
|
||||
- name:
|
||||
de: Geteilte Homepage
|
||||
en: Splitted Homepage
|
||||
id: splittedHomepage
|
||||
|
||||
- name:
|
||||
de: Verbessere Dich Spalte
|
||||
en: Improve Yourself Column
|
||||
id: improveYourselfDescription
|
||||
|
||||
- name:
|
||||
de: Chapter Preview
|
||||
en: Chapter Preview
|
||||
id: selfImprovementChapterPreview
|
||||
|
||||
- name:
|
||||
de: Bewertungsvorschau
|
||||
en: Rating Preview
|
||||
id: ratingPreview
|
||||
|
||||
- name: StepNr
|
||||
id: stepNr
|
||||
|
||||
- name: additionalHeightBottom
|
||||
type: boolean
|
||||
meta:
|
||||
label:
|
||||
de: Zusätzliche Höhe unten
|
||||
en: Additional height bottom
|
||||
containerProps:
|
||||
layout:
|
||||
size:
|
||||
default: "col-6"
|
||||
small: "col-12"
|
||||
large: "col-6"
|
||||
########################### Blöcke ############################
|
||||
###############################################################
|
||||
- !include ./contentBlocks/columns.yml
|
||||
- !include ./contentBlocks/form.yml
|
||||
- !include ./contentBlocks/predefined.yml
|
||||
- !include ./contentBlocks/productSlider.yml
|
||||
- !include ./contentBlocks/MainHomepage.yml
|
||||
- !include ./contentBlocks/SplittedHompage.yml
|
||||
- !include ./contentBlocks/ImproveYourselfDescription.yml
|
||||
- !include ./contentBlocks/selfImprovementChapter.yml
|
||||
- !include ./contentBlocks/ratingsPreview.yml
|
||||
- !include ./contentBlocks/stepNr.yml
|
||||
70
api/collections/fields/contentBlocks/CTACol.yml
Normal file
70
api/collections/fields/contentBlocks/CTACol.yml
Normal file
@@ -0,0 +1,70 @@
|
||||
name: cta
|
||||
type: object
|
||||
meta:
|
||||
label: Call To Action Zeile
|
||||
dependsOn:
|
||||
eval: $parent.type == 'cta'
|
||||
subFields:
|
||||
- name: upperHeadline
|
||||
type: string
|
||||
meta:
|
||||
label: Über Überschrift
|
||||
containerProps:
|
||||
layout:
|
||||
size:
|
||||
default: "col-6"
|
||||
small: "col-6"
|
||||
large: "col-6"
|
||||
|
||||
- name: description
|
||||
type: string
|
||||
meta:
|
||||
label: Überschrift beschreibung
|
||||
containerProps:
|
||||
layout:
|
||||
size:
|
||||
default: "col-6"
|
||||
small: "col-6"
|
||||
large: "col-6"
|
||||
|
||||
- name: whiteHeadline
|
||||
type: string
|
||||
meta:
|
||||
label: Weißer Teil Überschrift
|
||||
containerProps:
|
||||
layout:
|
||||
size:
|
||||
default: "col-6"
|
||||
small: "col-6"
|
||||
large: "col-6"
|
||||
|
||||
- name: redHeadline
|
||||
type: string
|
||||
meta:
|
||||
label: Roter Teil Überschrift
|
||||
containerProps:
|
||||
layout:
|
||||
size:
|
||||
default: "col-6"
|
||||
small: "col-6"
|
||||
large: "col-6"
|
||||
|
||||
- name: headlineArrangement
|
||||
type: string
|
||||
meta:
|
||||
label: Headline Anordnung
|
||||
widget: select
|
||||
containerProps:
|
||||
layout:
|
||||
size:
|
||||
default: "col-12"
|
||||
small: "col-12"
|
||||
large: "col-12"
|
||||
choices:
|
||||
- id: row
|
||||
name: in einer Zeile
|
||||
|
||||
- id: column
|
||||
name: in einer Spalte
|
||||
|
||||
- !include ../callToActionButton.yml
|
||||
@@ -0,0 +1,54 @@
|
||||
name: improveYourselfDescription
|
||||
type: object
|
||||
meta:
|
||||
label:
|
||||
de: Verbessere dich Beschreibung
|
||||
en: Improve Yourself Description
|
||||
dependsOn:
|
||||
eval: $parent.type === 'improveYourselfDescription'
|
||||
subFields:
|
||||
- name: upperDescription
|
||||
type: string
|
||||
meta:
|
||||
label:
|
||||
de: Obere Beschreibung
|
||||
en: Upper Description
|
||||
widget: richtext
|
||||
containerProps:
|
||||
layout:
|
||||
size:
|
||||
default: "col-6"
|
||||
small: "col-12"
|
||||
large: "col-6"
|
||||
- name: lowerDescription
|
||||
type: string
|
||||
meta:
|
||||
label:
|
||||
de: Untere Beschreibung
|
||||
en: Lower Description
|
||||
widget: richtext
|
||||
containerProps:
|
||||
layout:
|
||||
size:
|
||||
default: "col-6"
|
||||
small: "col-12"
|
||||
large: "col-6"
|
||||
- name: image
|
||||
type: string
|
||||
meta:
|
||||
label:
|
||||
de: Bild
|
||||
en: Image
|
||||
widget: foreignKey
|
||||
foreign:
|
||||
collection: medialib
|
||||
id: id
|
||||
subNavigation: 0
|
||||
render:
|
||||
defaultCollectionViews: true
|
||||
containerProps:
|
||||
layout:
|
||||
size:
|
||||
default: "col-6"
|
||||
small: "col-12"
|
||||
large: "col-6"
|
||||
28
api/collections/fields/contentBlocks/MainHomepage.yml
Normal file
28
api/collections/fields/contentBlocks/MainHomepage.yml
Normal file
@@ -0,0 +1,28 @@
|
||||
name: mainHomepage
|
||||
type: object
|
||||
meta:
|
||||
label: Hauptseite
|
||||
dependsOn:
|
||||
eval: $parent.type == 'homepage'
|
||||
subFields:
|
||||
- name: type
|
||||
type: string
|
||||
meta:
|
||||
label: Typ
|
||||
widget: select
|
||||
choices:
|
||||
- id: cta
|
||||
name: Call To Action
|
||||
|
||||
- !include CTACol.yml
|
||||
- name: image
|
||||
type: string
|
||||
meta:
|
||||
label: Bild
|
||||
widget: foreignKey
|
||||
foreign:
|
||||
collection: medialib
|
||||
id: id
|
||||
subNavigation: 0
|
||||
render:
|
||||
defaultCollectionViews: true
|
||||
23
api/collections/fields/contentBlocks/SplittedHompage.yml
Normal file
23
api/collections/fields/contentBlocks/SplittedHompage.yml
Normal file
@@ -0,0 +1,23 @@
|
||||
name: splittedHomepage
|
||||
type: object
|
||||
meta:
|
||||
label:
|
||||
de: Geteilte Homepage
|
||||
en: Splitted Homepage Block
|
||||
dependsOn:
|
||||
eval: $parent.type === 'splittedHomepage'
|
||||
subFields:
|
||||
- name: chapters
|
||||
type: string[]
|
||||
meta:
|
||||
label:
|
||||
de: Kapitel
|
||||
en: Chapters
|
||||
widget: foreignKey
|
||||
foreign:
|
||||
collection: selfImprovementChapter
|
||||
id: id
|
||||
sort: name
|
||||
subNavigation: 0
|
||||
render:
|
||||
defaultCollectionViews: true
|
||||
265
api/collections/fields/contentBlocks/columns.yml
Normal file
265
api/collections/fields/contentBlocks/columns.yml
Normal file
@@ -0,0 +1,265 @@
|
||||
x-column-preview: &column-preview
|
||||
eval: |
|
||||
//js
|
||||
(async () => {
|
||||
const {ColumnsColumn, getRenderedElement} = await import($projectBase + "_/assets/dist/admin.mjs?t=" + $project?.updateTime)
|
||||
let c = ColumnsColumn
|
||||
const container = getRenderedElement(c, {
|
||||
props: {
|
||||
column: Object.assign({}, $this, {
|
||||
}),
|
||||
apiBase: $projectBase,
|
||||
},
|
||||
addCss: [
|
||||
$projectBase + "_/assets/dist/index.css",
|
||||
$projectBase + "_/assets/dist/admin.css",
|
||||
],
|
||||
})
|
||||
let style = "background-color: white;"
|
||||
style += "width: 600px;"
|
||||
// if (!$this?.aktiv) {
|
||||
// style += "opacity: 0.5;"
|
||||
// }
|
||||
container.style = style
|
||||
return container
|
||||
})()
|
||||
//!js
|
||||
|
||||
name: columns
|
||||
type: object[]
|
||||
meta:
|
||||
label:
|
||||
de: Spalten
|
||||
en: columns
|
||||
dependsOn:
|
||||
eval: $parent.type == 'columns'
|
||||
pathStep:
|
||||
title: Spalten
|
||||
direction: horizontal
|
||||
widget: previewBasedObjectArray
|
||||
preview: *column-preview
|
||||
folding:
|
||||
previewFolded: *column-preview
|
||||
previewUnfolded:
|
||||
eval: |
|
||||
"<div style=\"padding-left: 30px;\">" + ($this.type == "image" ? "Bild" : "Text") + "-Spalte (Breite: " + ($this.colWidth ? $this.colWidth + "/12" : "automatisch" ) + ")</div>"
|
||||
raw: true
|
||||
defaultValue:
|
||||
eval: |
|
||||
[{type: "text", colWidth: 0}]
|
||||
metaElements:
|
||||
- type
|
||||
- colWidth
|
||||
- verticalAlign
|
||||
subFields:
|
||||
- name: type
|
||||
type: string
|
||||
meta:
|
||||
label:
|
||||
de: Typ
|
||||
en: Type
|
||||
widget: select
|
||||
defaultValue: text
|
||||
choices:
|
||||
- name:
|
||||
de: Text
|
||||
en: Text
|
||||
id: text
|
||||
|
||||
- name:
|
||||
de: Bild
|
||||
en: Image
|
||||
id: image
|
||||
|
||||
- name:
|
||||
de: CTA
|
||||
en: CTA
|
||||
id: cta
|
||||
containerProps:
|
||||
layout:
|
||||
size:
|
||||
default: "col-4"
|
||||
small: "col-12"
|
||||
large: "col-4"
|
||||
- name: colWidth
|
||||
type: number
|
||||
meta:
|
||||
widget: select
|
||||
label:
|
||||
de: Spaltenbreite
|
||||
en: Column width
|
||||
choices:
|
||||
- id: -1
|
||||
name:
|
||||
de: automatische Breite
|
||||
en: auto
|
||||
- id: 6
|
||||
name:
|
||||
de: 1/2
|
||||
en: 1/2
|
||||
- id: 4
|
||||
name:
|
||||
de: 1/3
|
||||
en: 1/3
|
||||
defaultValue: -1
|
||||
containerProps:
|
||||
layout:
|
||||
size:
|
||||
default: "col-4"
|
||||
small: "col-12"
|
||||
large: "col-4"
|
||||
- name: verticalAlign
|
||||
type: string
|
||||
meta:
|
||||
widget: select
|
||||
label:
|
||||
de: vertikale Ausrichtung
|
||||
en: vertical alignment
|
||||
choices:
|
||||
- id: top
|
||||
name:
|
||||
de: oben
|
||||
en: top
|
||||
- id: middle
|
||||
name:
|
||||
de: mittig
|
||||
en: middle
|
||||
- id: bottom
|
||||
name:
|
||||
de: unten
|
||||
en: bottom
|
||||
defaultValue: top
|
||||
containerProps:
|
||||
layout:
|
||||
size:
|
||||
default: "col-4"
|
||||
small: "col-12"
|
||||
large: "col-4"
|
||||
- name: text
|
||||
type: string
|
||||
meta:
|
||||
label:
|
||||
de: Text
|
||||
en: text
|
||||
widget: richtext
|
||||
dependsOn:
|
||||
eval: $parent.type == 'text'
|
||||
|
||||
- name: images
|
||||
type: string[]
|
||||
meta:
|
||||
label:
|
||||
de: Bild
|
||||
en: Image
|
||||
widget: foreignKey
|
||||
foreign:
|
||||
collection: medialib
|
||||
id: id
|
||||
subNavigation: 0
|
||||
render: !include ../../lib/foreignMediaRender.yml
|
||||
dependsOn:
|
||||
eval: $parent.type == 'image'
|
||||
|
||||
- name: imageMobileBackground
|
||||
type: boolean
|
||||
meta:
|
||||
label:
|
||||
de: Bild auf Mobilgeräten in hintergrund
|
||||
en: Image on mobile devices in background
|
||||
dependsOn:
|
||||
eval: $parent.type == 'image'
|
||||
- name: forceFullHeight
|
||||
type: boolean
|
||||
meta:
|
||||
label:
|
||||
de: volle Bildhöhe erzwingen
|
||||
en: full Force image height
|
||||
dependsOn:
|
||||
eval: $parent.type == 'image'
|
||||
|
||||
- name: imageHoverEffect
|
||||
type: boolean
|
||||
meta:
|
||||
label:
|
||||
de: Bild hover effekt
|
||||
en: Image hover effect
|
||||
dependsOn:
|
||||
eval: $parent.type == 'image'
|
||||
- name: links
|
||||
type: object[]
|
||||
meta:
|
||||
label:
|
||||
de: Links
|
||||
en: Links
|
||||
folding:
|
||||
force: true
|
||||
previewFolded:
|
||||
eval: |
|
||||
"<div style=\"padding-left: 30px;\">Link: <b>" + ($this.text || "") + "</b></div>"
|
||||
raw: true
|
||||
dependsOn:
|
||||
eval: $parent.type == 'text'
|
||||
subFields:
|
||||
- name: text
|
||||
type: string
|
||||
meta:
|
||||
label:
|
||||
de: Text
|
||||
en: Text
|
||||
- name: url
|
||||
type: string
|
||||
meta:
|
||||
label:
|
||||
de: URL
|
||||
en: URL
|
||||
- name: target
|
||||
type: string
|
||||
meta:
|
||||
label:
|
||||
de: Ziel
|
||||
en: Target
|
||||
widget: select
|
||||
choices:
|
||||
- name:
|
||||
de: im gleichen Fenster
|
||||
en: in the same window
|
||||
id: _self
|
||||
- name:
|
||||
de: in einem neuen Fenster
|
||||
en: in a new window
|
||||
id: _blank
|
||||
- name: style
|
||||
type: string
|
||||
meta:
|
||||
label:
|
||||
de: Stil
|
||||
en: Style
|
||||
widget: select
|
||||
defaultValue: primary
|
||||
choices:
|
||||
- name:
|
||||
de: primär (roter Hintergrund)
|
||||
en: primary (red background)
|
||||
id: primary
|
||||
|
||||
- name:
|
||||
de: sekundär (rote Schrift)
|
||||
en: secondary (red text)
|
||||
id: secondary
|
||||
|
||||
- id: tertiary
|
||||
name:
|
||||
de: normaler Link (graue Schrift)
|
||||
en: normal link (grey text)
|
||||
|
||||
- name:
|
||||
de: externer Link (Icon links)
|
||||
en: external link (icon left)
|
||||
id: external
|
||||
|
||||
- name:
|
||||
de: Download Link (Icon links)
|
||||
en: download link (icon left)
|
||||
id: download
|
||||
|
||||
- !include ./CTACol.yml
|
||||
7
api/collections/fields/contentBlocks/form.yml
Normal file
7
api/collections/fields/contentBlocks/form.yml
Normal file
@@ -0,0 +1,7 @@
|
||||
name: form
|
||||
type: object
|
||||
meta:
|
||||
widget: containerLessObject
|
||||
dependsOn:
|
||||
eval: $parent.type == 'form'
|
||||
subFields: !include ../../fieldLists/formular/form.yml
|
||||
28
api/collections/fields/contentBlocks/predefined.yml
Normal file
28
api/collections/fields/contentBlocks/predefined.yml
Normal file
@@ -0,0 +1,28 @@
|
||||
name: predefinedBlock
|
||||
type: object
|
||||
meta:
|
||||
label:
|
||||
de: Vordefinierter Block
|
||||
en: Predefined Block
|
||||
dependsOn:
|
||||
eval: |
|
||||
(function() {
|
||||
return $parent?.type === 'predefinedBlock'
|
||||
})()
|
||||
subFields:
|
||||
- name: id
|
||||
type: string
|
||||
meta:
|
||||
label:
|
||||
de: Inhalt
|
||||
en: Include
|
||||
widget: foreignKey
|
||||
foreign:
|
||||
collection: content
|
||||
id: id
|
||||
subNavigation: 0
|
||||
render:
|
||||
eval: |
|
||||
(function() {
|
||||
return $foreignEntry?.name || $foreignEntry?.id
|
||||
})()
|
||||
85
api/collections/fields/contentBlocks/productSlider.yml
Normal file
85
api/collections/fields/contentBlocks/productSlider.yml
Normal file
@@ -0,0 +1,85 @@
|
||||
name: productSlider
|
||||
type: object
|
||||
meta:
|
||||
label:
|
||||
de: Produktslider
|
||||
en: Product Slider
|
||||
dependsOn:
|
||||
eval: $parent.type === 'productSlider'
|
||||
subFields:
|
||||
- name: productSource
|
||||
type: string
|
||||
meta:
|
||||
label:
|
||||
de: Produktdatenquelle
|
||||
en: Product Data Source
|
||||
widget: select
|
||||
choices:
|
||||
- name:
|
||||
de: Manuelle Auswahl
|
||||
en: Manual Selection
|
||||
id: manual
|
||||
|
||||
- name:
|
||||
de: Kategorie Id
|
||||
en: Category id
|
||||
id: category
|
||||
|
||||
- name:
|
||||
de: Bestseller
|
||||
en: Bestseller
|
||||
id: bestseller
|
||||
|
||||
- name:
|
||||
de: Neue Produkte
|
||||
en: New Products
|
||||
id: newProducts
|
||||
|
||||
- name:
|
||||
de: Hervorgehoben
|
||||
en: Featured
|
||||
id: featured
|
||||
|
||||
- name:
|
||||
de: Angebote
|
||||
en: Discounted
|
||||
id: discounted
|
||||
|
||||
- name: productIds
|
||||
type: number[]
|
||||
meta:
|
||||
label:
|
||||
de: Produkt IDs
|
||||
en: Product IDs
|
||||
dependsOn:
|
||||
eval: $parent.productSource === 'manual' || $parent.productSource === "discounted"
|
||||
widget: foreignKey
|
||||
foreign:
|
||||
collection: bigCommerceProduct
|
||||
id: bigCommerceId
|
||||
subNavigation: 0
|
||||
render:
|
||||
defaultCollectionViews: true
|
||||
|
||||
- name: categoryId
|
||||
type: string
|
||||
meta:
|
||||
label:
|
||||
de: Kategorie
|
||||
en: Category
|
||||
dependsOn:
|
||||
eval: $parent.productSource === 'category'
|
||||
|
||||
- !include ../callToActionButton.yml
|
||||
- name: headline
|
||||
type: string
|
||||
meta:
|
||||
label:
|
||||
de: Überschrift
|
||||
en: Headline
|
||||
- name: topLine
|
||||
type: string
|
||||
meta:
|
||||
label:
|
||||
de: Top Line
|
||||
en: Top Line
|
||||
25
api/collections/fields/contentBlocks/ratingsPreview.yml
Normal file
25
api/collections/fields/contentBlocks/ratingsPreview.yml
Normal file
@@ -0,0 +1,25 @@
|
||||
name: ratingsPreview
|
||||
type: object
|
||||
meta:
|
||||
label:
|
||||
de: Bewertungsvorschau
|
||||
en: Ratings Preview
|
||||
dependsOn:
|
||||
eval: $parent.type === 'ratingPreview'
|
||||
subFields:
|
||||
- name: ratings
|
||||
type: object[]
|
||||
meta:
|
||||
widget: containerLessObjectArray
|
||||
subFields:
|
||||
- name: rating
|
||||
type: string
|
||||
meta:
|
||||
label: rating
|
||||
widget: foreignKey
|
||||
foreign:
|
||||
collection: rating
|
||||
id: id
|
||||
subNavigation: 0
|
||||
render:
|
||||
defaultCollectionViews: true
|
||||
@@ -0,0 +1,35 @@
|
||||
name: selfImprovementChapterPreview
|
||||
type: object[]
|
||||
meta:
|
||||
label:
|
||||
de: Vorschau
|
||||
en: Preview
|
||||
dependsOn:
|
||||
eval: $parent.type === 'selfImprovementChapterPreview'
|
||||
subFields:
|
||||
- name: chapter
|
||||
type: string
|
||||
meta:
|
||||
label:
|
||||
de: Kapitel
|
||||
en: Chapter
|
||||
widget: foreignKey
|
||||
foreign:
|
||||
collection: selfImprovementChapter
|
||||
id: id
|
||||
subNavigation: 0
|
||||
render:
|
||||
defaultCollectionViews: true
|
||||
- name: previewImage
|
||||
type: string
|
||||
meta:
|
||||
label:
|
||||
de: Vorschaubild
|
||||
en: Preview Image
|
||||
widget: foreignKey
|
||||
foreign:
|
||||
collection: medialib
|
||||
id: id
|
||||
subNavigation: 0
|
||||
render:
|
||||
defaultCollectionViews: true
|
||||
73
api/collections/fields/contentBlocks/stepNr.yml
Normal file
73
api/collections/fields/contentBlocks/stepNr.yml
Normal file
@@ -0,0 +1,73 @@
|
||||
name: steps
|
||||
type: object
|
||||
meta:
|
||||
label:
|
||||
de: Stepp Nr
|
||||
en: Step Nr
|
||||
dependsOn:
|
||||
eval: $parent.type === 'stepNr' || !$parent.type
|
||||
subFields:
|
||||
- name: horizontal
|
||||
type: boolean
|
||||
meta:
|
||||
label:
|
||||
de: Horizontal
|
||||
en: Horizontal
|
||||
|
||||
- name: color
|
||||
type: string
|
||||
meta:
|
||||
label:
|
||||
de: Farbe
|
||||
en: Color
|
||||
widget: select
|
||||
choices:
|
||||
- name: red
|
||||
id: red
|
||||
|
||||
- name: items
|
||||
type: object[]
|
||||
meta:
|
||||
label:
|
||||
de: Items
|
||||
en: Items
|
||||
widget: containerLessObjectArray
|
||||
subFields:
|
||||
- name: nr
|
||||
type: number
|
||||
meta:
|
||||
label:
|
||||
de: Nr
|
||||
en: Nr
|
||||
|
||||
- name: title
|
||||
type: string
|
||||
meta:
|
||||
label:
|
||||
de: Titel
|
||||
en: Title
|
||||
|
||||
- name: descriptions
|
||||
type: string[]
|
||||
meta:
|
||||
widget: string
|
||||
useDefaultArray: true
|
||||
label:
|
||||
de: Beschreibung
|
||||
en: Description
|
||||
inputProps:
|
||||
multiline: true
|
||||
|
||||
- name: image
|
||||
type: string
|
||||
meta:
|
||||
label:
|
||||
de: Bild
|
||||
en: Image
|
||||
widget: foreignKey
|
||||
foreign:
|
||||
collection: medialib
|
||||
id: id
|
||||
subNavigation: 0
|
||||
render:
|
||||
defaultCollectionViews: true
|
||||
103
api/collections/fields/contentMeta.yml
Normal file
103
api/collections/fields/contentMeta.yml
Normal file
@@ -0,0 +1,103 @@
|
||||
name: meta
|
||||
type: object
|
||||
meta:
|
||||
label:
|
||||
de: Meta Agaben
|
||||
en: Meta Data
|
||||
helperText:
|
||||
de: Diese Angaben werden für die Suchmaschinenoptimierung verwendet.
|
||||
en: These data are used for search engine optimization.
|
||||
dependsOn:
|
||||
eval: $?.type != "block"
|
||||
subFields:
|
||||
- name: title
|
||||
type: string
|
||||
meta:
|
||||
label:
|
||||
de: Titel
|
||||
en: Title
|
||||
helperText:
|
||||
de: Alternativ wird der Name verwendet.
|
||||
en: Alternatively the name is used.
|
||||
containerProps:
|
||||
layout:
|
||||
size:
|
||||
default: "col-6"
|
||||
small: "col-12"
|
||||
large: "col-6"
|
||||
|
||||
- name: description
|
||||
type: string
|
||||
meta:
|
||||
label:
|
||||
de: Beschreibung
|
||||
en: Description
|
||||
inputProps:
|
||||
multiline: true
|
||||
containerProps:
|
||||
layout:
|
||||
size:
|
||||
default: "col-6"
|
||||
small: "col-12"
|
||||
large: "col-6"
|
||||
- name: keywords
|
||||
type: string
|
||||
meta:
|
||||
inputProps:
|
||||
multiline: true
|
||||
label:
|
||||
de: Schlüsselwörter
|
||||
en: Keywords
|
||||
|
||||
- name: isArticle
|
||||
type: boolean
|
||||
meta:
|
||||
label:
|
||||
de: Ist Artikel
|
||||
en: Is Article
|
||||
helperText:
|
||||
de: "Wenn aktiviert, wird der Inhalt als Artikel behandelt."
|
||||
en: "If activated, the content is treated as an article."
|
||||
containerProps:
|
||||
layout:
|
||||
size:
|
||||
default: "col-6"
|
||||
small: "col-12"
|
||||
large: "col-6"
|
||||
- name: hasFAQ
|
||||
type: boolean
|
||||
meta:
|
||||
label:
|
||||
de: Hat FAQ
|
||||
en: Has FAQ
|
||||
helperText:
|
||||
de: "Wenn aktiviert, wird der Inhalt als FAQ behandelt."
|
||||
en: "If activated, the content is treated as a FAQ."
|
||||
containerProps:
|
||||
layout:
|
||||
size:
|
||||
default: "col-6"
|
||||
small: "col-12"
|
||||
large: "col-6"
|
||||
- name: FAQ
|
||||
type: object[]
|
||||
meta:
|
||||
label:
|
||||
de: FAQ
|
||||
en: FAQ
|
||||
subFields:
|
||||
- name: question
|
||||
type: string
|
||||
meta:
|
||||
label:
|
||||
de: Frage
|
||||
en: Question
|
||||
|
||||
- name: answer
|
||||
type: string
|
||||
meta:
|
||||
label:
|
||||
de: Antwort
|
||||
en: Answer
|
||||
inputProps:
|
||||
multiline: true
|
||||
35
api/collections/fields/contentType.yml
Normal file
35
api/collections/fields/contentType.yml
Normal file
@@ -0,0 +1,35 @@
|
||||
type: string
|
||||
name: type
|
||||
meta:
|
||||
label:
|
||||
de: Inhaltstyp
|
||||
en: Content Type
|
||||
widget: select
|
||||
defaultValue: page
|
||||
containerProps:
|
||||
layout:
|
||||
size:
|
||||
default: "col-6"
|
||||
small: "col-12"
|
||||
large: "col-6"
|
||||
choices:
|
||||
- name:
|
||||
de: Seite
|
||||
en: Page
|
||||
id: page
|
||||
|
||||
- name:
|
||||
de: Block
|
||||
en: Block
|
||||
id: block
|
||||
|
||||
- name:
|
||||
de: Helpcenter Frage
|
||||
en: Helpcenter Question
|
||||
id: helpcenterQuestion
|
||||
|
||||
- name: Blog
|
||||
id: blog
|
||||
|
||||
- name: product
|
||||
id: product
|
||||
11
api/collections/fields/emailCC.yml
Normal file
11
api/collections/fields/emailCC.yml
Normal file
@@ -0,0 +1,11 @@
|
||||
name: emailCC
|
||||
type: string[]
|
||||
meta:
|
||||
label:
|
||||
de: Email CC
|
||||
en: Email CC
|
||||
widget: string
|
||||
useDefaultArray: true
|
||||
helperText:
|
||||
de: "Bsp: zyx@gmail.com"
|
||||
en: "E.g.: zyx@gmail.com"
|
||||
40
api/collections/fields/excludedDays.yml
Normal file
40
api/collections/fields/excludedDays.yml
Normal file
@@ -0,0 +1,40 @@
|
||||
name: excludeDays
|
||||
type: string[]
|
||||
meta:
|
||||
label: Auszuschließende Wochentage
|
||||
widget: checkboxArray
|
||||
choices:
|
||||
- id: monday
|
||||
name:
|
||||
de: Montag
|
||||
en: Monday
|
||||
|
||||
- id: tuesday
|
||||
name:
|
||||
de: Dienstag
|
||||
en: Tuesday
|
||||
|
||||
- id: wednesday
|
||||
name:
|
||||
de: Mittwoch
|
||||
en: Wednesday
|
||||
|
||||
- id: thursday
|
||||
name:
|
||||
de: Donnerstag
|
||||
en: Thursday
|
||||
|
||||
- id: friday
|
||||
name:
|
||||
de: Freitag
|
||||
en: Friday
|
||||
|
||||
- id: saturday
|
||||
name:
|
||||
de: Samstag
|
||||
en: Saturday
|
||||
|
||||
- id: sunday
|
||||
name:
|
||||
de: Sonntag
|
||||
en: Sunday
|
||||
6
api/collections/fields/file.yml
Normal file
6
api/collections/fields/file.yml
Normal file
@@ -0,0 +1,6 @@
|
||||
name: file
|
||||
type: file
|
||||
meta:
|
||||
label:
|
||||
de: Datei
|
||||
en: File
|
||||
7
api/collections/fields/form.yml
Normal file
7
api/collections/fields/form.yml
Normal file
@@ -0,0 +1,7 @@
|
||||
type: object
|
||||
name: formular
|
||||
meta:
|
||||
label:
|
||||
de: Formular
|
||||
en: Form
|
||||
widget: jsonField
|
||||
13
api/collections/fields/from.yml
Normal file
13
api/collections/fields/from.yml
Normal file
@@ -0,0 +1,13 @@
|
||||
name: from
|
||||
type: date
|
||||
meta:
|
||||
label:
|
||||
de: Von
|
||||
en: From
|
||||
widget: date
|
||||
containerProps:
|
||||
layout:
|
||||
size:
|
||||
default: "col-6"
|
||||
small: "col-12"
|
||||
large: "col-6"
|
||||
0
api/collections/fields/imageTitle.yml
Normal file
0
api/collections/fields/imageTitle.yml
Normal file
11
api/collections/fields/manualSort.yml
Normal file
11
api/collections/fields/manualSort.yml
Normal file
@@ -0,0 +1,11 @@
|
||||
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.
|
||||
41
api/collections/fields/medialibCardList.yml
Normal file
41
api/collections/fields/medialibCardList.yml
Normal file
@@ -0,0 +1,41 @@
|
||||
type: cardList
|
||||
mediaQuery: "(min-width: 1200px)"
|
||||
selectionPriority: 1
|
||||
fileDropArea:
|
||||
label:
|
||||
{
|
||||
de: "Ziehen Sie Dateien per Drag and Drop hierher oder klicken Sie, um Dateien auszuwählen.",
|
||||
en: "Drag and drop some files here, or click to upload.",
|
||||
}
|
||||
helperText: { de: "Maximale Uploadgröße: 1,54 MB", en: "Maximum upload size: 1.54MB" }
|
||||
targetField: file
|
||||
pageAsDropArea: false
|
||||
|
||||
fields:
|
||||
- source: file
|
||||
name:
|
||||
de: Datei
|
||||
en: File
|
||||
filter: true
|
||||
- source: category
|
||||
name:
|
||||
de: Kategorie
|
||||
en: Category
|
||||
filter: true
|
||||
- source: tags
|
||||
name:
|
||||
de: Tags
|
||||
en: Tags
|
||||
foreign: true
|
||||
filter: true
|
||||
- source: title
|
||||
name:
|
||||
de: Titel
|
||||
en: Title
|
||||
filter: true
|
||||
- source: updateTime
|
||||
type: datetime
|
||||
label:
|
||||
de: letztes Update
|
||||
en: last update
|
||||
filter: true
|
||||
25
api/collections/fields/medialibSimpleList.yml
Normal file
25
api/collections/fields/medialibSimpleList.yml
Normal file
@@ -0,0 +1,25 @@
|
||||
type: simpleList
|
||||
mediaQuery: "(min-width: 0px)"
|
||||
defaultSelect: false
|
||||
selectionPriority: 3 #gibt an, wenn mediaQuery passt, mit welcher priorität es default mäßig ausgewählt sein soll, je niedriger, desto wichtiger
|
||||
fileDropArea:
|
||||
label:
|
||||
{
|
||||
de: "Ziehen Sie Dateien per Drag and Drop hierher oder klicken Sie, um Dateien auszuwählen.",
|
||||
en: "Drag and drop some files here, or click to upload.",
|
||||
}
|
||||
helperText: { de: "Maximale Uploadgröße: 1,54 MB", en: "Maximum upload size: 1.54MB" }
|
||||
targetField: file # gibt an, in welches feld die datei hochgeladen werden soll
|
||||
pageAsDropArea: false # wenn true, wird filedrop area garnicht erst angezeigt, da die ganze seite drag n drop funktionalität hat
|
||||
|
||||
primaryText:
|
||||
source: file
|
||||
filter: true
|
||||
|
||||
secondaryText:
|
||||
source: alt
|
||||
filter: true
|
||||
|
||||
tertiaryText:
|
||||
source: category
|
||||
filter: true
|
||||
41
api/collections/fields/medialibTable.yml
Normal file
41
api/collections/fields/medialibTable.yml
Normal file
@@ -0,0 +1,41 @@
|
||||
type: table
|
||||
mediaQuery: "(min-width: 800px)"
|
||||
defaultSelect: false
|
||||
selectionPriority: 2
|
||||
fileDropArea:
|
||||
label:
|
||||
{
|
||||
de: "Ziehen Sie Dateien per Drag and Drop hierher oder klicken Sie, um Dateien auszuwählen.",
|
||||
en: "Drag and drop some files here, or click to upload.",
|
||||
}
|
||||
helperText: { de: "Maximale Uploadgröße: 1,54 MB", en: "Maximum upload size: 1.54MB" }
|
||||
targetField: file
|
||||
pageAsDropArea: false
|
||||
columns:
|
||||
- source: file
|
||||
name:
|
||||
de: Datei
|
||||
en: File
|
||||
filter: true
|
||||
- source: category
|
||||
name:
|
||||
de: Kategorie
|
||||
en: Category
|
||||
filter: true
|
||||
- source: tags
|
||||
name:
|
||||
de: Tags
|
||||
en: Tags
|
||||
foreign: true
|
||||
filter: true
|
||||
- source: title
|
||||
name:
|
||||
de: Titel
|
||||
en: Title
|
||||
filter: true
|
||||
- source: updateTime
|
||||
type: datetime
|
||||
label:
|
||||
de: letztes Update
|
||||
en: last update
|
||||
filter: true
|
||||
10
api/collections/fields/mutliupload.yml
Normal file
10
api/collections/fields/mutliupload.yml
Normal file
@@ -0,0 +1,10 @@
|
||||
multiupload:
|
||||
fields:
|
||||
- source: category # gibt an, welche Felder in der Modalansicht bearbeitet werden können, wenn die Eigenschaft nicht festgelegt ist, werden automatisch alle Felder ausgewählt
|
||||
prefilledFields: # gibt an, welche Felder in der Modalansicht vorbefüllt werden können, wenn die Eigenschaft nicht festgelegt ist, werden automatisch alle Felder ausgewählt
|
||||
- source: title
|
||||
defaultValue: # extrahiert den namen des files und fügt ihn in das feld "title" ein
|
||||
eval: |
|
||||
(function(){
|
||||
return "Title" + $file.name
|
||||
})()
|
||||
17
api/collections/fields/pageTitle.yml
Normal file
17
api/collections/fields/pageTitle.yml
Normal file
@@ -0,0 +1,17 @@
|
||||
name: pageTitle
|
||||
type: string
|
||||
meta:
|
||||
label:
|
||||
de: Titel der Seite
|
||||
en: Page Title
|
||||
helperText:
|
||||
de: "Dieser Titel wird in der Seite als h1 angezeigt."
|
||||
en: "This title is displayed in the page as h1."
|
||||
dependsOn:
|
||||
eval: $.type == "page"
|
||||
containerProps:
|
||||
layout:
|
||||
size:
|
||||
default: "col-6"
|
||||
small: "col-12"
|
||||
large: "col-6"
|
||||
9
api/collections/fields/text.yml
Normal file
9
api/collections/fields/text.yml
Normal file
@@ -0,0 +1,9 @@
|
||||
name: text
|
||||
type: string
|
||||
meta:
|
||||
widget: richtext
|
||||
label:
|
||||
de: Text
|
||||
en: text
|
||||
dependsOn:
|
||||
eval: $parent.contentType == 'text'
|
||||
Reference in New Issue
Block a user