blacklight-gallery 1.7.0 → 3.0.0
Sign up to get free protection for your applications and to get access to all the features.
- 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
|