blacklight_range_limit 7.7.0 → 7.9.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 2167f6be6b6b4e9b67276d274aed5d5a3422779297c7630509bc9d562d355a76
4
- data.tar.gz: 290370f3bfc33223c8a8ead2547241f6d5af25647acd6fce5f37bfefbcf3bbdc
3
+ metadata.gz: 68ba781f0cbb0071d01c7c4f271e2f313acb1d9c12b867ccc49fdc707c886b4f
4
+ data.tar.gz: 9653d4141da91db97aa7130563fe5048dab111e5e42ccc46ec820aa1477d3d84
5
5
  SHA512:
6
- metadata.gz: 52823d196806781d9c00ffe501f9b96c1d6c0808fdb6cd0aa14484873624ab744079d0751a8c9a9f9de5082b28cf1226214bcd517cbc2eae04d7125dff3d0a6d
7
- data.tar.gz: '04678a126c9947e4d6dcd9f56a9ffb71b61072e9d0f3f5f907ca6e98c1b0958bf8e2fd89d7057c5114ad08af444301f3d19a9b65dd1c2c1e093eef0a8eb897e8'
6
+ metadata.gz: 7ea0eac18d3819f38f2b92fc103cca7023553d9d8c3cac27561b8d8c188825f46f6d6f5f270876162c46864a53d7fb4902cd2d7855dcd58b74790156993eb0bb
7
+ data.tar.gz: 35295bea937bb314c4354d20f1f0d7962f702096af42c079bd74b76feb985019d21513b12049dd52e3578245ffd04e1aa79a731e12bd70e34cff58b71ff77775
@@ -1,4 +1,4 @@
1
- dist: trusty
1
+ dist: bionic
2
2
  language: ruby
3
3
  addons:
4
4
  chrome: stable
@@ -14,6 +14,8 @@ matrix:
14
14
  env: "RAILS_VERSION=6.0.0 ENGINE_CART_RAILS_OPTIONS=\"--skip-webpack-install\""
15
15
  - rvm: 2.6.5
16
16
  env: "RAILS_VERSION=5.2.3"
17
+ - rvm: 2.6.5
18
+ env: "RAILS_VERSION=5.2.3 BLACKLIGHT_VERSION=7.6.0"
17
19
  - rvm: 2.5.7
18
20
  env: "RAILS_VERSION=5.1.7"
19
21
 
@@ -25,4 +27,4 @@ notifications:
25
27
  global_env:
26
28
  - NOKOGIRI_USE_SYSTEM_LIBRARIES=true
27
29
 
28
- jdk: oraclejdk9
30
+ jdk: openjdk11
data/README.md CHANGED
@@ -52,7 +52,7 @@ config.add_facet_field 'pub_date', label: 'Publication Year', range: true
52
52
  You should now get range limit display. More complicated configuration is available if desired, see Range Facet Configuration below.
53
53
 
54
54
 
