Initial commit
This commit is contained in:
301
api/collections/rating.yml
Normal file
301
api/collections/rating.yml
Normal file
@@ -0,0 +1,301 @@
|
||||
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:$**
|
||||
Reference in New Issue
Block a user