hyrax 3.0.0.pre.beta1 → 3.0.0.pre.beta2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (170) hide show
  1. checksums.yaml +5 -5
  2. data/.circleci/config.yml +157 -68
  3. data/.travis.yml +4 -1
  4. data/Gemfile +1 -0
  5. data/README.md +3 -3
  6. data/app/actors/hyrax/actors/collections_membership_actor.rb +5 -55
  7. data/app/actors/hyrax/actors/create_with_remote_files_ordered_members_actor.rb +6 -8
  8. data/app/actors/hyrax/actors/environment.rb +15 -0
  9. data/app/actors/hyrax/actors/interpret_visibility_actor.rb +22 -37
  10. data/app/assets/javascripts/hyrax/editor/controlled_vocabulary.es6 +1 -1
  11. data/app/assets/stylesheets/hyrax/_collections.scss +5 -3
  12. data/app/assets/stylesheets/hyrax/dashboard.scss +3 -3
  13. data/app/controllers/concerns/hyrax/works_controller_behavior.rb +21 -2
  14. data/app/controllers/hyrax/homepage_controller.rb +1 -1
  15. data/app/forms/hyrax/forms/work_form.rb +1 -1
  16. data/app/helpers/hyrax/collections_helper.rb +13 -0
  17. data/app/helpers/hyrax/hyrax_helper_behavior.rb +3 -3
  18. data/app/indexers/hyrax/admin_set_indexer.rb +1 -1
  19. data/app/indexers/hyrax/basic_metadata_indexer.rb +1 -1
  20. data/app/indexers/hyrax/collection_indexer.rb +3 -3
  21. data/app/indexers/hyrax/deep_indexing_service.rb +12 -12
  22. data/app/indexers/hyrax/file_set_indexer.rb +1 -1
  23. data/app/indexers/hyrax/indexes_workflow.rb +4 -4
  24. data/app/indexers/hyrax/work_indexer.rb +1 -1
  25. data/app/models/concerns/hyrax/basic_metadata.rb +2 -0
  26. data/app/models/concerns/hyrax/collection_behavior.rb +3 -3
  27. data/app/models/concerns/hyrax/file_set/querying.rb +1 -1
  28. data/app/models/concerns/hyrax/human_readable_type.rb +2 -2
  29. data/app/models/concerns/hyrax/solr_document/characterization.rb +23 -23
  30. data/app/models/concerns/hyrax/solr_document/metadata.rb +3 -2
  31. data/app/models/concerns/hyrax/solr_document_behavior.rb +3 -3
  32. data/app/models/concerns/hyrax/user.rb +10 -2
  33. data/app/presenters/hyrax/work_show_presenter.rb +2 -2
  34. data/app/renderers/hyrax/renderers/faceted_attribute_renderer.rb +1 -1
  35. data/app/search_builders/hyrax/collection_search_builder.rb +1 -1
  36. data/app/search_builders/hyrax/deposit_search_builder.rb +1 -1
  37. data/app/search_builders/hyrax/embargo_search_builder.rb +1 -1
  38. data/app/search_builders/hyrax/lease_search_builder.rb +1 -1
  39. data/app/services/hyrax/default_middleware_stack.rb +0 -4
  40. data/app/services/hyrax/statistics/file_sets/by_format.rb +1 -1
  41. data/app/services/hyrax/statistics/works/by_resource_type.rb +1 -1
  42. data/app/services/hyrax/visibility_intention.rb +78 -0
  43. data/app/views/catalog/_index_list_default.html.erb +3 -3
  44. data/app/views/catalog/_thumbnail_list_collection.html.erb +3 -2
  45. data/app/views/hyrax/base/_attribute_rows.html.erb +1 -0
  46. data/app/views/hyrax/base/_form_files.html.erb +2 -2
  47. data/app/views/hyrax/base/_form_visibility_component.html.erb +1 -1
  48. data/app/views/hyrax/base/_show_actions.html.erb +6 -6
  49. data/app/views/hyrax/base/show.html.erb +2 -2
  50. data/app/views/hyrax/batch_edits/_check_all.html.erb +1 -1
  51. data/app/views/hyrax/batch_edits/_delete_selected.html.erb +1 -1
  52. data/app/views/hyrax/collections/_show_document_list_row.html.erb +1 -1
  53. data/app/views/hyrax/dashboard/collections/_show_document_list_row.html.erb +1 -1
  54. data/app/views/hyrax/dashboard/show_admin.html.erb +4 -4
  55. data/app/views/records/show_fields/_based_near.html.erb +1 -1
  56. data/app/views/records/show_fields/_creator.html.erb +1 -1
  57. data/app/views/records/show_fields/_keyword.html.erb +1 -1
  58. data/app/views/records/show_fields/_language.html.erb +1 -1
  59. data/app/views/records/show_fields/_publisher.html.erb +1 -1
  60. data/app/views/records/show_fields/_resource_type.html.erb +1 -1
  61. data/app/views/records/show_fields/_subject.html.erb +1 -1
  62. data/config/initializers/samvera-nesting_indexer_initializer.rb +3 -3
  63. data/config/locales/hyrax.de.yml +35 -22
  64. data/config/locales/hyrax.en.yml +22 -2
  65. data/config/locales/hyrax.es.yml +21 -1
  66. data/config/locales/hyrax.fr.yml +21 -1
  67. data/config/locales/hyrax.it.yml +21 -1
  68. data/config/locales/hyrax.pt-BR.yml +21 -1
  69. data/config/locales/hyrax.zh.yml +21 -1
  70. data/hyrax.gemspec +7 -9
  71. data/lib/generators/hyrax/templates/catalog_controller.rb +1 -1
  72. data/lib/generators/hyrax/templates/config/locales/hyrax.pt-BR.yml +10 -10
  73. data/lib/generators/hyrax/work/templates/locale.pt-BR.yml.erb +1 -1
  74. data/lib/hyrax/configuration.rb +18 -0
  75. data/lib/hyrax/engine.rb +8 -0
  76. data/lib/hyrax/transactions/container.rb +6 -0
  77. data/lib/hyrax/transactions/destroy_work.rb +21 -0
  78. data/lib/hyrax/transactions/steps/destroy_work.rb +24 -0
  79. data/lib/hyrax/version.rb +1 -1
  80. data/lib/wings.rb +45 -0
  81. data/lib/wings/active_fedora_converter.rb +56 -0
  82. data/lib/wings/model_transformer.rb +158 -0
  83. data/lib/wings/resource_factory.rb +8 -0
  84. data/lib/wings/valkyrie/metadata_adapter.rb +29 -0
  85. data/lib/wings/valkyrie/persister.rb +50 -0
  86. data/lib/wings/valkyrie/query_service.rb +43 -0
  87. data/lib/wings/valkyrie/resource_factory.rb +45 -0
  88. data/lib/wings/valkyrizable.rb +24 -0
  89. data/lib/wings/value_mapper.rb +59 -0
  90. data/spec/abilities/collection_ability_spec.rb +5 -5
  91. data/spec/abilities/permission_template_ability_spec.rb +1 -1
  92. data/spec/actors/hyrax/actors/collections_membership_actor_spec.rb +6 -175
  93. data/spec/actors/hyrax/actors/create_with_remote_files_ordered_members_actor_spec.rb +30 -22
  94. data/spec/actors/hyrax/actors/interpret_visibility_actor_spec.rb +2 -0
  95. data/spec/controllers/catalog_controller_spec.rb +1 -1
  96. data/spec/controllers/hyrax/admin/collection_types_controller_spec.rb +1 -1
  97. data/spec/controllers/hyrax/batch_edits_controller_spec.rb +9 -9
  98. data/spec/controllers/hyrax/collections_controller_spec.rb +5 -5
  99. data/spec/controllers/hyrax/dashboard/collection_members_controller_spec.rb +16 -13
  100. data/spec/controllers/hyrax/dashboard/collections_controller_spec.rb +9 -9
  101. data/spec/controllers/hyrax/dashboard/nest_collections_controller_spec.rb +1 -1
  102. data/spec/controllers/hyrax/generic_works_controller_spec.rb +10 -1
  103. data/spec/controllers/hyrax/homepage_controller_spec.rb +3 -3
  104. data/spec/controllers/hyrax/my/shares_controller_spec.rb +1 -1
  105. data/spec/features/actor_stack_spec.rb +48 -0
  106. data/spec/features/catalog_search_spec.rb +2 -2
  107. data/spec/features/collection_multi_membership_spec.rb +2 -2
  108. data/spec/features/collection_spec.rb +7 -7
  109. data/spec/features/collection_type_spec.rb +2 -2
  110. data/spec/features/dashboard/collection_spec.rb +18 -18
  111. data/spec/features/delete_work_spec.rb +1 -1
  112. data/spec/features/search_spec.rb +2 -2
  113. data/spec/features/work_show_spec.rb +5 -2
  114. data/spec/forms/hyrax/forms/batch_upload_form_spec.rb +1 -0
  115. data/spec/forms/hyrax/forms/collection_form_spec.rb +5 -5
  116. data/spec/forms/hyrax/forms/permission_template_form_spec.rb +1 -1
  117. data/spec/forms/hyrax/forms/work_form_spec.rb +2 -0
  118. data/spec/helpers/blacklight_helper_spec.rb +3 -1
  119. data/spec/helpers/hyrax/collections_helper_spec.rb +42 -0
  120. data/spec/helpers/hyrax/dashboard_helper_behavior_spec.rb +4 -4
  121. data/spec/helpers/hyrax_helper_spec.rb +8 -4
  122. data/spec/hyrax/transactions/destroy_work_spec.rb +35 -0
  123. data/spec/hyrax/transactions/steps/destroy_work_spec.rb +33 -0
  124. data/spec/indexers/hyrax/collection_indexer_spec.rb +1 -1
  125. data/spec/jobs/characterize_job_spec.rb +1 -1
  126. data/spec/lib/hyrax/resource_sync/change_list_writer_spec.rb +35 -21
  127. data/spec/lib/hyrax/resource_sync/resource_list_writer_spec.rb +1 -1
  128. data/spec/models/collection_spec.rb +18 -18
  129. data/spec/models/concerns/hyrax/collection_nesting_spec.rb +2 -2
  130. data/spec/models/file_set_spec.rb +2 -2
  131. data/spec/models/hyrax/collection_type_spec.rb +2 -2
  132. data/spec/models/user_spec.rb +26 -1
  133. data/spec/presenters/hyrax/collection_presenter_spec.rb +11 -11
  134. data/spec/presenters/hyrax/work_show_presenter_spec.rb +11 -0
  135. data/spec/search_builders/hyrax/collection_member_search_builder_spec.rb +1 -1
  136. data/spec/search_builders/hyrax/collection_search_builder_spec.rb +1 -1
  137. data/spec/search_builders/hyrax/dashboard/nested_collections_search_builder_spec.rb +1 -1
  138. data/spec/search_builders/hyrax/work_relation_spec.rb +1 -1
  139. data/spec/services/hyrax/adapters/nesting_index_adapter_spec.rb +2 -2
  140. data/spec/services/hyrax/collections/collection_member_service_spec.rb +2 -2
  141. data/spec/services/hyrax/collections/migration_service_spec.rb +27 -27
  142. data/spec/services/hyrax/collections/nested_collection_persistence_service_spec.rb +1 -1
  143. data/spec/services/hyrax/collections/nested_collection_query_service_spec.rb +38 -38
  144. data/spec/services/hyrax/curation_concern_spec.rb +1 -1
  145. data/spec/services/hyrax/default_middleware_stack_spec.rb +1 -2
  146. data/spec/services/hyrax/statistics/depositors/summary_spec.rb +1 -1
  147. data/spec/services/hyrax/statistics/works/by_resource_type_spec.rb +11 -4
  148. data/spec/services/hyrax/visibility_intention_spec.rb +144 -0
  149. data/spec/services/hyrax/workflow/changes_required_notification_spec.rb +1 -1
  150. data/spec/spec_helper.rb +10 -8
  151. data/spec/support/selectors.rb +10 -1
  152. data/spec/test_app_templates/Gemfile.extra +2 -0
  153. data/spec/test_app_templates/lib/generators/test_app_generator.rb +6 -0
  154. data/spec/views/catalog/_index_list_default.html.erb_spec.rb +3 -2
  155. data/spec/views/catalog/_thumbnail_list_collection.html.erb_spec.rb +38 -5
  156. data/spec/views/hyrax/base/_attributes.html.erb_spec.rb +1 -1
  157. data/spec/views/hyrax/base/_show_actions.html.erb_spec.rb +9 -9
  158. data/spec/views/hyrax/base/show.html.erb_spec.rb +3 -2
  159. data/spec/views/hyrax/collections/_show_document_list_row.html.erb_spec.rb +3 -2
  160. data/spec/views/hyrax/dashboard/collections/_show_document_list_row.html.erb_spec.rb +3 -2
  161. data/spec/wings/active_fedora_converter_spec.rb +31 -0
  162. data/spec/wings/model_transformer_spec.rb +288 -0
  163. data/spec/wings/valkyrie/metadata_adapter_spec.rb +10 -0
  164. data/spec/wings/valkyrie/persister_spec.rb +71 -0
  165. data/spec/wings/valkyrie/query_service_spec.rb +81 -0
  166. data/spec/wings/valkyrie/resource_factory_spec.rb +32 -0
  167. data/spec/wings/value_mapper_spec.rb +60 -0
  168. data/spec/wings_spec.rb +8 -0
  169. data/template.rb +3 -1
  170. metadata +86 -36
