blacklight 3.0pre1 → 3.0pre2
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/.gitmodules +0 -6
- data/README.rdoc +94 -87
- data/blacklight.gemspec +1 -1
- data/config/routes.rb +1 -1
- data/lib/blacklight.rb +2 -2
- data/lib/blacklight/catalog.rb +10 -12
- data/lib/blacklight/controller.rb +2 -2
- data/lib/blacklight/engine.rb +5 -2
- data/lib/blacklight/solr/document.rb +1 -1
- data/lib/blacklight/solr/document/marc.rb +1 -16
- data/lib/blacklight/solr_helper.rb +43 -14
- data/lib/blacklight/version.rb +1 -1
- data/lib/generators/blacklight/assets_generator.rb +25 -0
- data/lib/generators/blacklight/blacklight_generator.rb +16 -1
- data/lib/generators/blacklight/jetty_generator.rb +101 -0
- data/lib/generators/blacklight/solr_conf_generator.rb +25 -0
- data/lib/generators/blacklight/templates/catalog_controller.rb +0 -1
- data/lib/generators/blacklight/templates/config/solr.yml +14 -2
- data/lib/generators/blacklight/templates/public/images/{blacklight/bg.png → bg.png} +0 -0
- data/lib/generators/blacklight/templates/public/images/{blacklight/border.png → border.png} +0 -0
- data/lib/generators/blacklight/templates/public/images/{blacklight/bul_sq_gry.gif → bul_sq_gry.gif} +0 -0
- data/lib/generators/blacklight/templates/public/images/{blacklight/checkmark.gif → checkmark.gif} +0 -0
- data/lib/generators/blacklight/templates/public/images/{blacklight/logo.png → logo.png} +0 -0
- data/lib/generators/blacklight/templates/public/images/{blacklight/magnifying_glass.gif → magnifying_glass.gif} +0 -0
- data/lib/generators/blacklight/templates/public/images/{blacklight/remove.gif → remove.gif} +0 -0
- data/lib/generators/blacklight/templates/public/images/{blacklight/separator.gif → separator.gif} +0 -0
- data/lib/generators/blacklight/templates/public/images/{blacklight/start_over.gif → start_over.gif} +0 -0
- data/lib/generators/blacklight/templates/public/javascripts/blacklight.js +5 -0
- data/lib/generators/blacklight/templates/public/stylesheets/blacklight.css +9 -3
- data/lib/generators/blacklight/templates/solr_conf/schema.xml +339 -0
- data/lib/generators/blacklight/templates/solr_conf/solrconfig.xml +578 -0
- data/lib/railties/all_tests.rake +11 -0
- data/lib/railties/blacklight.rake +0 -52
- data/lib/railties/blacklight_cucumber.rake +125 -0
- data/lib/railties/blacklight_rspec.rake +128 -0
- data/lib/railties/{test_solr_server.rb → jetty_solr_server.rb} +22 -45
- data/lib/railties/solr_marc.rake +24 -5
- data/test_support/.rspec +1 -0
- data/test_support/data/test_data.utf8.mrc +1 -0
- data/test_support/features/bookmarks.feature +88 -0
- data/test_support/features/did_you_mean.feature +129 -0
- data/test_support/features/folder.feature +67 -0
- data/test_support/features/librarian_view.feature +17 -0
- data/test_support/features/record_view.feature +34 -0
- data/test_support/features/saved_searches.feature +49 -0
- data/test_support/features/search.feature +86 -0
- data/test_support/features/search_filters.feature +121 -0
- data/test_support/features/search_history.feature +95 -0
- data/test_support/features/search_results.feature +61 -0
- data/test_support/features/search_sort.feature +29 -0
- data/test_support/features/step_definitions/bookmarks_steps.rb +5 -0
- data/test_support/features/step_definitions/error_steps.rb +4 -0
- data/test_support/features/step_definitions/folder_steps.rb +26 -0
- data/test_support/features/step_definitions/general_steps.rb +49 -0
- data/test_support/features/step_definitions/record_view_steps.rb +11 -0
- data/test_support/features/step_definitions/saved_searches_steps.rb +21 -0
- data/test_support/features/step_definitions/search_facets_steps.rb +28 -0
- data/test_support/features/step_definitions/search_history_steps.rb +8 -0
- data/test_support/features/step_definitions/search_result_steps.rb +113 -0
- data/test_support/features/step_definitions/search_steps.rb +102 -0
- data/test_support/features/step_definitions/user_steps.rb +4 -0
- data/test_support/features/step_definitions/web_steps.rb +211 -0
- data/test_support/features/support/env.rb +49 -0
- data/test_support/features/support/paths.rb +55 -0
- data/test_support/features/support/selectors.rb +39 -0
- data/test_support/features/unapi.feature +30 -0
- data/test_support/spec/controllers/application_controller_spec.rb +22 -0
- data/test_support/spec/controllers/catalog_controller_spec.rb +480 -0
- data/test_support/spec/controllers/folder_controller_spec.rb +40 -0
- data/test_support/spec/controllers/search_history_controller_spec.rb +45 -0
- data/test_support/spec/data/sample_docs.yml +655 -0
- data/test_support/spec/data/test_data.utf8.mrc +1 -0
- data/test_support/spec/helpers/blacklight_helper_spec.rb +482 -0
- data/test_support/spec/helpers/hash_as_hidden_fields_spec.rb +23 -0
- data/test_support/spec/helpers/render_constraints_helper_spec.rb +64 -0
- data/test_support/spec/helpers/search_history_helper_spec.rb +11 -0
- data/test_support/spec/helpers/solr_helper_spec.rb +873 -0
- data/test_support/spec/lib/blacklight_email_spec.rb +23 -0
- data/test_support/spec/lib/blacklight_sms_spec.rb +23 -0
- data/test_support/spec/lib/blacklight_solr_document_dublin_core_spec.rb +41 -0
- data/test_support/spec/lib/blacklight_solr_document_marc_spec.rb +88 -0
- data/test_support/spec/lib/blacklight_solr_document_spec.rb +173 -0
- data/test_support/spec/lib/blacklight_spec.rb +39 -0
- data/test_support/spec/lib/configurable_spec.rb +97 -0
- data/test_support/spec/lib/facet_paginator_spec.rb +93 -0
- data/test_support/spec/lib/marc_export_spec.rb +444 -0
- data/test_support/spec/lib/search_fields_spec.rb +105 -0
- data/test_support/spec/lib/tasks/blacklight_task_spec.rb +21 -0
- data/test_support/spec/lib/tasks/solr_marc_task_spec.rb +59 -0
- data/test_support/spec/models/bookmark_spec.rb +37 -0
- data/test_support/spec/models/record_mailer_spec.rb +67 -0
- data/test_support/spec/models/search_spec.rb +55 -0
- data/test_support/spec/models/solr_docment_spec.rb +111 -0
- data/test_support/spec/rcov.opts +3 -0
- data/test_support/spec/spec.opts +4 -0
- data/test_support/spec/spec_helper.rb +38 -0
- data/test_support/spec/support/action_controller.rb +42 -0
- data/test_support/spec/support/assert_difference.rb +16 -0
- data/test_support/spec/support/include_text.rb +20 -0
- data/test_support/spec/views/catalog/_constraints_element.html.erb_spec.rb +59 -0
- data/test_support/spec/views/catalog/_document_list.html.erb_spec.rb +8 -0
- data/test_support/spec/views/catalog/_facets.html.erb_spec.rb +182 -0
- data/test_support/spec/views/catalog/_index_partials/_default.erb_spec.rb +70 -0
- data/test_support/spec/views/catalog/_show_partials/_default.html.erb_spec.rb +70 -0
- data/test_support/spec/views/catalog/index.atom.builder_spec.rb +141 -0
- data/test_support/spec/views/catalog/show.html.erb_spec.rb +100 -0
- data/test_support/spec/views/catalog/unapi.xml.builder_spec.rb +45 -0
- metadata +95 -98
- data/lib/blacklight/marc.rb +0 -46
- data/lib/blacklight/marc/citation.rb +0 -251
- data/lib/railties/cucumber.rake +0 -53
- data/lib/railties/rspec.rake +0 -188
- data/spec/helpers/catalog_helper_spec.rb +0 -111
- data/spec/views/catalog/_sms_form.html.erb_spec.rb +0 -19
data/.gitmodules
CHANGED
data/README.rdoc
CHANGED
|
@@ -25,7 +25,18 @@ Install blacklight
|
|
|
25
25
|
Run your database migrations
|
|
26
26
|
|
|
27
27
|
$ rake db:migrate
|
|
28
|
-
|
|
28
|
+
|
|
29
|
+
You will need a Solr setup, referred to in your config/solr.yml. You can install
|
|
30
|
+
an example jetty container with Solr, that has Solr configured to work with
|
|
31
|
+
Blacklight's defaults, like:
|
|
32
|
+
$ rails generate blacklight:jetty
|
|
33
|
+
|
|
34
|
+
You can also install your own Solr or use an existing install. But Blacklight
|
|
35
|
+
configuration needs to match your Solr setup, and there are certain things
|
|
36
|
+
in a Solr setup that Blacklight requires. To generate some Solr config files
|
|
37
|
+
that match what default Blacklight expects:
|
|
38
|
+
$ rails generate blacklight:solr_conf path/to/output/directory/
|
|
39
|
+
|
|
29
40
|
Start up your application
|
|
30
41
|
|
|
31
42
|
$ rails server
|
|
@@ -48,7 +59,15 @@ If you have a user model already, the Blacklight generator will connect to it au
|
|
|
48
59
|
match 'new_user_session', :to => 'Your User Session Controller # Log in action'
|
|
49
60
|
match 'destroy_user_session', :to => 'Your User Session Controller # Log Out action'
|
|
50
61
|
|
|
51
|
-
|
|
62
|
+
One blacklight view uses #to_s on your user model to get a user-displayable
|
|
63
|
+
account name/identifier for the currently logged in account, you probably
|
|
64
|
+
want to have such a method.
|
|
65
|
+
|
|
66
|
+
(TODO: Instructions on how to tell BL the name of your user model if it's
|
|
67
|
+
not User?)
|
|
68
|
+
|
|
69
|
+
And you will need to make sure the following methods are available both
|
|
70
|
+
on controllers and as helpers:
|
|
52
71
|
|
|
53
72
|
current_user - Which should return a user object that include Blacklight::User
|
|
54
73
|
user_session - Which should return a user session
|
|
@@ -67,99 +86,87 @@ Start up your application
|
|
|
67
86
|
|
|
68
87
|
Visit the catalog at: http://localhost/catalog
|
|
69
88
|
|
|
70
|
-
==
|
|
71
|
-
|
|
72
|
-
Checkout the code:
|
|
73
|
-
|
|
74
|
-
$ git clone git@github.com:projectblacklight/blacklight.git blacklight
|
|
75
|
-
$ cd blacklight
|
|
76
|
-
|
|
77
|
-
(While the rails3 branch is still a seperate branch called 'rails3':)
|
|
78
|
-
$ git checkout -t origin/rails3
|
|
79
|
-
|
|
80
|
-
Now create a test bed application inside of Blacklight that will allow you
|
|
81
|
-
to include Blacklight as a gem.
|
|
82
|
-
The test_app directory already exists, and contains a .gitignore file that
|
|
83
|
-
will mean all of the generated code is ingored. - There are a few directories
|
|
84
|
-
already in palce in test_app that WILL be included in the git repository. These
|
|
85
|
-
include:
|
|
86
|
-
* test_app/features - which contains cucumber tests for blacklight
|
|
87
|
-
* test_app/spec - rspec tests
|
|
88
|
-
* test_app/jetty - The blacklight Jetty module (discussed later)
|
|
89
|
-
* test_app/data - Another remote module.
|
|
90
|
-
|
|
91
|
-
To create the rails application:
|
|
92
|
-
|
|
93
|
-
$ rails new test_app --skip-test-unit --skip-git
|
|
94
|
-
|
|
95
|
-
Or if you are using Jruby:
|
|
96
|
-
|
|
97
|
-
$ jruby -S rails new test_app -m http://jruby.org/rails3.rb --skip-test-unit --skip-git
|
|
98
|
-
|
|
99
|
-
Add gem 'blacklight' to the test applications Gemfile:
|
|
100
|
-
|
|
101
|
-
gem 'blacklight', :path => '../'
|
|
89
|
+
== Using Blacklight source checkout as gem for development
|
|
102
90
|
|
|
103
|
-
|
|
104
|
-
|
|
91
|
+
The ordinary install instructions install the BL gem (which is not
|
|
92
|
+
full source code) in wherever your system installs gems.
|
|
105
93
|
|
|
106
|
-
|
|
107
|
-
|
|
94
|
+
Sometimes, especially for development, it's useful to check out
|
|
95
|
+
a complete copy of the blacklight source code, and link your app
|
|
96
|
+
to that as a 'gem' instead.
|
|
108
97
|
|
|
109
|
-
|
|
110
|
-
$ rm public/index.html (allow us to redirect to catalog)
|
|
98
|
+
Checkout the code:
|
|
111
99
|
|
|
112
|
-
|
|
113
|
-
$ rake db:migrate
|
|
100
|
+
$ git clone git@github.com:projectblacklight/blacklight.git
|
|
114
101
|
|
|
115
|
-
|
|
102
|
+
(While the rails3 branch is still a seperate branch called 'rails3',
|
|
103
|
+
if you'd like to checkout the rails3 branch, or any other particular
|
|
104
|
+
branch/tag using ordinary git commands:
|
|
116
105
|
$ cd blacklight
|
|
117
|
-
$ git
|
|
118
|
-
|
|
119
|
-
$ cd test_app
|
|
120
|
-
$ rake solr:marc:index_test_data RAILS_ENV=test
|
|
121
|
-
$ cd jetty
|
|
122
|
-
$ java -jar start.jar
|
|
123
|
-
|
|
124
|
-
Start up your Server, and take a test run. (from blacklight/test_app)
|
|
125
|
-
$ rails server
|
|
126
|
-
|
|
127
|
-
Now go check it out, should be running.
|
|
128
|
-
|
|
129
|
-
== Running the tests
|
|
130
|
-
|
|
131
|
-
You will need to add some gems to your test_app's Gemfile
|
|
132
|
-
|
|
133
|
-
group :development, :test do
|
|
134
|
-
gem "rspec"
|
|
135
|
-
gem "rspec-rails", "~>2.5.0"
|
|
136
|
-
gem "cucumber-rails"
|
|
137
|
-
gem "database_cleaner"
|
|
138
|
-
gem "capybara"
|
|
139
|
-
gem "webrat"
|
|
140
|
-
gem "aruba"
|
|
141
|
-
end
|
|
142
|
-
|
|
143
|
-
Run bundle install
|
|
106
|
+
$ git checkout -t origin/rails3
|
|
107
|
+
)
|
|
144
108
|
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
109
|
+
Now, in your local app's Gemfile, simply specify that it should find
|
|
110
|
+
the Blacklight gem at this source checkout location:
|
|
111
|
+
|
|
112
|
+
gem 'blacklight', :path=>"./relative/path/to/blacklight_checkout"
|
|
113
|
+
|
|
114
|
+
You can have the blacklight source checkout anywhere you want, referred
|
|
115
|
+
to by absolute or relative path. You can have it inside your local app's
|
|
116
|
+
directory if you want, or you can have it outside using a relative path
|
|
117
|
+
beginning with "../". If you have it inside your app's root, you can
|
|
118
|
+
even use 'git submodule' techniques to link your app to a particular
|
|
119
|
+
git commit, like some of us did in Rails2 Blacklight. (But you probably
|
|
120
|
+
don't want it in your local apps ./vendor/plugins, that'll likely
|
|
121
|
+
confuse Rails, since it's already being referred to in your Gemfile).
|
|
122
|
+
|
|
123
|
+
== Running Blacklight's own tests
|
|
124
|
+
|
|
125
|
+
Any application that refers to a Blacklight gem using a source checkout
|
|
126
|
+
(see above) can run the automated tests (cucumber and rspec) that
|
|
127
|
+
come with Blacklight source.
|
|
128
|
+
|
|
129
|
+
Of course, if you've customized the app quite a bit, the tests may not
|
|
130
|
+
pass, as they test expected default behavior in some cases. So ordinarily
|
|
131
|
+
tests are run against a pretty basic stub app. The tests also
|
|
132
|
+
test authentication features, so expect the app to have auth features
|
|
133
|
+
installed, for instance with a Devise install.
|
|
134
|
+
|
|
135
|
+
To run the tests:
|
|
136
|
+
|
|
137
|
+
* Create a stub app with BL with devise, following the ordinary instructions for
|
|
138
|
+
installing blacklight, but linking to a source checkout of Blacklight
|
|
139
|
+
following the instructions above in "Using Blacklight source checkout
|
|
140
|
+
as gem for development"
|
|
141
|
+
* You also need to include some gems in your test app's Gemfile needed for
|
|
142
|
+
running our tests:
|
|
143
|
+
group :development, :test do
|
|
144
|
+
gem "rspec"
|
|
145
|
+
gem "rspec-rails", "~>2.5.0"
|
|
146
|
+
gem "cucumber-rails"
|
|
147
|
+
gem "database_cleaner"
|
|
148
|
+
gem "capybara"
|
|
149
|
+
gem "webrat"
|
|
150
|
+
gem "aruba"
|
|
151
|
+
end
|
|
152
|
+
* run `bundle install` in the test app, and don't forget `rake db:migrate`
|
|
153
|
+
* complete the install of cucumber: 'rails g cucumber:install'
|
|
154
|
+
* remove /public/index.html (blacklight tests expect / to map to catalog)
|
|
155
|
+
* You need to install a jetty/solr with test data for testing. You can do that
|
|
156
|
+
like this (from your stub app home directory):
|
|
157
|
+
rails generate blacklight:jetty test_jetty -e test
|
|
158
|
+
rake solr:marc:index_test_data RAILS_ENV=test
|
|
159
|
+
* Now use some rake tasks that come with Blacklight to actually run the tests.
|
|
160
|
+
Run these from your stub app:
|
|
161
|
+
* rake blacklight:cucumber:with_solr -- run tests in BL, start and stop the test jetty/solr around tests
|
|
162
|
+
* rake blacklight:cucumber -- run tests in BL, no jetty/solr. (Tests will fail unless you start it yourself)
|
|
163
|
+
* rake blacklight:spec:with_solr
|
|
164
|
+
* rake blacklight:spec
|
|
165
|
+
* the standard rails tasks for cucumber/rspec are all included with
|
|
166
|
+
blacklight: prefix, and should work as expected, but using
|
|
167
|
+
specs/features defined in BL plugin instead of in your local
|
|
168
|
+
app. (Not every variant has a :with_solr yet).
|
|
150
169
|
|
|
151
|
-
If you haven't yet done this to load the bundled jetty/solr environment and test data in your blacklight checkout, from the blacklight checkout dir:
|
|
152
|
-
git submodule init
|
|
153
|
-
git submodule update
|
|
154
|
-
|
|
155
|
-
Load in the test data
|
|
156
|
-
|
|
157
|
-
$ rake solr:marc:index_test_data RAILS_ENV=test
|
|
158
|
-
|
|
159
|
-
Run the tests
|
|
160
|
-
|
|
161
|
-
$ rake solr:spec
|
|
162
|
-
$ rake solr:features
|
|
163
170
|
|
|
164
171
|
==Pre-requisites
|
|
165
172
|
Whichever method you choose for installation, be sure you have all the pre-requisites in place. You can find these detailed in {PRE-REQUISITES}[https://github.com/projectblacklight/blacklight/wiki/PRE-REQUISITES]
|
data/blacklight.gemspec
CHANGED
|
@@ -28,7 +28,7 @@ Gem::Specification.new do |s|
|
|
|
28
28
|
end
|
|
29
29
|
|
|
30
30
|
# Required Gems
|
|
31
|
-
s.add_dependency "rails", "
|
|
31
|
+
s.add_dependency "rails", "~> 3.0"
|
|
32
32
|
s.add_dependency "nokogiri", "~>1.5.0.beta.3" # XML Parser
|
|
33
33
|
s.add_dependency "marc" # Marc record parser
|
|
34
34
|
s.add_dependency "rsolr", '1.0.0' # Library for interacting with rSolr.
|
data/config/routes.rb
CHANGED
|
@@ -25,7 +25,7 @@ Rails.application.routes.draw do
|
|
|
25
25
|
|
|
26
26
|
# Saved Searches
|
|
27
27
|
match "saved_searches/clear", :to => "saved_searches#clear", :as => "clear_saved_searches"
|
|
28
|
-
match "saved_searches
|
|
28
|
+
match "saved_searches", :to => "saved_searches#index", :as => "saved_searches"
|
|
29
29
|
match "saved_searches/save/:id", :to => "saved_searches#save", :as => "save_search"
|
|
30
30
|
match "saved_searches/forget/:id", :to => "saved_searches#forget", :as => "forget_search"
|
|
31
31
|
|
data/lib/blacklight.rb
CHANGED
|
@@ -63,8 +63,8 @@ module Blacklight
|
|
|
63
63
|
@solr_config ||= begin
|
|
64
64
|
raise "You are missing a solr configuration file: #{solr_file}. Have you run \"rails generate blacklight\"?" unless File.exists?(solr_file)
|
|
65
65
|
solr_config = YAML::load(File.open(solr_file))
|
|
66
|
-
raise "The #{
|
|
67
|
-
solr_config[
|
|
66
|
+
raise "The #{::Rails.env} environment settings were not found in the solr.yml config" unless solr_config[::Rails.env]
|
|
67
|
+
solr_config[::Rails.env].symbolize_keys
|
|
68
68
|
end
|
|
69
69
|
end
|
|
70
70
|
|
data/lib/blacklight/catalog.rb
CHANGED
|
@@ -1,24 +1,22 @@
|
|
|
1
1
|
module Blacklight::Catalog
|
|
2
|
+
extend ActiveSupport::Concern
|
|
3
|
+
include Blacklight::SolrHelper
|
|
2
4
|
|
|
3
5
|
# The following code is executed when someone includes blacklight::catalog in their
|
|
4
6
|
# own controller.
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
base.send :before_filter, :search_session, :history_session
|
|
11
|
-
base.send :before_filter, :delete_or_assign_search_session_params, :only => :index
|
|
12
|
-
base.send :after_filter, :set_additional_search_session_values, :only=>:index
|
|
7
|
+
included do
|
|
8
|
+
before_filter :search_session, :history_session
|
|
9
|
+
before_filter :delete_or_assign_search_session_params, :only => :index
|
|
10
|
+
after_filter :set_additional_search_session_values, :only=>:index
|
|
13
11
|
|
|
14
12
|
# Whenever an action raises SolrHelper::InvalidSolrID, this block gets executed.
|
|
15
13
|
# Hint: the SolrHelper #get_solr_response_for_doc_id method raises this error,
|
|
16
14
|
# which is used in the #show action here.
|
|
17
|
-
|
|
15
|
+
rescue_from Blacklight::Exceptions::InvalidSolrID, :with => :invalid_solr_id_error
|
|
18
16
|
# When RSolr::RequestError is raised, the rsolr_request_error method is executed.
|
|
19
17
|
# The index action will more than likely throw this one.
|
|
20
18
|
# Example, when the standard query parser is used, and a user submits a "bad" query.
|
|
21
|
-
|
|
19
|
+
rescue_from RSolr::Error::Http, :with => :rsolr_request_error
|
|
22
20
|
end
|
|
23
21
|
|
|
24
22
|
|
|
@@ -281,7 +279,7 @@ module Blacklight::Catalog
|
|
|
281
279
|
|
|
282
280
|
# when solr (RSolr) throws an error (RSolr::RequestError), this method is executed.
|
|
283
281
|
def rsolr_request_error(exception)
|
|
284
|
-
if
|
|
282
|
+
if Rails.env == "development"
|
|
285
283
|
raise exception # Rails own code will catch and give usual Rails error page with stack trace
|
|
286
284
|
else
|
|
287
285
|
flash_notice = "Sorry, I don't understand your search."
|
|
@@ -299,7 +297,7 @@ module Blacklight::Catalog
|
|
|
299
297
|
|
|
300
298
|
# when a request for /catalog/BAD_SOLR_ID is made, this method is executed...
|
|
301
299
|
def invalid_solr_id_error
|
|
302
|
-
if
|
|
300
|
+
if Rails.env == "development"
|
|
303
301
|
render # will give us the stack trace
|
|
304
302
|
else
|
|
305
303
|
flash[:notice] = "Sorry, you have requested a record that doesn't exist."
|
|
@@ -39,9 +39,9 @@ module Blacklight::Controller
|
|
|
39
39
|
# http://api.rubyonrails.org/classes/ActionController/Filters/ClassMethods.html
|
|
40
40
|
# for how to turn off a filter in a sub-class and such.
|
|
41
41
|
def default_html_head
|
|
42
|
-
stylesheet_links << ['yui', 'jquery/ui-lightness/jquery-ui-1.8.1.custom.css', 'blacklight', {:
|
|
42
|
+
stylesheet_links << ['blacklight/yui', 'blacklight/jquery/ui-lightness/jquery-ui-1.8.1.custom.css', 'blacklight/blacklight', {:media=>'all'}]
|
|
43
43
|
|
|
44
|
-
javascript_includes << ['jquery-1.4.2.min.js', 'jquery-ui-1.8.1.custom.min.js', 'blacklight'
|
|
44
|
+
javascript_includes << ['blacklight/jquery-1.4.2.min.js', 'blacklight/jquery-ui-1.8.1.custom.min.js', 'blacklight/blacklight' ]
|
|
45
45
|
end
|
|
46
46
|
|
|
47
47
|
|
data/lib/blacklight/engine.rb
CHANGED
|
@@ -24,8 +24,11 @@ module Blackight
|
|
|
24
24
|
|
|
25
25
|
# This makes our rake tasks visible.
|
|
26
26
|
rake_tasks do
|
|
27
|
-
|
|
28
|
-
|
|
27
|
+
Dir.chdir(File.expand_path(File.join(File.dirname(__FILE__), '..'))) do
|
|
28
|
+
Dir.glob(File.join('railties', '*.rake')).each do |railtie|
|
|
29
|
+
load railtie
|
|
30
|
+
end
|
|
31
|
+
end
|
|
29
32
|
end
|
|
30
33
|
|
|
31
34
|
end
|
|
@@ -124,7 +124,7 @@ module Blacklight::Solr::Document
|
|
|
124
124
|
begin
|
|
125
125
|
mime_type = "Mime::#{short_name.to_s.upcase}".constantize
|
|
126
126
|
content_type = mime_type.to_s unless content_type
|
|
127
|
-
rescue NameError
|
|
127
|
+
rescue NameError,LoadError
|
|
128
128
|
# not registered, we need to register. Use register_alias to be least
|
|
129
129
|
# likely to interfere with host app.
|
|
130
130
|
Mime::Type.register_alias(content_type, short_name)
|
|
@@ -25,22 +25,7 @@ module Blacklight::Solr::Document::Marc
|
|
|
25
25
|
# Register our exportable formats, we inherit these from MarcExport
|
|
26
26
|
Blacklight::Solr::Document::MarcExport.register_export_formats( document )
|
|
27
27
|
end
|
|
28
|
-
|
|
29
|
-
# DEPRECATED. Here for legacy purposes, but use to_marc instead. Or
|
|
30
|
-
# internally, use the protected _marc_helper method to get the
|
|
31
|
-
# (somewhat confusingly named) Blacklight::Marc::Document helper object.
|
|
32
|
-
#
|
|
33
|
-
# This method gets attached to a SolrDocument.
|
|
34
|
-
# it uses the marc_source_field and marc_format_type
|
|
35
|
-
# class attributes to create the Blacklight::Marc::Document instance.
|
|
36
|
-
# Only returns a Blacklight::Marc::Document instance if
|
|
37
|
-
# the self.class.marc_source_field key exists.
|
|
38
|
-
def marc
|
|
39
|
-
warn "[DEPRECATION] aDocument.marc is deprecated. Please use aDocument.respond_to?(:to_marc) / aDocument.respond_to?(:marc), or aDocument.exports_as.keys.include?(:some_format) / aDocument.export_as(:some_format) instead."
|
|
40
|
-
|
|
41
|
-
_marc_helper
|
|
42
|
-
end
|
|
43
|
-
|
|
28
|
+
|
|
44
29
|
# ruby-marc object
|
|
45
30
|
def to_marc
|
|
46
31
|
@_ruby_marc_obj ||= load_marc
|
|
@@ -5,42 +5,71 @@
|
|
|
5
5
|
#
|
|
6
6
|
# Override these methods in your own controller for customizations:
|
|
7
7
|
#
|
|
8
|
-
#
|
|
8
|
+
# class CatalogController < ActionController::Base
|
|
9
9
|
#
|
|
10
|
-
#
|
|
10
|
+
# include Blacklight::Catalog
|
|
11
11
|
#
|
|
12
|
-
#
|
|
13
|
-
#
|
|
12
|
+
# def solr_search_params
|
|
13
|
+
# super.merge :per_page=>10
|
|
14
|
+
# end
|
|
14
15
|
# end
|
|
16
|
+
#
|
|
17
|
+
# Or by including in local extensions:
|
|
18
|
+
# module LocalSolrHelperExtension
|
|
19
|
+
# [ local overrides ]
|
|
20
|
+
# end
|
|
21
|
+
#
|
|
22
|
+
# class CatalogController < ActionController::Base
|
|
23
|
+
#
|
|
24
|
+
# include Blacklight::Catalog
|
|
25
|
+
# include LocalSolrHelperExtension
|
|
15
26
|
#
|
|
16
|
-
#
|
|
27
|
+
# def solr_search_params
|
|
28
|
+
# super.merge :per_page=>10
|
|
29
|
+
# end
|
|
30
|
+
# end
|
|
31
|
+
#
|
|
32
|
+
# Or by using ActiveSupport::Concern:
|
|
33
|
+
#
|
|
34
|
+
# module LocalSolrHelperExtension
|
|
35
|
+
# extend ActiveSupport::Concern
|
|
36
|
+
# include Blacklight::SolrHelper
|
|
37
|
+
#
|
|
38
|
+
# [ local overrides ]
|
|
39
|
+
# end
|
|
17
40
|
#
|
|
41
|
+
# class CatalogController < ApplicationController
|
|
42
|
+
# include LocalSolrHelperExtension
|
|
43
|
+
# include Blacklight::Catalog
|
|
44
|
+
# end
|
|
18
45
|
|
|
19
46
|
module Blacklight::SolrHelper
|
|
47
|
+
extend ActiveSupport::Concern
|
|
48
|
+
|
|
20
49
|
MaxPerPage = 100
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
if
|
|
24
|
-
|
|
25
|
-
|
|
50
|
+
|
|
51
|
+
included do
|
|
52
|
+
if self.respond_to?(:helper_method)
|
|
53
|
+
helper_method(:facet_limit_hash)
|
|
54
|
+
helper_method(:facet_limit_for)
|
|
26
55
|
end
|
|
27
|
-
|
|
56
|
+
|
|
28
57
|
# We want to install a class-level place to keep
|
|
29
58
|
# solr_search_params_logic method names. Compare to before_filter,
|
|
30
59
|
# similar design. Since we're a module, we have to add it in here.
|
|
31
60
|
# There are too many different semantic choices in ruby 'class variables',
|
|
32
61
|
# we choose this one for now, supplied by Rails.
|
|
33
|
-
|
|
62
|
+
class_inheritable_accessor :solr_search_params_logic
|
|
63
|
+
|
|
34
64
|
# Set defaults. Each symbol identifies a _method_ that must be in
|
|
35
65
|
# this class, taking two parameters (solr_parameters, user_parameters)
|
|
36
66
|
# Can be changed in local apps or by plugins, eg:
|
|
37
67
|
# CatalogController.include ModuleDefiningNewMethod
|
|
38
68
|
# CatalogController.solr_search_params_logic << :new_method
|
|
39
69
|
# CatalogController.solr_search_params_logic.delete(:we_dont_want)
|
|
40
|
-
|
|
70
|
+
self.solr_search_params_logic = [:default_solr_parameters , :add_query_to_solr, :add_facet_fq_to_solr, :add_facetting_to_solr, :add_sorting_paging_to_solr ]
|
|
41
71
|
end
|
|
42
72
|
|
|
43
|
-
|
|
44
73
|
# A helper method used for generating solr LocalParams, put quotes
|
|
45
74
|
# around the term unless it's a bare-word. Escape internal quotes
|
|
46
75
|
# if needed.
|