blacklight-gallery 3.4.0 → 4.0.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 2c352955a6ff3422f81258dd566cfe58114da0c93f65241e70ae093ee3a76dfb
4
- data.tar.gz: 58707632ea6223e59985771c6cb79f5cfa3a2e410e44cb5f02a631ed24f2c7be
3
+ metadata.gz: 67559224cded645a3d4cdcbacf6d2ee5caa94d6168ebf320e15c317eac00cac6
4
+ data.tar.gz: 34f56fb978b1db760dc813fc85e5b99cae783b872924824bddeffeccdc09827a
5
5
  SHA512:
6
- metadata.gz: b3220d3e51e3a178532a61678631b3d4dba3b0d38042a0bc4b9a62e447daefce4afa3833b4d2d0cce41442088af8004b4791e1e54e2bd42f2dfdfdfa600a7c51
7
- data.tar.gz: dda77c2f7e9e80bb37e4783b6559e53cc0acaa6a403e3b17f66fc8a5db3501f01cc2c9f3844747809bf54f1f8e37648b3099102a428e6d169cd30045090f2b15
6
+ metadata.gz: c62a4b9c3cfeba14ee254cb07d6359adbc1b012c13ea8c061760ddf083b27da2c4867dba951100c2af0362e56441635c2099014695bd69a3c525cee22ead8e92
7
+ data.tar.gz: acf86862e45f1c2537d4047b7d8cc31cc849cb8cedd9678de5aea58a6dd35e018b9641b487a4995be160d8115ae46270f9eb58754e2b977b358e9efce61b3d55
@@ -11,26 +11,15 @@ jobs:
11
11
  runs-on: ubuntu-latest
12
12
  strategy:
13
13
  matrix:
14
- rails_version: [6.1.1]
15
- ruby: [2.7, '3.0']
16
- env:
17
- RAILS_VERSION: ${{ matrix.rails_version }}
18
- steps:
19
- - uses: actions/checkout@v2
20
- - name: Set up Ruby ${{ matrix.ruby }}
21
- uses: ruby/setup-ruby@v1
22
- with:
23
- ruby-version: ${{ matrix.ruby }}
24
- - name: Install dependencies with Rails ${{ matrix.rails_version }}
25
- run: bundle install
26
- - name: Run tests
27
- run: bundle exec rake
28
- test_rails52:
29
- runs-on: ubuntu-latest
30
- strategy:
31
- matrix:
32
- rails_version: [5.2.4.4, 6.0.3.4]
33
- ruby: [2.7]
14
+ rails_version: [6.1.4.6]
15
+ ruby: ['2.7', '3.0']
16
+ include:
17
+ - rails_version: 7.0.2.2
18
+ ruby: '3.0'
19
+ - rails_version: 5.2.4.4
20
+ ruby: '2.7'
21
+ - rails_version: 6.0.3.4
22
+ ruby: '2.7'
34
23
  env:
35
24
  RAILS_VERSION: ${{ matrix.rails_version }}
36
25
  steps:
data/README.md CHANGED
@@ -1,5 +1,5 @@
1
1
  # Blacklight::Gallery
