hyrax 5.0.1 → 5.0.3

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.
Files changed (247) hide show
  1. checksums.yaml +4 -4
  2. data/.circleci/config.yml +7 -176
  3. data/.dassie/.env +8 -3
  4. data/.dassie/Gemfile +13 -2
  5. data/.dassie/app/controllers/hyrax/generic_work_resources_controller.rb +17 -0
  6. data/.dassie/app/controllers/hyrax/generic_works_controller.rb +7 -1
  7. data/.dassie/app/forms/generic_work_resource_form.rb +20 -0
  8. data/.dassie/app/indexers/generic_work_resource_indexer.rb +16 -0
  9. data/.dassie/app/models/admin_set_resource.rb +9 -0
  10. data/.dassie/app/models/collection_resource.rb +2 -0
  11. data/.dassie/app/models/file_set.rb +2 -0
  12. data/.dassie/app/models/generic_work_resource.rb +10 -0
  13. data/.dassie/app/views/hyrax/generic_work_resources/_generic_work_resource.html.erb +2 -0
  14. data/.dassie/config/analytics.yml +6 -1
  15. data/.dassie/config/application.rb +24 -0
  16. data/.dassie/config/initializers/hyrax.rb +13 -3
  17. data/.dassie/config/initializers/wings.rb +109 -0
  18. data/.dassie/config/metadata/generic_work_resource.yaml +22 -0
  19. data/.dassie/config/valkyrie_index.yml +4 -10
  20. data/.dassie/db/migrate/20240506070809_valkyrie_id_to_string.rb +5 -0
  21. data/.dassie/db/schema.rb +2 -2
  22. data/.dassie/spec/indexers/generic_work_resource_indexer_spec.rb +13 -0
  23. data/.dassie/spec/models/generic_work_resource_spec.rb +12 -0
  24. data/.dassie/spec/views/generic_work_resources/_generic_work_resource.html.erb_spec.rb +7 -0
  25. data/.dockerignore +6 -4
  26. data/.github/release.yml +3 -0
  27. data/.github/workflows/lint-build-test.yml +130 -0
  28. data/.github/workflows/test-results.yml +40 -0
  29. data/.koppie/.env +7 -5
  30. data/.koppie/Gemfile +12 -1
  31. data/.koppie/config/analytics.yml +6 -1
  32. data/.koppie/config/environments/test.rb +2 -0
  33. data/.koppie/config/initializers/1_valkyrie.rb +6 -2
  34. data/.koppie/config/solr.yml +1 -1
  35. data/.regen +1 -1
  36. data/.rubocop.yml +5 -0
  37. data/Dockerfile +16 -36
  38. data/Gemfile +2 -0
  39. data/app/assets/javascripts/hydra-editor/field_manager.es6 +187 -0
  40. data/app/assets/javascripts/hyrax/analytics_events.js +48 -24
  41. data/app/assets/javascripts/hyrax/collapse.js +4 -4
  42. data/app/assets/javascripts/hyrax/file_manager/save_manager.es6 +2 -0
  43. data/app/assets/javascripts/hyrax/search.js +2 -3
  44. data/app/assets/javascripts/hyrax/select_work_type.es6 +3 -1
  45. data/app/assets/javascripts/hyrax/uploader.js +20 -18
  46. data/app/assets/javascripts/hyrax.js +1 -0
  47. data/app/assets/stylesheets/_bootstrap-default-overrides.scss +4 -0
  48. data/app/assets/stylesheets/hyrax/_card.scss +4 -0
  49. data/app/assets/stylesheets/hyrax/_catalog.scss +21 -0
  50. data/app/assets/stylesheets/hyrax/_collections.scss +1 -1
  51. data/app/assets/stylesheets/hyrax/_facets.scss +15 -3
  52. data/app/assets/stylesheets/hyrax/_featured.scss +4 -0
  53. data/app/assets/stylesheets/hyrax/_form.scss +4 -0
  54. data/app/assets/stylesheets/hyrax/_forms.scss +2 -1
  55. data/app/assets/stylesheets/hyrax/_nestable.scss +9 -8
  56. data/app/assets/stylesheets/hyrax/_select_work_type.scss +12 -0
  57. data/app/assets/stylesheets/hyrax/_styles.scss +4 -0
  58. data/app/assets/stylesheets/hyrax/_work-show.scss +3 -0
  59. data/app/controllers/concerns/hyrax/singular_subresource_controller.rb +7 -2
  60. data/app/controllers/concerns/hyrax/valkyrie_downloads_controller_behavior.rb +11 -2
  61. data/app/controllers/concerns/hyrax/works_controller_behavior.rb +9 -2
  62. data/app/controllers/hyrax/admin/analytics/collection_reports_controller.rb +2 -2
  63. data/app/controllers/hyrax/admin/analytics/work_reports_controller.rb +7 -8
  64. data/app/controllers/hyrax/dashboard/collections_controller.rb +2 -1
  65. data/app/controllers/hyrax/downloads_controller.rb +24 -3
  66. data/app/controllers/hyrax/file_sets_controller.rb +32 -6
  67. data/app/controllers/hyrax/my/works_controller.rb +20 -0
  68. data/app/controllers/hyrax/stats_controller.rb +1 -1
  69. data/app/controllers/hyrax/uploads_controller.rb +28 -2
  70. data/app/forms/hyrax/forms/admin/appearance.rb +1 -1
  71. data/app/forms/hyrax/forms/admin/collection_type_form.rb +1 -7
  72. data/app/forms/hyrax/forms/pcdm_collection_form.rb +9 -0
  73. data/app/forms/hyrax/forms/work_embargo_form.rb +6 -0
  74. data/app/forms/hyrax/forms/work_lease_form.rb +6 -0
  75. data/app/indexers/concerns/hyrax/location_indexer.rb +2 -2
  76. data/app/indexers/hyrax/indexers/file_set_indexer.rb +4 -0
  77. data/app/indexers/hyrax/indexers/resource_indexer.rb +1 -0
  78. data/app/indexers/hyrax/valkyrie_indexer.rb +3 -5
  79. data/app/jobs/migrate_files_to_valkyrie_job.rb +109 -0
  80. data/app/jobs/migrate_resources_job.rb +34 -0
  81. data/app/jobs/valkyrie_create_derivatives_job.rb +2 -1
  82. data/app/models/admin_set.rb +1 -0
  83. data/app/models/concerns/hyrax/ar_resource.rb +104 -0
  84. data/app/models/concerns/hyrax/solr_document/ordered_members.rb +2 -1
  85. data/app/models/concerns/hyrax/solr_document_behavior.rb +13 -2
  86. data/app/models/concerns/hyrax/valkyrie_lazy_migration.rb +82 -0
  87. data/app/models/file_download_stat.rb +1 -1
  88. data/app/models/file_view_stat.rb +1 -1
  89. data/app/models/hyrax/collection_type.rb +12 -4
  90. data/app/models/hyrax/file_metadata.rb +19 -0
  91. data/app/models/hyrax/file_set.rb +25 -0
  92. data/app/models/hyrax/model_registry.rb +2 -3
  93. data/app/models/hyrax/resource.rb +5 -0
  94. data/app/models/hyrax/statistic.rb +12 -37
  95. data/app/presenters/hyrax/file_set_presenter.rb +2 -1
  96. data/app/presenters/hyrax/file_usage.rb +3 -3
  97. data/app/presenters/hyrax/iiif_manifest_presenter.rb +2 -1
  98. data/app/presenters/hyrax/member_presenter_factory.rb +7 -1
  99. data/app/presenters/hyrax/menu_presenter.rb +1 -1
  100. data/app/presenters/hyrax/stats_usage_presenter.rb +2 -1
  101. data/app/presenters/hyrax/work_show_presenter.rb +13 -17
  102. data/app/presenters/hyrax/work_usage.rb +5 -2
  103. data/app/search_builders/hyrax/expired_embargo_search_builder.rb +7 -1
  104. data/app/search_builders/hyrax/expired_lease_search_builder.rb +7 -1
  105. data/app/search_builders/hyrax/filter_by_type.rb +1 -3
  106. data/app/search_builders/hyrax/valkyrie_abstract_type_relation.rb +7 -2
  107. data/app/services/hyrax/access_control_list.rb +1 -1
  108. data/app/services/hyrax/admin_set_create_service.rb +16 -5
  109. data/app/services/hyrax/admin_set_service.rb +2 -1
  110. data/app/services/hyrax/analytics/ga4/base.rb +96 -0
  111. data/app/services/hyrax/analytics/ga4/events.rb +25 -0
  112. data/app/services/hyrax/analytics/ga4/events_daily.rb +36 -0
  113. data/app/services/hyrax/analytics/ga4/visits.rb +33 -0
  114. data/app/services/hyrax/analytics/ga4/visits_daily.rb +24 -0
  115. data/app/services/hyrax/analytics/ga4.rb +204 -0
  116. data/app/services/hyrax/analytics/google.rb +16 -2
  117. data/app/services/hyrax/analytics/matomo.rb +16 -3
  118. data/app/services/hyrax/analytics/results.rb +6 -0
  119. data/app/services/hyrax/custom_queries/find_access_control.rb +1 -1
  120. data/app/services/hyrax/custom_queries/find_by_date_range.rb +6 -23
  121. data/app/services/hyrax/custom_queries/find_collections_by_type.rb +2 -2
  122. data/app/services/hyrax/custom_queries/find_count_by.rb +3 -31
  123. data/app/services/hyrax/custom_queries/find_file_metadata.rb +2 -2
  124. data/app/services/hyrax/custom_queries/find_models_by_access.rb +5 -27
  125. data/app/services/hyrax/embargo_manager.rb +2 -1
  126. data/app/services/hyrax/listeners/file_listener.rb +2 -2
  127. data/app/services/hyrax/lock_manager.rb +6 -6
  128. data/app/services/hyrax/lockable.rb +4 -3
  129. data/app/services/hyrax/simple_schema_loader.rb +1 -1
  130. data/app/services/hyrax/solr_service.rb +22 -8
  131. data/app/services/hyrax/statistics/query_service.rb +1 -1
  132. data/app/services/hyrax/statistics/works/over_time.rb +1 -1
  133. data/app/services/hyrax/thumbnail_path_service.rb +2 -0
  134. data/app/services/hyrax/user_stat_importer.rb +5 -5
  135. data/app/services/hyrax/valkyrie_upload.rb +9 -7
  136. data/app/services/hyrax/versioning_service.rb +10 -2
  137. data/app/services/hyrax/work_query_service.rb +2 -2
  138. data/app/services/migrate_resource_service.rb +55 -0
  139. data/app/views/_controls.html.erb +5 -5
  140. data/app/views/_masthead.html.erb +1 -1
  141. data/app/views/catalog/_search_form.html.erb +9 -16
  142. data/app/views/catalog/_thumbnail_list_collection.html.erb +1 -1
  143. data/app/views/catalog/_thumbnail_list_default.html.erb +2 -2
  144. data/app/views/hyrax/admin/analytics/collection_reports/index.html.erb +4 -4
  145. data/app/views/hyrax/admin/analytics/work_reports/index.html.erb +1 -1
  146. data/app/views/hyrax/admin/collection_types/_form.html.erb +4 -4
  147. data/app/views/hyrax/admin/collection_types/index.html.erb +1 -1
  148. data/app/views/hyrax/admin/features/index.html.erb +1 -1
  149. data/app/views/hyrax/base/_file_manager_actions.html.erb +1 -1
  150. data/app/views/hyrax/base/_file_manager_member.html.erb +7 -4
  151. data/app/views/hyrax/base/_file_manager_thumbnail.html.erb +1 -1
  152. data/app/views/hyrax/base/_form_files.html.erb +1 -1
  153. data/app/views/hyrax/base/_form_member_of_collections.html.erb +4 -0
  154. data/app/views/hyrax/base/_show_actions.html.erb +7 -8
  155. data/app/views/hyrax/base/_work_button_row.html.erb +1 -1
  156. data/app/views/hyrax/batch_select/_add_button.html.erb +1 -1
  157. data/app/views/hyrax/content_blocks/_form.html.erb +3 -3
  158. data/app/views/hyrax/dashboard/_sidebar.html.erb +1 -1
  159. data/app/views/hyrax/dashboard/_user_activity.html.erb +2 -2
  160. data/app/views/hyrax/dashboard/collections/_form.html.erb +4 -4
  161. data/app/views/hyrax/dashboard/collections/_form_share.html.erb +6 -4
  162. data/app/views/hyrax/dashboard/collections/_list_collections.html.erb +1 -1
  163. data/app/views/hyrax/dashboard/collections/_show_document_list_row.html.erb +1 -1
  164. data/app/views/hyrax/dashboard/show_admin.html.erb +18 -19
  165. data/app/views/hyrax/dashboard/sidebar/_activity.html.erb +1 -1
  166. data/app/views/hyrax/embargoes/_list_expired_active_embargoes.html.erb +7 -7
  167. data/app/views/hyrax/file_sets/_actions.html.erb +9 -1
  168. data/app/views/hyrax/file_sets/_permission_form.html.erb +4 -2
  169. data/app/views/hyrax/file_sets/_show_actions.html.erb +1 -1
  170. data/app/views/hyrax/homepage/_featured.html.erb +1 -1
  171. data/app/views/hyrax/homepage/_recent_document.html.erb +2 -2
  172. data/app/views/hyrax/leases/_list_expired_active_leases.html.erb +6 -6
  173. data/app/views/hyrax/my/collections/_list_collections.html.erb +1 -1
  174. data/app/views/hyrax/my/collections/_tabs.html.erb +1 -1
  175. data/app/views/hyrax/pages/_form.html.erb +8 -8
  176. data/app/views/hyrax/transfers/_received.html.erb +1 -1
  177. data/app/views/hyrax/uploads/create.json.jbuilder +2 -2
  178. data/app/views/hyrax/users/_activity_log.html.erb +15 -9
  179. data/app/views/hyrax/users/_user_row.html.erb +6 -3
  180. data/app/views/hyrax/users/_vitals.html.erb +3 -2
  181. data/app/views/layouts/_head_tag_content.html.erb +2 -0
  182. data/app/views/shared/_appearance_styles.html.erb +5 -1
  183. data/app/views/shared/_ga4.html.erb +11 -0
  184. data/app/views/shared/_select_work_type_modal.html.erb +10 -1
  185. data/bin/db-migrate-seed.sh +3 -3
  186. data/bin/dev-entrypoint.sh +7 -2
  187. data/bin/{db-wait.sh → service-wait.sh} +1 -1
  188. data/bin/worker-entrypoint.sh +8 -0
  189. data/chart/hyrax/templates/deployment-worker.yaml +2 -2
  190. data/config/locales/hyrax.en.yml +4 -2
  191. data/config/metadata/basic_metadata.yaml +20 -0
  192. data/config/metadata/hyrax_internal_metadata.yaml +1 -1
  193. data/docker-compose-dassie.yml +167 -0
  194. data/docker-compose-koppie.yml +21 -36
  195. data/docker-compose-sirenia.yml +50 -44
  196. data/docker-compose.yml +2 -183
  197. data/documentation/developing-your-hyrax-based-app.md +2 -2
  198. data/hyrax.gemspec +5 -4
  199. data/lib/freyja/custom_query_container.rb +5 -0
  200. data/lib/freyja/metadata_adapter.rb +32 -0
  201. data/lib/freyja/persister.rb +42 -0
  202. data/lib/freyja/query_service.rb +20 -0
  203. data/lib/freyja/resource_factory.rb +8 -0
  204. data/lib/freyja.rb +14 -0
  205. data/lib/frigg/custom_query_container.rb +5 -0
  206. data/lib/frigg/metadata_adapter.rb +22 -0
  207. data/lib/frigg/persister.rb +33 -0
  208. data/lib/frigg/query_service.rb +15 -0
  209. data/lib/frigg.rb +13 -0
  210. data/lib/generators/hyrax/install_generator.rb +5 -0
  211. data/lib/generators/hyrax/templates/config/analytics.yml +6 -1
  212. data/lib/generators/hyrax/templates/config/initializers/1_valkyrie.rb +6 -2
  213. data/lib/generators/hyrax/templates/config/valkyrie_index.yml +1 -1
  214. data/lib/goddess/custom_query_container.rb +71 -0
  215. data/lib/goddess/metadata.rb +13 -0
  216. data/lib/goddess/query.rb +176 -0
  217. data/lib/hyrax/configuration.rb +83 -0
  218. data/lib/hyrax/engine.rb +2 -0
  219. data/lib/hyrax/form_fields.rb +1 -3
  220. data/lib/hyrax/name.rb +5 -0
  221. data/lib/hyrax/rubocop/custom_cops.rb +30 -0
  222. data/lib/hyrax/specs/capybara.rb +10 -6
  223. data/lib/hyrax/specs/shared_specs/factories/admin_sets.rb +2 -0
  224. data/lib/hyrax/specs/shared_specs/factories/hyrax_embargo.rb +4 -0
  225. data/lib/hyrax/specs/shared_specs/factories/hyrax_lease.rb +4 -0
  226. data/lib/hyrax/specs/shared_specs/factories/hyrax_work.rb +16 -2
  227. data/lib/hyrax/specs/shared_specs/hydra_works.rb +1 -1
  228. data/lib/hyrax/transactions/admin_set_destroy.rb +2 -1
  229. data/lib/hyrax/transactions/collection_destroy.rb +2 -1
  230. data/lib/hyrax/transactions/container.rb +9 -0
  231. data/lib/hyrax/transactions/steps/add_file_sets.rb +2 -1
  232. data/lib/hyrax/transactions/steps/delete_permission_template.rb +30 -0
  233. data/lib/hyrax/transactions/steps/delete_resource.rb +1 -1
  234. data/lib/hyrax/transactions/steps/save_collection_logo.rb +2 -1
  235. data/lib/hyrax/valkyrie_can_can_adapter.rb +8 -1
  236. data/lib/hyrax/version.rb +1 -1
  237. data/lib/wings/active_fedora_converter.rb +13 -5
  238. data/lib/wings/converter_value_mapper.rb +1 -0
  239. data/lib/wings/services/custom_queries/find_collections_by_type.rb +2 -1
  240. data/lib/wings/services/custom_queries/find_file_metadata.rb +2 -2
  241. data/lib/wings/setup.rb +12 -3
  242. data/lib/wings/transformer_value_mapper.rb +5 -1
  243. data/lib/wings/valkyrie/persister.rb +3 -1
  244. data/template.rb +1 -1
  245. metadata +77 -19
  246. data/.koppie/scripts/db-migrate-seed.sh +0 -9
  247. data/.koppie/scripts/entrypoint.sh +0 -10
