/
Dynamics Forms
Rough draft
Dynamics Forms
Proposed Form Format
{
"schemaName": "user",
"schemaVersion": 2,
"schema": {
"type": "object",
"required": ["name", "gender", "dateOfBirth"],
"properties": {
"name": {
"type": "string",
"minLength": 2,
"maxLength": 20,
"hint": "Name",
"value": "Ajil",
"nullable": false,
"defaultValue": "'NA'"
},
"gender": {
"type": "string",
"enum": ["Male", "Female", "Others", "Not specified"],
"hint": "Gender",
"value": "Male",
"nullable": false,
"defaultValue": "'Not specified'",
},
"dateOfBirth": {
"type": "string",
"format": "date",
"hint": "Date of Birth",
"firstDate": "1920-01-01",
"value": "1992-09-29T00:00:00.000",
"nullable": true,
},
"dateOfRegistration": {
"type": "string",
"format": "date",
"hint": "Date of registration",
"firstDate": "1920-01-01",
"nullable": true,
},
"isHead": {
"type": "boolean",
"hint": "Household Head",
"nullable": false,
"defaultValue": 1,
},
"linkHousehold": {
"type": "boolean",
"hint": "Link with household",
"nullable": false,
"defaultValue": 1,
},
"household": {
"type": "string",
"enum": [
"A",
"B",
"C",
"D",
"E",
],
"hint": "Household ID",
"nullable": true,
"displayBehavior": {
"behavior": "hide",
"oneOf": ["isHead", "linkHousehold"],
},
},
}
},
"actionSchema": [
{
'name': 'reset',
'buttonType': 'text',
'buttonName': 'Reset',
"actionItems": [
{"type": "reset"}
],
},
{
'name': 'submit',
'buttonName': 'Submit',
"actionItems": [
{
"type": "api",
"urlSchema": {"method": "post", "urlSchema": ""},
},
{
"type": "navigate",
"routingSchema": {"destination": "forms/delivery"},
},
],
},
]
}
Structure
Schema Object
{
"schemaName": "householdRegistration",
"schemaVersion": "1.0.0",
"schema": { ... }, // Possibly rename to property schema
"actionSchema": { ... }
}
The schemaName
is used to identify the form to be displayed on upcoming pages after navigation. The schemaVersion
will be used to update/create existing stored schema.
Property Schema
{
"type": "object",
"required": ["name", "gender", "dateOfBirth"],
"properties": {
"name": {
"type": "string",
"minLength": 2,
"maxLength": 20,
"hint": "Name",
"value": "Ajil",
"nullable": false,
"defaultValue": "'NA'"
},
"gender": {
"type": "string",
"enum": ["Male", "Female", "Others", "Not specified"],
"hint": "Gender",
"value": "Male",
"nullable": false,
"defaultValue": "'Not specified'",
},
"dateOfBirth": {
"type": "string",
"format": "date",
"hint": "Date of Birth",
"firstDate": "1920-01-01",
"value": "1992-09-29T00:00:00.000",
"nullable": true,
},
"dateOfRegistration": {
"type": "string",
"format": "date",
"hint": "Date of registration",
"firstDate": "1920-01-01",
"nullable": true,
},
"isHead": {
"type": "boolean",
"hint": "Household Head",
"nullable": false,
"defaultValue": 1,
},
"linkHousehold": {
"type": "boolean",
"hint": "Link with household",
"nullable": false,
"defaultValue": 1,
},
"household": {
"type": "string",
"enum": [
"A",
"B",
"C",
"D",
"E",
],
"hint": "Household ID",
"nullable": true,
"displayBehavior": {
"behavior": "hide",
"oneOf": ["isHead", "linkHousehold"],
},
},
}
}
The property schema determines the fields that appear in the form and specifies the validation and display criteria.
TextField
type:
string
DatePicker
type:
string
format:
date
DateTimePicker
type: string
format: datetime
NumberTextField
type:
integer
/double
FilePicker
type:
string
format:
fileUrl
Switch/Checkbox
type:
boolean
format:
Switch
/Checkbox
DropdownField
type:
string
format:
dropdown
enums:
string[]
CheckboxGroup
type:
string[]
enums:
string[]
NumberSpinner
type:
integer
/double
increment:
integer
/double
RadioGroup
type:
string
format:
radio
enums:
string[]
Validators
The following validators are supported
minLength/maxLength
min/max:
required
, multiple selections available,
Related content
FSM DSO (Complete Request): UI Implementation Details
FSM DSO (Complete Request): UI Implementation Details
More like this
FSM v1.1: DSO UI
FSM v1.1: DSO UI
More like this
Birth and Death - UI Tech Documentation (Mono UI)
Birth and Death - UI Tech Documentation (Mono UI)
More like this
EDITRENEWAL Config
EDITRENEWAL Config
More like this
DIRECTRENEWAL Config
DIRECTRENEWAL Config
More like this
PT Employee UI/UX revamp - Create Application
PT Employee UI/UX revamp - Create Application
More like this