@@ -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