Files
kontextwerk/api/collections/contact.yml
2025-10-02 08:54:03 +02:00

187 lines
4.9 KiB
YAML

name: contact
# Metaangaben zur Kollektion welche in der Admin-UI verwendet werden können
meta:
openapi:
disabled: true
# Navigationseintrag in der Admin-UI
label:
de: Kontaktanfragen
en: Contact request
# Icon (Material UI) für den Navigationseintrag
muiIcon: web
defaultSort:
field: insertTime
order: DESC
backup:
active: true
collectionName: backups
views: &views # Mobile Darstellung
- type: simpleList
mediaQuery: "(max-width:599px)"
primaryText: status
secondaryText: request.email
# Desktop
- type: table
mediaQuery: "(min-width:600px)"
columns:
- source: status
label:
de: Status
en: Status
filter: true
- source: request.email
label:
de: E-Mail
en: E-Mail
filter: true
- source: request.name
label:
de: Name
en: Name
filter: true
- source: request.description
label:
de: Beschreibung
en: Description
filter: true
- source: insertTime
label:
de: Erstellt am
en: Created at
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: new
- name: inProgress
label:
de: In Bearbeitung
en: In Progress
muiIcon: inProgress
defaultSort:
field: insertTime
order: DESC
views: *views
filter:
status: inProgress
- name: done
label:
de: Abgeschlossen
en: Done
muiIcon: done
defaultSort:
field: insertTime
order: DESC
views: *views
filter:
status: done
hooks:
post:
create:
type: javascript
file: hooks/contact/post_create.js
return:
type: javascript
file: hooks/contact/post_return.js
permissions:
public:
methods:
get: false
post: true
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: neue
id: new
- name: in Bearbeitung
id: inProgress
- name: abgeschlossen
id: done
- name: request
type: object
meta:
label:
de: Anfrage
en: Request
subFields:
- 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: name
type: string
meta:
label:
de: Name
en: Name
containerProps:
layout:
size:
default: "col-6"
small: "col-12"
large: "col-6"
- name: description
type: string
meta:
label:
de: Beschreibung
en: Description
inputProps:
multiline: true
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:$**