my-notes-viewer/api/collections/navigation.yml

219 lines
5.9 KiB
YAML

###############################################################
# Media Library
###############################################################
# Name/URL-Anteil der Kollektion
name: navigation
uploadPath: ../media/navigation
# Metaangaben zur Kollektion welche in der Admin-UI verwendet werden können
meta:
# Navigationseintrag in der Admin-UI
label: { de: "Navigation", en: "Navigation" }
# Icon (Material UI) für den Navigationseintrag
muiIcon: file-tree
# Identifizierung eines Eintrags für z.B. Select-Boxen in der Admin-UI
rowIdentTpl: { twig: "{{ path }}" }
# Standardsortierung der Liste
defaultSort: { field: "id", order: "ASC" }
# Admin-Backend Ansichten
defaultImageFilter: s
views:
- type: simpleList
mediaQuery: "(max-width:599px)"
primaryText: ident
secondaryText: locale
- type: table
mediaQuery: "(min-width:600px)"
columns:
- ident
- { source: locale, type: flag }
imageFilter:
xs:
- fit: true
height: 90
width: 90
resampling: lanczos
quality: 60
s:
- fit: true
height: 300
width: 300
resampling: lanczos
quality: 60
m:
- fit: true
height: 600
width: 600
resampling: lanczos
quality: 60
l:
- fit: true
height: 1200
width: 1200
resampling: lanczos
quality: 60
xl:
- fit: true
height: 2000
width: 2000
resampling: lanczos
quality: 60
permissions:
public:
methods:
get: true
post: false
put: false
delete: false
user:
methods:
get: true
post: false
put: false
delete: false
# token als Zusatzsicherung gegen Spam, mehr siehe Hook
"token:${PUBLIC_TOKEN}":
methods:
get: false
post: false
put: false
delete: false
# Field References
x-title: &title
name: title
type: string
meta:
label: { de: "Titel", en: "Title" }
helperText:
{
de: "Der Titel des Navigationspunkts wird auf der Webseite angezeigt.",
en: "The title of the navigation point is displayed on the page.",
}
x-settings: &settings
name: settings
type: object
meta:
widget: tabs
activeTab: 0
x-page: &page
name: page
type: object
meta:
widget: select
label: { de: Seite, en: "Page" }
choices:
endpoint: "content"
mapping:
id: "path"
name: "path"
params:
count: 1
sort: "ASC"
query: ""
x-url: &url
name: url
type: object
meta:
label: { de: "Link", en: "Link" }
subFields:
- name: url
type: string
meta:
label: { de: "Ziel-URL", en: "Target URL" }
helperText:
{
de: "Definiert eine interne oder externe URL, zu dieser bei Klick auf den Navigationspunkt, gesprungen wird.",
en: "Defines an internal or external URL to which a jump is made when the navigation point is clicked.",
}
inputProps:
type: "url"
- name: target
type: string
meta:
widget: select
label: { de: Zielfenster, en: Target }
defaultValue: "default"
choices:
- { id: "default", name: "Gleicher Tab oder Seite (ohne Refresh)" }
- { id: "_self", name: "Gleicher Tab oder Seite (Standardwert)" }
- { id: "_blank", name: "Neuer Tab oder Fenster" }
- { id: "_parent", name: "Elternfenster" }
- name: hidden
type: boolean
meta:
label: { de: "Ausgeblendet", en: "Hidden" }
helperText:
{
de: "Definiert, ob der Navigationspunkt in der Navigation angezeigt werden soll oder nicht.",
en: "Defines whether the navigation point should be displayed in the navigation or not.",
}
x-items: &items
name: items
type: object[]
meta:
collapse: { titleFieldName: "settings.title" }
label: { de: "Navigationspunkte", en: "Navigation Points" }
helperText:
{
de: "Definition aller Navigationspunkte für diese Navigation",
en: "Definition of all navigation points for this navigation",
}
# Feldliste der Kollektion
fields:
- name: ident
type: string
meta:
widget: select
choices:
- id: main
name:
de: Hauptnavigation
en: Main Navigation
- id: footer
name:
de: Fußzeile
en: Footer Navigation
- !include fields/_locale.yml
- <<: *items
subFields:
- <<: *settings
subFields:
- *title
- *page
- *url
- <<: *items
subFields:
- <<: *settings
subFields:
- *title
- *page
- *url
- <<: *items
subFields:
- <<: *settings
subFields:
- *title
- *page
- *url
indexes:
- unique: true
key:
- ident
- locale
- path