@@ -246,6 +246,7 @@ module Wings
246
246
  attr_reader :attributes
247
247
 
248
248
  def initialize(attributes)
249
+ attributes = attributes.merge(file_name: attributes[:original_filename]) if attributes[:original_filename]
249
250
  @attributes = attributes
250
251
  end
251
252
 
@@ -19,7 +19,8 @@ module Wings
19
19
  # @param global_id [GlobalID] global id for a Hyrax::CollectionType
20
20
  #
21
21
  # @return [Enumerable<PcdmCollection>]
22
- def find_collections_by_type(global_id:)
22
+ def find_collections_by_type(global_id:, **)
23
+ # TODO: Consider how to do this without the hard-coded Collection
23
24
  ::Collection.where(Hyrax.config.collection_type_index_field.to_sym => global_id.to_s).map(&:valkyrie_resource)
24
25
  end
25
26
  end
@@ -63,7 +63,7 @@ module Wings
63
63
  def find_file_metadata_by_alternate_identifier(alternate_identifier:, use_valkyrie: true)
64
64
  alternate_identifier = ::Valkyrie::ID.new(alternate_identifier).to_s
65
65
  object = Hydra::PCDM::File.find(alternate_identifier)
66
- raise Hyrax::ObjectNotFoundError if object.new_record?
66
+ raise Hyrax::ObjectNotFoundError if object.new_record? || object.empty?
67
67
 
