blacklight_range_limit 8.5.0 → 9.0.0.beta1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (75) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/ruby.yml +117 -26
  3. data/.gitignore +2 -1
  4. data/.solr_wrapper.yml +8 -0
  5. data/Gemfile +7 -1
  6. data/README.md +77 -86
  7. data/Rakefile +31 -0
  8. data/VERSION +1 -1
  9. data/app/assets/javascripts/blacklight-range-limit/index.js +345 -0
  10. data/app/components/blacklight_range_limit/range_facet_component.html.erb +29 -27
  11. data/app/components/blacklight_range_limit/range_facet_component.rb +15 -9
  12. data/app/components/blacklight_range_limit/range_form_component.html.erb +13 -5
  13. data/app/components/blacklight_range_limit/range_form_component.rb +8 -20
  14. data/app/presenters/blacklight_range_limit/facet_field_presenter.rb +13 -2
  15. data/app/presenters/blacklight_range_limit/facet_item_presenter.rb +6 -11
  16. data/app/presenters/blacklight_range_limit/filter_field.rb +2 -2
  17. data/blacklight_range_limit.gemspec +1 -1
  18. data/config/importmap.rb +9 -0
  19. data/config/locales/blacklight_range_limit.ar.yml +13 -8
  20. data/config/locales/blacklight_range_limit.de.yml +13 -8
  21. data/config/locales/blacklight_range_limit.en.yml +5 -1
  22. data/config/locales/blacklight_range_limit.es.yml +18 -0
  23. data/config/locales/blacklight_range_limit.it.yml +13 -8
  24. data/lib/blacklight_range_limit/controller_override.rb +1 -25
  25. data/lib/blacklight_range_limit/engine.rb +48 -0
  26. data/lib/blacklight_range_limit/range_limit_builder.rb +40 -3
  27. data/lib/blacklight_range_limit.rb +8 -31
  28. data/lib/generators/blacklight_range_limit/assets_generator.rb +82 -18
  29. data/lib/generators/blacklight_range_limit/install_generator.rb +1 -1
  30. data/lib/generators/blacklight_range_limit/jsbundling_bl7_fixup_generator.rb +98 -0
  31. data/package-lock.json +8 -7
  32. data/package.json +10 -14
  33. data/spec/components/range_facet_component_spec.rb +41 -32
  34. data/spec/components/range_form_component_spec.rb +2 -2
  35. data/spec/components/range_segments_component_spec.rb +64 -0
  36. data/spec/features/blacklight_range_limit_spec.rb +21 -13
  37. data/spec/features/run_through_spec.rb +157 -0
  38. data/spec/presenters/facet_field_presenter_spec.rb +72 -0
  39. data/spec/presenters/filter_field_spec.rb +36 -1
  40. data/spec/spec_helper.rb +10 -0
  41. data/spec/test_app_templates/Gemfile.extra +11 -1
  42. data/spec/test_app_templates/lib/generators/test_app_generator.rb +37 -6
  43. metadata +25 -51
  44. data/app/assets/javascripts/blacklight_range_limit/blacklight_range_limit.esm.js +0 -534
  45. data/app/assets/javascripts/blacklight_range_limit/blacklight_range_limit.esm.js.map +0 -1
  46. data/app/assets/javascripts/blacklight_range_limit/blacklight_range_limit.umd.js +0 -542
  47. data/app/assets/javascripts/blacklight_range_limit/blacklight_range_limit.umd.js.map +0 -1
  48. data/app/assets/javascripts/blacklight_range_limit.js +0 -27
  49. data/app/assets/stylesheets/blacklight_range_limit/blacklight_range_limit.css +0 -60
  50. data/app/assets/stylesheets/blacklight_range_limit.css +0 -7
  51. data/app/helpers/range_limit_helper.rb +0 -130
  52. data/app/javascript/blacklight_range_limit/index.js +0 -11
  53. data/app/javascript/blacklight_range_limit/range_limit_distro_facets.js +0 -76
  54. data/app/javascript/blacklight_range_limit/range_limit_plotting.js +0 -186
  55. data/app/javascript/blacklight_range_limit/range_limit_shared.js +0 -112
  56. data/app/javascript/blacklight_range_limit/range_limit_slider.js +0 -163
  57. data/app/javascripts/blacklight_range_limit/index.js +0 -13
  58. data/app/views/blacklight_range_limit/_range_segments.html.erb +0 -8
  59. data/app/views/blacklight_range_limit/range_segments.html.erb +0 -1
  60. data/app/views/catalog/range_limit_panel.html.erb +0 -1
  61. data/rollup.config.js +0 -37
  62. data/spec/features/a_javascript_spec.rb +0 -70
  63. data/spec/helpers/blacklight_range_limit_helper_spec.rb +0 -37
  64. data/vendor/assets/javascripts/bootstrap-slider.js +0 -388
  65. data/vendor/assets/javascripts/flot/jquery.canvaswrapper.js +0 -549
  66. data/vendor/assets/javascripts/flot/jquery.colorhelpers.js +0 -199
  67. data/vendor/assets/javascripts/flot/jquery.event.drag.js +0 -145
  68. data/vendor/assets/javascripts/flot/jquery.flot.browser.js +0 -98
  69. data/vendor/assets/javascripts/flot/jquery.flot.drawSeries.js +0 -662
  70. data/vendor/assets/javascripts/flot/jquery.flot.hover.js +0 -359
  71. data/vendor/assets/javascripts/flot/jquery.flot.js +0 -2818
  72. data/vendor/assets/javascripts/flot/jquery.flot.saturated.js +0 -43
  73. data/vendor/assets/javascripts/flot/jquery.flot.selection.js +0 -527
  74. data/vendor/assets/javascripts/flot/jquery.flot.uiConstants.js +0 -10
  75. data/vendor/assets/stylesheets/slider.css +0 -138
