blacklight 4.0.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 +7 -0
- data/VERSION +1 -1
- data/app/assets/javascripts/blacklight/lightbox_dialog.js +0 -3
- data/app/assets/javascripts/improved-modal/bootstrap-modal.js +98 -25
- data/app/assets/javascripts/improved-modal/bootstrap-modalmanager.js +132 -115
- data/app/assets/stylesheets/improved-modal/bootstrap-modal.css +52 -36
- data/app/views/_flash_msg.html.erb +1 -1
- data/app/views/catalog/_constraints_element.html.erb +1 -2
- data/app/views/catalog/_did_you_mean.html.erb +1 -1
- data/app/views/catalog/_results_pagination.html.erb +1 -1
- data/app/views/catalog/_show_tools.html.erb +5 -5
- data/app/views/layouts/blacklight.html.erb +5 -3
- data/blacklight.gemspec +1 -1
- data/config/locales/blacklight.en.yml +5 -5
- data/lib/blacklight/catalog.rb +5 -1
- data/test_support/bin/setup-test-app.sh +1 -1
- data/test_support/bin/test.sh +1 -1
- data/test_support/spec/helpers/catalog_helper_spec.rb +5 -5
- metadata +8 -31
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
!binary "U0hBMQ==":
|
3
|
+
metadata.gz: fd53955e7766d24bb6321e2f1c8276115ef7489f
|
4
|
+
data.tar.gz: 648c5e33395aa063a7b827e6c1418c12ab84aeae
|
5
|
+
!binary "U0hBNTEy":
|
6
|
+
metadata.gz: e73973c3a91c7dfbd0dabea81280af47be472a0c12a89dc37b3060db482d7325c3d564cd510ea006282dc1303838131e1c2bf1106f0a4b52fa983a0c1a660e27
|
7
|
+
data.tar.gz: 63b8d103ae752c8cb697eb7c831501bb1b535fccdb2df53bb49c77546dd6e2f756bd904fb54eedfa65fef735ba9e9a9ec205a887ada8090149f8826f022d3fef
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
4.0.
|
1
|
+
4.0.1
|
@@ -1,5 +1,5 @@
|
|
1
1
|
/* ===========================================================
|
2
|
-
* bootstrap-modal.js
|
2
|
+
* bootstrap-modal.js v2.0
|
3
3
|
* ===========================================================
|
4
4
|
* Copyright 2012 Jordan Schroter
|
5
5
|
*
|
@@ -32,7 +32,7 @@
|
|
32
32
|
|
33
33
|
constructor: Modal,
|
34
34
|
|
35
|
-
init: function(element, options){
|
35
|
+
init: function (element, options) {
|
36
36
|
this.options = options;
|
37
37
|
|
38
38
|
this.$element = $(element)
|
@@ -40,8 +40,13 @@
|
|
40
40
|
|
41
41
|
this.options.remote && this.$element.find('.modal-body').load(this.options.remote);
|
42
42
|
|
43
|
-
var manager = typeof this.options.manager === 'function' ?
|
44
|
-
|
43
|
+
var manager = typeof this.options.manager === 'function' ?
|
44
|
+
this.options.manager.call(this) : this.options.manager;
|
45
|
+
|
46
|
+
manager = manager.appendModal ?
|
47
|
+
manager : $(manager).modalmanager().data('modalmanager');
|
48
|
+
|
49
|
+
manager.appendModal(this);
|
45
50
|
},
|
46
51
|
|
47
52
|
toggle: function () {
|
@@ -52,6 +57,8 @@
|
|
52
57
|
var that = this,
|
53
58
|
e = $.Event('show');
|
54
59
|
|
60
|
+
if (this.isShown) return;
|
61
|
+
|
55
62
|
this.$element.triggerHandler(e);
|
56
63
|
|
57
64
|
if (e.isDefaultPrevented()) return;
|
@@ -60,7 +67,7 @@
|
|
60
67
|
this.$element.css('width', this.options.width);
|
61
68
|
|
62
69
|
var that = this;
|
63
|
-
this.$element.css('margin-left', function(){
|
70
|
+
this.$element.css('margin-left', function () {
|
64
71
|
if (/%/ig.test(that.options.width)){
|
65
72
|
return -(parseInt(that.options.width) / 2) + '%';
|
66
73
|
} else {
|
@@ -68,9 +75,9 @@
|
|
68
75
|
}
|
69
76
|
});
|
70
77
|
}
|
71
|
-
|
72
78
|
|
73
79
|
var prop = this.options.height ? 'height' : 'max-height';
|
80
|
+
|
74
81
|
var value = this.options.height || this.options.maxHeight;
|
75
82
|
|
76
83
|
if (value){
|
@@ -80,6 +87,8 @@
|
|
80
87
|
}
|
81
88
|
|
82
89
|
this.escape();
|
90
|
+
|
91
|
+
this.tab();
|
83
92
|
|
84
93
|
this.options.loading && this.loading();
|
85
94
|
},
|
@@ -87,8 +96,6 @@
|
|
87
96
|
hide: function (e) {
|
88
97
|
e && e.preventDefault();
|
89
98
|
|
90
|
-
var that = this;
|
91
|
-
|
92
99
|
e = $.Event('hide');
|
93
100
|
|
94
101
|
this.$element.triggerHandler(e);
|
@@ -98,6 +105,8 @@
|
|
98
105
|
this.isShown = false;
|
99
106
|
|
100
107
|
this.escape();
|
108
|
+
|
109
|
+
this.tab();
|
101
110
|
|
102
111
|
this.isLoading && this.loading();
|
103
112
|
|
@@ -105,6 +114,8 @@
|
|
105
114
|
|
106
115
|
this.$element
|
107
116
|
.removeClass('in')
|
117
|
+
.removeClass('animated')
|
118
|
+
.removeClass(this.options.attentionAnimation)
|
108
119
|
.removeClass('modal-overflow')
|
109
120
|
.attr('aria-hidden', true);
|
110
121
|
|
@@ -112,14 +123,47 @@
|
|
112
123
|
this.hideWithTransition() :
|
113
124
|
this.hideModal();
|
114
125
|
},
|
126
|
+
|
127
|
+
tab: function () {
|
128
|
+
var that = this;
|
129
|
+
|
130
|
+
if (this.isShown && this.options.consumeTab) {
|
131
|
+
this.$element.on('keydown.tabindex.modal', '[data-tabindex]', function (e) {
|
132
|
+
if (e.keyCode && e.keyCode == 9){
|
133
|
+
var $next = $(this),
|
134
|
+
$rollover = $(this);
|
135
|
+
|
136
|
+
that.$element.find('[data-tabindex]:enabled:not([readonly])').each(function (e) {
|
137
|
+
if (!e.shiftKey){
|
138
|
+
$next = $next.data('tabindex') < $(this).data('tabindex') ?
|
139
|
+
$next = $(this) :
|
140
|
+
$rollover = $(this);
|
141
|
+
} else {
|
142
|
+
$next = $next.data('tabindex') > $(this).data('tabindex') ?
|
143
|
+
$next = $(this) :
|
144
|
+
$rollover = $(this);
|
145
|
+
}
|
146
|
+
});
|
147
|
+
|
148
|
+
$next[0] !== $(this)[0] ?
|
149
|
+
$next.focus() : $rollover.focus();
|
150
|
+
|
151
|
+
e.preventDefault();
|
152
|
+
|
153
|
+
}
|
154
|
+
});
|
155
|
+
} else if (!this.isShown) {
|
156
|
+
this.$element.off('keydown.tabindex.modal');
|
157
|
+
}
|
158
|
+
},
|
115
159
|
|
116
160
|
escape: function () {
|
117
161
|
var that = this;
|
118
162
|
if (this.isShown && this.options.keyboard) {
|
119
163
|
if (!this.$element.attr('tabindex')) this.$element.attr('tabindex', -1);
|
120
164
|
|
121
|
-
this.$element.on('keyup.dismiss.modal', function (
|
122
|
-
e.which == 27 && that.hide()
|
165
|
+
this.$element.on('keyup.dismiss.modal', function (e) {
|
166
|
+
e.which == 27 && that.hide();
|
123
167
|
});
|
124
168
|
} else if (!this.isShown) {
|
125
169
|
this.$element.off('keyup.dismiss.modal')
|
@@ -155,15 +199,15 @@
|
|
155
199
|
}
|
156
200
|
|
157
201
|
},
|
158
|
-
|
159
|
-
removeLoading: function(){
|
202
|
+
|
203
|
+
removeLoading: function () {
|
160
204
|
this.$loading.remove();
|
161
205
|
this.$loading = null;
|
162
206
|
this.isLoading = false;
|
163
207
|
},
|
164
208
|
|
165
|
-
loading: function(callback){
|
166
|
-
callback = callback || function(){};
|
209
|
+
loading: function (callback) {
|
210
|
+
callback = callback || function () {};
|
167
211
|
|
168
212
|
var animate = this.$element.hasClass('fade') ? 'fade' : '';
|
169
213
|
|
@@ -189,7 +233,7 @@
|
|
189
233
|
|
190
234
|
var that = this;
|
191
235
|
$.support.transition && this.$element.hasClass('fade')?
|
192
|
-
this.$loading.one($.support.transition.end, function(){ that.removeLoading() }) :
|
236
|
+
this.$loading.one($.support.transition.end, function () { that.removeLoading() }) :
|
193
237
|
that.removeLoading();
|
194
238
|
|
195
239
|
} else if (callback) {
|
@@ -197,9 +241,37 @@
|
|
197
241
|
}
|
198
242
|
},
|
199
243
|
|
200
|
-
|
244
|
+
focus: function () {
|
245
|
+
var $focusElem = this.$element.find(this.options.focusOn);
|
246
|
+
|
247
|
+
$focusElem = $focusElem.length ? $focusElem : this.$element;
|
248
|
+
|
249
|
+
$focusElem.focus();
|
250
|
+
},
|
251
|
+
|
252
|
+
attention: function (){
|
253
|
+
// NOTE: transitionEnd with keyframes causes odd behaviour
|
254
|
+
|
255
|
+
if (this.options.attentionAnimation){
|
256
|
+
this.$element
|
257
|
+
.removeClass('animated')
|
258
|
+
.removeClass(this.options.attentionAnimation);
|
259
|
+
|
260
|
+
var that = this;
|
261
|
+
|
262
|
+
setTimeout(function () {
|
263
|
+
that.$element
|
264
|
+
.addClass('animated')
|
265
|
+
.addClass(that.options.attentionAnimation);
|
266
|
+
}, 0);
|
267
|
+
}
|
268
|
+
|
269
|
+
|
270
|
+
this.focus();
|
271
|
+
},
|
201
272
|
|
202
|
-
|
273
|
+
|
274
|
+
destroy: function () {
|
203
275
|
var e = $.Event('destroy');
|
204
276
|
this.$element.triggerHandler(e);
|
205
277
|
if (e.isDefaultPrevented()) return;
|
@@ -207,19 +279,17 @@
|
|
207
279
|
this.teardown();
|
208
280
|
},
|
209
281
|
|
210
|
-
teardown: function(){
|
211
|
-
|
212
|
-
|
213
|
-
if (!$parent.length){
|
282
|
+
teardown: function () {
|
283
|
+
if (!this.$parent.length){
|
214
284
|
this.$element.remove();
|
215
285
|
this.$element = null;
|
216
286
|
return;
|
217
287
|
}
|
218
|
-
|
219
|
-
if (
|
288
|
+
|
289
|
+
if (this.$parent !== this.$element.parent()){
|
220
290
|
this.$element.appendTo(this.$parent);
|
221
291
|
}
|
222
|
-
|
292
|
+
|
223
293
|
this.$element.off('.modal');
|
224
294
|
this.$element.removeData('modal');
|
225
295
|
this.$element
|
@@ -253,7 +323,10 @@
|
|
253
323
|
height: null,
|
254
324
|
maxHeight: null,
|
255
325
|
modalOverflow: false,
|
256
|
-
|
326
|
+
consumeTab: true,
|
327
|
+
focusOn: null,
|
328
|
+
attentionAnimation: 'shake',
|
329
|
+
manager: 'body',
|
257
330
|
spinner: '<div class="loading-spinner" style="width: 200px; margin-left: -100px;"><div class="progress progress-striped active"><div class="bar" style="width: 100%;"></div></div></div>'
|
258
331
|
}
|
259
332
|
|
@@ -1,5 +1,5 @@
|
|
1
1
|
/* ===========================================================
|
2
|
-
* bootstrap-modalmanager.js
|
2
|
+
* bootstrap-modalmanager.js v2.0
|
3
3
|
* ===========================================================
|
4
4
|
* Copyright 2012 Jordan Schroter.
|
5
5
|
*
|
@@ -16,31 +16,10 @@
|
|
16
16
|
* limitations under the License.
|
17
17
|
* ========================================================== */
|
18
18
|
|
19
|
-
!function($){
|
19
|
+
!function ($) {
|
20
20
|
|
21
21
|
"use strict"; // jshint ;_;
|
22
22
|
|
23
|
-
var baseModalzIndex, baseModalAbszIndex, baseBackdropzIndex, baseBackdropAbszIndex, zIndexFactor;
|
24
|
-
|
25
|
-
$(function(){
|
26
|
-
var $baseModal = $('<div class="modal hide" />').appendTo('body'),
|
27
|
-
$baseBackdrop = $('<div class="modal-backdrop hide" />').appendTo('body'),
|
28
|
-
$baseModalAbs = $('<div class="modal modal-absolute hide" />').appendTo('body'),
|
29
|
-
$baseBackdropAbs = $('<div class="modal-backdrop modal-absolute hide" />').appendTo('body');
|
30
|
-
|
31
|
-
baseModalzIndex = +$baseModal.css('z-index'),
|
32
|
-
baseModalAbszIndex = +$baseModalAbs.css('z-index'),
|
33
|
-
baseBackdropzIndex = +$baseBackdrop.css('z-index'),
|
34
|
-
baseBackdropAbszIndex = +$baseBackdropAbs.css('z-index'),
|
35
|
-
zIndexFactor = baseModalzIndex - baseBackdropzIndex;
|
36
|
-
|
37
|
-
$baseModal.remove();
|
38
|
-
$baseBackdrop.remove();
|
39
|
-
$baseModalAbs.remove();
|
40
|
-
$baseBackdropAbs.remove();
|
41
|
-
$baseBackdrop = $baseModal = $baseModalAbs = $baseBackdrop = null;
|
42
|
-
});
|
43
|
-
|
44
23
|
/* MODAL MANAGER CLASS DEFINITION
|
45
24
|
* ====================== */
|
46
25
|
|
@@ -48,61 +27,44 @@
|
|
48
27
|
this.init(element, options);
|
49
28
|
}
|
50
29
|
|
51
|
-
window.ModalManager = ModalManager;
|
52
|
-
|
53
30
|
ModalManager.prototype = {
|
54
31
|
|
55
32
|
constructor: ModalManager,
|
56
33
|
|
57
|
-
init: function(element, options){
|
34
|
+
init: function (element, options) {
|
58
35
|
this.$element = $(element);
|
59
36
|
this.options = $.extend({}, $.fn.modalmanager.defaults, this.$element.data(), typeof options == 'object' && options);
|
60
37
|
this.stack = [];
|
61
|
-
this.
|
62
|
-
|
63
|
-
this.$container = this.$element.find('.modal-container');
|
64
|
-
this.$parent = this.$container.length ? this.$container : this.$element;
|
65
|
-
|
66
|
-
this.$element.toggleClass('has-modal-container', !!this.$container.length);
|
38
|
+
this.backdropCount = 0;
|
67
39
|
},
|
68
40
|
|
69
|
-
createModal: function(element, options){
|
41
|
+
createModal: function (element, options) {
|
70
42
|
$(element).modal($.extend({ manager: this }, options));
|
71
43
|
},
|
72
44
|
|
73
|
-
appendModal: function(modal){
|
45
|
+
appendModal: function (modal) {
|
74
46
|
this.stack.push(modal);
|
75
47
|
|
76
48
|
var that = this;
|
77
49
|
|
78
|
-
modal.$element.on('show.modalmanager',
|
50
|
+
modal.$element.on('show.modalmanager', targetIsSelf(function (e) {
|
79
51
|
modal.isShown = true;
|
80
52
|
|
53
|
+
var transition = $.support.transition && modal.$element.hasClass('fade');
|
54
|
+
|
81
55
|
that.$element
|
82
56
|
.toggleClass('modal-open', that.hasOpenModal())
|
83
57
|
.toggleClass('page-overflow', $(window).height() < that.$element.height());
|
58
|
+
|
59
|
+
modal.$parent = modal.$element.parent();
|
84
60
|
|
61
|
+
modal.$container = that.createContainer(modal);
|
85
62
|
|
86
|
-
|
87
|
-
(that.isBody ? $(window) : that.$element));
|
88
|
-
|
89
|
-
var modalOverflow = $(window).height() < modal.$element.height() || modal.options.modalOverflow;
|
63
|
+
modal.$element.appendTo(modal.$container);
|
90
64
|
|
91
|
-
modal.$element
|
92
|
-
.toggleClass('modal-overflow', modalOverflow)
|
93
|
-
.css('margin-top', $scrollElement.scrollTop() - (modalOverflow ? 0 : modal.$element.height()/2))
|
94
|
-
.css('z-index', (!that.isBody ? baseModalAbszIndex : baseModalzIndex)
|
95
|
-
+ (zIndexFactor * that.getIndexOfModal(modal)));
|
65
|
+
var modalOverflow = $(window).height() < modal.$element.height() || modal.options.modalOverflow;
|
96
66
|
|
97
67
|
that.backdrop(modal, function () {
|
98
|
-
var transition = $.support.transition && modal.$element.hasClass('fade')
|
99
|
-
|
100
|
-
|
101
|
-
modal.$parent = modal.$element.parent();
|
102
|
-
if (!modal.$parent.length || modal.$parent[0] !== that.$parent[0]) {
|
103
|
-
modal.$element.detach().appendTo(that.$parent);
|
104
|
-
}
|
105
|
-
|
106
68
|
|
107
69
|
modal.$element.show();
|
108
70
|
|
@@ -113,11 +75,12 @@
|
|
113
75
|
}
|
114
76
|
|
115
77
|
modal.$element
|
78
|
+
.toggleClass('modal-overflow', modalOverflow)
|
79
|
+
.css('margin-top', modalOverflow ? 0 : 0 - modal.$element.height()/2)
|
116
80
|
.addClass('in')
|
117
|
-
.attr('aria-hidden', false)
|
118
|
-
.toggleClass('modal-absolute', !that.isBody);
|
81
|
+
.attr('aria-hidden', false);
|
119
82
|
|
120
|
-
var complete = function(){
|
83
|
+
var complete = function () {
|
121
84
|
that.setFocus();
|
122
85
|
modal.$element.triggerHandler('shown');
|
123
86
|
}
|
@@ -128,12 +91,13 @@
|
|
128
91
|
});
|
129
92
|
}));
|
130
93
|
|
131
|
-
modal.$element.on('hidden.modalmanager',
|
94
|
+
modal.$element.on('hidden.modalmanager', targetIsSelf(function (e) {
|
95
|
+
|
132
96
|
that.backdrop(modal);
|
133
97
|
|
134
98
|
if (modal.$backdrop){
|
135
99
|
$.support.transition && modal.$element.hasClass('fade')?
|
136
|
-
modal.$backdrop.one($.support.transition.end, function(){ that.destroyModal(modal) }) :
|
100
|
+
modal.$backdrop.one($.support.transition.end, function () { that.destroyModal(modal) }) :
|
137
101
|
that.destroyModal(modal);
|
138
102
|
} else {
|
139
103
|
that.destroyModal(modal);
|
@@ -141,25 +105,33 @@
|
|
141
105
|
|
142
106
|
}));
|
143
107
|
|
144
|
-
modal.$element.on('destroy.modalmanager',
|
108
|
+
modal.$element.on('destroy.modalmanager', targetIsSelf(function (e) {
|
145
109
|
that.removeModal(modal);
|
146
110
|
}));
|
147
111
|
},
|
148
112
|
|
149
|
-
destroyModal: function(modal){
|
113
|
+
destroyModal: function (modal) {
|
114
|
+
|
150
115
|
modal.destroy();
|
116
|
+
|
151
117
|
var hasOpenModal = this.hasOpenModal();
|
118
|
+
|
152
119
|
this.$element.toggleClass('modal-open', hasOpenModal);
|
120
|
+
|
153
121
|
if (!hasOpenModal){
|
154
122
|
this.$element.removeClass('page-overflow');
|
155
123
|
}
|
124
|
+
|
125
|
+
this.removeContainer(modal);
|
126
|
+
|
156
127
|
this.setFocus();
|
157
128
|
},
|
158
129
|
|
159
|
-
hasOpenModal: function(){
|
130
|
+
hasOpenModal: function () {
|
160
131
|
for (var i = 0; i < this.stack.length; i++){
|
161
132
|
if (this.stack[i].isShown) return true;
|
162
133
|
}
|
134
|
+
|
163
135
|
return false;
|
164
136
|
},
|
165
137
|
|
@@ -170,20 +142,23 @@
|
|
170
142
|
if (this.stack[i].isShown) topModal = this.stack[i];
|
171
143
|
}
|
172
144
|
|
173
|
-
|
145
|
+
if (!topModal) return;
|
146
|
+
|
147
|
+
topModal.focus();
|
148
|
+
|
174
149
|
},
|
175
150
|
|
176
|
-
removeModal: function(modal){
|
151
|
+
removeModal: function (modal) {
|
177
152
|
modal.$element.off('.modalmanager');
|
178
153
|
if (modal.$backdrop) this.removeBackdrop.call(modal);
|
179
154
|
this.stack.splice(this.getIndexOfModal(modal), 1);
|
180
155
|
},
|
181
156
|
|
182
|
-
getModalAt: function(index){
|
157
|
+
getModalAt: function (index) {
|
183
158
|
return this.stack[index];
|
184
159
|
},
|
185
160
|
|
186
|
-
getIndexOfModal: function(modal){
|
161
|
+
getIndexOfModal: function (modal) {
|
187
162
|
for (var i = 0; i < this.stack.length; i++){
|
188
163
|
if (modal === this.stack[i]) return i;
|
189
164
|
}
|
@@ -194,13 +169,13 @@
|
|
194
169
|
modal.$backdrop = null;
|
195
170
|
},
|
196
171
|
|
197
|
-
createBackdrop: function(animate){
|
172
|
+
createBackdrop: function (animate) {
|
198
173
|
var $backdrop;
|
199
174
|
|
200
175
|
if (!this.isLoading) {
|
201
|
-
$backdrop =
|
202
|
-
.appendTo(this.$
|
203
|
-
|
176
|
+
$backdrop = $('<div class="modal-backdrop ' + animate + '" />')
|
177
|
+
.appendTo(this.$element);
|
178
|
+
|
204
179
|
} else {
|
205
180
|
$backdrop = this.$loading;
|
206
181
|
$backdrop.off('.modalmanager');
|
@@ -212,9 +187,37 @@
|
|
212
187
|
return $backdrop
|
213
188
|
},
|
214
189
|
|
190
|
+
removeContainer: function (modal) {
|
191
|
+
modal.$container.remove();
|
192
|
+
modal.$container = null;
|
193
|
+
},
|
194
|
+
|
195
|
+
createContainer: function (modal) {
|
196
|
+
var $container;
|
197
|
+
|
198
|
+
$container = $('<div class="modal-scrollable">')
|
199
|
+
.css('z-index', getzIndex( 'modal',
|
200
|
+
modal ? this.getIndexOfModal(modal) : this.stack.length ))
|
201
|
+
.appendTo(this.$element);
|
202
|
+
|
203
|
+
if (modal && modal.options.backdrop != 'static') {
|
204
|
+
$container.on('click.modal', targetIsSelf(function (e) {
|
205
|
+
modal.hide();
|
206
|
+
}));
|
207
|
+
} else if (modal) {
|
208
|
+
$container.on('click.modal', targetIsSelf(function (e) {
|
209
|
+
modal.attention();
|
210
|
+
}));
|
211
|
+
}
|
212
|
+
|
213
|
+
return $container;
|
214
|
+
|
215
|
+
},
|
216
|
+
|
215
217
|
backdrop: function (modal, callback) {
|
216
218
|
var animate = modal.$element.hasClass('fade') ? 'fade' : '',
|
217
|
-
showBackdrop =
|
219
|
+
showBackdrop = modal.options.backdrop &&
|
220
|
+
this.backdropCount < this.options.backdropLimit;
|
218
221
|
|
219
222
|
if (modal.isShown && showBackdrop) {
|
220
223
|
var doAnimate = $.support.transition && animate && !this.isLoading;
|
@@ -222,29 +225,27 @@
|
|
222
225
|
|
223
226
|
modal.$backdrop = this.createBackdrop(animate);
|
224
227
|
|
225
|
-
modal.$backdrop.css('z-index',
|
226
|
-
(!this.isBody ? baseBackdropAbszIndex : baseBackdropzIndex)
|
227
|
-
+ (zIndexFactor * this.getIndexOfModal(modal)));
|
228
|
-
|
229
|
-
|
230
|
-
if (modal.options.backdrop != 'static') {
|
231
|
-
modal.$backdrop.on('click.modal', $.proxy(modal.hide, modal));
|
232
|
-
}
|
228
|
+
modal.$backdrop.css('z-index', getzIndex( 'backdrop', this.getIndexOfModal(modal) ))
|
233
229
|
|
234
230
|
if (doAnimate) modal.$backdrop[0].offsetWidth // force reflow
|
235
231
|
|
236
232
|
modal.$backdrop.addClass('in')
|
237
233
|
|
234
|
+
this.backdropCount += 1;
|
235
|
+
|
238
236
|
doAnimate ?
|
239
|
-
|
240
|
-
|
237
|
+
modal.$backdrop.one($.support.transition.end, callback) :
|
238
|
+
callback();
|
241
239
|
|
242
240
|
} else if (!modal.isShown && modal.$backdrop) {
|
243
241
|
modal.$backdrop.removeClass('in');
|
244
242
|
|
243
|
+
this.backdropCount -= 1;
|
244
|
+
|
245
245
|
var that = this;
|
246
|
+
|
246
247
|
$.support.transition && modal.$element.hasClass('fade')?
|
247
|
-
modal.$backdrop.one($.support.transition.end, function(){ that.removeBackdrop(modal) }) :
|
248
|
+
modal.$backdrop.one($.support.transition.end, function () { that.removeBackdrop(modal) }) :
|
248
249
|
that.removeBackdrop(modal);
|
249
250
|
|
250
251
|
} else if (callback) {
|
@@ -252,16 +253,18 @@
|
|
252
253
|
}
|
253
254
|
},
|
254
255
|
|
255
|
-
removeLoading: function(){
|
256
|
+
removeLoading: function () {
|
256
257
|
this.$loading && this.$loading.remove();
|
257
258
|
this.$loading = null;
|
258
259
|
this.isLoading = false;
|
259
260
|
},
|
260
261
|
|
261
|
-
loading: function(callback){
|
262
|
-
callback = callback || function(){ };
|
262
|
+
loading: function (callback) {
|
263
|
+
callback = callback || function () { };
|
263
264
|
|
264
|
-
this.$element
|
265
|
+
this.$element
|
266
|
+
.toggleClass('modal-open', !this.isLoading || this.hasOpenModal())
|
267
|
+
.toggleClass('page-overflow', $(window).height() < this.$element.height());
|
265
268
|
|
266
269
|
if (!this.isLoading) {
|
267
270
|
|
@@ -270,22 +273,18 @@
|
|
270
273
|
this.$loading[0].offsetWidth // force reflow
|
271
274
|
|
272
275
|
this.$loading
|
273
|
-
.css('z-index',
|
274
|
-
(!this.isBody ? baseBackdropAbszIndex : baseBackdropzIndex)
|
275
|
-
+ (zIndexFactor * this.stack.length))
|
276
|
-
.on('click.modalmanager', $.proxy(this.loading, this))
|
276
|
+
.css('z-index', getzIndex('backdrop', this.stack.length))
|
277
277
|
.addClass('in');
|
278
278
|
|
279
|
-
var $
|
280
|
-
|
281
|
-
|
282
|
-
this.$spinner = $('<div class="modal-spinner fade">')
|
283
|
-
.append(this.options.spinner)
|
284
|
-
.css('z-index', this.$loading.css('z-index'))
|
285
|
-
.css('margin-top', $scrollElement.scrollTop())
|
286
|
-
.appendTo(this.$parent)
|
279
|
+
var $spinner = $(this.options.spinner)
|
280
|
+
.css('z-index', getzIndex('modal', this.stack.length))
|
281
|
+
.appendTo(this.$element)
|
287
282
|
.addClass('in');
|
288
283
|
|
284
|
+
this.$spinner = $(this.createContainer())
|
285
|
+
.append($spinner)
|
286
|
+
.on('click.modalmanager', $.proxy(this.loading, this));
|
287
|
+
|
289
288
|
this.isLoading = true;
|
290
289
|
|
291
290
|
$.support.transition ?
|
@@ -299,28 +298,51 @@
|
|
299
298
|
|
300
299
|
var that = this;
|
301
300
|
$.support.transition ?
|
302
|
-
this.$loading.one($.support.transition.end, function(){ that.removeLoading() }) :
|
301
|
+
this.$loading.one($.support.transition.end, function () { that.removeLoading() }) :
|
303
302
|
that.removeLoading();
|
304
303
|
|
305
304
|
} else if (callback) {
|
306
305
|
callback(this.isLoading);
|
307
306
|
}
|
308
|
-
}
|
309
|
-
|
310
|
-
toggleLoading: function(callback){ this.loading(callback); }
|
307
|
+
}
|
311
308
|
}
|
312
309
|
|
313
310
|
/* PRIVATE METHODS
|
314
311
|
* ======================= */
|
315
312
|
|
313
|
+
// computes and caches the zindexes
|
314
|
+
var getzIndex = (function () {
|
315
|
+
var zIndexFactor,
|
316
|
+
baseIndex = {};
|
317
|
+
|
318
|
+
return function (type, pos) {
|
319
|
+
|
320
|
+
if (typeof zIndexFactor === 'undefined'){
|
321
|
+
var $baseModal = $('<div class="modal hide" />').appendTo('body'),
|
322
|
+
$baseBackdrop = $('<div class="modal-backdrop hide" />').appendTo('body');
|
323
|
+
|
324
|
+
baseIndex['modal'] = +$baseModal.css('z-index'),
|
325
|
+
baseIndex['backdrop'] = +$baseBackdrop.css('z-index'),
|
326
|
+
zIndexFactor = baseIndex['modal'] - baseIndex['backdrop'];
|
327
|
+
|
328
|
+
$baseModal.remove();
|
329
|
+
$baseBackdrop.remove();
|
330
|
+
$baseBackdrop = $baseModal = null;
|
331
|
+
}
|
332
|
+
|
333
|
+
return baseIndex[type] + (zIndexFactor * pos);
|
334
|
+
|
335
|
+
}
|
336
|
+
}())
|
337
|
+
|
316
338
|
// make sure the event target is the modal itself in order to prevent
|
317
339
|
// other components such as tabsfrom triggering the modal manager.
|
318
340
|
// if Boostsrap namespaced events, this would not be needed.
|
319
|
-
function
|
320
|
-
return function(e){
|
341
|
+
function targetIsSelf(callback){
|
342
|
+
return function (e) {
|
321
343
|
if (this === e.target){
|
322
|
-
callback.apply(this, arguments);
|
323
|
-
}
|
344
|
+
return callback.apply(this, arguments);
|
345
|
+
}
|
324
346
|
}
|
325
347
|
}
|
326
348
|
|
@@ -330,24 +352,19 @@
|
|
330
352
|
|
331
353
|
$.fn.modalmanager = function (option) {
|
332
354
|
return this.each(function () {
|
333
|
-
var $this = $(this)
|
334
|
-
|
355
|
+
var $this = $(this),
|
356
|
+
data = $this.data('modalmanager');
|
335
357
|
|
336
|
-
if (!data) $this.data('modalmanager', (data = new ModalManager(this,
|
337
|
-
if (typeof option
|
358
|
+
if (!data) $this.data('modalmanager', (data = new ModalManager(this, option)))
|
359
|
+
if (typeof option === 'string') data[option]()
|
338
360
|
})
|
339
361
|
}
|
340
362
|
|
341
363
|
$.fn.modalmanager.defaults = {
|
342
|
-
|
343
|
-
spinner: '<div class="loading-spinner" style="width: 200px; margin-left: -100px;"><div class="progress progress-striped active"><div class="bar" style="width: 100%;"></div></div></div>'
|
364
|
+
backdropLimit: 999,
|
365
|
+
spinner: '<div class="loading-spinner fade" style="width: 200px; margin-left: -100px;"><div class="progress progress-striped active"><div class="bar" style="width: 100%;"></div></div></div>'
|
344
366
|
}
|
345
367
|
|
346
368
|
$.fn.modalmanager.Constructor = ModalManager
|
347
369
|
|
348
|
-
// Create a default global modal manager
|
349
|
-
$(function(){
|
350
|
-
window.GlobalModalManager = new ModalManager('body');
|
351
|
-
})
|
352
|
-
|
353
370
|
}(jQuery);
|
@@ -7,7 +7,7 @@
|
|
7
7
|
*
|
8
8
|
*/
|
9
9
|
|
10
|
-
.modal-open
|
10
|
+
.modal-open {
|
11
11
|
position: relative; /* safari */
|
12
12
|
overflow: hidden;
|
13
13
|
}
|
@@ -17,7 +17,7 @@
|
|
17
17
|
.modal-open.page-overflow .page-container,
|
18
18
|
.modal-open.page-overflow .page-container .navbar-fixed-top,
|
19
19
|
.modal-open.page-overflow .page-container .navbar-fixed-bottom,
|
20
|
-
.modal-open.page-overflow .modal-
|
20
|
+
.modal-open.page-overflow .modal-scrollable {
|
21
21
|
overflow-y: scroll;
|
22
22
|
}
|
23
23
|
|
@@ -28,19 +28,14 @@
|
|
28
28
|
}
|
29
29
|
}
|
30
30
|
|
31
|
-
|
32
|
-
|
31
|
+
|
32
|
+
.modal-scrollable {
|
33
33
|
position: fixed;
|
34
34
|
top: 0;
|
35
35
|
bottom: 0;
|
36
36
|
left: 0;
|
37
37
|
right: 0;
|
38
38
|
overflow: auto;
|
39
|
-
z-index: 9999;
|
40
|
-
}
|
41
|
-
|
42
|
-
.modal-open > .modal-container {
|
43
|
-
display: block;
|
44
39
|
}
|
45
40
|
|
46
41
|
.modal {
|
@@ -83,12 +78,6 @@
|
|
83
78
|
border-radius: 6px;
|
84
79
|
}
|
85
80
|
|
86
|
-
.modal-spinner {
|
87
|
-
position: absolute;
|
88
|
-
top: 50%;
|
89
|
-
left: 50%;
|
90
|
-
}
|
91
|
-
|
92
81
|
.modal-backdrop.modal-absolute{
|
93
82
|
position: absolute;
|
94
83
|
z-index: 940;
|
@@ -110,7 +99,6 @@
|
|
110
99
|
|
111
100
|
.modal-overflow.modal {
|
112
101
|
top: 1%;
|
113
|
-
/*bottom: 1%;*/
|
114
102
|
}
|
115
103
|
|
116
104
|
.modal-overflow.modal.fade {
|
@@ -119,7 +107,6 @@
|
|
119
107
|
|
120
108
|
.modal-overflow.modal.fade.in {
|
121
109
|
top: 1%;
|
122
|
-
/*bottom: 1%;*/
|
123
110
|
}
|
124
111
|
|
125
112
|
.modal-overflow .modal-body {
|
@@ -127,25 +114,6 @@
|
|
127
114
|
-webkit-overflow-scrolling: touch;
|
128
115
|
}
|
129
116
|
|
130
|
-
/*.modal-overflow .modal-body {
|
131
|
-
position: absolute;
|
132
|
-
top: 0;
|
133
|
-
bottom: 0;
|
134
|
-
right: 0;
|
135
|
-
left: 0;
|
136
|
-
margin-top: 48px; // header height
|
137
|
-
margin-bottom: 60px; // footer height
|
138
|
-
overflow: auto;
|
139
|
-
}
|
140
|
-
|
141
|
-
|
142
|
-
.modal-overflow .modal-footer {
|
143
|
-
position: absolute;
|
144
|
-
bottom: 0;
|
145
|
-
right: 0;
|
146
|
-
left: 0;
|
147
|
-
}*/
|
148
|
-
|
149
117
|
/* Responsive */
|
150
118
|
|
151
119
|
@media (min-width: 1200px) {
|
@@ -197,3 +165,51 @@
|
|
197
165
|
left: 50%;
|
198
166
|
margin: -12px 0 0 -12px;
|
199
167
|
}
|
168
|
+
|
169
|
+
/*
|
170
|
+
Animate.css - http://daneden.me/animate
|
171
|
+
Licensed under the ☺ license (http://licence.visualidiot.com/)
|
172
|
+
|
173
|
+
Copyright (c) 2012 Dan Eden*/
|
174
|
+
|
175
|
+
.animated {
|
176
|
+
-webkit-animation-duration: 1s;
|
177
|
+
-moz-animation-duration: 1s;
|
178
|
+
-o-animation-duration: 1s;
|
179
|
+
animation-duration: 1s;
|
180
|
+
-webkit-animation-fill-mode: both;
|
181
|
+
-moz-animation-fill-mode: both;
|
182
|
+
-o-animation-fill-mode: both;
|
183
|
+
animation-fill-mode: both;
|
184
|
+
}
|
185
|
+
|
186
|
+
@-webkit-keyframes shake {
|
187
|
+
0%, 100% {-webkit-transform: translateX(0);}
|
188
|
+
10%, 30%, 50%, 70%, 90% {-webkit-transform: translateX(-10px);}
|
189
|
+
20%, 40%, 60%, 80% {-webkit-transform: translateX(10px);}
|
190
|
+
}
|
191
|
+
|
192
|
+
@-moz-keyframes shake {
|
193
|
+
0%, 100% {-moz-transform: translateX(0);}
|
194
|
+
10%, 30%, 50%, 70%, 90% {-moz-transform: translateX(-10px);}
|
195
|
+
20%, 40%, 60%, 80% {-moz-transform: translateX(10px);}
|
196
|
+
}
|
197
|
+
|
198
|
+
@-o-keyframes shake {
|
199
|
+
0%, 100% {-o-transform: translateX(0);}
|
200
|
+
10%, 30%, 50%, 70%, 90% {-o-transform: translateX(-10px);}
|
201
|
+
20%, 40%, 60%, 80% {-o-transform: translateX(10px);}
|
202
|
+
}
|
203
|
+
|
204
|
+
@keyframes shake {
|
205
|
+
0%, 100% {transform: translateX(0);}
|
206
|
+
10%, 30%, 50%, 70%, 90% {transform: translateX(-10px);}
|
207
|
+
20%, 40%, 60%, 80% {transform: translateX(10px);}
|
208
|
+
}
|
209
|
+
|
210
|
+
.shake {
|
211
|
+
-webkit-animation-name: shake;
|
212
|
+
-moz-animation-name: shake;
|
213
|
+
-o-animation-name: shake;
|
214
|
+
animation-name: shake;
|
215
|
+
}
|
@@ -3,7 +3,7 @@
|
|
3
3
|
<%- alert_class = type == :notice ? 'info' : type %>
|
4
4
|
<% if flash[type] %>
|
5
5
|
<div class="alert alert-<%=alert_class%>"><%= flash[type] %>
|
6
|
-
<a class="close" data-dismiss="alert" href="#"
|
6
|
+
<a class="close" data-dismiss="alert" href="#">×</a>
|
7
7
|
</div>
|
8
8
|
<% end %>
|
9
9
|
<% end %>
|
@@ -1,5 +1,5 @@
|
|
1
1
|
<% if @response.total <= spell_check_max and @response.spelling.words.size > 0 %>
|
2
2
|
<div id="spell">
|
3
|
-
<h4 class="suggest"><
|
3
|
+
<h4 class="suggest"><em><%= t('blacklight.did_you_mean', :options => @response.spelling.words.map { |word| link_to_query(word) }.join(" #{t('blacklight.or')} ")).html_safe %></em></h4>
|
4
4
|
</div>
|
5
5
|
<% end %>
|
@@ -15,7 +15,7 @@
|
|
15
15
|
</li>
|
16
16
|
<% if (@document.respond_to?(:export_as_mla_citation_txt) || @document.respond_to?(:export_as_apa_citation_txt)) %>
|
17
17
|
<li class="cite">
|
18
|
-
<%= link_to t('blacklight.tools.cite'), citation_catalog_path(:id => @document), {:id => 'citeLink', :
|
18
|
+
<%= link_to t('blacklight.tools.cite'), citation_catalog_path(:id => @document), {:id => 'citeLink', :class => 'lightboxLink'} %>
|
19
19
|
</li>
|
20
20
|
<% end %>
|
21
21
|
<% if @document.export_formats.keys.include?( :refworks_marc_txt ) %>
|
@@ -30,18 +30,18 @@
|
|
30
30
|
<% end %>
|
31
31
|
<% if @document.respond_to?( :to_email_text ) %>
|
32
32
|
<li class="email">
|
33
|
-
<%= link_to t('blacklight.tools.email'), email_catalog_path(:id => @document), {:id => 'emailLink', :
|
33
|
+
<%= link_to t('blacklight.tools.email'), email_catalog_path(:id => @document), {:id => 'emailLink', :class => 'lightboxLink'} %>
|
34
34
|
</li>
|
35
35
|
<%- end -%>
|
36
36
|
<%- if @document.respond_to?( :to_sms_text ) -%>
|
37
37
|
<li class="sms">
|
38
|
-
<%= link_to t('blacklight.tools.sms'), sms_catalog_path(:id => @document), {:id => 'smsLink', :
|
38
|
+
<%= link_to t('blacklight.tools.sms'), sms_catalog_path(:id => @document), {:id => 'smsLink', :class => 'lightboxLink'} %>
|
39
39
|
</li>
|
40
40
|
<%- end -%>
|
41
41
|
|
42
42
|
<% if @document.respond_to?(:to_marc) %>
|
43
43
|
<li class="librarian_view">
|
44
|
-
<%= link_to t('blacklight.tools.librarian_view'), librarian_view_catalog_path(@document), {:id => 'librarianLink', :
|
44
|
+
<%= link_to t('blacklight.tools.librarian_view'), librarian_view_catalog_path(@document), {:id => 'librarianLink', :class => 'lightboxLink'} %>
|
45
45
|
</li>
|
46
46
|
<% end %>
|
47
|
-
</ul>
|
47
|
+
</ul>
|
@@ -2,14 +2,16 @@
|
|
2
2
|
<html lang="en">
|
3
3
|
<head>
|
4
4
|
<meta charset="utf-8">
|
5
|
-
<meta http-equiv="Content-Type" content="text/html
|
5
|
+
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
|
6
6
|
|
7
7
|
<!-- Mobile viewport optimization h5bp.com/ad -->
|
8
8
|
<meta name="HandheldFriendly" content="True">
|
9
9
|
<meta name="viewport" content="width=device-width,initial-scale=1.0">
|
10
10
|
|
11
11
|
<!-- Mobile IE allows us to activate ClearType technology for smoothing fonts for easy reading -->
|
12
|
-
|
12
|
+
<!--[if IEMobile]>
|
13
|
+
<meta http-equiv="cleartype" content="on">
|
14
|
+
<![endif]-->
|
13
15
|
|
14
16
|
<title><%= h(@page_title || application_name) %></title>
|
15
17
|
<link href="<%= opensearch_catalog_path(:format => 'xml', :only_path => false) %>" title="<%= application_name%>" type="application/opensearchdescription+xml" rel="search"/>
|
@@ -40,7 +42,7 @@
|
|
40
42
|
</div>
|
41
43
|
<!-- /Top bar -->
|
42
44
|
<div class="row">
|
43
|
-
<div class="
|
45
|
+
<div class="span12">
|
44
46
|
<div id="main-flashes">
|
45
47
|
<%= render :partial=>'/flash_msg' %>
|
46
48
|
</div>
|
data/blacklight.gemspec
CHANGED
@@ -28,6 +28,6 @@ Gem::Specification.new do |s|
|
|
28
28
|
s.add_dependency "rsolr", "~> 1.0.6" # Library for interacting with rSolr.
|
29
29
|
s.add_dependency "kaminari", "~> 0.13" # the pagination (page 1,2,3, etc..) of our search results
|
30
30
|
s.add_dependency "sass-rails"
|
31
|
-
s.add_dependency "bootstrap-sass", "~> 2.
|
31
|
+
s.add_dependency "bootstrap-sass", "~> 2.2.0"
|
32
32
|
s.add_development_dependency "jettywrapper", ">= 1.2.0"
|
33
33
|
end
|
@@ -182,13 +182,13 @@ en:
|
|
182
182
|
title: 'Results navigation'
|
183
183
|
pagination_info:
|
184
184
|
no_items_found: 'No %{entry_name} found'
|
185
|
-
single_item_found: '<
|
185
|
+
single_item_found: '<strong>1</strong> to <strong>1</strong> of <strong>1</strong>'
|
186
186
|
pages:
|
187
|
-
one: '<
|
188
|
-
other: '<
|
187
|
+
one: '<strong>%{start_num}</strong> - <strong>%{end_num}</strong> of <strong>%{total_num}</strong>'
|
188
|
+
other: '<strong>%{start_num}</strong> - <strong>%{end_num}</strong> of <strong>%{total_num}</strong>'
|
189
189
|
entry_pagination_info:
|
190
|
-
one: '<
|
191
|
-
other: '<
|
190
|
+
one: '<strong>1 of 1</strong>'
|
191
|
+
other: '<strong>%{current}</strong> of <strong>%{total}</strong>'
|
192
192
|
documents:
|
193
193
|
counter: '%{counter}. '
|
194
194
|
facets:
|
data/lib/blacklight/catalog.rb
CHANGED
@@ -95,12 +95,16 @@ module Blacklight::Catalog
|
|
95
95
|
# citation action
|
96
96
|
def citation
|
97
97
|
@response, @documents = get_solr_response_for_field_values(SolrDocument.unique_key,params[:id])
|
98
|
+
respond_to do |format|
|
99
|
+
format.html
|
100
|
+
format.js { render :layout => false }
|
101
|
+
end
|
98
102
|
end
|
99
103
|
# grabs a bunch of documents to export to endnote
|
100
104
|
def endnote
|
101
105
|
@response, @documents = get_solr_response_for_field_values(SolrDocument.unique_key,params[:id])
|
102
106
|
respond_to do |format|
|
103
|
-
format.endnote :layout => false
|
107
|
+
format.endnote { render :layout => false }
|
104
108
|
end
|
105
109
|
end
|
106
110
|
|
data/test_support/bin/test.sh
CHANGED
@@ -43,7 +43,7 @@ describe CatalogHelper do
|
|
43
43
|
@response = mock_response :total => 1
|
44
44
|
|
45
45
|
html = render_pagination_info(@response, { :entry_name => 'entry_name' })
|
46
|
-
html.should == "<
|
46
|
+
html.should == "<strong>1</strong> to <strong>1</strong> of <strong>1</strong>"
|
47
47
|
html.html_safe?.should == true
|
48
48
|
end
|
49
49
|
|
@@ -51,7 +51,7 @@ describe CatalogHelper do
|
|
51
51
|
@response = mock_response :total => 7
|
52
52
|
|
53
53
|
html = render_pagination_info(@response, { :entry_name => 'entry_name' })
|
54
|
-
html.should == "<
|
54
|
+
html.should == "<strong>1</strong> - <strong>7</strong> of <strong>7</strong>"
|
55
55
|
html.html_safe?.should == true
|
56
56
|
end
|
57
57
|
|
@@ -59,7 +59,7 @@ describe CatalogHelper do
|
|
59
59
|
@response = mock_response :total => 15, :per_page => 10
|
60
60
|
|
61
61
|
html = render_pagination_info(@response, { :entry_name => 'entry_name' })
|
62
|
-
html.should == "<
|
62
|
+
html.should == "<strong>1</strong> - <strong>10</strong> of <strong>15</strong>"
|
63
63
|
html.html_safe?.should == true
|
64
64
|
end
|
65
65
|
|
@@ -67,7 +67,7 @@ describe CatalogHelper do
|
|
67
67
|
@response = mock_response :total => 47, :per_page => 10, :current_page => 2
|
68
68
|
|
69
69
|
html = render_pagination_info(@response, { :entry_name => 'entry_name' })
|
70
|
-
html.should == "<
|
70
|
+
html.should == "<strong>11</strong> - <strong>20</strong> of <strong>47</strong>"
|
71
71
|
html.html_safe?.should == true
|
72
72
|
end
|
73
73
|
|
@@ -75,7 +75,7 @@ describe CatalogHelper do
|
|
75
75
|
@response = mock_response :total => 47, :per_page => 10, :current_page => 5
|
76
76
|
|
77
77
|
html = render_pagination_info(@response, { :entry_name => 'entry_name' })
|
78
|
-
html.should == "<
|
78
|
+
html.should == "<strong>41</strong> - <strong>47</strong> of <strong>47</strong>"
|
79
79
|
html.html_safe?.should == true
|
80
80
|
end
|
81
81
|
|
metadata
CHANGED
@@ -1,8 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: blacklight
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 4.0.
|
5
|
-
prerelease:
|
4
|
+
version: 4.0.1
|
6
5
|
platform: ruby
|
7
6
|
authors:
|
8
7
|
- Jonathan Rochkind
|
@@ -17,12 +16,11 @@ authors:
|
|
17
16
|
autorequire:
|
18
17
|
bindir: bin
|
19
18
|
cert_chain: []
|
20
|
-
date: 2012-11
|
19
|
+
date: 2012-12-11 00:00:00.000000000 Z
|
21
20
|
dependencies:
|
22
21
|
- !ruby/object:Gem::Dependency
|
23
22
|
name: rails
|
24
23
|
requirement: !ruby/object:Gem::Requirement
|
25
|
-
none: false
|
26
24
|
requirements:
|
27
25
|
- - ~>
|
28
26
|
- !ruby/object:Gem::Version
|
@@ -30,7 +28,6 @@ dependencies:
|
|
30
28
|
type: :runtime
|
31
29
|
prerelease: false
|
32
30
|
version_requirements: !ruby/object:Gem::Requirement
|
33
|
-
none: false
|
34
31
|
requirements:
|
35
32
|
- - ~>
|
36
33
|
- !ruby/object:Gem::Version
|
@@ -38,7 +35,6 @@ dependencies:
|
|
38
35
|
- !ruby/object:Gem::Dependency
|
39
36
|
name: nokogiri
|
40
37
|
requirement: !ruby/object:Gem::Requirement
|
41
|
-
none: false
|
42
38
|
requirements:
|
43
39
|
- - ~>
|
44
40
|
- !ruby/object:Gem::Version
|
@@ -46,7 +42,6 @@ dependencies:
|
|
46
42
|
type: :runtime
|
47
43
|
prerelease: false
|
48
44
|
version_requirements: !ruby/object:Gem::Requirement
|
49
|
-
none: false
|
50
45
|
requirements:
|
51
46
|
- - ~>
|
52
47
|
- !ruby/object:Gem::Version
|
@@ -54,7 +49,6 @@ dependencies:
|
|
54
49
|
- !ruby/object:Gem::Dependency
|
55
50
|
name: marc
|
56
51
|
requirement: !ruby/object:Gem::Requirement
|
57
|
-
none: false
|
58
52
|
requirements:
|
59
53
|
- - ! '>='
|
60
54
|
- !ruby/object:Gem::Version
|
@@ -65,7 +59,6 @@ dependencies:
|
|
65
59
|
type: :runtime
|
66
60
|
prerelease: false
|
67
61
|
version_requirements: !ruby/object:Gem::Requirement
|
68
|
-
none: false
|
69
62
|
requirements:
|
70
63
|
- - ! '>='
|
71
64
|
- !ruby/object:Gem::Version
|
@@ -76,7 +69,6 @@ dependencies:
|
|
76
69
|
- !ruby/object:Gem::Dependency
|
77
70
|
name: rsolr
|
78
71
|
requirement: !ruby/object:Gem::Requirement
|
79
|
-
none: false
|
80
72
|
requirements:
|
81
73
|
- - ~>
|
82
74
|
- !ruby/object:Gem::Version
|
@@ -84,7 +76,6 @@ dependencies:
|
|
84
76
|
type: :runtime
|
85
77
|
prerelease: false
|
86
78
|
version_requirements: !ruby/object:Gem::Requirement
|
87
|
-
none: false
|
88
79
|
requirements:
|
89
80
|
- - ~>
|
90
81
|
- !ruby/object:Gem::Version
|
@@ -92,7 +83,6 @@ dependencies:
|
|
92
83
|
- !ruby/object:Gem::Dependency
|
93
84
|
name: kaminari
|
94
85
|
requirement: !ruby/object:Gem::Requirement
|
95
|
-
none: false
|
96
86
|
requirements:
|
97
87
|
- - ~>
|
98
88
|
- !ruby/object:Gem::Version
|
@@ -100,7 +90,6 @@ dependencies:
|
|
100
90
|
type: :runtime
|
101
91
|
prerelease: false
|
102
92
|
version_requirements: !ruby/object:Gem::Requirement
|
103
|
-
none: false
|
104
93
|
requirements:
|
105
94
|
- - ~>
|
106
95
|
- !ruby/object:Gem::Version
|
@@ -108,7 +97,6 @@ dependencies:
|
|
108
97
|
- !ruby/object:Gem::Dependency
|
109
98
|
name: sass-rails
|
110
99
|
requirement: !ruby/object:Gem::Requirement
|
111
|
-
none: false
|
112
100
|
requirements:
|
113
101
|
- - ! '>='
|
114
102
|
- !ruby/object:Gem::Version
|
@@ -116,7 +104,6 @@ dependencies:
|
|
116
104
|
type: :runtime
|
117
105
|
prerelease: false
|
118
106
|
version_requirements: !ruby/object:Gem::Requirement
|
119
|
-
none: false
|
120
107
|
requirements:
|
121
108
|
- - ! '>='
|
122
109
|
- !ruby/object:Gem::Version
|
@@ -124,23 +111,20 @@ dependencies:
|
|
124
111
|
- !ruby/object:Gem::Dependency
|
125
112
|
name: bootstrap-sass
|
126
113
|
requirement: !ruby/object:Gem::Requirement
|
127
|
-
none: false
|
128
114
|
requirements:
|
129
115
|
- - ~>
|
130
116
|
- !ruby/object:Gem::Version
|
131
|
-
version: 2.
|
117
|
+
version: 2.2.0
|
132
118
|
type: :runtime
|
133
119
|
prerelease: false
|
134
120
|
version_requirements: !ruby/object:Gem::Requirement
|
135
|
-
none: false
|
136
121
|
requirements:
|
137
122
|
- - ~>
|
138
123
|
- !ruby/object:Gem::Version
|
139
|
-
version: 2.
|
124
|
+
version: 2.2.0
|
140
125
|
- !ruby/object:Gem::Dependency
|
141
126
|
name: jettywrapper
|
142
127
|
requirement: !ruby/object:Gem::Requirement
|
143
|
-
none: false
|
144
128
|
requirements:
|
145
129
|
- - ! '>='
|
146
130
|
- !ruby/object:Gem::Version
|
@@ -148,7 +132,6 @@ dependencies:
|
|
148
132
|
type: :development
|
149
133
|
prerelease: false
|
150
134
|
version_requirements: !ruby/object:Gem::Requirement
|
151
|
-
none: false
|
152
135
|
requirements:
|
153
136
|
- - ! '>='
|
154
137
|
- !ruby/object:Gem::Version
|
@@ -454,33 +437,27 @@ files:
|
|
454
437
|
- test_support/spec/views/catalog/index.atom.builder_spec.rb
|
455
438
|
homepage: http://projectblacklight.org/
|
456
439
|
licenses: []
|
440
|
+
metadata: {}
|
457
441
|
post_install_message:
|
458
442
|
rdoc_options: []
|
459
443
|
require_paths:
|
460
444
|
- lib
|
461
445
|
required_ruby_version: !ruby/object:Gem::Requirement
|
462
|
-
none: false
|
463
446
|
requirements:
|
464
447
|
- - ! '>='
|
465
448
|
- !ruby/object:Gem::Version
|
466
449
|
version: '0'
|
467
|
-
segments:
|
468
|
-
- 0
|
469
|
-
hash: 2075279285300653487
|
470
450
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
471
|
-
none: false
|
472
451
|
requirements:
|
473
452
|
- - ! '>='
|
474
453
|
- !ruby/object:Gem::Version
|
475
454
|
version: '0'
|
476
|
-
segments:
|
477
|
-
- 0
|
478
|
-
hash: 2075279285300653487
|
479
455
|
requirements: []
|
480
456
|
rubyforge_project: blacklight
|
481
|
-
rubygems_version:
|
457
|
+
rubygems_version: 2.0.0.preview2
|
482
458
|
signing_key:
|
483
|
-
specification_version:
|
459
|
+
specification_version: 4
|
484
460
|
summary: Blacklight provides a discovery interface for any Solr (http://lucene.apache.org/solr)
|
485
461
|
index.
|
486
462
|
test_files: []
|
463
|
+
has_rdoc:
|