68
68
  if use_valkyrie == false
69
69
  warn_about_deprecation
@@ -108,7 +108,7 @@ module Wings
108
108
  #
109
109
  def find_many_file_metadata_by_use(resource:, use:, use_valkyrie: true)
110
110
  pcdm_files = find_many_file_metadata_by_ids(ids: resource.file_ids, use_valkyrie: false)
111
- pcdm_files.select! { |pcdm_file| pcdm_file.metadata_node.type.include?(use) }
111
+ pcdm_files.select! { |pcdm_file| !pcdm_file.empty? && pcdm_file.metadata_node.type.include?(use) }
112
112
 
113
113
  if use_valkyrie == false
114
114
  warn_about_deprecation
data/lib/wings/setup.rb CHANGED
@@ -127,9 +127,18 @@ custom_queries.each do |query_handler|
127
127
  Valkyrie.config.metadata_adapter.query_service.custom_queries.register_query_handler(query_handler)
128
128
  end
129
129
 
130
- Wings::ModelRegistry.register(Hyrax::AccessControl, Hydra::AccessControl)
131
- Wings::ModelRegistry.register(Hyrax::AdministrativeSet, AdminSet)
132
- Wings::ModelRegistry.register(Hyrax::PcdmCollection, ::Collection)
130
+ Valkyrie.config.resource_class_resolver = lambda do |resource_klass_name|
131
+ return resource_klass_name.constantize unless defined?(Wings)
132
+ klass_name = resource_klass_name.gsub(/Resource$/, '')
133
+ # Second one should throw a name error because we do not know what you want if
134
+ # it isn't one of these two options
135
+ klass = klass_name.safe_constantize || resource_klass_name.constantize
136
+ Wings::ModelRegistry.reverse_lookup(klass) || klass
137
+ end
138
+
139
+ Wings::ModelRegistry.register(Hyrax::AccessControl, Hydra::AccessControl)
140
+ Wings::ModelRegistry.register(Hyrax.config.admin_set_class_for_wings, AdminSet)
141
+ Wings::ModelRegistry.register(Hyrax.config.collection_class_for_wings, ::Collection)
133
142
  Wings::ModelRegistry.register(Hyrax::FileSet, FileSet)