@@ -3,19 +3,50 @@ require 'rails/generators'
3
3
  class TestAppGenerator < Rails::Generators::Base
4
4
  source_root File.expand_path("../../../../spec/test_app_templates", __FILE__)
5
5
 
6
- # This is only necessary for Rails 3
7
- def remove_index
8
- remove_file "public/index.html"
6
+ # While blacklight works with jsbundling-rails (and vite-ruby with layout modification),
7
+ # it's generators can't set it up at present, we hackily do so.
8
+ def run_bl7_jsbundling_fixup
9
+ if File.exist?("package.json") && Blacklight::VERSION.split(".").first == "7"
10
+ say_status("warning", "BlacklightRangeLimit: Blacklight 7.x package.json-based Test App fixup", {color: :yellow})
11
+ generate "blacklight_range_limit:jsbundling_bl7_fixup"
12
+ end
13
+ end
14
+
15
+ def run_bl8_jsbundling_fixup
16
+ # while it's named confusingly, the BL8 assets:propshaft generator has what we need
17
+ # for jsbundling, I think.
18
+ if File.exist?("package.json") && Blacklight::VERSION.split(".").first == "8"
19
+ generate "blacklight:assets:propshaft"
20
+ end
9
21
  end
10
22
 
11
23
  def run_blacklight_generator
12
- say_status("warning", "GENERATING BL", :yellow)
24
+ say_status("warning", "GENERATING Blacklight", :yellow)
13
25
 
14
26
  generate 'blacklight:install', '--devise'
15
27
  end
16
28
 
29
+ def run_bl8_importmaps_fixup
30
+ # In BL8, if we have CSS-bundling rails but ALSO are using importmaps for JS, the BL8 installer
31
+ # gets us a LOT of the way there, but doesn't actually set up importmap pins for JS and needs
32
+ # some fixup. Maybe fixed in BL9? We fix up here if we are in that situation.
33
+ if Pathname(destination_root).join("config/importmap.rb").exist? && Blacklight::VERSION.split(".").first == "8"
34
+ # BL's importmap setup annoyingly uses a different name for the BL package than their package.json setup
35
+ gsub_file("app/javascript/application.js", 'import Blacklight from "blacklight-frontend";', 'import Blacklight from "blacklight";')
36
+
37
+ # these pins copied from BL8 ImportMapsGenerator
38
+ append_to_file 'config/importmap.rb' do
39
+ <<~CONTENT
40
+ pin "@github/auto-complete-element", to: "https://cdn.skypack.dev/@github/auto-complete-element"
41
+ pin "@popperjs/core", to: "https://ga.jspm.io/npm:@popperjs/core@2.11.6/dist/umd/popper.min.js"
42
+ pin "bootstrap", to: "https://ga.jspm.io/npm:bootstrap@#{(defined?(Bootstrap) && Bootstrap::VERSION) || '5.3.2'}/dist/js/bootstrap.js"
43
+ CONTENT
44
+ end
45
+ end
46
+ end
47
+
17
48
  def run_blacklight_range_limit_generator
18
- say_status("warning", "GENERATING BL", :yellow)
49
+ say_status("warning", "GENERATING BlacklightRangeLimit", :yellow)
19
50
 
20
51
  generate 'blacklight_range_limit:install'
21
52
  end
@@ -27,7 +58,7 @@ class TestAppGenerator < Rails::Generators::Base
27
58
 
