From feac462c962589f3ee61a290d3c2a7a27d8e115e Mon Sep 17 00:00:00 2001 From: Chris Beer Date: Tue, 14 Jun 2022 16:19:44 -0700 Subject: [PATCH] Also handle 'inclusive' facets in deprecated #render_filter_element method --- .../blacklight/render_constraints_helper_behavior.rb | 12 ++++++++++-- .../render_constraints_helper_behavior_spec.rb | 8 ++++++++ 2 files changed, 18 insertions(+), 2 deletions(-) diff --git a/app/helpers/blacklight/render_constraints_helper_behavior.rb b/app/helpers/blacklight/render_constraints_helper_behavior.rb index 453d9b7355..38efe1ef24 100644 --- a/app/helpers/blacklight/render_constraints_helper_behavior.rb +++ b/app/helpers/blacklight/render_constraints_helper_behavior.rb @@ -107,9 +107,13 @@ def render_filter_element(facet, values, search_state) safe_join(Array(values).map do |val| next if val.blank? # skip empty string - presenter = facet_item_presenter(facet_config, val, facet) - Deprecation.silence(Blacklight::RenderConstraintsHelperBehavior) do + presenter = if val.is_a? Array + inclusive_facet_item_presenter(facet_config, val, facet) + else + facet_item_presenter(facet_config, val, facet) + end + render_constraint_element(presenter.field_label, presenter.label, remove: presenter.remove_href(search_state), @@ -118,6 +122,10 @@ def render_filter_element(facet, values, search_state) end, "\n") end + def inclusive_facet_item_presenter(facet_config, facet_item, facet_field) + Blacklight::InclusiveFacetItemPresenter.new(facet_item, facet_config, self, facet_field) + end + # Render a label/value constraint on the screen. Can be called # by plugins and such to get application-defined rendering. # diff --git a/spec/helpers/blacklight/render_constraints_helper_behavior_spec.rb b/spec/helpers/blacklight/render_constraints_helper_behavior_spec.rb index 891ea65273..f3dd03f318 100644 --- a/spec/helpers/blacklight/render_constraints_helper_behavior_spec.rb +++ b/spec/helpers/blacklight/render_constraints_helper_behavior_spec.rb @@ -54,6 +54,14 @@ expect(subject).to have_link "Remove constraint Item Type: journal", href: "/catalog?q=biz" end end + + context 'with multivalued facets' do + subject { helper.render_filter_element('type', [%w[journal book]], path) } + + it "handles such values gracefully" do + expect(subject).to have_link "Remove constraint Item Type: journal OR book", href: "/catalog?q=biz" + end + end end describe "#render_constraints_filters" do