Skip to content

Commit 6242ac2

Browse files
Add optional text when field is optional
Signed-off-by: Natalia Luzuriaga <natalia.luzuriaga@cms.hhs.gov>
1 parent 69eb0d2 commit 6242ac2

1 file changed

Lines changed: 14 additions & 13 deletions

File tree

js/generateFormComponents.js

Lines changed: 14 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -66,23 +66,24 @@ function determineType(field) {
6666
}
6767

6868
// Creates Form.io component based on json field type
69-
function createComponent(fieldName, fieldObject, requiredArray) {
69+
function createComponent(fieldName, fieldObject, requiredArray, prefix) {
7070
const componentType = determineType(fieldObject);
7171
console.log(componentType, "type determined");
7272
const validate = determineValidation(fieldName, fieldObject, requiredArray);
73+
const label = !validate.required && !prefix ? fieldName + " (optional)" : fieldName;
7374
switch (componentType) {
7475
case "textfield":
7576
return {
7677
type: "textfield",
7778
key: fieldName,
78-
label: fieldName,
79+
label: label,
7980
input: true,
8081
description: fieldObject["description"],
8182
validate
8283
};
8384
case "tags":
8485
return {
85-
label: fieldName,
86+
label: label,
8687
tableView: false,
8788
storeas: "array",
8889
validateWhenHidden: false,
@@ -94,7 +95,7 @@ function createComponent(fieldName, fieldObject, requiredArray) {
9495
};
9596
case "number":
9697
return {
97-
label: fieldName,
98+
label: label,
9899
applyMaskOn: "change",
99100
mask: false,
100101
tableView: false,
@@ -111,7 +112,7 @@ function createComponent(fieldName, fieldObject, requiredArray) {
111112
};
112113
case "integer":
113114
return {
114-
label: fieldName,
115+
label: label,
115116
applyMaskOn: "change",
116117
mask: false,
117118
tableView: false,
@@ -131,7 +132,7 @@ function createComponent(fieldName, fieldObject, requiredArray) {
131132
var options = transformArrayToOptions(fieldObject.enum);
132133
console.log("checking options here:", options);
133134
return {
134-
label: fieldName,
135+
label: label,
135136
optionsLabelPosition: "right",
136137
inline: false,
137138
tableView: false,
@@ -147,7 +148,7 @@ function createComponent(fieldName, fieldObject, requiredArray) {
147148
var options = transformArrayToOptions(fieldObject.items.enum);
148149
console.log("checking options here:", options);
149150
return {
150-
label: fieldName,
151+
label: label,
151152
optionsLabelPosition: "right",
152153
tableView: false,
153154
values: options,
@@ -161,7 +162,7 @@ function createComponent(fieldName, fieldObject, requiredArray) {
161162
};
162163
case "datetime":
163164
return {
164-
label: fieldName,
165+
label: label,
165166
tableView: false,
166167
datePicker: {
167168
disableWeekends: false,
@@ -189,7 +190,7 @@ function createComponent(fieldName, fieldObject, requiredArray) {
189190
};
190191
case "select-boolean":
191192
return {
192-
label: fieldName,
193+
label: label,
193194
widget: "html5",
194195
tableView: true,
195196
data: {
@@ -213,7 +214,7 @@ function createComponent(fieldName, fieldObject, requiredArray) {
213214
};
214215
case "container":
215216
return {
216-
label: fieldName,
217+
label: label,
217218
hideLabel: false,
218219
tableView: false,
219220
validateWhenHidden: false,
@@ -226,7 +227,7 @@ function createComponent(fieldName, fieldObject, requiredArray) {
226227
};
227228
case "datagrid":
228229
return {
229-
label: fieldName,
230+
label: label,
230231
reorder: false,
231232
addAnotherPosition: "bottom",
232233
layoutFixed: false,
@@ -246,7 +247,7 @@ function createComponent(fieldName, fieldObject, requiredArray) {
246247
case "content":
247248
return {
248249
html: `<p class="margin-top-neg-3 margin-bottom-4 text-base-dark">${fieldObject["content"]}</p>`,
249-
label: fieldName,
250+
label: label,
250251
customClass: fieldObject["className"],
251252
refreshOnChange: false,
252253
key: fieldName,
@@ -287,7 +288,7 @@ function createAllComponents(schema, prefix = "") {
287288
console.log("key at play:", key);
288289
const fullKey = prefix ? `${prefix}.${key}` : key;
289290

290-
let fieldComponent = createComponent(key, value, requiredArray);
291+
let fieldComponent = createComponent(key, value, requiredArray, prefix);
291292

292293
if (fieldComponent.type === "container") {
293294
fieldComponent.components = createAllComponents(value, fullKey);

0 commit comments

Comments
 (0)