28
59
  def inject_into_catalog_controller
29
60
  inject_into_file 'app/controllers/catalog_controller.rb', after: /config.add_facet_field 'format'.*$/ do
30
- "\n config.add_facet_field 'pub_date_si', label: 'Publication Date Sort', **default_range_config"
61
+ "\n config.add_facet_field 'pub_date_si', label: 'Publication Date Sort', range: true"
31
62
  end
32
63
  end
33
64
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: blacklight_range_limit
3
3
  version: !ruby/object:Gem::Version
4
- version: 8.5.0
4
+ version: 9.0.0.beta1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jonathan Rochkind
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2024-02-05 00:00:00.000000000 Z
12
+ date: 2024-11-14 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: blacklight
@@ -51,20 +51,6 @@ dependencies:
51
51
  - - "<"
52
52
  - !ruby/object:Gem::Version
53
53
  version: '4'
54
- - !ruby/object:Gem::Dependency
55
- name: deprecation
56
- requirement: !ruby/object:Gem::Requirement
57
- requirements:
58
- - - ">="
59
- - !ruby/object:Gem::Version
60
- version: '0'
61
- type: :runtime
62
- prerelease: false
63
- version_requirements: !ruby/object:Gem::Requirement
64
- requirements:
65
- - - ">="
66
- - !ruby/object:Gem::Version
67
- version: '0'
68
54
  - !ruby/object:Gem::Dependency
69
55
  name: rspec
70
56
  requirement: !ruby/object:Gem::Requirement
@@ -107,6 +93,20 @@ dependencies:
107
93
  - - "~>"
108
94
  - !ruby/object:Gem::Version
109
95
  version: '3'
96
+ - !ruby/object:Gem::Dependency
97
+ name: capybara-screenshot
98
+ requirement: !ruby/object:Gem::Requirement
99
+ requirements:
100
+ - - "~>"
101
+ - !ruby/object:Gem::Version
102
+ version: '1.0'
103
+ type: :development
104
+ prerelease: false
105
+ version_requirements: !ruby/object:Gem::Requirement
106
+ requirements:
107
+ - - "~>"
108
+ - !ruby/object:Gem::Version
109
+ version: '1.0'
110
110
  - !ruby/object:Gem::Dependency
111
111
  name: sqlite3
112
112
  requirement: !ruby/object:Gem::Requirement
@@ -193,37 +193,23 @@ files:
193
193
  - README.md
194
194
  - Rakefile
195
195
  - VERSION
196
- - app/assets/javascripts/blacklight_range_limit.js
197
- - app/assets/javascripts/blacklight_range_limit/blacklight_range_limit.esm.js
198
- - app/assets/javascripts/blacklight_range_limit/blacklight_range_limit.esm.js.map
199
- - app/assets/javascripts/blacklight_range_limit/blacklight_range_limit.umd.js
200
- - app/assets/javascripts/blacklight_range_limit/blacklight_range_limit.umd.js.map
201
- - app/assets/stylesheets/blacklight_range_limit.css
202
- - app/assets/stylesheets/blacklight_range_limit/blacklight_range_limit.css
196
+ - app/assets/javascripts/blacklight-range-limit/index.js
203
197
  - app/components/blacklight_range_limit/range_facet_component.html.erb
204
198
  - app/components/blacklight_range_limit/range_facet_component.rb
205
199
  - app/components/blacklight_range_limit/range_form_component.html.erb
206
200
  - app/components/blacklight_range_limit/range_form_component.rb
207
201
  - app/components/blacklight_range_limit/range_segments_component.html.erb
208
202
  - app/components/blacklight_range_limit/range_segments_component.rb
209
- - app/helpers/range_limit_helper.rb
210
- - app/javascript/blacklight_range_limit/index.js
211
- - app/javascript/blacklight_range_limit/range_limit_distro_facets.js
212
- - app/javascript/blacklight_range_limit/range_limit_plotting.js
213
- - app/javascript/blacklight_range_limit/range_limit_shared.js
214
- - app/javascript/blacklight_range_limit/range_limit_slider.js
215
- - app/javascripts/blacklight_range_limit/index.js
216
203
  - app/presenters/blacklight_range_limit/facet_field_presenter.rb
217
204
  - app/presenters/blacklight_range_limit/facet_item_presenter.rb
218
205
  - app/presenters/blacklight_range_limit/filter_field.rb
219
- - app/views/blacklight_range_limit/_range_segments.html.erb
220
- - app/views/blacklight_range_limit/range_segments.html.erb
221
- - app/views/catalog/range_limit_panel.html.erb
222
206
  - blacklight_range_limit.gemspec
