blacklight 4.4.0 → 4.4.1
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.
- checksums.yaml +4 -4
- data/VERSION +1 -1
- data/app/helpers/blacklight/blacklight_helper_behavior.rb +11 -4
- data/app/helpers/blacklight/catalog_helper_behavior.rb +4 -2
- data/app/views/_user_util_links.html.erb +1 -1
- data/app/views/catalog/_document.html.erb +1 -1
- data/app/views/catalog/_thumbnail_default.html.erb +1 -1
- data/lib/blacklight/solr/document.rb +13 -5
- data/lib/blacklight/solr_helper.rb +1 -0
- data/spec/helpers/catalog_helper_spec.rb +7 -7
- data/spec/lib/blacklight_solr_document_spec.rb +13 -0
- data/spec/lib/solr_helper_spec.rb +2 -0
- data/spec/views/catalog/_document.html.erb_spec.rb +22 -0
- data/spec/views/catalog/_thumbnail_default.erb_spec.rb +35 -0
- metadata +6 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: e233726683e123e23d25e7f85920aff1fc6174ae
|
4
|
+
data.tar.gz: 747930b852dfb6a093710a6ba264562063926348
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: b7c98286303cdc3c45e41bb2991615aa9a082ca5d770fef9e9b5eb538ee8e59a7c754ef4bb10b27597c779590d5d4ed9214135e315997753aae76da4cb7e7fa3
|
7
|
+
data.tar.gz: 07af82e4ba9cf21b51bff27c3219d701db867a02c59aaba3a4920a746be4ec555c5d2910a5f59505a976afd2aa629ef78567fc577c569b14741a96234157abdd
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
4.4.
|
1
|
+
4.4.1
|
@@ -92,7 +92,7 @@ module Blacklight::BlacklightHelperBehavior
|
|
92
92
|
wrapping_class = options.delete(:wrapping_class) || "documentFunctions"
|
93
93
|
|
94
94
|
content = []
|
95
|
-
content << render(:partial => 'catalog/bookmark_control', :locals => {:document=> document}.merge(options)) if
|
95
|
+
content << render(:partial => 'catalog/bookmark_control', :locals => {:document=> document}.merge(options)) if render_bookmarks_control?
|
96
96
|
|
97
97
|
content_tag("div", content.join("\n").html_safe, :class=> wrapping_class)
|
98
98
|
end
|
@@ -100,11 +100,14 @@ module Blacklight::BlacklightHelperBehavior
|
|
100
100
|
# Save function area for item detail 'show' view, normally
|
101
101
|
# renders next to title. By default includes 'Bookmarks'
|
102
102
|
def render_show_doc_actions(document=@document, options={})
|
103
|
-
|
103
|
+
# I'm not sure why this key is documentFunctions and #render_index_doc_actions uses wrapping_class.
|
104
|
+
# TODO: remove documentFunctions key in Blacklight 5.x
|
105
|
+
wrapping_class = options.delete(:documentFunctions) || options.delete(:wrapping_class) || "documentFunctions"
|
106
|
+
|
104
107
|
content = []
|
105
|
-
content << render(:partial => 'catalog/bookmark_control', :locals => {:document=> document}.merge(options)) if
|
108
|
+
content << render(:partial => 'catalog/bookmark_control', :locals => {:document=> document}.merge(options)) if render_bookmarks_control?
|
106
109
|
|
107
|
-
content_tag("div", content.join("\n").html_safe, :class=>
|
110
|
+
content_tag("div", content.join("\n").html_safe, :class=> wrapping_class)
|
108
111
|
end
|
109
112
|
|
110
113
|
##
|
@@ -621,4 +624,8 @@ module Blacklight::BlacklightHelperBehavior
|
|
621
624
|
render :partial => 'catalog/group_default'
|
622
625
|
end
|
623
626
|
|
627
|
+
def render_bookmarks_control?
|
628
|
+
has_user_authentication_provider? and current_or_guest_user.present?
|
629
|
+
end
|
630
|
+
|
624
631
|
end
|
@@ -104,7 +104,7 @@ module Blacklight::CatalogHelperBehavior
|
|
104
104
|
|
105
105
|
def has_thumbnail? document
|
106
106
|
blacklight_config.index.thumbnail_method or
|
107
|
-
blacklight_config.index.thumbnail_field && document.
|
107
|
+
blacklight_config.index.thumbnail_field && document.has?(blacklight_config.index.thumbnail_field)
|
108
108
|
end
|
109
109
|
|
110
110
|
def render_thumbnail_tag document, image_options = {}, url_options = {}
|
@@ -120,7 +120,9 @@ module Blacklight::CatalogHelperBehavior
|
|
120
120
|
end
|
121
121
|
|
122
122
|
def thumbnail_url document
|
123
|
-
|
123
|
+
if document.has? blacklight_config.index.thumbnail_field
|
124
|
+
document.first(blacklight_config.index.thumbnail_field)
|
125
|
+
end
|
124
126
|
end
|
125
127
|
|
126
128
|
def add_group_facet_params_and_redirect group
|
@@ -10,7 +10,7 @@
|
|
10
10
|
<% end %>
|
11
11
|
|
12
12
|
<div class="util-links-other">
|
13
|
-
<% if
|
13
|
+
<% if render_bookmarks_control? %>
|
14
14
|
<%= link_to t('blacklight.header_links.bookmarks'), bookmarks_path %>
|
15
15
|
<% end %>
|
16
16
|
<% if has_user_authentication_provider? and current_user %>
|
@@ -5,6 +5,6 @@
|
|
5
5
|
<%= render_document_partial document, :thumbnail, :document_counter => document_counter %>
|
6
6
|
|
7
7
|
<% # main container for doc partial view -%>
|
8
|
-
<%= render_document_partial document, :index %>
|
8
|
+
<%= render_document_partial document, :index, :document_counter => document_counter %>
|
9
9
|
|
10
10
|
</div>
|
@@ -1,4 +1,4 @@
|
|
1
|
-
<%- if has_thumbnail?(document) && tn = render_thumbnail_tag(document,
|
1
|
+
<%- if has_thumbnail?(document) && tn = render_thumbnail_tag(document, {}, :counter => document_counter_with_offset(document_counter)) %>
|
2
2
|
<div class="document-thumbnail">
|
3
3
|
<%= tn %>
|
4
4
|
</div>
|
@@ -62,9 +62,9 @@ module Blacklight::Solr::Document
|
|
62
62
|
# doc.has?(:location_facet, 'Clemons')
|
63
63
|
# doc.has?(:id, 'h009', /^u/i)
|
64
64
|
def has?(k, *values)
|
65
|
-
return if
|
66
|
-
return
|
67
|
-
target =
|
65
|
+
return true if key?(k) and values.empty?
|
66
|
+
return false if self[k].nil?
|
67
|
+
target = self[k]
|
68
68
|
if target.is_a?(Array)
|
69
69
|
values.each do |val|
|
70
70
|
return target.any?{|tv| val.is_a?(Regexp) ? (tv =~ val) : (tv==val)}
|
@@ -74,6 +74,10 @@ module Blacklight::Solr::Document
|
|
74
74
|
end
|
75
75
|
end
|
76
76
|
|
77
|
+
def key? k
|
78
|
+
@_source.key? k
|
79
|
+
end
|
80
|
+
|
77
81
|
def has_highlight_field? k
|
78
82
|
return false if @solr_response['highlighting'].blank? or @solr_response['highlighting'][self.id].blank?
|
79
83
|
|
@@ -93,14 +97,18 @@ module Blacklight::Solr::Document
|
|
93
97
|
# - :default - a value to return when the key doesn't exist
|
94
98
|
# if :sep is nil and the field is a multivalued field, the array is returned
|
95
99
|
def get(key, opts={:sep=>', ', :default=>nil})
|
96
|
-
if
|
97
|
-
val =
|
100
|
+
if key? key
|
101
|
+
val = self[key]
|
98
102
|
(val.is_a?(Array) and opts[:sep]) ? val.join(opts[:sep]) : val
|
99
103
|
else
|
100
104
|
opts[:default]
|
101
105
|
end
|
102
106
|
end
|
103
107
|
|
108
|
+
def first key
|
109
|
+
Array(self[key]).first
|
110
|
+
end
|
111
|
+
|
104
112
|
def id
|
105
113
|
self[self.class.unique_key]
|
106
114
|
end
|
@@ -311,6 +311,7 @@ module Blacklight::SolrHelper
|
|
311
311
|
|
312
312
|
|
313
313
|
if blacklight_config.add_facet_fields_to_solr_request
|
314
|
+
solr_parameters[:facet] = true
|
314
315
|
solr_parameters[:'facet.field'] ||= []
|
315
316
|
solr_parameters[:'facet.field'] += blacklight_config.facet_fields_to_add_to_solr
|
316
317
|
|
@@ -131,13 +131,13 @@ describe CatalogHelper do
|
|
131
131
|
|
132
132
|
it "should have a thumbnail if a thumbnail_field is configured and it exists in the document" do
|
133
133
|
helper.stub(:blacklight_config => OpenStruct.new(:index => OpenStruct.new(:thumbnail_field => :xyz) ))
|
134
|
-
document = double(:
|
134
|
+
document = double(:has? => true)
|
135
135
|
expect(helper.has_thumbnail? document).to be_true
|
136
136
|
end
|
137
137
|
|
138
138
|
it "should not have a thumbnail if the thumbnail_field is missing from the document" do
|
139
139
|
helper.stub(:blacklight_config => OpenStruct.new(:index => OpenStruct.new(:thumbnail_field => :xyz) ))
|
140
|
-
document = double(:
|
140
|
+
document = double(:has? => false)
|
141
141
|
expect(helper.has_thumbnail? document).to be_false
|
142
142
|
end
|
143
143
|
|
@@ -161,8 +161,8 @@ describe CatalogHelper do
|
|
161
161
|
helper.stub(:blacklight_config => double(:index => OpenStruct.new(:thumbnail_field => :xyz)))
|
162
162
|
document = double()
|
163
163
|
|
164
|
-
document.stub(:
|
165
|
-
document.stub(:
|
164
|
+
document.stub(:has?).with(:xyz).and_return(true)
|
165
|
+
document.stub(:first).with(:xyz).and_return("http://example.com/some.jpg")
|
166
166
|
|
167
167
|
helper.should_receive(:link_to_document).with(document, :label => image_tag("http://example.com/some.jpg"))
|
168
168
|
helper.render_thumbnail_tag document
|
@@ -188,15 +188,15 @@ describe CatalogHelper do
|
|
188
188
|
it "should pull the configured thumbnail field out of the document" do
|
189
189
|
helper.stub(:blacklight_config => double(:index => double(:thumbnail_field => "xyz")))
|
190
190
|
document = double()
|
191
|
-
document.stub(:
|
192
|
-
document.stub(:
|
191
|
+
document.stub(:has?).with("xyz").and_return(true)
|
192
|
+
document.stub(:first).with("xyz").and_return("asdf")
|
193
193
|
expect(helper.thumbnail_url document).to eq("asdf")
|
194
194
|
end
|
195
195
|
|
196
196
|
it "should return nil if the thumbnail field doesn't exist" do
|
197
197
|
helper.stub(:blacklight_config => double(:index => double(:thumbnail_field => "xyz")))
|
198
198
|
document = double()
|
199
|
-
document.stub(:
|
199
|
+
document.stub(:has?).with("xyz").and_return(false)
|
200
200
|
expect(helper.thumbnail_url document).to be_nil
|
201
201
|
end
|
202
202
|
end
|
@@ -231,5 +231,18 @@ describe "Blacklight::Solr::Document" do
|
|
231
231
|
end
|
232
232
|
end
|
233
233
|
end
|
234
|
+
|
235
|
+
describe "#first" do
|
236
|
+
it "should get the first value from a multi-valued field" do
|
237
|
+
doc = SolrDocument.new :multi => ['a', 'b']
|
238
|
+
expect(doc.first :multi).to eq("a")
|
239
|
+
end
|
240
|
+
|
241
|
+
it "should get the value from a single-valued field" do
|
242
|
+
doc = SolrDocument.new :single => 'a'
|
243
|
+
expect(doc.first :single).to eq("a")
|
244
|
+
|
245
|
+
end
|
246
|
+
end
|
234
247
|
|
235
248
|
end
|
@@ -290,6 +290,8 @@ describe 'Blacklight::SolrHelper' do
|
|
290
290
|
|
291
291
|
add_facetting_to_solr(solr_parameters, {})
|
292
292
|
|
293
|
+
expect(solr_parameters[:facet]).to be_true
|
294
|
+
|
293
295
|
solr_parameters[:'facet.field'].should include('test_field')
|
294
296
|
solr_parameters[:'f.test_field.facet.sort'].should == 'count'
|
295
297
|
end
|
@@ -0,0 +1,22 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe "catalog/_document" do
|
4
|
+
let :document do
|
5
|
+
SolrDocument.new :id => 'xyz', :format => 'a'
|
6
|
+
end
|
7
|
+
|
8
|
+
let :blacklight_config do
|
9
|
+
Blacklight::Configuration.new
|
10
|
+
end
|
11
|
+
|
12
|
+
it "should render the header, thumbnail and index" do
|
13
|
+
view.stub(:blacklight_config).and_return(blacklight_config)
|
14
|
+
stub_template "catalog/_document_header.html.erb" => "document_header"
|
15
|
+
stub_template "catalog/_thumbnail_default.html.erb" => "thumbnail_default"
|
16
|
+
stub_template "catalog/_index_default.html.erb" => "index_default"
|
17
|
+
render :partial => "catalog/document", :locals => {:document => document, :document_counter => 1}
|
18
|
+
expect(rendered).to match /document_header/
|
19
|
+
expect(rendered).to match /thumbnail_default/
|
20
|
+
expect(rendered).to match /index_default/
|
21
|
+
end
|
22
|
+
end
|
@@ -0,0 +1,35 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe "catalog/_thumbnail_default" do
|
4
|
+
|
5
|
+
let :document_without_thumbnail_field do
|
6
|
+
SolrDocument.new :id => 'xyz', :format => 'a'
|
7
|
+
end
|
8
|
+
|
9
|
+
let :document_with_thumbnail_field do
|
10
|
+
SolrDocument.new :id => 'xyz', :format => 'a', :thumbnail_url => 'http://localhost/logo.png'
|
11
|
+
end
|
12
|
+
|
13
|
+
let :blacklight_config do
|
14
|
+
Blacklight::Configuration.new do |config|
|
15
|
+
config.index.thumbnail_field = :thumbnail_url
|
16
|
+
end
|
17
|
+
end
|
18
|
+
|
19
|
+
before do
|
20
|
+
assign :response, mock(:params => {})
|
21
|
+
view.stub(:render_grouped_response?).and_return false
|
22
|
+
view.stub(:blacklight_config).and_return(blacklight_config)
|
23
|
+
end
|
24
|
+
|
25
|
+
it "should render the thumbnail if the document has one" do
|
26
|
+
render :partial => "catalog/thumbnail_default", :locals => {:document => document_with_thumbnail_field, :document_counter => 1}
|
27
|
+
expect(rendered).to match /document-thumbnail/
|
28
|
+
expect(rendered).to match /src="http:\/\/localhost\/logo.png"/
|
29
|
+
end
|
30
|
+
|
31
|
+
it "should not render a thumbnail if the document does not have one" do
|
32
|
+
render :partial => "catalog/thumbnail_default", :locals => {:document => document_without_thumbnail_field, :document_counter => 1}
|
33
|
+
expect(rendered).to eq ""
|
34
|
+
end
|
35
|
+
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: blacklight
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 4.4.
|
4
|
+
version: 4.4.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Jonathan Rochkind
|
@@ -17,7 +17,7 @@ authors:
|
|
17
17
|
autorequire:
|
18
18
|
bindir: bin
|
19
19
|
cert_chain: []
|
20
|
-
date: 2013-09-
|
20
|
+
date: 2013-09-18 00:00:00.000000000 Z
|
21
21
|
dependencies:
|
22
22
|
- !ruby/object:Gem::Dependency
|
23
23
|
name: rails
|
@@ -464,11 +464,13 @@ files:
|
|
464
464
|
- spec/test_app_templates/lib/generators/test_app_generator.rb
|
465
465
|
- spec/test_app_templates/lib/tasks/blacklight_test_app.rake
|
466
466
|
- spec/views/catalog/_constraints_element.html.erb_spec.rb
|
467
|
+
- spec/views/catalog/_document.html.erb_spec.rb
|
467
468
|
- spec/views/catalog/_document_list.html.erb_spec.rb
|
468
469
|
- spec/views/catalog/_facets.html.erb_spec.rb
|
469
470
|
- spec/views/catalog/_index_default.erb_spec.rb
|
470
471
|
- spec/views/catalog/_show_default.erb_spec.rb
|
471
472
|
- spec/views/catalog/_show_sidebar.erb_spec.rb
|
473
|
+
- spec/views/catalog/_thumbnail_default.erb_spec.rb
|
472
474
|
- spec/views/catalog/index.atom.builder_spec.rb
|
473
475
|
- tasks/blacklight.rake
|
474
476
|
- test_support/data/test_data.utf8.mrc
|
@@ -559,9 +561,11 @@ test_files:
|
|
559
561
|
- spec/test_app_templates/lib/generators/test_app_generator.rb
|
560
562
|
- spec/test_app_templates/lib/tasks/blacklight_test_app.rake
|
561
563
|
- spec/views/catalog/_constraints_element.html.erb_spec.rb
|
564
|
+
- spec/views/catalog/_document.html.erb_spec.rb
|
562
565
|
- spec/views/catalog/_document_list.html.erb_spec.rb
|
563
566
|
- spec/views/catalog/_facets.html.erb_spec.rb
|
564
567
|
- spec/views/catalog/_index_default.erb_spec.rb
|
565
568
|
- spec/views/catalog/_show_default.erb_spec.rb
|
566
569
|
- spec/views/catalog/_show_sidebar.erb_spec.rb
|
570
|
+
- spec/views/catalog/_thumbnail_default.erb_spec.rb
|
567
571
|
- spec/views/catalog/index.atom.builder_spec.rb
|