@@ -8,6 +8,7 @@ module Hyrax
8
8
  @curation_concern = curation_concern
9
9
  @current_ability = current_ability
10
10
  @attributes = attributes.to_h.with_indifferent_access
11
+ @actor_storage = {}
11
12
  end
12
13
 
13
14
  attr_reader :curation_concern, :current_ability, :attributes
@@ -16,6 +17,20 @@ module Hyrax
16
17
  def user
17
18
  current_ability.current_user
18
19
  end
20
+
21
+ def store(actor, key, value)
22
+ store_for(actor)[key] = value
23
+ end
24
+
25
+ def retrieve(actor, key)
26
+ store_for(actor)[key]
27
+ end
28
+
29
+ private
30
+
31
+ def store_for(actor)
32
+ @actor_storage[actor] ||= {}
33
+ end
19
34
  end
20
35
  end
21
36
  end
@@ -1,9 +1,11 @@
1
1
  module Hyrax
2
2
  module Actors
3
3
  class InterpretVisibilityActor < AbstractActor
4
- class Intention
4
+ class Intention < VisibilityIntention
5
5
  def initialize(attributes)
6
6
  @attributes = attributes
7
+
8
+ instance_vars_from_attributes
7
9
  end
8
10
 
9
11
  # returns a copy of attributes with the necessary params removed
