blacklight-gallery 4.6.0 → 4.6.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/.github/workflows/ruby.yml +8 -0
- data/app/components/blacklight/gallery/openseadragon_embed_component.html.erb +9 -9
- data/app/components/blacklight/gallery/openseadragon_embed_component.rb +8 -8
- data/app/components/blacklight/gallery/slideshow_preview_component.rb +4 -3
- data/lib/blacklight/gallery/version.rb +1 -1
- data/spec/components/blacklight/gallery/openseadragon_embed_component_spec.rb +58 -0
- data/spec/components/blacklight/gallery/slideshow_preview_component_spec.rb +8 -0
- data/spec/spec_helper.rb +6 -0
- data/spec/test_app_templates/Gemfile.extra +4 -0
- data/spec/view_component_v2_test_helpers.rb +20 -0
- metadata +6 -2
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 8b75282f6589ca914165117342f3f5122f114ec3fcb399dfc5ae660eaeb678ea
|
|
4
|
+
data.tar.gz: 7f63ed97b52f21db2a92688e8d9e20ad17997c74a98cdacfd0e488c7d675c6ae
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 5122d73ef112b00f340999c31faa6cb572c1ea83dc639164475be9f91596ad64c995cc0acfb9226145c343cf191b4f9f401af5a9912eda82cbdad507a69d24f6
|
|
7
|
+
data.tar.gz: f83b3438b30ce60a936a5ca98694dc2a50c01d41cf37b8fdc0a8de628f171d0396d5d8de952a65936cff015cafedf482e9ccf963e51df1b958bede7c9e0c4b5e
|
data/.github/workflows/ruby.yml
CHANGED
|
@@ -19,6 +19,7 @@ jobs:
|
|
|
19
19
|
experimental: [false]
|
|
20
20
|
additional_engine_cart_rails_options: [""]
|
|
21
21
|
additional_name: [""]
|
|
22
|
+
view_component_version: ["~> 3.12"]
|
|
22
23
|
include:
|
|
23
24
|
- ruby: "3.1"
|
|
24
25
|
rails_version: 6.1.7
|
|
@@ -35,6 +36,12 @@ jobs:
|
|
|
35
36
|
blacklight_version: "github"
|
|
36
37
|
experimental: true
|
|
37
38
|
additional_name: Blacklight main branch
|
|
39
|
+
- ruby: "3.2"
|
|
40
|
+
rails_version: "7.0.4"
|
|
41
|
+
blacklight_version: "~> 7.0"
|
|
42
|
+
experimental: false
|
|
43
|
+
view_component_version: "~> 2.83"
|
|
44
|
+
additional_name: "/ ViewComponent 2"
|
|
38
45
|
- ruby: "3.2"
|
|
39
46
|
rails_version: "7.0.4"
|
|
40
47
|
blacklight_version: "github"
|
|
@@ -44,6 +51,7 @@ jobs:
|
|
|
44
51
|
env:
|
|
45
52
|
RAILS_VERSION: ${{ matrix.rails_version }}
|
|
46
53
|
BLACKLIGHT_VERSION: ${{ matrix.blacklight_version }}
|
|
54
|
+
VIEW_COMPONENT_VERSION: ${{ matrix.view_component_version }}
|
|
47
55
|
ENGINE_CART_RAILS_OPTIONS: "--skip-git --skip-listen --skip-spring --skip-keeps --skip-action-cable --skip-coffee --skip-test ${{ matrix.additional_engine_cart_rails_options }}"
|
|
48
56
|
steps:
|
|
49
57
|
- uses: actions/checkout@v4
|
|
@@ -2,18 +2,18 @@
|
|
|
2
2
|
<div class="osd-toolbar row">
|
|
3
3
|
<div class="col-md-6 pagination">
|
|
4
4
|
<% if count > 1 %>
|
|
5
|
-
<%
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
5
|
+
<% multi_page_osd_config = osd_config_referencestrip.merge(osd_config) %>
|
|
6
|
+
<a id="<%= @id_prefix %>-previous"><%= render Blacklight::Gallery::Icons::ChevronLeftComponent.new %></a>
|
|
7
|
+
<span id="<%= @id_prefix %>-page">1</span> of <%= count %>
|
|
8
|
+
<a id="<%= @id_prefix %>-next"><%= render Blacklight::Gallery::Icons::ChevronRightComponent.new %></a>
|
|
9
9
|
<% end %>
|
|
10
10
|
</div>
|
|
11
11
|
<div class="col-md-6 controls">
|
|
12
|
-
<a id="<%= id_prefix %>-zoom-in"><%= render Blacklight::Gallery::Icons::AddCircleComponent.new %></a>
|
|
13
|
-
<a id="<%= id_prefix %>-zoom-out"><%= render Blacklight::Gallery::Icons::RemoveCircleComponent.new %></a>
|
|
14
|
-
<a id="<%= id_prefix %>-home"><%= render Blacklight::Gallery::Icons::ResizeSmallComponent.new %></a>
|
|
15
|
-
<a id="<%= id_prefix %>-full-page"><%= render Blacklight::Gallery::Icons::CustomFullscreenComponent.new %></a>
|
|
12
|
+
<a id="<%= @id_prefix %>-zoom-in"><%= render Blacklight::Gallery::Icons::AddCircleComponent.new %></a>
|
|
13
|
+
<a id="<%= @id_prefix %>-zoom-out"><%= render Blacklight::Gallery::Icons::RemoveCircleComponent.new %></a>
|
|
14
|
+
<a id="<%= @id_prefix %>-home"><%= render Blacklight::Gallery::Icons::ResizeSmallComponent.new %></a>
|
|
15
|
+
<a id="<%= @id_prefix %>-full-page"><%= render Blacklight::Gallery::Icons::CustomFullscreenComponent.new %></a>
|
|
16
16
|
</div>
|
|
17
17
|
</div>
|
|
18
|
-
<%= helpers.openseadragon_picture_tag image, class: 'osd-image row', data: { openseadragon: osd_config } %>
|
|
18
|
+
<%= helpers.openseadragon_picture_tag image, class: 'osd-image row', data: { openseadragon: multi_page_osd_config ? multi_page_osd_config : osd_config } %>
|
|
19
19
|
</div>
|
|
@@ -12,6 +12,7 @@ module Blacklight
|
|
|
12
12
|
@presenter = presenter
|
|
13
13
|
@view_config = view_config
|
|
14
14
|
@classes = classes
|
|
15
|
+
@id_prefix = id_prefix
|
|
15
16
|
end
|
|
16
17
|
|
|
17
18
|
def image
|
|
@@ -33,21 +34,20 @@ module Blacklight
|
|
|
33
34
|
def osd_config
|
|
34
35
|
{
|
|
35
36
|
crossOriginPolicy: false,
|
|
36
|
-
zoomInButton: "#{id_prefix}-zoom-in",
|
|
37
|
-
zoomOutButton: "#{id_prefix}-zoom-out",
|
|
38
|
-
homeButton: "#{id_prefix}-home",
|
|
39
|
-
fullPageButton: "#{id_prefix}-full-page",
|
|
40
|
-
nextButton: "#{id_prefix}-next",
|
|
41
|
-
previousButton: "#{id_prefix}-previous"
|
|
37
|
+
zoomInButton: "#{@id_prefix}-zoom-in",
|
|
38
|
+
zoomOutButton: "#{@id_prefix}-zoom-out",
|
|
39
|
+
homeButton: "#{@id_prefix}-home",
|
|
40
|
+
fullPageButton: "#{@id_prefix}-full-page",
|
|
41
|
+
nextButton: "#{@id_prefix}-next",
|
|
42
|
+
previousButton: "#{@id_prefix}-previous"
|
|
42
43
|
}
|
|
43
44
|
end
|
|
44
45
|
|
|
45
46
|
def osd_config_referencestrip
|
|
46
47
|
{
|
|
47
48
|
showReferenceStrip: true,
|
|
48
|
-
|
|
49
|
+
sequenceMode: true,
|
|
49
50
|
referenceStripScroll: 'vertical',
|
|
50
|
-
referenceStripWidth: 100,
|
|
51
51
|
referenceStripBackgroundColor: 'transparent'
|
|
52
52
|
}
|
|
53
53
|
end
|
|
@@ -7,7 +7,8 @@ module Blacklight
|
|
|
7
7
|
|
|
8
8
|
def initialize(document:, document_counter: nil, **args)
|
|
9
9
|
super(document: document, document_counter: document_counter, **args)
|
|
10
|
-
|
|
10
|
+
|
|
11
|
+
@slide_to = @counter - 1
|
|
11
12
|
end
|
|
12
13
|
|
|
13
14
|
def before_render
|
|
@@ -45,8 +46,8 @@ module Blacklight
|
|
|
45
46
|
{
|
|
46
47
|
'context-href': nil,
|
|
47
48
|
context_href: nil,
|
|
48
|
-
'slide-to': @
|
|
49
|
-
'bs-slide-to': @
|
|
49
|
+
'slide-to': @slide_to,
|
|
50
|
+
'bs-slide-to': @slide_to,
|
|
50
51
|
toggle: "modal",
|
|
51
52
|
'bs-toggle': "modal",
|
|
52
53
|
target: "#slideshow-modal",
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require 'spec_helper'
|
|
4
|
+
|
|
5
|
+
RSpec.describe Blacklight::Gallery::OpenseadragonEmbedComponent, type: :component do
|
|
6
|
+
subject(:component) do
|
|
7
|
+
described_class.new(
|
|
8
|
+
document: document,
|
|
9
|
+
presenter: presenter,
|
|
10
|
+
**attr
|
|
11
|
+
)
|
|
12
|
+
end
|
|
13
|
+
|
|
14
|
+
let(:attr) { {} }
|
|
15
|
+
let(:view_context) { vc_test_controller.view_context }
|
|
16
|
+
let(:render) do
|
|
17
|
+
component.render_in(view_context)
|
|
18
|
+
end
|
|
19
|
+
|
|
20
|
+
let(:rendered) do
|
|
21
|
+
Capybara::Node::Simple.new(render)
|
|
22
|
+
end
|
|
23
|
+
|
|
24
|
+
let(:document) do
|
|
25
|
+
SolrDocument.new(
|
|
26
|
+
id: 'x'
|
|
27
|
+
)
|
|
28
|
+
end
|
|
29
|
+
|
|
30
|
+
let(:presenter) { Blacklight::IndexPresenter.new(document, view_context, blacklight_config) }
|
|
31
|
+
|
|
32
|
+
before do
|
|
33
|
+
allow(view_context).to receive(:current_search_session).and_return(nil)
|
|
34
|
+
allow(view_context).to receive(:search_session).and_return({})
|
|
35
|
+
allow(view_context).to receive(:blacklight_config).and_return(blacklight_config)
|
|
36
|
+
end
|
|
37
|
+
|
|
38
|
+
describe 'openseadragon viewer' do
|
|
39
|
+
let(:blacklight_config) do
|
|
40
|
+
Blacklight::Configuration.new.tap do |config|
|
|
41
|
+
config.index.slideshow_method = :xyz
|
|
42
|
+
if Blacklight::VERSION > '8'
|
|
43
|
+
config.track_search_session.storage = false
|
|
44
|
+
else
|
|
45
|
+
config.track_search_session = false
|
|
46
|
+
end
|
|
47
|
+
end
|
|
48
|
+
end
|
|
49
|
+
it 'uses a single @id_prefix to generate unique control ids' do
|
|
50
|
+
expect(component.osd_config[:zoomInButton]).to include(component.instance_variable_get(:@id_prefix))
|
|
51
|
+
expect(component.osd_config[:zoomOutButton]).to include(component.instance_variable_get(:@id_prefix))
|
|
52
|
+
expect(component.osd_config[:homeButton]).to include(component.instance_variable_get(:@id_prefix))
|
|
53
|
+
expect(component.osd_config[:fullPageButton]).to include(component.instance_variable_get(:@id_prefix))
|
|
54
|
+
expect(component.osd_config[:nextButton]).to include(component.instance_variable_get(:@id_prefix))
|
|
55
|
+
expect(component.osd_config[:previousButton]).to include(component.instance_variable_get(:@id_prefix))
|
|
56
|
+
end
|
|
57
|
+
end
|
|
58
|
+
end
|
|
@@ -51,6 +51,14 @@ RSpec.describe Blacklight::Gallery::SlideshowPreviewComponent, type: :component
|
|
|
51
51
|
expect(rendered).to have_selector '.thumbnail img[@src="http://example.com/image.jpg"]'
|
|
52
52
|
end
|
|
53
53
|
|
|
54
|
+
it 'renders the correct slide number' do
|
|
55
|
+
if VIEW_COMPONENT_VERSION < 3
|
|
56
|
+
expect(rendered).to have_css '[data-slide-to=\"4\"][data-bs-slide-to=\"4\"]'
|
|
57
|
+
else
|
|
58
|
+
expect(rendered).to have_css '[data-slide-to=\"5\"][data-bs-slide-to=\"5\"]'
|
|
59
|
+
end
|
|
60
|
+
end
|
|
61
|
+
|
|
54
62
|
context 'when the presenter returns nothing' do
|
|
55
63
|
let(:document) { SolrDocument.new(id: 'abc') }
|
|
56
64
|
|
data/spec/spec_helper.rb
CHANGED
|
@@ -7,6 +7,7 @@ require 'rspec/collection_matchers'
|
|
|
7
7
|
require 'rspec/its'
|
|
8
8
|
require 'rspec/rails'
|
|
9
9
|
require 'rspec/active_model/mocks'
|
|
10
|
+
require 'view_component_v2_test_helpers'
|
|
10
11
|
|
|
11
12
|
require 'selenium-webdriver'
|
|
12
13
|
|
|
@@ -19,4 +20,9 @@ require 'blacklight/gallery'
|
|
|
19
20
|
RSpec.configure do |c|
|
|
20
21
|
c.infer_spec_type_from_file_location!
|
|
21
22
|
c.include ViewComponent::TestHelpers, type: :component
|
|
23
|
+
view_component_version = Gem.loaded_specs['view_component'].version
|
|
24
|
+
VIEW_COMPONENT_VERSION = view_component_version.segments.first
|
|
25
|
+
if VIEW_COMPONENT_VERSION < 3
|
|
26
|
+
c.include ViewComponentV2TestHelpers, type: :component
|
|
27
|
+
end
|
|
22
28
|
end
|
|
@@ -3,3 +3,7 @@ if ENV['BLACKLIGHT_VERSION'] == 'github'
|
|
|
3
3
|
elsif ENV['BLACKLIGHT_VERSION'] && !ENV['BLACKLIGHT_VERSION'].empty?
|
|
4
4
|
gem 'blacklight', ENV['BLACKLIGHT_VERSION']
|
|
5
5
|
end
|
|
6
|
+
|
|
7
|
+
unless ENV['VIEW_COMPONENT_VERSION'].to_s == ""
|
|
8
|
+
gem 'view_component', ENV.fetch('VIEW_COMPONENT_VERSION')
|
|
9
|
+
end
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
module ViewComponentV2TestHelpers
|
|
2
|
+
def vc_test_controller
|
|
3
|
+
@vc_test_controller ||= __vc_test_helpers_build_controller(ViewComponent::Base.test_controller.constantize)
|
|
4
|
+
end
|
|
5
|
+
|
|
6
|
+
def __vc_test_helpers_build_controller(klass)
|
|
7
|
+
klass.new.tap { |c| c.request = vc_test_request }.extend(Rails.application.routes.url_helpers)
|
|
8
|
+
end
|
|
9
|
+
|
|
10
|
+
def vc_test_request
|
|
11
|
+
require "action_controller/test_case"
|
|
12
|
+
|
|
13
|
+
@vc_test_request ||=
|
|
14
|
+
begin
|
|
15
|
+
out = ActionDispatch::TestRequest.create
|
|
16
|
+
out.session = ActionController::TestSession.new
|
|
17
|
+
out
|
|
18
|
+
end
|
|
19
|
+
end
|
|
20
|
+
end
|
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: blacklight-gallery
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 4.6.
|
|
4
|
+
version: 4.6.1
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Chris Beer
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date: 2024-
|
|
11
|
+
date: 2024-10-24 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: rails
|
|
@@ -288,6 +288,7 @@ files:
|
|
|
288
288
|
- solr/conf/xslt/example_rss.xsl
|
|
289
289
|
- solr/conf/xslt/luke.xsl
|
|
290
290
|
- spec/components/blacklight/gallery/document_component_spec.rb
|
|
291
|
+
- spec/components/blacklight/gallery/openseadragon_embed_component_spec.rb
|
|
291
292
|
- spec/components/blacklight/gallery/slideshow_component_spec.rb
|
|
292
293
|
- spec/components/blacklight/gallery/slideshow_preview_component_spec.rb
|
|
293
294
|
- spec/features/gallery_spec.rb
|
|
@@ -298,6 +299,7 @@ files:
|
|
|
298
299
|
- spec/spec_helper.rb
|
|
299
300
|
- spec/test_app_templates/Gemfile.extra
|
|
300
301
|
- spec/test_app_templates/lib/generators/test_app_generator.rb
|
|
302
|
+
- spec/view_component_v2_test_helpers.rb
|
|
301
303
|
- spec/views/catalog/_document_slideshow.html.erb_spec.rb
|
|
302
304
|
- spec/views/catalog/_openseadragon_default.html.erb_spec.rb
|
|
303
305
|
- vendor/assets/javascripts/imagesloaded.min.js
|
|
@@ -327,6 +329,7 @@ specification_version: 4
|
|
|
327
329
|
summary: Gallery display for Blacklight
|
|
328
330
|
test_files:
|
|
329
331
|
- spec/components/blacklight/gallery/document_component_spec.rb
|
|
332
|
+
- spec/components/blacklight/gallery/openseadragon_embed_component_spec.rb
|
|
330
333
|
- spec/components/blacklight/gallery/slideshow_component_spec.rb
|
|
331
334
|
- spec/components/blacklight/gallery/slideshow_preview_component_spec.rb
|
|
332
335
|
- spec/features/gallery_spec.rb
|
|
@@ -337,5 +340,6 @@ test_files:
|
|
|
337
340
|
- spec/spec_helper.rb
|
|
338
341
|
- spec/test_app_templates/Gemfile.extra
|
|
339
342
|
- spec/test_app_templates/lib/generators/test_app_generator.rb
|
|
343
|
+
- spec/view_component_v2_test_helpers.rb
|
|
340
344
|
- spec/views/catalog/_document_slideshow.html.erb_spec.rb
|
|
341
345
|
- spec/views/catalog/_openseadragon_default.html.erb_spec.rb
|