134
143
  Wings::ModelRegistry.register(Hyrax::Embargo, Hydra::AccessControls::Embargo)
135
144
  Wings::ModelRegistry.register(Hyrax::Lease, Hydra::AccessControls::Lease)
@@ -49,8 +49,12 @@ module Wings
49
49
  end
50
50
 
51
51
  ##
52
- # @return [RDF::Term]
52
+ # Valkyrie objects contain a URI string for location objects so we need
53
+ # to return just the string for mapping from Fedora
54
+ #
55
+ # @return [RDF::Term || String]
53
56
  def result
57
+ return value.id if value.is_a?(Hyrax::ControlledVocabularies::Location)
54
58
  value.to_term
55
59
  end
56
60
  end
@@ -24,7 +24,8 @@ module Wings
24
24
  # @param [Valkyrie::Resource] resource
25
25
  # @param [Boolean] perform_af_validation
26
26
  # @return [Valkyrie::Resource] the persisted/updated resource
27
- def save(resource:, perform_af_validation: false)
27
+ # rubocop:disable Lint/UnusedMethodArgument
28
+ def save(resource:, perform_af_validation: false, external_resource: false)
28
29
  af_object = resource_factory.from_resource(resource: resource)
29
30
 
30
31
  check_lock_tokens(af_object: af_object, resource: resource)
