This commit is contained in:
2025-10-02 08:18:37 +00:00
parent ea54638227
commit f81250a7c1
225 changed files with 76 additions and 23002 deletions

View File

@@ -1,253 +0,0 @@
name: selfImprovementChallenge
meta:
allowExportAll: true
label:
de: SelfImp. Challenge
en: SelfImp. Challenge
muiIcon: label
backup:
active: true
collectionName: backups
defaultSort:
field: name
order: ASC
views: &views
- type: table
columns:
- source: title
label:
de: Titel
en: Title
filter: true
- source: type
label:
de: Typ
en: Type
filter: true
- source: slug
label:
de: Slug
en: Slug
filter: true
tablist:
activeTab: generalDetails
tabs:
- name: generalDetails
label:
de: Allgemeine Details
en: General Details
subFields:
- source: activeAt
- source: type
- source: title
- source: images
- source: slug
- name: introduction
label:
de: Kurzbeschreibung
en: Short Description
subFields:
- source: introduction
- source: howItWorks
- source: blog
subNavigation:
- name: modalForeign
defaultSort:
field: name
order: ASC
views: *views
defaultCallback:
eval: |
(entry) => {
parent.selectEntry(entry)
}
permissions:
public:
methods:
get: true
post: false
put: false
delete: false
user:
methods:
get: true
post: true
put: true
delete: true
fields:
- name: slug
type: string
meta:
label:
de: Slug
en: Slug
containerProps:
layout:
size:
default: "col-6"
small: "col-12"
large: "col-6"
- name: activeAt
type: date
meta:
label:
de: Aktiv ab
en: Active at
widget: date
containerProps:
layout:
size:
default: "col-6"
small: "col-12"
large: "col-6"
- name: type
type: number
meta:
label:
de: Typ
en: Type
widget: select
choices:
- name: Krass Kraft
id: 1
- name: Crazy Calm
id: 2
- name: Crazy Crave Control
id: 3
- name: Krass Kreativ
id: 4
containerProps:
layout:
size:
default: "col-6"
small: "col-12"
large: "col-6"
- name: images
type: object
meta:
label:
de: Bilder
en: Images
subFields:
- name: preview
type: string
meta:
label:
de: Mobile
en: Mobile
widget: foreignKey
foreign:
collection: medialib
id: id
subNavigation: 0
render:
defaultCollectionViews: true
- name: detailed
type: string
meta:
label:
de: Desktop
en: Desktop
widget: foreignKey
foreign:
collection: medialib
id: id
subNavigation: 0
render:
defaultCollectionViews: true
- name: title
type: string
meta:
label:
de: Titel
en: Title
- name: introduction
type: string[]
meta:
label:
de: Kurzbeschreibung
en: Short Description
useDefaultArray: true
widget: richtext
- name: howItWorks
type: object
meta:
label:
de: Wie es funktioniert
en: How it works
subFields:
- name: invitation
type: string
meta:
label:
de: Einladung
en: Invitation
- !include fields/contentBlocks/stepNr.yml
- name: blog
type: object
meta:
label:
de: Blog
en: Blog
subFields:
- name: blogId
type: string
meta:
label:
de: Blog ID
en: Blog ID
widget: foreignKey
foreign:
collection: content
id: id
subNavigation: 0
render:
defaultCollectionViews: true
- name: thumbnail
type: string
meta:
label:
de: Thumbnail
en: Thumbnail
widget: foreignKey
foreign:
collection: medialib
id: id
subNavigation: 0
render:
defaultCollectionViews: true
- name: sources
type: object[]
meta:
label:
de: Quellen
en: Sources
subFields:
- name: source
type: string
meta:
label:
de: Quelle
en: Source
- name: url
type: string
meta:
label:
de: URL
en: URL

View File

@@ -1,360 +0,0 @@
name: orderReturnRequest
meta:
allowExportAll: true
label:
de: Retourenanfrage
en: Order Return Request
muiIcon: label
backup:
active: true
collectionName: backups
defaultSort:
field: insertTime
order: DESC
tablist:
activeTab: generalDetails
tabs:
- name: generalDetails
label:
de: Allgemeine Details
en: General Details
subFields:
- source: status
- source: notes
- name: customerDetails
label:
de: Kunden Details
en: Customer Details
subFields:
- source: email
- source: bigCommerceId
- name: products
label:
de: Produkte
en: Products
subFields:
- source: products
- name: returnShppingLabels
label:
de: Retourenlabels
en: Return Shipping Labels
subFields:
- source: returnShppingLabels
views: &views
- type: table
columns:
- source: status
filter: true
- source: email
filter: true
- source: bigCommerceId
filter:
type: foreignKey
- source: insertTime
filter: true
subNavigation:
- name: modalForeign
defaultSort:
field: "path"
order: "ASC"
views: *views
defaultCallback:
eval: |
//js
(entry) => {
parent.selectEntry(entry)
}
//!js
- name: new
label:
de: Neu
en: New
muiIcon: new
defaultSort:
field: insertTime
order: DESC
views: *views
filter:
status: pending
- name: inProgress
label:
de: In Bearbeitung
en: In Progress
muiIcon: inProgress
defaultSort:
field: insertTime
order: DESC
views: *views
filter:
status: approved
- name: done
label:
de: Abgeschlossen
en: Done
muiIcon: done
defaultSort:
field: insertTime
order: DESC
views: *views
filter:
status: refunded
- name: failed
label:
de: Fehlgeschlagen
en: Failed
muiIcon: error
defaultSort:
field: insertTime
order: DESC
views: *views
filter:
status: failed
- name: rejected
label:
de: Abgelehnt
en: Rejected
muiIcon: error
defaultSort:
field: insertTime
order: DESC
views: *views
filter:
status: rejected
permissions:
public:
methods:
get: true
post: true
put: false
delete: true
user:
methods:
get: true
post: true
put: true
delete: true
hooks:
get:
read:
type: javascript
file: hooks/orderReturnRequest/get_read.js
post:
create:
type: javascript
file: hooks/orderReturnRequest/post_create.js
return:
type: javascript
file: hooks/orderReturnRequest/post_return.js
put:
update:
type: javascript
file: hooks/orderReturnRequest/put_update.js
delete:
delete:
type: javascript
file: hooks/orderReturnRequest/delete_delete.js
return:
type: javascript
file: hooks/orderReturnRequest/delete_return.js
fields:
- name: status
type: string
meta:
label:
de: Status
en: Status
widget: select
choices:
- name: pending
id: pending
- name: approved
id: approved
- name: rejected
id: rejected
- name: refunded
id: refunded
- name: failed
id: failed
- name: email
type: string
meta:
label:
de: E-Mail
en: E-Mail
- name: bigCommerceId
type: number
meta:
label:
de: Bestellnummer
en: Order ID
widget: foreignKey
filter:
type: foreignKey
foreign:
collection: bigCommerceOrder
id: bigCommerceId
subNavigation: 0
render:
defaultCollectionViews: true
- name: returnShppingLabels
type: object[]
meta:
label:
de: Retourenlabels
en: Return Shipping Labels
subFields:
- name: cost
type: number
meta:
label:
de: Kosten
en: Cost
- name: label
type: file
meta:
label:
de: Label
en: Label
widget: file
- name: products
type: object[]
meta:
widget: containerLessObjectArray
label:
de: Produkte
en: Products
subFields:
- name: baseProductId
type: number
meta:
label:
de: Produkt ID
en: Product ID
widget: foreignKey
foreign:
collection: bigCommerceProduct
id: bigCommerceId
subNavigation: 0
render:
defaultCollectionViews: true
containerProps:
layout:
size:
default: "col-6"
small: "col-12"
large: "col-6"
- name: attachedImages
type: string[]
meta:
label:
de: Angehängte Bilder
en: Attached Images
widget: foreignKey
containerProps:
layout:
size:
default: "col-6"
small: "col-12"
large: "col-6"
foreign:
collection: medialib
id: id
subNavigation: 0
render:
defaultCollectionViews: true
filter:
type: foreignKey
- name: quantity
type: number
meta:
label:
de: Menge
en: Quantity
containerProps:
layout:
size:
default: "col-6"
small: "col-12"
large: "col-4"
- name: productId
type: number
meta:
label:
de: Produkt ID in Bestellung
en: Product ID in Order
containerProps:
layout:
size:
default: "col-6"
small: "col-12"
large: "col-4"
- name: returnReason
type: string
meta:
label:
de: Retourengrund
en: Return Reason
containerProps:
layout:
size:
default: "col-6"
small: "col-12"
large: "col-4"
widget: select
choices:
- name: falsche Größe
id: wrongSize
- name: falsche Farbe
id: wrongColor
- name: falsches Produkt
id: wrongProduct
- name: beschädigt
id: damaged
- name: zu Groß
id: tooLarge
- name: zu Klein
id: tooSmall
- name: nicht Wie Beschrieben
id: notAsDescribed
- name: schlechte Qualität
id: poorQuality
- name: sieht Anders Aus
id: looksDifferent
- name: nicht Mehr Benötigt
id: noLongerNeeded
- name: schlechtes Preis Leistungs Verhältnis
id: poorValue
- name: andere
id: other
- name: notes
type: string
meta:
label:
de: Notizen
en: Notes
widget: textarea
containerProps:
layout:
size:
default: "col-12"
small: "col-12"
large: "col-12"

