blacklight-gallery 1.7.0 → 3.0.0
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/.github/workflows/ruby.yml +45 -0
- data/README.md +1 -1
- data/app/assets/images/blacklight/pause_slideshow.svg +1 -0
- data/app/assets/images/blacklight/start_slideshow.svg +1 -0
- data/app/assets/javascripts/blacklight_gallery/default.js +0 -1
- data/app/assets/javascripts/blacklight_gallery/masonry.js +1 -1
- data/app/assets/javascripts/blacklight_gallery/osd_viewer.js +1 -1
- data/app/assets/javascripts/blacklight_gallery/slideshow.js +11 -8
- data/app/assets/stylesheets/blacklight_gallery/_gallery.scss +11 -17
- data/app/assets/stylesheets/blacklight_gallery/_masonry.scss +55 -24
- data/app/assets/stylesheets/blacklight_gallery/_osd_viewer.scss +2 -2
- data/app/assets/stylesheets/blacklight_gallery/_slideshow.scss +11 -3
- data/app/components/blacklight/gallery/document_component.html.erb +20 -0
- data/app/components/blacklight/gallery/document_component.rb +11 -0
- data/app/components/blacklight/gallery/slideshow_component.html.erb +12 -0
- data/app/components/blacklight/gallery/slideshow_component.rb +40 -0
- data/app/components/blacklight/gallery/slideshow_preview_component.html.erb +5 -0
- data/app/components/blacklight/gallery/slideshow_preview_component.rb +28 -0
- data/app/helpers/blacklight/gallery_helper.rb +0 -38
- data/app/models/concerns/blacklight/gallery/openseadragon_solr_document.rb +1 -1
- data/app/views/catalog/_document_gallery.html.erb +4 -3
- data/app/views/catalog/_document_masonry.html.erb +2 -3
- data/app/views/catalog/_document_slideshow.html.erb +26 -9
- data/app/views/catalog/_openseadragon_default.html.erb +14 -15
- data/app/views/catalog/_slideshow_modal.html.erb +2 -2
- data/blacklight-gallery.gemspec +4 -4
- data/config/locales/blacklight-gallery.ar.yml +8 -4
- data/config/locales/blacklight-gallery.en.yml +6 -2
- data/config/locales/blacklight-gallery.es.yml +3 -2
- data/config/locales/blacklight-gallery.fr.yml +3 -2
- data/config/locales/blacklight-gallery.it.yml +3 -2
- data/config/locales/blacklight-gallery.pt-BR.yml +3 -0
- data/config/locales/blacklight-gallery.zh.yml +3 -2
- data/lib/blacklight/gallery/engine.rb +0 -2
- data/lib/blacklight/gallery/version.rb +1 -1
- data/lib/generators/blacklight_gallery/install_generator.rb +10 -3
- data/lib/generators/blacklight_gallery/templates/blacklight_gallery.js +2 -1
- data/spec/components/blacklight/gallery/document_component_spec.rb +46 -0
- data/spec/components/blacklight/gallery/slideshow_component_spec.rb +67 -0
- data/spec/features/gallery_spec.rb +3 -4
- data/spec/features/masonry_spec.rb +2 -3
- data/spec/features/slideshow_spec.rb +0 -2
- data/spec/models/concerns/openseadragon_solr_document_spec.rb +1 -1
- data/spec/spec_helper.rb +4 -11
- data/spec/views/catalog/_document_slideshow.html.erb_spec.rb +15 -5
- metadata +45 -39
- data/.travis.yml +0 -21
- data/app/views/catalog/_grid_slideshow.html.erb +0 -11
- data/app/views/catalog/_index_gallery.html.erb +0 -14
- data/app/views/catalog/_index_masonry.html.erb +0 -8
- data/app/views/catalog/_index_masonry_default.html.erb +0 -1
- data/app/views/catalog/_index_slideshow.html.erb +0 -11
- data/app/views/catalog/_slideshow.html.erb +0 -15
- data/spec/helpers/blacklight/gallery_helper_spec.rb +0 -110
- data/spec/views/catalog/_index_gallery.html.erb_spec.rb +0 -22
- data/spec/views/catalog/_index_masonry.html.erb_spec.rb +0 -34
@@ -1,42 +1,4 @@
|
|
1
1
|
module Blacklight
|
2
2
|
module GalleryHelper
|
3
|
-
def render_gallery_collection documents
|
4
|
-
index = -1
|
5
|
-
documents.map do |object|
|
6
|
-
index += 1
|
7
|
-
template = gallery_wrapper_template(object)
|
8
|
-
template.render(self, {document: object, document_counter: index}) if template
|
9
|
-
|
10
|
-
end.join().html_safe
|
11
|
-
end
|
12
|
-
|
13
|
-
def render_slideshow_tag(document, image_options = {}, url_options = {})
|
14
|
-
if blacklight_config.view_config(document_index_view_type).slideshow_method
|
15
|
-
method_name = blacklight_config.view_config(document_index_view_type).slideshow_method
|
16
|
-
send(method_name, document, image_options)
|
17
|
-
elsif blacklight_config.view_config(document_index_view_type).slideshow_field
|
18
|
-
url = slideshow_image_url(document)
|
19
|
-
|
20
|
-
image_tag url, image_options if url.present?
|
21
|
-
elsif has_thumbnail?(document)
|
22
|
-
render_thumbnail_tag(document, image_options, url_options.reverse_merge(suppress_link: true))
|
23
|
-
end
|
24
|
-
end
|
25
|
-
|
26
|
-
def slideshow_image_url(document)
|
27
|
-
if document.has? blacklight_config.view_config(document_index_view_type).slideshow_field
|
28
|
-
document.first(blacklight_config.view_config(document_index_view_type).slideshow_field)
|
29
|
-
end
|
30
|
-
end
|
31
|
-
|
32
|
-
def gallery_wrapper_template(object)
|
33
|
-
format = document_partial_name(object, nil)
|
34
|
-
['index_gallery_%{format}_wrapper', 'index_gallery'].each do |str|
|
35
|
-
partial = str % { format: format }
|
36
|
-
logger.debug "Looking for gallery document wrapper #{partial}"
|
37
|
-
template = lookup_context.find_all(partial, lookup_context.prefixes, true, [:document, :document_counter], {}).first
|
38
|
-
return template if template
|
39
|
-
end
|
40
|
-
end
|
41
3
|
end
|
42
4
|
end
|
@@ -1,6 +1,6 @@
|
|
1
1
|
module Blacklight::Gallery::OpenseadragonSolrDocument
|
2
2
|
def to_openseadragon(view_config = nil)
|
3
|
-
return unless view_config
|
3
|
+
return unless view_config&.tile_source_field &&
|
4
4
|
fetch(view_config.tile_source_field, nil)
|
5
5
|
Array(fetch(view_config.tile_source_field))
|
6
6
|
end
|
@@ -1,4 +1,5 @@
|
|
1
|
-
|
2
|
-
<div id="documents" class="row
|
3
|
-
|
1
|
+
<div class="container">
|
2
|
+
<div id="documents" class="<%= (Array(blacklight_config.view_config(document_index_view_type).classes || 'row-cols-2 row-cols-md-3') + ["row documents-#{document_index_view_type}"]).join(' ') %>">
|
3
|
+
<%= render documents, as: :document %>
|
4
|
+
</div>
|
4
5
|
</div>
|
@@ -1,4 +1,3 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
<%= render collection: documents, as: :document, partial: 'index_masonry', locals: {count: documents.count} %>
|
1
|
+
<div id="documents" class="<%= (Array(blacklight_config.view_config(document_index_view_type).classes) + ["documents-#{document_index_view_type}"]).join(' ') %>">
|
2
|
+
<%= render documents, as: :document %>
|
4
3
|
</div>
|
@@ -1,14 +1,31 @@
|
|
1
|
-
|
2
|
-
<div id="documents" class="row slideshow-documents">
|
3
|
-
<div class="info w-100">
|
4
|
-
<h3><%= t(:'blacklight_gallery.catalog.document_slideshow.header') %></h3>
|
5
|
-
</div>
|
6
|
-
|
1
|
+
<div id="documents" class="<%= (Array(blacklight_config.view_config(document_index_view_type).classes) + ["documents-#{document_index_view_type}"]).join(' ') %>">
|
7
2
|
<div class="grid">
|
8
|
-
<%= render
|
3
|
+
<%= render((blacklight_config.view_config(document_index_view_type).preview_component || Blacklight::Gallery::SlideshowPreviewComponent).with_collection(documents)) %>
|
9
4
|
</div>
|
10
5
|
|
11
|
-
<%= render layout: 'slideshow_modal'
|
12
|
-
|
6
|
+
<%= render layout: 'slideshow_modal' do %>
|
7
|
+
<div id="slideshow" class="slideshow-presenter">
|
8
|
+
<!-- Wrapper for slides -->
|
9
|
+
<div class="slideshow-inner">
|
10
|
+
<%= render documents, as: :document %>
|
11
|
+
</div>
|
12
|
+
|
13
|
+
<!-- Controls -->
|
14
|
+
<a class="left carousel-control prev" href="#slideshow" data-slide="prev">
|
15
|
+
<%= blacklight_icon 'chevron_left', { additional_options: { label_context: 'previous_image' }} %>
|
16
|
+
</a>
|
17
|
+
<a class="right carousel-control next" href="#slideshow" data-slide="next">
|
18
|
+
<%= blacklight_icon 'chevron_right', { additional_options: { label_context: 'next_image' }} %>
|
19
|
+
</a>
|
20
|
+
|
21
|
+
<div class="controls text-center">
|
22
|
+
<button class="btn btn-sm btn-link" data-behavior="pause-slideshow" aria-label="<%= t('blacklight_gallery.catalog.slideshow.pause') %>">
|
23
|
+
<%= blacklight_icon 'pause_slideshow' %>
|
24
|
+
</button>
|
25
|
+
<button class="btn btn-sm btn-link" data-behavior="start-slideshow" aria-label="<%= t('blacklight_gallery.catalog.slideshow.start') %>">
|
26
|
+
<%= blacklight_icon 'start_slideshow' %>
|
27
|
+
</button>
|
28
|
+
</div>
|
29
|
+
</div>
|
13
30
|
<% end %>
|
14
31
|
</div>
|
@@ -23,21 +23,20 @@
|
|
23
23
|
<% count = Array(image).length %>
|
24
24
|
<div class="openseadragon-container <%= osd_container_class %>">
|
25
25
|
<div class="osd-toolbar row">
|
26
|
-
|
27
|
-
<%
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
<
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
</div>
|
26
|
+
<div class="col-md-6 pagination">
|
27
|
+
<% if count > 1 %>
|
28
|
+
<% osd_config = osd_config_referencestrip.merge(osd_config) %>
|
29
|
+
<a id="osd-previous"><%= blacklight_icon('chevron_left') %></a>
|
30
|
+
<span id="osd-page">1</span> of <%= count %>
|
31
|
+
<a id="osd-next"><%= blacklight_icon('chevron_right') %></a>
|
32
|
+
<% end %>
|
33
|
+
</div>
|
34
|
+
<div class="col-md-6 controls">
|
35
|
+
<a id="osd-zoom-in"><%= blacklight_icon('add_circle') %></a>
|
36
|
+
<a id="osd-zoom-out"><%= blacklight_icon('remove_circle') %></a>
|
37
|
+
<a id="osd-home"><%= blacklight_icon('resize_small') %></a>
|
38
|
+
<a id="osd-full-page"><%= blacklight_icon('custom_fullscreen') %></a>
|
39
|
+
</div>
|
41
40
|
</div>
|
42
41
|
<%= openseadragon_picture_tag image, class: 'osd-image row', data: { openseadragon: osd_config } %>
|
43
42
|
</div>
|
@@ -3,8 +3,8 @@
|
|
3
3
|
<div class="modal-dialog modal-xl">
|
4
4
|
<div class="modal-content">
|
5
5
|
<div class="modal-header">
|
6
|
-
<button type="button" class="close" data-dismiss="modal" aria-
|
7
|
-
|
6
|
+
<button type="button" class="blacklight-modal-close close" data-dismiss="modal" aria-label="<%= t('blacklight.modal.close') %>">
|
7
|
+
<span aria-hidden="true">×</span>
|
8
8
|
</button>
|
9
9
|
</div>
|
10
10
|
<div class="modal-body">
|
data/blacklight-gallery.gemspec
CHANGED
@@ -17,10 +17,9 @@ Gem::Specification.new do |spec|
|
|
17
17
|
spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
|
18
18
|
spec.require_paths = ["lib"]
|
19
19
|
|
20
|
-
spec.add_dependency "rails", '
|
21
|
-
spec.add_dependency 'blacklight', '~> 7.
|
20
|
+
spec.add_dependency "rails", '>= 5.1', '< 7'
|
21
|
+
spec.add_dependency 'blacklight', '~> 7.12'
|
22
22
|
spec.add_dependency "bootstrap", "~> 4.0"
|
23
|
-
spec.add_dependency "openseadragon", ">= 0.2.0"
|
24
23
|
|
25
24
|
spec.add_development_dependency "rake"
|
26
25
|
spec.add_development_dependency 'sqlite3'
|
@@ -31,6 +30,7 @@ Gem::Specification.new do |spec|
|
|
31
30
|
spec.add_development_dependency "solr_wrapper"
|
32
31
|
spec.add_development_dependency "engine_cart", "~> 2.0"
|
33
32
|
spec.add_development_dependency "capybara"
|
34
|
-
spec.add_development_dependency '
|
33
|
+
spec.add_development_dependency 'webdrivers'
|
34
|
+
spec.add_development_dependency 'rexml' # pending https://github.com/SeleniumHQ/selenium/issues/9001
|
35
35
|
spec.add_development_dependency "selenium-webdriver", '>= 3.13.1'
|
36
36
|
end
|
@@ -1,15 +1,19 @@
|
|
1
1
|
ar:
|
2
2
|
blacklight:
|
3
|
+
icon:
|
4
|
+
chevron_left_previous_image: 'الصورة السابقة'
|
5
|
+
chevron_right_next_image: 'الصورة التالية'
|
3
6
|
search:
|
4
7
|
view:
|
5
8
|
gallery: "معرض الصور"
|
6
|
-
slideshow: "عرض
|
9
|
+
slideshow: "عرض الصور"
|
7
10
|
masonry: "عرض الصور كمجموعة"
|
8
11
|
blacklight_gallery:
|
9
12
|
catalog:
|
10
13
|
grid_slideshow:
|
11
|
-
missing_image:
|
12
|
-
document_slideshow:
|
13
|
-
header: "حدد صورة لبدء العرض المتتابع"
|
14
|
+
missing_image: 'غير موجود'
|
14
15
|
modal_slideshow:
|
15
16
|
counter: "%{counter} من %{count}"
|
17
|
+
slideshow:
|
18
|
+
pause: وقف عرض الصور
|
19
|
+
start: بدء عرض الصور
|
@@ -1,5 +1,8 @@
|
|
1
1
|
en:
|
2
2
|
blacklight:
|
3
|
+
icon:
|
4
|
+
chevron_left_previous_image: 'previous image'
|
5
|
+
chevron_right_next_image: 'next image'
|
3
6
|
search:
|
4
7
|
view:
|
5
8
|
gallery: "Gallery"
|
@@ -9,7 +12,8 @@ en:
|
|
9
12
|
catalog:
|
10
13
|
grid_slideshow:
|
11
14
|
missing_image: 'Missing'
|
12
|
-
document_slideshow:
|
13
|
-
header: "Select an image to start the slideshow"
|
14
15
|
modal_slideshow:
|
15
16
|
counter: "%{counter} of %{count}"
|
17
|
+
slideshow:
|
18
|
+
pause: Pause slideshow
|
19
|
+
start: Start slideshow
|
@@ -9,7 +9,8 @@ es:
|
|
9
9
|
catalog:
|
10
10
|
grid_slideshow:
|
11
11
|
missing_image: No hay nada
|
12
|
-
document_slideshow:
|
13
|
-
header: Selecione una imagen para empezar
|
14
12
|
modal_slideshow:
|
15
13
|
counter: "%{counter} de %{count}"
|
14
|
+
slideshow:
|
15
|
+
pause: Pausa la Diapositivas
|
16
|
+
start: Empezar la Diapositivas
|
@@ -9,7 +9,8 @@ fr:
|
|
9
9
|
catalog:
|
10
10
|
grid_slideshow:
|
11
11
|
missing_image: 'Image manquante'
|
12
|
-
document_slideshow:
|
13
|
-
header: "Sélectionnez une image pour lancer le diaporama"
|
14
12
|
modal_slideshow:
|
15
13
|
counter: "%{counter} de %{count}"
|
14
|
+
slideshow:
|
15
|
+
pause: Suspendre le diaporama
|
16
|
+
start: Lancer le diaporama
|
@@ -9,7 +9,8 @@ it:
|
|
9
9
|
catalog:
|
10
10
|
grid_slideshow:
|
11
11
|
missing_image: 'Mancante'
|
12
|
-
document_slideshow:
|
13
|
-
header: "Seleziona un immagine per l'avvio del slideshow"
|
14
12
|
modal_slideshow:
|
15
13
|
counter: "%{counter} di %{count}"
|
14
|
+
slideshow:
|
15
|
+
pause: Pausa del slideshow
|
16
|
+
start: Avvia del slideshow
|
@@ -8,13 +8,18 @@ module BlacklightGallery
|
|
8
8
|
def assets
|
9
9
|
copy_file "blacklight_gallery.css.scss", "app/assets/stylesheets/blacklight_gallery.css.scss"
|
10
10
|
copy_file "blacklight_gallery.js", "app/assets/javascripts/blacklight_gallery.js"
|
11
|
+
|
12
|
+
insert_into_file "app/assets/javascripts/application.js", after: '//= require blacklight/blacklight' do
|
13
|
+
"\n//= require blacklight_gallery"
|
14
|
+
end
|
11
15
|
end
|
12
16
|
|
13
17
|
def configuration
|
14
18
|
inject_into_file 'app/controllers/catalog_controller.rb', after: "configure_blacklight do |config|" do
|
15
|
-
"\n config.view.gallery.
|
16
|
-
"\n config.view.
|
17
|
-
"\n config.view.
|
19
|
+
"\n config.view.gallery.document_component = Blacklight::Gallery::DocumentComponent" \
|
20
|
+
"\n # config.view.gallery.classes = 'row-cols-2 row-cols-md-3'" \
|
21
|
+
"\n config.view.masonry.document_component = Blacklight::Gallery::DocumentComponent" \
|
22
|
+
"\n config.view.slideshow.document_component = Blacklight::Gallery::SlideshowComponent" \
|
18
23
|
"\n config.show.tile_source_field = :content_metadata_image_iiif_info_ssm" \
|
19
24
|
"\n config.show.partials.insert(1, :openseadragon)"
|
20
25
|
end
|
@@ -27,6 +32,8 @@ module BlacklightGallery
|
|
27
32
|
end
|
28
33
|
|
29
34
|
def add_openseadragon
|
35
|
+
gem "openseadragon", ">= 0.2.0"
|
36
|
+
Bundler.with_clean_env { run 'bundle install' }
|
30
37
|
generate 'openseadragon:install'
|
31
38
|
end
|
32
39
|
end
|
@@ -1 +1,2 @@
|
|
1
|
-
//= require blacklight_gallery/default
|
1
|
+
//= require blacklight_gallery/default
|
2
|
+
//= require blacklight_gallery/osd_viewer
|
@@ -0,0 +1,46 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'spec_helper'
|
4
|
+
|
5
|
+
RSpec.describe Blacklight::Gallery::DocumentComponent, type: :component do
|
6
|
+
subject(:component) { described_class.new(document: document, **attr) }
|
7
|
+
|
8
|
+
let(:attr) { {} }
|
9
|
+
let(:view_context) { controller.view_context }
|
10
|
+
let(:render) do
|
11
|
+
component.render_in(view_context)
|
12
|
+
end
|
13
|
+
|
14
|
+
let(:rendered) do
|
15
|
+
Capybara::Node::Simple.new(render)
|
16
|
+
end
|
17
|
+
|
18
|
+
let(:document) do
|
19
|
+
SolrDocument.new(
|
20
|
+
id: 'x',
|
21
|
+
thumbnail_path_ss: 'http://example.com/image.jpg',
|
22
|
+
title_tsim: 'This is my document title'
|
23
|
+
)
|
24
|
+
end
|
25
|
+
|
26
|
+
let(:blacklight_config) do
|
27
|
+
CatalogController.blacklight_config.deep_copy.tap do |config|
|
28
|
+
config.track_search_session = false
|
29
|
+
config.index.thumbnail_field = 'thumbnail_path_ss'
|
30
|
+
end
|
31
|
+
end
|
32
|
+
|
33
|
+
before do
|
34
|
+
allow(controller).to receive(:blacklight_config).and_return(blacklight_config)
|
35
|
+
allow(view_context).to receive(:current_search_session).and_return(nil)
|
36
|
+
allow(view_context).to receive(:search_session).and_return({})
|
37
|
+
|
38
|
+
# dumb hack to get our stubbing into the thumbnail component
|
39
|
+
allow(controller).to receive(:view_context).and_return(view_context)
|
40
|
+
end
|
41
|
+
|
42
|
+
it 'has a thumbnail and caption' do
|
43
|
+
expect(rendered).to have_selector '.document-thumbnail img'
|
44
|
+
expect(rendered).to have_selector '.caption', text: 'This is my document title'
|
45
|
+
end
|
46
|
+
end
|
@@ -0,0 +1,67 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'spec_helper'
|
4
|
+
|
5
|
+
RSpec.describe Blacklight::Gallery::SlideshowComponent, type: :component do
|
6
|
+
subject(:component) { described_class.new(document: document, **attr) }
|
7
|
+
|
8
|
+
let(:attr) { {} }
|
9
|
+
let(:view_context) { controller.view_context }
|
10
|
+
let(:render) do
|
11
|
+
component.render_in(view_context)
|
12
|
+
end
|
13
|
+
|
14
|
+
let(:rendered) do
|
15
|
+
Capybara::Node::Simple.new(render)
|
16
|
+
end
|
17
|
+
|
18
|
+
let(:blacklight_config) { Blacklight::Configuration.new }
|
19
|
+
|
20
|
+
before do
|
21
|
+
allow(view_context).to receive(:blacklight_config).and_return(blacklight_config)
|
22
|
+
end
|
23
|
+
|
24
|
+
describe '#slideshow_tag' do
|
25
|
+
subject { rendered }
|
26
|
+
|
27
|
+
let(:document) { SolrDocument.new({}) }
|
28
|
+
|
29
|
+
context 'with a slideshow method' do
|
30
|
+
let(:blacklight_config) { Blacklight::Configuration.new.tap { |config| config.index.slideshow_method = :xyz } }
|
31
|
+
|
32
|
+
it 'calls the provided slideshow method' do
|
33
|
+
expect(view_context).to receive_messages(xyz: 'some-slideshow')
|
34
|
+
expect(rendered).to have_text 'some-slideshow'
|
35
|
+
end
|
36
|
+
|
37
|
+
it 'does not render an image if the method returns nothing' do
|
38
|
+
expect(view_context).to receive_messages(xyz: nil)
|
39
|
+
expect(rendered).not_to have_selector 'img'
|
40
|
+
end
|
41
|
+
end
|
42
|
+
|
43
|
+
context 'with a field' do
|
44
|
+
let(:blacklight_config) { Blacklight::Configuration.new.tap { |config| config.index.slideshow_field = :xyz } }
|
45
|
+
let(:document) { SolrDocument.new({ xyz: 'http://example.com/some.jpg' }) }
|
46
|
+
|
47
|
+
it { is_expected.to have_selector 'img[src="http://example.com/some.jpg"]' }
|
48
|
+
|
49
|
+
context 'without data in the field' do
|
50
|
+
let(:document) { SolrDocument.new({}) }
|
51
|
+
|
52
|
+
it { is_expected.not_to have_selector 'img' }
|
53
|
+
end
|
54
|
+
end
|
55
|
+
|
56
|
+
context 'with nothing configured' do
|
57
|
+
it { is_expected.not_to have_selector 'img' }
|
58
|
+
end
|
59
|
+
|
60
|
+
context 'falling back to a thumbnail' do
|
61
|
+
let(:blacklight_config) { Blacklight::Configuration.new.tap { |config| config.index.thumbnail_field = :xyz } }
|
62
|
+
let(:document) { SolrDocument.new({ xyz: 'http://example.com/thumb.jpg' }) }
|
63
|
+
|
64
|
+
it { is_expected.to have_selector 'img[src="http://example.com/thumb.jpg"]' }
|
65
|
+
end
|
66
|
+
end
|
67
|
+
end
|