generated from cms/tibi-docs
backend & types
This commit is contained in:
@@ -1,5 +0,0 @@
|
||||
name: additionalData # Name des Eingabefelds.
|
||||
type: object # Datentyp des Eingabefelds.
|
||||
meta:
|
||||
label: { de: "Zusätzliche Daten", en: "Additional Data" } # Feldlabel.
|
||||
widget: jsonField # Verwendetes Widget.
|
||||
@@ -1,5 +0,0 @@
|
||||
name: age # Name des Eingabefelds.
|
||||
type: int # Datentyp des Eingabefelds.
|
||||
meta:
|
||||
label: { de: "Alter", en: "Age" } # Feldlabel.
|
||||
widget: number # Verwendetes Widget.
|
||||
@@ -1,117 +0,0 @@
|
||||
# Der Name des Feldes ist natürlich beliebig wählbar.
|
||||
name: content
|
||||
|
||||
# "string" als Datentyp ist zwingend.
|
||||
type: string
|
||||
|
||||
meta:
|
||||
label:
|
||||
de: Inhalt
|
||||
en: content
|
||||
|
||||
# Die Bezeichnung des ContentBuilder-Widgets ist "contentbuilder".
|
||||
widget: contentbuilder
|
||||
|
||||
# Die Anzeige des ContentBuilder im tibi-admin geschieht innerhalb
|
||||
# eines iframes. Das ist notwendig, da der ContentBuilder eigene
|
||||
# Styles mitbringet, die sich nicht mit den Styles des tibi-admin
|
||||
# vermischen sollten.
|
||||
|
||||
# Via "baseHref" wird der <base>-Tag im iframe gesetzt.
|
||||
# somit können alle relativen Pfade im ContentBuilder (z.B. Bilder)
|
||||
# aufgelöst werden.
|
||||
# Wie man hier sieht, ist die Angabe via "eval" mittels möglich.
|
||||
# Der Kontext ist auf Feldebene, wie bei "dependsOn" und "defaultValue".
|
||||
# Alternativ kann die Angabe auch direkt als String erfolgend.
|
||||
# Dann natürlich ohne die Evaluierung der Variable "$projectBase", wie hier.
|
||||
baseHref:
|
||||
eval: $projectBase
|
||||
|
||||
# Sollen weitere CSS-Datei in das iframe geladen werden, können diese
|
||||
# hier aufgelistet werden.
|
||||
# Die Angabe kann direkt als Array erfolgen oder via "eval", dessen
|
||||
# Code das Array der Strings mit den Dateipfaden zurückgibt.
|
||||
# Auch zu beachten ist hier die relative Angabe. Da "baseHref" gesetzt
|
||||
# ist, wird der Pfad relativ zu dieser Projekt-Basis innerhalb des
|
||||
# tibi-server aufgelöst.
|
||||
# Die Auslieferung der CSS-Dateien direkt über den tibi-server kann
|
||||
# nur funktionieren, wenn "_dist_" in der "assets" Konfiguration der
|
||||
# "config.yml" definiert ist.
|
||||
cssHref:
|
||||
- _/assets/_dist_/index.css
|
||||
|
||||
# Um eine Kollektion stellvertretend als Mediathek anzubinden, sind die
|
||||
# Angaben unter "imageSelect", "fileSelect" und "videoSelect" zu tätigen.
|
||||
# "imageSelect" betrifft die Einbindung von Bildern, "fileSelect" die
|
||||
# Einbindung von Dateien, "videoSelect" die Einbindung von Videos.
|
||||
imageSelect:
|
||||
|
||||
# Die Angabe "collection" ist zwingend. Hier wird die Kollektion
|
||||
# definiert, die als Sammlung für die Bilder/Datei dient.
|
||||
# Der Aufbau der Kollektion ist dabei frei, solange ein Upload-Feld
|
||||
# für die Dateien existiert, welches die URL zur Datei zurückgibt.
|
||||
collection: medialib
|
||||
|
||||
# Optional kann ein Filter und View für die Einbindung der Bilder/Dateien
|
||||
# definiert werden. Dies geschieht über einen "subNavigation"
|
||||
# Eintrag innerhalb des "meta.subNavigation" Arrays, der Kollektion
|
||||
# (hier bei "medialib").
|
||||
# Die Angabe hier ist die auszuwählende Navigation per Index des Arrays.
|
||||
subNavigation: 0
|
||||
|
||||
fileSelect:
|
||||
collection: medialib
|
||||
subNavigation: 0
|
||||
videoSelect:
|
||||
collection: medialib
|
||||
subNavigation: 0
|
||||
|
||||
# "customTags" des ContentBuilder können verwendet werden um die Einbindung
|
||||
# von Modulen ins HTML zu ermöglichen.
|
||||
# Die folgende Auflistung ist dabei ein Beispiel für ein Modul.
|
||||
customTags:
|
||||
|
||||
- # Der Platzhalter wird 1:1 ins HTML übernommen und ist dabei frei
|
||||
# definierbar.
|
||||
# Die eigentliche Funktion eines Modul-Systems muss dann später
|
||||
# im Frontend implementiert werden.
|
||||
placeholder: "<my-module class='tibi-module' title='Titel' description='Beschreibung'>Mein Modul</my-module>"
|
||||
|
||||
# Die Benennung für die UI des ContentBuilder geschieht über die
|
||||
# "label" Angabe, die mehrsprachig erfolgen kann.
|
||||
label:
|
||||
de: "Mein Modul"
|
||||
en: "My Module"
|
||||
|
||||
# Um direkt Style-Angaben in das iframe des ContentBuilder zu übernehmen,
|
||||
# werden diese hier angegeben.
|
||||
# Natürlich ist auch hier wieder die Angabe via "eval" möglich.
|
||||
# Nachfolgendes Beispiel erzeugt im ContentBuilder eine deutliche Darstellung
|
||||
# des eingebundenen Moduls.
|
||||
style: |
|
||||
/*css*/
|
||||
.is-builder {
|
||||
max-width: 1200px;
|
||||
margin: 0 auto;
|
||||
}
|
||||
.tibi-module {
|
||||
padding: 10px;
|
||||
border: 3px dashed #c4c4c4;
|
||||
display: block;
|
||||
text-align: center;
|
||||
font-size: 14px;
|
||||
color: black;
|
||||
}
|
||||
.tibi-module::before {
|
||||
content: "\1F5BD ";
|
||||
font-size: 16px;
|
||||
color: black;
|
||||
}
|
||||
.tibi-module::after {
|
||||
content: " title=\"" attr(title) "\" description=\"" attr(description) "\"";
|
||||
font-size: 10px;
|
||||
color: #555;
|
||||
display: block;
|
||||
padding-top: 5px;
|
||||
}
|
||||
/*!css*/
|
||||
@@ -1,57 +0,0 @@
|
||||
# Der Name des Feldes wird in der Datenbank zum Objekt ebenso
|
||||
# wie in der Ein- und Ausgabe über die API verwendet.
|
||||
name: date
|
||||
|
||||
# Über "type" wird der Datentyp in der Datenbank festgelegt.
|
||||
# Mögliche Typen sind weiter unten aufgelistet.
|
||||
type: date
|
||||
|
||||
# Direkt am Feld kann eine Index-Definition erfolgen.
|
||||
# Folgende mögliche Werte können ihn die Liste aufgenommen werden:
|
||||
# "single" - Standard-Index für diese Feld
|
||||
# "unique" - Das Feld muss einen eindeutigen Wert haben
|
||||
# "text" - Alle "text"-Indexanganben aller Felder werden zu einem
|
||||
# gemeinsamen Volltext-Index kombiniert
|
||||
#
|
||||
# Die Angabe des Volltextindex ist besser unter "collections.X.indexes"
|
||||
# vorzunehmen.
|
||||
index:
|
||||
- single
|
||||
|
||||
# Jede Datenübertragung an des Server wird validiert, d.h. es werden
|
||||
# keine Datentypen angenommen, die nicht zu "type" passen.
|
||||
# Darüber hinaus kann via "validator" eine zusätzliche Validierung
|
||||
# vorgenommen werden.
|
||||
# Dazu gibt es ein extra Kapitel.
|
||||
validator:
|
||||
required: true
|
||||
eval: new Date($this) > new Date()
|
||||
|
||||
# Und natürlich gibt es auch hier ein "meta" Objekt zur Steuerung
|
||||
# des tibi-admin.
|
||||
meta:
|
||||
# Das "label" des Feldes wird als Label vor dem Widget verwendet.
|
||||
label:
|
||||
de: Titel
|
||||
en: title
|
||||
|
||||
# Abgelkeitet vom "type" gibt es Standard-Widgets. für spezielle
|
||||
# Aufgaben stehen aber eine Hand voll Widgets bereit, die später
|
||||
# beschrieben werden.
|
||||
widget: date
|
||||
|
||||
# Standardwerte für neue Enträge können entweder direkt angegeben
|
||||
# werden oder via Javascript client-seitig generiert werden.
|
||||
# In den Kontext injizierte Variablen werden später beschrieben.
|
||||
defaultValue:
|
||||
# Das Ergebnis von "eval" wird hier als Standardwert verwendet.
|
||||
# (hier das aktuelle Datum)
|
||||
eval: new Date()
|
||||
|
||||
# Sollen Felder abhängig von bestimmten Bedingungen ein- oder
|
||||
# ausgeblendet werden, geschieht das über Anweisungen in "dependsOn".
|
||||
dependsOn:
|
||||
# Das Feld wird nur eingeblendet wenn der Wert von "type"
|
||||
# (auf gleicher Ebene wie das Feld "date" selbst)
|
||||
# gleich "news" ist.
|
||||
eval: $parent?.type == "news"
|
||||
@@ -1,5 +0,0 @@
|
||||
name: description # Name des Eingabefelds.
|
||||
type: string # Datentyp des Eingabefelds.
|
||||
meta:
|
||||
label: { de: "Beschreibung", en: "Description" } # Feldlabel.
|
||||
widget: richtext # Verwendetes Widget.
|
||||
@@ -1,60 +0,0 @@
|
||||
name: paymentValueObj
|
||||
type: object[]
|
||||
meta:
|
||||
label: Zeilen
|
||||
widget: grid
|
||||
metaElements:
|
||||
- test1
|
||||
- test2
|
||||
direction: vertical
|
||||
pathStep: #widget spezifisch, gibt dem objekt einen namen und ein zugehöriges icon, Zeilen und spalten sind hier bereits default (Oberste Objekt zeile verschachtelte objekt spalte mit zugehörigen icons)
|
||||
title: "Zeile"
|
||||
icon: viewSequentialOutline
|
||||
folding:
|
||||
previewFolded:
|
||||
eval: $this.test
|
||||
previewUnfolded:
|
||||
eval: $this.test
|
||||
subFields:
|
||||
- name: test
|
||||
type: string
|
||||
meta:
|
||||
label: test1
|
||||
- name: test2
|
||||
type: string
|
||||
meta:
|
||||
label: test2
|
||||
- name: paymentValue
|
||||
type: number
|
||||
meta:
|
||||
label: Überweisungswert1
|
||||
- name: paymentValuee
|
||||
type: number
|
||||
meta:
|
||||
label: Überweisungswert2
|
||||
- name: paymentValueObj2
|
||||
type: object[]
|
||||
meta:
|
||||
label: Spalten
|
||||
direction: horizontal
|
||||
widget: grid
|
||||
metaElements:
|
||||
- test1
|
||||
- test2
|
||||
subFields:
|
||||
- name: test
|
||||
type: string
|
||||
meta:
|
||||
label: test1
|
||||
- name: test2
|
||||
type: string
|
||||
meta:
|
||||
label: test2
|
||||
- name: paymentValue
|
||||
type: number
|
||||
meta:
|
||||
label: Überweisungswert1
|
||||
- name: paymentValuee
|
||||
type: number
|
||||
meta:
|
||||
label: Überweisungswert2
|
||||
@@ -1,32 +0,0 @@
|
||||
name: paymentValues # Name des Eingabefelds.
|
||||
type: object # Datentyp des Eingabefelds, in diesem Fall ein Objekt.
|
||||
meta:
|
||||
label: "Überweisungswerte" # Feldlabel.
|
||||
widget: tabs # Verwendetes Widget. Die tabs Widget wird zur Organisation von komplexen Eingaben in Tab-Form verwendet.
|
||||
subFields: # Liste der Unterfelder für jedes Tab.
|
||||
- name: paymentValueObj # Name des Eingabefelds für das erste Tab.
|
||||
type: object[] # Datentyp des Eingabefelds, in diesem Fall ein Array von Objekten.
|
||||
meta:
|
||||
label: Überweisungswerte1 # Tab-Label.
|
||||
subFields: # Liste der Unterfelder für das Tab.
|
||||
- name: paymentValue # Name des ersten Eingabefelds in diesem Tab.
|
||||
type: number # Datentyp des Eingabefelds.
|
||||
meta:
|
||||
label: Überweisungswert1 # Feldlabel.
|
||||
- name: paymentValuee # Name des zweiten Eingabefelds in diesem Tab.
|
||||
type: number # Datentyp des Eingabefelds.
|
||||
meta:
|
||||
label: Überweisungswert2 # Feldlabel.
|
||||
- name: paymentValueObj2 # Name des Eingabefelds für das zweite Tab.
|
||||
type: object[] # Datentyp des Eingabefelds, in diesem Fall ein Array von Objekten.
|
||||
meta:
|
||||
label: Überweisungswerte2 # Tab-Label.
|
||||
subFields: # Liste der Unterfelder für das Tab.
|
||||
- name: paymentValue # Name des ersten Eingabefelds in diesem Tab.
|
||||
type: number # Datentyp des Eingabefelds.
|
||||
meta:
|
||||
label: Überweisungswert1 # Feldlabel.
|
||||
- name: paymentValuee # Name des zweiten Eingabefelds in diesem Tab.
|
||||
type: number # Datentyp des Eingabefelds.
|
||||
meta:
|
||||
label: Überweisungswert2 # Feldlabel.
|
||||
@@ -1,23 +0,0 @@
|
||||
name: gender # Name des Eingabefelds.
|
||||
type: string # Datentyp des Eingabefelds.
|
||||
meta:
|
||||
label: { de: "Geschlecht", en: "Gender" } # Feldlabel.
|
||||
widget: select # Verwendetes Widget.
|
||||
choices: # Auswahlmöglichkeiten.
|
||||
- name: "männlich" # Anzeigename der Auswahl.
|
||||
id: "male" # Wert der Auswahl.
|
||||
- name: "weiblich" # Anzeigename der Auswahl.
|
||||
id: "female" # Wert der Auswahl.
|
||||
chipStyle:
|
||||
backgroundImage: "linear-gradient(black 33.3%, red 33.3%, red 66.6%, gold 66.6%);"
|
||||
color: white
|
||||
textShadow: 0px 0px 4px black
|
||||
#alternative:
|
||||
#choices:
|
||||
#DEPRECATED - FOREIGNKEY STATTDESSEN!
|
||||
#endpoint: content
|
||||
#params:
|
||||
#sort:
|
||||
#mapping:
|
||||
#id: id
|
||||
#name: path
|
||||
@@ -1,20 +0,0 @@
|
||||
name: image # Name des Eingabefelds.
|
||||
type: string # Datentyp des Eingabefelds.
|
||||
meta:
|
||||
label: { de: "Bild", en: "Image" } # Feldlabel.
|
||||
widget: foreignKey # Verwendetes Widget.
|
||||
foreign:
|
||||
collection: medialib # Name der Sammlung, in der die ausgewählten Daten gespeichert sind.
|
||||
id: id # Feldname, das als eindeutige Kennung für die ausgewählten Daten verwendet wird.
|
||||
subNavigation: 1 # Bestimmt, welche Navigation für die Auswahl der ausgewählten Daten angezeigt wird.
|
||||
#projection: xyz
|
||||
#sort: "title"
|
||||
render:
|
||||
#alternativ zu raw und eval kann hier auch das attribut "defaultCollectionViews" auf true gesetzt werden, dabei werden dann die ausgewählten elemente in der in collection definierten collectionview angezeigt.
|
||||
raw: true
|
||||
eval: |
|
||||
(function() {
|
||||
var out = "";
|
||||
out += "<div style=\"color: #999;\">" + $foreignEntry.title + "</div>";
|
||||
return out;
|
||||
})()
|
||||
@@ -1,51 +0,0 @@
|
||||
name: info
|
||||
type: object
|
||||
meta:
|
||||
label:
|
||||
de: Info
|
||||
en: Info
|
||||
direction: horizontal # vertical oder horizontal
|
||||
metaElements: # macht bestimmte Widgets im Zahnrad verfügbar und entfernt sie aus dem drop down
|
||||
# alternaitv wären auch diese Angabenformen anstatt von tablist möglich:
|
||||
#- author
|
||||
#- source: author
|
||||
tablist: # macht im Modal eine tabliste
|
||||
tabs:
|
||||
- name: authorInfos
|
||||
label: Autorkram
|
||||
subFields:
|
||||
- source: author
|
||||
- name: publishingInfos
|
||||
label: Veröffentlichungskram
|
||||
subFields:
|
||||
- source: published
|
||||
subFields:
|
||||
- name: author
|
||||
type: string
|
||||
meta:
|
||||
label:
|
||||
de: Autor
|
||||
en: Author
|
||||
- name: published
|
||||
type: date
|
||||
meta:
|
||||
label: Veröffentlicht
|
||||
- name: tags
|
||||
type: object[]
|
||||
meta:
|
||||
label:
|
||||
de: Tags
|
||||
en: Tags
|
||||
subFields:
|
||||
- name: name
|
||||
type: string
|
||||
meta:
|
||||
label:
|
||||
de: Name
|
||||
en: Name
|
||||
- name: color
|
||||
type: string
|
||||
meta:
|
||||
label:
|
||||
de: Farbe
|
||||
en: Color
|
||||
@@ -1,5 +0,0 @@
|
||||
name: isEmployed # Name des Eingabefelds.
|
||||
type: boolean # Datentyp des Eingabefelds.
|
||||
meta:
|
||||
label: { de: "Angestellt?", en: "Employed?" } # Feldlabel.
|
||||
widget: checkbox # Verwendetes Widget.
|
||||
@@ -1,5 +0,0 @@
|
||||
name: profilePic # Name des Eingabefelds.
|
||||
type: file # Datentyp des Eingabefelds.
|
||||
meta:
|
||||
label: { de: "Profilbild", en: "Profile Picture" } # Feldlabel.
|
||||
widget: file # Verwendetes Widget.
|
||||
@@ -1,10 +0,0 @@
|
||||
name: skills # Name des Eingabefelds.
|
||||
type: string[] # Datentyp des Eingabefelds.
|
||||
meta:
|
||||
label: { de: "Fähigkeiten", en: "Skills" } # Feldlabel.
|
||||
widget: checkboxArray # Verwendetes Widget.
|
||||
choices: # Auswahlmöglichkeiten.
|
||||
- name: "Kochen" # Anzeigename der Auswahl.
|
||||
id: "cooking" # Wert der Auswahl.
|
||||
- name: "Backen" # Anzeigename der Auswahl.
|
||||
id: "baking" # Wert der Auswahl.
|
||||
@@ -1,11 +0,0 @@
|
||||
name: tags # Name des Eingabefelds.
|
||||
type: string[] # Datentyp des Eingabefelds.
|
||||
meta:
|
||||
label: { de: "Tags", en: "Tags" } # Feldlabel.
|
||||
widget: chipArray # Verwendetes Widget.
|
||||
choices: # Auswahlmöglichkeiten.
|
||||
- name: "Tech" # Anzeigename der Auswahl.
|
||||
id: "tech" # Wert der Auswahl.
|
||||
- name: "Wissenschaft" # Anzeigename der Auswahl.
|
||||
id: "science" # Wert der Auswahl.
|
||||
autocomplete: true # Option für Autovervollständigung.
|
||||
@@ -1,11 +0,0 @@
|
||||
name: title
|
||||
type: string
|
||||
meta:
|
||||
label:
|
||||
de: Titel
|
||||
en: Title
|
||||
inputProps:
|
||||
multiline: true
|
||||
placeholder: Ihr Titel
|
||||
openapi:
|
||||
example: Demo Titel
|
||||
@@ -1,16 +0,0 @@
|
||||
name: type
|
||||
type: string
|
||||
meta:
|
||||
label:
|
||||
de: Typ
|
||||
en: Type
|
||||
widget: select
|
||||
choices:
|
||||
- name:
|
||||
de: Standardseite
|
||||
en: Standard page
|
||||
id: page
|
||||
- name:
|
||||
de: News
|
||||
en: News
|
||||
id: news
|
||||
Reference in New Issue
Block a user