View File

@@ -1,183 +0,0 @@
name: orderRevokeRequest
meta:
allowExportAll: true
label:
de: Bestellung Abbruch
en: Revoke Order
muiIcon: label
backup:
active: true
collectionName: backups
defaultSort:
field: name
order: ASC
views: &views
- type: table
columns:
- source: status
filter: true
- source: email
filter: true
- source: bigCommerceId
filter:
type: foreignKey
- source: insertTime
filter: true
tablist:
activeTab: generalDetails
tabs:
- name: generalDetails
label:
de: Allgemeine Details
en: General Details
subFields:
- source: email
- source: bigCommerceId
- source: printfulId
- name: editable
label:
de: Bearbeitbar
en: Editable
subFields:
- source: status
- source: notes
subNavigation:
- name: modalForeign
defaultSort:
field: "path"
order: "ASC"
views: *views
defaultCallback:
eval: |
//js
(entry) => {
parent.selectEntry(entry)
}
//!js
- name: new
label:
de: Neu
en: New
muiIcon: new
defaultSort:
field: insertTime
order: DESC
views: *views
filter:
status: pending
- name: inProgress
label:
de: In Bearbeitung
en: In Progress
muiIcon: inProgress
defaultSort:
field: insertTime
order: DESC
views: *views
filter:
status: refunded
permissions:
public:
methods:
get: true
post: true
put: false
delete: false
user:
methods:
get: true
post: true
put: true
delete: true
hooks:
get:
read:
type: javascript
file: hooks/orderRevokeRequest/get_read.js
post:
create:
type: javascript
file: hooks/orderRevokeRequest/post_create.js
return:
type: javascript
file: hooks/orderRevokeRequest/post_return.js
fields:
- name: status
type: string
meta:
label:
de: Status
en: Status
widget: select
choices:
- name:
de: Wartend
en: pending
id: pending
- name:
de: Zurückgezahlt
en: Refunded
id: refunded
containerProps:
layout:
size:
default: "col-6"
small: "col-12"
large: "col-6"
- name: email
type: string
meta:
label:
de: E-Mail
en: E-Mail
containerProps:
layout:
size:
default: "col-6"
small: "col-12"
large: "col-6"
- name: printfulId
type: number
meta:
label:
de: Printful Bestellungs-ID
en: Printful Order-ID
- name: bigCommerceId
type: number
meta:
label:
de: Bestellnummer
en: Order ID
widget: foreignKey
filter:
type: foreignKey
foreign:
collection: bigCommerceOrder
id: bigCommerceId
subNavigation: 0
render:
defaultCollectionViews: true
- name: notes
type: string
meta:
label:
de: Notizen
en: Notes
widget: string
inputProps:
multiline: true
containerProps:
layout:
size:
default: "col-12"
small: "col-12"
large: "col-12"

View File

@@ -1,68 +0,0 @@
name: qrCode
meta:
allowExportAll: true
label:
de: QR Codes
en: QR Codes
muiIcon: label
defaultSort:
field: name
order: ASC
backup:
active: true
collectionName: backups
views: &views
- type: table
columns:
- source: customer
filter:
type: foreignKey
- source: createdAt
filter: true
- source: id
renderValue:
raw: true
eval: |
(function(){
const id = $.id;
return `<button style="display: flex; align-items: center; padding: 8px 16px; background-color: #1D4ED8; color: white; font-weight: 600; border-radius: 6px; box-shadow: 0px 4px 6px rgba(0, 0, 0, 0.1); border: none; cursor: pointer; transition: background-color 0.3s ease;" onclick="event.stopPropagation(); event.preventDefault();navigator.clipboard.writeText('https://binkrassdufass.de/redirecttoprofile/${id}'); window.open('https://binkrassdufass.de/redirecttoprofile/${id}', '_blank')">Go to Profile <svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" class="bi bi-copy" style="margin-left: 8px;" viewBox="0 0 16 16"><path fill-rule="evenodd" d="M4 2a2 2 0 0 1 2-2h8a2 2 0 0 1 2 2v8a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2zm2-1a1 1 0 0 0-1 1v8a1 1 0 0 0 1 1h8a1 1 0 0 0 1-1V2a1 1 0 0 0-1-1zM2 5a1 1 0 0 0-1 1v8a1 1 0 0 0 1 1h8a1 1 0 0 0 1-1v-1h1v1a2 2 0 0 1-2 2H2a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2h1v1z"/></svg></button>` })()
permissions:
public:
methods:
get: true
post: false
put: false
delete: false
user:
methods:
get: true
post: true
put: true
delete: true
fields:
- name: customer
type: string
index: [single]
meta:
label:
de: Kunde
en: Customer
widget: foreignKey
foreign:
collection: bigCommerceCustomer
id: id
subNavigation: 0
render:
defaultCollectionViews: true
filter:
type: foreignKey
indexes:
- name: fulltext # Ein eindeutiger Name für den Index. Es ist optional, wird jedoch empfohlen, um den Index später leicht identifizieren zu können.
key: # Bestimmt, auf welche Felder der Index angewendet werden soll. Dies kann ein einfacher String sein, wenn der Index nur ein Feld umfasst, oder ein Array von Strings, wenn der Index mehrere Felder umfasst.
- $text:$**

