diff --git a/api/collections/democol.yml b/api/collections/democol.yml
index 5e195dd..981e66f 100644
--- a/api/collections/democol.yml
+++ b/api/collections/democol.yml
@@ -21,15 +21,26 @@ fields:
- !include fields/date.yml
- !include fields/content.yml
- !include fields/info.yml
+ - !include fields/isEmployed.yml
+ - !include fields/profilePic.yml
+ - !include fields/skills.yml
+ - !include fields/supervisor.yml
+ - !include fields/tags.yml
+ - !include fields/gender.yml
+ - !include fields/emplymentDetails.yml
+ - !include fields/description.yml
+ - !include fields/age.yml
+ - !include fields/additionalData.yml
# Neben der Definition der Indexe innerhalbd des Feld-Objektes selbst,
+
# ist die Index-Definition global für die Kollektion auch hier möglich.
# Diese Definition ist z.B. für zusammengesetzte Index-Typen notwendig.
# Außerdem sind hier feinere Einstellungen für den Index möglich.
# Mehr dazu im "indexes" Kapitel
-# indexes:
- # - !include democol/textindex.yml
+# indexes:
+# - !include democol/textindex.yml
# Standardsprache für Text-Index in der Datenbank
defaultLanguage: de
@@ -212,4 +223,4 @@ imageFilter: !include democol/imageFilter.yml
# "meta" Objekt möglich und nötig für die Konfiguration des
# tibi-admin.
# Mögliche Angaben werden im seperaten Kapitel behandelt.
-meta: !include democol/meta.yml
\ No newline at end of file
+meta: !include democol/meta.yml
diff --git a/api/collections/democol/tablist.yml b/api/collections/democol/tablist.yml
index 541e8e6..0af052c 100644
--- a/api/collections/democol/tablist.yml
+++ b/api/collections/democol/tablist.yml
@@ -17,6 +17,16 @@ tabs:
- source: type
- source: title
- source: date
+ - source: additionalData
+ - source: age
+ - source: description
+ - source: paymentValues
+ - source: gender
+ - source: isEmployed
+ - source: profilePic
+ - source: skills
+ - source: supervisor
+ - source: tags
- name: content
label:
de: Inhalt
diff --git a/api/collections/fields/additionalData.yml b/api/collections/fields/additionalData.yml
new file mode 100644
index 0000000..b1c6372
--- /dev/null
+++ b/api/collections/fields/additionalData.yml
@@ -0,0 +1,5 @@
+name: additionalData # Name des Eingabefelds.
+type: object # Datentyp des Eingabefelds.
+meta:
+ label: { de: "Zusätzliche Daten", en: "Additional Data" } # Feldlabel.
+ widget: jsonField # Verwendetes Widget.
diff --git a/api/collections/fields/age.yml b/api/collections/fields/age.yml
new file mode 100644
index 0000000..3833e92
--- /dev/null
+++ b/api/collections/fields/age.yml
@@ -0,0 +1,5 @@
+name: age # Name des Eingabefelds.
+type: int # Datentyp des Eingabefelds.
+meta:
+ label: { de: "Alter", en: "Age" } # Feldlabel.
+ widget: number # Verwendetes Widget.
diff --git a/api/collections/fields/description.yml b/api/collections/fields/description.yml
new file mode 100644
index 0000000..7a02cc1
--- /dev/null
+++ b/api/collections/fields/description.yml
@@ -0,0 +1,5 @@
+name: description # Name des Eingabefelds.
+type: string # Datentyp des Eingabefelds.
+meta:
+ label: { de: "Beschreibung", en: "Description" } # Feldlabel.
+ widget: richtext # Verwendetes Widget.
diff --git a/api/collections/fields/emplymentDetails.yml b/api/collections/fields/emplymentDetails.yml
new file mode 100644
index 0000000..1bbf627
--- /dev/null
+++ b/api/collections/fields/emplymentDetails.yml
@@ -0,0 +1,32 @@
+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.
diff --git a/api/collections/fields/gender.yml b/api/collections/fields/gender.yml
new file mode 100644
index 0000000..1b4bcf7
--- /dev/null
+++ b/api/collections/fields/gender.yml
@@ -0,0 +1,23 @@
+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
diff --git a/api/collections/fields/isEmployed.yml b/api/collections/fields/isEmployed.yml
new file mode 100644
index 0000000..5ab7d57
--- /dev/null
+++ b/api/collections/fields/isEmployed.yml
@@ -0,0 +1,5 @@
+name: isEmployed # Name des Eingabefelds.
+type: boolean # Datentyp des Eingabefelds.
+meta:
+ label: { de: "Angestellt?", en: "Employed?" } # Feldlabel.
+ widget: checkbox # Verwendetes Widget.
diff --git a/api/collections/fields/profilePic.yml b/api/collections/fields/profilePic.yml
new file mode 100644
index 0000000..a01f274
--- /dev/null
+++ b/api/collections/fields/profilePic.yml
@@ -0,0 +1,5 @@
+name: profilePic # Name des Eingabefelds.
+type: file # Datentyp des Eingabefelds.
+meta:
+ label: { de: "Profilbild", en: "Profile Picture" } # Feldlabel.
+ widget: file # Verwendetes Widget.
diff --git a/api/collections/fields/skills.yml b/api/collections/fields/skills.yml
new file mode 100644
index 0000000..c907bac
--- /dev/null
+++ b/api/collections/fields/skills.yml
@@ -0,0 +1,10 @@
+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.
diff --git a/api/collections/fields/supervisor.yml b/api/collections/fields/supervisor.yml
new file mode 100644
index 0000000..914e52f
--- /dev/null
+++ b/api/collections/fields/supervisor.yml
@@ -0,0 +1,19 @@
+name: supervisor # Name des Eingabefelds.
+type: string # Datentyp des Eingabefelds.
+meta:
+ label: { de: "Vorgesetzter", en: "Supervisor" } # 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:
+ raw: true
+ eval: |
+ (function() {
+ var out = "";
+ out += "
" + $foreignEntry.title + "
";
+ return out;
+ })()
diff --git a/api/collections/fields/tags.yml b/api/collections/fields/tags.yml
new file mode 100644
index 0000000..98be69f
--- /dev/null
+++ b/api/collections/fields/tags.yml
@@ -0,0 +1,11 @@
+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.
diff --git a/api/collections/fields/title.yml b/api/collections/fields/title.yml
index cc96fed..10d9c17 100644
--- a/api/collections/fields/title.yml
+++ b/api/collections/fields/title.yml
@@ -4,5 +4,8 @@ meta:
label:
de: Titel
en: Title
+ inputProps:
+ multiline: true
+ placeholder: Ihr Titel
openapi:
example: Demo Titel
diff --git a/api/collections/medialib.yml b/api/collections/medialib.yml
index be7af3b..bf44bd0 100644
--- a/api/collections/medialib.yml
+++ b/api/collections/medialib.yml
@@ -96,8 +96,24 @@ meta:
(entry) => {
parent.selectAsset("medialib/" + entry.id + "/" + entry.file?.src + "?filter=l")
parent.focus()
+ }s
+ //!js
+
+ - name: modalForeign # Name des Eingabefelds oder der Ansicht.
+ defaultSort: # Standard-Sortierkriterien, die angewendet werden, wenn keine anderen Sortierkriterien spezifiziert sind.
+ field: "path" # Standardmäßig wird nach dem "path"-Feld sortiert.
+ order: "ASC" # Standardmäßig wird in aufsteigender Reihenfolge (ASC) sortiert.
+ views: # Liste der Ansichten, die in diesem Feld angezeigt werden können.
+ - type: table # Es wird eine Tabellenansicht verwendet.
+ columns: # Liste der Spalten, die in der Tabelle angezeigt werden.
+ - path # Es wird nur die Spalte "path" angezeigt.
+ defaultCallback: # Standard-Callback-Funktion, die ausgeführt wird, wenn keine andere spezifiziert ist.
+ eval: | # Der Code wird als JavaScript evaluiert.
+ //js
+ (entry) => { // Diese Funktion nimmt den Eintrag (entry) als Argument.
+ parent.selectEntry(entry) // Die Funktion selectEntry auf dem übergeordneten Objekt wird mit dem Eintrag als Argument aufgerufen.
}
//!js
openapi:
- disabled: true
\ No newline at end of file
+ disabled: true
diff --git a/docs/md/projektkonfig/collections/fields/widgets.md b/docs/md/projektkonfig/collections/fields/widgets.md
index 232be14..267d758 100644
--- a/docs/md/projektkonfig/collections/fields/widgets.md
+++ b/docs/md/projektkonfig/collections/fields/widgets.md
@@ -7,171 +7,72 @@ Es ist zu beachten, dass nicht jedes Widget für jeden Datentyp geeignet ist. Im
## Texteingabefeld-Widgets: string / text / input
Diese Bezeichnungen stehen alle für dasselbe Widget. Es handelt sich hierbei um ein Texteingabefeld. Dieses Widget wird für den Datentyp String verwendet. Sollte ein größeres Textfeld (Textarea) anstatt eines einfachen Eingabefeldes (Input) gewünscht sein, so kann dies erreicht werden, indem das Attribut multiline im inputProps Objekt auf true gesetzt wird.
-
-```yaml
-- name: firstname
- type: string
- meta:
- label: { de: "Vorname", en: "firstname" }
- inputProps:
- multiline: true
-```
+!!!include(../api/collections/fields/title.yml)!!!
## Numerische Eingabefeld-Widgets: number / int / integer / float / double
Diese unterschiedlichen Bezeichnungen stehen alle für dasselbe Widget. Hierbei handelt es sich um ein Eingabefeld für Zahlen. Es wird für den Datentyp Number verwendet.
+!!!include(../api/collections/fields/age.yml)!!!
## Auswahl-Widgets: boolean / bool / check / switch / checkbox
Diese verschiedenen Bezeichnungen repräsentieren dasselbe Widget. Dieses Widget wird in Form einer Auswahlbox (Checkbox) dargestellt und wird für den Datentyp Boolean verwendet.
+!!!include(../api/collections/fields/isEmployed.yml)!!!
## Auswahl-Widgets für mehrere Optionen: select / selectArray
Diese beiden Widgets sind im Prinzip das Gleiche, nur mit unterschiedlichen Namen. Intern wird die Unterscheidung zwischen Mehrfachauswahl (