diff --git a/.rubocop.yml b/.rubocop.yml index b263a973..5c2d5421 100644 --- a/.rubocop.yml +++ b/.rubocop.yml @@ -36,7 +36,7 @@ Metrics/MethodLength: Enabled: false Metrics/BlockLength: - Max: 28 + Max: 30 Style/BlockDelimiters: Exclude: diff --git a/app/controllers/catalog_controller.rb b/app/controllers/catalog_controller.rb index 2069e69b..93a9f55e 100644 --- a/app/controllers/catalog_controller.rb +++ b/app/controllers/catalog_controller.rb @@ -46,8 +46,7 @@ def unique_custom_fields config.document_unique_id_param = 'ids' # solr field configuration for search results/index views - config.index.title_field = 'full_title_ssim' - config.index.preferred_title_field = 'readonly_title_tesim' + config.index.title_field = 'readonly_title_tesim' config.add_show_field 'creator_ssim', label: 'Creator' config.add_search_field 'all_fields', label: 'Everything' diff --git a/app/helpers/index_helper.rb b/app/helpers/index_helper.rb new file mode 100644 index 00000000..a707874c --- /dev/null +++ b/app/helpers/index_helper.rb @@ -0,0 +1,18 @@ +module IndexHelper + def render_index_document(document) + field = index_presenter(document).label(document_show_link_field(document)) + span = [] + if field.length == 1 || !field.is_a?(Array) + span << content_tag(:span, style: 'display: block;', dir: field.dir) do + link_to_document(document, document_show_link_field(document)) + end + else + field.each do |value| + span << content_tag(:span, style: 'display: block;', dir: value.dir) do + link_to(value, url_for_document(document), document_link_params(document, {})) + end + end + end + safe_join span + end +end diff --git a/app/presenters/rtl_index_presenter.rb b/app/presenters/rtl_index_presenter.rb index cc2927de..ccb6ad9e 100644 --- a/app/presenters/rtl_index_presenter.rb +++ b/app/presenters/rtl_index_presenter.rb @@ -4,7 +4,7 @@ def label(field_or_string_or_proc, opts = {}) value = case field_or_string_or_proc when Symbol config = field_config(field_or_string_or_proc) - value_from_symbol(field_or_string_or_proc) + @document[field_or_string_or_proc] when Proc field_or_string_or_proc.call(@document, opts) when String @@ -16,17 +16,6 @@ def label(field_or_string_or_proc, opts = {}) private - def value_from_symbol(field) - default_title_field = @configuration.index.title_field - preferred_title_field = @configuration.index.preferred_title_field - - if field.to_s == default_title_field && @document.key?(preferred_title_field) - @document[preferred_title_field] - else - @document[field] - end - end - def label_value(value, config) if value.is_a?(Array) && value.count > 1 value.collect { |v| field_values(config, value: v) } diff --git a/app/views/catalog/_index_header_default.html.erb b/app/views/catalog/_index_header_default.html.erb index c811da2e..89e9e199 100644 --- a/app/views/catalog/_index_header_default.html.erb +++ b/app/views/catalog/_index_header_default.html.erb @@ -9,36 +9,15 @@ <%= render_index_doc_actions document, wrapping_class: "index-document-functions col-sm-3 col-lg-2" %> <% end %> - -

"> -
-
<% if counter = document_counter_with_offset(document_counter) %> <%= t('blacklight.search.documents.counter', counter: counter) %> <% end %>
- <% field = index_presenter(document).label(document_show_link_field(document)) %> - <% if field.length == 1 || !field.is_a?(Array) %> - <% valdir = Array(field).first.dir %> - - <%= link_to_document document, document_show_link_field(document), counter: counter %> - - <% else %> - <% valdirs = [] %> - <% field.each do |value| %> - <% valdirs << value.dir %> - <% end %> - - <% field.each do |value| %> - - <%= link_to value, '/' %> - - <% end %> - <% end %> + <%= render_index_document document %>