Skip to content

v9.0.0

Latest
Compare
Choose a tag to compare
@seanaery seanaery released this 10 Jan 19:03
· 3 commits to main since this release

Overview

This release adds support for Blacklight 8+ and Rails 8. It includes a complete rewrite of the plugin's Javascript and related dependencies; significant revisions to the UI; accessibility improvements; new/improved configuration options; and several other fixes/enhancements.

  • Works with Blacklight 7, 8, or (upcoming) 9.
  • Works with Rails 7 or 8
  • Works with Bootstrap 4 or 5
  • Plugin is now delivered as an NPM package, for use with modern JS bundling/delivery mechanisms; or can alternately be used with importmap-rails
  • Implements Chart.js as a replacement for the Flot.js charting library
  • Drops jQuery & bootstrap-slider dependencies
  • Plugin no longer has (S)CSS assets to wrangle

UI Changes

  • Adds an expandable Range List toggle to navigate the range segments and display the distribution; usable via screen-reader, keyboard, or mouse
  • Adds visible field labels for the Begin & End fields
  • Moves the Apply limit button to under the fields; esp. improves usability of narrower layouts
  • Removes the View Larger link and range slider handles (to simplify dependencies)
  • See #267 for more screenshots/discussion

Notable Fixes & Improvements

  • Supports open-ended ranges -- omitting either the start or end value (fixes #235)
  • Supports grouped view of search results, e.g., as used by arclight (fixes #272)
  • Constrains the default min/max range to valid Solr integer field range (per #289)
  • Prevents errors when a query uses integers exceeding the configured min/max, both client & server side
(fixes #289)
  • Chart no longer renders when queried min & max are identical, e.g., 2024 to 2024 (fixes #224)
  • Chart displays and adjusts in responsive/fluid layouts, regardless of whether range facet is collapsed by default (fixes #162)
  • Range facet no longer displays on a zero results found search results page (fixes #237)
  • The [Missing] value in a range facet can be configured to not display (fixes #288)

Configuration Changes

  • Simplifies default config; a simple range: true will now render a range limit facet, e.g.:
config.add_facet_field 'pub_date', label: 'Year', range: true
  • Chart colors and aspect ratio are now in facet config (were previously only configurable via custom JS)
  • Adds config for textual_facets, textual_facet_collapsible, show_missing_link, chart_segment_border_color, chart_segment_bg_color, chart_aspect_ratio. For details, see Range Facet Configuration in the README.
  • Removes maxlength config

Developer Notes

  • Please consult the README for details; especially see Upgrading from Blacklight Range Limit 8.x to 9.x
  • Note: the plugin's JS now requires you to be using either importmap-rails or a package.json-based builder like jsbundling-rails or vite-ruby.
  • The plugin could be installed/used without JS (e.g., for a legacy "sprockets-only" application) via: rails generate blacklight_range_limit:install --skip-assets. Much of its core functionality will be intact but it will be missing the chart and other features.

All Changes

  • Pin to solr version 9.6.1 by @jcoyne in #261
  • Bump rollup from 2.79.1 to 3.29.5 by @dependabot in #265
  • Configure a spec persistence path by @jcoyne in #260
  • Test on latest three versions of Ruby & Rails by @jcoyne in #262
  • rebuild JS from ground up, prep major version by @jrochkind in #266
  • Redesign input form for applying limits by @jrochkind in #267
  • Try Github CI caching solr dist .zip fetch from apache by @jrochkind in #270
  • Remove all deprecated methods, templates, and other behavior by @jrochkind in #268
  • make chart.js responsive on screen size change by @jrochkind in #269
  • Enable the plugin to work with grouped search results (e.g., ArcLight… by @seanaery in #273
  • Display properly when there is no data by @jrochkind in #276
  • Textual facets in collapsible on screen by @jrochkind in #274
  • Simply documented and tested config to activate range limit facet by @jrochkind in #275
  • CI with Rails 8.0.0 final by @jrochkind in #277
  • need to sniff all args from data tags guaranteed BEFORE rendering anything by @jrochkind in #279
  • Don't show chart or textual facets when only one facet bucket, by @jrochkind in #280
  • Don't render the range limit facet on zero results pages; fixes #237. by @seanaery in #281
  • Support open-ended ranges by @jrochkind in #278
  • Clean up and make consistent how config is passed to JS by @jrochkind in #282
  • just bumping version to 9.0.0.beta1 for release by @jrochkind in #283
  • some Rake hooks to encourage releasing npm package matching gem on rake release by @jrochkind in #284
  • update README screenshot for 9.0 by @jrochkind in #285
  • For open-ended limit, ensure both limit and data min/max are taken account of in calculating range bucket boundaries by @jrochkind in #290
  • Fix typos & formatting inconsistencies in README/comments. by @seanaery in #291
  • Make displaying the [Missing] link/value configurable (default true).… by @seanaery in #292
  • add --skip-assets option to blacklight_range_limit:install generator by @jrochkind in #293
  • Clamp values between config'd min and max by @jrochkind in #294
  • trigger CI on PR to any branch, not just main. by @jrochkind in #303
  • Avoid mutation of range config between tests, revealing fix for assumed_boundaries config by @jrochkind in #302
  • regression tests for existing kinds of bad params currently handled okay by @jrochkind in #301
  • hacky way to keep unpermitted params out of text range facet links by @jrochkind in #298
  • prepare for 9.0.0.beta2 release by @jrochkind in #304
  • bad query params to #range_limit action should not result in uncaught exception by @jrochkind in #305
  • Test App fixup for BL8 only needed prior to 8.7.0 by @jrochkind in #309
  • prepare for 9.0.0 final release by @jrochkind in #307

New Contributors

Full Changelog: v8.5.0...v9.0.0