europeana-blacklight 0.4.3 → 0.4.4

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
  SHA1:
3
- metadata.gz: d3b33734136e3321b7c3bad989be93690a479f98
4
- data.tar.gz: 9a074bd2838c7eebfb1e2a6aca9f9191fc98d9c0
3
+ metadata.gz: fdb81441c4273124e40f92b211e8f8e4a867b6bd
4
+ data.tar.gz: fa194c25a1b778b52b03cf982f4565aa1f559b3a
5
5
  SHA512:
6
- metadata.gz: bb07e72f2e73a96b03efa331cdd5262a3074eae8afa9d6ff83ba1d3238e28e40fd959565e6d555317d2892c1873bdcf86fced824d3c72e0300b9e9f9a8eb6621
7
- data.tar.gz: 0d5fc80c5518a447e195b19f01fee849d7bb6faac3df87956e1c8feaad5654e8f17e52f81edcde9576f88e398838a202049b14622452d7e4065df3bad226a55b
6
+ metadata.gz: 9d0f4b83372d001682a62b692810648b19f29dc49ea5a015549f40d170fec5efcebb3d3f7bd4277dfa0d58e96386c9e8c1abaa641d77ff72cea6cbccff368677
7
+ data.tar.gz: 1a082504cba1b0519a03751f37a89559a307f547e9292de4b5198c160fe0cf5008e49623d18b3abe1adeec8b6c74409f67f27a4c7d06b056236df4dc61261118
@@ -96,6 +96,12 @@ module Europeana
96
96
  FacetItem.new(value: value['label'], hits: value['count'])
97
97
  end
98
98
 
99
+ if blacklight_config && blacklight_config.facet_fields[facet_field_name]
100
+ if blacklight_config.facet_fields[facet_field_name].group.present?
101
+ items = grouped_facet_field_items(facet_field_name, items)
102
+ end
103
+ end
104
+
99
105
  hash[facet_field_name] = FacetField.new(facet_field_name, items, facet_field_aggregation_options(facet_field_name))
100
106
 
101
107
  if blacklight_config && !blacklight_config.facet_fields[facet_field_name]
@@ -107,6 +113,21 @@ module Europeana
107
113
  end
108
114
  end
109
115
 
116
+ def grouped_facet_field_items(facet_field_name, items)
117
+ groups = {}
118
+
119
+ items.each do |item|
120
+ item_group = blacklight_config.facet_fields[facet_field_name].group.call(item)
121
+ if groups.key?(item_group)
122
+ groups[item_group].hits += item.hits
123
+ else
124
+ groups[item_group] = FacetItem.new(item_group, item.hits)
125
+ end
126
+ end
127
+
128
+ groups.values.sort_by { |item| -item.hits }
129
+ end
130
+
110
131
  def facet_field_aggregation_options(name)
111
132
  options = {}
112
133
 
@@ -102,6 +102,7 @@ module Europeana
102
102
 
103
103
  def quote_facet_value(facet_field, value)
104
104
  return value if Europeana::API::Search::Fields::MEDIA.include?(facet_field)
105
+ return value if value.include?('*')
105
106
  '"' + value.gsub('"', '\"') + '"'
106
107
  end
107
108
 
@@ -1,5 +1,5 @@
1
1
  module Europeana
2
2
  module Blacklight
3
- VERSION = '0.4.3'.freeze
3
+ VERSION = '0.4.4'.freeze
4
4
  end
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: europeana-blacklight
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.3
4
+ version: 0.4.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Richard Doe
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-05-19 00:00:00.000000000 Z
11
+ date: 2016-06-07 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: blacklight
@@ -312,3 +312,4 @@ test_files:
312
312
  - spec/models/europeana/blacklight/document_spec.rb
313
313
  - spec/presenters/europeana/blacklight/document_presenter_spec.rb
314
314
  - spec/spec_helper.rb
315
+ has_rdoc: