Create Dialogs
A create dialog is the form users fill in to start a transaction on a policy, such as a cancellation or renewal. Products can define create dialogs under dialogs, one per transaction category, such as createCancellation, createChange, and createRenewal. Each entry refines the dialog's fields. This example is from uiConfigs/operationsWorkbench/products/HO3/config.json:
{
"dialogs": {
"createCancellation": {
"fields": {
"transactionType": { "label": "Cancellation Reason" },
"effectiveTime": {
"label": "Cancellation Date",
"default": "policyStartDate"
}
}
},
"createRenewal": {
"fields": { "effectiveTime": { "label": "Effective Date" } }
}
}
}| Field property | Type | Description |
|---|---|---|
label | string | The field's label in the dialog. |
default | string | The field's starting value. For the date fields (effectiveTime, newPolicyEndTime): now, policyStartDate, or policyEndDate. For transactionType: the name of a transaction type to preselect. |
readOnly | boolean | Shows the value but blocks editing. Date fields (effectiveTime, newPolicyEndTime) only. |
hidden | boolean | Hides the field. |
Each dialog is named create<Category>, such as createCancellation, createChange, and createRenewal. Its fields can refine transactionType (the type picker), effectiveTime, and newPolicyEndTime.
Account create dialogs are not supported yet.
Transaction Types
A transaction type can refine its category's dialog, or opt out of manual creation, in its own node under transactionTypes/. This example is from uiConfigs/operationsWorkbench/transactionTypes/RenewalAmendment/config.json:
{
"display": { "label": "Renewal", "order": 0 },
"dialogs": {
"create": {
"fields": {
"effectiveTime": {
"label": "Renewal Effective Date",
"default": "policyEndDate"
}
}
}
}
}This type is never offered in a create dialog:
{
"display": { "label": "Report Manual Premium" },
"dialogs": { "create": false }
}- When the user picks a type, its
dialogs.create.fieldsare merged over the product's dialog fields, per field and per property. Changing the type applies that type'sdefaultagain. - A type can refine
effectiveTimeandnewPolicyEndTime, but nottransactionType, because the type is the picker's value. - The type picker lists every type in the dialog's category except those with
"dialogs": { "create": false }, sorted bydisplay.orderand labeled withdisplay.label. category,costBearing, and transaction-data field types and options stay in the data model.