View File

@@ -1,278 +0,0 @@
name: bigCommerceCustomer
# This is just so its easier to reference BigCommerce customer,
# its not intended to be used as a actual reference,
# just so its easier to reference customer in TibiCMS
meta:
label:
de: Kunde
en: Customer
views:
- type: table
columns:
- source: email
filter: true
- source: username
filter: true
- source: bigCommerceId
filter: true
- source: personalRecords.recording
filter:
type: foreignKey
tablist:
activeTab: generalDetails
tabs:
- name: generalDetails
label:
de: Allgemeine Details
en: General Details
subFields:
- source: email
- source: username
- source: bigCommerceId
- name: socialMedia
label:
de: Soziale Medien
en: Social Media
subFields:
- source: socialMediaAccounts
- name: personalRecords
label:
de: Persönliche Daten
en: Personal Records
subFields:
- source: personalRecords
- name: admin
label:
de: Admin
en: Admin
subFields:
- source: currentToken
- source: locked
backup:
active: true
collectionName: backups
subNavigation:
- name: modal
views:
- type: table
columns:
- source: email
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
hooks:
put:
# check and return jwt
update:
type: javascript
file: hooks/customer/put_update.js
get:
read:
type: javascript
file: hooks/customer/get_read.js
permissions:
public:
methods:
get: true
post: false
put: true
delete: false
user:
methods:
get: true
post: false
put: false
delete: false
token:${BIGCOMMERCE_WEBHOOK_TOKEN}:
methods:
get: true
post: true
put: true
delete: true
fields:
- name: bigCommerceId
type: number
meta:
label:
de: BigCommerce ID
en: BigCommerce ID
helperText:
de: Die ID des Kunden in BigCommerce
en: The ID of the customer in BigCommerce
- name: email
type: string
meta:
label:
de: Angehängte E-Mail
en: Attached Email
helperText:
de: Die E-Mail-Adresse des Kunden
en: The email address of the customer
- name: username
type: string
index: [single, unique]
meta:
label:
de: Benutzername
en: Username
helperText:
de: Der Benutzername des Kunden
en: The username of the customer
- name: locked
type: boolean
meta:
label:
de: Gesperrt
en: Locked
helperText:
de: Ob der Kunde gesperrt ist
en: Whether the customer is locked
- name: currentToken
type: string
meta:
label:
de: Aktueller Token
en: Current Token
inputProps:
disabled: true
helperText:
de: Der aktuelle Token des Kunden
en: The current token of the customer
- name: socialMediaAccounts
type: object
meta:
label:
de: Soziale Medien
en: Social Media
helperText:
de: Die sozialen Medien des Kunden
en: The social media of the customer
widget: containerLessObject
subFields:
- name: instagramLink
type: string
meta:
label:
de: Instagram Link
en: Instagram Link
helperText:
de: Der Instagram-Link des Kunden
en: The Instagram link of the customer
- name: facebookLink
type: string
meta:
label:
de: Facebook Link
en: Facebook Link
helperText:
de: Der Facebook-Link des Kunden
en: The Facebook link of the customer
- name: twitterLink
type: string
meta:
label:
de: Twitter Link
en: Twitter Link
helperText:
de: Der Twitter-Link des Kunden
en: The Twitter link of the customer
- name: tiktokLink
type: string
meta:
label:
de: TikTok Link
en: TikTok Link
helperText:
de: Der TikTok-Link des Kunden
en: The TikTok link of the customer
- name: youtubeLink
type: string
meta:
label:
de: YouTube Link
en: YouTube Link
helperText:
de: Der YouTube-Link des Kunden
en: The YouTube link of the customer
- name: personalRecords
type: object[]
meta:
label:
de: Persönliche Daten
en: Personal Records
helperText:
de: Die persönlichen Daten des Kunden
en: The personal records of the customer
subFields:
- name: title
type: string
meta:
label:
de: Titel
en: Title
- name: description
type: string
meta:
label:
de: Beschreibung
en: Description
- name: ageAtRecording
type: number
meta:
label:
de: Alter bei Aufnahme
en: Age at Recording
- name: priority
type: number
meta:
label:
de: Priorität
en: Priority
- name: recording
type: string
meta:
label:
de: Aufnahme
en: Recording
widget: foreignKey
filter:
type: foreignKey
foreign:
collection: medialib
subNavigation: 0
id: id
render:
defaultCollectionViews: true
- name: thumbnail
type: string
meta:
label:
de: Vorschaubild
en: Thumbnail
widget: foreignKey
foreign:
collection: medialib
subNavigation: 0
id: id
render:
defaultCollectionViews: true

View File

@@ -1,281 +0,0 @@
name: bigCommerceOrder
# This is just so its easier to reference BigCommerce order,
# its not intended to be used as a actual reference,
# just so its easier to reference order in TibiCMS
meta:
label:
de: Bestellung
en: Order
views: !include fieldLists/orderViews.yml
backup:
active: true
collectionName: backups
subNavigation:
- name: modal
views: !include fieldLists/orderViews.yml
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
permissions:
public:
methods:
get: true
post: false
put: false
delete: false
user:
methods:
get: true
post: true
put: true
delete: false
token:${BIGCOMMERCE_WEBHOOK_TOKEN}:
methods:
get: true
post: true
put: true
delete: true
hooks:
get:
read:
type: javascript
file: hooks/order/get_read.js
fields:
- name: status
type: string
meta:
label:
de: Status
en: Status
widget: select
choices:
- id: draft
name:
de: Entwurf
en: Draft
- id: pending
name:
de: Ausstehend
en: Pending
- id: failed
name:
de: Fehlgeschlagen
en: Failed
- id: completed
name:
de: Abgeschlossen
en: Completed
- id: cancelled
name:
de: Storniert
en: Cancelled
- id: inprocess
name:
de: In Bearbeitung
en: In Process
- id: onhold
name:
de: Zurückgehalten
en: On Hold
- id: partial
name:
de: Teilweise
en: Partial
- id: fulfilled
name:
de: Erfüllt
en: Fulfilled
containerProps:
layout:
size:
default: "col-6"
small: "col-12"
large: "col-6"
- name: statusSetAt
type: date
meta:
label:
de: Status gesetzt am
en: Status set at
containerProps:
layout:
size:
default: "col-6"
small: "col-12"
large: "col-6"
- name: bigCommerceId
type: number
meta:
label:
de: BigCommerce ID
en: BigCommerce ID
helperText:
de: Die ID der Bestellung in BigCommerce
en: The ID of the Order in BigCommerce
containerProps:
layout:
size:
default: "col-6"
small: "col-12"
large: "col-6"
- name: customerBigCommerceId
type: number
meta:
label:
de: Kunde BigCommerce ID
en: Customer BigCommerce ID
helperText:
de: Die ID des Kunden in BigCommerce
en: The ID of the customer in BigCommerce
containerProps:
layout:
size:
default: "col-6"
small: "col-12"
large: "col-6"
- name: customerTibiId
type: string
meta:
label:
de: Kunde
en: Customer
filter:
type: foreignKey
widget: foreignKey
foreign:
collection: bigCommerceCustomer
id: id
subNavigation: 0
render:
defaultCollectionViews: true
- name: products
type: object[]
meta:
label:
de: Produkte
en: Producte
widget: containerLessObjectArray
subFields:
- name: bigCommerceId
type: number
meta:
label:
de: BigCommerce ID
en: BigCommerce ID
helperText:
de: Die ID des Produkts in BigCommerce
en: The ID of the product in BigCommerce
containerProps:
layout:
size:
default: "col-6"
small: "col-12"
large: "col-6"
- name: tibiId
type: string
meta:
label:
de: Tibi ID
en: Tibi ID
widget: foreignKey
filter:
type: foreignKey
foreign:
collection: bigCommerceProduct
id: id
subNavigation: 0
render:
defaultCollectionViews: true
containerProps:
layout:
size:
default: "col-6"
small: "col-12"
large: "col-6"
- name: quantity
type: number
meta:
label:
de: Menge
en: Quantity
- name: shipments
type: object[]
meta:
label:
de: Lieferungen
en: Shipments
subFields:
- name: trackingUrl
type: string
meta:
label:
de: Tracking URL
en: Tracking URL
helperText:
de: Die URL, um das Paket zu verfolgen
en: The URL to track the package
containerProps:
layout:
size:
default: "col-6"
small: "col-12"
large: "col-6"
- name: trackingNumber
type: string
meta:
label:
de: Tracking Nummer
en: Tracking Number
helperText:
de: Die Tracking Nummer des Pakets
en: The tracking number of the package
containerProps:
layout:
size:
default: "col-6"
small: "col-12"
large: "col-6"
- name: carrier
type: string
meta:
label:
de: Carrier
en: Carrier
helperText:
de: Der Carrier des Pakets
en: The carrier of the package
containerProps:
layout:
size:
default: "col-6"
small: "col-12"
large: "col-6"
- name: sentAt
type: date
meta:
label:
de: Versendet am
en: Sent at
containerProps:
layout:
size:
default: "col-6"
small: "col-12"
large: "col-6"

