Initial commit

This commit is contained in:
2025-10-02 08:54:03 +02:00
commit ea54638227
1642 changed files with 53677 additions and 0 deletions

View 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"

View File

@@ -0,0 +1,3 @@
backup:
active: true # sollen backups beim verändern erstellt werden
collectionName: backups # in welcher collection es gespeichert werden soll

View 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

View 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 ?
" &nbsp; &nbsp; <small>Blocktyp: " +
{
"columns": "Spalten",
"predefinedBlock": "Vordefinierter Block",
}[$this.type] +
"</small>" :
"") +
($this.anchorId ?
" &nbsp; &nbsp; <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

View 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

View File

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

View 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

View 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

View 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

View File

@@ -0,0 +1,7 @@
name: form
type: object
meta:
widget: containerLessObject
dependsOn:
eval: $parent.type == 'form'
subFields: !include ../../fieldLists/formular/form.yml

View 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
})()

View 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

View 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

View File

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

View 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

View 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

View 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

View 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"

View 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

View File

@@ -0,0 +1,6 @@
name: file
type: file
meta:
label:
de: Datei
en: File

View File

@@ -0,0 +1,7 @@
type: object
name: formular
meta:
label:
de: Formular
en: Form
widget: jsonField

View 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"

View File

View 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.

View 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

View 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

View 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

View 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
})()

View 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"

View File

@@ -0,0 +1,9 @@
name: text
type: string
meta:
widget: richtext
label:
de: Text
en: text
dependsOn:
eval: $parent.contentType == 'text'