@@ -21,36 +23,27 @@ module Hyrax
21
23
  end
22
24
  end
23
25
 
24
- def wants_lease?
25
- visibility == Hydra::AccessControls::AccessRight::VISIBILITY_TEXT_VALUE_LEASE
26
- end
27
-
28
- def wants_embargo?
29
- visibility == Hydra::AccessControls::AccessRight::VISIBILITY_TEXT_VALUE_EMBARGO
30
- end
31
-
32
- def valid_lease?
33
- wants_lease? && @attributes[:lease_expiration_date].present?
34
- end
35
-
36
- def valid_embargo?
37
- wants_embargo? && @attributes[:embargo_release_date].present?
38
- end
39
-
40
- def lease_params
41
- [:lease_expiration_date,
42
- :visibility_during_lease,
43
- :visibility_after_lease].map { |key| @attributes[key] }
44
- end
45
-
46
- def embargo_params
47
- [:embargo_release_date,
48
- :visibility_during_embargo,
49
- :visibility_after_embargo].map { |key| @attributes[key] }
50
- end
51
-
52
26
  private
53
27
 
28
+ ##
29
+ # This method provides compatibility between form attributes passed in
30
+ # by the Actor, and the interface of `VisibilityIntention`. This
31
+ # behavior might benefit from being extracted elsewhere (the Actor?
32
+ # the form object?). Or it might be better to just expect clients to
33
+ # only pass in one set of end_date/during/after values.
34
+ #
35
+ # rubocop:disable Metrics/CyclomaticComplexity, Metrics/PerceivedComplexity
36
+ def instance_vars_from_attributes
37
+ self.visibility = @attributes[:visibility]
38
+ self.release_date = (wants_embargo? && @attributes[:embargo_release_date].presence) ||
39
+ (wants_lease? && @attributes[:lease_expiration_date].presence)
40
+ self.after = (wants_embargo? && @attributes[:visibility_after_embargo].presence) ||
41
+ (wants_lease? && @attributes[:visibility_after_lease].presence)
42
+ self.during = (wants_embargo? && @attributes[:visibility_during_embargo].presence) ||
43
+ (wants_lease? && @attributes[:visibility_during_lease].presence)
44
+ end
45
+ # rubocop:enable Metrics/CyclomaticComplexity, Metrics/PerceivedComplexity
46
+
54
47
  def sanitize_unrestricted_params
