Formulier met keuzelijsten
Een vaak gewenste uitbreiding om de invoer formulieren is de optie om keuzelijsten te kunnen gebruiken.
Dit kan worden bewerkstelligd door aan een ‘enumeratie’ aan het element toe te voegen.
bv:
{
"jsonSchema": {
"type": "object",
"title": "Leeg formulier",
"description": "Formulier zonder invoervelden",
"properties": {
"keuzelijst": {
"enum": [
"Ijzer",
"Beton",
"Plastic",
"Steen",
"Koper"
],
"title": "Materiaal",
"type": "string"
}
},
"required": []
},
"uiSchema": {
}
}
In Onemap wordt het nu een tekstelement getoond waarbij de tekst uit een keuzelijst kan worden gekozen.
In bovenstaand voorbeeld wordt de getoonde tekstwaarde ook als zodanig verstuurd bij het opslaan. Het kan voorkomen dat domeinwaarden in de database worden opgeslagen als nummer of code. In dat geval kan de keuzelijst als volgt worden aangepast:
{
"jsonSchema":
{
"type": "object",
"title": "Leeg formulier",
"description": "Formulier zonder invoervelden",
"properties": {
"keuzelijst": {
"enum": [
"1",
"2",
"3",
"4",
"5"
],
"title": "Materiaal",
"type": "string",
"enumNames": [
"Ijzer",
"Beton",
"Plastic",
"Steen",
"Koper"
]
}
},
"dependencies": {},
"required": []
}
,
"uiSchema": {
}
}
ER worden nu twee lijsten toegevoegd:
enumeraties en enumeratie-namen.
De enumeratie-namen worden op het formulier getoond. Bij het opslaan worden echter de gekoppelde enumeraties verstuurd ( dus de numerieke waarden), en opgeslagen in de database.