302 lines
9.0 KiB
YAML
302 lines
9.0 KiB
YAML
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:$**
|