define([ 'react', 'form/fields/text.jsx', 'form/fields/textarea.jsx', 'form/fields/select.jsx', 'form/fields/radio.jsx', 'form/fields/checkbox.jsx', 'form/fields/selection.jsx', 'form/fields/date.jsx', 'jquery', ], ( React, FormFieldText, FormFieldTextarea, FormFieldSelect, FormFieldRadio, FormFieldCheckbox, FormFieldSelection, FormFieldDate, jQuery ) => { const FormField = React.createClass({ renderField: function (data, inline = false) { let description = false; if(data.field.description) { description = (

{ data.field.description }

); } let field = false; let dataField = data.field; if(data.field['field'] !== undefined) { dataField = jQuery.merge(dataField, data.field.field); } switch(dataField.type) { case 'text': field = (); break; case 'textarea': field = (); break; case 'select': field = (); break; case 'radio': field = (); break; case 'checkbox': field = (); break; case 'selection': field = (); break; case 'date': field = (); break; case 'reactComponent': field = (); break; } if(inline === true) { return ( { field } { description } ); } else { return (
{ field } { description }
); } }, render: function () { let field = false; if(this.props.field['fields'] !== undefined) { field = this.props.field.fields.map((subfield, index) => { return this.renderField({ index: index, field: subfield, item: this.props.item, onValueChange: this.props.onValueChange || false, }); }); } else { field = this.renderField(this.props); } let tip = false; if(this.props.field.tip) { tip = (

{ this.props.field.tip }

); } return ( { field } ); }, }); return FormField; });