View File

@@ -1,273 +0,0 @@
name: bigCommerceProduct
# This is just so its easier to reference BigCommerce products,
# its not intended to be used as a actual reference,
# just so its easier to reference products in TibiCMS
meta:
label:
de: Produkt
en: Product
views: &views
- type: cardList
mediaQuery: "(min-width: 1200px)"
selectionPriority: 1
fields:
- source: productName
filter: true
name:
de: Produktname
en: Product Name
- source: previewImage
filter: true
name:
de: Vorschaubild
en: Preview Image
- source: printfulProductId
filter: true
name:
de: Printful Produkt ID
en: Printful Product ID
- source: forcedWarning
filter: true
name:
de: Warnungsanzeige
en: Warning Display
- type: table
mediaQuery: "(min-width: 600px)"
columns:
- source: productName
- source: previewImage
- source: bigCommerceSKU
- source: printfulProductId
- source: forcedWarning
- type: simpleList
primaryText: previewImage
secondaryText: productName
tertiaryText: printfulProductId
tablist:
activeTab: generalDetails
tabs:
- name: generalDetails
label:
de: Allgemeine Details
en: General Details
subFields:
- source: productName
- source: previewImage
- source: bigCommerceSKU
- source: bigCommerceId
- name: edit
label:
de: Bearbeitbar
en: Editable
subFields:
- source: forcedWarning
- source: printfulProductId
- name: sizingChart
label:
de: Größentabelle
en: Sizing Chart
subFields:
- source: sizingChart
subNavigation:
- name: modal
views: *views
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
permissions:
public:
methods:
get: true
post: false
put: false
delete: false
user:
methods:
get: true
post: true
put: false
delete: false
token:${BIGCOMMERCE_WEBHOOK_TOKEN}:
methods:
get: true
post: true
put: true
delete: true
hooks:
put:
update:
type: javascript
file: hooks/product/put_update.js
post:
create:
type: javascript
file: hooks/product/post_create.js
get:
read:
type: javascript
file: hooks/product/get_read.js
return:
type: javascript
file: hooks/product/get_return.js
fields:
- name: bigCommerceSKU
type: string
meta:
label:
de: BigCommerce SKU
en: BigCommerce SKU
helperText:
de: Die SKU des Produkts in BigCommerce
en: The SKU of the product in BigCommerce
- name: bigCommerceId
type: number
meta:
label:
de: BigCommerce ID
en: BigCommerce ID
helperText:
de: Die ID des Produkts in BigCommerce
en: The ID of the product in BigCommerce
- name: printfulProductId
type: string
meta:
label:
de: Printful Produkt ID
en: Printful Product ID
helperText:
de: Die ID des Produkts in Printful
en: The ID of the product in Printful
- name: previewImage
type: string
meta:
label:
de: Vorschaubild
en: Preview Image
widget: imageURL
- name: productName
type: string
meta:
label:
de: Produktname
en: Product Name
- name: forcedWarning
type: string
meta:
label:
de: Warnungsanzeige
en: Warning Display
- name: sizingChart
type: object
meta:
label:
de: Größentabelle
en: Sizing Chart
subFields:
- name: imageURL
type: string
meta:
label:
de: Bild
en: Image
widget: imageURL
- name: imageDescription
type: string
meta:
label:
de: Bildbeschreibung
en: Image Description
widget: richtext
- name: generalDescription
type: string
meta:
label:
de: Allgemeine Beschreibung
en: General Description
widget: richtext
- name: availableSizes
type: string[]
meta:
label:
de: Verfügbare Größen
en: Available Sizes
widget: select
choices:
- name: XS
id: XS
- name: S
id: S
- name: M
id: M
- name: L
id: L
- name: XL
id: XL
- name: 2XL
id: 2XL
- name: 3XL
id: 3XL
- name: 4XL
id: 4XL
- name: 5XL
id: 5XL
- name: 6XL
id: 6XL
- name: columns
type: object[]
meta:
label:
de: Spalten
en: Columns
subFields:
- name: label
type: string
meta:
label:
de: Label ID
en: Label ID
widget: foreignKey
foreign:
collection: module
id: label
subNavigation: 0
render:
defaultCollectionViews: true
containerProps:
layout:
size:
default: "col-6"
small: "col-12"
large: "col-6"
- name: sizes
type: string[]
meta:
label:
de: Größen
en: Sizes
useDefaultArray: true
widget: string
helperText:
de: In CM, selbe reihenfolge wie in der availableSizes
en: In CM, same order as in availableSizes

View File

@@ -1,38 +0,0 @@
# just here since bgicommerces graphql api regarding cart and checkout isnt working (only cart create is possible, otherwise it always says cart is not existant)
########################################################################
# cart
########################################################################
name: dummyCartEndpoint
meta:
hideInNavigation: true
openapi:
disabled: true
permissions:
public:
methods:
get: true
post: true
put: false
delete: false
user:
methods:
get: false
post: false
put: false
delete: false
hooks:
get:
read:
type: javascript
file: hooks/cart/get_read.js
post:
validate:
type: javascript
file: hooks/cart/post_validate.js
fields:

View File

