blacklight 3.2.2 → 3.3.0
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.
- data/.gitignore +1 -0
- data/VERSION +1 -1
- data/app/assets/javascripts/blacklight/blacklight.js +2 -2
- data/app/assets/stylesheets/blacklight/blacklight.css.scss +1 -1
- data/app/assets/stylesheets/blacklight/grids/_susy.css.scss +1 -1
- data/app/helpers/blacklight/blacklight_helper_behavior.rb +7 -7
- data/app/helpers/blacklight/facets_helper_behavior.rb +3 -1
- data/app/helpers/blacklight/render_constraints_helper_behavior.rb +2 -2
- data/app/helpers/blacklight/search_history_constraints_helper_behavior.rb +1 -1
- data/app/views/catalog/_constraints_element.html.erb +1 -1
- data/app/views/catalog/_home_text.html.erb +3 -3
- data/app/views/search_history/index.html.erb +9 -5
- data/blacklight.gemspec +3 -2
- data/lib/blacklight/configurable.rb +1 -1
- data/lib/blacklight/solr_helper.rb +2 -0
- data/lib/generators/blacklight/blacklight_generator.rb +4 -1
- data/lib/generators/blacklight/templates/catalog_controller.rb +6 -0
- data/lib/generators/blacklight/templates/config/compass.rb +2 -0
- data/test_support/bin/test.sh +2 -1
- data/test_support/spec/helpers/blacklight_helper_spec.rb +40 -1
- data/test_support/spec/helpers/facets_helper_spec.rb +15 -2
- data/test_support/spec/helpers/render_constraints_helper_spec.rb +30 -0
- data/test_support/spec/lib/blacklight_configurable_spec.rb +13 -0
- data/test_support/spec/lib/blacklight_configuration_spec.rb +6 -0
- data/test_support/spec/lib/solr_helper_spec.rb +8 -0
- data/test_support/spec/views/catalog/_constraints_element.html.erb_spec.rb +6 -0
- data/test_support/spec/views/catalog/_facets.html.erb_spec.rb +1 -1
- data/test_support/spec/views/catalog/index.atom.builder_spec.rb +9 -3
- metadata +41 -30
- data/app/assets/stylesheets/blacklight/grids/_susy_framework.css.scss +0 -228
- data/lib/generators/blacklight/templates/config/sass.rb +0 -4
data/.gitignore
CHANGED
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
3.
|
1
|
+
3.3.0
|
@@ -69,7 +69,7 @@ $(document).ready(function() {
|
|
69
69
|
//page load, and later called on document ready.
|
70
70
|
(function($) {
|
71
71
|
Blacklight.do_search_context_behavior = function() {
|
72
|
-
$('a[data-counter]').click(function() {
|
72
|
+
$('a[data-counter]').click(function(event) {
|
73
73
|
var f = document.createElement('form'); f.style.display = 'none';
|
74
74
|
this.parentNode.appendChild(f);
|
75
75
|
f.method = 'POST';
|
@@ -255,7 +255,7 @@ $(document).ready(function() {
|
|
255
255
|
var label = $('<label>')
|
256
256
|
.addClass( options.css_class )
|
257
257
|
.attr("for", options.css_class + '_' + unique_id)
|
258
|
-
.attr("title", form.attr("title"));
|
258
|
+
.attr("title", form.attr("title") || "");
|
259
259
|
|
260
260
|
|
261
261
|
function update_state_for(state) {
|
@@ -76,8 +76,8 @@ module Blacklight::BlacklightHelperBehavior
|
|
76
76
|
# renders next to title. Includes just 'Folder' by default.
|
77
77
|
def render_index_doc_actions(document, options={})
|
78
78
|
content = []
|
79
|
-
content << render(:partial => 'bookmark_control', :locals => {:document=> document}.merge(options)) if has_user_authentication_provider? and current_user
|
80
|
-
content << render(:partial => 'folder_control', :locals => {:document=> document}.merge(options))
|
79
|
+
content << render(:partial => 'catalog/bookmark_control', :locals => {:document=> document}.merge(options)) if has_user_authentication_provider? and current_user
|
80
|
+
content << render(:partial => 'catalog/folder_control', :locals => {:document=> document}.merge(options))
|
81
81
|
|
82
82
|
content_tag("div", content.join("\n").html_safe, :class=>"documentFunctions")
|
83
83
|
end
|
@@ -86,8 +86,8 @@ module Blacklight::BlacklightHelperBehavior
|
|
86
86
|
# renders next to title. By default includes 'Folder' and 'Bookmarks'
|
87
87
|
def render_show_doc_actions(document=@document, options={})
|
88
88
|
content = []
|
89
|
-
content << render(:partial => 'bookmark_control', :locals => {:document=> document}.merge(options)) if has_user_authentication_provider? and current_user
|
90
|
-
content << render(:partial => 'folder_control', :locals => {:document=> document}.merge(options))
|
89
|
+
content << render(:partial => 'catalog/bookmark_control', :locals => {:document=> document}.merge(options)) if has_user_authentication_provider? and current_user
|
90
|
+
content << render(:partial => 'catalog/folder_control', :locals => {:document=> document}.merge(options))
|
91
91
|
|
92
92
|
content_tag("div", content.join("\n").html_safe, :class=>"documentFunctions")
|
93
93
|
end
|
@@ -204,14 +204,14 @@ module Blacklight::BlacklightHelperBehavior
|
|
204
204
|
# based on the value of doc[:format]
|
205
205
|
# if this value is blank (nil/empty) the "default" is used
|
206
206
|
# if the partial is not found, the "default" partial is rendered instead
|
207
|
-
def render_document_partial(doc, action_name)
|
207
|
+
def render_document_partial(doc, action_name, locals = {})
|
208
208
|
format = document_partial_name(doc)
|
209
209
|
|
210
210
|
document_partial_path_templates.each do |str|
|
211
211
|
# XXX rather than handling this logic through exceptions, maybe there's a Rails internals method
|
212
212
|
# for determining if a partial template exists..
|
213
213
|
begin
|
214
|
-
return render :partial => (str % [action_name, format]), :locals=>{:document=>doc}
|
214
|
+
return render :partial => (str % [action_name, format]), :locals=>locals.merge({:document=>doc})
|
215
215
|
rescue ActionView::MissingTemplate
|
216
216
|
nil
|
217
217
|
end
|
@@ -275,7 +275,7 @@ module Blacklight::BlacklightHelperBehavior
|
|
275
275
|
def link_to_document(doc, opts={:label=>nil, :counter => nil, :results_view => true})
|
276
276
|
label ||= blacklight_config.index.show_link.to_sym
|
277
277
|
label = render_document_index_label doc, opts
|
278
|
-
link_to label, doc, :'data-counter' => opts[:counter]
|
278
|
+
link_to label, doc, { :'data-counter' => opts[:counter] }.merge(opts.reject { |k,v| [:label, :counter, :results_view].include? k })
|
279
279
|
end
|
280
280
|
|
281
281
|
# link_back_to_catalog(:label=>'Back to Search')
|
@@ -72,7 +72,9 @@ module Blacklight::FacetsHelperBehavior
|
|
72
72
|
# By default, only render facets with items.
|
73
73
|
# @param [RSolr::Ext::Response::Facets::FacetField] display_facet
|
74
74
|
def should_render_facet? display_facet
|
75
|
-
|
75
|
+
# display when show is nil or true
|
76
|
+
display = facet_configuration_for_field(display_facet.name).show != false
|
77
|
+
return display && display_facet.items.present?
|
76
78
|
end
|
77
79
|
|
78
80
|
# the name of the partial to use to render a facet field. Can be over-ridden for custom
|
@@ -26,7 +26,7 @@ module Blacklight::RenderConstraintsHelperBehavior
|
|
26
26
|
render_constraint_element(label,
|
27
27
|
localized_params[:q],
|
28
28
|
:classes => ["query"],
|
29
|
-
:remove =>
|
29
|
+
:remove => url_for(localized_params.merge(:q=>nil, :action=>'index')))
|
30
30
|
else
|
31
31
|
"".html_safe
|
32
32
|
end
|
@@ -46,7 +46,7 @@ module Blacklight::RenderConstraintsHelperBehavior
|
|
46
46
|
values.map do |val|
|
47
47
|
render_constraint_element( facet_field_labels[facet],
|
48
48
|
val,
|
49
|
-
:remove =>
|
49
|
+
:remove => url_for(remove_facet_params(facet, val, localized_params)),
|
50
50
|
:classes => ["filter", "filter-" + facet.parameterize]
|
51
51
|
) + "\n"
|
52
52
|
end
|
@@ -19,7 +19,7 @@ module Blacklight::SearchHistoryConstraintsHelperBehavior
|
|
19
19
|
def render_search_to_s_q(params)
|
20
20
|
return "".html_safe if params[:q].blank?
|
21
21
|
|
22
|
-
label = (params[:search_field] == default_search_field[:key]) ?
|
22
|
+
label = (default_search_field && params[:search_field] == default_search_field[:key]) ?
|
23
23
|
nil :
|
24
24
|
label_for_search_field(params[:search_field])
|
25
25
|
|
@@ -21,7 +21,7 @@
|
|
21
21
|
if label.blank?
|
22
22
|
"Remove constraint #{options[:escape_value] ? h(value) : value}"
|
23
23
|
else
|
24
|
-
"Remove constraint #{options[:
|
24
|
+
"Remove constraint #{options[:escape_label] ? h(label) : label}: #{options[:escape_value] ? h(value) : value}"
|
25
25
|
end
|
26
26
|
%>
|
27
27
|
<%= link_to(accessible_remove_label,
|
@@ -1,6 +1,6 @@
|
|
1
1
|
<h3>Welcome!</h3>
|
2
2
|
<p>To modify this text to your specifications, copy this file located in the blacklight plugin directory:<br/>
|
3
|
-
 
|
3
|
+
<%= Blacklight.root %>/app/views/catalog/_home_text.html.erb</p>
|
4
4
|
<p>to your top level rails app:<br/>
|
5
|
-
 
|
6
|
-
Note that you will need to create the 'catalog' directory under views.
|
5
|
+
<%= Rails.root %>/app/views/catalog/_home_text.html.erb</p>
|
6
|
+
Note that you will need to create the 'catalog' directory under views.
|
@@ -10,11 +10,15 @@
|
|
10
10
|
<%- @searches.each_with_index do |search,index| -%>
|
11
11
|
<%= content_tag :tr, :id => "document_#{index + 1}" do %>
|
12
12
|
<td class="query"><%= link_to_previous_search(search.query_params) %></td>
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
13
|
+
<%- if has_user_authentication_provider? -%>
|
14
|
+
<td class="actions">
|
15
|
+
<%- if current_user && search.saved? -%>
|
16
|
+
<%= button_to "forget", forget_search_path(search.id) %>
|
17
|
+
<%- else -%>
|
18
|
+
<%= button_to "save", save_search_path(search.id), :method => :put %>
|
19
|
+
<%- end -%>
|
20
|
+
</td>
|
21
|
+
<%- end -%>
|
18
22
|
<% end #content_tag %>
|
19
23
|
<%- end -%>
|
20
24
|
</table>
|
data/blacklight.gemspec
CHANGED
@@ -27,7 +27,8 @@ Gem::Specification.new do |s|
|
|
27
27
|
s.add_dependency "rsolr", "~> 1.0.6" # Library for interacting with rSolr.
|
28
28
|
s.add_dependency "rsolr-ext", '~> 1.0.3' # extension to the above for some rails-ish behaviors - currently embedded in our solr document ojbect.
|
29
29
|
s.add_dependency "kaminari" # the pagination (page 1,2,3, etc..) of our search results
|
30
|
-
s.add_dependency "sass-rails", "~> 3.
|
30
|
+
s.add_dependency "sass-rails", "~> 3.2.0"
|
31
31
|
s.add_development_dependency "jettywrapper", ">= 1.2.0"
|
32
|
-
s.add_dependency "compass", "
|
32
|
+
s.add_dependency "compass-rails", "~> 1.0.0"
|
33
|
+
s.add_dependency "compass-susy-plugin", ">= 0.9.0"
|
33
34
|
end
|
@@ -45,7 +45,7 @@ module Blacklight::Configurable
|
|
45
45
|
# The default configuration object, by default it reads from Blacklight.config for backwards
|
46
46
|
# compatibility with Blacklight <= 3.1
|
47
47
|
def default_configuration
|
48
|
-
Blacklight::Configurable.default_configuration
|
48
|
+
Blacklight::Configurable.default_configuration.inheritable_copy
|
49
49
|
end
|
50
50
|
end
|
51
51
|
|
@@ -261,6 +261,8 @@ module Blacklight::SolrHelper
|
|
261
261
|
# Convert a facet/value pair into a solr fq parameter
|
262
262
|
def facet_value_to_fq_string(facet_field, value)
|
263
263
|
case
|
264
|
+
when (value.is_a?(TrueClass) or value.is_a?(FalseClass) or value == 'true' or value == 'false')
|
265
|
+
"#{facet_field}:#{value}"
|
264
266
|
when (value.is_a?(Integer) or (value.to_i.to_s == value if value.respond_to? :to_i))
|
265
267
|
"#{facet_field}:#{value}"
|
266
268
|
when (value.is_a?(Float) or (value.to_f.to_s == value if value.respond_to? :to_f))
|
@@ -147,6 +147,9 @@ EOF
|
|
147
147
|
end
|
148
148
|
|
149
149
|
def add_sass_configuration
|
150
|
+
gem 'compass-rails', '~> 1.0.0', :group => :assets
|
151
|
+
gem 'compass-susy-plugin', '~> 0.9.0', :group => :assets
|
152
|
+
run "bundle install"
|
150
153
|
insert_into_file "config/application.rb", :after => "config.assets.enabled = true" do <<EOF
|
151
154
|
|
152
155
|
# Default SASS Configuration, check out https://github.com/rails/sass-rails for details
|
@@ -156,7 +159,7 @@ EOF
|
|
156
159
|
EOF
|
157
160
|
end
|
158
161
|
|
159
|
-
copy_file "config/
|
162
|
+
copy_file "config/compass.rb", "config/compass.rb"
|
160
163
|
end
|
161
164
|
|
162
165
|
private
|
@@ -36,6 +36,9 @@ class CatalogController < ApplicationController
|
|
36
36
|
# on the solr side in the request handler itself. Request handler defaults
|
37
37
|
# sniffing requires solr requests to be made with "echoParams=all", for
|
38
38
|
# app code to actually have it echo'd back to see it.
|
39
|
+
#
|
40
|
+
# :show may be set to false if you don't want the facet to be drawn in the
|
41
|
+
# facet bar
|
39
42
|
config.add_facet_field 'format', :label => 'Format'
|
40
43
|
config.add_facet_field 'pub_date', :label => 'Publication Year'
|
41
44
|
config.add_facet_field 'subject_topic_facet', :label => 'Topic', :limit => 20
|
@@ -48,6 +51,9 @@ class CatalogController < ApplicationController
|
|
48
51
|
# previously. Simply remove these lines if you'd rather use Solr request
|
49
52
|
# handler defaults, or have no facets.
|
50
53
|
config.default_solr_params[:'facet.field'] = config.facet_fields.keys
|
54
|
+
#use this instead if you don't want to query facets marked :show=>false
|
55
|
+
#config.default_solr_params[:'facet.field'] = config.facet_fields.select{ |k, v| v[:show] != false}.keys
|
56
|
+
|
51
57
|
|
52
58
|
# solr fields to be displayed in the index (search results) view
|
53
59
|
# The ordering of the field names is the order of the display
|
data/test_support/bin/test.sh
CHANGED
@@ -266,6 +266,13 @@ describe BlacklightHelper do
|
|
266
266
|
@document = SolrDocument.new(data)
|
267
267
|
link_to_document(@document, { :label => :title_display, :counter => 5 }).should =~ /data-counter="5"/
|
268
268
|
end
|
269
|
+
it "passes on the title attribute to the link_to_with_data method" do
|
270
|
+
link_to_document(@mock_doc,:label=>"Some crazy long label...",:title=>"Some crazy longer label").should match(/title=\"Some crazy longer label\"/)
|
271
|
+
end
|
272
|
+
|
273
|
+
it "doesn't add an erroneous title attribute if one isn't provided" do
|
274
|
+
link_to_document(@mock_doc,:label=>"Some crazy long label...").should_not match(/title=/)
|
275
|
+
end
|
269
276
|
end
|
270
277
|
|
271
278
|
|
@@ -318,7 +325,39 @@ describe BlacklightHelper do
|
|
318
325
|
response = render_link_rel_alternates(@document)
|
319
326
|
response.html_safe?.should == true
|
320
327
|
end
|
321
|
-
|
322
328
|
end
|
329
|
+
|
330
|
+
describe "with a config" do
|
331
|
+
before do
|
332
|
+
@config = Blacklight::Configuration.new.configure do |config|
|
333
|
+
config.show.html_title = "title_display"
|
334
|
+
config.show.heading = "title_display"
|
335
|
+
config.show.display_type = 'format'
|
336
|
+
|
337
|
+
config.index.show_link = 'title_display'
|
338
|
+
config.index.record_display_type = 'format'
|
339
|
+
end
|
340
|
+
|
341
|
+
@document = SolrDocument.new('title_display' => "A Fake Document", 'id'=>'8')
|
342
|
+
helper.stub(:blacklight_config).and_return(@config)
|
343
|
+
helper.stub(:has_user_authentication_provider?).and_return(true)
|
344
|
+
helper.stub(:current_user).and_return(User.new)
|
345
|
+
end
|
346
|
+
describe "render_index_doc_actions" do
|
347
|
+
it "should render partials" do
|
348
|
+
response = helper.render_index_doc_actions(@document)
|
349
|
+
response.should have_selector(".bookmark_toggle")
|
350
|
+
response.should have_selector(".folder_toggle")
|
351
|
+
end
|
352
|
+
end
|
353
|
+
describe "render_show_doc_actions" do
|
354
|
+
it "should render partials" do
|
355
|
+
response = helper.render_show_doc_actions(@document)
|
356
|
+
response.should have_selector(".bookmark_toggle")
|
357
|
+
response.should have_selector(".folder_toggle")
|
358
|
+
end
|
359
|
+
end
|
360
|
+
end
|
361
|
+
|
323
362
|
|
324
363
|
end
|
@@ -2,14 +2,27 @@ require File.expand_path(File.dirname(__FILE__) + '/../spec_helper')
|
|
2
2
|
describe FacetsHelper do
|
3
3
|
|
4
4
|
describe "should_render_facet?" do
|
5
|
+
before do
|
6
|
+
@config = Blacklight::Configuration.new do |config|
|
7
|
+
config.add_facet_field 'basic_field'
|
8
|
+
config.add_facet_field 'no_show', :show=>false
|
9
|
+
end
|
10
|
+
|
11
|
+
helper.stub(:blacklight_config => @config)
|
12
|
+
end
|
5
13
|
it "should render facets with items" do
|
6
|
-
a = mock(:items => [1,2])
|
14
|
+
a = mock(:items => [1,2], :name=>'basic_field')
|
7
15
|
helper.should_render_facet?(a).should == true
|
8
16
|
end
|
9
17
|
it "should not render facets without items" do
|
10
|
-
empty = mock(:items => [])
|
18
|
+
empty = mock(:items => [], :name=>'basic_field')
|
11
19
|
helper.should_render_facet?(empty).should == false
|
12
20
|
end
|
21
|
+
|
22
|
+
it "should not render facets where show is set to false" do
|
23
|
+
a = mock(:items => [1,2], :name=>'no_show')
|
24
|
+
helper.should_render_facet?(a).should == false
|
25
|
+
end
|
13
26
|
end
|
14
27
|
|
15
28
|
describe "facet_by_field_name" do
|
@@ -0,0 +1,30 @@
|
|
1
|
+
require File.expand_path(File.dirname(__FILE__) + '/../spec_helper')
|
2
|
+
|
3
|
+
describe RenderConstraintsHelper do
|
4
|
+
|
5
|
+
before do
|
6
|
+
## Pretend that we're in a controller at /advanced_search
|
7
|
+
Journey::Route.any_instance.stub(:format).and_return('/advanced_search')
|
8
|
+
end
|
9
|
+
describe '#render_constraints_query' do
|
10
|
+
it "should have a link relative to the current url" do
|
11
|
+
helper.render_constraints_query(:q=>'foobar', :f=>{:type=>'journal'}).should have_selector "a[href='/advanced_search?f%5Btype%5D=journal']"
|
12
|
+
end
|
13
|
+
end
|
14
|
+
|
15
|
+
describe '#render_filter_element' do
|
16
|
+
before do
|
17
|
+
@config = Blacklight::Configuration.new do |config|
|
18
|
+
config.add_facet_field 'type'
|
19
|
+
end
|
20
|
+
helper.stub(:blacklight_config => @config)
|
21
|
+
end
|
22
|
+
it "should have a link relative to the current url" do
|
23
|
+
result = helper.render_filter_element('type', ['journal'], {:q=>'biz'})
|
24
|
+
result.size.should == 1
|
25
|
+
# I'm not certain how the ampersand gets in there. It's not important.
|
26
|
+
result.first.should have_selector "a[href='/advanced_search?&q=biz']"
|
27
|
+
end
|
28
|
+
end
|
29
|
+
|
30
|
+
end
|
@@ -86,6 +86,19 @@ describe "Blacklight::Configurable" do
|
|
86
86
|
instance.blacklight_config.foo.should be_nil
|
87
87
|
klass.blacklight_config.foo.should == "bar"
|
88
88
|
end
|
89
|
+
|
90
|
+
it "configurable classes should not mutate the default configuration object" do
|
91
|
+
klass = Class.new
|
92
|
+
klass.send(:include, Blacklight::Configurable)
|
93
|
+
klass.blacklight_config.foo = "bar"
|
94
|
+
|
95
|
+
klass2 = Class.new
|
96
|
+
klass2.send(:include, Blacklight::Configurable)
|
97
|
+
klass2.blacklight_config.foo = "asdf"
|
98
|
+
|
99
|
+
klass.blacklight_config.foo.should == "bar"
|
100
|
+
klass2.blacklight_config.foo.should == "asdf"
|
101
|
+
end
|
89
102
|
|
90
103
|
end
|
91
104
|
end
|
@@ -125,6 +125,12 @@ describe "Blacklight::Configuration" do
|
|
125
125
|
|
126
126
|
@config.facet_fields["publication_date"].label.should == "Publication Date"
|
127
127
|
end
|
128
|
+
|
129
|
+
it "should allow you to not show the facet in the facet bar" do
|
130
|
+
@config.add_facet_field("publication_date", :show=>false)
|
131
|
+
|
132
|
+
@config.facet_fields["publication_date"]['show'].should be_false
|
133
|
+
end
|
128
134
|
|
129
135
|
it "should raise on nil solr field name" do
|
130
136
|
lambda { @config.add_facet_field(nil) }.should raise_error ArgumentError
|
@@ -159,6 +159,14 @@ describe 'Blacklight::SolrHelper' do
|
|
159
159
|
facet_value_to_fq_string("facet_name", "my value").should == "{!raw f=facet_name}my value"
|
160
160
|
end
|
161
161
|
|
162
|
+
it "should pass booleans through" do
|
163
|
+
facet_value_to_fq_string("facet_name", true).should == "facet_name:true"
|
164
|
+
end
|
165
|
+
|
166
|
+
it "should pass boolean-like strings through" do
|
167
|
+
facet_value_to_fq_string("facet_name", "true").should == "facet_name:true"
|
168
|
+
end
|
169
|
+
|
162
170
|
it "should pass integers through" do
|
163
171
|
facet_value_to_fq_string("facet_name", 1).should == "facet_name:1"
|
164
172
|
end
|
@@ -23,6 +23,12 @@ describe "catalog/_constraints_element.html.erb" do
|
|
23
23
|
s.should have_selector("a.btnRemove.imgReplace[href='http://remove']")
|
24
24
|
end
|
25
25
|
end
|
26
|
+
|
27
|
+
it "should have an accessible remove label" do
|
28
|
+
rendered.should have_selector("a.imgReplace") do |s|
|
29
|
+
s.should have_content("Remove constraint my label: my value")
|
30
|
+
end
|
31
|
+
end
|
26
32
|
end
|
27
33
|
|
28
34
|
describe "with checkmark suppressed" do
|
@@ -1,8 +1,7 @@
|
|
1
1
|
# -*- encoding : utf-8 -*-
|
2
2
|
require File.expand_path(File.dirname(__FILE__) + '/../../spec_helper')
|
3
3
|
|
4
|
-
describe "catalog/index
|
5
|
-
|
4
|
+
describe "catalog/index" do
|
6
5
|
|
7
6
|
before(:all) do
|
8
7
|
@config ||= Blacklight::Configuration.from_legacy_configuration({
|
@@ -57,7 +56,14 @@ describe "catalog/index.atom.builder" do
|
|
57
56
|
@response = @rsolr_response
|
58
57
|
|
59
58
|
view.stub!(:blacklight_config).and_return(@config)
|
60
|
-
|
59
|
+
view.stub!(:search_field_options_for_select).and_return([])
|
60
|
+
|
61
|
+
if Rails.version >= "3.2.0"
|
62
|
+
render :template => 'catalog/index', :formats => [:atom]
|
63
|
+
else
|
64
|
+
render :template => 'catalog/index.atom'
|
65
|
+
end
|
66
|
+
|
61
67
|
|
62
68
|
# We need to use rexml to test certain things that have_tag wont' test
|
63
69
|
# note that response is depricated rails 3, use "redered" instead.
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: blacklight
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 3.
|
4
|
+
version: 3.3.0
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -16,11 +16,11 @@ authors:
|
|
16
16
|
autorequire:
|
17
17
|
bindir: bin
|
18
18
|
cert_chain: []
|
19
|
-
date: 2012-
|
19
|
+
date: 2012-03-19 00:00:00.000000000 Z
|
20
20
|
dependencies:
|
21
21
|
- !ruby/object:Gem::Dependency
|
22
22
|
name: rails
|
23
|
-
requirement: &
|
23
|
+
requirement: &2153768840 !ruby/object:Gem::Requirement
|
24
24
|
none: false
|
25
25
|
requirements:
|
26
26
|
- - ~>
|
@@ -28,10 +28,10 @@ dependencies:
|
|
28
28
|
version: '3.1'
|
29
29
|
type: :runtime
|
30
30
|
prerelease: false
|
31
|
-
version_requirements: *
|
31
|
+
version_requirements: *2153768840
|
32
32
|
- !ruby/object:Gem::Dependency
|
33
33
|
name: nokogiri
|
34
|
-
requirement: &
|
34
|
+
requirement: &2153768360 !ruby/object:Gem::Requirement
|
35
35
|
none: false
|
36
36
|
requirements:
|
37
37
|
- - ~>
|
@@ -39,10 +39,10 @@ dependencies:
|
|
39
39
|
version: '1.5'
|
40
40
|
type: :runtime
|
41
41
|
prerelease: false
|
42
|
-
version_requirements: *
|
42
|
+
version_requirements: *2153768360
|
43
43
|
- !ruby/object:Gem::Dependency
|
44
44
|
name: unicode
|
45
|
-
requirement: &
|
45
|
+
requirement: &2153767980 !ruby/object:Gem::Requirement
|
46
46
|
none: false
|
47
47
|
requirements:
|
48
48
|
- - ! '>='
|
@@ -50,10 +50,10 @@ dependencies:
|
|
50
50
|
version: '0'
|
51
51
|
type: :runtime
|
52
52
|
prerelease: false
|
53
|
-
version_requirements: *
|
53
|
+
version_requirements: *2153767980
|
54
54
|
- !ruby/object:Gem::Dependency
|
55
55
|
name: marc
|
56
|
-
requirement: &
|
56
|
+
requirement: &2153767440 !ruby/object:Gem::Requirement
|
57
57
|
none: false
|
58
58
|
requirements:
|
59
59
|
- - ~>
|
@@ -61,10 +61,10 @@ dependencies:
|
|
61
61
|
version: 0.4.3
|
62
62
|
type: :runtime
|
63
63
|
prerelease: false
|
64
|
-
version_requirements: *
|
64
|
+
version_requirements: *2153767440
|
65
65
|
- !ruby/object:Gem::Dependency
|
66
66
|
name: rsolr
|
67
|
-
requirement: &
|
67
|
+
requirement: &2153766920 !ruby/object:Gem::Requirement
|
68
68
|
none: false
|
69
69
|
requirements:
|
70
70
|
- - ~>
|
@@ -72,10 +72,10 @@ dependencies:
|
|
72
72
|
version: 1.0.6
|
73
73
|
type: :runtime
|
74
74
|
prerelease: false
|
75
|
-
version_requirements: *
|
75
|
+
version_requirements: *2153766920
|
76
76
|
- !ruby/object:Gem::Dependency
|
77
77
|
name: rsolr-ext
|
78
|
-
requirement: &
|
78
|
+
requirement: &2153766020 !ruby/object:Gem::Requirement
|
79
79
|
none: false
|
80
80
|
requirements:
|
81
81
|
- - ~>
|
@@ -83,10 +83,10 @@ dependencies:
|
|
83
83
|
version: 1.0.3
|
84
84
|
type: :runtime
|
85
85
|
prerelease: false
|
86
|
-
version_requirements: *
|
86
|
+
version_requirements: *2153766020
|
87
87
|
- !ruby/object:Gem::Dependency
|
88
88
|
name: kaminari
|
89
|
-
requirement: &
|
89
|
+
requirement: &2153765640 !ruby/object:Gem::Requirement
|
90
90
|
none: false
|
91
91
|
requirements:
|
92
92
|
- - ! '>='
|
@@ -94,21 +94,21 @@ dependencies:
|
|
94
94
|
version: '0'
|
95
95
|
type: :runtime
|
96
96
|
prerelease: false
|
97
|
-
version_requirements: *
|
97
|
+
version_requirements: *2153765640
|
98
98
|
- !ruby/object:Gem::Dependency
|
99
99
|
name: sass-rails
|
100
|
-
requirement: &
|
100
|
+
requirement: &2153765040 !ruby/object:Gem::Requirement
|
101
101
|
none: false
|
102
102
|
requirements:
|
103
103
|
- - ~>
|
104
104
|
- !ruby/object:Gem::Version
|
105
|
-
version:
|
105
|
+
version: 3.2.0
|
106
106
|
type: :runtime
|
107
107
|
prerelease: false
|
108
|
-
version_requirements: *
|
108
|
+
version_requirements: *2153765040
|
109
109
|
- !ruby/object:Gem::Dependency
|
110
110
|
name: jettywrapper
|
111
|
-
requirement: &
|
111
|
+
requirement: &2153764540 !ruby/object:Gem::Requirement
|
112
112
|
none: false
|
113
113
|
requirements:
|
114
114
|
- - ! '>='
|
@@ -116,18 +116,29 @@ dependencies:
|
|
116
116
|
version: 1.2.0
|
117
117
|
type: :development
|
118
118
|
prerelease: false
|
119
|
-
version_requirements: *
|
119
|
+
version_requirements: *2153764540
|
120
|
+
- !ruby/object:Gem::Dependency
|
121
|
+
name: compass-rails
|
122
|
+
requirement: &2153764080 !ruby/object:Gem::Requirement
|
123
|
+
none: false
|
124
|
+
requirements:
|
125
|
+
- - ~>
|
126
|
+
- !ruby/object:Gem::Version
|
127
|
+
version: 1.0.0
|
128
|
+
type: :runtime
|
129
|
+
prerelease: false
|
130
|
+
version_requirements: *2153764080
|
120
131
|
- !ruby/object:Gem::Dependency
|
121
|
-
name: compass
|
122
|
-
requirement: &
|
132
|
+
name: compass-susy-plugin
|
133
|
+
requirement: &2153763600 !ruby/object:Gem::Requirement
|
123
134
|
none: false
|
124
135
|
requirements:
|
125
136
|
- - ! '>='
|
126
137
|
- !ruby/object:Gem::Version
|
127
|
-
version: 0.
|
138
|
+
version: 0.9.0
|
128
139
|
type: :runtime
|
129
140
|
prerelease: false
|
130
|
-
version_requirements: *
|
141
|
+
version_requirements: *2153763600
|
131
142
|
description: Blacklight is a free and open source ruby-on-rails based discovery interface
|
132
143
|
(a.k.a. “next-generation catalog”) especially optimized for heterogeneous collections.
|
133
144
|
You can use it as a library catalog, as a front end for a digital repository, or
|
@@ -173,7 +184,6 @@ files:
|
|
173
184
|
- app/assets/stylesheets/blacklight/blacklight.css.scss
|
174
185
|
- app/assets/stylesheets/blacklight/blacklight_defaults.css.scss
|
175
186
|
- app/assets/stylesheets/blacklight/grids/_susy.css.scss
|
176
|
-
- app/assets/stylesheets/blacklight/grids/_susy_framework.css.scss
|
177
187
|
- app/assets/stylesheets/jquery/ui-lightness/images/ui-anim_basic_16x16.gif
|
178
188
|
- app/assets/stylesheets/jquery/ui-lightness/images/ui-bg_diagonals-thick_18_b81900_40x40.png
|
179
189
|
- app/assets/stylesheets/jquery/ui-lightness/images/ui-bg_diagonals-thick_20_666666_40x40.png
|
@@ -330,7 +340,7 @@ files:
|
|
330
340
|
- lib/generators/blacklight/templates/config/SolrMarc/translation_maps/instrument_map.properties
|
331
341
|
- lib/generators/blacklight/templates/config/SolrMarc/translation_maps/language_map.properties
|
332
342
|
- lib/generators/blacklight/templates/config/blacklight_config.rb
|
333
|
-
- lib/generators/blacklight/templates/config/
|
343
|
+
- lib/generators/blacklight/templates/config/compass.rb
|
334
344
|
- lib/generators/blacklight/templates/config/solr.yml
|
335
345
|
- lib/generators/blacklight/templates/migrations/add_user_types_to_bookmarks_searches.rb
|
336
346
|
- lib/generators/blacklight/templates/migrations/create_bookmarks.rb
|
@@ -386,6 +396,7 @@ files:
|
|
386
396
|
- test_support/spec/helpers/facets_helper_spec.rb
|
387
397
|
- test_support/spec/helpers/hash_as_hidden_fields_spec.rb
|
388
398
|
- test_support/spec/helpers/html_head_helper_spec.rb
|
399
|
+
- test_support/spec/helpers/render_constraints_helper_spec.rb
|
389
400
|
- test_support/spec/helpers/search_history_constraints_helper_spec.rb
|
390
401
|
- test_support/spec/lib/blacklight_configurable_spec.rb
|
391
402
|
- test_support/spec/lib/blacklight_configuration_spec.rb
|
@@ -435,7 +446,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
435
446
|
version: '0'
|
436
447
|
segments:
|
437
448
|
- 0
|
438
|
-
hash:
|
449
|
+
hash: 4535691040177281828
|
439
450
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
440
451
|
none: false
|
441
452
|
requirements:
|
@@ -444,10 +455,10 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
444
455
|
version: '0'
|
445
456
|
segments:
|
446
457
|
- 0
|
447
|
-
hash:
|
458
|
+
hash: 4535691040177281828
|
448
459
|
requirements: []
|
449
460
|
rubyforge_project: blacklight
|
450
|
-
rubygems_version: 1.8.
|
461
|
+
rubygems_version: 1.8.15
|
451
462
|
signing_key:
|
452
463
|
specification_version: 3
|
453
464
|
summary: A next-generation Library Catalag for Universities
|
@@ -1,228 +0,0 @@
|
|
1
|
-
// Imports -------------------------------------------------------------------
|
2
|
-
|
3
|
-
@import "compass/utilities/general/clearfix";
|
4
|
-
@import "compass/utilities/general/float";
|
5
|
-
@import "compass/layout/grid-background";
|
6
|
-
|
7
|
-
// Variables -----------------------------------------------------------------
|
8
|
-
|
9
|
-
// Your basic settings for the grid.
|
10
|
-
$total-cols : 12 !default;
|
11
|
-
$col-width : 4em !default;
|
12
|
-
$gutter-width : 1em !default;
|
13
|
-
$side-gutter-width : $gutter-width !default;
|
14
|
-
|
15
|
-
// Controls for right-to-left or bi-directional sites.
|
16
|
-
$from-direction : left !default;
|
17
|
-
|
18
|
-
// The direction that +omega elements are floated by deafult.
|
19
|
-
$omega-float : opposite-position($from-direction) !default;
|
20
|
-
|
21
|
-
// Functions -----------------------------------------------------------------
|
22
|
-
|
23
|
-
// Return the width of 'n' columns plus 'n - 1' gutters
|
24
|
-
// plus page padding in non-nested contexts
|
25
|
-
@function columns-width(
|
26
|
-
$n: false
|
27
|
-
) {
|
28
|
-
$sg: 0;
|
29
|
-
@if not $n {
|
30
|
-
$n: $total-cols;
|
31
|
-
$sg: $side-gutter-width;
|
32
|
-
}
|
33
|
-
$columns-width: ($n*$col-width) + (ceil($n - 1)*$gutter-width) + ($sg*2);
|
34
|
-
@return $columns-width;
|
35
|
-
}
|
36
|
-
|
37
|
-
// Return the percentage for the target in a given context
|
38
|
-
@function percent-width(
|
39
|
-
$t,
|
40
|
-
$c
|
41
|
-
) {
|
42
|
-
$perc: ($t / $c) * 100%;
|
43
|
-
@return $perc;
|
44
|
-
}
|
45
|
-
|
46
|
-
// Return the percentage width of 'n' columns in a context of 'c'
|
47
|
-
@function columns(
|
48
|
-
$n,
|
49
|
-
$c: false
|
50
|
-
) {
|
51
|
-
$columns: percent-width(columns-width($n), columns-width($c));
|
52
|
-
@return $columns;
|
53
|
-
}
|
54
|
-
|
55
|
-
// Return the percentage width of a single gutter in a context of 'c'
|
56
|
-
@function gutter(
|
57
|
-
$c: false
|
58
|
-
) {
|
59
|
-
$gutter: percent-width($gutter-width, columns-width($c));
|
60
|
-
@return $gutter;
|
61
|
-
}
|
62
|
-
|
63
|
-
// Return the percentage width of a single side gutter in a context of 'c'
|
64
|
-
@function side-gutter(
|
65
|
-
$c: false
|
66
|
-
) {
|
67
|
-
$side-gutter: percent-width($side-gutter-width, columns-width($c));
|
68
|
-
@return $side-gutter;
|
69
|
-
}
|
70
|
-
|
71
|
-
// Return the percentage width of a single column in a context of 'c'
|
72
|
-
@function column(
|
73
|
-
$c: false
|
74
|
-
) {
|
75
|
-
$column: percent-width($col-width, columns-width($c));
|
76
|
-
@return $column;
|
77
|
-
}
|
78
|
-
|
79
|
-
// Base Mixin ----------------------------------------------------------------
|
80
|
-
|
81
|
-
// Set the outer grid-containing element(s).
|
82
|
-
@mixin container() {
|
83
|
-
@include pie-clearfix;
|
84
|
-
margin: auto;
|
85
|
-
width: columns-width();
|
86
|
-
max-width: 100%;
|
87
|
-
}
|
88
|
-
|
89
|
-
// Column Mixins -------------------------------------------------------------
|
90
|
-
|
91
|
-
// Set +columns() on any column element, even nested ones.
|
92
|
-
// The first agument [required] is the number of columns to span.
|
93
|
-
// The second argument is the context (columns spanned by parent).
|
94
|
-
// - Context is required on any nested elements.
|
95
|
-
// - Context MUST NOT be declared on a top-level element.
|
96
|
-
// By default a grid-column is floated left with a right gutter.
|
97
|
-
// - Override those with +float("right"), +alpha or +omega
|
98
|
-
@mixin columns(
|
99
|
-
$n,
|
100
|
-
$context : false,
|
101
|
-
$from : $from-direction
|
102
|
-
) {
|
103
|
-
$to : opposite-position($from);
|
104
|
-
// the column is floated left
|
105
|
-
@include float($from);
|
106
|
-
// the width of the column is set as a percentage of the context
|
107
|
-
width: columns($n, $context);
|
108
|
-
// the right gutter is added as a percentage of the context
|
109
|
-
margin-#{$to}: gutter($context);
|
110
|
-
}
|
111
|
-
|
112
|
-
// @include `reset-column` to reset a column element to default block behavior
|
113
|
-
@mixin reset-column(
|
114
|
-
$from : $from-direction
|
115
|
-
) {
|
116
|
-
$to : opposite-position($from);
|
117
|
-
@include reset-float;
|
118
|
-
width: auto;
|
119
|
-
margin-#{$to}: auto;
|
120
|
-
}
|
121
|
-
|
122
|
-
@mixin un-column(
|
123
|
-
$from : $from-direction
|
124
|
-
) {
|
125
|
-
@include reset-column($from);
|
126
|
-
}
|
127
|
-
|
128
|
-
// @include `full` on an element that will span it's entire context.
|
129
|
-
// There is no need for +columns, +alpha or +omega on a +full element.
|
130
|
-
@mixin full(
|
131
|
-
$nested: false
|
132
|
-
) {
|
133
|
-
clear: both;
|
134
|
-
@if not $nested {
|
135
|
-
margin: {
|
136
|
-
left: side-gutter();
|
137
|
-
right: side-gutter();
|
138
|
-
}
|
139
|
-
}
|
140
|
-
}
|
141
|
-
|
142
|
-
// Padding Mixins ------------------------------------------------------------
|
143
|
-
|
144
|
-
// add empty colums as padding before an element.
|
145
|
-
@mixin prefix(
|
146
|
-
$n,
|
147
|
-
$context : false,
|
148
|
-
$from : $from-direction
|
149
|
-
) {
|
150
|
-
padding-#{$from}: columns($n, $context) + gutter($context);
|
151
|
-
}
|
152
|
-
|
153
|
-
// add empty colums as padding after an element.
|
154
|
-
@mixin suffix(
|
155
|
-
$n,
|
156
|
-
$context : false,
|
157
|
-
$from : $from-direction
|
158
|
-
) {
|
159
|
-
$to : opposite-position($from);
|
160
|
-
padding-#{$to}: columns($n, $context) + gutter($context);
|
161
|
-
}
|
162
|
-
|
163
|
-
// add empty colums as padding before and after an element.
|
164
|
-
@mixin pad(
|
165
|
-
$p : false,
|
166
|
-
$s : false,
|
167
|
-
$c : false,
|
168
|
-
$from : $from-direction
|
169
|
-
) {
|
170
|
-
@if $p {
|
171
|
-
@include prefix($p, $c, $from);
|
172
|
-
}
|
173
|
-
@if $s {
|
174
|
-
@include suffix($s, $c, $from);
|
175
|
-
}
|
176
|
-
}
|
177
|
-
|
178
|
-
// Alpha & Omega Mixins ------------------------------------------------------
|
179
|
-
// I recommend that you pass the actual nested contexts (when nested) rather
|
180
|
-
// than a true/false argument for the sake of consistency. Effect is the same,
|
181
|
-
// but your code will be much more readable.
|
182
|
-
|
183
|
-
// @include on any element spanning the first column in non-nested context to
|
184
|
-
// take side-gutters into account.
|
185
|
-
@mixin alpha(
|
186
|
-
$nested : false,
|
187
|
-
$from : $from-direction
|
188
|
-
) {
|
189
|
-
@if not $nested {
|
190
|
-
margin-#{$from}: side-gutter();
|
191
|
-
} @else {
|
192
|
-
@warn "The alpha mixin is not needed in a nested context";
|
193
|
-
}
|
194
|
-
}
|
195
|
-
|
196
|
-
// @include on the last element of a row, in order to take side-gutters and
|
197
|
-
// the page edge into account. Set the $nested argument for nested columns.
|
198
|
-
@mixin omega(
|
199
|
-
$nested : false,
|
200
|
-
$from : $from-direction
|
201
|
-
) {
|
202
|
-
$to : opposite-position($from);
|
203
|
-
$hack : opposite-position($omega-float);
|
204
|
-
$sg : 0;
|
205
|
-
@if not $nested {
|
206
|
-
$sg: side-gutter();
|
207
|
-
}
|
208
|
-
@include float($omega-float);
|
209
|
-
margin-#{$to}: $sg;
|
210
|
-
@if $legacy-support-for-ie6 or $legacy-support-for-ie7 {
|
211
|
-
#margin-#{$hack}: - $gutter-width;
|
212
|
-
}
|
213
|
-
}
|
214
|
-
|
215
|
-
// Susy Grid Backgrounds -----------------------------------------------------
|
216
|
-
|
217
|
-
@mixin susy-grid-background {
|
218
|
-
@include column-grid-background($total-cols, $col-width, $gutter-width, $side-gutter-width, $force-fluid: true);
|
219
|
-
}
|
220
|
-
|
221
|
-
@mixin show-grid($img:false) {
|
222
|
-
@warn "show-grid is deprecated in favor of susy-grid-background.";
|
223
|
-
@if $img {
|
224
|
-
@warn "show-grid and susy-grid-background no longer use any images or take any arguments.";
|
225
|
-
}
|
226
|
-
@include susy-grid-background;
|
227
|
-
}
|
228
|
-
|