55
48
  @attributes.except(:lease_expiration_date,
56
49
  :visibility_during_lease,
@@ -73,10 +66,6 @@ module Hyrax
73
66
  :visibility_during_embargo,
74
67
  :visibility_after_embargo)
75
68
  end
76
-
77
- def visibility
78
- @attributes[:visibility]
79
- end
80
69
  end
81
70
 
82
71
  # @param [Hyrax::Actors::Environment] env
@@ -216,16 +205,12 @@ module Hyrax
216
205
  def apply_lease(env, intention)
217
206
  return true unless intention.wants_lease?
218
207
  env.curation_concern.apply_lease(*intention.lease_params)
219
- return unless env.curation_concern.lease
220
- env.curation_concern.lease.save # see https://github.com/samvera/hydra-head/issues/226
221
208
  end
222
209
 
223
210
  # If they want an embargo, we can assume it's valid
224
211
  def apply_embargo(env, intention)
225
212
  return true unless intention.wants_embargo?
226
213
  env.curation_concern.apply_embargo(*intention.embargo_params)
227
- return unless env.curation_concern.embargo
228
- env.curation_concern.embargo.save # see https://github.com/samvera/hydra-head/issues/226
229
214
  end
230
215
  end
231
216
  end
@@ -27,7 +27,7 @@ export default class ControlledVocabulary extends FieldManager {
27
27
 
28
28
  labelControls: true,
29
29
  }
