<% sub_schemas = schema.sub_schemas %> <% data = fragment.data unless fragment.nil? %> <% dmp_fragments = fragment.present? ? fragment.dmp_fragments() : [] %> <% schema_properties = schema.schema["properties"]%> <div class="fragment-display"> <% schema_properties.each do |key, prop| %> <div class="fragment-attribute"> <% value = data[key] unless data.nil? %> <% label = prop["label@#{locale}"] %> <% case prop['type'] %> <% when 'boolean' %> <span class="attribute-name"><%= label %></span> <span class="attribute-value"><%= value ? _('Yes') : _('No') %></span> <% when 'array' %> <% if prop['items']['type'] == 'object' && prop['items']['schema_id'].present? %> <% sub_schema = sub_schemas[prop['items']['schema_id']] table_header = prop["table_header@#{locale}"] ? prop["table_header@#{locale}"] : prop["table_header"] values = [] if value.present? values = dmp_fragments.where(id: data[key].map { |d| d["dbid"] }) end %> <% unless dmp_fragments.empty? %> <td colspan=2> <fieldset class="sub-fragment"> <legend class="sub-fragment"><%= label %></legend> <table class="sub-fragment-list"> <% if table_header.present? && !values.empty? %> <thead><tr><th><%= table_header %></th></tr></thead> <% end %> <tbody> <% values.each do |val| %> <tr><td> <%= render(partial: 'shared/export/display_madmp_fragment', locals: { fragment: val, schema: sub_schema, classname: sub_schema.classname, locale: locale } ) %> </td></tr> <% end %> </tbody> </table> </fieldset> </td> <% end %> <% else %> <td class="attribute-name"><%= label %></td> <td> <% unless value.nil?%> <% value.each do |val| %> <%= val %> <% end %> <% end %> </td> <% end %> <% when 'object' %> <% if prop["schema_id"].present? %> <% unless value.nil? %> <% sub_schema = sub_schemas[prop["schema_id"]] sub_fragment = dmp_fragments.find(value["dbid"]) unless value.nil? %> <fieldset class="sub-fragment"> <legend class="sub-fragment"><%= label %></legend> <% if sub_fragment.classname.eql?("contributor")%> <% sub_fragment = sub_fragment.becomes(Fragment::Contributor) %> <span class="attribute-value"><%= sub_fragment.person.to_s %></span> <% else %> <%= render(partial: 'shared/export/display_madmp_fragment', locals: { fragment: sub_fragment, schema: sub_schema, classname: sub_schema.classname, locale: locale } ) %> <% end %> </fieldset> <% end %> <% end %> <% else%> <span class="attribute-name"><%= label %></span> <span class="attribute-value"><%= value.to_s.html_safe unless value.nil? %></span> <% end %> </div> <% end %> </div>