@@ -43,6 +44,7 @@ module Wings
43
44
 
44
45
  raise FailedSaveError.new(err.message, obj: af_object)
45
46
  end
47
+ # rubocop:enable Lint/UnusedMethodArgument
46
48
 
47
49
  # Persists a resource using ActiveFedora
48
50
  # @param [Valkyrie::Resource] resource
data/template.rb CHANGED
@@ -1,4 +1,4 @@
1
1
  # frozen_string_literal: true
2
- gem 'hyrax', '5.0.1'
2
+ gem 'hyrax', '5.0.3'
3
3
  run 'bundle install'
4
4
  generate 'hyrax:install', '-f'
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: hyrax
3
3
  version: !ruby/object:Gem::Version
4
- version: 5.0.1
4
+ version: 5.0.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Justin Coyne
@@ -14,7 +14,7 @@ authors:
14
14
  autorequire:
15
15
  bindir: bin
16
16
  cert_chain: []
17
- date: 2024-03-29 00:00:00.000000000 Z
17
+ date: 2025-02-04 00:00:00.000000000 Z
18
18
  dependencies:
19
19
  - !ruby/object:Gem::Dependency
20
20
  name: rails
@@ -92,14 +92,14 @@ dependencies:
92
92
  requirements:
93
93
  - - "~>"
94
94
  - !ruby/object:Gem::Version
95
- version: '4.0'
95
+ version: 4.7.0
96
96
  type: :runtime
97
97
  prerelease: false
98
98
  version_requirements: !ruby/object:Gem::Requirement
99
99
  requirements:
100
100
  - - "~>"
101
101
  - !ruby/object:Gem::Version
102
- version: '4.0'
102
+ version: 4.7.0
103
103
  - !ruby/object:Gem::Dependency
104
104
  name: breadcrumbs_on_rails
105
105
  requirement: !ruby/object:Gem::Requirement
@@ -166,16 +166,16 @@ dependencies:
166
166
  name: concurrent-ruby
167
167
  requirement: !ruby/object:Gem::Requirement
168
168
  requirements:
169
- - - "~>"
169
+ - - '='
170
170
  - !ruby/object:Gem::Version
171
- version: '1.0'
171
+ version: 1.3.4
172
172
  type: :runtime
173
173
  prerelease: false
174
174
  version_requirements: !ruby/object:Gem::Requirement
175
175
  requirements:
176
- - - "~>"
176
+ - - '='
177
177
  - !ruby/object:Gem::Version
178
- version: '1.0'
178
+ version: 1.3.4
179
179
  - !ruby/object:Gem::Dependency
180
180
  name: connection_pool
181
181
  requirement: !ruby/object:Gem::Requirement
@@ -322,6 +322,20 @@ dependencies:
322
322
  - - "~>"
323
323
  - !ruby/object:Gem::Version
324
324
  version: '4.2'
325
+ - !ruby/object:Gem::Dependency
326
+ name: google-analytics-data
327
+ requirement: !ruby/object:Gem::Requirement
328
+ requirements:
329
+ - - "~>"
330
+ - !ruby/object:Gem::Version
331
+ version: '0.6'
332
+ type: :runtime
333
+ prerelease: false
334
+ version_requirements: !ruby/object:Gem::Requirement
335
+ requirements:
336
+ - - "~>"
337
+ - !ruby/object:Gem::Version
338
+ version: '0.6'
325
339
  - !ruby/object:Gem::Dependency
326
340
  name: hydra-derivatives
327
341
  requirement: !ruby/object:Gem::Requirement
@@ -528,16 +542,16 @@ dependencies:
528
542
  name: openseadragon
529
543
  requirement: !ruby/object:Gem::Requirement
530
544
  requirements:
531
- - - ">="
545
+ - - "~>"
532
546
  - !ruby/object:Gem::Version
533
- version: '0'
547
+ version: '0.9'
534
548
  type: :runtime
535
549
  prerelease: false
536
550
  version_requirements: !ruby/object:Gem::Requirement
537
551
  requirements:
538
- - - ">="
552
+ - - "~>"
539
553
  - !ruby/object:Gem::Version
540
- version: '0'
554
+ version: '0.9'
541
555
  - !ruby/object:Gem::Dependency
542
556
  name: posix-spawn
543
557
  requirement: !ruby/object:Gem::Requirement
@@ -744,14 +758,14 @@ dependencies:
744
758
  requirements:
745
759
  - - "~>"
746
760
  - !ruby/object:Gem::Version
747
- version: 3.1.1
761
+ version: '3.5'
748
762
  type: :runtime
749
763
  prerelease: false
750
764
  version_requirements: !ruby/object:Gem::Requirement
751
765
  requirements:
752
766
  - - "~>"
753
767
  - !ruby/object:Gem::Version
754
- version: 3.1.1
768
+ version: '3.5'
755
769
  - !ruby/object:Gem::Dependency
756
770
  name: view_component
757
771
  requirement: !ruby/object:Gem::Requirement