55
- You can also configure the look and feel of the Flot chart using the jQuery .data() method. On the `.facet-limit` container you want to configure, add a Flot options associative array (documented at http://people.iola.dk/olau/flot/API.txt) as the `plot-config` key. The `plot-config` key to set the `plot-config` key on the appropriate `.facet-limit` container. In order to customize the plot colors, for example, you could use this code:
55
+ You can also configure the look and feel of the Flot chart using the jQuery .data() method. On the `.blrl-plot-config` or `.facet-limit` container you want to configure, add a Flot options associative array (documented at http://people.iola.dk/olau/flot/API.txt) as the `plot-config` key. The `plot-config` key to set the `plot-config` key on the appropriate `.blrl-plot-config` or `.facet-limit` container. In order to customize the plot colors, for example, you could use this code:
56
56
 
57
57
  ```javascript
58
58
  $('.blacklight-year_i').data('plot-config', {
data/VERSION CHANGED
@@ -1 +1 @@
1
- 7.7.0
1
+ 7.9.1
@@ -166,12 +166,12 @@ Blacklight.onLoad(function() {
166
166
  var series_data = new Array();
167
167
  var pointer_lookup = new Array();
168
168
  var x_ticks = new Array();
169
- var min = BlacklightRangeLimit.parseNum($(container).find("ul li:first-child span.from").text());
170
- var max = BlacklightRangeLimit.parseNum($(container).find("ul li:last-child span.to").text());
169
+ var min = BlacklightRangeLimit.parseNum($(container).find("ul li:first-child span.from").first().data('blrlBegin'));
170
+ var max = BlacklightRangeLimit.parseNum($(container).find("ul li:last-child span.to").first().data('blrlEnd'));
171
171
 
172
172
  $(container).find("ul li").each(function() {
173
- var from = BlacklightRangeLimit.parseNum($(this).find("span.from").text());
174
- var to = BlacklightRangeLimit.parseNum($(this).find("span.to").text());
173
+ var from = BlacklightRangeLimit.parseNum($(this).find("span.from").first().data('blrlBegin'));
174
+ var to = BlacklightRangeLimit.parseNum($(this).find("span.to").first().data('blrlEnd'));
175
175
  var count = BlacklightRangeLimit.parseNum($(this).find("span.count").text());
176
176
  var avg = (count / (to - from + 1));
177
177
 
@@ -191,7 +191,7 @@ Blacklight.onLoad(function() {
191
191
 
192
192
 
193
193
  var plot;
194
- var config = $(container).closest('.facet-limit').data('plot-config') || {};
194
+ var config = $(container).closest('.blrl-plot-config').data('plot-config') || $(container).closest('.facet-limit').data('plot-config') || {};
195
195
 
196
196
  try {
197
197
  plot = $.plot($(container), [series_data],
@@ -33,10 +33,10 @@ function min_max(range_element) {
33
33
 
34
34
 
35
35
 
36
- var min = max = BlacklightRangeLimit.parseNum(current_limit.find(".single").text())
36
+ var min = max = BlacklightRangeLimit.parseNum(current_limit.find(".single").data('blrlSingle'))
37
37
  if ( isNaN(min)) {
38
- min = BlacklightRangeLimit.parseNum(current_limit.find(".from").first().text());
39
- max = BlacklightRangeLimit.parseNum(current_limit.find(".to").first().text());
38
+ min = BlacklightRangeLimit.parseNum(current_limit.find(".from").first().data('blrlBegin'));
39
+ max = BlacklightRangeLimit.parseNum(current_limit.find(".to").first().data('blrlEnd'));
40
40
  }
41
41
 
42
42
  if (isNaN(min) || isNaN(max)) {
@@ -44,7 +44,6 @@ function min_max(range_element) {
44
44
  min = BlacklightRangeLimit.parseNum($(range_element).find(".min").first().text());
45
45
  max = BlacklightRangeLimit.parseNum($(range_element).find(".max").first().text());
46
46
  }
47
-
48
47
  return [min, max]
49
48
  }
50
49
 
@@ -42,13 +42,35 @@ module RangeLimitHelper
42
42
  return t('blacklight.range_limit.missing')
43
43
  elsif hash["begin"] || hash["end"]
44
44
  if hash["begin"] == hash["end"]
45
- return t('blacklight.range_limit.single_html', begin: h(hash['begin']))
45
+ return t(
46
+ 'blacklight.range_limit.single_html',
47
+ begin: format_range_display_value(hash['begin'], solr_field),
48
+ begin_value: hash['begin']
49
+ )
46
50
  else
47
- return t('blacklight.range_limit.range_html', begin: h(hash['begin']), end: h(hash['end']))
51
+ return t(
52
+ 'blacklight.range_limit.range_html',
53
+ begin: format_range_display_value(hash['begin'], solr_field),
54
+ begin_value: hash['begin'],
55
+ end: format_range_display_value(hash['end'], solr_field),
56
+ end_value: hash['end']
57
+ )
48
58
  end
49
59
  end
50
60
 
51
- return ""
61
+ ''
62
+ end
63
+
64
+ ##
65
+ # A method that is meant to be overridden downstream to format how a range
66
+ # label might be displayed to a user. By default it just returns the value
67
+ # as rendered by the presenter
68
+ def format_range_display_value(value, solr_field)
69
+ if respond_to?(:facet_item_presenter)
70
+ facet_item_presenter(facet_configuration_for_field(solr_field), value, solr_field).label
71
+ else
72
+ facet_display_value(solr_field, value)
73
+ end
52
74
  end
53
75
 
54
76
  # Show the limit area if:
@@ -7,7 +7,7 @@
7
7
  maxlength = field_config[:maxlength]
8
8
  -%>
9
9
 
10
- <div class="limit_content range_limit">
10
+ <div class="limit_content range_limit <%= field_name %>-config blrl-plot-config">
11
11
  <% if has_selected_range_limit?(field_name) %>
12
12
  <ul class="current list-unstyled facet-values">
13
13
  <li class="selected">
@@ -7,8 +7,11 @@
7
7
  <span class="facet-label">
8
8
  <%= link_to(
9
9
  t('blacklight.range_limit.range_html',
10
- begin: facet_display_value(solr_field, hash[:from]),
11
- end: facet_display_value(solr_field, hash[:to])),
10
+ begin: format_range_display_value(hash[:from], solr_field),
11
+ begin_value: hash[:from],
12
+ end: format_range_display_value(hash[:to], solr_field),
13
+ end_value: hash[:to]
14
+ ),
12
15
  search_action_url(add_range(solr_field, hash[:from], hash[:to]).except(:controller, :action)),
13
16
  class: 'facet_select'
14
17
  ) %>
@@ -17,14 +17,14 @@ Gem::Specification.new do |s|
17
17
 
18
18
  s.license = 'Apache 2.0'
19
19
 
20
- s.add_dependency 'blacklight', '>= 7.0'
20
+ s.add_dependency 'blacklight', '~> 7.0'
21
21
 
22
22
  s.add_development_dependency 'rspec', '~> 3.0'
23
23
  s.add_development_dependency 'rspec-rails'
24
24
  s.add_development_dependency 'capybara', '~> 3'
25
25
  s.add_development_dependency 'sqlite3'
26
26
  s.add_development_dependency 'launchy'
27
- s.add_development_dependency 'solr_wrapper', '~> 0.14'
27
+ s.add_development_dependency 'solr_wrapper', '~> 2.0'
28
28
  s.add_development_dependency 'engine_cart', '~> 2.1'
29
29
  s.add_development_dependency 'selenium-webdriver', '>= 3.13.1'
30
30
  s.add_development_dependency 'webdrivers', '~>3.0'
@@ -9,5 +9,5 @@ ar:
9
9
  view_distribution: 'عرض التوزيع'
10
10
  view_larger: 'عرض بحجم أكبر »'
11
11
  results_range_html: 'تمتد النتائج الحالية من <span class="min">%{min}</span> إلى<span class="max">%{max}</span>'
12
- single_html: '<span class="single">%{begin}</span>'
13
- range_html: '<span class="from">%{begin}</span> إلى<span class="to">%{end}</span>'
12
+ single_html: '<span class="single" data-blrl-single="%{begin_value}">%{begin}</span>'
13
+ range_html: '<span class="from" data-blrl-begin="%{begin_value}">%{begin}</span> الى <span class="to" data-blrl-end="%{end_value}">%{end}</span>'
@@ -9,5 +9,5 @@ en:
9
9
  view_distribution: 'View distribution'
10
10
  view_larger: 'View larger »'
11
11
  results_range_html: 'Current results range from <span class="min">%{min}</span> to <span class="max">%{max}</span>'
12
- single_html: '<span class="single">%{begin}</span>'
13
- range_html: '<span class="from">%{begin}</span> to <span class="to">%{end}</span>'
12
+ single_html: '<span class="single" data-blrl-single="%{begin_value}">%{begin}</span>'
13
+ range_html: '<span class="from" data-blrl-begin="%{begin_value}">%{begin}</span> to <span class="to" data-blrl-end="%{end_value}">%{end}</span>'
@@ -7,7 +7,9 @@ module BlacklightRangeLimit
7
7
  # Need to tell asset pipeline to precompile the excanvas
8
8
  # we use for IE.
9
9
  initializer "blacklight_range_limit.assets", :after => "assets" do
10
- Rails.application.config.assets.precompile += %w( flot/excanvas.min.js )
10
+ if defined? Sprockets
11
+ Rails.application.config.assets.precompile += %w( flot/excanvas.min.js )
12
+ end
11
13
  end
12
14
 
13
15
  config.action_dispatch.rescue_responses.merge!(
@@ -35,7 +35,7 @@
35
35
  facet_field_label(solr_field),
36
36
  range_display(solr_field, my_params),
37
37
  escape_value: false,
38
- remove: remove_range_param(solr_field, my_params)
38
+ remove: search_action_path(remove_range_param(solr_field, my_params))
39
39
  )
40
40
  end
41
41
  end
@@ -87,14 +87,14 @@
87
87
  private
88
88
 
89
89
  def range_params(my_params = params)
90
- return {} unless my_params[:range].is_a?(ActionController::Parameters)
90
+ return {} unless my_params[:range].is_a?(ActionController::Parameters) || my_params[:range].is_a?(Hash)
91
91
 
92
92
  my_params[:range].select do |_solr_field, range_options|
93
93
  next unless range_options
94
94
 
95
- [range_options['missing'],
96
- range_options['begin'],
97
- range_options['end']].any?
95
+ [range_options['missing'].presence,
96
+ range_options['begin'].presence,
97
+ range_options['end'].presence].any?
98
98
  end
99
99
  end
100
100
  end
@@ -9,7 +9,7 @@ module BlacklightRangeLimit
9
9
  end
10
10
 
11
11
  def install_catalog_controller_mixin
12
- inject_into_class 'app/controllers/catalog_controller.rb', CatalogController do
12
+ inject_into_file 'app/controllers/catalog_controller.rb', after: /include Blacklight::Catalog.*$/ do
13
13
  "\n include BlacklightRangeLimit::ControllerOverride\n"
14
14
  end
15
15
  end
@@ -24,7 +24,15 @@ describe "Blacklight Range Limit" do
24
24
  click_link 'View distribution'
25
25
  click_link '2000 to 2008'
26
26
 
27
- expect(page).to have_content "2000 to 2008 ✖ [remove] 12"
27
+ within '.blacklight-pub_date_si' do
28
+ expect(page).to have_content "2000 to 2008 ✖ [remove] 12"
29
+ end
30
+
31
+ within '.constraints-container' do
32
+ expect(page).to have_content '2000 to 2008'
33
+ end
34
+
35
+ expect(page).to have_content '1 - 10 of 12'
28
36
  end
29
37
 
30
38
  it "should not include page parameter" do
@@ -5,7 +5,13 @@ RSpec.describe BlacklightRangeLimit::ViewHelperOverride, type: :helper do
5
5
  before do
6
6
  allow(helper).to receive_messages(
7
7
  facet_field_label: 'Date Range',
8
- remove_range_param: '/remove'
8
+ remove_range_param: {},
9
+ search_action_path: '/catalog',
10
+ blacklight_config: CatalogController.blacklight_config,
11
+ search_state: {},
12
+ )
13
+ allow(controller).to receive_messages(
14
+ search_state_class: Blacklight::SearchState,
9
15
  )
10
16
  end
11
17
 
@@ -32,7 +38,11 @@ RSpec.describe BlacklightRangeLimit::ViewHelperOverride, type: :helper do
32
38
 
33
39
  describe 'render_search_to_s_filters' do
34
40
  before do
35
- allow(helper).to receive_messages(facet_field_label: 'Date Range')
41
+ allow(helper).to receive_messages(
42
+ facet_field_label: 'Date Range',
43
+ blacklight_config: CatalogController.blacklight_config,
44
+ search_state: {},
45
+ )
36
46
  end
37
47
 
38
48
  it 'does not return any content when the range parameter invalid' do
@@ -82,6 +92,13 @@ RSpec.describe BlacklightRangeLimit::ViewHelperOverride, type: :helper do
82
92
  ActionController::Parameters.new(range: { field_name: { 'wrong' => 'data' } })
83
93
  )
84
94
  ).to eq({})
95
+
96
+ expect(
97
+ helper.send(
98
+ :range_params,
99
+ ActionController::Parameters.new(range: { field_name: { 'begin' => '', 'end' => '' } })
100
+ )
101
+ ).to eq({})
85
102
  end
86
103
 
87
104
  it 'returns the range parameters that are present' do
@@ -1,3 +1,3 @@
1
- gem 'blacklight', github: 'projectblacklight/blacklight', branch: 'master'
2
1
  gem 'rails-controller-testing'
3
2
  gem 'thor', '~> 0.20'
3
+ gem 'blacklight', ENV['BLACKLIGHT_VERSION'] if ENV['BLACKLIGHT_VERSION']
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: 7.7.0
4
+ version: 7.9.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jonathan Rochkind
@@ -9,20 +9,20 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2020-04-02 00:00:00.000000000 Z
12
+ date: 2020-08-24 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: blacklight
16
16
  requirement: !ruby/object:Gem::Requirement
17
17
  requirements:
18
- - - ">="
18
+ - - "~>"
19
19
  - !ruby/object:Gem::Version
20
20
  version: '7.0'
21
21
  type: :runtime
22
22
  prerelease: false
23
23
  version_requirements: !ruby/object:Gem::Requirement
24
24
  requirements:
25
- - - ">="
25
+ - - "~>"
26
26
  - !ruby/object:Gem::Version
27
27
  version: '7.0'
28
28
  - !ruby/object:Gem::Dependency
@@ -101,14 +101,14 @@ dependencies:
101
101
  requirements:
102
102
  - - "~>"
103
103
  - !ruby/object:Gem::Version
104
- version: '0.14'
104
+ version: '2.0'
105
105
  type: :development
106
106
  prerelease: false
107
107
  version_requirements: !ruby/object:Gem::Requirement
108
108
  requirements:
109
109
  - - "~>"
110
110
  - !ruby/object:Gem::Version
111
- version: '0.14'
111
+ version: '2.0'
112
112
  - !ruby/object:Gem::Dependency
113
113
  name: engine_cart
114
114
  requirement: !ruby/object:Gem::Requirement