########################################################################
# General Information
########################################################################

name: general
uploadPath: ../media/general
meta:
    # Navigationseintrag in der Admin-UI
    label: { de: "Allgemeine Informationen", en: "General Information" }
    # Icon (Material UI) für den Navigationseintrag
    muiIcon: information-outline
    # Identifizierung eines Eintrags für z.B. Select-Boxen in der Admin-UI
    rowIdentTpl: { twig: "{{ email }} - {{ subject }}" }
    # Standardsortierung der Liste
    defaultSort: { field: "path", order: "ASC" }
    # Admin-Backend Ansichten
    defaultImageFilter: s
    views:
        # Mobile Darstellung
        - type: simpleList
          mediaQuery: "(max-width:599px)"
          primaryText: firstname
          columns:
              - public
              - firstname
              - lastname
              - companyName
        # Desktop
        - type: table
          mediaQuery: "(min-width:600px)"
          columns:
              - public
              - firstname
              - lastname
              - companyName

imageFilter:
    xs:
        - fit: true
          height: 90
          width: 90
          resampling: "lancos"
          quality: 60
    s:
        - fit: true
          height: 300
          width: 300
          resampling: "lancos"
          quality: 60
    m:
        - fit: true
          height: 600
          width: 600
          resampling: "lancos"
          quality: 60
    l:
        - fit: true
          height: 1200
          width: 1200
          resampling: "lancos"
          quality: 60
    xl:
        - fit: true
          height: 2000
          width: 2000
          resampling: "lancos"
          quality: 60

permissions:
    public:
        methods:
            get: true
            post: false
            put: false
            delete: false
    user:
        methods:
            get: true
            post: true
            put: true
            delete: true
    # token als Zusatzsicherung gegen Spam, mehr siehe Hook
    "token:${PUBLIC_TOKEN}":
        methods:
            get: false
            post: false
            put: false
            delete: false

