most of it
This commit is contained in:
@@ -8,6 +8,7 @@ meta:
|
||||
- type: table
|
||||
columns:
|
||||
- source: path
|
||||
- source: title
|
||||
tablist:
|
||||
activeTab: site
|
||||
tabs:
|
||||
@@ -15,18 +16,32 @@ meta:
|
||||
label: Allgemein
|
||||
subFields:
|
||||
- source: path
|
||||
- name: teaser
|
||||
label: Teaser
|
||||
- source: title
|
||||
|
||||
- name: lowerTeaser
|
||||
label: Unterer Teaser
|
||||
subFields:
|
||||
- source: showTeaser
|
||||
- source: teaserTitle
|
||||
- source: teaserDescription
|
||||
- source: teaserImages
|
||||
|
||||
- name: upperTeaser
|
||||
label: Oberer Teaser
|
||||
subFields:
|
||||
- source: teaser
|
||||
|
||||
- name: site
|
||||
label: content
|
||||
subFields:
|
||||
- source: row
|
||||
|
||||
- name: meta
|
||||
label: Meta
|
||||
subFields:
|
||||
- source: aktiv
|
||||
- source: meta
|
||||
|
||||
imageFilter:
|
||||
xs:
|
||||
- fit: true
|
||||
@@ -85,6 +100,11 @@ fields:
|
||||
label: Pfad
|
||||
helperText: "Ein Pfad sollte mit einem / starten und ohne eins enden."
|
||||
|
||||
- type: string
|
||||
name: title
|
||||
meta:
|
||||
label: Titel
|
||||
|
||||
- name: showTeaser
|
||||
type: boolean
|
||||
meta:
|
||||
@@ -118,5 +138,93 @@ fields:
|
||||
label: Beschreibung
|
||||
dependsOn:
|
||||
eval: $parent.showTeaser
|
||||
- name: aktiv
|
||||
type: boolean
|
||||
meta:
|
||||
label:
|
||||
de: Aktiv
|
||||
en: active
|
||||
helperText:
|
||||
de: Wenn diese Einstellung aktiviert wurde, wird diese Seite angezeigt.
|
||||
en: If this setting is activated, this page will be displayed.
|
||||
|
||||
- name: meta
|
||||
type: object
|
||||
meta:
|
||||
label:
|
||||
de: Metaangaben
|
||||
en: meta settings
|
||||
subFields:
|
||||
- name: datum
|
||||
type: date
|
||||
index: [single]
|
||||
meta:
|
||||
label: { de: "Datum", en: "date" }
|
||||
|
||||
- name: autor
|
||||
type: string
|
||||
# index: [text]
|
||||
meta:
|
||||
label:
|
||||
de: Autor
|
||||
en: author
|
||||
- name: titel
|
||||
type: string
|
||||
# index: [text]
|
||||
meta:
|
||||
label: { de: "Titel", en: "title" }
|
||||
|
||||
- name: beschreibung
|
||||
type: string
|
||||
meta:
|
||||
label:
|
||||
de: Meta-Beschreibung
|
||||
en: description
|
||||
- name: keywords
|
||||
type: string
|
||||
meta:
|
||||
label:
|
||||
de: Keywords
|
||||
en: keywords
|
||||
- name: nichtSuchbar
|
||||
type: boolean
|
||||
meta:
|
||||
label:
|
||||
de: nicht suchbar
|
||||
en: not searchable
|
||||
helperText:
|
||||
de: Wenn diese Einstellung aktiviert wurde, wird diese Seite über die interne Suche nicht gefunden, jedoch von Google indiziert.
|
||||
|
||||
- name: teaser
|
||||
type: object
|
||||
meta:
|
||||
label: Teaser
|
||||
metaElements:
|
||||
- showTeaser
|
||||
subFields:
|
||||
- name: showTeaser
|
||||
type: boolean
|
||||
meta:
|
||||
label: Anzeigen
|
||||
helperText: "Ist dies aktiviert, so wird der Teaser in der Startseite angezeigt."
|
||||
|
||||
- name: subTitle
|
||||
type: string
|
||||
meta:
|
||||
label: Untertitel
|
||||
helperText: "Dieser Untertitel wird in der Startseite angezeigt."
|
||||
|
||||
- name: teaserTitle
|
||||
type: string
|
||||
meta:
|
||||
label: Titel
|
||||
helperText: "Dieser Titel wird in der Startseite angezeigt."
|
||||
|
||||
- name: teaserDescription
|
||||
type: string
|
||||
meta:
|
||||
widget: richtext
|
||||
label: Beschreibung
|
||||
helperText: "Diese Beschreibung wird in der Startseite angezeigt."
|
||||
|
||||
- !include fields/pagebuilder.yml
|
||||
|
||||
@@ -39,35 +39,7 @@ subFields:
|
||||
folding:
|
||||
previewFolded: contentType
|
||||
previewUnfolded: contentType
|
||||
css: &cols
|
||||
input:
|
||||
wrapper: |
|
||||
& > div > div {
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
align-items: baseline;
|
||||
flex-wrap: wrap;
|
||||
padding-right: 40px;
|
||||
}
|
||||
& .add-element {
|
||||
width: 30px;
|
||||
min-height: 200px;
|
||||
|
||||
& > button {
|
||||
transform-origin: 0 0;
|
||||
transform: rotate(90deg) translateY(-100%);
|
||||
justify-content: left;
|
||||
width: 200px;
|
||||
}
|
||||
}
|
||||
element:
|
||||
eval: |
|
||||
`
|
||||
flex: 1;
|
||||
flex-grow: ${{"": 1, narrow: 0.5, medium: 1, wide: 2}[$element?.width]};
|
||||
min-width: 350px;
|
||||
height: 100%;
|
||||
`
|
||||
direction: horizontal
|
||||
subFields:
|
||||
- name: contentType
|
||||
type: string
|
||||
@@ -87,14 +59,59 @@ subFields:
|
||||
id: iconBoard
|
||||
- name: Formular
|
||||
id: form
|
||||
- name: Vieoswitch
|
||||
id: videos
|
||||
- name: Textfeld
|
||||
id: text
|
||||
- name: GoogleMaps
|
||||
id: googleMaps
|
||||
- name: Video
|
||||
id: video
|
||||
- name: Icon Informationsbrett
|
||||
id: iconInfoBoard
|
||||
- name: Boxenliste
|
||||
id: boxlist
|
||||
- name: Produkt Vorschau
|
||||
id: productPreview
|
||||
|
||||
- name: boxList
|
||||
type: object
|
||||
meta:
|
||||
label: Boxenliste
|
||||
dependsOn:
|
||||
eval: $parent.contentType == 'boxlist'
|
||||
subFields:
|
||||
- name: boxes
|
||||
type: object[]
|
||||
meta:
|
||||
label: Boxen
|
||||
subFields:
|
||||
- name: name
|
||||
type: string
|
||||
meta:
|
||||
label: Name
|
||||
|
||||
- name: iconInfoBoard
|
||||
type: object
|
||||
meta:
|
||||
label: Icon Informationsbrett
|
||||
dependsOn:
|
||||
eval: $parent.contentType == 'iconInfoBoard'
|
||||
subFields:
|
||||
- name: title
|
||||
type: string
|
||||
meta:
|
||||
label: Titel
|
||||
helperText: "Dieser Titel wird im Infobrett angezeigt."
|
||||
|
||||
- name: text
|
||||
type: string
|
||||
meta:
|
||||
widget: richtext
|
||||
label: Text
|
||||
helperText: "Dieser Text wird im Infobrett angezeigt."
|
||||
|
||||
- name: icon
|
||||
type: file
|
||||
meta:
|
||||
label: Icon
|
||||
helperText: "Das Icon wird im Infobrett angezeigt."
|
||||
|
||||
- name: imageSlider
|
||||
type: object[]
|
||||
@@ -179,21 +196,6 @@ subFields:
|
||||
previewUnfolded: titleForWork
|
||||
dependsOn:
|
||||
eval: $parent.contentType == "table"
|
||||
css:
|
||||
input:
|
||||
wrapper: |
|
||||
& .object-array-input-content{
|
||||
& .add-element {
|
||||
height: 30px;
|
||||
min-height: 0px;
|
||||
width: 100%;
|
||||
|
||||
& > button {
|
||||
transform-origin: 0 0;
|
||||
transform: rotate(0deg) translateY(0);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
subFields:
|
||||
- !include titleForWork.yml
|
||||
@@ -208,21 +210,6 @@ subFields:
|
||||
meta:
|
||||
label: Zeile
|
||||
addElementLabel: Zeile hinzufügen
|
||||
css:
|
||||
input:
|
||||
wrapper: |
|
||||
& .object-array-input-content{
|
||||
& .add-element {
|
||||
height: 30px;
|
||||
min-height: 0px;
|
||||
width: 100%;
|
||||
|
||||
& > button {
|
||||
transform-origin: 0 0;
|
||||
transform: rotate(0deg) translateY(0);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
subFields:
|
||||
- name: bold
|
||||
@@ -303,25 +290,40 @@ subFields:
|
||||
id: path
|
||||
name: path
|
||||
|
||||
- name: productPreview
|
||||
type: object[]
|
||||
meta:
|
||||
label: Produkt Vorschau
|
||||
dependsOn:
|
||||
eval: $parent.contentType == "productPreview"
|
||||
subFields:
|
||||
- name: image
|
||||
type: file
|
||||
meta:
|
||||
label: Bild
|
||||
widget: image
|
||||
|
||||
- name: title
|
||||
type: string
|
||||
meta:
|
||||
label: Titel
|
||||
|
||||
- name: text
|
||||
type: string
|
||||
meta:
|
||||
label: description
|
||||
widget: richtext
|
||||
- name: price
|
||||
type: string
|
||||
meta:
|
||||
label: Preis
|
||||
|
||||
- name: iconBoard
|
||||
type: object[]
|
||||
|
||||
meta:
|
||||
label: Icons
|
||||
css:
|
||||
input:
|
||||
wrapper: |
|
||||
& .object-array-input-content{
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
}
|
||||
element: |
|
||||
& {
|
||||
flex-grow: 1;
|
||||
min-width: 33%;
|
||||
marin-top: 0px !important;
|
||||
height: 100%;
|
||||
}
|
||||
direction: horizontal
|
||||
|
||||
dependsOn:
|
||||
eval: $parent.contentType == "iconBoard"
|
||||
@@ -336,83 +338,6 @@ subFields:
|
||||
meta:
|
||||
label: Text
|
||||
|
||||
- name: video
|
||||
type: file
|
||||
meta:
|
||||
widget: file
|
||||
dependsOn:
|
||||
eval: $parent.contentType == "video"
|
||||
|
||||
- name: titleVideo
|
||||
type: string
|
||||
meta:
|
||||
label: Titel
|
||||
dependsOn:
|
||||
eval: $parent.contentType == "video"
|
||||
|
||||
- name: descriptionVideo
|
||||
type: string
|
||||
meta:
|
||||
label: Beschreibung
|
||||
widget: richtext
|
||||
dependsOn:
|
||||
eval: $parent.contentType == "video"
|
||||
|
||||
- name: videoSwitch
|
||||
type: object[]
|
||||
validator:
|
||||
eval: |
|
||||
(function(){
|
||||
if($parent.contentType != "videos") return true;
|
||||
return $parent.videoSwitch.length == 2;
|
||||
})()
|
||||
meta:
|
||||
label: Videoswitch
|
||||
helperText: Hier sind 2 Angaben notwendig!
|
||||
dependsOn:
|
||||
eval: $parent.contentType == "videos"
|
||||
folding:
|
||||
previewFolded: titleForWork
|
||||
previewUnfolded: titleForWork
|
||||
css:
|
||||
input:
|
||||
wrapper: |
|
||||
& .object-array-input-content{
|
||||
display: flex;
|
||||
width: 100%;
|
||||
}
|
||||
element: |
|
||||
& {
|
||||
flex-grow: 1;
|
||||
margin-top: 0px !important;
|
||||
height: 100%;
|
||||
}
|
||||
subFields:
|
||||
- name: video
|
||||
type: file
|
||||
meta:
|
||||
widget: file
|
||||
- !include titleForWork.yml
|
||||
- name: title
|
||||
type: string
|
||||
meta:
|
||||
label: Titel
|
||||
- name: description
|
||||
type: string
|
||||
meta:
|
||||
widget: richtext
|
||||
label: Beschreibung
|
||||
- name: link
|
||||
type: string
|
||||
meta:
|
||||
label: link
|
||||
widget: select
|
||||
choices:
|
||||
endpoint: content
|
||||
mapping:
|
||||
id: path
|
||||
name: path
|
||||
|
||||
- name: formEmailTitle
|
||||
type: string
|
||||
meta:
|
||||
@@ -442,7 +367,7 @@ subFields:
|
||||
folding:
|
||||
previewFolded: titleForWork
|
||||
previewUnfolded: titleForWork
|
||||
css: *cols
|
||||
direction: horizontal
|
||||
subFields:
|
||||
- !include titleForWork.yml
|
||||
|
||||
@@ -503,22 +428,7 @@ subFields:
|
||||
helperText: "Die Angaben werden in folgendes Übersetzt: Anfangspunkt - Endpunkt"
|
||||
dependsOn:
|
||||
eval: $parent?.showTimes
|
||||
css: ×Css
|
||||
input:
|
||||
wrapper: |
|
||||
& .object-array-input-content {
|
||||
.add-element{
|
||||
transform-origin: right;
|
||||
margin-left: 80px;
|
||||
transform: rotate(-90deg);
|
||||
}
|
||||
.object .sliceFields{
|
||||
display: flex;
|
||||
.field-input-wrapper{
|
||||
width: 50%;
|
||||
}
|
||||
}
|
||||
}
|
||||
direction: horizontal
|
||||
|
||||
subFields:
|
||||
- name: timeFrom
|
||||
@@ -581,7 +491,7 @@ subFields:
|
||||
helperText: "Die Angaben werden in folgendes Übersetzt: Anfangspunkt - Endpunkt"
|
||||
dependsOn:
|
||||
eval: $parent.showSelect
|
||||
css: *timesCss
|
||||
direction: horizontal
|
||||
|
||||
subFields:
|
||||
- name: leftSide
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
namespace: wasserski_erfurt
|
||||
namespace: allkids_erfurt
|
||||
|
||||
meta:
|
||||
openapi:
|
||||
|
||||
@@ -48,9 +48,9 @@ var config = require("../config")
|
||||
|
||||
delete tempForm[undefined]
|
||||
context.smtp.sendMail({
|
||||
to: "info@wasserski-erfurt.de",
|
||||
to: "binkrassdufass@gmail.com",
|
||||
from: "mail@webmakers.de",
|
||||
subject: "Wasserski " + formTitle,
|
||||
subject: "AllKids " + formTitle,
|
||||
html: context.tpl.execute(context.fs.readFile("templates/form_mail.html"), {
|
||||
context: context,
|
||||
formularRows: Object.entries(tempForm),
|
||||
|
||||
@@ -34,7 +34,7 @@
|
||||
</head>
|
||||
<body>
|
||||
<div class="container">
|
||||
<h2>Hallo Wasserskianlage Erfurt,</h2>
|
||||
<h2>Hallo Allkids,</h2>
|
||||
<p>Sie haben eine neue {{formTitle}} erhalten! Hier sind die Details der Anfrage:</p>
|
||||
|
||||
{% for row in formularRows %}
|
||||
|
||||
Reference in New Issue
Block a user