2
- [![Gem Version](https://badge.fury.io/rb/blacklight-gallery.svg)](http://badge.fury.io/rb/blacklight-gallery) [![Build Status](https://travis-ci.org/projectblacklight/blacklight-gallery.svg?branch=master)](https://travis-ci.org/projectblacklight/blacklight-gallery)
2
+ [![Gem Version](https://badge.fury.io/rb/blacklight-gallery.svg)](http://badge.fury.io/rb/blacklight-gallery) [![CI](https://github.com/projectblacklight/blacklight-gallery/actions/workflows/ruby.yml/badge.svg)](https://github.com/projectblacklight/blacklight-gallery/actions/workflows/ruby.yml)
3
3
 
4
4
  Gallery views for Blacklight search results
5
5
 
@@ -2,9 +2,7 @@
2
2
  .document {
3
3
  border-bottom: none;
4
4
  display: flex;
5
-
6
5
  min-height: 250px;
7
- -webkit-flex: 1 0 250px;
8
6
  }
9
7
 
10
8
  .caption {
@@ -85,10 +85,16 @@ $gray-dark: #343a40 !default;
85
85
 
86
86
  .caption {
87
87
  font-size: 1rem;
88
- color: $gray-light;
89
88
  margin: 10px auto;
90
89
  min-width: 200px;
91
90
  max-width: 50%;
91
+ a {
92
+ color: $gray-light;
93
+ text-decoration: underline;
94
+ &:hover, &:focus {
95
+ color: #ffffff;
96
+ }
97
+ }
92
98
  }
93
99
 
94
100
  .counter {
@@ -2,7 +2,7 @@
2
2
  <div class="frame">
3
3
  <%= slideshow_tag %>
4
4
  <div class="caption">
5
- <%= presenter.heading %>
5
+ <%= helpers.link_to_document(presenter.document, presenter.heading, counter: @counter) %>
6
6
  </div>
7
7
 
8
8
  <span class="counter">
@@ -20,11 +20,11 @@ module Blacklight
20
20
  method_name = view_config.slideshow_method
21
21
  @view_context.send(method_name, @document, image_options)
22
22
  elsif view_config.slideshow_field
23
- url = slideshow_image_url
24
-
25
- image_tag url, image_options if url.present?
23
+ return if slideshow_image_url.blank?
24
+ image = image_tag slideshow_image_url, image_options
25
+ helpers.link_to_document(@document, image)
26
26
  elsif presenter.thumbnail.exists?
27
- presenter.thumbnail.thumbnail_tag(image_options, url_options.reverse_merge(suppress_link: true))
27
+ presenter.thumbnail.thumbnail_tag(image_options)
28
28
  end
29
29
  end
30
30
 
@@ -1,7 +1,24 @@
1
1
  module Blacklight
2
2
  module OpenseadragonHelper
3
+ # Somewhat arbitrary number; the only important thing is that
4
+ # it is bigger than the number of embedded viewers on a page
5
+ ID_COUNTER_MAX = (2**20) - 1
6
+
7
+ # Mint a (sufficiently) unique identifier, so we can associate
8
+ # the expand/collapse control with labels
9
+ def self.mint_id
10
+ @id_counter = ((@id_counter || 0) + 1) % ID_COUNTER_MAX
11
+
12
+ # We convert the ID to hex for markup compactness
13
+ @id_counter.to_s(16)
14
+ end
15
+
3
16
  def osd_container_class
4
17
  "col-md-6"
5
18
  end
19
+
20
+ def osd_html_id_prefix
21
+ "osd-#{Blacklight::OpenseadragonHelper.mint_id}".to_param
22
+ end
6
23
  end
7
- end
24
+ end
@@ -1,13 +1,16 @@
1
- <% image = document.to_openseadragon(blacklight_config.view_config(:show)) %>
1
+ <%
2
+ image = document.to_openseadragon(blacklight_config.view_config(:show))
3
+ id_prefix = osd_html_id_prefix
4
+ %>
2
5
  <%
3
6
  osd_config = {
4
7
  crossOriginPolicy: false,
5
- zoomInButton: "osd-zoom-in",
6
- zoomOutButton: "osd-zoom-out",
7
- homeButton: "osd-home",
8
- fullPageButton: "osd-full-page",
9
- nextButton: "osd-next",
10
- previousButton: "osd-previous"
8
+ zoomInButton: "#{id_prefix}-zoom-in",
9
+ zoomOutButton: "#{id_prefix}-zoom-out",
10
+ homeButton: "#{id_prefix}-home",
11
+ fullPageButton: "#{id_prefix}-full-page",
12
+ nextButton: "#{id_prefix}-next",
13
+ previousButton: "#{id_prefix}-previous"
11
14
  }
12
15
 
13
16
  osd_config_referencestrip = {
@@ -26,16 +29,16 @@
26
29
  <div class="col-md-6 pagination">
27
30
  <% if count > 1 %>
28
31
  <% 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
+ <a id="<%= id_prefix %>-previous"><%= blacklight_icon('chevron_left') %></a>
33
+ <span id="<%= id_prefix %>-page">1</span> of <%= count %>
34
+ <a id="<%= id_prefix %>-next"><%= blacklight_icon('chevron_right') %></a>
32
35
  <% end %>
33
36
  </div>
34
37
  <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>
38
+ <a id="<%= id_prefix %>-zoom-in"><%= blacklight_icon('add_circle') %></a>
39
+ <a id="<%= id_prefix %>-zoom-out"><%= blacklight_icon('remove_circle') %></a>
40
+ <a id="<%= id_prefix %>-home"><%= blacklight_icon('resize_small') %></a>
41
+ <a id="<%= id_prefix %>-full-page"><%= blacklight_icon('custom_fullscreen') %></a>
39
42
  </div>
40
43
  </div>
41
44
  <%= openseadragon_picture_tag image, class: 'osd-image row', data: { openseadragon: osd_config } %>
@@ -17,7 +17,7 @@ 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", '>= 5.1', '< 7'
20
+ spec.add_dependency "rails", '>= 5.1', '< 8'
21
21
  spec.add_dependency 'blacklight', '~> 7.17'
22
22
 
23
23
  spec.add_development_dependency "rake"
@@ -0,0 +1,15 @@
1
+ de:
2
+ blacklight:
3
+ search:
4
+ view:
5
+ gallery: "Bildergalerie"
6
+ slideshow: "Diashow"
7
+ masonry: "Masonry"
8
+ blacklight_gallery:
9
+ catalog:
10
+ grid_slideshow:
11
+ missing_image: 'fehlend'
12
+ document_slideshow:
13
+ header: "Um Bilder als Diashow anzuzeigen, klicken Sie ein Bild"
14
+ modal_slideshow:
15
+ counter: "%{counter} von %{count}"
@@ -1,5 +1,5 @@
1
1
  module Blacklight
2
2
  module Gallery
3
- VERSION = "3.4.0"
3
+ VERSION = "4.0.1"
4
4
  end
5
5
  end
@@ -16,10 +16,9 @@ module BlacklightGallery
16
16
 
17
17
  def configuration
18
18
  inject_into_file 'app/controllers/catalog_controller.rb', after: "configure_blacklight do |config|" do
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" \
19
+ "\n config.view.gallery(document_component: Blacklight::Gallery::DocumentComponent)" \
20
+ "\n config.view.masonry(document_component: Blacklight::Gallery::DocumentComponent)" \
21
+ "\n config.view.slideshow(document_component: Blacklight::Gallery::SlideshowComponent)" \
23
22
  "\n config.show.tile_source_field = :content_metadata_image_iiif_info_ssm" \
24
23
  "\n config.show.partials.insert(1, :openseadragon)"
25
24
  end
@@ -15,20 +15,30 @@ RSpec.describe Blacklight::Gallery::SlideshowComponent, type: :component do
15
15
  Capybara::Node::Simple.new(render)
16
16
  end
17
17
 
18
- let(:blacklight_config) { Blacklight::Configuration.new }
18
+ let(:document) do
19
+ SolrDocument.new(
20
+ id: 'x',
21
+ )
22
+ end
23
+
19
24
  let(:presenter) { Blacklight::IndexPresenter.new(document, view_context, blacklight_config) }
20
25
 
21
26
  before do
27
+ allow(view_context).to receive(:current_search_session).and_return(nil)
28
+ allow(view_context).to receive(:search_session).and_return({})
22
29
  allow(view_context).to receive(:blacklight_config).and_return(blacklight_config)
23
30
  end
24
31
 
25
32
  describe '#slideshow_tag' do
26
33
  subject { rendered }
27
34
 
28
- let(:document) { SolrDocument.new({}) }
29
-
30
35
  context 'with a slideshow method' do
31
- let(:blacklight_config) { Blacklight::Configuration.new.tap { |config| config.index.slideshow_method = :xyz } }
36
+ let(:blacklight_config) do
37
+ Blacklight::Configuration.new.tap do |config|
38
+ config.index.slideshow_method = :xyz
39
+ config.track_search_session = false
40
+ end
41
+ end
32
42
 
33
43
  it 'calls the provided slideshow method' do
34
44
  expect(view_context).to receive_messages(xyz: 'some-slideshow')
@@ -41,26 +51,39 @@ RSpec.describe Blacklight::Gallery::SlideshowComponent, type: :component do
41
51
  end
42
52
  end
43
53
 
44
- context 'with a field' do
45
- let(:blacklight_config) { Blacklight::Configuration.new.tap { |config| config.index.slideshow_field = :xyz } }
46
- let(:document) { SolrDocument.new({ xyz: 'http://example.com/some.jpg' }) }
54
+ context 'with a slideshow field' do
55
+ let(:blacklight_config) do
56
+ Blacklight::Configuration.new.tap do |config|
57
+ config.index.slideshow_field = :xyz
58
+ config.track_search_session = false
59
+ end
60
+ end
61
+ let(:document) { SolrDocument.new({ xyz: 'http://example.com/some.jpg', id: 'x' }) }
47
62
 
48
63
  it { is_expected.to have_selector 'img[src="http://example.com/some.jpg"]' }
49
64
 
50
65
  context 'without data in the field' do
51
- let(:document) { SolrDocument.new({}) }
66
+ let(:document) { SolrDocument.new({id: 'x'}) }
52
67
 
53
68
  it { is_expected.not_to have_selector 'img' }
54
69
  end
55
70
  end
56
71
 
57
- context 'with nothing configured' do
72
+ context 'with no view_config' do
73
+ let(:blacklight_config) { Blacklight::Configuration.new.tap { |config|
74
+ config.track_search_session = false
75
+ } }
58
76
  it { is_expected.not_to have_selector 'img' }
59
77
  end
60
78
 
61
79
  context 'falling back to a thumbnail' do
62
- let(:blacklight_config) { Blacklight::Configuration.new.tap { |config| config.index.thumbnail_field = :xyz } }
63
- let(:document) { SolrDocument.new({ xyz: 'http://example.com/thumb.jpg' }) }
80
+ let(:blacklight_config) do
81
+ Blacklight::Configuration.new.tap do |config|
82
+ config.index.thumbnail_field = :xyz
83
+ config.track_search_session = false
84
+ end
85
+ end
86
+ let(:document) { SolrDocument.new({ xyz: 'http://example.com/thumb.jpg', id: 'x' }) }
64
87
 
65
88
  it { is_expected.to have_selector 'img[src="http://example.com/thumb.jpg"]' }
66
89
  end
@@ -1 +0,0 @@
1
- gem 'sprockets', '< 4'
@@ -1,6 +1,6 @@
1
1
  require 'spec_helper'
2
2
 
3
- describe "catalog/_document_slideshow.html.erb", :type => :view do
3
+ describe "catalog/_document_slideshow", :type => :view do
4
4
  let(:blacklight_config) do
5
5
  Blacklight::Configuration.new do |config|
6
6
  config.track_search_session = false
@@ -3,7 +3,7 @@ require 'spec_helper'
3
3
  describe "catalog/openseadragon_default" do
4
4
  let(:document) { SolrDocument.new }
5
5
  let(:blacklight_config) { Blacklight::Configuration.new }
6
- let(:p) { "catalog/openseadragon_default.html.erb" }
6
+ let(:p) { "catalog/openseadragon_default" }
7
7
 
8
8
  before do
9
9
  allow(view).to receive_messages(blacklight_config: blacklight_config, openseadragon_picture_tag: "<img />")
@@ -14,9 +14,9 @@ describe "catalog/openseadragon_default" do
14
14
  render partial: p, locals: { document: document }
15
15
  expect(rendered).to have_selector ".openseadragon-container"
16
16
  end
17
-
17
+
18
18
  it "should support passing a container class" do
19
19
  render partial: p, locals: { document: document, osd_container_class: "custom-container" }
20
20
  expect(rendered).to have_selector ".custom-container"
21
21
  end
22
- end
22
+ 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: 3.4.0
4
+ version: 4.0.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: 2022-02-04 00:00:00.000000000 Z
11
+ date: 2022-06-08 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails
@@ -19,7 +19,7 @@ dependencies:
19
19
  version: '5.1'
20
20
  - - "<"
21
21
  - !ruby/object:Gem::Version
22
- version: '7'
22
+ version: '8'
23
23
  type: :runtime
24
24
  prerelease: false
25
25
  version_requirements: !ruby/object:Gem::Requirement
@@ -29,7 +29,7 @@ dependencies:
29
29
  version: '5.1'
30
30
  - - "<"
31
31
  - !ruby/object:Gem::Version
32
- version: '7'
32
+ version: '8'
33
33
  - !ruby/object:Gem::Dependency
34
34
  name: blacklight
35
35
  requirement: !ruby/object:Gem::Requirement
@@ -262,6 +262,7 @@ files:
262
262
  - app/views/catalog/_slideshow_modal.html.erb
263
263
  - blacklight-gallery.gemspec
264
264
  - config/locales/blacklight-gallery.ar.yml
265
+ - config/locales/blacklight-gallery.de.yml
265
266
  - config/locales/blacklight-gallery.en.yml
266
267
  - config/locales/blacklight-gallery.es.yml
267
268
  - config/locales/blacklight-gallery.fr.yml