@@ -1106,11 +1120,12 @@ email:
1106
1120
  - escowles@ticklefish.org
1107
1121
  executables:
1108
1122
  - db-migrate-seed.sh
1109
- - db-wait.sh
1110
1123
  - dev-entrypoint.sh
1111
1124
  - hyrax-entrypoint.sh
1125
+ - service-wait.sh
1112
1126
  - solrcloud-assign-configset.sh
1113
1127
  - solrcloud-upload-configset.sh
1128
+ - worker-entrypoint.sh
1114
1129
  extensions: []
1115
1130
  extra_rdoc_files: []
1116
1131
  files:
@@ -1141,10 +1156,12 @@ files:
1141
1156
  - ".dassie/app/controllers/application_controller.rb"
1142
1157
  - ".dassie/app/controllers/catalog_controller.rb"
1143
1158
  - ".dassie/app/controllers/concerns/.keep"
1159
+ - ".dassie/app/controllers/hyrax/generic_work_resources_controller.rb"
1144
1160
  - ".dassie/app/controllers/hyrax/generic_works_controller.rb"
1145
1161
  - ".dassie/app/controllers/hyrax/monographs_controller.rb"
1146
1162
  - ".dassie/app/controllers/hyrax/namespaced_works/nested_works_controller.rb"
1147
1163
  - ".dassie/app/forms/collection_resource_form.rb"
1164
+ - ".dassie/app/forms/generic_work_resource_form.rb"
1148
1165
  - ".dassie/app/forms/hyrax/generic_work_form.rb"
1149
1166
  - ".dassie/app/forms/hyrax/namespaced_works/nested_work_form.rb"
1150
1167
  - ".dassie/app/forms/monograph_form.rb"
@@ -1152,18 +1169,21 @@ files:
1152
1169
  - ".dassie/app/helpers/hyrax_helper.rb"
1153
1170
  - ".dassie/app/indexers/collection_resource_indexer.rb"
1154
1171
  - ".dassie/app/indexers/generic_work_indexer.rb"
1172
+ - ".dassie/app/indexers/generic_work_resource_indexer.rb"
1155
1173
  - ".dassie/app/indexers/monograph_indexer.rb"
1156
1174
  - ".dassie/app/indexers/namespaced_works/nested_work_indexer.rb"
1157
1175
  - ".dassie/app/jobs/application_job.rb"
1158
1176
  - ".dassie/app/listeners/hyrax_listener.rb"
1159
1177
  - ".dassie/app/mailers/application_mailer.rb"
1160
1178
  - ".dassie/app/models/ability.rb"
1179
+ - ".dassie/app/models/admin_set_resource.rb"
1161
1180
  - ".dassie/app/models/application_record.rb"
1162
1181
  - ".dassie/app/models/collection.rb"
1163
1182
  - ".dassie/app/models/collection_resource.rb"
1164
1183
  - ".dassie/app/models/concerns/.keep"
1165
1184
  - ".dassie/app/models/file_set.rb"
1166
1185
  - ".dassie/app/models/generic_work.rb"
1186
+ - ".dassie/app/models/generic_work_resource.rb"
1167
1187
  - ".dassie/app/models/monograph.rb"
1168
1188
  - ".dassie/app/models/namespaced_works/nested_work.rb"
1169
1189
  - ".dassie/app/models/qa.rb"
@@ -1175,6 +1195,7 @@ files:
1175
1195
  - ".dassie/app/models/user.rb"
1176
1196
  - ".dassie/app/presenters/hyrax/generic_work_presenter.rb"
1177
1197
  - ".dassie/app/presenters/hyrax/namespaced_works/nested_work_presenter.rb"
1198
+ - ".dassie/app/views/hyrax/generic_work_resources/_generic_work_resource.html.erb"
1178
1199
  - ".dassie/app/views/hyrax/generic_works/_generic_work.html.erb"
1179
1200
  - ".dassie/app/views/hyrax/monographs/_monograph.html.erb"
1180
1201
  - ".dassie/app/views/hyrax/namespaced_works/nested_works/_nested_work.html.erb"
@@ -1222,6 +1243,7 @@ files:
1222
1243
  - ".dassie/config/initializers/riiif.rb"
1223
1244
  - ".dassie/config/initializers/simple_form.rb"
1224
1245
  - ".dassie/config/initializers/simple_form_bootstrap.rb"
1246
+ - ".dassie/config/initializers/wings.rb"
1225
1247
  - ".dassie/config/initializers/wrap_parameters.rb"
1226
1248
  - ".dassie/config/locales/blacklight.en.yml"
1227
1249
  - ".dassie/config/locales/devise.en.yml"
@@ -1247,6 +1269,7 @@ files:
1247
1269
  - ".dassie/config/locales/namespaced_works/nested_work.pt-BR.yml"
1248
1270
  - ".dassie/config/locales/namespaced_works/nested_work.zh.yml"
1249
1271
  - ".dassie/config/metadata/collection_resource.yaml"
1272
+ - ".dassie/config/metadata/generic_work_resource.yaml"
1250
1273
  - ".dassie/config/metadata/monograph.yaml"
1251
1274
  - ".dassie/config/metadata/sample_metadata.yaml"
1252
1275
  - ".dassie/config/puma.rb"
@@ -1341,6 +1364,7 @@ files:
1341
1364
  - ".dassie/db/migrate/20230803165135_change_work_id_to_string.rb"
1342
1365
  - ".dassie/db/migrate/20230808102105_add_indices_to_hyrax_counter_metrics.hyrax.rb"
1343
1366
  - ".dassie/db/migrate/20230821153635_add_fields_to_counter_metric.rb"
1367
+ - ".dassie/db/migrate/20240506070809_valkyrie_id_to_string.rb"
1344
1368
  - ".dassie/db/schema.rb"
