blacklight_range_limit 6.5.0 → 7.0.0.rc1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +5 -5
- data/.solr_wrapper.yml +0 -1
- data/.travis.yml +3 -4
- data/Gemfile +0 -4
- data/Rakefile +2 -0
- data/VERSION +1 -1
- data/app/assets/javascripts/blacklight_range_limit/range_limit_distro_facets.js +3 -4
- data/app/assets/javascripts/blacklight_range_limit/range_limit_shared.js +6 -6
- data/app/assets/javascripts/blacklight_range_limit/range_limit_slider.js +0 -1
- data/app/views/blacklight_range_limit/_range_limit_panel.html.erb +31 -33
- data/blacklight_range_limit.gemspec +5 -7
- data/lib/blacklight_range_limit.rb +1 -1
- data/lib/blacklight_range_limit/controller_override.rb +1 -16
- data/lib/blacklight_range_limit/engine.rb +1 -0
- data/lib/blacklight_range_limit/range_limit_builder.rb +19 -21
- data/lib/blacklight_range_limit/segment_calculation.rb +1 -3
- data/lib/blacklight_range_limit/view_helper_override.rb +39 -26
- data/lib/generators/blacklight_range_limit/assets_generator.rb +3 -0
- data/lib/generators/blacklight_range_limit/install_generator.rb +1 -1
- data/lib/tasks/blacklight_range_limit.rake +1 -1
- data/solr/conf/schema.xml +325 -564
- data/solr/conf/solrconfig.xml +78 -294
- data/solr/sample_solr_documents.yml +30 -30
- data/spec/features/blacklight_range_limit_spec.rb +12 -20
- data/spec/fixtures/solr_documents/zero_year.yml +2 -2
- data/spec/lib/blacklight_range_limit/segment_calculation_spec.rb +0 -14
- data/spec/spec_helper.rb +0 -15
- data/spec/test_app_templates/Gemfile.extra +1 -1
- data/spec/test_app_templates/lib/generators/test_app_generator.rb +1 -1
- metadata +18 -55
- data/spec/features/a_javascript_spec.rb +0 -25
- data/spec/lib/blacklight_range_limit/view_helper_override_helper_spec.rb +0 -127
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: 678418e9299f580737c1229110ba043559d6ab4b
|
4
|
+
data.tar.gz: d18f33c673d219e596b1ccf95f9fc51fe9e92fc2
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: e7ecc681047532fdebde37e297ad35ffce54e0d0041902a7c1dba12b1f1ae9fba91ec24c82c2b2fd0be19a1e0a193327a0b6927f74f891cd51b612ee8173f1d6
|
7
|
+
data.tar.gz: ae23fa2040d85911a63019310fbc9c4d016ad6b761ae2d66b30de1e141cdea85e0ea20da06afcfc2c1945ebcdfce2f6faf095b506a487f0bba04d8d8d6d5efc9
|
data/.solr_wrapper.yml
CHANGED
data/.travis.yml
CHANGED
@@ -4,11 +4,10 @@ notifications:
|
|
4
4
|
language: ruby
|
5
5
|
sudo: false
|
6
6
|
rvm:
|
7
|
-
- 2.
|
8
|
-
- 2.6.5
|
7
|
+
- 2.3.1
|
9
8
|
|
10
9
|
before_install:
|
11
|
-
-
|
10
|
+
- gem install bundler
|
12
11
|
|
13
12
|
notifications:
|
14
13
|
irc: "irc.freenode.org#blacklight"
|
@@ -18,4 +17,4 @@ notifications:
|
|
18
17
|
global_env:
|
19
18
|
- NOKOGIRI_USE_SYSTEM_LIBRARIES=true
|
20
19
|
|
21
|
-
jdk:
|
20
|
+
jdk: oraclejdk8
|
data/Gemfile
CHANGED
data/Rakefile
CHANGED
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
|
1
|
+
7.0.0.rc1
|
@@ -1,5 +1,4 @@
|
|
1
1
|
// for Blacklight.onLoad:
|
2
|
-
//= require blacklight/core
|
3
2
|
|
4
3
|
/* A custom event "plotDrawn.blacklight.rangeLimit" will be sent when flot plot
|
5
4
|
is (re-)drawn on screen possibly with a new size. target of event will be the DOM element
|
@@ -199,14 +198,14 @@ Blacklight.onLoad(function() {
|
|
199
198
|
|
200
199
|
find_segment_for = function_for_find_segment(pointer_lookup);
|
201
200
|
var last_segment = null;
|
202
|
-
$(
|
201
|
+
$(container).tooltip({'placement': 'bottom', 'trigger': 'manual', 'delay': { show: 0, hide: 100}});
|
203
202
|
|
204
203
|
$(container).bind("plothover", function (event, pos, item) {
|
205
204
|
segment = find_segment_for(pos.x);
|
206
205
|
|
207
206
|
if(segment != last_segment) {
|
208
207
|
var title = find_segment_for(pos.x).label + ' (' + BlacklightRangeLimit.parseNum(segment.count) + ')';
|
209
|
-
$(
|
208
|
+
$(container).attr("title", title).tooltip("_fixTitle").tooltip("show");
|
210
209
|
|
211
210
|
last_segment = segment;
|
212
211
|
}
|
@@ -214,7 +213,7 @@ Blacklight.onLoad(function() {
|
|
214
213
|
|
215
214
|
$(container).bind("mouseout", function() {
|
216
215
|
last_segment = null;
|
217
|
-
$(
|
216
|
+
$(container).tooltip('hide');
|
218
217
|
});
|
219
218
|
$(container).bind("plotclick", function (event, pos, item) {
|
220
219
|
if ( plot.getSelection() == null) {
|
@@ -10,15 +10,15 @@
|
|
10
10
|
this.options = options || {};
|
11
11
|
}
|
12
12
|
|
13
|
-
BlacklightRangeLimit.noConflict = function noConflict() {
|
14
|
-
global.BlacklightRangeLimit = previousBlacklightRangeLimit;
|
15
|
-
return BlacklightRangeLimit;
|
16
|
-
};
|
17
|
-
|
18
13
|
BlacklightRangeLimit.parseNum = function parseNum(str) {
|
19
14
|
str = String(str).replace(/[^0-9]/g, '');
|
20
15
|
return parseInt(str, 10);
|
21
16
|
};
|
22
17
|
|
18
|
+
BlacklightRangeLimit.noConflict = function noConflict() {
|
19
|
+
global.BlacklightRangeLimit = previousBlacklightRangeLimit;
|
20
|
+
return BlacklightRangeLimit;
|
21
|
+
};
|
22
|
+
|
23
23
|
global.BlacklightRangeLimit = BlacklightRangeLimit;
|
24
|
-
}(this);
|
24
|
+
}(this);
|
@@ -1,19 +1,19 @@
|
|
1
1
|
<%- # requires solr_config local passed in
|
2
|
-
field_config = range_config(
|
3
|
-
label = facet_field_label(
|
4
|
-
|
2
|
+
field_config = range_config(field_name)
|
3
|
+
label = facet_field_label(field_name)
|
4
|
+
|
5
5
|
input_label_range_begin = field_config[:input_label_range_begin] || t("blacklight.range_limit.range_begin", field_label: label)
|
6
6
|
input_label_range_end = field_config[:input_label_range_end] || t("blacklight.range_limit.range_end", field_label: label)
|
7
7
|
maxlength = field_config[:maxlength]
|
8
8
|
-%>
|
9
9
|
|
10
10
|
<div class="limit_content range_limit">
|
11
|
-
<% if has_selected_range_limit?(
|
11
|
+
<% if has_selected_range_limit?(field_name) %>
|
12
12
|
<ul class="current list-unstyled facet-values">
|
13
13
|
<li class="selected">
|
14
14
|
<span class="facet-label">
|
15
|
-
<span class="selected"><%= range_display(
|
16
|
-
<%= link_to remove_range_param(
|
15
|
+
<span class="selected"><%= range_display(field_name) %></span>
|
16
|
+
<%= link_to remove_range_param(field_name), :class=>"remove", :title => t('blacklight.range_limit.remove_limit') do %>
|
17
17
|
<span class="glyphicon glyphicon-remove"></span>
|
18
18
|
<span class="sr-only">[<%= t('blacklight.range_limit.remove_limit') %>]</span>
|
19
19
|
<% end %>
|
@@ -21,64 +21,63 @@
|
|
21
21
|
<span class="selected facet-count"><%= number_with_delimiter(@response.total) %></span>
|
22
22
|
</li>
|
23
23
|
</ul>
|
24
|
-
|
24
|
+
|
25
25
|
<% end %>
|
26
26
|
|
27
|
-
<% unless selected_missing_for_range_limit?(
|
28
|
-
<%= form_tag search_action_path, :method => :get, class: [BlacklightRangeLimit.classes[:form], "range_#{
|
27
|
+
<% unless selected_missing_for_range_limit?(field_name) %>
|
28
|
+
<%= form_tag search_action_path, :method => :get, class: [BlacklightRangeLimit.classes[:form], "range_#{field_name}"].join(' ') do %>
|
29
29
|
<%= render_hash_as_hidden_fields(search_state.params_for_search.except(:page)) %>
|
30
|
-
|
30
|
+
|
31
31
|
<!-- we need to include a dummy search_field parameter if none exists,
|
32
32
|
to trick blacklight into displaying actual search results instead
|
33
33
|
of home page. Not a great solution, but easiest for now. -->
|
34
34
|
<% unless params.has_key?(:search_field) %>
|
35
35
|
<%= hidden_field_tag("search_field", "dummy_range") %>
|
36
36
|
<% end %>
|
37
|
-
|
38
|
-
<%= render_range_input(
|
37
|
+
|
38
|
+
<%= render_range_input(field_name, :begin, input_label_range_begin, maxlength) %> – <%= render_range_input(field_name, :end, input_label_range_end, maxlength) %>
|
39
39
|
<%= submit_tag t('blacklight.range_limit.submit_limit'), class: BlacklightRangeLimit.classes[:submit] %>
|
40
|
-
|
41
40
|
<% end %>
|
42
41
|
<% end %>
|
43
|
-
|
42
|
+
|
44
43
|
<!-- no results profile if missing is selected -->
|
45
|
-
<% unless selected_missing_for_range_limit?(
|
44
|
+
<% unless selected_missing_for_range_limit?(field_name) %>
|
46
45
|
<!-- you can hide this if you want, but it has to be on page if you want
|
47
46
|
JS slider and calculated facets to show up, JS sniffs it. -->
|
48
47
|
<div class="profile">
|
49
|
-
<% if stats_for_field?(
|
48
|
+
<% if stats_for_field?(field_name) %>
|
50
49
|
<!-- No stats information found for field in search response -->
|
51
50
|
<% end %>
|
52
51
|
|
53
|
-
<% if (min = range_results_endpoint(
|
54
|
-
(max = range_results_endpoint(
|
52
|
+
<% if (min = range_results_endpoint(field_name, :min)) &&
|
53
|
+
(max = range_results_endpoint(field_name, :max)) %>
|
55
54
|
<p class="range subsection <%= "slider_js" unless field_config[:slider_js] == false %>">
|
56
|
-
Current results range from <span class="min"><%= range_results_endpoint(
|
55
|
+
Current results range from <span class="min"><%= range_results_endpoint(field_name, :min) %></span> to <span class="max"><%= range_results_endpoint(field_name, :max) %></span>
|
57
56
|
</p>
|
58
|
-
|
57
|
+
|
59
58
|
<% if field_config[:segments] != false %>
|
60
59
|
<div class="distribution subsection <%= 'chart_js' unless field_config[:chart_js] == false %>">
|
61
60
|
<!-- if we already fetched segments from solr, display them
|
62
61
|
here. Otherwise, display a link to fetch them, which JS
|
63
62
|
will AJAX fetch. -->
|
64
|
-
<% if solr_range_queries_to_a(
|
65
|
-
|
66
|
-
<%= render(:partial => "blacklight_range_limit/range_segments", :locals => {:solr_field =>
|
67
|
-
|
68
|
-
<% else %>
|
69
|
-
<%= link_to('View distribution', main_app.url_for(search_state.to_h.merge(action: 'range_limit', range_field:
|
63
|
+
<% if solr_range_queries_to_a(field_name).length > 0 %>
|
64
|
+
|
65
|
+
<%= render(:partial => "blacklight_range_limit/range_segments", :locals => {:solr_field => field_name}) %>
|
66
|
+
|
67
|
+
<% else %>
|
68
|
+
<%= link_to('View distribution', main_app.url_for(search_state.to_h.merge(action: 'range_limit', range_field: field_name, range_start: min, range_end: max)), :class => "load_distribution") %>
|
70
69
|
<% end %>
|
71
70
|
</div>
|
72
|
-
<% end %>
|
71
|
+
<% end %>
|
73
72
|
<% end %>
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
<% if (stats = stats_for_field(
|
73
|
+
|
74
|
+
|
75
|
+
|
76
|
+
<% if (stats = stats_for_field(field_name)) && stats["missing"] > 0 %>
|
78
77
|
<ul class="missing list-unstyled facet-values subsection">
|
79
78
|
<li>
|
80
79
|
<span class="facet-label">
|
81
|
-
<%= link_to BlacklightRangeLimit.labels[:missing], add_range_missing(
|
80
|
+
<%= link_to BlacklightRangeLimit.labels[:missing], add_range_missing(field_name) %>
|
82
81
|
</span>
|
83
82
|
<span class="facet-count">
|
84
83
|
<%= number_with_delimiter(stats["missing"]) %>
|
@@ -89,4 +88,3 @@
|
|
89
88
|
</div>
|
90
89
|
<% end %>
|
91
90
|
</div>
|
92
|
-
|
@@ -17,18 +17,16 @@ Gem::Specification.new do |s|
|
|
17
17
|
|
18
18
|
s.license = 'Apache 2.0'
|
19
19
|
|
20
|
-
s.add_dependency 'rails', '>=
|
20
|
+
s.add_dependency 'rails', '>= 3.0'
|
21
21
|
s.add_dependency 'jquery-rails' # our JS needs jquery_rails
|
22
|
-
s.add_dependency 'blacklight'
|
22
|
+
s.add_dependency 'blacklight'
|
23
|
+
s.add_dependency 'tether-rails'
|
23
24
|
|
24
|
-
s.add_development_dependency 'chromedriver-helper'
|
25
25
|
s.add_development_dependency 'rspec', '~> 3.0'
|
26
26
|
s.add_development_dependency 'rspec-rails'
|
27
27
|
s.add_development_dependency 'capybara'
|
28
28
|
s.add_development_dependency 'sqlite3'
|
29
29
|
s.add_development_dependency 'launchy'
|
30
|
-
s.add_development_dependency '
|
31
|
-
s.add_development_dependency '
|
32
|
-
s.add_development_dependency 'engine_cart', '~> 2.0'
|
33
|
-
s.add_development_dependency 'webdrivers'
|
30
|
+
s.add_development_dependency 'solr_wrapper', '~> 0.14'
|
31
|
+
s.add_development_dependency 'engine_cart', '~> 1.0'
|
34
32
|
end
|
@@ -9,7 +9,6 @@ module BlacklightRangeLimit
|
|
9
9
|
included do
|
10
10
|
helper BlacklightRangeLimit::ViewHelperOverride
|
11
11
|
helper RangeLimitHelper
|
12
|
-
helper_method :has_range_limit_parameters?
|
13
12
|
end
|
14
13
|
|
15
14
|
# Action method of our own!
|
@@ -23,24 +22,10 @@ module BlacklightRangeLimit
|
|
23
22
|
# field (with start/end params) mentioned in query params
|
24
23
|
# range_field, range_start, and range_end
|
25
24
|
|
26
|
-
@response, _ = search_results
|
25
|
+
@response, _ = search_service.search_results do |search_builder|
|
27
26
|
search_builder.except(:add_range_limit_params).append(:fetch_specific_range_limit)
|
28
27
|
end
|
29
|
-
|
30
28
|
render('blacklight_range_limit/range_segments', :locals => {:solr_field => params[:range_field]}, :layout => !request.xhr?)
|
31
29
|
end
|
32
|
-
|
33
|
-
# over-ride, call super, but make sure our range limits count too
|
34
|
-
def has_search_parameters?
|
35
|
-
super || has_range_limit_parameters?
|
36
|
-
end
|
37
|
-
|
38
|
-
def has_range_limit_parameters?(my_params = params)
|
39
|
-
my_params[:range] &&
|
40
|
-
my_params[:range].to_unsafe_h.any? do |key, v|
|
41
|
-
v.present? && v.respond_to?(:'[]') &&
|
42
|
-
(v["begin"].present? || v["end"].present? || v["missing"].present?)
|
43
|
-
end
|
44
|
-
end
|
45
30
|
end
|
46
31
|
end
|
@@ -12,48 +12,46 @@ module BlacklightRangeLimit
|
|
12
12
|
|
13
13
|
# Method added to to fetch proper things for date ranges.
|
14
14
|
def add_range_limit_params(solr_params)
|
15
|
-
ranged_facet_configs =
|
16
|
-
blacklight_config.facet_fields.select { |key, config| config.range }
|
15
|
+
ranged_facet_configs =
|
16
|
+
blacklight_config.facet_fields.select { |key, config| config.range }
|
17
17
|
# In ruby 1.8, hash.select returns an array of pairs, in ruby 1.9
|
18
|
-
# it returns a hash. Turn it into a hash either way.
|
18
|
+
# it returns a hash. Turn it into a hash either way.
|
19
19
|
ranged_facet_configs = Hash[ ranged_facet_configs ] unless ranged_facet_configs.kind_of?(Hash)
|
20
|
-
|
20
|
+
|
21
21
|
ranged_facet_configs.each_pair do |solr_field, config|
|
22
22
|
solr_params["stats"] = "true"
|
23
23
|
solr_params["stats.field"] ||= []
|
24
|
-
solr_params["stats.field"] << solr_field
|
25
|
-
|
26
|
-
range_config = BlacklightRangeLimit.range_config(blacklight_config, config.field)
|
27
|
-
|
24
|
+
solr_params["stats.field"] << solr_field
|
25
|
+
|
28
26
|
hash = blacklight_params["range"] && blacklight_params["range"][solr_field] ?
|
29
27
|
blacklight_params["range"][solr_field] :
|
30
28
|
{}
|
31
|
-
|
29
|
+
|
32
30
|
if !hash["missing"].blank?
|
33
31
|
# missing specified in request params
|
34
32
|
solr_params[:fq] ||= []
|
35
33
|
solr_params[:fq] << "-#{solr_field}:[* TO *]"
|
36
|
-
|
34
|
+
|
37
35
|
elsif !(hash["begin"].blank? && hash["end"].blank?)
|
38
36
|
# specified in request params, begin and/or end, might just have one
|
39
37
|
start = hash["begin"].blank? ? "*" : hash["begin"]
|
40
38
|
finish = hash["end"].blank? ? "*" : hash["end"]
|
41
|
-
|
39
|
+
|
42
40
|
solr_params[:fq] ||= []
|
43
41
|
solr_params[:fq] << "#{solr_field}: [#{start} TO #{finish}]"
|
44
|
-
|
45
|
-
if (
|
42
|
+
|
43
|
+
if (config.segments != false && start != "*" && finish != "*")
|
46
44
|
# Add in our calculated segments, can only do with both boundaries.
|
47
45
|
add_range_segments_to_solr!(solr_params, solr_field, start.to_i, finish.to_i)
|
48
46
|
end
|
49
|
-
|
50
|
-
elsif (
|
51
|
-
boundaries =
|
47
|
+
|
48
|
+
elsif (config.segments != false &&
|
49
|
+
boundaries = config.assumed_boundaries)
|
52
50
|
# assumed_boundaries in config
|
53
51
|
add_range_segments_to_solr!(solr_params, solr_field, boundaries[0], boundaries[1])
|
54
52
|
end
|
55
53
|
end
|
56
|
-
|
54
|
+
|
57
55
|
return solr_params
|
58
56
|
end
|
59
57
|
|
@@ -61,10 +59,10 @@ module BlacklightRangeLimit
|
|
61
59
|
# Another processing method, this one is NOT included in default processing chain,
|
62
60
|
# it is specifically swapped in *instead of* add_range_limit_params for
|
63
61
|
# certain ajax requests that only want to fetch range limit segments for
|
64
|
-
# ONE field.
|
62
|
+
# ONE field.
|
65
63
|
#
|
66
64
|
# It turns off facetting and sets rows to 0 as well, only results for
|
67
|
-
# single specified field are needed.
|
65
|
+
# single specified field are needed.
|
68
66
|
#
|
69
67
|
# Specified field and parameters are specified in incoming parameters
|
70
68
|
# range_field, range_start, range_end
|
@@ -74,13 +72,13 @@ module BlacklightRangeLimit
|
|
74
72
|
finish = blacklight_params[:range_end].to_i
|
75
73
|
|
76
74
|
add_range_segments_to_solr!(solr_params, solr_field, start, finish )
|
77
|
-
|
75
|
+
|
78
76
|
# Remove all field faceting for efficiency, we won't be using it.
|
79
77
|
solr_params.delete("facet.field")
|
80
78
|
solr_params.delete("facet.field".to_sym)
|
81
79
|
|
82
80
|
# We don't need any actual rows either
|
83
|
-
solr_params[:rows] = 0
|
81
|
+
solr_params[:rows] = 0
|
84
82
|
|
85
83
|
return solr_params
|
86
84
|
end
|
@@ -16,8 +16,6 @@ module BlacklightRangeLimit
|
|
16
16
|
|
17
17
|
field_config = BlacklightRangeLimit.range_config(blacklight_config, solr_field)
|
18
18
|
|
19
|
-
return solr_params unless field_config
|
20
|
-
|
21
19
|
solr_params[:"facet.query"] ||= []
|
22
20
|
|
23
21
|
boundaries = boundaries_for_range_facets(min, max, (field_config[:num_segments] || 10) )
|
@@ -30,7 +28,7 @@ module BlacklightRangeLimit
|
|
30
28
|
solr_params[:"facet.query"] << "#{solr_field}:[#{first} TO #{last}]"
|
31
29
|
end
|
32
30
|
|
33
|
-
solr_params
|
31
|
+
return solr_params
|
34
32
|
end
|
35
33
|
|
36
34
|
# returns an array of 'boundaries' for producing approx num_div
|
@@ -11,6 +11,19 @@
|
|
11
11
|
super
|
12
12
|
end
|
13
13
|
|
14
|
+
def has_range_limit_parameters?(my_params = params)
|
15
|
+
my_params[:range] &&
|
16
|
+
my_params[:range].to_unsafe_h.any? do |key, v|
|
17
|
+
v.present? && v.respond_to?(:'[]') &&
|
18
|
+
(v["begin"].present? || v["end"].present? || v["missing"].present?)
|
19
|
+
end
|
20
|
+
end
|
21
|
+
|
22
|
+
# over-ride, call super, but make sure our range limits count too
|
23
|
+
def has_search_parameters?
|
24
|
+
super || has_range_limit_parameters?
|
25
|
+
end
|
26
|
+
|
14
27
|
def query_has_constraints?(my_params = params)
|
15
28
|
super || has_range_limit_parameters?(my_params)
|
16
29
|
end
|
@@ -29,26 +42,39 @@
|
|
29
42
|
end
|
30
43
|
|
31
44
|
def render_constraints_filters(my_params = params)
|
45
|
+
content = super(my_params)
|
32
46
|
# add a constraint for ranges?
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
47
|
+
unless my_params[:range].blank?
|
48
|
+
my_params[:range].each_pair do |solr_field, hash|
|
49
|
+
|
50
|
+
next unless hash["missing"] || (!hash["begin"].blank?) || (!hash["end"].blank?)
|
51
|
+
content << render_constraint_element(
|
52
|
+
facet_field_label(solr_field),
|
53
|
+
range_display(solr_field, my_params),
|
54
|
+
:escape_value => false,
|
55
|
+
:remove => remove_range_param(solr_field, my_params)
|
56
|
+
)
|
57
|
+
end
|
40
58
|
end
|
59
|
+
return content
|
41
60
|
end
|
42
61
|
|
43
62
|
def render_search_to_s_filters(my_params)
|
63
|
+
content = super(my_params)
|
44
64
|
# add a constraint for ranges?
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
65
|
+
unless my_params[:range].blank?
|
66
|
+
my_params[:range].each_pair do |solr_field, hash|
|
67
|
+
next unless hash["missing"] || (!hash["begin"].blank?) || (! hash["end"].blank?)
|
68
|
+
|
69
|
+
content << render_search_to_s_element(
|
70
|
+
facet_field_label(solr_field),
|
71
|
+
range_display(solr_field, my_params),
|
72
|
+
:escape_value => false
|
73
|
+
)
|
74
|
+
|
75
|
+
end
|
51
76
|
end
|
77
|
+
return content
|
52
78
|
end
|
53
79
|
|
54
80
|
def remove_range_param(solr_field, my_params = params)
|
@@ -84,17 +110,4 @@
|
|
84
110
|
BlacklightRangeLimit.range_config(blacklight_config, solr_field)
|
85
111
|
end
|
86
112
|
|
87
|
-
private
|
88
|
-
|
89
|
-
def range_params(my_params = params)
|
90
|
-
return {} unless my_params[:range].is_a?(ActionController::Parameters) || my_params[:range].is_a?(Hash)
|
91
|
-
|
92
|
-
my_params[:range].select do |_solr_field, range_options|
|
93
|
-
next unless range_options
|
94
|
-
|
95
|
-
[range_options['missing'].presence,
|
96
|
-
range_options['begin'].presence,
|
97
|
-
range_options['end'].presence].any?
|
98
|
-
end
|
99
|
-
end
|
100
113
|
end
|