blacklight 5.0.0.pre3 → 5.0.0.pre4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/.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
|