hydra-head 3.0.1 → 3.1.0.pre1
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/Gemfile.lock +54 -20
- data/HISTORY.textile +0 -7
- data/app/controllers/assets_controller.rb +1 -2
- data/app/controllers/contributors_controller.rb +2 -2
- data/app/controllers/downloads_controller.rb +1 -3
- data/app/controllers/file_assets_controller.rb +2 -4
- data/app/controllers/generic_content_objects_controller.rb +1 -2
- data/app/controllers/get_controller.rb +1 -3
- data/app/controllers/permissions_controller.rb +14 -28
- data/app/models/file_asset.rb +6 -2
- data/app/views/catalog/_edit_partials/_default.html.erb +5 -5
- data/app/views/contributors/_index.html.erb +1 -1
- data/app/views/generic_content_objects/_show_description.html.erb +3 -3
- data/app/views/mods_assets/_publication_form.html.erb +2 -2
- data/app/views/mods_assets/_show_contributors.html.erb +4 -4
- data/app/views/mods_assets/_show_description.html.erb +4 -4
- data/app/views/mods_assets/_show_publication.html.erb +2 -2
- data/app/views/permissions/_edit_person_permissions.html.erb +1 -1
- data/app/views/permissions/_index.html.erb +2 -2
- data/hydra-head.gemspec +3 -4
- data/lib/generators/hydra/head_generator.rb +2 -3
- data/lib/generators/hydra/templates/config/initializers/action_dispatch_http_upload_monkey_patch.rb +12 -0
- data/lib/generators/hydra/templates/config/initializers/blacklight_config.rb +0 -7
- data/lib/generators/hydra/templates/solr_conf/conf/schema.xml +1 -7
- data/lib/generators/hydra/templates/solr_conf/conf/solrconfig.xml +55 -117
- data/lib/hydra/access_controls_enforcement.rb +5 -47
- data/lib/hydra/catalog.rb +1 -1
- data/lib/hydra/common_mods_index_methods.rb +0 -1
- data/lib/hydra/file_assets_helper.rb +0 -1
- data/lib/hydra/generic_content.rb +7 -6
- data/lib/hydra/model_methods.rb +7 -6
- data/lib/hydra/rights_metadata.rb +2 -2
- data/lib/hydra-head/version.rb +1 -1
- data/lib/mediashelf/active_fedora_helper.rb +0 -10
- data/lib/railties/hydra-fixtures.rake +14 -18
- data/lib/railties/hyhead_rspec.rake +0 -10
- data/solr_conf/conf/schema.xml +0 -2
- data/solr_conf/conf/solrconfig.xml +29 -116
- data/tasks/hydra-head.rake +6 -6
- data/test_support/features/absent_model_search_result.feature +8 -2
- data/test_support/features/step_definitions/edit_metadata_steps.rb +1 -1
- data/test_support/fixtures/small_file.txt +1 -0
- data/test_support/spec/controllers/catalog_controller_spec.rb +16 -15
- data/test_support/spec/controllers/file_assets_controller_spec.rb +7 -14
- data/test_support/spec/controllers/permissions_controller_spec.rb +12 -4
- data/test_support/spec/helpers/access_controls_enforcement_spec.rb +0 -77
- data/test_support/spec/helpers/hydra_model_methods_spec.rb +9 -4
- data/test_support/spec/integration/file_asset_spec.rb +115 -102
- data/test_support/spec/lib/active_fedora_helper_spec.rb +1 -1
- data/test_support/spec/models/audio_asset_spec.rb +3 -3
- data/test_support/spec/models/file_asset_spec.rb +6 -5
- data/test_support/spec/models/generic_content_spec.rb +1 -2
- data/test_support/spec/models/generic_image_spec.rb +1 -1
- data/test_support/spec/models/hydra_rights_metadata_spec.rb +8 -3
- data/test_support/spec/models/image_asset_spec.rb +3 -3
- data/test_support/spec/models/mods_asset_spec.rb +3 -3
- data/test_support/spec/models/video_asset_spec.rb +3 -3
- data/vendor/cache/{active-fedora-3.0.7.gem → active-fedora-3.1.0.rc1.gem} +0 -0
- data/vendor/cache/akami-1.0.0.gem +0 -0
- data/vendor/cache/factory_girl-2.2.0.gem +0 -0
- data/vendor/cache/ffi-1.0.10.gem +0 -0
- data/vendor/cache/gherkin-2.5.4.gem +0 -0
- data/vendor/cache/gyoku-0.4.4.gem +0 -0
- data/vendor/cache/httpi-0.9.5.gem +0 -0
- data/vendor/cache/jettywrapper-1.0.1.gem +0 -0
- data/vendor/cache/nori-1.0.2.gem +0 -0
- data/vendor/cache/rdf-0.3.4.1.gem +0 -0
- data/vendor/cache/rdf-rdfxml-0.3.5.gem +0 -0
- data/vendor/cache/rdoc-3.11.gem +0 -0
- data/vendor/cache/rspec-2.7.0.gem +0 -0
- data/vendor/cache/rspec-core-2.7.1.gem +0 -0
- data/vendor/cache/rspec-expectations-2.7.0.gem +0 -0
- data/vendor/cache/rspec-mocks-2.7.0.gem +0 -0
- data/vendor/cache/rspec-rails-2.7.0.gem +0 -0
- data/vendor/cache/rubydora-0.1.9.gem +0 -0
- data/vendor/cache/savon-0.9.7.gem +0 -0
- data/vendor/cache/wasabi-2.0.0.gem +0 -0
- metadata +94 -93
- data/RELEASE_NOTES.textile +0 -8
- data/vendor/cache/factory_girl-2.1.2.gem +0 -0
- data/vendor/cache/ffi-1.0.9.gem +0 -0
- data/vendor/cache/gherkin-2.5.2.gem +0 -0
- data/vendor/cache/jettywrapper-0.0.10.gem +0 -0
- data/vendor/cache/rcov-0.9.11.gem +0 -0
- data/vendor/cache/rdoc-3.10.gem +0 -0
- data/vendor/cache/rspec-2.6.0.gem +0 -0
- data/vendor/cache/rspec-core-2.6.4.gem +0 -0
- data/vendor/cache/rspec-expectations-2.6.0.gem +0 -0
- data/vendor/cache/rspec-mocks-2.6.0.gem +0 -0
- data/vendor/cache/rspec-rails-2.6.1.gem +0 -0
data/Gemfile.lock
CHANGED
|
@@ -3,7 +3,7 @@ PATH
|
|
|
3
3
|
specs:
|
|
4
4
|
hydra-head (3.0.0.rc2)
|
|
5
5
|
RedCloth (= 4.2.3)
|
|
6
|
-
active-fedora (~> 3.0.
|
|
6
|
+
active-fedora (~> 3.1.0.rc1)
|
|
7
7
|
blacklight (= 3.0.0)
|
|
8
8
|
block_helpers
|
|
9
9
|
builder
|
|
@@ -28,11 +28,10 @@ PATH
|
|
|
28
28
|
rack-test
|
|
29
29
|
rails (~> 3.0.10)
|
|
30
30
|
rake
|
|
31
|
-
rcov
|
|
32
31
|
sanitize
|
|
33
32
|
solr-ruby
|
|
34
33
|
solrizer (>= 1.1.0)
|
|
35
|
-
solrizer-fedora (>= 1.1.
|
|
34
|
+
solrizer-fedora (>= 1.1.3)
|
|
36
35
|
term-ansicolor
|
|
37
36
|
trollop
|
|
38
37
|
will_paginate
|
|
@@ -56,7 +55,7 @@ GEM
|
|
|
56
55
|
rack-mount (~> 0.6.14)
|
|
57
56
|
rack-test (~> 0.5.7)
|
|
58
57
|
tzinfo (~> 0.3.23)
|
|
59
|
-
active-fedora (3.0.
|
|
58
|
+
active-fedora (3.1.0.rc1)
|
|
60
59
|
activeresource (~> 3.0.0)
|
|
61
60
|
activesupport (~> 3.0.0)
|
|
62
61
|
equivalent-xml
|
|
@@ -66,6 +65,9 @@ GEM
|
|
|
66
65
|
multipart-post (= 1.1.2)
|
|
67
66
|
nokogiri
|
|
68
67
|
om (>= 1.4.3)
|
|
68
|
+
rdf
|
|
69
|
+
rdf-rdfxml
|
|
70
|
+
rubydora (~> 0.1.9)
|
|
69
71
|
solr-ruby (>= 0.0.6)
|
|
70
72
|
solrizer (> 1.0.0)
|
|
71
73
|
xml-simple (>= 1.0.12)
|
|
@@ -83,6 +85,8 @@ GEM
|
|
|
83
85
|
activesupport (= 3.0.10)
|
|
84
86
|
activesupport (3.0.10)
|
|
85
87
|
addressable (2.2.6)
|
|
88
|
+
akami (1.0.0)
|
|
89
|
+
gyoku (>= 0.4.0)
|
|
86
90
|
arel (2.0.10)
|
|
87
91
|
blacklight (3.0.0)
|
|
88
92
|
kaminari
|
|
@@ -125,18 +129,25 @@ GEM
|
|
|
125
129
|
erubis (2.6.6)
|
|
126
130
|
abstract (>= 1.0.0)
|
|
127
131
|
facets (2.8.4)
|
|
128
|
-
factory_girl (2.
|
|
132
|
+
factory_girl (2.2.0)
|
|
129
133
|
activesupport
|
|
130
134
|
fastercsv (1.5.4)
|
|
131
|
-
ffi (1.0.
|
|
132
|
-
gherkin (2.5.
|
|
135
|
+
ffi (1.0.10)
|
|
136
|
+
gherkin (2.5.4)
|
|
133
137
|
json (>= 1.4.6)
|
|
138
|
+
gyoku (0.4.4)
|
|
139
|
+
builder (>= 2.1.2)
|
|
134
140
|
haml (3.1.3)
|
|
135
141
|
httparty (0.8.1)
|
|
136
142
|
multi_json
|
|
137
143
|
multi_xml
|
|
144
|
+
httpi (0.9.5)
|
|
145
|
+
rack
|
|
138
146
|
i18n (0.5.0)
|
|
139
|
-
jettywrapper (
|
|
147
|
+
jettywrapper (1.0.1)
|
|
148
|
+
activesupport (>= 3.0.0)
|
|
149
|
+
childprocess
|
|
150
|
+
i18n
|
|
140
151
|
logger
|
|
141
152
|
mediashelf-loggable
|
|
142
153
|
json (1.6.1)
|
|
@@ -163,6 +174,7 @@ GEM
|
|
|
163
174
|
multi_xml (0.4.1)
|
|
164
175
|
multipart-post (1.1.2)
|
|
165
176
|
nokogiri (1.5.0)
|
|
177
|
+
nori (1.0.2)
|
|
166
178
|
om (1.4.3)
|
|
167
179
|
mediashelf-loggable
|
|
168
180
|
nokogiri (>= 1.4.2)
|
|
@@ -188,8 +200,12 @@ GEM
|
|
|
188
200
|
thor (~> 0.14.4)
|
|
189
201
|
rake (0.9.2)
|
|
190
202
|
rbx-require-relative (0.0.5)
|
|
191
|
-
|
|
192
|
-
|
|
203
|
+
rdf (0.3.4.1)
|
|
204
|
+
addressable (>= 2.2.6)
|
|
205
|
+
rdf-rdfxml (0.3.5)
|
|
206
|
+
nokogiri (>= 1.4.4)
|
|
207
|
+
rdf (>= 0.3.4)
|
|
208
|
+
rdoc (3.11)
|
|
193
209
|
json (~> 1.4)
|
|
194
210
|
rest-client (1.6.7)
|
|
195
211
|
mime-types (>= 1.16)
|
|
@@ -197,27 +213,43 @@ GEM
|
|
|
197
213
|
builder (>= 2.1.2)
|
|
198
214
|
rsolr-ext (1.0.3)
|
|
199
215
|
rsolr (>= 1.0.2)
|
|
200
|
-
rspec (2.
|
|
201
|
-
rspec-core (~> 2.
|
|
202
|
-
rspec-expectations (~> 2.
|
|
203
|
-
rspec-mocks (~> 2.
|
|
204
|
-
rspec-core (2.
|
|
205
|
-
rspec-expectations (2.
|
|
216
|
+
rspec (2.7.0)
|
|
217
|
+
rspec-core (~> 2.7.0)
|
|
218
|
+
rspec-expectations (~> 2.7.0)
|
|
219
|
+
rspec-mocks (~> 2.7.0)
|
|
220
|
+
rspec-core (2.7.1)
|
|
221
|
+
rspec-expectations (2.7.0)
|
|
206
222
|
diff-lcs (~> 1.1.2)
|
|
207
|
-
rspec-mocks (2.
|
|
208
|
-
rspec-rails (2.
|
|
223
|
+
rspec-mocks (2.7.0)
|
|
224
|
+
rspec-rails (2.7.0)
|
|
209
225
|
actionpack (~> 3.0)
|
|
210
226
|
activesupport (~> 3.0)
|
|
211
227
|
railties (~> 3.0)
|
|
212
|
-
rspec (~> 2.
|
|
228
|
+
rspec (~> 2.7.0)
|
|
213
229
|
ruby-debug (0.10.4)
|
|
214
230
|
columnize (>= 0.1)
|
|
215
231
|
ruby-debug-base (~> 0.10.4.0)
|
|
216
232
|
ruby-debug-base (0.10.4)
|
|
217
233
|
linecache (>= 0.3)
|
|
234
|
+
rubydora (0.1.9)
|
|
235
|
+
activemodel
|
|
236
|
+
activesupport
|
|
237
|
+
fastercsv
|
|
238
|
+
mime-types
|
|
239
|
+
nokogiri
|
|
240
|
+
rest-client
|
|
241
|
+
savon
|
|
218
242
|
rubyzip (0.9.4)
|
|
219
243
|
sanitize (2.0.3)
|
|
220
244
|
nokogiri (>= 1.4.4, < 1.6)
|
|
245
|
+
savon (0.9.7)
|
|
246
|
+
akami (~> 1.0)
|
|
247
|
+
builder (>= 2.1.2)
|
|
248
|
+
gyoku (>= 0.4.0)
|
|
249
|
+
httpi (~> 0.9)
|
|
250
|
+
nokogiri (>= 1.4.0)
|
|
251
|
+
nori (~> 1.0)
|
|
252
|
+
wasabi (~> 2.0)
|
|
221
253
|
selenium-webdriver (2.8.0)
|
|
222
254
|
childprocess (>= 0.2.1)
|
|
223
255
|
ffi (>= 1.0.7)
|
|
@@ -246,6 +278,8 @@ GEM
|
|
|
246
278
|
trollop (1.16.2)
|
|
247
279
|
tzinfo (0.3.30)
|
|
248
280
|
unicode (0.4.0)
|
|
281
|
+
wasabi (2.0.0)
|
|
282
|
+
nokogiri (>= 1.4.0)
|
|
249
283
|
will_paginate (3.0.2)
|
|
250
284
|
xml-simple (1.1.1)
|
|
251
285
|
xpath (0.1.4)
|
|
@@ -261,7 +295,7 @@ DEPENDENCIES
|
|
|
261
295
|
factory_girl
|
|
262
296
|
gherkin
|
|
263
297
|
hydra-head!
|
|
264
|
-
jettywrapper (
|
|
298
|
+
jettywrapper (>= 1.0.0)
|
|
265
299
|
mocha
|
|
266
300
|
rake
|
|
267
301
|
rest-client
|
data/HISTORY.textile
CHANGED
|
@@ -1,10 +1,3 @@
|
|
|
1
|
-
h3. 3.0.1
|
|
2
|
-
|
|
3
|
-
* generator has the correct solr config files
|
|
4
|
-
* reverted back to using object_type_facet for "Format" facet. This is instead of using active_fedora_model_s, which made some cucumber tests unstable because active_fedora_model_s is populated inconsistently by ActiveFedora (really we should deprecate that solr field)
|
|
5
|
-
|
|
6
|
-
h2. 3.0.0: Upgrade to Rails 3
|
|
7
|
-
|
|
8
1
|
h3. 0.0.1
|
|
9
2
|
|
|
10
3
|
Pulled plugin code from Hydrus
|
|
@@ -5,7 +5,6 @@ class AssetsController < ApplicationController
|
|
|
5
5
|
include Blacklight::SolrHelper
|
|
6
6
|
include Hydra::RepositoryController
|
|
7
7
|
include Hydra::AssetsControllerHelper
|
|
8
|
-
# include WhiteListHelper
|
|
9
8
|
include ReleaseProcessHelper
|
|
10
9
|
|
|
11
10
|
|
|
@@ -13,7 +12,7 @@ class AssetsController < ApplicationController
|
|
|
13
12
|
helper :hydra
|
|
14
13
|
|
|
15
14
|
before_filter :search_session, :history_session
|
|
16
|
-
before_filter :require_solr
|
|
15
|
+
before_filter :require_solr
|
|
17
16
|
|
|
18
17
|
# need to include this after the :require_solr/fedora before filters because of the before filter that the workflow provides.
|
|
19
18
|
include Hydra::SubmissionWorkflow
|
|
@@ -5,7 +5,7 @@ class ContributorsController < ApplicationController
|
|
|
5
5
|
include MediaShelf::ActiveFedoraHelper
|
|
6
6
|
include Hydra::RepositoryController
|
|
7
7
|
include Hydra::AssetsControllerHelper
|
|
8
|
-
before_filter :require_solr
|
|
8
|
+
before_filter :require_solr
|
|
9
9
|
|
|
10
10
|
# need to include this after the :require_solr/fedora before filters because of the before filter that the workflow provides.
|
|
11
11
|
include Hydra::SubmissionWorkflow
|
|
@@ -99,4 +99,4 @@ class ContributorsController < ApplicationController
|
|
|
99
99
|
af_model.find(asset_id)
|
|
100
100
|
end
|
|
101
101
|
|
|
102
|
-
end
|
|
102
|
+
end
|
|
@@ -4,8 +4,6 @@ class DownloadsController < ApplicationController
|
|
|
4
4
|
include Hydra::RepositoryController
|
|
5
5
|
helper :downloads
|
|
6
6
|
|
|
7
|
-
before_filter :require_fedora
|
|
8
|
-
|
|
9
7
|
# Note: Actual downloads are handled by the index method insead of the show method
|
|
10
8
|
# in order to avoid ActionController being clever with the filenames/extensions/formats.
|
|
11
9
|
# To download a datastream, pass the datastream id as ?document_id=#{dsid} in the url
|
|
@@ -33,4 +31,4 @@ class DownloadsController < ApplicationController
|
|
|
33
31
|
#
|
|
34
32
|
# end
|
|
35
33
|
|
|
36
|
-
end
|
|
34
|
+
end
|
|
@@ -7,8 +7,6 @@ class FileAssetsController < ApplicationController
|
|
|
7
7
|
include MediaShelf::ActiveFedoraHelper
|
|
8
8
|
include Blacklight::SolrHelper
|
|
9
9
|
|
|
10
|
-
|
|
11
|
-
before_filter :require_fedora
|
|
12
10
|
before_filter :require_solr, :only=>[:index, :create, :show, :destroy]
|
|
13
11
|
|
|
14
12
|
# need to include this after the :require_solr/fedora before filters because of the before filter that the workflow provides.
|
|
@@ -89,11 +87,11 @@ From file_assets/_new.html.haml
|
|
|
89
87
|
notice = []
|
|
90
88
|
@file_assets.each do |file_asset|
|
|
91
89
|
apply_depositor_metadata(file_asset)
|
|
92
|
-
|
|
90
|
+
|
|
93
91
|
notice << "The file #{file_asset.label} has been saved in <a href=\"#{asset_url(file_asset.pid)}\">#{file_asset.pid}</a>."
|
|
94
92
|
|
|
95
93
|
if !params[:container_id].nil?
|
|
96
|
-
associate_file_asset_with_container(file_asset,params[:container_id])
|
|
94
|
+
associate_file_asset_with_container(file_asset,'info:fedora/' + params[:container_id])
|
|
97
95
|
end
|
|
98
96
|
|
|
99
97
|
## Apply any posted file metadata
|
|
@@ -6,7 +6,6 @@ class GenericContentObjectsController < ApplicationController
|
|
|
6
6
|
include MediaShelf::ActiveFedoraHelper
|
|
7
7
|
include Blacklight::SolrHelper
|
|
8
8
|
|
|
9
|
-
before_filter :require_fedora
|
|
10
9
|
before_filter :require_solr
|
|
11
10
|
|
|
12
11
|
|
|
@@ -35,4 +34,4 @@ class GenericContentObjectsController < ApplicationController
|
|
|
35
34
|
private
|
|
36
35
|
|
|
37
36
|
|
|
38
|
-
end
|
|
37
|
+
end
|
|
@@ -4,8 +4,6 @@ class GetController < ApplicationController
|
|
|
4
4
|
include Hydra::RepositoryController
|
|
5
5
|
helper :downloads
|
|
6
6
|
|
|
7
|
-
before_filter :require_fedora
|
|
8
|
-
|
|
9
7
|
def show
|
|
10
8
|
fedora_object = ActiveFedora::Base.load_instance(params[:id])
|
|
11
9
|
|
|
@@ -36,4 +34,4 @@ class GetController < ApplicationController
|
|
|
36
34
|
send_data datastream.content, :filename=>datastream.label, :type=>datastream.attributes["mimeType"]
|
|
37
35
|
end
|
|
38
36
|
|
|
39
|
-
end
|
|
37
|
+
end
|
|
@@ -3,7 +3,7 @@ class PermissionsController < ApplicationController
|
|
|
3
3
|
include MediaShelf::ActiveFedoraHelper
|
|
4
4
|
include Hydra::AssetsControllerHelper
|
|
5
5
|
|
|
6
|
-
before_filter :require_solr
|
|
6
|
+
before_filter :require_solr
|
|
7
7
|
# need to include this after the :require_solr/fedora before filters because of the before filter that the workflow provides.
|
|
8
8
|
include Hydra::SubmissionWorkflow
|
|
9
9
|
|
|
@@ -60,11 +60,11 @@ Removed from permissions/_new.html.erb
|
|
|
60
60
|
# xml_content = Fedora::Repository.instance.fetch_custom(pid, "datastreams/#{dsid}/content")
|
|
61
61
|
#@document_fedora=ActiveFedora::Base.load_instance(params[:asset_id])
|
|
62
62
|
@document_fedora=ActiveFedora::Base.load_instance(params[:asset_id])
|
|
63
|
-
xml_content = @document_fedora.
|
|
64
|
-
ds = Hydra::RightsMetadata.
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
@document_fedora.
|
|
63
|
+
xml_content = @document_fedora.datastreams[dsid].content
|
|
64
|
+
ds = Hydra::RightsMetadata.new(@document_fedora.inner_object, dsid)
|
|
65
|
+
Hydra::RightsMetadata.from_xml(xml_content, ds)
|
|
66
|
+
|
|
67
|
+
@document_fedora.datastreams[dsid] = ds
|
|
68
68
|
|
|
69
69
|
access_actor_type = params["permission"]["actor_type"]
|
|
70
70
|
actor_id = params["permission"]["actor_id"]
|
|
@@ -73,13 +73,7 @@ Removed from permissions/_new.html.erb
|
|
|
73
73
|
# update the datastream's values
|
|
74
74
|
result = ds.permissions({access_actor_type => actor_id}, access_level)
|
|
75
75
|
|
|
76
|
-
|
|
77
|
-
# !! Careful when re-working this. If you init the object, replace the datastream, and call object.save, the datastream might get indexed twice!
|
|
78
|
-
# FUTURE: ActiveFedora::Base will support this soon:
|
|
79
|
-
# ActiveFedora::Base.replace_datastream("changeme:25","rightsMetadata", ds).
|
|
80
|
-
# base_object.replace_datastream("rightsMetadata", ds)
|
|
81
|
-
ds.pid = pid
|
|
82
|
-
ds.dsid = dsid
|
|
76
|
+
ds.serialize!
|
|
83
77
|
ds.save
|
|
84
78
|
|
|
85
79
|
# Re-index the object
|
|
@@ -114,25 +108,17 @@ Removed from permissions/_new.html.erb
|
|
|
114
108
|
end
|
|
115
109
|
|
|
116
110
|
dsid = "rightsMetadata"
|
|
117
|
-
# xml_content = Fedora::Repository.instance.fetch_custom(pid, "datastreams/#{dsid}/content")
|
|
118
|
-
#@document_fedora=ActiveFedora::Base.load_instance(params[:asset_id])
|
|
119
111
|
@document_fedora=ActiveFedora::Base.load_instance(pid)
|
|
120
|
-
xml_content = @document_fedora.
|
|
121
|
-
ds = Hydra::RightsMetadata.
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
112
|
+
xml_content = @document_fedora.datastreams[dsid].content
|
|
113
|
+
ds = Hydra::RightsMetadata.new(@document_fedora.inner_object, dsid)
|
|
114
|
+
Hydra::RightsMetadata.from_xml(xml_content, ds)
|
|
115
|
+
@document_fedora.datastreams[dsid] = ds
|
|
116
|
+
|
|
117
|
+
|
|
126
118
|
# update the datastream's values
|
|
127
119
|
result = ds.update_permissions(params[:permission])
|
|
128
120
|
|
|
129
|
-
|
|
130
|
-
# !! Careful when re-working this. If you init the object, replace the datastream, and call object.save, the datastream might get indexed twice!
|
|
131
|
-
# FUTURE: ActiveFedora::Base will support this soon:
|
|
132
|
-
# ActiveFedora::Base.replace_datastream("changeme:25","rightsMetadata", ds).
|
|
133
|
-
# base_object.replace_datastream("rightsMetadata", ds)
|
|
134
|
-
ds.pid = pid
|
|
135
|
-
ds.dsid = dsid
|
|
121
|
+
ds.serialize!
|
|
136
122
|
ds.save
|
|
137
123
|
|
|
138
124
|
# Re-index the object
|
data/app/models/file_asset.rb
CHANGED
|
@@ -33,10 +33,14 @@ class FileAsset < ActiveFedora::Base
|
|
|
33
33
|
|
|
34
34
|
has_metadata :name => "descMetadata", :type => ActiveFedora::QualifiedDublinCoreDatastream do |m|
|
|
35
35
|
end
|
|
36
|
+
|
|
37
|
+
def label
|
|
38
|
+
descMetadata.title_values.first
|
|
39
|
+
end
|
|
36
40
|
|
|
37
41
|
def label=(label)
|
|
38
42
|
super
|
|
39
|
-
|
|
43
|
+
descMetadata.title_values = label
|
|
40
44
|
end
|
|
41
45
|
|
|
42
46
|
# augments add_file_datastream to also put file size (in bytes/KB/MB/GB/TB) in dc:extent
|
|
@@ -49,7 +53,7 @@ class FileAsset < ActiveFedora::Base
|
|
|
49
53
|
else
|
|
50
54
|
size = ""
|
|
51
55
|
end
|
|
52
|
-
|
|
56
|
+
datastreams["descMetadata"].extent_values = size
|
|
53
57
|
end
|
|
54
58
|
|
|
55
59
|
# Mimic the relationship accessor that would be created if a containers relationship existed
|
|
@@ -22,7 +22,7 @@
|
|
|
22
22
|
<dt>state:</dt>
|
|
23
23
|
<dd><%= @fedora_object.state %></dd>
|
|
24
24
|
<dt>owner id:</dt>
|
|
25
|
-
<dd><%= @fedora_object.
|
|
25
|
+
<dd><%= @fedora_object.inner_object.ownerId %></dd>
|
|
26
26
|
</dl>
|
|
27
27
|
<dl>
|
|
28
28
|
<dt>created:</dt>
|
|
@@ -40,10 +40,10 @@
|
|
|
40
40
|
<div id='<%=dsid%>'>
|
|
41
41
|
<h1><%=dsid%></h1>
|
|
42
42
|
<dl>
|
|
43
|
-
<%= ("<dt>label:</dt><dd>" + @datastreams[dsid].
|
|
44
|
-
<%= ("<dt>last modified:</dt><dd>" + @datastreams[dsid].
|
|
45
|
-
<%= ("<dt>mimetype:</dt><dd>" + @datastreams[dsid].
|
|
46
|
-
<%= ("<dt>control group:</dt><dd>" + @datastreams[dsid].
|
|
43
|
+
<%= ("<dt>label:</dt><dd>" + @datastreams[dsid].dsLabel + "</dd>").html_safe unless @datastreams[dsid].dsLabel.blank? %>
|
|
44
|
+
<%= ("<dt>last modified:</dt><dd>" + @datastreams[dsid].lastModifiedDate + "</dd>").html_safe unless @datastreams[dsid].lastModifiedDate.blank? %>
|
|
45
|
+
<%= ("<dt>mimetype:</dt><dd>" + @datastreams[dsid].mimeType + "</dd>").html_safe unless @datastreams[dsid].mimeType.blank? %>
|
|
46
|
+
<%= ("<dt>control group:</dt><dd>" + @datastreams[dsid].controlGroup + "</dd>").html_safe unless @datastreams[dsid].controlGroup.blank? %>
|
|
47
47
|
</dl>
|
|
48
48
|
</div>
|
|
49
49
|
</div></li>
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
<%- person_collection = @document_fedora.
|
|
1
|
+
<%- person_collection = @document_fedora.datastreams["descMetadata"].find_by_terms(:person).to_a -%>
|
|
2
2
|
<%- person_collection << [] if params[:add_contributor] -%>
|
|
3
3
|
|
|
4
4
|
<%= render :partial=>"contributors/edit_person", :collection=>person_collection, :locals=>{:af_model => "mods_asset"} %>
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
<div id="contributor_fields">
|
|
2
2
|
<h3>Contributors</h3>
|
|
3
3
|
<ol>
|
|
4
|
-
<%= render :partial=>"contributors/show_person", :collection=>@document_fedora.
|
|
5
|
-
<%= render :partial=>"contributors/show_organization", :collection=>@document_fedora.
|
|
6
|
-
<%= render :partial=>"contributors/show_conference", :collection=>@document_fedora.
|
|
4
|
+
<%= render :partial=>"contributors/show_person", :collection=>@document_fedora.datastreams["descMetadata"].find_by_terms(:person) %>
|
|
5
|
+
<%= render :partial=>"contributors/show_organization", :collection=>@document_fedora.datastreams["descMetadata"].find_by_terms(:organization) %>
|
|
6
|
+
<%= render :partial=>"contributors/show_conference", :collection=>@document_fedora.datastreams["descMetadata"].find_by_terms(:conference) %>
|
|
7
7
|
</ol>
|
|
8
8
|
</div>
|
|
9
9
|
|
|
@@ -4,10 +4,10 @@
|
|
|
4
4
|
<%= fedora_field_label("descMetadata", [:title_info,:main_title], "Title<span class=\"required-note\">Required</span>".html_safe) %>
|
|
5
5
|
<%= fedora_text_field(@document_fedora,"descMetadata", [:title_info, :main_title], :multiple=>false, :required=>true) %>
|
|
6
6
|
</p>
|
|
7
|
-
<%= render :partial=>"mods_assets/edit_journal", :collection=>@document_fedora.
|
|
7
|
+
<%= render :partial=>"mods_assets/edit_journal", :collection=>@document_fedora.datastreams["descMetadata"].find_by_terms(:journal) %>
|
|
8
8
|
<%= hidden_field_tag(:wf_step, params[:wf_step], :id => "publisher_wf_step") %>
|
|
9
9
|
<%= hidden_field_tag(:new_asset, true, :id => "publisher_new_asset") if params[:new_asset] %>
|
|
10
10
|
<%= hidden_field_tag(:content_type,"mods_asset", :id => "publisher_content_type") %>
|
|
11
11
|
<%= submit_tag(submit_name, :name=>"continue", :class=>"save-submit") %>
|
|
12
12
|
<%= submit_tag("Save and Finish", :name=>"finish", :class=>"save-submit") unless params[:new_asset] %>
|
|
13
|
-
<%- end -%>
|
|
13
|
+
<%- end -%>
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
<div id="contributors_list">
|
|
2
2
|
<ol>
|
|
3
|
-
<%= render :partial=>"contributors/show_person", :collection=>@document_fedora.
|
|
4
|
-
<%= render :partial=>"contributors/show_organization", :collection=>@document_fedora.
|
|
5
|
-
<%= render :partial=>"contributors/show_conference", :collection=>@document_fedora.
|
|
3
|
+
<%= render :partial=>"contributors/show_person", :collection=>@document_fedora.datastreams["descMetadata"].find_by_terms(:person) %>
|
|
4
|
+
<%= render :partial=>"contributors/show_organization", :collection=>@document_fedora.datastreams["descMetadata"].find_by_terms(:organization) %>
|
|
5
|
+
<%= render :partial=>"contributors/show_conference", :collection=>@document_fedora.datastreams["descMetadata"].find_by_terms(:conference) %>
|
|
6
6
|
</ol>
|
|
7
|
-
</div>
|
|
7
|
+
</div>
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
<%# copied div below to show_contributor partial %>
|
|
2
2
|
<div id="contributors_list">
|
|
3
3
|
<ol>
|
|
4
|
-
<%= render :partial=>"contributors/show_person", :collection=>@document_fedora.
|
|
5
|
-
<%= render :partial=>"contributors/show_organization", :collection=>@document_fedora.
|
|
6
|
-
<%= render :partial=>"contributors/show_conference", :collection=>@document_fedora.
|
|
4
|
+
<%= render :partial=>"contributors/show_person", :collection=>@document_fedora.datastreams["descMetadata"].find_by_terms(:person) %>
|
|
5
|
+
<%= render :partial=>"contributors/show_organization", :collection=>@document_fedora.datastreams["descMetadata"].find_by_terms(:organization) %>
|
|
6
|
+
<%= render :partial=>"contributors/show_conference", :collection=>@document_fedora.datastreams["descMetadata"].find_by_terms(:conference) %>
|
|
7
7
|
</ol>
|
|
8
8
|
</div>
|
|
9
9
|
|
|
@@ -11,7 +11,7 @@
|
|
|
11
11
|
<% unless get_values_from_datastream(@document_fedora,"descMetadata", [{:journal => 0}, :title_info, :main_title]).first.empty? %>
|
|
12
12
|
<fieldset><legend>Published</legend>
|
|
13
13
|
<div id="journal" class="browse_value">
|
|
14
|
-
<%= render :partial=>"mods_assets/show_journal", :collection=>@document_fedora.
|
|
14
|
+
<%= render :partial=>"mods_assets/show_journal", :collection=>@document_fedora.datastreams["descMetadata"].find_by_terms(:journal) %>
|
|
15
15
|
</div>
|
|
16
16
|
</fieldset>
|
|
17
17
|
<% end %>
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
<fieldset>
|
|
3
3
|
<legend>Published</legend>
|
|
4
4
|
<div id="journal" class="browse_value">
|
|
5
|
-
<%= render :partial=>"mods_assets/show_journal", :collection=>@document_fedora.
|
|
5
|
+
<%= render :partial=>"mods_assets/show_journal", :collection=>@document_fedora.datastreams["descMetadata"].find_by_terms(:journal) %>
|
|
6
6
|
</div>
|
|
7
7
|
</fieldset>
|
|
8
|
-
<% end %>
|
|
8
|
+
<% end %>
|
|
@@ -12,7 +12,7 @@
|
|
|
12
12
|
<% if person_id != current_user.login %>
|
|
13
13
|
<% field_name = "#{person_id}_access" %>
|
|
14
14
|
<% choices = [{"No Access" => "none"},{"Discover" => "discover"}, {"Read & Download" => "read"}, {"Edit & Upload" => "edit"}] %>
|
|
15
|
-
<% current_permissions = @document_fedora.
|
|
15
|
+
<% current_permissions = @document_fedora.datastreams["rightsMetadata"].permissions({"person"=>person_id}) %>
|
|
16
16
|
|
|
17
17
|
<p class="permission-submit">
|
|
18
18
|
<label for="<%= field_name %>"><%= person_id %></label>
|
|
@@ -11,7 +11,7 @@
|
|
|
11
11
|
<%# This next line should be conditional upon a person having Publish permissions on the object's collection %>
|
|
12
12
|
<% roles << "public" %>
|
|
13
13
|
<% roles.each do |role| %>
|
|
14
|
-
<% role_permissions = @document_fedora.
|
|
14
|
+
<% role_permissions = @document_fedora.datastreams["rightsMetadata"].permissions({"group"=>role}) %>
|
|
15
15
|
<% field_name = "#{role}_group_access" %>
|
|
16
16
|
<p id="<%=h "#{field_name}-container" %>" class="permissions">
|
|
17
17
|
<label for="<%=h field_name %>"><%= role.capitalize %></label>
|
|
@@ -42,5 +42,5 @@
|
|
|
42
42
|
<% choice_name = choice.values.first %>
|
|
43
43
|
<% individual_permissions[choice_name] = get_values_from_datastream(@document_fedora,"rightsMetadata", ["#{choice_name}_access".to_sym, :person]) %>
|
|
44
44
|
<% end %>
|
|
45
|
-
<%= render :partial=>"permissions/edit_person_permissions.html", :collection=>@document_fedora.
|
|
45
|
+
<%= render :partial=>"permissions/edit_person_permissions.html", :collection=>@document_fedora.datastreams["rightsMetadata"].find_by_terms(:access, :person) %>
|
|
46
46
|
</fieldset>
|
data/hydra-head.gemspec
CHANGED
|
@@ -14,7 +14,7 @@ Gem::Specification.new do |s|
|
|
|
14
14
|
|
|
15
15
|
s.add_dependency "rails", '~> 3.0.10'
|
|
16
16
|
s.add_dependency "blacklight", '3.0.0'
|
|
17
|
-
s.add_dependency "active-fedora", '~>3.0.
|
|
17
|
+
s.add_dependency "active-fedora", '~>3.1.0.rc1'
|
|
18
18
|
s.add_dependency 'builder'
|
|
19
19
|
s.add_dependency 'columnize'
|
|
20
20
|
s.add_dependency 'crack'
|
|
@@ -35,12 +35,11 @@ Gem::Specification.new do |s|
|
|
|
35
35
|
s.add_dependency 'rack'
|
|
36
36
|
s.add_dependency 'rack-test'
|
|
37
37
|
s.add_dependency 'rake'
|
|
38
|
-
s.add_dependency 'rcov'
|
|
39
38
|
s.add_dependency 'RedCloth', '=4.2.3'
|
|
40
39
|
s.add_dependency 'solr-ruby'
|
|
41
40
|
s.add_dependency 'mediashelf-loggable', '>=0.4.7' ##This can be removed once this dependency is declared in solrizer
|
|
42
41
|
s.add_dependency 'solrizer', '>=1.1.0'
|
|
43
|
-
s.add_dependency 'solrizer-fedora', '>=1.1.
|
|
42
|
+
s.add_dependency 'solrizer-fedora', '>=1.1.3'
|
|
44
43
|
s.add_dependency 'term-ansicolor'
|
|
45
44
|
s.add_dependency 'trollop'
|
|
46
45
|
s.add_dependency 'will_paginate'
|
|
@@ -49,7 +48,7 @@ Gem::Specification.new do |s|
|
|
|
49
48
|
s.add_dependency 'sanitize'
|
|
50
49
|
|
|
51
50
|
s.add_development_dependency 'yard'
|
|
52
|
-
s.add_development_dependency 'jettywrapper', "
|
|
51
|
+
s.add_development_dependency 'jettywrapper', ">=1.0.0"
|
|
53
52
|
s.add_development_dependency 'ruby-debug'
|
|
54
53
|
s.add_development_dependency 'ruby-debug-base'
|
|
55
54
|
s.add_development_dependency 'rspec', '>= 2.0.0'
|
|
@@ -31,6 +31,7 @@ class HeadGenerator < Rails::Generators::Base
|
|
|
31
31
|
copy_file "config/initializers/fedora_config.rb", "config/initializers/fedora_config.rb"
|
|
32
32
|
copy_file "config/initializers/hydra_config.rb", "config/initializers/hydra_config.rb"
|
|
33
33
|
copy_file "config/initializers/blacklight_config.rb", "config/initializers/blacklight_config.rb"
|
|
34
|
+
copy_file "config/initializers/action_dispatch_http_upload_monkey_patch.rb", "config/initializers/action_dispatch_http_upload_monkey_patch.rb"
|
|
34
35
|
|
|
35
36
|
# Role Mappings
|
|
36
37
|
copy_file "config/role_map_cucumber.yml", "config/role_map_cucumber.yml"
|
|
@@ -118,9 +119,7 @@ EOF
|
|
|
118
119
|
"\n before_filter :enforce_access_controls" +
|
|
119
120
|
"\n before_filter :enforce_viewing_context_for_show_requests, :only=>:show" +
|
|
120
121
|
"\n # This applies appropriate access controls to all solr queries" +
|
|
121
|
-
"\n CatalogController.solr_search_params_logic << :add_access_controls_to_solr_params"
|
|
122
|
-
"\n # This filters out objects that you want to exclude from search results, like FileAssets" +
|
|
123
|
-
"\n CatalogController.solr_search_params_logic << :exclude_unwanted_models"
|
|
122
|
+
"\n CatalogController.solr_search_params_logic << :add_access_controls_to_solr_params"
|
|
124
123
|
end
|
|
125
124
|
else
|
|
126
125
|
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 module in the Controller class definition. See the Hydra::Controller section in the Hydra API Docs for more info."
|
|
@@ -42,13 +42,6 @@ Blacklight.configure(:shared) do |config|
|
|
|
42
42
|
# TODO: Reorganize facet data structures supplied in config to make simpler
|
|
43
43
|
# for human reading/writing, kind of like search_fields. Eg,
|
|
44
44
|
# config[:facet] << {:field_name => "format", :label => "Format", :limit => 10}
|
|
45
|
-
#
|
|
46
|
-
# Hydra uses active_fedora_model_s by default for displaying Format because that field is automatically
|
|
47
|
-
# populated by active-fedora from your RELS-EXT. You can change this to anything you want to use though.
|
|
48
|
-
# for example, the sample Hydra::ModsAsset Datastream Class adds object_type_facet = "Article" in its to_solr method.\
|
|
49
|
-
# You could use that as the format field instead of active_fedora_model_s to have a more nicer value displayed.
|
|
50
|
-
#
|
|
51
|
-
#
|
|
52
45
|
config[:facet] = {
|
|
53
46
|
:field_names => (facet_fields = [
|
|
54
47
|
"object_type_facet",
|
|
@@ -1,8 +1,4 @@
|
|
|
1
1
|
<?xml version="1.0" encoding="UTF-8" ?>
|
|
2
|
-
<!--
|
|
3
|
-
IMPORTANT
|
|
4
|
-
This copy of the solr schema is only used in the context of testing hydra-head. If you want to make changes available to individual hydra heads, you must apply them to the template in lib/generators/hydra/templates/solr_config
|
|
5
|
-
-->
|
|
6
2
|
<schema name="Hydra" version="1.1">
|
|
7
3
|
<!-- For complete comments from the Solr project example schema.xml:
|
|
8
4
|
http://svn.apache.org/viewvc/lucene/dev/trunk/solr/example/solr/conf/schema.xml?view=markup
|
|
@@ -95,7 +91,7 @@ This copy of the solr schema is only used in the context of testing hydra-head.
|
|
|
95
91
|
<field name="format" type="string" indexed="true" stored="true"/>
|
|
96
92
|
<!-- pub_date is assumed by Blacklight's default configuration, so we must define it here to avoid errors -->
|
|
97
93
|
<field name="pub_date" type="string" indexed="true" stored="true" multiValued="true"/>
|
|
98
|
-
|
|
94
|
+
|
|
99
95
|
<dynamicField name="*_i" type="sint" indexed="true" stored="true"/>
|
|
100
96
|
<dynamicField name="*_s" type="string" indexed="true" stored="true" multiValued="true"/>
|
|
101
97
|
<dynamicField name="*_l" type="slong" indexed="true" stored="true"/>
|
|
@@ -118,7 +114,5 @@ This copy of the solr schema is only used in the context of testing hydra-head.
|
|
|
118
114
|
<defaultSearchField>text</defaultSearchField>
|
|
119
115
|
<solrQueryParser defaultOperator="AND" />
|
|
120
116
|
<copyField source="*_facet" dest="text" />
|
|
121
|
-
<copyField source="*_t" dest="text" />
|
|
122
|
-
<copyField source="*_s" dest="text" />
|
|
123
117
|
|
|
124
118
|
</schema>
|