hydra-core 6.0.0.pre7 → 6.0.0.pre8
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/lib/generators/hydra/head_generator.rb +2 -84
- data/lib/generators/hydra/templates/catalog_controller.rb +38 -30
- data/lib/generators/hydra/templates/config/initializers/hydra_config.rb +0 -2
- data/lib/hydra-head/version.rb +1 -1
- data/lib/hydra/controller/controller_behavior.rb +7 -1
- metadata +4 -4
@@ -26,7 +26,6 @@ class HeadGenerator < Rails::Generators::Base
|
|
26
26
|
|
27
27
|
# Copy all files in templates/config directory to host config
|
28
28
|
def create_configuration_files
|
29
|
-
#CatalogController
|
30
29
|
copy_file "catalog_controller.rb", "app/controllers/catalog_controller.rb"
|
31
30
|
|
32
31
|
# Initializers
|
@@ -36,7 +35,6 @@ class HeadGenerator < Rails::Generators::Base
|
|
36
35
|
"\n config[:user_model] = '#{model_name.classify}'"
|
37
36
|
end
|
38
37
|
|
39
|
-
|
40
38
|
copy_file "config/initializers/action_dispatch_http_upload_monkey_patch.rb", "config/initializers/action_dispatch_http_upload_monkey_patch.rb"
|
41
39
|
|
42
40
|
# Role Mappings
|
@@ -46,50 +44,10 @@ class HeadGenerator < Rails::Generators::Base
|
|
46
44
|
copy_file "config/role_map_test.yml", "config/role_map_test.yml"
|
47
45
|
|
48
46
|
# Fedora & Solr YAML files
|
49
|
-
|
50
|
-
|
51
|
-
rescue NoMethodError
|
52
|
-
# Looks like we are falling back on the old way of doing this
|
53
|
-
copy_file "config/fedora.yml", "config/fedora.yml"
|
54
|
-
copy_file "config/solr.yml", "config/solr.yml"
|
55
|
-
copy_file "config/jetty.yml", "config/jetty.yml"
|
56
|
-
# Fedora & Solr Config files
|
57
|
-
directory "fedora_conf"
|
58
|
-
directory "solr_conf"
|
59
|
-
end
|
60
|
-
end
|
61
|
-
|
62
|
-
# Register mimetypes required by hydra-head
|
63
|
-
def add_mime_types
|
64
|
-
puts "Updating Mime Types"
|
65
|
-
insert_into_file "config/initializers/mime_types.rb", :before => 'Mime::Type.register_alias "text/plain", :refworks_marc_txt' do <<EOF
|
66
|
-
# Mime Types Added By Hydra Head:
|
67
|
-
|
68
|
-
# Mime::Type.register "text/html", :html
|
69
|
-
# Mime::Type.register "application/pdf", :pdf
|
70
|
-
# Mime::Type.register "image/jpeg2000", :jp2
|
71
|
-
Mime::Type.register_alias "text/html", :textile
|
72
|
-
Mime::Type.register_alias "text/html", :inline
|
73
|
-
|
74
|
-
EOF
|
75
|
-
end
|
47
|
+
invoke('active_fedora:config')
|
48
|
+
copy_file "config/jetty.yml", "config/jetty.yml"
|
76
49
|
end
|
77
50
|
|
78
|
-
#
|
79
|
-
# Migrations
|
80
|
-
#
|
81
|
-
|
82
|
-
# Implement the required interface for Rails::Generators::Migration.
|
83
|
-
# taken from http://github.com/rails/rails/blob/master/activerecord/lib/generators/active_record.rb
|
84
|
-
def self.next_migration_number(dirname)
|
85
|
-
unless @prev_migration_nr
|
86
|
-
@prev_migration_nr = Time.now.utc.strftime("%Y%m%d%H%M%S").to_i
|
87
|
-
else
|
88
|
-
@prev_migration_nr += 1
|
89
|
-
end
|
90
|
-
@prev_migration_nr.to_s
|
91
|
-
end
|
92
|
-
|
93
51
|
# Add Hydra behaviors to the user model
|
94
52
|
def inject_hydra_user_behavior
|
95
53
|
file_path = "app/models/#{model_name.underscore}.rb"
|
@@ -103,28 +61,6 @@ EOF
|
|
103
61
|
end
|
104
62
|
end
|
105
63
|
|
106
|
-
# Add Hydra behaviors and Filters to CatalogController
|
107
|
-
def inject_hydra_catalog_behavior
|
108
|
-
puts "Adding Hydra behaviors to CatalogController"
|
109
|
-
controller_name = "catalog_controller"
|
110
|
-
file_path = "app/controllers/#{controller_name.underscore}.rb"
|
111
|
-
if File.exists?(file_path)
|
112
|
-
insert_into_file file_path, :after => 'include Blacklight::Catalog' do
|
113
|
-
"\n # Extend Blacklight::Catalog with Hydra behaviors (primarily editing)." +
|
114
|
-
"\n include Hydra::Controller::ControllerBehavior\n" +
|
115
|
-
"\n # These before_filters apply the hydra access controls" +
|
116
|
-
"\n before_filter :enforce_show_permissions, :only=>:show" +
|
117
|
-
"\n # This applies appropriate access controls to all solr queries" +
|
118
|
-
"\n CatalogController.solr_search_params_logic += [:add_access_controls_to_solr_params]" +
|
119
|
-
"\n # This filters out objects that you want to exclude from search results, like FileAssets" +
|
120
|
-
"\n CatalogController.solr_search_params_logic += [:exclude_unwanted_models]"
|
121
|
-
|
122
|
-
end
|
123
|
-
else
|
124
|
-
puts " \e[31mFailure\e[0m Could not find #{model_name.underscore}.rb. To add Hydra behaviors to your Blacklight::Catalog Controllers, you must include the Hydra::Controller::ControllerBehavior module in the Controller class definition. See the Hydra::Controller::ControllerBehavior section in the Hydra API Docs for more info."
|
125
|
-
end
|
126
|
-
end
|
127
|
-
|
128
64
|
# Inject call to HydraHead.add_routes in config/routes.rb
|
129
65
|
def inject_hydra_routes
|
130
66
|
insert_into_file "config/routes.rb", :after => 'Blacklight.add_routes(self)' do
|
@@ -133,23 +69,5 @@ EOF
|
|
133
69
|
end
|
134
70
|
end
|
135
71
|
|
136
|
-
# Add Hydra to the application controller
|
137
|
-
def inject_hydra_controller_behavior
|
138
|
-
puts "Adding Hydra behaviors to ApplicationController"
|
139
|
-
controller_name = "ApplicationController"
|
140
|
-
file_path = "app/controllers/#{controller_name.underscore}.rb"
|
141
|
-
if File.exists?(file_path)
|
142
|
-
insert_into_file file_path, :after => 'include Blacklight::Controller' do
|
143
|
-
" \n# Adds Hydra behaviors into the application controller \n" +
|
144
|
-
" include Hydra::Controller::ControllerBehavior\n"
|
145
|
-
end
|
146
|
-
else
|
147
|
-
puts " \e[31mFailure\e[0m Could not find #{model_name.underscore}.rb. To add Hydra behaviors to your Blacklight::Catalog Controllers, you must include the Hydra::Controller::ControllerBehavior module in the Controller class definition. See the Hydra::Controller::ControllerBehavior section in the Hydra API Docs for more info."
|
148
|
-
end
|
149
|
-
end
|
150
|
-
|
151
|
-
|
152
|
-
|
153
|
-
|
154
72
|
end # HeadGenerator
|
155
73
|
end # Hydra
|
@@ -4,6 +4,14 @@ require 'blacklight/catalog'
|
|
4
4
|
class CatalogController < ApplicationController
|
5
5
|
|
6
6
|
include Blacklight::Catalog
|
7
|
+
include Hydra::Controller::ControllerBehavior
|
8
|
+
# These before_filters apply the hydra access controls
|
9
|
+
before_filter :enforce_show_permissions, :only=>:show
|
10
|
+
# This applies appropriate access controls to all solr queries
|
11
|
+
CatalogController.solr_search_params_logic += [:add_access_controls_to_solr_params]
|
12
|
+
# This filters out objects that you want to exclude from search results, like FileAssets
|
13
|
+
CatalogController.solr_search_params_logic += [:exclude_unwanted_models]
|
14
|
+
|
7
15
|
|
8
16
|
configure_blacklight do |config|
|
9
17
|
config.default_solr_params = {
|
@@ -39,13 +47,13 @@ class CatalogController < ApplicationController
|
|
39
47
|
#
|
40
48
|
# :show may be set to false if you don't want the facet to be drawn in the
|
41
49
|
# facet bar
|
42
|
-
config.add_facet_field '
|
43
|
-
config.add_facet_field '
|
44
|
-
config.add_facet_field '
|
45
|
-
config.add_facet_field '
|
46
|
-
config.add_facet_field '
|
47
|
-
config.add_facet_field '
|
48
|
-
config.add_facet_field '
|
50
|
+
config.add_facet_field solr_name('object_type', :facetable), :label => 'Format'
|
51
|
+
config.add_facet_field solr_name('pub_date', :facetable), :label => 'Publication Year'
|
52
|
+
config.add_facet_field solr_name('subject_topic', :facetable), :label => 'Topic', :limit => 20
|
53
|
+
config.add_facet_field solr_name('language', :facetable), :label => 'Language', :limit => true
|
54
|
+
config.add_facet_field solr_name('lc1_letter', :facetable), :label => 'Call Number'
|
55
|
+
config.add_facet_field solr_name('subject_geo', :facetable), :label => 'Region'
|
56
|
+
config.add_facet_field solr_name('subject_era', :facetable), :label => 'Era'
|
49
57
|
|
50
58
|
# Have BL send all facet field names to Solr, which has been the default
|
51
59
|
# previously. Simply remove these lines if you'd rather use Solr request
|
@@ -57,32 +65,32 @@ class CatalogController < ApplicationController
|
|
57
65
|
|
58
66
|
# solr fields to be displayed in the index (search results) view
|
59
67
|
# The ordering of the field names is the order of the display
|
60
|
-
config.add_index_field '
|
61
|
-
config.add_index_field '
|
62
|
-
config.add_index_field '
|
63
|
-
config.add_index_field '
|
64
|
-
config.add_index_field 'format', :label => 'Format:'
|
65
|
-
config.add_index_field '
|
66
|
-
config.add_index_field '
|
67
|
-
config.add_index_field '
|
68
|
-
config.add_index_field '
|
68
|
+
config.add_index_field solr_name('title', :stored_searchable, type: :string), :label => 'Title:'
|
69
|
+
config.add_index_field solr_name('title_vern', :stored_searchable, type: :string), :label => 'Title:'
|
70
|
+
config.add_index_field solr_name('author', :stored_searchable, type: :string), :label => 'Author:'
|
71
|
+
config.add_index_field solr_name('author_vern', :stored_searchable, type: :string), :label => 'Author:'
|
72
|
+
config.add_index_field solr_name('format', :symbol), :label => 'Format:'
|
73
|
+
config.add_index_field solr_name('language', :stored_searchable, type: :string), :label => 'Language:'
|
74
|
+
config.add_index_field solr_name('published', :stored_searchable, type: :string), :label => 'Published:'
|
75
|
+
config.add_index_field solr_name('published_vern', :stored_searchable, type: :string), :label => 'Published:'
|
76
|
+
config.add_index_field solr_name('lc_callnum', :stored_searchable, type: :string), :label => 'Call number:'
|
69
77
|
|
70
78
|
# solr fields to be displayed in the show (single result) view
|
71
79
|
# The ordering of the field names is the order of the display
|
72
|
-
config.add_show_field '
|
73
|
-
config.add_show_field '
|
74
|
-
config.add_show_field '
|
75
|
-
config.add_show_field '
|
76
|
-
config.add_show_field '
|
77
|
-
config.add_show_field '
|
78
|
-
config.add_show_field 'format', :label => 'Format:'
|
79
|
-
config.add_show_field 'url_fulltext_tsim', :label => 'URL:'
|
80
|
-
config.add_show_field 'url_suppl_tsim', :label => 'More Information:'
|
81
|
-
config.add_show_field '
|
82
|
-
config.add_show_field '
|
83
|
-
config.add_show_field '
|
84
|
-
config.add_show_field '
|
85
|
-
config.add_show_field '
|
80
|
+
config.add_show_field solr_name('title', :stored_searchable, type: :string), :label => 'Title:'
|
81
|
+
config.add_show_field solr_name('title_vern', :stored_searchable, type: :string), :label => 'Title:'
|
82
|
+
config.add_show_field solr_name('subtitle', :stored_searchable, type: :string), :label => 'Subtitle:'
|
83
|
+
config.add_show_field solr_name('subtitle_vern', :stored_searchable, type: :string), :label => 'Subtitle:'
|
84
|
+
config.add_show_field solr_name('author', :stored_searchable, type: :string), :label => 'Author:'
|
85
|
+
config.add_show_field solr_name('author_vern', :stored_searchable, type: :string), :label => 'Author:'
|
86
|
+
config.add_show_field solr_name('format', :symbol), :label => 'Format:'
|
87
|
+
config.add_show_field solr_name('url_fulltext_tsim', :stored_searchable, type: :string), :label => 'URL:'
|
88
|
+
config.add_show_field solr_name('url_suppl_tsim', :stored_searchable, type: :string), :label => 'More Information:'
|
89
|
+
config.add_show_field solr_name('language', :stored_searchable, type: :string), :label => 'Language:'
|
90
|
+
config.add_show_field solr_name('published', :stored_searchable, type: :string), :label => 'Published:'
|
91
|
+
config.add_show_field solr_name('published_vern', :stored_searchable, type: :string), :label => 'Published:'
|
92
|
+
config.add_show_field solr_name('lc_callnum', :stored_searchable, type: :string), :label => 'Call number:'
|
93
|
+
config.add_show_field solr_name('isbn', :stored_searchable, type: :string), :label => 'ISBN:'
|
86
94
|
|
87
95
|
# "fielded" search configuration. Used by pulldown among other places.
|
88
96
|
# For supported keys in hash, see rdoc for Blacklight::SearchFields
|
data/lib/hydra-head/version.rb
CHANGED
@@ -34,5 +34,11 @@ module Hydra::Controller::ControllerBehavior
|
|
34
34
|
def user_key
|
35
35
|
current_user.user_key if current_user
|
36
36
|
end
|
37
|
-
|
37
|
+
|
38
|
+
module ClassMethods
|
39
|
+
# get the solr name for a field with this name and using the given solrizer descriptor
|
40
|
+
def solr_name(name, *opts)
|
41
|
+
ActiveFedora::SolrService.solr_name(name, *opts)
|
42
|
+
end
|
43
|
+
end
|
38
44
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: hydra-core
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 6.0.0.
|
4
|
+
version: 6.0.0.pre8
|
5
5
|
prerelease: 6
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -10,7 +10,7 @@ authors:
|
|
10
10
|
autorequire:
|
11
11
|
bindir: bin
|
12
12
|
cert_chain: []
|
13
|
-
date: 2013-02-
|
13
|
+
date: 2013-02-10 00:00:00.000000000 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: rails
|
@@ -179,7 +179,7 @@ dependencies:
|
|
179
179
|
requirements:
|
180
180
|
- - '='
|
181
181
|
- !ruby/object:Gem::Version
|
182
|
-
version: 6.0.0.
|
182
|
+
version: 6.0.0.pre8
|
183
183
|
type: :runtime
|
184
184
|
prerelease: false
|
185
185
|
version_requirements: !ruby/object:Gem::Requirement
|
@@ -187,7 +187,7 @@ dependencies:
|
|
187
187
|
requirements:
|
188
188
|
- - '='
|
189
189
|
- !ruby/object:Gem::Version
|
190
|
-
version: 6.0.0.
|
190
|
+
version: 6.0.0.pre8
|
191
191
|
- !ruby/object:Gem::Dependency
|
192
192
|
name: sqlite3
|
193
193
|
requirement: !ruby/object:Gem::Requirement
|