1345
1369
  - ".dassie/db/seeds.rb"
1346
1370
  - ".dassie/lib/assets/.keep"
@@ -1368,7 +1392,10 @@ files:
1368
1392
  - ".dassie/solr/sample_solr_documents.yml"
1369
1393
  - ".dassie/spec/forms/collection_resource_form_spec.rb"
1370
1394
  - ".dassie/spec/indexers/collection_resource_indexer_spec.rb"
1395
+ - ".dassie/spec/indexers/generic_work_resource_indexer_spec.rb"
1371
1396
  - ".dassie/spec/models/collection_resource_spec.rb"
1397
+ - ".dassie/spec/models/generic_work_resource_spec.rb"
1398
+ - ".dassie/spec/views/generic_work_resources/_generic_work_resource.html.erb_spec.rb"
1372
1399
  - ".dassie/storage/.keep"
1373
1400
  - ".dassie/tmp/pids/.keep"
1374
1401
  - ".dassie/values.stage.yaml"
@@ -1386,8 +1413,10 @@ files:
1386
1413
  - ".github/release.yml"
1387
1414
  - ".github/stale.yml"
1388
1415
  - ".github/workflows/build.yml"
1416
+ - ".github/workflows/lint-build-test.yml"
1389
1417
  - ".github/workflows/main.yml"
1390
1418
  - ".github/workflows/release.yml"
1419
+ - ".github/workflows/test-results.yml"
1391
1420
  - ".gitignore"
1392
1421
  - ".hound.yml"
1393
1422
  - ".koppie/.env"
@@ -1617,8 +1646,6 @@ files:
1617
1646
  - ".koppie/public/branding/.keep"
1618
1647
  - ".koppie/public/favicon.ico"
1619
1648
  - ".koppie/public/robots.txt"
1620
- - ".koppie/scripts/db-migrate-seed.sh"
1621
- - ".koppie/scripts/entrypoint.sh"
1622
1649
  - ".koppie/solr/conf/_rest_managed.json"
1623
1650
  - ".koppie/solr/conf/admin-extra.html"
1624
1651
  - ".koppie/solr/conf/elevate.xml"
@@ -1711,6 +1738,7 @@ files:
1711
1738
  - app/assets/images/unauthorized.png
1712
1739
  - app/assets/images/work.png
1713
1740
  - app/assets/images/zotero.png
1741
+ - app/assets/javascripts/hydra-editor/field_manager.es6
1714
1742
  - app/assets/javascripts/hyrax.js
1715
1743
  - app/assets/javascripts/hyrax/admin/admin_set/group_participants.es6
1716
1744
  - app/assets/javascripts/hyrax/admin/admin_set/participants.es6
@@ -2067,6 +2095,8 @@ files:
2067
2095
  - app/jobs/ingest_local_file_job.rb
2068
2096
  - app/jobs/inherit_permissions_job.rb
2069
2097
  - app/jobs/lease_expiry_job.rb
2098
+ - app/jobs/migrate_files_to_valkyrie_job.rb
2099
+ - app/jobs/migrate_resources_job.rb
2070
2100
  - app/jobs/resolrize_job.rb
2071
2101
  - app/jobs/stream_notifications_job.rb
2072
2102
  - app/jobs/user_edit_profile_event_job.rb
@@ -2087,6 +2117,7 @@ files:
2087
2117
  - app/models/concerns/hyrax/ability/permission_template_ability.rb
2088
2118
  - app/models/concerns/hyrax/ability/resource_ability.rb
2089
2119
  - app/models/concerns/hyrax/ability/solr_document_ability.rb
2120
+ - app/models/concerns/hyrax/ar_resource.rb
2090
2121
  - app/models/concerns/hyrax/basic_metadata.rb
2091
2122
  - app/models/concerns/hyrax/collection_behavior.rb
2092
2123
  - app/models/concerns/hyrax/core_metadata.rb
@@ -2116,6 +2147,7 @@ files:
2116
2147
  - app/models/concerns/hyrax/suppressible.rb
2117
2148
  - app/models/concerns/hyrax/user.rb
2118
2149
  - app/models/concerns/hyrax/user_usage_stats.rb
2150
+ - app/models/concerns/hyrax/valkyrie_lazy_migration.rb
2119
2151
  - app/models/concerns/hyrax/virus_check.rb
2120
2152
  - app/models/concerns/hyrax/with_events.rb
2121
2153
  - app/models/concerns/hyrax/work_behavior.rb
@@ -2302,6 +2334,12 @@ files:
2302
2334
  - app/services/hyrax/admin_set_member_service.rb
2303
2335
  - app/services/hyrax/admin_set_service.rb
2304
2336
  - app/services/hyrax/analytics.rb
2337
+ - app/services/hyrax/analytics/ga4.rb
2338
+ - app/services/hyrax/analytics/ga4/base.rb
2339
+ - app/services/hyrax/analytics/ga4/events.rb
2340
+ - app/services/hyrax/analytics/ga4/events_daily.rb
2341
+ - app/services/hyrax/analytics/ga4/visits.rb
2342
+ - app/services/hyrax/analytics/ga4/visits_daily.rb
2305
2343
  - app/services/hyrax/analytics/google.rb
2306
2344
  - app/services/hyrax/analytics/google/events.rb
2307
2345
  - app/services/hyrax/analytics/google/events_daily.rb
@@ -2485,6 +2523,7 @@ files:
2485
2523
  - app/services/hyrax/working_directory.rb
2486
2524
  - app/services/hyrax/works/managed_works_service.rb
2487
2525
  - app/services/hyrax/works/migration_service.rb
2526
+ - app/services/migrate_resource_service.rb
2488
2527
  - app/strategies/hyrax/strategies/yaml_strategy.rb
