Skip to content

Commit

Permalink
WIP description panel presents in a 2 column boostrap grid when appro…
Browse files Browse the repository at this point in the history
…priate
  • Loading branch information
barmintor committed Jun 5, 2024
1 parent 57780dc commit 9bdbd61
Show file tree
Hide file tree
Showing 2 changed files with 74 additions and 15 deletions.
Original file line number Diff line number Diff line change
@@ -1,18 +1,24 @@
<%= content_tag(:div, class: panel_classes) do -%>
<dl class="dl-<%= @alignment %>">
<% @document_presenter.fields_to_render.each do |solr_fname, field, field_presenter| %>
<dt class="blacklight-<%= solr_fname.parameterize %>"><%= field_presenter.label('show') %></dt>
<% Array(@document_presenter.field_value field).each do |field_value| -%>
<dd class="blacklight-<%= solr_fname.parameterize %>"><%= field_value %></dd>
<% end -%>
<% end %>
<% @citation_presenter.fields_to_render.each do |solr_fname, field, field_presenter| %>
<dt class="blacklight-<%= solr_fname.parameterize %>"><%= field_presenter.label('show') %></dt>
<% Array(@citation_presenter.field_value field).each do |field_value| -%>
<dd class="blacklight-<%= solr_fname.parameterize %>"><%= field_value %></dd>
<% end -%>
<% end %>
</dl>
<%- if first_chunk %>
<dl class="dl-<%= @alignment %> col-sm-12 col-lg-6 mb-0">
<% first_chunk.each do |field_name, label, values| %>
<dt class="blacklight-<%= field_name %>"><%= label %></dt>
<% values.each do |field_value| -%>
<dd class="blacklight-<%= field_name %>"><%= field_value %></dd>
<% end -%>
<% end %>
</dl>
<% end -%>
<%- if second_chunk %>
<dl class="dl-<%= @alignment %> col">
<% second_chunk.each do |field_name, label, values| %>
<dt class="blacklight-<%= field_name %>"><%= label %></dt>
<% values.each do |field_value| -%>
<dd class="blacklight-<%= field_name %>"><%= field_value %></dd>
<% end -%>
<% end %>
</dl>
<% end -%>
<% @link_helpers.each do |link_helper| %>
<%= send link_helper, @document %>
<% end %>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,12 +15,65 @@ def panel_classes
@panel_classes ||= begin
_pc = ['inner']
if @alignment != 'vertical'
_pc << 'mt-3' << 'border-0'
_pc << 'mt-3' << 'border-0' << 'row'
end
_pc
end
end

def document_fields
@document_fields ||= presenter_fields(@document_presenter)
end

def citation_fields
@citation_fields ||= presenter_fields(@citation_presenter)
end

def first_chunk
return field_chunks[0] && to_enum(:first_chunk) unless block_given?
field_chunks[0]&.each do |data|
yield *data
end
end

def second_chunk
return field_chunks[1] && to_enum(:second_chunk) unless block_given?
field_chunks[1]&.each do |data|
yield *data
end
end

def field_chunks
@field_chunks ||= begin
total_fields = document_fields.length + citation_fields.length
if total_fields < 5
return [nil, document_fields + citation_fields]
end
chunk_size = (total_fields / 2).ceil
if chunk_size <= document_fields.length
first = document_fields[0...chunk_size]
second = document_fields[chunk_size..-1] + citation_fields
else
diff = chunk_size - document_fields.length
first = document_fields + citation_fields[0...diff]
second = citation_fields[diff..-1]
end
[first, second]
end
end

# returns list of parameterized field name, label value, values array
def presenter_fields(document_presenter)
_df = []
document_presenter.fields_to_render.each do |solr_fname, field, field_presenter|
_df << [
solr_fname.parameterize,
field_presenter.label('show'),
Array(document_presenter.field_value field)]
end
_df
end

def before_render
@citation_presenter ||= helpers.citation_presenter(@document)
@document_presenter ||= helpers.document_presenter(@document)
Expand Down

0 comments on commit 9bdbd61

Please sign in to comment.