blacklight 5.0.0.pre3 → 5.0.0.pre4
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.gitignore +9 -16
- data/Gemfile +4 -0
- data/README.md +15 -1
- data/VERSION +1 -1
- data/app/assets/stylesheets/blacklight/_bookmark.css.scss +1 -1
- data/app/assets/stylesheets/blacklight/_catalog.css.scss +2 -12
- data/app/assets/stylesheets/blacklight/_facets.css.scss +1 -1
- data/app/assets/stylesheets/blacklight/_header.css.scss +1 -0
- data/app/assets/stylesheets/blacklight/_modal.css.scss +4 -2
- data/app/assets/stylesheets/blacklight/blacklight_defaults.css.scss +0 -5
- data/app/controllers/bookmarks_controller.rb +4 -0
- data/app/helpers/blacklight/blacklight_helper_behavior.rb +26 -187
- data/app/helpers/blacklight/catalog_helper_behavior.rb +20 -8
- data/app/helpers/blacklight/facets_helper_behavior.rb +0 -83
- data/app/helpers/blacklight/hash_as_hidden_fields_helper_behavior.rb +1 -1
- data/app/helpers/blacklight/url_helper_behavior.rb +201 -0
- data/app/helpers/blacklight_url_helper.rb +3 -0
- data/app/views/bookmarks/_tools.html.erb +4 -7
- data/app/views/catalog/_citation.html.erb +1 -1
- data/app/views/catalog/_did_you_mean.html.erb +1 -1
- data/app/views/catalog/_document.html.erb +1 -1
- data/app/views/catalog/_search_form.html.erb +1 -1
- data/app/views/catalog/_show_more_like_this.html.erb +1 -1
- data/app/views/catalog/_view_type_group.html.erb +4 -4
- data/app/views/catalog/email.html.erb +2 -2
- data/app/views/catalog/facet.html.erb +1 -1
- data/app/views/catalog/show.html.erb +1 -1
- data/app/views/catalog/sms.html.erb +1 -1
- data/blacklight.gemspec +2 -2
- data/config/jetty.yml +4 -1
- data/config/locales/blacklight.en.yml +3 -0
- data/config/locales/blacklight.fr.yml +3 -0
- data/{lib/generators/blacklight/templates/migrations/create_searches.rb → db/migrate/20140202020201_create_searches.rb} +2 -0
- data/{lib/generators/blacklight/templates/migrations/create_bookmarks.rb → db/migrate/20140202020202_create_bookmarks.rb} +1 -2
- data/gemfiles/rails3.gemfile +2 -0
- data/gemfiles/rails4.gemfile +2 -0
- data/lib/blacklight.rb +1 -40
- data/lib/blacklight/base.rb +3 -9
- data/lib/blacklight/catalog.rb +3 -16
- data/lib/blacklight/catalog/search_context.rb +8 -1
- data/lib/blacklight/configurable.rb +1 -2
- data/lib/blacklight/configuration.rb +13 -3
- data/lib/blacklight/configuration/view_config.rb +71 -0
- data/lib/blacklight/engine.rb +1 -0
- data/lib/blacklight/routes.rb +0 -1
- data/lib/blacklight/solr/document.rb +0 -4
- data/lib/blacklight/solr_helper.rb +8 -2
- data/lib/blacklight/user.rb +1 -16
- data/lib/blacklight/utils.rb +72 -1
- data/lib/generators/blacklight/install_generator.rb +92 -0
- data/lib/generators/blacklight/models_generator.rb +1 -25
- data/lib/generators/blacklight/templates/catalog_controller.rb +28 -32
- data/spec/helpers/blacklight_helper_spec.rb +24 -417
- data/spec/helpers/catalog_helper_spec.rb +13 -13
- data/spec/helpers/facets_helper_spec.rb +0 -127
- data/spec/helpers/hash_as_hidden_fields_spec.rb +1 -1
- data/spec/helpers/url_helper_spec.rb +360 -0
- data/spec/lib/blacklight/configuration_spec.rb +2 -3
- data/spec/lib/blacklight/solr_helper_spec.rb +11 -17
- data/spec/lib/blacklight/user_spec.rb +0 -41
- data/spec/lib/blacklight_spec.rb +0 -22
- data/spec/lib/utils_spec.rb +35 -4
- data/spec/spec_helper.rb +4 -3
- data/spec/test_app_templates/lib/generators/test_app_generator.rb +2 -2
- data/spec/views/catalog/_constraints.html.erb_spec.rb +4 -2
- data/spec/views/catalog/_index_default.erb_spec.rb +1 -1
- data/spec/views/catalog/_paginate_compact.html.erb_spec.rb +1 -5
- data/spec/views/catalog/_show_default.erb_spec.rb +1 -1
- data/spec/views/catalog/_view_type_group.html.erb_spec.rb +11 -3
- data/tasks/blacklight.rake +1 -5
- metadata +14 -16
- data/.gitmodules +0 -0
- data/app/views/catalog/endnote.endnote.erb +0 -1
- data/app/views/catalog/show.endnote.erb +0 -1
- data/lib/generators/blacklight/blacklight_generator.rb +0 -97
- data/lib/generators/blacklight/templates/migrations/add_user_types_to_bookmarks_searches.rb +0 -16
- data/lib/generators/blacklight/templates/migrations/remove_editable_fields_from_bookmarks.rb +0 -12
- data/lib/railties/all_tests.rake +0 -39
- data/lib/railties/blacklight_rspec.rake +0 -128
@@ -11,7 +11,7 @@
|
|
11
11
|
<div id="doc_<%= @document.id.to_s.parameterize %>">
|
12
12
|
|
13
13
|
<% # bookmark/folder functions -%>
|
14
|
-
<%= render_document_partials @document, blacklight_config.show.partials %>
|
14
|
+
<%= render_document_partials @document, blacklight_config.view_config(:show).partials %>
|
15
15
|
|
16
16
|
</div>
|
17
17
|
</div>
|
@@ -1,5 +1,5 @@
|
|
1
1
|
<div class="modal-header">
|
2
|
-
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
|
2
|
+
<button type="button" class="ajax-modal-close close" data-dismiss="modal" aria-hidden="true">×</button>
|
3
3
|
<h1 class="modal-title"><%= t('blacklight.sms.form.title') %></h1>
|
4
4
|
</div>
|
5
5
|
<%= render :partial => 'sms_form' %>
|
data/blacklight.gemspec
CHANGED
@@ -26,8 +26,8 @@ Gem::Specification.new do |s|
|
|
26
26
|
s.add_dependency "sass-rails"
|
27
27
|
s.add_dependency "bootstrap-sass", "~> 3.0"
|
28
28
|
s.add_dependency "deprecation"
|
29
|
-
s.add_development_dependency "jettywrapper", ">= 1.
|
30
|
-
s.add_development_dependency "blacklight_marc", "0.0.
|
29
|
+
s.add_development_dependency "jettywrapper", ">= 1.5.2"
|
30
|
+
s.add_development_dependency "blacklight_marc", "0.0.9"
|
31
31
|
s.add_development_dependency "rspec-rails"
|
32
32
|
s.add_development_dependency 'engine_cart', ">= 0.1.0"
|
33
33
|
s.add_development_dependency "equivalent-xml"
|
data/config/jetty.yml
CHANGED
@@ -191,8 +191,11 @@ en:
|
|
191
191
|
value: 'Remove constraint %{value}'
|
192
192
|
label_value: 'Remove constraint %{label}: %{value}'
|
193
193
|
start_over: 'Start Over'
|
194
|
+
index:
|
195
|
+
label: '%{label}:'
|
194
196
|
show:
|
195
197
|
title: '%{document_title} - %{application_name}'
|
198
|
+
label: '%{label}:'
|
196
199
|
rss_feed: 'RSS for results'
|
197
200
|
atom_feed: 'Atom for results'
|
198
201
|
fields:
|
@@ -207,8 +207,11 @@ fr:
|
|
207
207
|
value: 'Supprimer la restriction %{value}'
|
208
208
|
label_value: 'Supprimer la restriction %{label}: %{value}'
|
209
209
|
start_over: 'Accueil'
|
210
|
+
index:
|
211
|
+
label: '%{label}:'
|
210
212
|
show:
|
211
213
|
title: '%{document_title} - %{application_name}'
|
214
|
+
label: '%{label}:'
|
212
215
|
rss_feed: 'RSS pour les résultats'
|
213
216
|
atom_feed: 'Atom pour les résultats'
|
214
217
|
fields:
|
data/gemfiles/rails3.gemfile
CHANGED
data/gemfiles/rails4.gemfile
CHANGED
data/lib/blacklight.rb
CHANGED
@@ -1,7 +1,6 @@
|
|
1
1
|
# -*- encoding : utf-8 -*-
|
2
2
|
require 'kaminari'
|
3
3
|
require 'rsolr'
|
4
|
-
|
5
4
|
module Blacklight
|
6
5
|
|
7
6
|
autoload :Configurable, 'blacklight/configurable'
|
@@ -34,11 +33,6 @@ module Blacklight
|
|
34
33
|
class << self
|
35
34
|
attr_accessor :solr, :solr_config
|
36
35
|
end
|
37
|
-
|
38
|
-
# Adding a little jruby support
|
39
|
-
def self.jruby?
|
40
|
-
defined?(RUBY_ENGINE) && RUBY_ENGINE == "jruby"
|
41
|
-
end
|
42
36
|
|
43
37
|
def self.solr_file
|
44
38
|
"#{::Rails.root.to_s}/config/solr.yml"
|
@@ -65,7 +59,7 @@ module Blacklight
|
|
65
59
|
|
66
60
|
return @solr_yml if @solr_yml
|
67
61
|
unless File.exists?(solr_file)
|
68
|
-
raise "You are missing a solr configuration file: #{solr_file}. Have you run \"rails generate blacklight\"?"
|
62
|
+
raise "You are missing a solr configuration file: #{solr_file}. Have you run \"rails generate blacklight:install\"?"
|
69
63
|
end
|
70
64
|
|
71
65
|
begin
|
@@ -103,38 +97,5 @@ module Blacklight
|
|
103
97
|
def self.root
|
104
98
|
@root ||= File.expand_path(File.dirname(File.dirname(__FILE__)))
|
105
99
|
end
|
106
|
-
|
107
|
-
# This is useful for modifying Blacklight models.
|
108
|
-
# In the main app you can then do this:
|
109
|
-
# require "#{MyEngine.models_dir}/bookmark"
|
110
|
-
# class Bookmark
|
111
|
-
# ...
|
112
|
-
# end
|
113
|
-
# BE AWARE - When you do this, you are monkey patching Blacklight
|
114
|
-
# we should eventually find a better way - such as the acts_as pattern
|
115
|
-
def self.models_dir
|
116
|
-
"#{root}/app/models"
|
117
|
-
end
|
118
|
-
|
119
|
-
def self.controllers_dir
|
120
|
-
"#{root}/app/controllers"
|
121
|
-
end
|
122
|
-
|
123
|
-
|
124
|
-
# Searches Rails.root then Blacklight.root for a valid path
|
125
|
-
# returns a full path if a valid path is found
|
126
|
-
# returns nil if nothing is found.
|
127
|
-
# First looks in Rails.root, then Blacklight.root
|
128
|
-
#
|
129
|
-
# Example:
|
130
|
-
# full_path_to_solr_marc_jar = Blacklight.locate_path 'solr_marc', 'SolrMarc.jar'
|
131
|
-
|
132
|
-
def self.locate_path(*subpath_fragments)
|
133
|
-
subpath = subpath_fragments.join('/')
|
134
|
-
base_match = [Rails.root, self.root].find do |base|
|
135
|
-
File.exists? File.join(base, subpath)
|
136
|
-
end
|
137
|
-
File.join(base_match.to_s, subpath) if base_match
|
138
|
-
end
|
139
100
|
|
140
101
|
end
|
data/lib/blacklight/base.rb
CHANGED
@@ -5,6 +5,8 @@ module Blacklight::Base
|
|
5
5
|
include Blacklight::Configurable
|
6
6
|
include Blacklight::SolrHelper
|
7
7
|
|
8
|
+
require 'blacklight/catalog/search_context'
|
9
|
+
include Blacklight::Catalog::SearchContext
|
8
10
|
|
9
11
|
included do
|
10
12
|
# When RSolr::RequestError is raised, the rsolr_request_error method is executed.
|
@@ -37,12 +39,4 @@ module Blacklight::Base
|
|
37
39
|
redirect_to root_path
|
38
40
|
end
|
39
41
|
end
|
40
|
-
|
41
|
-
def blacklight_solr
|
42
|
-
@solr ||= RSolr.connect(blacklight_solr_config)
|
43
|
-
end
|
44
|
-
|
45
|
-
def blacklight_solr_config
|
46
|
-
Blacklight.solr_config
|
47
|
-
end
|
48
|
-
end
|
42
|
+
end
|
data/lib/blacklight/catalog.rb
CHANGED
@@ -3,9 +3,6 @@ module Blacklight::Catalog
|
|
3
3
|
extend ActiveSupport::Concern
|
4
4
|
|
5
5
|
include Blacklight::Base
|
6
|
-
|
7
|
-
require 'blacklight/catalog/search_context'
|
8
|
-
include Blacklight::Catalog::SearchContext
|
9
6
|
|
10
7
|
SearchHistoryWindow = 100 # how many searches to save in session history
|
11
8
|
|
@@ -98,13 +95,7 @@ module Blacklight::Catalog
|
|
98
95
|
format.js { render :layout => false }
|
99
96
|
end
|
100
97
|
end
|
101
|
-
|
102
|
-
def endnote
|
103
|
-
@response, @documents = get_solr_response_for_field_values(SolrDocument.unique_key,params[:id])
|
104
|
-
respond_to do |format|
|
105
|
-
format.endnote { render :layout => false }
|
106
|
-
end
|
107
|
-
end
|
98
|
+
|
108
99
|
|
109
100
|
# Email Action (this will render the appropriate view on GET requests and process the form and send the email on POST requests)
|
110
101
|
def email
|
@@ -242,11 +233,7 @@ module Blacklight::Catalog
|
|
242
233
|
render "index", :status => 404
|
243
234
|
end
|
244
235
|
|
245
|
-
def
|
246
|
-
|
247
|
-
end
|
248
|
-
|
249
|
-
def blacklight_solr_config
|
250
|
-
Blacklight.solr_config
|
236
|
+
def start_new_search_session?
|
237
|
+
action_name == "index"
|
251
238
|
end
|
252
239
|
end
|
@@ -26,7 +26,7 @@ module Blacklight::Catalog::SearchContext
|
|
26
26
|
# The current search session
|
27
27
|
def current_search_session
|
28
28
|
|
29
|
-
@current_search_session ||= if
|
29
|
+
@current_search_session ||= if start_new_search_session?
|
30
30
|
find_or_initialize_search_session_from_params params
|
31
31
|
elsif params[:search_context].present?
|
32
32
|
find_or_initialize_search_session_from_params JSON.load(params[:search_context])
|
@@ -50,6 +50,13 @@ module Blacklight::Catalog::SearchContext
|
|
50
50
|
@current_search_session
|
51
51
|
end
|
52
52
|
|
53
|
+
##
|
54
|
+
# If the current action should start a new search session, this should be
|
55
|
+
# set to true
|
56
|
+
def start_new_search_session?
|
57
|
+
false
|
58
|
+
end
|
59
|
+
|
53
60
|
def find_or_initialize_search_session_from_params params
|
54
61
|
params_copy = params.reject { |k,v| blacklisted_search_session_params.include?(k.to_sym) or v.blank? }
|
55
62
|
|
@@ -41,8 +41,7 @@ module Blacklight::Configurable
|
|
41
41
|
end
|
42
42
|
|
43
43
|
##
|
44
|
-
# The default configuration object
|
45
|
-
# compatibility with Blacklight <= 3.1
|
44
|
+
# The default configuration object
|
46
45
|
def default_configuration
|
47
46
|
Blacklight::Configurable.default_configuration.inheritable_copy
|
48
47
|
end
|
@@ -4,6 +4,8 @@ module Blacklight
|
|
4
4
|
# fields to display, facets to show, sort options, and search fields.
|
5
5
|
class Configuration < OpenStructWithHashAccess
|
6
6
|
|
7
|
+
require 'blacklight/configuration/view_config'
|
8
|
+
|
7
9
|
# Set up Blacklight::Configuration.default_values to contain
|
8
10
|
# the basic, required Blacklight fields
|
9
11
|
class << self
|
@@ -17,13 +19,13 @@ module Blacklight
|
|
17
19
|
:default_solr_params => {},
|
18
20
|
:document_solr_request_handler => nil,
|
19
21
|
:default_document_solr_params => {},
|
20
|
-
:show =>
|
21
|
-
:index =>
|
22
|
+
:show => ViewConfig::Show.new(:partials => [:show_header, :show]),
|
23
|
+
:index => ViewConfig::Index.new(:partials => [:index_header, :thumbnail, :index], :title_field => unique_key, :display_type_field => 'format', :group => false),
|
24
|
+
:view => NestedOpenStructWithHashAccess.new(ViewConfig, 'list'),
|
22
25
|
:spell_max => 5,
|
23
26
|
:max_per_page => 100,
|
24
27
|
:per_page => [10,20,50,100],
|
25
28
|
:search_history_window => Blacklight::Catalog::SearchHistoryWindow,
|
26
|
-
:document_index_view_types => ['list'],
|
27
29
|
:add_facet_fields_to_solr_request => false,
|
28
30
|
:add_field_configuration_to_solr_request => false,
|
29
31
|
:http_method => :get
|
@@ -114,5 +116,13 @@ module Blacklight
|
|
114
116
|
yield self if block_given?
|
115
117
|
self
|
116
118
|
end
|
119
|
+
|
120
|
+
def view_config view_type
|
121
|
+
if view_type == :show
|
122
|
+
self.index.merge self.show
|
123
|
+
else
|
124
|
+
self.index.merge view.fetch(view_type, {})
|
125
|
+
end
|
126
|
+
end
|
117
127
|
end
|
118
128
|
end
|
@@ -0,0 +1,71 @@
|
|
1
|
+
require 'deprecation'
|
2
|
+
|
3
|
+
class Blacklight::Configuration
|
4
|
+
class ViewConfig < Blacklight::OpenStructWithHashAccess
|
5
|
+
class Show < ViewConfig
|
6
|
+
extend Deprecation
|
7
|
+
self.deprecation_horizon = 'blacklight 6.0'
|
8
|
+
|
9
|
+
def html_title
|
10
|
+
Deprecation.warn(self.class, "config.show.html_title is deprecated; use config.show.title_field instead")
|
11
|
+
fetch(:html_title, title_field)
|
12
|
+
end
|
13
|
+
|
14
|
+
def heading
|
15
|
+
Deprecation.warn(self.class, "config.show.heading is deprecated; use config.show.title_field instead")
|
16
|
+
fetch(:heading, title_field)
|
17
|
+
end
|
18
|
+
|
19
|
+
def display_type
|
20
|
+
Deprecation.warn(self.class, "config.show.display_type is deprecated; use config.show.display_type_field instead")
|
21
|
+
fetch(:display_type, display_type_field)
|
22
|
+
end
|
23
|
+
|
24
|
+
def html_title= value
|
25
|
+
Deprecation.warn(self.class, "config.show.html_title is deprecated; use config.show.title_field instead")
|
26
|
+
super value
|
27
|
+
self.title_field = value
|
28
|
+
end
|
29
|
+
|
30
|
+
def heading= value
|
31
|
+
Deprecation.warn(self.class, "config.show.heading is deprecated; use config.show.title_field instead")
|
32
|
+
super value
|
33
|
+
self.title_field = value
|
34
|
+
end
|
35
|
+
|
36
|
+
def display_type= value
|
37
|
+
Deprecation.warn(self.class, "config.show.display_type is deprecated; use config.show.display_type_field instead")
|
38
|
+
super value
|
39
|
+
self.display_type_field = value
|
40
|
+
end
|
41
|
+
end
|
42
|
+
|
43
|
+
class Index < ViewConfig
|
44
|
+
extend Deprecation
|
45
|
+
self.deprecation_horizon = 'blacklight 6.0'
|
46
|
+
|
47
|
+
def record_display_type
|
48
|
+
Deprecation.warn(self.class, "config.index.record_display_type is deprecated; use config.index.display_type_field instead")
|
49
|
+
fetch(:record_display_type, display_type_field)
|
50
|
+
end
|
51
|
+
|
52
|
+
def record_display_type= value
|
53
|
+
Deprecation.warn(self.class, "config.index.record_display_type is deprecated; use config.index.display_type_field instead")
|
54
|
+
super value
|
55
|
+
self.display_type_field = value
|
56
|
+
end
|
57
|
+
|
58
|
+
def show_link
|
59
|
+
Deprecation.warn(self.class, "config.index.show_link is deprecated; use config.index.title_field instead")
|
60
|
+
fetch(:show_link, title_field)
|
61
|
+
end
|
62
|
+
|
63
|
+
def show_link= value
|
64
|
+
Deprecation.warn(self.class, "config.index.show_link is deprecated; use config.index.title_field instead")
|
65
|
+
super value
|
66
|
+
self.title_field = value
|
67
|
+
end
|
68
|
+
|
69
|
+
end
|
70
|
+
end
|
71
|
+
end
|
data/lib/blacklight/engine.rb
CHANGED
data/lib/blacklight/routes.rb
CHANGED
@@ -102,7 +102,6 @@ module Blacklight
|
|
102
102
|
get "#{primary_resource}/email", :as => "email_#{primary_resource}"
|
103
103
|
post "#{primary_resource}/email"
|
104
104
|
get "#{primary_resource}/sms", :as => "sms_#{primary_resource}"
|
105
|
-
get "#{primary_resource}/endnote", :as => "endnote_#{primary_resource}"
|
106
105
|
end
|
107
106
|
end
|
108
107
|
|
@@ -161,10 +161,6 @@ module Blacklight::Solr::Document
|
|
161
161
|
@unique_key ||= 'id'
|
162
162
|
end
|
163
163
|
|
164
|
-
def connection
|
165
|
-
@connection ||= Blacklight.solr
|
166
|
-
end
|
167
|
-
|
168
164
|
# Returns array of hashes of registered extensions. Each hash
|
169
165
|
# has a :module_obj key and a :condition_proc key. Usually this
|
170
166
|
# method is only used internally in #apply_extensions, but if you
|
@@ -558,13 +558,12 @@ module Blacklight::SolrHelper
|
|
558
558
|
end
|
559
559
|
|
560
560
|
# returns a solr params hash
|
561
|
-
# if field is nil, the value is fetched from blacklight_config[:index][:show_link]
|
562
561
|
# the :fl (solr param) is set to the "field" value.
|
563
562
|
# per_page is set to 10
|
564
563
|
def solr_opensearch_params(field=nil)
|
565
564
|
solr_params = solr_search_params
|
566
565
|
solr_params[:per_page] = 10
|
567
|
-
solr_params[:fl] = blacklight_config.
|
566
|
+
solr_params[:fl] = field || blacklight_config.view_config('opensearch').title_field
|
568
567
|
solr_params
|
569
568
|
end
|
570
569
|
|
@@ -616,4 +615,11 @@ module Blacklight::SolrHelper
|
|
616
615
|
blacklight_config.index.group
|
617
616
|
end
|
618
617
|
|
618
|
+
def blacklight_solr
|
619
|
+
@solr ||= RSolr.connect(blacklight_solr_config)
|
620
|
+
end
|
621
|
+
|
622
|
+
def blacklight_solr_config
|
623
|
+
Blacklight.solr_config
|
624
|
+
end
|
619
625
|
end
|