@@ -1,74 +0,0 @@
- name: products
type: object[]
meta:
label:
de: Produkte
en: Products
subFields:
- name: productImage
type: string
meta:
label:
de: Produktbild
en: Product Image
widget: foreignKey
foreign:
collection: medialib
id: id
subNavigation: 0
render:
defaultCollectionViews: true
- name: productReference
type: string
meta:
label:
de: Produktreferenz
en: Product Reference
widget: foreignKey
foreign:
collection: bigCommerceProduct
id: id
subNavigation: 0
render:
defaultCollectionViews: true
- name: imageWidth
type: number
meta:
label:
de: Bildbreite
en: Image Width
helperText:
de: "Höhe des Bildes in Prozent."
en: "Height of the image in percent."
- name: imageHeight
type: number
meta:
label:
de: Bildhöhe
en: Image Height
helperText:
de: "Höhe des Bildes in Prozent."
en: "Height of the image in percent."
- name: imageTop
type: number
meta:
label:
de: Bildabstand oben
en: Image Top
helperText:
de: "Abstand des Bildes zum oberen Rand in Prozent."
en: "Distance of the image to the top edge in percent."
- name: imageLeft
type: number
meta:
label:
de: Bildabstand links
en: Image Left
helperText:
de: "Abstand des Bildes zum linken Rand in Prozent."
en: "Distance of the image to the left edge in percent."

View File

@@ -1,33 +0,0 @@
name: checkboxGroupInput
type: object
meta:
label:
de: Checkbox Gruppe
en: Checkbox Group
dependsOn:
eval: $parent?.inputWidgets?.includes('checkboxGroup')
helperText:
de: Ansammlung von Checkboxen
en: Collection of checkboxes
subFields:
- name: groupTitle
type: string
meta:
label:
de: Gruppe Titel
en: Group title
- name: checkboxes
type: object[]
meta:
label:
de: Checkbox Gruppe
en: Checkbox Group
direction: row
widget: containerLessObjectArray
subFields:
- name: standardInputProperties
meta:
widget: containerLessObject
subFields: !include standardInputProperties.yml

View File

@@ -1,17 +0,0 @@
name: dateInput
type: object
meta:
label:
de: Normaler Kalender
en: Normal calendar
helperText:
de: Datumsfeld
en: Date field
dependsOn:
eval: $parent?.inputWidgets?.includes('defaultCalendar')
subFields:
- name: standardInputProperties
type: object
meta:
widget: containerLessObject
subFields: !include standardInputProperties.yml

View File

@@ -1,46 +0,0 @@
name: datePickerInput
type: object
meta:
label:
de: Custom Kalender
en: Custom Calendar
dependsOn:
eval: $parent?.inputWidgets?.includes('customCalendar')
subFields:
- name: props
type: object
meta:
label:
de: Datumauswahl Eigenschaften
en: Date selection properties
subFields:
- name: allowedDateRanges
type: object[]
meta:
label:
de: Erlaubte Datumsbereiche
en: Allowed date ranges
widget: containerLessObjectArray
subFields:
- !include ../../fields/from.yml
- name: to
type: date
meta:
label:
de: Bis
en: To
widget: date
containerProps:
layout:
size:
default: "col-6"
small: "col-12"
large: "col-6"
- !include ../../fields/excludedDays.yml
- name: standardInputProperties
type: object
meta:
widget: containerLessObject
subFields: !include standardInputProperties.yml

View File

@@ -1,192 +0,0 @@
- name: emailSubject
type: string
meta:
label:
de: Email Betreff
en: Email Subject
containerProps:
layout:
size:
default: "col-6"
small: "col-12"
large: "col-6"
- name: emailReciever
type: string
meta:
label:
de: Email Empfänger
en: Email Reciever
helperText:
de: "Bsp: xyz@gmail.com"
en: "E.g.: xyz@gmail.com"
containerProps:
layout:
size:
default: "col-6"
small: "col-12"
large: "col-6"
- !include ../../fields/emailCC.yml
- name: emailIntroduction
type: string
meta:
label:
de: Email Einleitungssatz
en: Email Introduction Sentence
helperText:
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:
de: Zeile
en: Row
widget: grid
addElementLabel: Zeile Hinzufügen
subFields:
- name: title
type: string
meta:
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!"
- name: emailTitle
type: string
meta:
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!"
- name: columns
type: object[]
meta:
label:
de: Spalte
en: Column
addElementLabel:
de: Spalte hinzufügen
en: Add column
widget: grid
direction: horizontal
subFields:
- name: title
type: string
meta:
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[]
meta:
label:
de: Angezeigte Eingabefelder
en: Displayed input fields
widget: selectArray
choices:
- name:
de: Nummernblock
en: Number block
id: labelNumber
- name:
de: Zeitenauswahlfeld
en: Time selection field
id: times
- name:
de: Auswahlfeld
en: Selection field
id: select
- name:
de: Datumsauswahl - Standard Kalender
en: Date selection - Standard calendar
id: defaultCalendar
- name:
de: Datumauswahl - Custom Kalender
en: Date selection - Custom calendar
id: customCalendar
- name:
de: Nummerfeld
en: Number field
id: number
- name:
de: Checkbox Gruppe
en: Checkbox group
id: checkboxGroup
- name:
de: Mehrfachauswahl
en: Multiple selection
id: multiSelect
- 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
- !include numberInput.yml
- !include checkboxGroup.yml
- !include datePicker.yml
- !include multiSelectInput.yml
- !include textInputs.yml
- !include timeSelect.yml

View File

@@ -1,79 +0,0 @@
name: labelNumberInput
type: object[]
meta:
label:
de: Nummer block
en: Number block
dependsOn:
eval: $parent?.inputWidgets?.includes('labelNumber')
helperText:
de: Links beschreibender Text, rechts zahleneingabe
en: Left descriptive text, right number input
subFields:
- name: group
type: number
meta:
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.
- name: title
type: string
meta:
label: Titel
helperText:
de: Block Titel
en: Block title
containerProps:
layout:
size:
default: "col-6"
small: "col-12"
large: "col-6"
- name: emailName
type: string
meta:
label:
de: Email Name
en: Email name
containerProps:
layout:
size:
default: "col-6"
small: "col-12"
large: "col-6"
- name: block
type: object[]
meta:
label: Block
widget: containerLessObjectArray
subFields:
- name: label
type: string
meta:
label: Label
containerProps:
layout:
size:
default: "col-6"
small: "col-12"
large: "col-6"
- name: emailName
type: string
meta:
label:
de: Email Name
en: Email name
containerProps:
layout:
size:
default: "col-6"
small: "col-12"
large: "col-6"

View File

@@ -1,50 +0,0 @@
name: multiSelectInput
type: object
meta:
label:
de: Mehrfachauswahl Input
en: Multi Select Input
dependsOn:
eval: $parent?.inputWidgets?.includes('multiSelect')
subFields:
- name: standardInputProperties
type: object
meta:
widget: containerLessObject
subFields: !include standardInputProperties.yml
- name: options
type: object[]
meta:
label:
de: Mehrfachauswahl Optionen
en: Multi Select Options
direction: row
widget: containerLessObjectArray
subFields:
- name: name
type: string
meta:
label:
de: Name
en: Name
- name: props
type: object
meta:
label:
de: Mehrfachauswahl Eigenschaften
en: Multi Select Properties
subFields:
- name: additionalAddableValues
type: boolean
meta:
label:
de: Zusätzliche hinzufügbare Werte
en: Additional addable values
containerProps:
layout:
size:
default: "col-6"
small: "col-12"
large: "col-6"

