blacklight-gallery 0.0.1 → 0.0.2
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/Gemfile +11 -1
- data/README.md +5 -0
- data/Rakefile +1 -2
- data/app/assets/javascripts/blacklight_gallery/slideshow.js +119 -0
- data/app/assets/stylesheets/blacklight_gallery/_slideshow.css.scss +140 -0
- data/app/assets/stylesheets/blacklight_gallery/default.css.scss +36 -2
- data/app/views/catalog/_document_slideshow.html.erb +14 -0
- data/app/views/catalog/_grid_slideshow.html.erb +7 -0
- data/app/views/catalog/_index_gallery.html.erb +2 -2
- data/app/views/catalog/_index_slideshow.html.erb +11 -0
- data/app/views/catalog/_slideshow.html.erb +16 -0
- data/app/views/catalog/_slideshow_modal.html.erb +14 -0
- data/blacklight-gallery.gemspec +2 -2
- data/config/jetty.yml +2 -0
- data/config/locales/blacklight-gallery.en.yml +8 -1
- data/docs/screen_shot.png +0 -0
- data/lib/blacklight/gallery/engine.rb +2 -1
- data/lib/blacklight/gallery/version.rb +1 -1
- data/lib/generators/blacklight_gallery/install_generator.rb +2 -1
- data/lib/generators/blacklight_gallery/templates/blacklight_gallery.js +1 -0
- data/spec/features/slideshow_spec.rb +16 -0
- data/spec/spec_helper.rb +7 -1
- data/spec/views/catalog/_document_slideshow.html.erb_spec.rb +20 -0
- data/spec/views/catalog/_index_gallery.html.erb_spec.rb +22 -0
- metadata +24 -14
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: dba81d9ebc340387c2228289ecdde6641cf494d4
|
4
|
+
data.tar.gz: ce6c1b068aa9021a04428ae550d1ccec85f801e9
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 69f036f9a806c8d645e7df9c7d4461b1ceffdbc30090a7b0f7aac019784b14083f7e07ab2df665316504a016350fe8148919d309d44df6faabba658de5c29090
|
7
|
+
data.tar.gz: 95677dd746ca34b0b2536c1be819c14c411d4e510be7d3838b80bf10301dbed24b2d8d0c067bb8a3902c8043353b6bb7f765cd54ec1d3aaa83dab990d9e4112e
|
data/Gemfile
CHANGED
@@ -3,6 +3,16 @@ source 'https://rubygems.org'
|
|
3
3
|
# Specify your gem's dependencies in blacklight-gallery.gemspec
|
4
4
|
gemspec
|
5
5
|
|
6
|
+
# If we don't specify 2.11.0 we'll end up with sprockets 2.12.0 in the main
|
7
|
+
# Gemfile.lock but since sass-rails gets generated (rails new) into the test app
|
8
|
+
# it'll want sprockets 2.11.0 and we'll have a conflict
|
9
|
+
gem 'sprockets', '2.11.0'
|
10
|
+
|
11
|
+
# If we don't specify 3.2.15 we'll end up with sass 3.3.2 in the main
|
12
|
+
# Gemfile.lock but since sass-rails gets generated (rails new) into the test app
|
13
|
+
# it'll want sass 3.2.0 and we'll have a conflict
|
14
|
+
gem 'sass', '~> 3.2.0'
|
15
|
+
|
6
16
|
group :test do
|
7
17
|
gem "bootstrap-sass"
|
8
18
|
gem 'turbolinks'
|
@@ -13,4 +23,4 @@ gem 'activerecord-jdbcsqlite3-adapter', :platform => :jruby
|
|
13
23
|
|
14
24
|
if File.exists?('spec/test_app_templates/Gemfile.extra')
|
15
25
|
eval File.read('spec/test_app_templates/Gemfile.extra'), nil, 'spec/test_app_templates/Gemfile.extra'
|
16
|
-
end
|
26
|
+
end
|
data/README.md
CHANGED
@@ -1,4 +1,5 @@
|
|
1
1
|
# Blacklight::Gallery
|
2
|
+
[](http://badge.fury.io/rb/blacklight-gallery)
|
2
3
|
|
3
4
|
Gallery views for Blacklight search results
|
4
5
|
|
@@ -22,6 +23,10 @@ Run the gallery generator:
|
|
22
23
|
|
23
24
|
$ rails g blacklight_gallery:install
|
24
25
|
|
26
|
+
## Screenshot
|
27
|
+
|
28
|
+

|
29
|
+
|
25
30
|
## Contributing
|
26
31
|
|
27
32
|
1. Fork it ( http://github.com/<my-github-username>/blacklight-gallery/fork )
|
data/Rakefile
CHANGED
@@ -7,7 +7,6 @@ require 'rspec/core/rake_task'
|
|
7
7
|
require 'engine_cart/rake_task'
|
8
8
|
|
9
9
|
require 'jettywrapper'
|
10
|
-
require 'blacklight'
|
11
10
|
|
12
11
|
task :default => :ci
|
13
12
|
|
@@ -41,4 +40,4 @@ task :ci => ['jetty:clean', 'engine_cart:generate'] do
|
|
41
40
|
Rake::Task['spec'].invoke
|
42
41
|
end
|
43
42
|
raise "test failures: #{error}" if error
|
44
|
-
end
|
43
|
+
end
|
@@ -0,0 +1,119 @@
|
|
1
|
+
(function($){
|
2
|
+
var Slideshow = function (element, options) {
|
3
|
+
this.$element = $(element);
|
4
|
+
this.options = options;
|
5
|
+
this.paused = false;
|
6
|
+
this.activeIndex = 0;
|
7
|
+
|
8
|
+
this.init = function() {
|
9
|
+
this.$items = this.$element.find('.item');
|
10
|
+
}
|
11
|
+
|
12
|
+
this.attachEvents();
|
13
|
+
this.init();
|
14
|
+
}
|
15
|
+
|
16
|
+
|
17
|
+
Slideshow.prototype = {
|
18
|
+
|
19
|
+
slide: function(item) {
|
20
|
+
var $item = $(item),
|
21
|
+
$frame = $item.find('.frame'),
|
22
|
+
marginTop = 0;
|
23
|
+
|
24
|
+
this.$items.hide();
|
25
|
+
$item.show();
|
26
|
+
|
27
|
+
marginTop = Math.round($item.height() - $frame.height())/2;
|
28
|
+
this.activeIndex = this.$items.index(item);
|
29
|
+
|
30
|
+
if (this.options.autoPlay && !this.paused) this.play();
|
31
|
+
|
32
|
+
return this;
|
33
|
+
},
|
34
|
+
|
35
|
+
play: function() {
|
36
|
+
this.paused = false;
|
37
|
+
|
38
|
+
if (this.interval) clearInterval(this.interval);
|
39
|
+
this.interval = setInterval($.proxy(this.next, this), this.options.interval);
|
40
|
+
},
|
41
|
+
|
42
|
+
pause: function() {
|
43
|
+
this.paused = true;
|
44
|
+
this.interval = clearInterval(this.interval);
|
45
|
+
|
46
|
+
return this;
|
47
|
+
},
|
48
|
+
|
49
|
+
startAt: function(pos) {
|
50
|
+
this.to(pos);
|
51
|
+
},
|
52
|
+
|
53
|
+
next: function() {
|
54
|
+
return this.to('next');
|
55
|
+
},
|
56
|
+
|
57
|
+
to: function(pos) {
|
58
|
+
if (pos === 'next') pos = this.activeIndex + 1;
|
59
|
+
if (pos === 'prev') pos = this.activeIndex - 1;
|
60
|
+
|
61
|
+
return this.slide(this.$items[this.getValidIndex(pos)]);
|
62
|
+
},
|
63
|
+
|
64
|
+
getValidIndex: function(index) {
|
65
|
+
if (typeof index === 'undefined' || index > (this.$items.length - 1)) index = 0;
|
66
|
+
if (index < 0) index = this.$items.length - 1;
|
67
|
+
|
68
|
+
return index;
|
69
|
+
},
|
70
|
+
|
71
|
+
attachEvents: function() {
|
72
|
+
var $img = this.$element.find('.frame img'),
|
73
|
+
_this = this;
|
74
|
+
|
75
|
+
// pause slideshow on image mouseenter event
|
76
|
+
$img.on('mouseenter', function() { _this.pause(); });
|
77
|
+
|
78
|
+
// play slideshow on image mouseleave event
|
79
|
+
$img.on('mouseleave', function() {
|
80
|
+
if (_this.options.autoPlay) _this.play();
|
81
|
+
});
|
82
|
+
|
83
|
+
$(document).on('click', '[data-slide], [data-slide-to]', function() {
|
84
|
+
pos = parseInt($(this).attr('data-slide-to'), 10) || $(this).attr('data-slide');
|
85
|
+
|
86
|
+
if (pos === 'next' || pos === 'prev') _this.pause();
|
87
|
+
_this.to(pos);
|
88
|
+
});
|
89
|
+
|
90
|
+
// pause slideshow on modal close
|
91
|
+
$('#slideshow-modal').on('hidden.bs.modal', function() {
|
92
|
+
_this.pause();
|
93
|
+
});
|
94
|
+
}
|
95
|
+
}
|
96
|
+
|
97
|
+
|
98
|
+
Slideshow.DEFAULTS = {
|
99
|
+
autoPlay: true,
|
100
|
+
interval: 5000 // in milliseconds
|
101
|
+
}
|
102
|
+
|
103
|
+
|
104
|
+
$.fn.slideshow = function(option) {
|
105
|
+
return this.each(function() {
|
106
|
+
var $this = $(this);
|
107
|
+
var data = $this.data('slideshow');
|
108
|
+
var options = $.extend({}, Slideshow.DEFAULTS, $this.data(), typeof option == 'object' && option);
|
109
|
+
|
110
|
+
if (!data) $this.data('slideshow', (data = new Slideshow(this, options)));
|
111
|
+
})
|
112
|
+
}
|
113
|
+
|
114
|
+
})(jQuery);
|
115
|
+
|
116
|
+
|
117
|
+
Blacklight.onLoad(function() {
|
118
|
+
$('#slideshow').slideshow();
|
119
|
+
});
|
@@ -0,0 +1,140 @@
|
|
1
|
+
$gray-light: lightgray !default;
|
2
|
+
$gray-dark: darkgray !default;
|
3
|
+
|
4
|
+
#slideshow-modal {
|
5
|
+
.modal-dialog {
|
6
|
+
width: 100%;
|
7
|
+
margin: 1% auto;
|
8
|
+
|
9
|
+
.modal-content {
|
10
|
+
background-color: $gray-dark;
|
11
|
+
}
|
12
|
+
|
13
|
+
.modal-header {
|
14
|
+
border-bottom: none;
|
15
|
+
|
16
|
+
.close {
|
17
|
+
color: white;
|
18
|
+
}
|
19
|
+
}
|
20
|
+
|
21
|
+
.modal-body {
|
22
|
+
padding: 1%;
|
23
|
+
height: 90%;
|
24
|
+
}
|
25
|
+
}
|
26
|
+
}
|
27
|
+
|
28
|
+
#slideshow {
|
29
|
+
height: 100%;
|
30
|
+
|
31
|
+
.slideshow-inner {
|
32
|
+
height: 100%;
|
33
|
+
overflow: hidden;
|
34
|
+
|
35
|
+
.item {
|
36
|
+
width: 100%;
|
37
|
+
height: 100%;
|
38
|
+
display: table;
|
39
|
+
vertical-align: middle;
|
40
|
+
position: relative;
|
41
|
+
|
42
|
+
.frame {
|
43
|
+
margin: 0 auto;
|
44
|
+
display: table-cell;
|
45
|
+
text-align: center;
|
46
|
+
vertical-align: middle;
|
47
|
+
overflow: auto;
|
48
|
+
|
49
|
+
img {
|
50
|
+
display: inline-block;
|
51
|
+
vertical-align: middle;
|
52
|
+
}
|
53
|
+
}
|
54
|
+
}
|
55
|
+
}
|
56
|
+
|
57
|
+
.carousel-control {
|
58
|
+
background-image: none;
|
59
|
+
height: 100%;
|
60
|
+
width: 50px;
|
61
|
+
|
62
|
+
.glyphicon {
|
63
|
+
color: $gray-light;
|
64
|
+
}
|
65
|
+
}
|
66
|
+
.carousel-control.left .glyphicon {
|
67
|
+
padding-right: 3px;
|
68
|
+
}
|
69
|
+
.carousel-control.right .glyphicon {
|
70
|
+
padding-left: 2px;
|
71
|
+
}
|
72
|
+
|
73
|
+
.caption {
|
74
|
+
font-size: 14px;
|
75
|
+
color: $gray-light;
|
76
|
+
margin: 10px auto;
|
77
|
+
min-width: 200px;
|
78
|
+
max-width: 50%;
|
79
|
+
}
|
80
|
+
|
81
|
+
.counter {
|
82
|
+
// background-color: $gray-light;
|
83
|
+
border-radius: 12px;
|
84
|
+
border: 1px solid $gray-light;
|
85
|
+
color: $gray-light;
|
86
|
+
font-size: 12px;
|
87
|
+
overflow: auto;
|
88
|
+
padding: 4px 10px;
|
89
|
+
text-align: center;
|
90
|
+
}
|
91
|
+
}
|
92
|
+
|
93
|
+
#documents {
|
94
|
+
margin: 0;
|
95
|
+
|
96
|
+
.info {
|
97
|
+
text-align: center;
|
98
|
+
margin-bottom: 15px;
|
99
|
+
}
|
100
|
+
|
101
|
+
h3 {
|
102
|
+
background-color: whitesmoke;
|
103
|
+
border-radius: 3px;
|
104
|
+
border: 1px solid #ddd;
|
105
|
+
display: inline-block;
|
106
|
+
font-size: 16px;
|
107
|
+
margin: 10px auto;
|
108
|
+
padding: 10px 15px;
|
109
|
+
}
|
110
|
+
|
111
|
+
.grid {
|
112
|
+
$square-thumb-size: 100px;
|
113
|
+
|
114
|
+
.document {
|
115
|
+
float: left;
|
116
|
+
margin-right: 20px;
|
117
|
+
margin-top: 0;
|
118
|
+
padding-top: 0;
|
119
|
+
border-bottom: 0;
|
120
|
+
|
121
|
+
.thumbnail {
|
122
|
+
border: 1px solid #999;
|
123
|
+
border-radius: 0;
|
124
|
+
min-width: $square-thumb-size;
|
125
|
+
min-height: $square-thumb-size;
|
126
|
+
overflow: hidden;
|
127
|
+
position: relative;
|
128
|
+
width: $square-thumb-size;
|
129
|
+
|
130
|
+
a > img {
|
131
|
+
position: absolute;
|
132
|
+
max-width: none;
|
133
|
+
max-height: none;
|
134
|
+
left: -50%;
|
135
|
+
top: -50%;
|
136
|
+
}
|
137
|
+
}
|
138
|
+
}
|
139
|
+
}
|
140
|
+
}
|
@@ -1,7 +1,26 @@
|
|
1
|
+
@import "slideshow";
|
2
|
+
|
1
3
|
#documents.gallery {
|
4
|
+
|
5
|
+
display: -webkit-box;
|
6
|
+
display: -moz-box;
|
7
|
+
display: -ms-flexbox;
|
8
|
+
display: -webkit-flex;
|
9
|
+
display: flex;
|
10
|
+
flex-flow: row wrap;
|
11
|
+
|
12
|
+
|
2
13
|
.document {
|
3
14
|
border-bottom: none;
|
4
|
-
|
15
|
+
|
16
|
+
-webkit-box-flex: 1;
|
17
|
+
-moz-box-flex: 1;
|
18
|
+
-webkit-flex: 1;
|
19
|
+
-ms-flex: 1;
|
20
|
+
flex: 1;
|
21
|
+
|
22
|
+
min-width: 250px;
|
23
|
+
min-height: 250px;
|
5
24
|
}
|
6
25
|
|
7
26
|
.index_title {
|
@@ -15,8 +34,23 @@
|
|
15
34
|
.index-document-functions {
|
16
35
|
clear: left;
|
17
36
|
}
|
37
|
+
|
38
|
+
.document-metadata {
|
39
|
+
dt, dd {
|
40
|
+
float: none;
|
41
|
+
width: auto;
|
42
|
+
clear: none;
|
43
|
+
text-align: left;
|
44
|
+
margin: 0;
|
45
|
+
padding: 0;
|
46
|
+
}
|
47
|
+
|
48
|
+
}
|
18
49
|
}
|
19
50
|
|
20
51
|
.view-icon-gallery {
|
21
52
|
&:before { content: "\e011"; }
|
22
|
-
}
|
53
|
+
}
|
54
|
+
.view-icon-slideshow {
|
55
|
+
&:before { content: "\e158"; }
|
56
|
+
}
|
@@ -0,0 +1,14 @@
|
|
1
|
+
<% # container for all documents in slideshow view -%>
|
2
|
+
<div id="documents" class="row slideshow">
|
3
|
+
<div class="info">
|
4
|
+
<h3><%= t(:'blacklight_gallery.catalog.document_slideshow.header') %></h3>
|
5
|
+
</div>
|
6
|
+
|
7
|
+
<div class="grid">
|
8
|
+
<%= render collection: documents, as: :document, partial: 'grid_slideshow' %>
|
9
|
+
</div>
|
10
|
+
|
11
|
+
<%= render layout: 'slideshow_modal', locals: {documents: documents} do %>
|
12
|
+
<%= render partial: 'slideshow', locals: {documents: documents} %>
|
13
|
+
<% end %>
|
14
|
+
</div>
|
@@ -1,8 +1,8 @@
|
|
1
1
|
<div class="document col-xs-6 col-md-3">
|
2
2
|
<div class="thumbnail">
|
3
|
-
<%= render_thumbnail_tag
|
3
|
+
<%= render_thumbnail_tag(document, {}, :counter => document_counter_with_offset(document_counter)) %>
|
4
4
|
<div class="caption">
|
5
5
|
<%= render_document_partials document, blacklight_config.view_config(:gallery).partials, :document_counter => document_counter %>
|
6
6
|
</div>
|
7
7
|
</div>
|
8
|
-
</div>
|
8
|
+
</div>
|
@@ -0,0 +1,11 @@
|
|
1
|
+
<div class="item<%= ' active' if document_counter == 0 %>">
|
2
|
+
<div class="frame">
|
3
|
+
<%= image_tag thumbnail_url(document) %>
|
4
|
+
<div class="caption">
|
5
|
+
<%= render_document_index_label document, label: document_show_link_field(document) %>
|
6
|
+
</div>
|
7
|
+
<span class="counter">
|
8
|
+
<%= t :'blacklight_gallery.catalog.modal_slideshow.counter', counter: document_counter + 1, count: count %>
|
9
|
+
</span>
|
10
|
+
</div>
|
11
|
+
</div>
|
@@ -0,0 +1,16 @@
|
|
1
|
+
<div id="slideshow" class="">
|
2
|
+
<!-- Wrapper for slides -->
|
3
|
+
<div class="slideshow-inner">
|
4
|
+
<%= render collection: documents, as: :document, partial: 'index_slideshow', locals: {count: documents.count} %>
|
5
|
+
</div>
|
6
|
+
|
7
|
+
<!-- Controls -->
|
8
|
+
<a class="left carousel-control prev" href="#slideshow" data-slide="prev">
|
9
|
+
<span class="glyphicon glyphicon-chevron-left"></span>
|
10
|
+
</a>
|
11
|
+
<a class="right carousel-control next" href="#slideshow" data-slide="next">
|
12
|
+
<span class="glyphicon glyphicon-chevron-right"></span>
|
13
|
+
</a>
|
14
|
+
|
15
|
+
</div>
|
16
|
+
|
@@ -0,0 +1,14 @@
|
|
1
|
+
<!-- Modal -->
|
2
|
+
<div class="modal fade" id="slideshow-modal" tabindex="-1" role="dialog" aria-labelledby="slideshow-modal-label" aria-hidden="true">
|
3
|
+
<div class="modal-dialog col-md-10">
|
4
|
+
<div class="modal-content">
|
5
|
+
<div class="modal-header">
|
6
|
+
<button type="button" class="close" data-dismiss="modal" aria-hidden="true"><span class="glyphicon glyphicon-remove"></span></button>
|
7
|
+
</div>
|
8
|
+
<div class="modal-body">
|
9
|
+
<%= yield %>
|
10
|
+
</div>
|
11
|
+
</div>
|
12
|
+
</div>
|
13
|
+
</div>
|
14
|
+
|
data/blacklight-gallery.gemspec
CHANGED
@@ -9,7 +9,7 @@ Gem::Specification.new do |spec|
|
|
9
9
|
spec.authors = ["Chris Beer"]
|
10
10
|
spec.email = ["cabeer@stanford.edu"]
|
11
11
|
spec.summary = %q{Gallery display for Blacklight}
|
12
|
-
spec.homepage = ""
|
12
|
+
spec.homepage = "https://github.com/projectblacklight/blacklight-gallery"
|
13
13
|
spec.license = "Apache 2.0"
|
14
14
|
|
15
15
|
spec.files = `git ls-files`.split($/)
|
@@ -18,7 +18,7 @@ Gem::Specification.new do |spec|
|
|
18
18
|
spec.require_paths = ["lib"]
|
19
19
|
|
20
20
|
spec.add_dependency "rails"
|
21
|
-
spec.add_dependency "blacklight", "
|
21
|
+
spec.add_dependency "blacklight", "~> 5.0"
|
22
22
|
spec.add_dependency "bootstrap-sass", "~> 3.0"
|
23
23
|
|
24
24
|
spec.add_development_dependency "bundler", "~> 1.5"
|
data/config/jetty.yml
ADDED
@@ -2,4 +2,11 @@ en:
|
|
2
2
|
blacklight:
|
3
3
|
search:
|
4
4
|
view:
|
5
|
-
gallery: "Gallery"
|
5
|
+
gallery: "Gallery"
|
6
|
+
slideshow: "Slideshow"
|
7
|
+
blacklight_gallery:
|
8
|
+
catalog:
|
9
|
+
document_slideshow:
|
10
|
+
header: "Select an image to start the slideshow"
|
11
|
+
modal_slideshow:
|
12
|
+
counter: "%{counter} of %{count}"
|
Binary file
|
@@ -3,7 +3,8 @@ require 'blacklight'
|
|
3
3
|
module Blacklight
|
4
4
|
module Gallery
|
5
5
|
class Engine < Rails::Engine
|
6
|
-
Blacklight::Configuration.default_values[:view].gallery.partials = [:index_header]
|
6
|
+
Blacklight::Configuration.default_values[:view].gallery.partials = [:index_header, :index]
|
7
|
+
Blacklight::Configuration.default_values[:view].slideshow.partials = [:index]
|
7
8
|
end
|
8
9
|
end
|
9
10
|
end
|
@@ -0,0 +1 @@
|
|
1
|
+
//= require blacklight_gallery/slideshow
|
@@ -0,0 +1,16 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe "Slideshow", :js do
|
4
|
+
|
5
|
+
it "should open when one of the grid panes are clicked" do
|
6
|
+
visit catalog_index_path( :q => 'medicine', :view => 'slideshow' )
|
7
|
+
expect(page).to have_content "You searched for:"
|
8
|
+
within ".view-type" do
|
9
|
+
click_link "Slideshow"
|
10
|
+
end
|
11
|
+
|
12
|
+
find('.grid [data-slide-to="0"]').trigger('click')
|
13
|
+
expect(page).to have_selector '#slideshow', visible: true
|
14
|
+
end
|
15
|
+
|
16
|
+
end
|
data/spec/spec_helper.rb
CHANGED
@@ -7,4 +7,10 @@ require 'engine_cart'
|
|
7
7
|
EngineCart.load_application!
|
8
8
|
|
9
9
|
require 'rspec/rails'
|
10
|
-
require 'capybara/
|
10
|
+
require 'capybara/poltergeist'
|
11
|
+
Capybara.javascript_driver = :poltergeist
|
12
|
+
|
13
|
+
RSpec.configure do |c|
|
14
|
+
c.treat_symbols_as_metadata_keys_with_true_values = true
|
15
|
+
end
|
16
|
+
|
@@ -0,0 +1,20 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe "catalog/_document_slideshow.html.erb" do
|
4
|
+
let(:blacklight_config) { Blacklight::Configuration.new }
|
5
|
+
|
6
|
+
let(:document) { stub_model(::SolrDocument) }
|
7
|
+
|
8
|
+
before do
|
9
|
+
view.stub(blacklight_config: blacklight_config)
|
10
|
+
view.stub(documents: [document])
|
11
|
+
end
|
12
|
+
|
13
|
+
it "should have a edit tag form" do
|
14
|
+
render
|
15
|
+
expect(rendered).to have_selector '#slideshow-modal'
|
16
|
+
expect(rendered).to have_selector '[data-slide="prev"]'
|
17
|
+
expect(rendered).to have_selector '[data-slide="next"]'
|
18
|
+
expect(rendered).to have_selector '[data-slide-to="0"][data-toggle="modal"][data-target="#slideshow-modal"]'
|
19
|
+
end
|
20
|
+
end
|
@@ -0,0 +1,22 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe "catalog/_index_gallery.html.erb" do
|
4
|
+
let(:blacklight_config) { Blacklight::Configuration.new }
|
5
|
+
|
6
|
+
let(:document) { stub_model(::SolrDocument) }
|
7
|
+
|
8
|
+
before do
|
9
|
+
blacklight_config.view.gallery.partials = ['a', 'b']
|
10
|
+
view.stub(blacklight_config: blacklight_config)
|
11
|
+
view.stub(document: document)
|
12
|
+
view.stub(document_counter: 3, document_counter_with_offset: 3)
|
13
|
+
end
|
14
|
+
|
15
|
+
it "should have thumbnail and caption" do
|
16
|
+
view.should_receive(:render_thumbnail_tag).with(document, {}, hash_including(:counter)).and_return('Thumbnail')
|
17
|
+
view.should_receive(:render_document_partials).with(document, ['a', 'b'], document_counter: 3).and_return('Z')
|
18
|
+
render
|
19
|
+
expect(rendered).to have_selector '.thumbnail', text: 'Thumbnail'
|
20
|
+
expect(rendered).to have_selector '.caption', text: 'Z'
|
21
|
+
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: 0.0.
|
4
|
+
version: 0.0.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Chris Beer
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-
|
11
|
+
date: 2014-08-28 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rails
|
@@ -28,22 +28,16 @@ dependencies:
|
|
28
28
|
name: blacklight
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
|
-
- - "
|
32
|
-
- !ruby/object:Gem::Version
|
33
|
-
version: 5.0.0.pre4
|
34
|
-
- - "<"
|
31
|
+
- - "~>"
|
35
32
|
- !ruby/object:Gem::Version
|
36
|
-
version: '
|
33
|
+
version: '5.0'
|
37
34
|
type: :runtime
|
38
35
|
prerelease: false
|
39
36
|
version_requirements: !ruby/object:Gem::Requirement
|
40
37
|
requirements:
|
41
|
-
- - "
|
42
|
-
- !ruby/object:Gem::Version
|
43
|
-
version: 5.0.0.pre4
|
44
|
-
- - "<"
|
38
|
+
- - "~>"
|
45
39
|
- !ruby/object:Gem::Version
|
46
|
-
version: '
|
40
|
+
version: '5.0'
|
47
41
|
- !ruby/object:Gem::Dependency
|
48
42
|
name: bootstrap-sass
|
49
43
|
requirement: !ruby/object:Gem::Requirement
|
@@ -155,21 +149,34 @@ files:
|
|
155
149
|
- LICENSE.txt
|
156
150
|
- README.md
|
157
151
|
- Rakefile
|
152
|
+
- app/assets/javascripts/blacklight_gallery/slideshow.js
|
153
|
+
- app/assets/stylesheets/blacklight_gallery/_slideshow.css.scss
|
158
154
|
- app/assets/stylesheets/blacklight_gallery/default.css.scss
|
159
155
|
- app/views/catalog/_document_gallery.html.erb
|
156
|
+
- app/views/catalog/_document_slideshow.html.erb
|
157
|
+
- app/views/catalog/_grid_slideshow.html.erb
|
160
158
|
- app/views/catalog/_index_gallery.html.erb
|
159
|
+
- app/views/catalog/_index_slideshow.html.erb
|
160
|
+
- app/views/catalog/_slideshow.html.erb
|
161
|
+
- app/views/catalog/_slideshow_modal.html.erb
|
161
162
|
- blacklight-gallery.gemspec
|
163
|
+
- config/jetty.yml
|
162
164
|
- config/locales/blacklight-gallery.en.yml
|
165
|
+
- docs/screen_shot.png
|
163
166
|
- lib/blacklight/gallery.rb
|
164
167
|
- lib/blacklight/gallery/engine.rb
|
165
168
|
- lib/blacklight/gallery/version.rb
|
166
169
|
- lib/generators/blacklight_gallery/install_generator.rb
|
167
170
|
- lib/generators/blacklight_gallery/templates/blacklight_gallery.css.scss
|
171
|
+
- lib/generators/blacklight_gallery/templates/blacklight_gallery.js
|
168
172
|
- spec/features/gallery_spec.rb
|
173
|
+
- spec/features/slideshow_spec.rb
|
169
174
|
- spec/spec_helper.rb
|
170
175
|
- spec/test_app_templates/Gemfile.extra
|
171
176
|
- spec/test_app_templates/lib/generators/test_app_generator.rb
|
172
|
-
|
177
|
+
- spec/views/catalog/_document_slideshow.html.erb_spec.rb
|
178
|
+
- spec/views/catalog/_index_gallery.html.erb_spec.rb
|
179
|
+
homepage: https://github.com/projectblacklight/blacklight-gallery
|
173
180
|
licenses:
|
174
181
|
- Apache 2.0
|
175
182
|
metadata: {}
|
@@ -189,12 +196,15 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
189
196
|
version: '0'
|
190
197
|
requirements: []
|
191
198
|
rubyforge_project:
|
192
|
-
rubygems_version: 2.
|
199
|
+
rubygems_version: 2.4.1
|
193
200
|
signing_key:
|
194
201
|
specification_version: 4
|
195
202
|
summary: Gallery display for Blacklight
|
196
203
|
test_files:
|
197
204
|
- spec/features/gallery_spec.rb
|
205
|
+
- spec/features/slideshow_spec.rb
|
198
206
|
- spec/spec_helper.rb
|
199
207
|
- spec/test_app_templates/Gemfile.extra
|
200
208
|
- spec/test_app_templates/lib/generators/test_app_generator.rb
|
209
|
+
- spec/views/catalog/_document_slideshow.html.erb_spec.rb
|
210
|
+
- spec/views/catalog/_index_gallery.html.erb_spec.rb
|