fields:
    - name: generalInformation
      type: tabs
      meta:
          label:
              de: Allgemeine Information
              en: General Information
          activeTab: 0
      subFields:
          - name: types
            type: object
            meta:
                label:
                    de: Allgemein
                    en: General
                css:
            subFields:
                - name: public
                  type: boolean
                  meta:
                      label:
                          de: Veröffentlicht
                          en: Public
                      helperText:
                          de: "Alle allgemeinen Informationen werden auf der Seite angezeigt."
                          en: "All general information are displayed on the page."
          - name: meta
            type: object
            meta:
                label:
                    de: Meta
                    en: Meta
                css:
            subFields:
                - name: metaTitle
                  type: string
                  meta:
                      label: { de: "Titel der Webseite", en: "Page Title" }
                - name: metaDescription
                  type: string
                  meta:
                      label: { de: "Beschreibung der Webseite", en: "Page Description" }
                - name: metaTagRobots
                  type: string[]
                  meta:
                      widget: chipArray
                      label:
                          de: Robots
                          en: Robots
                      defaultValue: []
                      autocomplete: true
                      choices:
                          - { id: "noindex", name: "noindex" }
                          - { id: "index", name: "index" }
                          - { id: "follow", name: "follow" }
                          - { id: "nofollow", name: "nofollow" }
                          - { id: "noimageindex", name: "noimageindex" }
                          - { id: "none", name: "none" }
                          - { id: "noarchive", name: "noarchive" }
                          - { id: "nocache", name: "nocache" }
                          - { id: "nosnippet", name: "nosnippet" }
                          - { id: "nnavailable_after", name: "nnavailable_after" }
                      helperText:
                          de: "<strong>Noindex</strong>: Weist eine Suchmaschine an, eine Seite nicht zu indizieren.<br/><strong>index</strong>: Weist eine Suchmaschine an, eine Seite zu indizieren. Beachten Sie, dass Sie dieses Meta-Tag nicht hinzufügen müssen; es ist die Voreinstellung.<br/><strong>follow</strong>: Auch wenn die Seite nicht indexiert ist, sollte der Crawler allen Links auf einer Seite folgen und Eigenkapital an die verlinkten Seiten weitergeben.<br/><strong>nofollow</strong>: Weist einen Crawler an, keinen Links auf einer Seite zu folgen oder Link-Equity weiterzugeben.<br/><strong>noimageindex</strong>: Weist einen Crawler an, keine Bilder auf einer Seite zu indizieren.<br/><strong>none</strong>: Entspricht der gleichzeitigen Verwendung der noindex- und nofollow-Tags.<br/><strong>noarchive</strong>: Suchmaschinen sollten keinen zwischengespeicherten Link zu dieser Seite auf einem SERP anzeigen.<br/><strong>nocache</strong>: Wie noarchive, aber nur von Internet Explorer und Firefox verwendet.<br/><strong>nosnippet</strong>: Weist eine Suchmaschine an, kein Snippet dieser Seite (d. h. Meta-Beschreibung) dieser Seite auf einem SERP anzuzeigen.<br/><strong>nnavailable_after</strong>: Suchmaschinen sollen diese Seite nach einem bestimmten Datum nicht mehr indexieren.<br/>"
                          en: "<strong>Noindex</strong>: Tells a search engine not to index a page.<br/><strong>index</strong>: Tells a search engine to index a page. Note that you don’t need to add this meta tag; it’s the default.<br/><strong>follow</strong>: Even if the page isn’t indexed, the crawler should follow all the links on a page and pass equity to the linked pages.<br/><strong>nofollow</strong>: Tells a crawler not to follow any links on a page or pass along any link equity.<br/><strong>noimageindex</strong>: Tells a crawler not to index any images on a page.<br/><strong>none</strong>: Equivalent to using both the noindex and nofollow tags simultaneously.<br/><strong>noarchive</strong>: Search engines should not show a cached link to this page on a SERP.<br/><strong>nocache</strong>: Same as noarchive, but only used by Internet Explorer and Firefox.<br/><strong>nosnippet</strong>: Tells a search engine not to show a snippet of this page (i.e. meta description) of this page on a SERP.<br/><strong>nnavailable_after</strong>: Search engines should no longer index this page after a particular date.<br/>"
                - name: metaKeywords
                  type: string
                  meta:
                      label: { de: "SEO / Schlüsselwörter", en: "SEO / Keywords" }
                      helperText:
                          de: "Beispiel: Stichwort1, Stichwort2, Stichwort3"
                          en: "Example: keyword1, keyword2, keyword3"
          - name: person
            type: object
            meta:
                label:
                    de: Personendaten
                    en: Personal Data
                css:
            subFields:
                - name: firstname
                  type: string
                  meta:
                      label: { de: "Vorname", en: "Firstname" }
                - name: lastname
                  type: string
                  meta:
                      label: { de: "Nachname", en: "Lastname" }
                - name: street
                  type: string
                  meta:
                      label: { de: "Straße", en: "Street" }
                - name: postcode
                  type: string
                  meta:
                      label: { de: "Postleitzahl", en: "Postcode" }
                - name: city
                  type: string
                  meta:
                      label: { de: "Ort", en: "City" }
                - name: tel
                  type: string
                  meta:
                      label: { de: "Telefonnummer", en: "Phone number" }
                - name: mobile
                  type: string
                  meta:
                      label: { de: "Handynummer", en: "Mobile number" }
                - name: email
                  type: string
                  meta:
                      label: { de: "E-Mail", en: "E-Mail" }
          - name: company
            type: object
            meta:
                label:
                    de: Unternehmensdaten
                    en: Company Data
                css:
            subFields:
                - name: companyName
                  type: string
                  meta:
                      label: { de: "Name des Unternehmens", en: "Company Name" }
                - name: companyWebUrl
                  type: string
                  meta:
                      label: { de: "URL zur Webseite", en: "Website URL" }
                - name: companyAddresses
                  type: object[]
                  meta:
                      label:
                          de: Adresse
                          en: Adresse
                      css:
                  subFields:
                      - name: street
                        type: string
                        meta:
                            label: { de: "Straße", en: "Street" }
                      - name: houseNr
                        type: string
                        meta:
                            label: { de: "Hausnummer", en: "House number" }
                      - name: postcode
                        type: string
                        meta:
                            label: { de: "PLZ", en: "ZIP" }
                      - name: city
                        type: string
                        meta:
                            label: { de: "Ort", en: "City" }
                      - name: tel
                        type: string
                        meta:
                            label: { de: "Telefon", en: "Phone number" }
                      - name: fax
                        type: string
                        meta:
                            label: { de: "Fax", en: "Fax" }
                      - name: email
                        type: string
                        meta:
                            label: { de: "E-Mail", en: "E-Mail" }
          - name: media
            type: object
            meta:
                label:
                    de: Media
                    en: Media
                css:
            subFields:
                - name: favicon
                  type: file
                  meta:
                      label: { de: "Favicon", en: "Favicon" }
                      helperText:
                          de: "Ein Favicon ist ein kleines Icon, Symbol oder Logo, das von Webbrowsern verwendet wird, um eine Website auf wiedererkennbare Weise zu kennzeichnen."
                          en: "A favicon is a small icon, symbol, or logo used by web browsers to identify a website in a recognizable way."
                - name: brand
                  type: file
                  meta:
                      label: { de: "Logo / Brand", en: "Logo / Brand" }
                      helperText:
                          de: "Logo der Seite"
                          en: "Page Logo"
                - name: mediaFiles
                  type: object[]
                  meta:
                      label: { de: "Dateien", en: "Files" }
                  subFields:
                      - name: title
                        type: string
                        meta:
                            label: { de: "Datei-Titel", en: "File Title" }
                      - name: alternateText
                        type: string
                        meta:
                            label: { de: "Alternativer Text", en: "Alternate Text" }
                      - name: id
                        type: string
                        meta:
                            label: { de: "Technischer Name / ID", en: "Technical name / ID" }
                      - name: file
                        type: file
                        meta:
                            label: { de: "", en: "" }
          - name: copyright
            type: object
            meta:
                label:
                    de: Copyright
                    en: Copyright
                css:
            subFields:
                - name: copyrightText
                  type: string
                  meta:
                      label: { de: "Copyright Text", en: "Copyright Text" }