View File

@@ -1,14 +0,0 @@
name: numberInput
type: object
meta:
label:
de: Nummereingabe
en: Number Input
dependsOn:
eval: $parent?.inputWidgets?.includes('number')
subFields:
- name: standardInputProperties
type: object
meta:
widget: containerLessObject
subFields: !include standardInputProperties.yml

View File

@@ -1,71 +0,0 @@
- name: emailTitle
type: string
meta:
label:
de: Email Titel
en: Email title
containerProps:
layout:
size:
default: "col-6"
small: "col-12"
large: "col-6"
- name: placeholder
type: string
meta:
label:
de: Platzhalter
en: Placeholder
containerProps:
layout:
size:
default: "col-6"
small: "col-12"
large: "col-6"
- name: notRequired
type: boolean
meta:
label:
de: nicht Notwendig
en: not required
containerProps:
layout:
size:
default: "col-6"
small: "col-12"
large: "col-6"
- name: fieldOrder
type: number
meta:
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.
containerProps:
layout:
size:
default: "col-6"
small: "col-12"
large: "col-6"
- name: textTitle
type: string
meta:
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

View File

@@ -1,58 +0,0 @@
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"

View File

@@ -1,52 +0,0 @@
name: textInput
type: object[]
meta:
label: Textfeld
addElementLabel: Textfeld hinzufügen
dependsOn:
eval: $parent?.inputWidgets?.includes('text')
subFields:
- name: standardInputProperties
type: object
meta:
widget: containerLessObject
subFields: !include standardInputProperties.yml
- name: textArea
type: boolean
meta:
label:
de: Großes Textfeld
en: Large text field
containerProps:
layout:
size:
default: "col-4"
small: "col-6"
large: "col-4"
- name: emailValidation
type: boolean
meta:
label:
de: E-Mail-Validierung
en: E-mail validation
containerProps:
layout:
size:
default: "col-4"
small: "col-6"
large: "col-4"
- name: telValidation
type: boolean
meta:
label:
de: Telefon-Validierung
en: Phone validation
containerProps:
layout:
size:
default: "col-4"
small: "col-6"
large: "col-4"

View File

@@ -1,45 +0,0 @@
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"

View File

@@ -1,60 +0,0 @@
name: timesInput
type: object
meta:
label:
de: Zeitenauswahlfeld
en: Time input
dependsOn:
eval: $parent?.inputWidgets?.includes('times')
helperText:
de: Selectfeld mit von - bis Angabe
en: Select field with from - to specification
subFields:
- name: times
type: object[]
meta:
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
subFields:
- name: from
type: string
meta:
label:
de: Anfangspunkt
en: Starting point
helperText:
de: Bspw. 14:30
en: E.g. 14:30
containerProps:
layout:
size:
default: "col-6"
small: "col-12"
large: "col-6"
- name: to
type: string
meta:
label: Endpunkt
helperText:
de: Bspw. 15:30
en: E.g. 15:30
containerProps:
layout:
size:
default: "col-6"
small: "col-12"
large: "col-6"
- name: standardInputProperties
type: object
meta:
widget: containerLessObject
subFields: !include standardInputProperties.yml

View File

@@ -1,12 +0,0 @@
- type: table
columns:
- source: status
filter: true
- source: customerTibiId
filter:
type: foreignKey
- source: insertTime
filter: true
- source: products.tibiId
filter:
type: foreignKey

View File

@@ -1,143 +0,0 @@
name: helpCenterChapter
# Metaangaben zur Kollektion welche in der Admin-UI verwendet werden können
meta:
openapi:
disabled: true
# Navigationseintrag in der Admin-UI
label:
de: Helpcenter Kapitel
en: Helpcenter Chapter
backup:
active: true
collectionName: backups
# Icon (Material UI) für den Navigationseintrag
muiIcon: web
tablist:
activeTab: general
tabs:
- name: general
label:
de: Allgemein
en: General
subFields:
- source: title
- source: slug
- source: brightIcon
- source: darkIcon
- name: questions
label:
de: Fragen
en: Questions
subFields:
- source: questions
views:
# Desktop
- type: table
mediaQuery: "(min-width:600px)"
columns:
- source: title
name: Titel
filter: true
- source: slug
name: Slug
filter: true
permissions:
public:
methods:
get: true
post: false
put: false
delete: false
user:
methods:
get: true
post: true
put: true
delete: true
# Feldliste der Kollektion
fields:
- name: title
type: string
meta:
label:
de: Titel
en: Title
- name: slug
type: string
meta:
label:
de: Slug
en: Slug
- name: brightIcon
type: string
meta:
label:
de: Icon Hell
en: Icon Bright
widget: foreignKey
foreign:
collection: medialib
id: id
subNavigation: 0
render:
defaultCollectionViews: true
containerProps:
layout:
size:
default: "col-6"
small: "col-12"
large: "col-6"
- name: darkIcon
type: string
meta:
label:
de: Icon Dunkel
en: Icon Dark
widget: foreignKey
foreign:
collection: medialib
id: id
subNavigation: 0
render:
defaultCollectionViews: true
containerProps:
layout:
size:
default: "col-6"
small: "col-12"
large: "col-6"
- name: questions
type: object[]
meta:
label:
de: Fragen
en: Questions
widget: containerLessObjectArray
subFields:
- name: priority
type: boolean
meta:
label:
de: Priorität
en: Priority
helperText:
de: ob sie direkt ganz oben angezeigt werden soll
en: if it should be displayed directly at the top
- name: page
type: string
meta:
label:
de: Seite
en: Page
widget: foreignKey
foreign:
collection: content
id: path
subNavigation: 0
render:
defaultCollectionViews: true

View File

@@ -1,61 +0,0 @@
# no data in collection, only for post hook
name: login
uploadPath: ../media/login
# Metaangaben zur Kollektion welche in der Admin-UI verwendet werden können
meta:
openapi:
disabled: true
hideInNavigation: true
# Navigationseintrag in der Admin-UI
label: { de: "Login", en: "Login" }
# Icon (Material UI) für den Navigationseintrag
muiIcon: web
# Identifizierung eines Eintrags für z.B. Select-Boxen in der Admin-UI
rowIdentTpl: { twig: "{{ id }}" }
# Standardsortierung der Liste
defaultSort: { field: "id", order: "ASC" }
# Admin-Backend Ansichten
defaultImageFilter: s
views:
# Mobile Darstellung
- type: simpleList
mediaQuery: "(max-width:599px)"
primaryText: id
# Desktop
- type: table
mediaQuery: "(min-width:600px)"
columns:
- id
# Zugriff auf diese Kollektion
permissions:
# öffentlicher Zugriff
public:
methods:
# Liste und Einzeleinträge lesen
get: false
# neuen Eintrag anlegen
post: true
# Eintrag editieren
put: false
# Eintrag löschen
delete: false
# zum Projekt zugeordneter Benutzer ohne Zusatzberechtigungen
user:
methods:
get: true
post: true
put: true
delete: true
hooks:
post:
# check and return jwt
create:
type: javascript
file: hooks/login/post_create.js
# Feldliste der Kollektion
fields: []

View File

