diff --git a/app/views/branded/shared/dynamic_form/_form.html.erb b/app/views/branded/shared/dynamic_form/_form.html.erb index de99ae3..c8b9ede 100644 --- a/app/views/branded/shared/dynamic_form/_form.html.erb +++ b/app/views/branded/shared/dynamic_form/_form.html.erb @@ -1,39 +1,46 @@ <%# locals: { f, data, schema } %> <% schema['properties'].each do |key, prop| %> <% value = data[key] unless data.nil? %> + <% field_name = defined?(form_prefix) ? "#{form_prefix}[#{key}]" : key %> <% case prop['type'] %> <% when 'string' %> <% if prop['format'].nil?%> - <%= create_text_field(f, value, key, prop['label']) %> + <%= create_text_field(f, value, field_name, prop['label']) %> <% elsif prop['format'] == 'date' %> - <%= create_date_field(f, value, key, prop['label']) %> + <%= create_date_field(f, value, field_name, prop['label']) %> <% elsif prop['format'] == 'uri' %> - <%= create_url_field(f, value, key, prop['label']) %> + <%= create_url_field(f, value, field_name, prop['label']) %> <% elsif prop['format'] == 'email' %> - <%= create_email_field(f, value, key, prop['label']) %> + <%= create_email_field(f, value, field_name, prop['label']) %> <% elsif prop['format'] == 'select' && prop['values'] %> - <%= create_select_field(f, value, "answer[#{key}]", prop['label'], prop['values']) %> + <%= create_select_field(f, value, "answer[#{field_name}]", prop['label'], prop['values']) %> <%end%> <% when 'integer' %> - <%= create_number_field(f, value, key, prop['label']) %> + <%= create_number_field(f, value, field_name, prop['label']) %> <% when 'boolean' %> - <%= create_checkbox_field(f, value, key, prop['label']) %> + <%= create_checkbox_field(f, value, field_name, prop['label']) %> <% when 'array' %> <%= render(partial: 'shared/dynamic_form/fields/simple_multiple_field', locals: { f: f, field_values: value, field_label: prop['label'], field_properties: prop['items'], - field_name: key, answer_id: nil + field_name: field_name, answer_id: nil } ) %> <% when 'object' %>
- <%= key %> - <% sub_value = value[key] unless value.nil? %> + <%= field_name %> + <% sub_value = value[field_name] unless value.nil? %> <% sub_schema = StructuredDataSchema.find_by(classname: prop["classname"]).schema %> - <%= render(partial: 'shared/dynamic_form/form', locals: { f: f, data: sub_value, readonly: readonly, schema: sub_schema }) %> + <%= render(partial: 'shared/dynamic_form/form', locals: { + f: f, + data: sub_value, + readonly: readonly, + schema: sub_schema, + form_prefix: prop["classname"] + }) %>
<% end %>