2489
2528
  - app/uploaders/hyrax/avatar_uploader.rb
2490
2529
  - app/uploaders/hyrax/uploaded_file_uploader.rb
@@ -2917,6 +2956,7 @@ files:
2917
2956
  - app/views/shared/_citations.html.erb
2918
2957
  - app/views/shared/_footer.html.erb
2919
2958
  - app/views/shared/_ga.html.erb
2959
+ - app/views/shared/_ga4.html.erb
2920
2960
  - app/views/shared/_locale_picker.html.erb
2921
2961
  - app/views/shared/_matomo.html.erb
2922
2962
  - app/views/shared/_nav_safety_modal.html.erb
@@ -2925,11 +2965,12 @@ files:
2925
2965
  - artifacts/entity-relationship-diagram.dot
2926
2966
  - artifacts/entity-relationship-diagram.pdf
2927
2967
  - bin/db-migrate-seed.sh
2928
- - bin/db-wait.sh
2929
2968
  - bin/dev-entrypoint.sh
2930
2969
  - bin/hyrax-entrypoint.sh
2970
+ - bin/service-wait.sh
2931
2971
  - bin/solrcloud-assign-configset.sh
2932
2972
  - bin/solrcloud-upload-configset.sh
2973
+ - bin/worker-entrypoint.sh
2933
2974
  - chart/hyrax/.gitignore
2934
2975
  - chart/hyrax/.helmignore
2935
2976
  - chart/hyrax/Chart.yaml
@@ -2986,6 +3027,7 @@ files:
2986
3027
  - config/routes.rb
2987
3028
  - config/schema_org.yml
2988
3029
  - db/seeds.rb
3030
+ - docker-compose-dassie.yml
2989
3031
  - docker-compose-koppie.yml
2990
3032
  - docker-compose-sirenia.yml
2991
3033
  - docker-compose.yml
@@ -2995,6 +3037,17 @@ files:
2995
3037
  - documentation/note-about-versions.md
2996
3038
  - hyrax.gemspec
2997
3039
  - karma.conf.js
3040
+ - lib/freyja.rb
3041
+ - lib/freyja/custom_query_container.rb
3042
+ - lib/freyja/metadata_adapter.rb
3043
+ - lib/freyja/persister.rb
3044
+ - lib/freyja/query_service.rb
3045
+ - lib/freyja/resource_factory.rb
3046
+ - lib/frigg.rb
3047
+ - lib/frigg/custom_query_container.rb
3048
+ - lib/frigg/metadata_adapter.rb
3049
+ - lib/frigg/persister.rb
3050
+ - lib/frigg/query_service.rb
2998
3051
  - lib/generators/hyrax/arkivo_api_generator.rb
2999
3052
  - lib/generators/hyrax/assets_generator.rb
3000
3053
  - lib/generators/hyrax/clamav_generator.rb
@@ -3152,6 +3205,9 @@ files:
3152
3205
  - lib/generators/hyrax/work_resource/templates/work.rb.erb
3153
3206
  - lib/generators/hyrax/work_resource/templates/work_spec.rb.erb
3154
3207
  - lib/generators/hyrax/work_resource/work_resource_generator.rb
3208
+ - lib/goddess/custom_query_container.rb
3209
+ - lib/goddess/metadata.rb
3210
+ - lib/goddess/query.rb
3155
3211
  - lib/hyrax.rb
3156
3212
  - lib/hyrax/active_fedora_dummy_model.rb
3157
3213
  - lib/hyrax/administrative_set_name.rb
@@ -3190,6 +3246,7 @@ files:
3190
3246
  - lib/hyrax/resource_sync/resource_list_writer.rb
3191
3247
  - lib/hyrax/resource_sync/source_description_writer.rb
3192
3248
  - lib/hyrax/role_registry.rb
3249
+ - lib/hyrax/rubocop/custom_cops.rb
3193
3250
  - lib/hyrax/schema.rb
3194
3251
  - lib/hyrax/search_state.rb
3195
3252
  - lib/hyrax/specs/capybara.rb
@@ -3265,6 +3322,7 @@ files:
3265
3322
  - lib/hyrax/transactions/steps/delete_access_control.rb
3266
3323
  - lib/hyrax/transactions/steps/delete_all_file_metadata.rb
3267
3324
  - lib/hyrax/transactions/steps/delete_all_file_sets.rb
3325
+ - lib/hyrax/transactions/steps/delete_permission_template.rb
3268
3326
  - lib/hyrax/transactions/steps/delete_resource.rb
3269
3327
  - lib/hyrax/transactions/steps/ensure_admin_set.rb
3270
3328
  - lib/hyrax/transactions/steps/file_metadata_delete.rb
@@ -3382,7 +3440,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
3382
3440
  - !ruby/object:Gem::Version
3383
3441
  version: '0'
3384
3442
  requirements: []
3385
- rubygems_version: 3.5.7
3443
+ rubygems_version: 3.5.22
3386
3444
  signing_key:
3387
3445
  specification_version: 4
3388
3446
  summary: Hyrax is a front-end based on the robust Samvera framework, providing a user
@@ -1,9 +0,0 @@
1
- #!/bin/sh
2
- set -e
3
-
4
- db-wait.sh "$DB_HOST:$DB_PORT"
5
- bundle exec rails db:create
6
- bundle exec rails db:migrate
7
-
8
- db-wait.sh "$SOLR_HOST:$SOLR_PORT"
9
- bundle exec rails db:seed
@@ -1,10 +0,0 @@
1
- #!/bin/sh
2
- set -e
3
-
4
- mkdir -p /app/samvera/hyrax-webapp/tmp/pids
5
- rm -f /app/samvera/hyrax-webapp/tmp/pids/*
6
-
7
- bundle install --quiet
8
-
9
- # Run the command
10
- exec "$@"