Datenmodelle

Felder (fields) beschreiben wie Attribute eines Quell-Features transformiert werden müssen. Für jedes Attribut eines GBD WebSuite-Features können Sie eine Regel anlegen, mit der Sie für dieses Attribut folgendes definieren:

Zum Beispiel, wenn eine Postgres Tabelle user die Spalten first_name, last_name und age enthält, können Sie so transformieren:

map.layers+ {
    title "Test"
    type "postgres"
    tableName "edit.user"

    models+ {
        type "postgres"

        fields+ {
            name "age"
            type "text"
            title "Alter"
        }

        templates+ {
            subject "feature.title"
            type "html"
            text "{first_name} {last_name}"
        }
    }
}

TODO! -> Stimmt so nicht mehr in R8? Außerdem können Sie angeben welche Attribute editierbar (editable) sind. Wenn Sie eine Editierfunktion verwenden (siehe Digitalisierung und Tabellarishces Editieren), werden nur editierbare Attribute eines Feature für Editieren freigeschaltet.

Seit der Version 7, besteht die Möglichkeit, den Attributen spezielle Editoren bzw Validierungsregel zuzuordnen. Ein Editor kann mit widget konfiguriert werden:

map.layers+ {
    title "Test"
    type "postgres"
    tableName "edit.user"

    models+ {
        type "postgres"

        fields+ {
            name "comment"
            type "text"
            title "Kommentar"
            widget { type "textarea" height 150}
        }

        fields+ {
            name "role"
            type "text"
            title "Rolle"
            widget {    type "select"
                        items [
                            { text "Administrator" value "admin" }
                            { text "Nutzer" value "user" }
                            { text "Gast" value "guest" }
                        ]
                    }
        }
    }
}

Es werden folgende Editor-Typen unterstützt:

OPTIONBEDEUTUNG
stringHTML <input> Element
int bzw floatHTML <input type=number> Element
textHTML <textarea> Element
select bzw. combo<select> Element, die Werte müssen mit items als eine Liste von Wert-Titel Paaren konfiguriert werden
checkbox<input type=checkbox> Element für boolesche Attributen
dateDatums-Eingabefeld

Wenn kein Editor konfiguriert ist, wird vom Server einen am besten geeigneten Typ gewählt.

TODO! validator "format" Beispiel einbauen!

Für die Validierungsregel kann eine Liste validators einem Attribut zugeordnet werden:

map.layers+ {
    title "Test"
    type "postgres"
    tableName "edit.user"

    models+ {
        type "postgres"

        fields+ {
            name "comment"
            type "text"
            title "Kommentar"
            widget { type "textarea" height 150}
            validators+ {type "required" message "Diese Angabe wird benötigt."}
        }

        fields+ {
            name "role"
            type "text"
            title "Rolle"
            widget {    type "select"
                        items [
                            { text "Administrator" value "admin" }
                            { text "Nutzer" value "user" }
                            { text "Gast" value "guest" }
                        ]
                    }
            validators+ { type "required" message "Diese Angabe wird benötigt."}
        }
    }
}

TODO! Stimmt so nicht mehr!

Es werden folgende Regel unterstützt:

| Typ | Parameter | Bedeutung |
|---|---|---|
|``required`` | | der Wert darf nicht leer sein |
|``range`` | ``min`` und ``max`` | der Wert muss eine Zahl zwischen ``min`` und ``max`` sein |
|``length`` | ``min`` und ``max`` | die Länge des Stringwerts muss zwischen ``min`` und ``max`` sein |
|``regex`` | ``pattern`` | der Wert muss mit dem regulären Ausdruck übereinstimmen |


## Model Field :/admin-de/config/model/field

### :/admin-de/config/model/field/relatedFeature

### :/admin-de/config/model/field/relatedFeatureList