@@ -1,24 +0,0 @@
name: lookCombination
meta:
allowExportAll: true
label:
de: Styling Kombinationen
en: Look Combination
muiIcon: label
views: []
permissions:
public:
methods:
get: true
post: false
put: false
delete: false
user:
methods:
get: true
post: true
put: true
delete: true
fields: []

View File

@@ -1,75 +0,0 @@
name: productBackgroundImage
meta:
allowExportAll: true
label:
de: Produkt Bg.
en: Product Bg.
muiIcon: label
defaultSort:
field: name
order: ASC
views: &views
- type: table
columns:
- source: type
filter: true
- source: image
filter:
type: foreignKey
permissions:
public:
methods:
get: true
post: false
put: false
delete: false
user:
methods:
get: true
post: true
put: true
delete: true
fields:
- name: type
type: string
meta:
label:
de: Typ
en: Type
widget: select
choices:
- id: standard
label:
de: Standard
en: Standard
- id: dark
label:
de: Dunkel
en: Dark
- name: image
type: string
meta:
label:
de: Tibi ID
en: Tibi ID
widget: foreignKey
foreign:
collection: medialib
id: id
subNavigation: 0
render:
defaultCollectionViews: true
filter:
type: foreignKey
containerProps:
layout:
size:
default: "col-6"
small: "col-12"
large: "col-6"

View File

@@ -1,54 +0,0 @@
name: productBenefit
meta:
allowExportAll: true
label:
de: Product Vorteile
en: Product Benefits
muiIcon: label
defaultSort:
field: name
order: ASC
views: &views
- type: table
columns:
- source: title
label:
de: Titel
en: Title
- source: description
label:
de: Beschreibung
en: Description
permissions:
public:
methods:
get: true
post: false
put: false
delete: false
user:
methods:
get: true
post: true
put: true
delete: true
fields:
- name: title
type: string
meta:
label:
de: Titel
en: Title
- name: description
type: string
meta:
widget: richtext
label:
de: Beschreibung
en: Description

View File

@@ -1,301 +0,0 @@
name: rating
meta:
label: { de: "Bewertungen", en: "Ratings" }
muiIcon: reviews
views: &views
- type: simpleList
mediaQuery: "max-width: 600px"
- type: table
columns:
- source: bigCommerceProductId
filter:
type: foreignKey
- source: bigcommerceOrderId
filter:
type: foreignKey
- source: rating.overall
filter: true
- source: status
filter: true
tablist:
activeTab: generalDetails
tabs:
- name: generalDetails
label:
de: Allgemeine Details
en: General Details
subFields:
- source: bigCommerceProductId
- source: bigcommerceOrderId
- source: status
- source: review_date
- source: bigcommerceReviewId
- name: rating
label:
de: Bewertung
en: Rating
subFields:
- source: rating
- source: comment
- source: title
subNavigation:
- name: modal
views: *views
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
permissions:
public:
methods:
get: true
post: true
put: true
delete: false
user:
methods:
get: true
post: true
put: true
delete: false
hooks:
delete:
delete:
type: javascript
file: hooks/rating/delete_delete.js
return:
type: javascript
file: hooks/rating/delete_return.js
get:
read:
type: javascript
file: hooks/rating/get_read.js
post:
validate:
type: javascript
file: hooks/rating/post_validate.js
create:
type: javascript
file: hooks/rating/post_create.js
return:
file: hooks/rating/post_return.js
type: javascript
put:
validate:
type: javascript
file: hooks/rating/put_validate.js
update:
type: javascript
file: hooks/rating/put_update.js
return:
file: hooks/rating/put_return.js
type: javascript
fields:
- name: bigcommerceOrderId
type: number
index: [single]
meta:
filter:
type: foreignKey
label: { de: "Interne Bestellnummer", en: "Internal Order Id" }
widget: foreignKey
foreign:
collection: bigCommerceOrder
subNavigation: 0
id: bigCommerceId
render:
defaultCollectionViews: true
validator:
required: true
- name: bigCommerceProductId
index: [single]
type: number
meta:
filter:
type: foreignKey
label: { de: "Produkt", en: "Product" }
widget: foreignKey
foreign:
collection: bigCommerceProduct
subNavigation: 0
id: bigCommerceId
render:
defaultCollectionViews: true
validator:
required: true
- name: rating
index: [single]
type: object
meta:
widget: containerLessObject
label: { de: "Bewertung", en: "Rating" }
subFields:
- name: quality
type: number
meta:
label: { de: "Qualität", en: "Quality" }
helperText: { de: "1 - Schlecht; 5 - Sehr Gut", en: "1 - Bad; 5 - Very Good" }
validator:
eval: |
(function () {
return $this >= 0 && $this <= 5;
})()
containerProps:
layout:
size:
default: "col-6"
small: "col-12"
large: "col-4"
- name: priceQualityRatio
type: number
meta:
label: { de: "Preis-Leistungs-Verhältnis", en: "Price-Quality Ratio" }
helperText: { de: "1 - Schlecht; 5 - Sehr Gut", en: "1 - Bad; 5 - Very Good" }
validator:
eval: |
(function () {
return $this >= 0 && $this <= 5;
})()
containerProps:
layout:
size:
default: "col-6"
small: "col-12"
large: "col-4"
- name: comfort
type: number
meta:
label: { de: "Komfort", en: "Comfort" }
helperText: { de: "1 - Unbequem; 5 - Sehr Bequem", en: "1 - Uncomfortable; 5 - Very Comfortable" }
validator:
eval: |
(function () {
return $this >= 0 && $this <= 5;
})()
containerProps:
layout:
size:
default: "col-6"
small: "col-12"
large: "col-4"
- name: overall
type: number
meta:
label: { de: "Gesamt", en: "Overall" }
helperText: { de: "1 - Schlecht; 5 - Sehr Gut", en: "1 - Bad; 5 - Very Good" }
validator:
eval: |
(function () {
return $this >= 0 && $this <= 5;
})()
containerProps:
layout:
size:
default: "col-6"
small: "col-12"
large: "col-4"
- name: comment
type: string
meta:
label: { de: "Kommentar", en: "Comment" }
containerProps:
layout:
size:
default: "col-6"
small: "col-12"
large: "col-6"
inputProps:
multiline: true
- name: title
type: string
meta:
label: { de: "Titel", en: "title" }
containerProps:
layout:
size:
default: "col-6"
small: "col-12"
large: "col-6"
inputProps:
multiline: true
- name: review_date
type: date
validator:
eval: |
(function () {
return (new Date($this) !== "Invalid Date") && !isNaN(new Date($this));
})()
meta:
label: { de: "Erstellungsdatum", en: "Creation date" }
defaultValue:
eval: new Date()
containerProps:
layout:
size:
default: "col-6"
small: "col-12"
large: "col-6"
- name: status
type: string
index: [single]
validator:
eval: (["pending", "approved", "rejected"].includes($this))
meta:
label: Status
widget: "select"
defaultValue: pending
choices:
- name: { de: wartend, en: pending }
id: pending
- name: { de: bestätigt, en: approved }
id: approved
- name: { de: abgelehnt, en: rejected }
id: rejected
containerProps:
layout:
size:
default: "col-6"
small: "col-12"
large: "col-6"
- name: bigcommerceReviewId
type: string
meta:
label:
de: "BigCommerce Review Id"
en: "BigCommerce Review Id"
helperText:
de: "Die ID der Bewertung in BigCommerce"
en: "The ID of the review in BigCommerce"
indexes:
- name: fulltext # Ein eindeutiger Name für den Index. Es ist optional, wird jedoch empfohlen, um den Index später leicht identifizieren zu können.
key: # Bestimmt, auf welche Felder der Index angewendet werden soll. Dies kann ein einfacher String sein, wenn der Index nur ein Feld umfasst, oder ein Array von Strings, wenn der Index mehrere Felder umfasst.
- $text:$**