207
+ - config/importmap.rb
223
208
  - config/jetty.yml
224
209
  - config/locales/blacklight_range_limit.ar.yml
225
210
  - config/locales/blacklight_range_limit.de.yml
226
211
  - config/locales/blacklight_range_limit.en.yml
212
+ - config/locales/blacklight_range_limit.es.yml
227
213
  - config/locales/blacklight_range_limit.it.yml
228
214
  - config/routes.rb
229
215
  - config/solr.yml
@@ -240,10 +226,10 @@ files:
240
226
  - lib/blacklight_range_limit/version.rb
241
227
  - lib/generators/blacklight_range_limit/assets_generator.rb
242
228
  - lib/generators/blacklight_range_limit/install_generator.rb
229
+ - lib/generators/blacklight_range_limit/jsbundling_bl7_fixup_generator.rb
243
230
  - lib/tasks/blacklight_range_limit.rake
244
231
  - package-lock.json
245
232
  - package.json
246
- - rollup.config.js
247
233
  - solr/conf/_rest_managed.json
248
234
  - solr/conf/admin-extra.html
249
235
  - solr/conf/elevate.xml
@@ -263,11 +249,11 @@ files:
263
249
  - solr/sample_solr_documents.yml
264
250
  - spec/components/range_facet_component_spec.rb
265
251
  - spec/components/range_form_component_spec.rb
266
- - spec/features/a_javascript_spec.rb
252
+ - spec/components/range_segments_component_spec.rb
267
253
  - spec/features/blacklight_range_limit_spec.rb
254
+ - spec/features/run_through_spec.rb
268
255
  - spec/fixtures/solr_documents/unknown_year.yml
269
256
  - spec/fixtures/solr_documents/zero_year.yml
270
- - spec/helpers/blacklight_range_limit_helper_spec.rb
271
257
  - spec/lib/blacklight_range_limit/segment_calculation_spec.rb
272
258
  - spec/presenters/facet_field_presenter_spec.rb
273
259
  - spec/presenters/facet_item_presenter_spec.rb
@@ -276,18 +262,6 @@ files:
276
262
  - spec/support/presenter_test_helpers.rb
277
263
  - spec/test_app_templates/Gemfile.extra
278
264
  - spec/test_app_templates/lib/generators/test_app_generator.rb
279
- - vendor/assets/javascripts/bootstrap-slider.js
280
- - vendor/assets/javascripts/flot/jquery.canvaswrapper.js
281
- - vendor/assets/javascripts/flot/jquery.colorhelpers.js
282
- - vendor/assets/javascripts/flot/jquery.event.drag.js
283
- - vendor/assets/javascripts/flot/jquery.flot.browser.js
284
- - vendor/assets/javascripts/flot/jquery.flot.drawSeries.js
285
- - vendor/assets/javascripts/flot/jquery.flot.hover.js
286
- - vendor/assets/javascripts/flot/jquery.flot.js
287
- - vendor/assets/javascripts/flot/jquery.flot.saturated.js
288
- - vendor/assets/javascripts/flot/jquery.flot.selection.js
289
- - vendor/assets/javascripts/flot/jquery.flot.uiConstants.js
290
- - vendor/assets/stylesheets/slider.css
291
265
  homepage: https://github.com/projectblacklight/blacklight_range_limit
292
266
  licenses:
293
267
  - Apache 2.0
@@ -307,18 +281,18 @@ required_rubygems_version: !ruby/object:Gem::Requirement
307
281
  - !ruby/object:Gem::Version
308
282
  version: '0'
309
283
  requirements: []
310
- rubygems_version: 3.5.4
284
+ rubygems_version: 3.5.9
311
285
  signing_key:
312
286
  specification_version: 4
313
287
  summary: Blacklight Range Limit plugin
314
288
  test_files:
315
289
  - spec/components/range_facet_component_spec.rb
316
290
  - spec/components/range_form_component_spec.rb
317
- - spec/features/a_javascript_spec.rb
291
+ - spec/components/range_segments_component_spec.rb
318
292
  - spec/features/blacklight_range_limit_spec.rb
293
+ - spec/features/run_through_spec.rb
319
294
  - spec/fixtures/solr_documents/unknown_year.yml
320
295
  - spec/fixtures/solr_documents/zero_year.yml
321
- - spec/helpers/blacklight_range_limit_helper_spec.rb
322
296
  - spec/lib/blacklight_range_limit/segment_calculation_spec.rb
323
297
  - spec/presenters/facet_field_presenter_spec.rb
324
298
  - spec/presenters/facet_item_presenter_spec.rb