generated from cms/tibi-docs
47 lines
1.6 KiB
Markdown
47 lines
1.6 KiB
Markdown
# Javascript-Kontext im tibi-admin
|
|
|
|
Diverse `meta`-Angaben ermöglichen neben der eigentliche Angabe eines festen Wertes wie z.B:
|
|
|
|
```yaml
|
|
defaultValue: "Hallo Welt"
|
|
```
|
|
|
|
auch die Angabe eines Javascript-Ausdrucks, der zur Laufzeit ausgewertet wird. Dieser Ausdruck wird in einem Javascript-Kontext clientseitig ausgeführt und ist mit diversen Variablen vorbelegt.
|
|
Die Angabe des Javascript-Codes erfolgt dabei meist mit dem `eval`-Attribut dessen Wert der String des Codes ist:
|
|
|
|
```yaml
|
|
defaultValue:
|
|
eval: "new Date().toISOString().substr(0, 10)"
|
|
```
|
|
|
|
In den Fällen in denen ein Oneliner nicht ausreiched ist, bieten sich "selbst ausführende Funktionen" an, wie z.B.:
|
|
|
|
```js
|
|
(function() {
|
|
return new Date().toISOString().substr(0, 10)
|
|
})()
|
|
```
|
|
|
|
Um diese im YAML unterzubringen nutzt man YAML-Multiline-Modifizierer:
|
|
|
|
```yaml
|
|
defaultValue:
|
|
eval: |
|
|
(function() {
|
|
return new Date().toISOString().substr(0, 10)
|
|
})()
|
|
```
|
|
|
|
## Kontext-Variablen
|
|
|
|
Der Javascript-Kontext ist mit folgenden Variablen standardmäßig angereichert:
|
|
|
|
| Variable | Datentyp | Bedeutung |
|
|
| --- | --- | --- | --- | --- |
|
|
| `$namespace` | string | Der Namespacebezeichner des aktuellen Projekts |
|
|
| `$apiBase` | string | Basis-URL des API-Endpunkts |
|
|
| `$projectBase` | string | Basis-URL des Projekts-API-Endpunkts (`$apiBase`_/`$namespace`/) |
|
|
| `$auth` TODO | object | Das aktuelle Auth-Objetc des eingeloggten Benutzers |
|
|
| `$project` | object | Das aktuelle Projekt-Objekt, siehe [API /project](./../restapi/project.md) |
|
|
|
|
Die `meta`-Daten der Collections und Fields bekommen in den Javascript-Kontext der `eval`-Eigenschaften noch jeweils zusätzliche Variablen. |