View File

@@ -1,196 +0,0 @@
name: selfImprovementChapter
meta:
allowExportAll: true
label:
de: SelfImp. Kapitel
en: SelfImp. Chapter
muiIcon: label
backup:
active: true
collectionName: backups
defaultSort:
field: name
order: ASC
views: &views
- type: table
columns:
- source: title
label:
de: Titel
en: Title
filter: true
- source: shortDescription
label:
de: Kurzbeschreibung
en: Short Description
filter: true
tabs:
activeTab: generalDetails
tabs:
- name: generalDetails
label:
de: Allgemeine Details
en: General Details
subFields:
- source: title
- source: alias
- source: previewVideo
- source: previewImage
- source: locked
- name: homepage
label:
de: Homepage
en: Homepage
subFields:
- source: shortDescription
- source: description
subNavigation:
- name: modalForeign
defaultSort:
field: name
order: ASC
views: *views
defaultCallback:
eval: |
(entry) => {
parent.selectEntry(entry)
}
permissions:
public:
methods:
get: true
post: false
put: false
delete: false
user:
methods:
get: true
post: true
put: true
delete: true
fields:
- name: type
type: number
meta:
label:
de: Typ
en: Type
widget: select
choices:
- name: Krass Kraft
id: 1
- name: Crazy Calm
id: 2
- name: Crazy Crave Control
id: 3
- name: Krass Kreativ
id: 4
containerProps:
layout:
size:
default: "col-6"
small: "col-12"
large: "col-6"
- name: title
type: string
meta:
label:
de: Titel
en: Title
containerProps:
layout:
size:
default: "col-6"
small: "col-12"
large: "col-6"
- name: alias
type: string
meta:
label:
de: Alias
en: Alias
containerProps:
layout:
size:
default: "col-6"
small: "col-12"
large: "col-6"
- name: shortDescription
type: string
meta:
label:
de: Kurze Beschreibung
en: Short Description
containerProps:
layout:
size:
default: "col-6"
small: "col-12"
large: "col-6"
- name: description
type: string
meta:
widget: richtext
label:
de: Beschreibung
en: Description
containerProps:
layout:
size:
default: "col-6"
small: "col-12"
large: "col-6"
- name: previewVideo
type: string
meta:
label:
de: Vorschau Video
en: Preview Video
widget: foreignKey
foreign:
collection: medialib
id: id
subNavigation: 0
render:
defaultCollectionViews: true
- name: previewImage
type: string
meta:
label:
de: Vorschau Bild
en: Preview Image
widget: foreignKey
foreign:
collection: medialib
id: id
subNavigation: 0
render:
defaultCollectionViews: true
- name: locked
type: boolean
meta:
label:
de: Gesperrt
en: Locked
helperText:
de: Wenn gesperrt, kann das Kapitel nicht geöffnet werden.
en: If locked, the chapter cannot be opened.
containerProps:
layout:
size:
default: "col-6"
small: "col-12"
large: "col-6"

View File

@@ -1,74 +0,0 @@
name: shopStatus
# Metaangaben zur Kollektion welche in der Admin-UI verwendet werden können
meta:
openapi:
disabled: true
# Navigationseintrag in der Admin-UI
backup:
active: true
collectionName: backups
label:
de: Shop Status
en: Shop Status
# Icon (Material UI) für den Navigationseintrag
muiIcon: web
views:
# Mobile Darstellung
- type: simpleList
mediaQuery: "(max-width:599px)"
primaryText: status
secondaryText: password
# Desktop
- type: table
mediaQuery: "(min-width:600px)"
columns:
- source: status
label:
de: Status
en: Status
filter: true
- source: password
label:
de: Passwort
en: Password
filter: true
permissions:
# öffentlicher Zugriff
public:
methods:
get: true
post: false
put: false
delete: false
user:
methods:
get: true
post: true
put: true
delete: true
# Feldliste der Kollektion
fields:
- name: status
type: string
meta:
label:
de: Status
en: Status
widget: select
choices:
- name: open
id: open
- name: login
id: login
- name: password
type: string
meta:
label:
de: Passwort
en: Password

View File

@@ -1,24 +0,0 @@
name: sizingDetails
meta:
allowExportAll: true
label:
de: Größen Details
en: Sizing Details
muiIcon: label
views: []
permissions:
public:
methods:
get: true
post: false
put: false
delete: false
user:
methods:
get: true
post: true
put: true
delete: true
fields: []

View File

@@ -1,92 +0,0 @@
########################################################################
# Webhooks
########################################################################
name: webhook
meta:
openapi:
disabled: true
label: { de: "Webhooks", en: "webhooks" }
muiIcon: http
rowIdentTpl: { twig: "{{ insertTime }} - {{ type }}" }
views:
- type: simpleList
mediaQuery: "(max-width: 600px)"
primaryText: type
secondaryText: scope
- type: table
columns:
- type
- scope
- active
permissions:
public:
methods:
get: false
post: true
put: false
delete: false
user:
methods:
get: true
post: true
put: false
delete: false
"token:${BIGCOMMERCE_WEBHOOK_TOKEN}":
methods:
get: true
post: true
put: false
delete: false
hooks:
post:
create:
type: javascript
file: hooks/webhook/post_create.js
put:
update:
type: javascript
file: hooks/webhook/put_update.js
delete:
delete:
type: javascript
file: hooks/webhook/delete_delete.js
fields:
- name: type
type: string
meta:
label: { de: "Typ", en: "Type" }
widget: select
choices:
- id: "bigCommerce"
name: "BigCommerce"
- id: "printful"
name: "Printful"
- name: scope
type: string
meta:
label: { de: "Scope", en: "Scope" }
helperText:
de: "The scope of the webhook, for example: store/product/*"
en: "The scope of the webhook, for example: store/product/*"
- name: active
type: boolean
meta:
label: { de: "Aktiv", en: "Active" }
helperText:
de: "Aktiviert oder deaktiviert den Webhook"
en: "Enables or disables the webhook"
- name: webhookId
type: number
meta:
label: { de: "Webhook ID", en: "Webhook ID" }
helperText:
de: "Die ID des Webhooks"
en: "The ID of the webhook"
inputProperties:
disabled: true

View File

@@ -1,36 +0,0 @@
########################################################################
# cart
########################################################################
name: dummyWishlistEntryEndpoint
meta:
hideInNavigation: true
openapi:
disabled: true
permissions:
public:
methods:
get: true
post: true
put: false
delete: false
user:
methods:
get: false
post: false
put: false
delete: false
hooks:
get:
read:
type: javascript
file: hooks/wishlist/get_read.js
post:
validate:
type: javascript
file: hooks/wishlist/post_create.js
fields: