diff --git a/.yarn/cache/@floating-ui-core-npm-1.6.0-47cc2a9b3a-2e25c53b0c.zip b/.yarn/cache/@floating-ui-core-npm-1.6.0-47cc2a9b3a-2e25c53b0c.zip new file mode 100644 index 0000000..b09fec3 Binary files /dev/null and b/.yarn/cache/@floating-ui-core-npm-1.6.0-47cc2a9b3a-2e25c53b0c.zip differ diff --git a/.yarn/cache/@floating-ui-dom-npm-1.6.1-55a222b4ad-5565e4dee6.zip b/.yarn/cache/@floating-ui-dom-npm-1.6.1-55a222b4ad-5565e4dee6.zip new file mode 100644 index 0000000..92dbf6b Binary files /dev/null and b/.yarn/cache/@floating-ui-dom-npm-1.6.1-55a222b4ad-5565e4dee6.zip differ diff --git a/.yarn/cache/@floating-ui-utils-npm-0.2.1-5ad70234fc-9ed4380653.zip b/.yarn/cache/@floating-ui-utils-npm-0.2.1-5ad70234fc-9ed4380653.zip new file mode 100644 index 0000000..7961972 Binary files /dev/null and b/.yarn/cache/@floating-ui-utils-npm-0.2.1-5ad70234fc-9ed4380653.zip differ diff --git a/.yarn/cache/fluent-svelte-npm-1.6.0-b51efa5efd-1b2ac33343.zip b/.yarn/cache/fluent-svelte-npm-1.6.0-b51efa5efd-1b2ac33343.zip new file mode 100644 index 0000000..20fad10 Binary files /dev/null and b/.yarn/cache/fluent-svelte-npm-1.6.0-b51efa5efd-1b2ac33343.zip differ diff --git a/.yarn/cache/focus-trap-npm-6.9.4-64b032bc16-0b4cebcc11.zip b/.yarn/cache/focus-trap-npm-6.9.4-64b032bc16-0b4cebcc11.zip new file mode 100644 index 0000000..05f0ac9 Binary files /dev/null and b/.yarn/cache/focus-trap-npm-6.9.4-64b032bc16-0b4cebcc11.zip differ diff --git a/.yarn/cache/ssr-window-npm-4.0.2-01f9c0151e-df18260092.zip b/.yarn/cache/ssr-window-npm-4.0.2-01f9c0151e-df18260092.zip new file mode 100644 index 0000000..9ae6972 Binary files /dev/null and b/.yarn/cache/ssr-window-npm-4.0.2-01f9c0151e-df18260092.zip differ diff --git a/.yarn/cache/svelte-floating-ui-npm-1.5.8-f85bef77a4-f35ec8828d.zip b/.yarn/cache/svelte-floating-ui-npm-1.5.8-f85bef77a4-f35ec8828d.zip new file mode 100644 index 0000000..b4983a3 Binary files /dev/null and b/.yarn/cache/svelte-floating-ui-npm-1.5.8-f85bef77a4-f35ec8828d.zip differ diff --git a/.yarn/cache/svelte-routing-npm-2.10.0-238c46819f-d9b2b02645.zip b/.yarn/cache/svelte-routing-npm-2.10.0-238c46819f-d9b2b02645.zip deleted file mode 100644 index 9e0bd22..0000000 Binary files a/.yarn/cache/svelte-routing-npm-2.10.0-238c46819f-d9b2b02645.zip and /dev/null differ diff --git a/.yarn/cache/svelte-select-npm-5.8.3-55828a830b-f3cf89f221.zip b/.yarn/cache/svelte-select-npm-5.8.3-55828a830b-f3cf89f221.zip new file mode 100644 index 0000000..22f2004 Binary files /dev/null and b/.yarn/cache/svelte-select-npm-5.8.3-55828a830b-f3cf89f221.zip differ diff --git a/.yarn/cache/swiper-npm-9.4.1-38d46d35a3-1180b3b766.zip b/.yarn/cache/swiper-npm-9.4.1-38d46d35a3-1180b3b766.zip new file mode 100644 index 0000000..e6b4c11 Binary files /dev/null and b/.yarn/cache/swiper-npm-9.4.1-38d46d35a3-1180b3b766.zip differ diff --git a/.yarn/cache/tabbable-npm-5.3.3-baf35cffe9-1aa56e1bb6.zip b/.yarn/cache/tabbable-npm-5.3.3-baf35cffe9-1aa56e1bb6.zip new file mode 100644 index 0000000..af9e806 Binary files /dev/null and b/.yarn/cache/tabbable-npm-5.3.3-baf35cffe9-1aa56e1bb6.zip differ diff --git a/Makefile b/Makefile index c4b2ddd..601f513 100644 --- a/Makefile +++ b/Makefile @@ -10,6 +10,8 @@ help: ## show this help @echo MAKE TARGETS @grep -h -E '^[a-zA-Z_-]+:.*?## .*$$' $(MAKEFILE_LIST) | awk 'BEGIN {FS = ":.*?## "}; {printf "\033[36m%-30s\033[0m %s\n", $$1, $$2}' + + docker-up: ## bring docker compose stack up in background $(DOCKER_COMPOSE) --profile tibi up -d diff --git a/api/assets/dist.yml b/api/assets/dist.yml new file mode 100644 index 0000000..48c6460 --- /dev/null +++ b/api/assets/dist.yml @@ -0,0 +1,12 @@ +# Ordnerpfade, die über den tibi-server direkt erreichbar seien sollen, +# können über den "path" relativ zur "config.yml" definiert werden. +# Durch die "name"-Definition werden diese Pfade eindeutig unterschieden. +# Für folgende Beispielangaben bildet sich folgende URL: +# +# TIBI-SERVER-URL/api/v1/_/NAMESPACE/_/assets/_dist_/ +# +# Jeder Zugriff wird intern umgeleitet auf ../frontend/_dist_/ +# (relativ zur "config.yml"). +# Es ist ausschließlich ein unbeschränkter Lesezugriff (GET-Methode) möglich. +name: _dist_ +path: ../frontend/dist diff --git a/api/collections/backups.yml b/api/collections/backups.yml index 0d6051a..55288cd 100644 --- a/api/collections/backups.yml +++ b/api/collections/backups.yml @@ -41,22 +41,30 @@ fields: - name: collectionName type: string meta: - label: Collection Name + label: + de: Collection Name + en: Collection Name - name: entryId type: string meta: - label: Entry ID + label: + de: Entry ID + en: Entry ID - name: versionNr type: number meta: - label: Version Nr + label: + de: Version Nr + en: Version Nr - name: manipulatedBy type: string meta: - label: Manipulated By + label: + de: Manipulated By + en: Manipulated By - name: eventDescription type: string @@ -65,38 +73,59 @@ fields: widget: select choices: - id: create - name: Create + name: + de: Erstellt + en: Create - id: update - name: Update + name: + de: Update + en: Update - id: delete - name: Delete + name: + de: Gelöscht + en: Delete - id: recreate - name: Recreate + name: + de: Wiederhergestellt + en: Recreate - id: activate - name: Activate + name: + de: Aktiviert + en: Activate - name: updateLogs type: object[] meta: - label: Veränderungen + label: + de: Veränderungen + en: Update Logs subFields: - name: field type: string meta: - label: Feldname + label: + de: Feldname + en: Fieldname - name: previous type: string meta: - label: Vorheriger Wert + label: + de: Vorheriger Wert + en: Previous Value - name: current type: string meta: - label: Aktueller Wert + label: + + de: Aktueller Wert + en: Current Value - name: entry type: object meta: - label: Entry + label: + de: Eintrag + en: Entry diff --git a/api/collections/content.yml b/api/collections/content.yml index a12c79c..403af0e 100644 --- a/api/collections/content.yml +++ b/api/collections/content.yml @@ -37,7 +37,6 @@ meta: tablist: activeTab: general - tabs: - name: general label: Allgemein @@ -124,8 +123,12 @@ fields: - type: string name: path meta: - label: Pfad - helperText: "Ein Pfad sollte mit einem / starten und ohne eins enden." + label: + de: Pfad + en: Path + helperText: + de: "Ein Pfad sollte mit einem / starten und ohne eins enden." + en: "A path should start with a / and end without one." containerProps: layout: size: @@ -133,73 +136,20 @@ fields: small: "col-12" large: "col-6" - - type: boolean - name: active - meta: - label: Aktiv - helperText: Ist dies Aktiviert, so wird der Inhalt verfügbar. - defaultValue: true - containerProps: - layout: - size: - default: "col-6" - small: "col-12" - large: "col-6" + - !include fields/active.yml + - !include fields/contentType.yml - - type: string - name: type - meta: - label: Inhaltstyp - widget: select - defaultValue: page - containerProps: - layout: - size: - default: "col-6" - small: "col-12" - large: "col-6" - choices: - - name: Seite - id: page - - - name: pageTitle - type: string - meta: - label: Titel der Seite - helperText: "Dieser Titel wird in der Seite als h1 angezeigt." - dependsOn: - eval: $.type == "page" - containerProps: - layout: - size: - default: "col-6" - small: "col-12" - large: "col-6" - - - name: rows - type: object[] - meta: - label: Zeilen - widget: grid - metaElements: [] - subFields: !include fieldLists/row.yml + - !include fields/pageTitle.yml + - !include fields/rows.yml - name: meta type: object meta: - label: Meta Agaben + label: + de: Meta Agaben + en: Meta Data dependsOn: eval: $.type == "page" subFields: !include fieldLists/meta.yml - - 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. + - !include fields/manualSort.yml diff --git a/api/collections/fieldLists/column.yml b/api/collections/fieldLists/column.yml index f13b7ec..27afd5f 100644 --- a/api/collections/fieldLists/column.yml +++ b/api/collections/fieldLists/column.yml @@ -1,16 +1,49 @@ -# attribute auf column ebene - - name: contentType type: string meta: - label: "" + label: + de: Inhaltstyp + en: Content Type widget: select choices: - - name: Bild - id: image + - name: + de: Bilder + en: Images + id: images - - name: Modul Import + - name: + de: Modul Import + en: Module Import id: moduleImport + - name: + de: Formular + en: form + id: form - - name: Text + - name: + de: Text + en: Text id: text + - name: + de: Google Maps + en: Google Maps + id: googleMaps +- !include ../fields/images.yml + +- name: moduleImport + type: string + meta: + label: + de: Modul Import + en: Module Import + dependsOn: + eval: $parent.contentType == 'moduleImport' || $parent.contentType == 'form' + widget: foreignKey + foreign: + collection: module + id: id + subNavigation: 0 + render: + defaultCollectionViews: true + +- !include ../fields/text.yml diff --git a/api/collections/fieldLists/formular/checkboxGroup.yml b/api/collections/fieldLists/formular/checkboxGroup.yml index 615e4b5..2f9d955 100644 --- a/api/collections/fieldLists/formular/checkboxGroup.yml +++ b/api/collections/fieldLists/formular/checkboxGroup.yml @@ -13,12 +13,17 @@ subFields: - name: groupTitle type: string meta: - label: Checkbox Gruppe Titel + label: + de: Gruppe Titel + en: Group title - name: checkboxes type: object[] meta: - label: Checkbox Gruppe + label: + + de: Checkbox Gruppe + en: Checkbox Group direction: row widget: containerLessObjectArray subFields: diff --git a/api/collections/fieldLists/formular/dateInput.yml b/api/collections/fieldLists/formular/dateInput.yml index 1a07b6a..ef8902a 100644 --- a/api/collections/fieldLists/formular/dateInput.yml +++ b/api/collections/fieldLists/formular/dateInput.yml @@ -11,6 +11,7 @@ meta: eval: $parent?.inputWidgets?.includes('defaultCalendar') subFields: - name: standardInputProperties + type: object meta: widget: containerLessObject subFields: !include standardInputProperties.yml diff --git a/api/collections/fieldLists/formular/datePicker.yml b/api/collections/fieldLists/formular/datePicker.yml index f1b54ce..1977934 100644 --- a/api/collections/fieldLists/formular/datePicker.yml +++ b/api/collections/fieldLists/formular/datePicker.yml @@ -10,29 +10,25 @@ subFields: - name: props type: object meta: - label: Datumauswahl Eigenschaften + label: + de: Datumauswahl Eigenschaften + en: Date selection properties subFields: - name: allowedDateRanges type: object[] meta: - label: Erlaubte Datumsbereiche + label: + de: Erlaubte Datumsbereiche + en: Allowed date ranges widget: containerLessObjectArray subFields: - - name: from - type: date - meta: - label: Von - widget: date - containerProps: - layout: - size: - default: "col-6" - small: "col-12" - large: "col-6" + - !include ../../fields/from.yml - name: to type: date meta: - label: Bis + label: + de: Bis + en: To widget: date containerProps: layout: @@ -41,34 +37,10 @@ subFields: small: "col-12" large: "col-6" - - name: excludeDays - type: string[] - meta: - label: Auszuschließende Wochentage - widget: selectArray - choices: - - id: monday - name: Montag - - - id: tuesday - name: Dienstag - - - id: wednesday - name: Mittwoch - - - id: thursday - name: Donnerstag - - - id: friday - name: Freitag - - - id: saturday - name: Samstag - - - id: sunday - name: Sonntag + - !include ../../fields/excludedDays.yml - name: standardInputProperties + type: object meta: widget: containerLessObject subFields: !include standardInputProperties.yml diff --git a/api/collections/fieldLists/formular/form.yml b/api/collections/fieldLists/formular/form.yml index 62af1aa..a462a0a 100644 --- a/api/collections/fieldLists/formular/form.yml +++ b/api/collections/fieldLists/formular/form.yml @@ -27,17 +27,7 @@ small: "col-12" large: "col-6" -- 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" +- !include ../../fields/emailCC.yml - name: emailIntroduction type: string @@ -49,10 +39,22 @@ de: "Bsp: Hallo xyz, sie haben eine neue Kaufanfrage erhalten!" en: "E.g.: Hello xyz, you have received a new purchase request!" +- name: sendFormBtnText + type: string + meta: + label: + de: Formular Absenden Button Text + en: Form Submit Button Text + helperText: + de: "Bsp: Absenden" + en: "E.g.: Submit" + - name: rows type: object[] meta: - label: Zeile + label: + de: Zeile + en: Row widget: grid addElementLabel: Zeile Hinzufügen @@ -60,7 +62,9 @@ - name: title type: string meta: - label: Zeilenname + label: + de: Zeilenname + en: Row name helperText: de: "Sollte der Titel keinen Wert enthalten, wird kein Zeilenname angezeigt!" en: "If the title does not contain a value, no row name will be displayed!" @@ -68,7 +72,9 @@ - name: emailTitle type: string meta: - label: Email Abschnitt Titel + label: + de: Email Abschnitt Titel + en: Email section title helperText: de: "Sollte der Titel keinen Wert enthalten, wird kein Abschnitt Titel angezeigt!" en: "If the title does not contain a value, no section title will be displayed!" @@ -77,16 +83,38 @@ type: object[] meta: - label: Spalte - addElementLabel: Spalte hinzufügen + label: + de: Spalte + en: Column + addElementLabel: + de: Spalte hinzufügen + en: Add column widget: grid direction: horizontal subFields: - name: title type: string meta: - label: Überschrift - helperText: Optional + label: + de: Überschrift + en: Headline + helperText: + de: Optional + en: Optional + + - name: emailTitle + type: string + meta: + label: + de: Email Abschnitt Titel + en: Email section title + + - name: annotation + type: string + meta: + label: + de: Zusatzinformation + en: Additional information - name: inputWidgets type: string[] @@ -96,33 +124,63 @@ en: Displayed input fields widget: selectArray choices: - - name: Nummernblock + - name: + de: Nummernblock + en: Number block id: labelNumber - - name: Zeitenauswahlfeld + - name: + de: Zeitenauswahlfeld + en: Time selection field id: times - - name: Auswahlfeld + - name: + de: Auswahlfeld + en: Selection field id: select - - name: Datumsauswahl - Standard Kalender + - name: + de: Datumsauswahl - Standard Kalender + en: Date selection - Standard calendar id: defaultCalendar - - name: Datumauswahl - Custom Kalender + - name: + de: Datumauswahl - Custom Kalender + en: Date selection - Custom calendar id: customCalendar - - name: Nummerfeld + - name: + de: Nummerfeld + en: Number field id: number - - name: Checkbox Gruppe + - name: + de: Checkbox Gruppe + en: Checkbox group id: checkboxGroup - - name: Mehrfachauswahl + - name: + de: Mehrfachauswahl + en: Multiple selection id: multiSelect - - name: Textfeld + - name: + de: Textfeld + en: Text field id: text + - name: + de: Zeitenauswahl + en: Time selection + id: timeSelect + + - name: + de: Standardauswahl + en: Standard selection + id: standardSelect + + - !include standardSelect.yml + - !include labelNumberInput.yml - !include timesInput.yml - !include dateInput.yml @@ -131,3 +189,4 @@ - !include datePicker.yml - !include multiSelectInput.yml - !include textInputs.yml + - !include timeSelect.yml diff --git a/api/collections/fieldLists/formular/labelNumberInput.yml b/api/collections/fieldLists/formular/labelNumberInput.yml index 2d3b944..eaec506 100644 --- a/api/collections/fieldLists/formular/labelNumberInput.yml +++ b/api/collections/fieldLists/formular/labelNumberInput.yml @@ -1,7 +1,9 @@ name: labelNumberInput type: object[] meta: - label: Nummer block + label: + de: Nummer block + en: Number block dependsOn: eval: $parent?.inputWidgets?.includes('labelNumber') helperText: @@ -12,7 +14,9 @@ subFields: - name: group type: number meta: - label: Gruppe + label: + de: Gruppe + en: Group helpterText: de: Pflichtfeld seperierung. Aus einem Nummernblock muss mindestens eine Gruppe input haben. en: Mandatory field separation. A number block must have at least one group input. @@ -34,7 +38,9 @@ subFields: - name: emailName type: string meta: - label: Email Name + label: + de: Email Name + en: Email name containerProps: layout: size: @@ -62,7 +68,9 @@ subFields: - name: emailName type: string meta: - label: Email Name + label: + de: Email Name + en: Email name containerProps: layout: size: diff --git a/api/collections/fieldLists/formular/multiSelectInput.yml b/api/collections/fieldLists/formular/multiSelectInput.yml index d2af23d..d8b0315 100644 --- a/api/collections/fieldLists/formular/multiSelectInput.yml +++ b/api/collections/fieldLists/formular/multiSelectInput.yml @@ -8,6 +8,7 @@ meta: eval: $parent?.inputWidgets?.includes('multiSelect') subFields: - name: standardInputProperties + type: object meta: widget: containerLessObject subFields: !include standardInputProperties.yml @@ -15,24 +16,32 @@ subFields: - name: options type: object[] meta: - label: Mehrfachauswahl Optionen + label: + de: Mehrfachauswahl Optionen + en: Multi Select Options direction: row widget: containerLessObjectArray subFields: - name: name type: string meta: - label: Name + label: + de: Name + en: Name - name: props type: object meta: - label: Mehrfachauswahl Eigenschaften + label: + de: Mehrfachauswahl Eigenschaften + en: Multi Select Properties subFields: - name: additionalAddableValues type: boolean meta: - label: Zusätzliche hinzufügbare Werte + label: + de: Zusätzliche hinzufügbare Werte + en: Additional addable values containerProps: layout: size: diff --git a/api/collections/fieldLists/formular/numberInput.yml b/api/collections/fieldLists/formular/numberInput.yml index b8cb6fc..38e8ff6 100644 --- a/api/collections/fieldLists/formular/numberInput.yml +++ b/api/collections/fieldLists/formular/numberInput.yml @@ -8,6 +8,7 @@ meta: eval: $parent?.inputWidgets?.includes('number') subFields: - name: standardInputProperties + type: object meta: widget: containerLessObject subFields: !include standardInputProperties.yml diff --git a/api/collections/fieldLists/formular/standardInputProperties.yml b/api/collections/fieldLists/formular/standardInputProperties.yml index 27299f9..5b22e01 100644 --- a/api/collections/fieldLists/formular/standardInputProperties.yml +++ b/api/collections/fieldLists/formular/standardInputProperties.yml @@ -1,7 +1,9 @@ - name: emailTitle type: string meta: - label: Email Titel + label: + de: Email Titel + en: Email title containerProps: layout: size: @@ -12,7 +14,9 @@ - name: placeholder type: string meta: - label: Platzhalter + label: + de: Platzhalter + en: Placeholder containerProps: layout: size: @@ -23,7 +27,9 @@ - name: notRequired type: boolean meta: - label: nicht Notwendig + label: + de: nicht Notwendig + en: not required containerProps: layout: size: @@ -34,7 +40,9 @@ - name: fieldOrder type: number meta: - label: Reihenfolge + label: + de: Reihenfolge + en: Order helperText: de: Die kleinste angegebene Zahl wird am weitesten oben in der Formularspalte stehen en: The smallest specified number will be at the top of the form column. @@ -44,8 +52,20 @@ default: "col-6" small: "col-12" large: "col-6" + - name: textTitle type: string meta: - label: Text Titel - helperText: Alternative zu textPlaceholder + label: + de: Text Titel + en: Text title + helperText: + de: Alternative zu textPlaceholder, steht dann über dem Inputfeld + en: Alternative to textPlaceholder, then stands above the input field + +- name: groupTitle + type: string + meta: + label: + de: Gruppe Titel + en: Group title diff --git a/api/collections/fieldLists/formular/standardSelect.yml b/api/collections/fieldLists/formular/standardSelect.yml new file mode 100644 index 0000000..adb3098 --- /dev/null +++ b/api/collections/fieldLists/formular/standardSelect.yml @@ -0,0 +1,58 @@ +name: standardSelect +type: object +meta: + label: Standardauswahl + dependsOn: + eval: $parent?.inputWidgets?.includes('standardSelect') +subFields: + - name: standardInputProperties + type: object + meta: + widget: containerLessObject + subFields: !include standardInputProperties.yml + + - name: selectEntries + type: object[] + meta: + label: + de: Auswahleingabe Möglichkeiten + en: Selection input options + widget: containerLessObjectArray + addElementLabel: Auswahleingabe hinzufügen + direction: horizontal + subFields: + - name: shownValue + type: string + meta: + label: + de: Angezeigter Wert + en: Displayed value + containerProps: + layout: + size: + default: "col-6" + small: "col-12" + large: "col-6" + + - name: value + type: string + meta: + label: + de: per Email gesendeter Wert + en: Value sent by email + containerProps: + layout: + size: + default: "col-6" + small: "col-12" + large: "col-6" + + - name: defaultValue + type: boolean + meta: + label: + de: Standardwert + en: Default value + helperText: + de: "Wird dieser Wert ausgewählt, wird er als Standardwert gesetzt" + en: "If this value is selected, it will be set as the default value" diff --git a/api/collections/fieldLists/formular/textInputs.yml b/api/collections/fieldLists/formular/textInputs.yml index c4782a5..0ff2dc0 100644 --- a/api/collections/fieldLists/formular/textInputs.yml +++ b/api/collections/fieldLists/formular/textInputs.yml @@ -7,6 +7,7 @@ meta: eval: $parent?.inputWidgets?.includes('text') subFields: - name: standardInputProperties + type: object meta: widget: containerLessObject subFields: !include standardInputProperties.yml @@ -14,7 +15,9 @@ subFields: - name: textArea type: boolean meta: - label: Großes Textfeld + label: + de: Großes Textfeld + en: Large text field containerProps: layout: size: @@ -25,7 +28,9 @@ subFields: - name: emailValidation type: boolean meta: - label: E-Mail-Validierung + label: + de: E-Mail-Validierung + en: E-mail validation containerProps: layout: size: @@ -36,7 +41,9 @@ subFields: - name: telValidation type: boolean meta: - label: Telefon-Validierung + label: + de: Telefon-Validierung + en: Phone validation containerProps: layout: size: diff --git a/api/collections/fieldLists/formular/timeSelect.yml b/api/collections/fieldLists/formular/timeSelect.yml new file mode 100644 index 0000000..06b2035 --- /dev/null +++ b/api/collections/fieldLists/formular/timeSelect.yml @@ -0,0 +1,45 @@ +name: timeSelect +type: object +meta: + label: Zeitenwahl + dependsOn: + eval: $parent?.inputWidgets?.includes('timeSelect') +subFields: + - name: standardInputProperties + type: object + meta: + widget: containerLessObject + subFields: !include standardInputProperties.yml + + - name: selectEntries + type: object[] + meta: + label: Auswahleingabe + widget: containerLessObjectArray + helperText: "Die Angaben werden in folgendes Übersetzt: Anfangspunkt - Endpunkt" + direction: horizontal + + subFields: + - name: leftSide + type: string + meta: + label: Anfangspunkt + helperText: Bspw. 14:30 + containerProps: + layout: + size: + default: "col-6" + small: "col-12" + large: "col-6" + + - name: rightSide + type: string + meta: + label: Endpunkt + helperText: Bspw. 15:30 + containerProps: + layout: + size: + default: "col-6" + small: "col-12" + large: "col-6" diff --git a/api/collections/fieldLists/formular/timesInput.yml b/api/collections/fieldLists/formular/timesInput.yml index 559e8e4..6d8aef8 100644 --- a/api/collections/fieldLists/formular/timesInput.yml +++ b/api/collections/fieldLists/formular/timesInput.yml @@ -14,8 +14,12 @@ subFields: - name: times type: object[] meta: - label: Zeitenangabe - helperText: "Die Angaben werden in folgendes Übersetzt: Anfangspunkt - Endpunkt" + label: + de: Zeitenauswahl Möglichkeiten + en: Time selection options + helperText: + de: "Die Angaben werden in folgendes Übersetzt: Anfangspunkt - Endpunkt" + en: "The information is translated into the following: starting point - end point" direction: horizontal widget: containerLessObjectArray @@ -23,8 +27,12 @@ subFields: - name: from type: string meta: - label: Anfangspunkt - helperText: Bspw. 14:30 + label: + de: Anfangspunkt + en: Starting point + helperText: + de: Bspw. 14:30 + en: E.g. 14:30 containerProps: layout: size: @@ -36,7 +44,9 @@ subFields: type: string meta: label: Endpunkt - helperText: Bspw. 15:30 + helperText: + de: Bspw. 15:30 + en: E.g. 15:30 containerProps: layout: size: @@ -44,6 +54,7 @@ subFields: small: "col-12" large: "col-6" - name: standardInputProperties + type: object meta: widget: containerLessObject subFields: !include standardInputProperties.yml diff --git a/api/collections/fieldLists/meta.yml b/api/collections/fieldLists/meta.yml index 0418fbb..dd78def 100644 --- a/api/collections/fieldLists/meta.yml +++ b/api/collections/fieldLists/meta.yml @@ -1,7 +1,9 @@ - name: title type: string meta: - label: Titel + label: + de: Titel + en: Title containerProps: layout: size: @@ -12,7 +14,11 @@ - name: description type: string meta: - label: Beschreibung + label: + de: Beschreibung + en: Description + inputProps: + multiline: true containerProps: layout: size: @@ -22,4 +28,8 @@ - name: keywords type: string meta: - label: Schlüsselwörter + inputProps: + multiline: true + label: + de: Schlüsselwörter + en: Keywords diff --git a/api/collections/fieldLists/row.yml b/api/collections/fieldLists/row.yml index de68aac..05a48cc 100644 --- a/api/collections/fieldLists/row.yml +++ b/api/collections/fieldLists/row.yml @@ -1,9 +1,30 @@ -# attribute auf row ebene +- name: title + type: string + meta: + label: + de: Titel + en: Title + +- name: backgroundImage + type: string + meta: + label: + de: Hintergrundbild + en: Background Image + widget: foreignKey + foreign: + collection: medialib + id: id + subNavigation: 0 + render: + defaultCollectionViews: true - name: columns type: object[] meta: - label: Spalten + label: + de: Spalten + en: Columns direction: row widget: grid - subFields: !include ../fieldLists/column.yml + subFields: !include ./column.yml diff --git a/api/collections/fields/active.yml b/api/collections/fields/active.yml new file mode 100644 index 0000000..2762305 --- /dev/null +++ b/api/collections/fields/active.yml @@ -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" diff --git a/api/collections/fields/backup.yml b/api/collections/fields/backup.yml new file mode 100644 index 0000000..25ce855 --- /dev/null +++ b/api/collections/fields/backup.yml @@ -0,0 +1,3 @@ +backup: + active: true # sollen backups beim verändern erstellt werden + collectionName: backups # in welcher collection es gespeichert werden soll diff --git a/api/collections/fields/contentType.yml b/api/collections/fields/contentType.yml new file mode 100644 index 0000000..aabbc82 --- /dev/null +++ b/api/collections/fields/contentType.yml @@ -0,0 +1,19 @@ +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: # name der im admin angezeigt wird + de: Seite + en: Page + id: page # wert der in der datenbank gespeichert wird diff --git a/api/collections/fields/emailCC.yml b/api/collections/fields/emailCC.yml new file mode 100644 index 0000000..b32faf2 --- /dev/null +++ b/api/collections/fields/emailCC.yml @@ -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" diff --git a/api/collections/fields/excludedDays.yml b/api/collections/fields/excludedDays.yml new file mode 100644 index 0000000..d331cdf --- /dev/null +++ b/api/collections/fields/excludedDays.yml @@ -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 diff --git a/api/collections/fields/file.yml b/api/collections/fields/file.yml new file mode 100644 index 0000000..1716eb0 --- /dev/null +++ b/api/collections/fields/file.yml @@ -0,0 +1,6 @@ +name: file +type: file +meta: + label: + de: Datei + en: File diff --git a/api/collections/fields/form.yml b/api/collections/fields/form.yml new file mode 100644 index 0000000..38eb1cf --- /dev/null +++ b/api/collections/fields/form.yml @@ -0,0 +1,7 @@ +type: object +name: formular +meta: + label: + de: Formular + en: Form + widget: jsonField diff --git a/api/collections/fields/from.yml b/api/collections/fields/from.yml new file mode 100644 index 0000000..cd2d2ae --- /dev/null +++ b/api/collections/fields/from.yml @@ -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" diff --git a/api/collections/fields/imageFilter.yml b/api/collections/fields/imageFilter.yml new file mode 100644 index 0000000..8bd989d --- /dev/null +++ b/api/collections/fields/imageFilter.yml @@ -0,0 +1,37 @@ +# Der Key des Objektes definiert den Namen des Filters. +# Jeder Filter ist eine Liste von Bildmanipulationen, die +# nacheinander angewandt werden. +# Die manipulierten Bilder werden gecachet. Ein nachträgliches +# Anpassen der Filter erfordert also das Löschen der gecachten +# Dateien welche sich jeweils neben den original Bilddateien +# im "uploadPath" der Kollektion befinden. +xs: + - fit: true + height: 90 + width: 90 + resampling: lanczos + quality: 60 +s: + - fit: true + height: 300 + width: 300 + resampling: lanczos + quality: 60 +m: + - fit: true + height: 600 + width: 600 + resampling: lanczos + quality: 60 +l: + - fit: true + height: 1200 + width: 1200 + resampling: lanczos + quality: 60 +xl: + - fit: true + height: 2000 + width: 2000 + resampling: lanczos + quality: 60 diff --git a/types/modules.d.ts b/api/collections/fields/imageTitle.yml similarity index 100% rename from types/modules.d.ts rename to api/collections/fields/imageTitle.yml diff --git a/api/collections/fields/images.yml b/api/collections/fields/images.yml new file mode 100644 index 0000000..803c0c1 --- /dev/null +++ b/api/collections/fields/images.yml @@ -0,0 +1,25 @@ +name: images +type: string[] +meta: + label: + de: Bild + en: Image + dependsOn: + eval: $parent.contentType == 'images' + 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: 0 # Bestimmt, welche Navigation für die Auswahl der ausgewählten Daten angezeigt wird. + #projection: xyz + #sort: "title" + render: + defaultCollectionViews: true + # alternativ könnte auch folgendes verwendet werden: + #raw: true + #eval: | + # (function() { + # var out = ""; + # out += "