30
- super(element, options)
30
+ super(element, $.extend({}, options, $(element).data()))
31
31
  this.paramKey = paramKey
32
32
  this.fieldName = this.element.data('fieldName')
33
33
  this.searchUrl = this.element.data('autocompleteUrl')
@@ -209,11 +209,13 @@ button.branding-banner-remove:hover {
209
209
  display: flex;
210
210
 
211
211
  .thumbnail-wrapper {
212
- width: 50px;
212
+ flex: 0 0 64px;
213
+ margin-right: 10px;
214
+ overflow-x: hidden;
213
215
 
214
216
  > img {
215
- height: 30px;
216
- width: auto;
217
+ height: auto;
218
+ max-width: 64px;
217
219
  }
218
220
  }
219
221
 
@@ -29,10 +29,10 @@ $admin-panel-border-color: #dedede !default;
29
29
  .media-body {
30
30
  width: 18vw;
31
31
  }
32
+ }
32
33
 
33
- .works-list-batch-checkbox-label-text {
34
- margin: 0 5px;
35
- }
34
+ .batch-checkbox-label-text {
35
+ margin: 0 5px;
36
36
  }
37
37
 
38
38
  body.dashboard {
@@ -127,9 +127,12 @@ module Hyrax
127
127
 
128
128
  def manifest
129
129
  headers['Access-Control-Allow-Origin'] = '*'
130
+
131
+ json = sanitize_manifest(JSON.parse(manifest_builder.to_h.to_json))
132
+
130
133
  respond_to do |wants|
131
- wants.json { render json: manifest_builder.to_h }
132
- wants.html { render json: manifest_builder.to_h }
134
+ wants.json { render json: json }
135
+ wants.html { render json: json }
133
136
  end
134
137
  end
135
138
 
@@ -324,5 +327,21 @@ module Hyrax
324
327
  def permissions_changed?
325
328
  @saved_permissions != curation_concern.permissions.map(&:to_hash)
326
329
  end
330
+
331
+ def sanitize_manifest(hash)
332
+ hash['label'] = sanitize_value(hash['label']) if hash.key?('label')
333
+ hash['description'] = hash['description']&.collect { |elem| sanitize_value(elem) } if hash.key?('description')
334
+
335
+ hash['sequences']&.each do |sequence|
336
+ sequence['canvases']&.each do |canvas|
337
+ canvas['label'] = sanitize_value(canvas['label'])
338
+ end
339
+ end
340
+ hash
341
+ end
342
+
343
+ def sanitize_value(text)
344
+ Loofah.fragment(text.to_s).scrub!(:prune).to_s
345
+ end
327
346
  end
328
347
  end
@@ -44,6 +44,6 @@ class Hyrax::HomepageController < ApplicationController
44
44
  end
45
45
 
46
46
  def sort_field
47
- "#{Solrizer.solr_name('date_uploaded', :stored_sortable, type: :date)} desc"
47
+ "#{ActiveFedora.index_field_mapper.solr_name('date_uploaded', :stored_sortable, type: :date)} desc"
48
48
  end
49
49
  end
@@ -22,7 +22,7 @@ module Hyrax
22
22
  attr_reader :agreement_accepted
23
23
 
24
24
  self.terms = [:title, :creator, :contributor, :description,
25
- :keyword, :license, :rights_statement, :publisher, :date_created,
25
+ :keyword, :license, :rights_statement, :rights_notes, :publisher, :date_created,
26
26
  :subject, :language, :identifier, :based_near, :related_url,
27
27
  :representative_id, :thumbnail_id, :rendering_ids, :files,
28
28
  :visibility_during_embargo, :embargo_release_date, :visibility_after_embargo,
@@ -20,6 +20,19 @@ module Hyrax
20
20
  content_tag :span, safe_join([t('hyrax.collection.is_part_of'), ': '] + collection_links)
21
21
  end
22
22
 
23
+ def render_other_collection_links(solr_doc, collection_id)
24
+ collection_list = Hyrax::CollectionMemberService.run(solr_doc, controller.current_ability)
25
+ return if collection_list.empty?
26
+ links = collection_list.select { |collection| collection.id != collection_id }.map { |collection| link_to collection.title_or_label, hyrax.collection_path(collection.id) }
27
+ return if links.empty?
28
+ collection_links = []
29
+ links.each_with_index do |link, n|
30
+ collection_links << link
31
+ collection_links << ', ' unless links[n + 1].nil?
32
+ end
33
+ content_tag :span, safe_join([t('hyrax.collection.also_belongs_to'), ': '] + collection_links)
34
+ end
35
+
23
36
  ##
24
37
  # Append a collection_type_id to the existing querystring (whether or not it has pre-existing params)
25
38
  # @return [String] the original url with and added collection_type_id param
@@ -89,7 +89,7 @@ module Hyrax
89
89
  # @return [ActiveSupport::SafeBuffer] the html_safe link
90
90
  def link_to_facet_list(values, solr_field, empty_message = "No value entered", separator = ", ")
91
91
  return empty_message if values.blank?
92
- facet_field = Solrizer.solr_name(solr_field, :facetable)
92
+ facet_field = ActiveFedora.index_field_mapper.solr_name(solr_field, :facetable)
93
93
  safe_join(values.map { |item| link_to_facet(item, facet_field) }, separator)
94
94
  end
95
95
 
@@ -261,7 +261,7 @@ module Hyrax
261
261
  def collection_title_by_id(id)
262
262
  solr_docs = controller.repository.find(id).docs
263
263
  return nil if solr_docs.empty?
264
- solr_field = solr_docs.first[Solrizer.solr_name("title", :stored_searchable)]
264
+ solr_field = solr_docs.first[ActiveFedora.index_field_mapper.solr_name("title", :stored_searchable)]
265
265
  return nil if solr_field.nil?
266
266
  solr_field.first
267
267
  end
@@ -307,7 +307,7 @@ module Hyrax
307
307
  def search_state_with_facets(params, facet = {})
308
308
  state = Blacklight::SearchState.new(params, CatalogController.blacklight_config)
309
309
  return state.params if facet.none?
310
- state.add_facet_params(Solrizer.solr_name(facet.keys.first, :facetable),
310
+ state.add_facet_params(ActiveFedora.index_field_mapper.solr_name(facet.keys.first, :facetable),
311
311
  facet.values.first)
312
312
  end
313
313
 
@@ -7,7 +7,7 @@ module Hyrax
7
7
  def generate_solr_document
8
8
  super.tap do |solr_doc|
9
9
  # Makes Admin Sets show under the "Admin Sets" tab
10
- Solrizer.set_field(solr_doc, 'generic_type', 'Admin Set', :facetable)
10
+ ActiveFedora.index_field_mapper.set_field(solr_doc, 'generic_type', 'Admin Set', :facetable)
11
11
  end
12
12
  end
13
13
  end
@@ -3,7 +3,7 @@ module Hyrax
3
3
  class BasicMetadataIndexer < ActiveFedora::RDF::IndexingService
4
4
  class_attribute :stored_and_facetable_fields, :stored_fields, :symbol_fields
5
5
  self.stored_and_facetable_fields = %i[resource_type creator contributor keyword publisher subject language based_near]
6
- self.stored_fields = %i[description license rights_statement date_created identifier related_url bibliographic_citation source]
6
+ self.stored_fields = %i[description license rights_statement rights_notes date_created identifier related_url bibliographic_citation source]
7
7
  self.symbol_fields = %i[import_url]
8
8
 
9
9
  private
@@ -2,7 +2,7 @@ module Hyrax
2
2
  class CollectionIndexer < Hydra::PCDM::CollectionIndexer
3
3
  include Hyrax::IndexesThumbnails
4
4
 
5
- STORED_LONG = Solrizer::Descriptor.new(:long, :stored)
5
+ STORED_LONG = ActiveFedora::Indexing::Descriptor.new(:long, :stored)
6
6
 
7
7
  self.thumbnail_path_service = Hyrax::CollectionThumbnailPathService
8
8
 
@@ -11,9 +11,9 @@ module Hyrax
11
11
  def generate_solr_document
12
12
  super.tap do |solr_doc|
13
13
  # Makes Collections show under the "Collections" tab
14
- Solrizer.set_field(solr_doc, 'generic_type', 'Collection', :facetable)
14
+ ActiveFedora.index_field_mapper.set_field(solr_doc, 'generic_type', 'Collection', :facetable)
15
15
  # Index the size of the collection in bytes
16
- solr_doc[Solrizer.solr_name(:bytes, STORED_LONG)] = object.bytes
16
+ solr_doc[ActiveFedora.index_field_mapper.solr_name(:bytes, STORED_LONG)] = object.bytes
17
17
  solr_doc['visibility_ssi'] = object.visibility
18
18
 
19
19
  object.in_collections.each do |col|
@@ -67,13 +67,13 @@ module Hyrax
67
67
  # @param [Array] val an array of two elements, first is a string (the uri) and the second is a hash with one key: `:label`
68
68
  def append_label_and_uri(solr_doc, solr_field_key, field_info, val)
69
69
  val = val.solrize
70
- self.class.create_and_insert_terms(solr_field_key,
71
- val.first,
72
- field_info.behaviors, solr_doc)
70
+ ActiveFedora::Indexing::Inserter.create_and_insert_terms(solr_field_key,
71
+ val.first,
72
+ field_info.behaviors, solr_doc)
73
73
  return unless val.last.is_a? Hash
74
- self.class.create_and_insert_terms("#{solr_field_key}_label",
75
- label(val),
76
- field_info.behaviors, solr_doc)
74
+ ActiveFedora::Indexing::Inserter.create_and_insert_terms("#{solr_field_key}_label",
75
+ label(val),
76
+ field_info.behaviors, solr_doc)
77
77
  end
78
78
 
79
79
  # Use this method to append a string value from a controlled vocabulary field
@@ -83,12 +83,12 @@ module Hyrax
83
83
  # @param [Hash] field_info
84
84
  # @param [String] val
85
85
  def append_label(solr_doc, solr_field_key, field_info, val)
86
- self.class.create_and_insert_terms(solr_field_key,
87
- val,
88
- field_info.behaviors, solr_doc)
89
- self.class.create_and_insert_terms("#{solr_field_key}_label",
90
- val,
91
- field_info.behaviors, solr_doc)
86
+ ActiveFedora::Indexing::Inserter.create_and_insert_terms(solr_field_key,
87
+ val,
88
+ field_info.behaviors, solr_doc)
89
+ ActiveFedora::Indexing::Inserter.create_and_insert_terms("#{solr_field_key}_label",
90
+ val,
91
+ field_info.behaviors, solr_doc)
92
92
  end
93
93
 
94
94
  # Return a label for the solrized term:
@@ -2,7 +2,7 @@ module Hyrax
2
2
  class FileSetIndexer < ActiveFedora::IndexingService
3
3
  include Hyrax::IndexesThumbnails
4
4
  include Hyrax::IndexesBasicMetadata
5
- STORED_LONG = Solrizer::Descriptor.new(:long, :stored)
5
+ STORED_LONG = ActiveFedora::Indexing::Descriptor.new(:long, :stored)
6
6
 
7
7
  def generate_solr_document
8
8
  super.tap do |solr_doc|
@@ -1,9 +1,9 @@
1
1
  module Hyrax
2
2
  module IndexesWorkflow
3
- STORED_BOOL = Solrizer::Descriptor.new(:boolean, :stored, :indexed)
3
+ STORED_BOOL = ActiveFedora::Indexing::Descriptor.new(:boolean, :stored, :indexed)
4
4
 
5
5
  mattr_accessor :suppressed_field, instance_writer: false do
6
- Solrizer.solr_name('suppressed', STORED_BOOL)
6
+ ActiveFedora.index_field_mapper.solr_name('suppressed', STORED_BOOL)
7
7
  end
8
8
 
9
9
  # Adds thumbnail indexing to the solr document
@@ -31,11 +31,11 @@ module Hyrax
31
31
  end
32
32
 
33
33
  def workflow_state_name_field
34
- @workflow_state_name_field ||= Solrizer.solr_name('workflow_state_name', :symbol)
34
+ @workflow_state_name_field ||= ActiveFedora.index_field_mapper.solr_name('workflow_state_name', :symbol)
35
35
  end
36
36
 
37
37
  def workflow_role_field
38
- @workflow_role_field ||= Solrizer.solr_name('actionable_workflow_roles', :symbol)
38
+ @workflow_role_field ||= ActiveFedora.index_field_mapper.solr_name('actionable_workflow_roles', :symbol)
39
39
  end
40
40
 
41
41
  def workflow_roles(entity)
@@ -9,7 +9,7 @@ module Hyrax
9
9
  solr_doc['member_ids_ssim'] = object.member_ids
10
10
  solr_doc['member_of_collections_ssim'] = object.member_of_collections.map(&:first_title)
11
11
  solr_doc['member_of_collection_ids_ssim'] = object.member_of_collections.map(&:id)
12
- Solrizer.set_field(solr_doc, 'generic_type', 'Work', :facetable)
12
+ ActiveFedora.index_field_mapper.set_field(solr_doc, 'generic_type', 'Work', :facetable)
13
13
 
14
14
  # This enables us to return a Work when we have a FileSet that matches
15
15
  # the search query. While at the same time allowing us not to return Collections
@@ -19,6 +19,8 @@ module Hyrax
19
19
  # Used for a license
20
20
  property :license, predicate: ::RDF::Vocab::DC.rights
21
21
 
22
+ property :rights_notes, predicate: ::RDF::URI.new('http://purl.org/dc/elements/1.1/rights'), multiple: true
23
+
22
24
  # This is for the rights statement
23
25
  property :rights_statement, predicate: ::RDF::Vocab::EDM.rights
24
26
  property :publisher, predicate: ::RDF::Vocab::DC11.publisher
@@ -89,7 +89,7 @@ module Hyrax
89
89
  end
90
90
 
91
91
  def collection_type_gid_document_field_name
92
- Solrizer.solr_name('collection_type_gid', *index_collection_type_gid_as)
92
+ ActiveFedora.index_field_mapper.solr_name('collection_type_gid', *index_collection_type_gid_as)
93
93
  end
94
94
  end
95
95
 
@@ -171,12 +171,12 @@ module Hyrax
171
171
  # Field name to look up when locating the size of each file in Solr.
172
172
  # Override for your own installation if using something different
173
173
  def file_size_field
174
- Solrizer.solr_name(:file_size, Hyrax::FileSetIndexer::STORED_LONG)
174
+ ActiveFedora.index_field_mapper.solr_name(:file_size, Hyrax::FileSetIndexer::STORED_LONG)
175
175
  end
176
176
 
177
177
  # Solr field name works use to index member ids
178
178
  def member_ids_field
179
- Solrizer.solr_name('member_ids', :symbol)
179
+ ActiveFedora.index_field_mapper.solr_name('member_ids', :symbol)
180
180
  end
181
181
 
182
182
  def destroy_permission_template
@@ -5,7 +5,7 @@ module Hyrax
5
5
 
6
6
  module ClassMethods
7
7
  def where_digest_is(digest_string)
8
- where Solrizer.solr_name('digest', :symbol) => urnify(digest_string)
8
+ where ActiveFedora.index_field_mapper.solr_name('digest', :symbol) => urnify(digest_string)
9
9
  end
10
10
 
11
11
  def urnify(digest_string)
@@ -22,8 +22,8 @@ module Hyrax
22
22
 
23
23
  def to_solr(solr_doc = {})
24
24
  super(solr_doc).tap do |doc|
25
- doc[Solrizer.solr_name('human_readable_type', :facetable)] = human_readable_type
26
- doc[Solrizer.solr_name('human_readable_type', :stored_searchable)] = human_readable_type
25
+ doc[ActiveFedora.index_field_mapper.solr_name('human_readable_type', :facetable)] = human_readable_type
26
+ doc[ActiveFedora.index_field_mapper.solr_name('human_readable_type', :stored_searchable)] = human_readable_type
27
27
  end
28
28
  end
29
29
  end