hyrax 3.4.2 → 4.0.0.beta1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (435) hide show
  1. checksums.yaml +4 -4
  2. data/.circleci/config.yml +41 -61
  3. data/.dassie/Gemfile +4 -4
  4. data/.dassie/app/assets/javascripts/application.js +8 -4
  5. data/.dassie/app/assets/stylesheets/application.css +1 -1
  6. data/.dassie/app/assets/stylesheets/hyrax.scss +1 -2
  7. data/.dassie/app/controllers/application_controller.rb +1 -3
  8. data/.dassie/app/controllers/catalog_controller.rb +23 -19
  9. data/.dassie/app/models/user.rb +0 -3
  10. data/.dassie/config/application.rb +1 -1
  11. data/.dassie/config/initializers/riiif.rb +1 -1
  12. data/.dassie/db/schema.rb +5 -5
  13. data/.dassie/package.json +7 -7
  14. data/.engine_cart.yml +2 -39
  15. data/.env +1 -0
  16. data/.regen +2 -1
  17. data/.rubocop.yml +1 -1
  18. data/CONTRIBUTING.md +22 -24
  19. data/Dockerfile +1 -1
  20. data/Rakefile +0 -4
  21. data/app/actors/hyrax/actors/base_actor.rb +1 -1
  22. data/app/actors/hyrax/actors/create_with_remote_files_actor.rb +5 -11
  23. data/app/actors/hyrax/actors/file_actor.rb +9 -37
  24. data/app/actors/hyrax/actors/file_set_actor.rb +13 -62
  25. data/app/assets/javascripts/hyrax/app.js.erb +1 -1
  26. data/app/assets/javascripts/hyrax/batch.js +2 -2
  27. data/app/assets/javascripts/hyrax/batch_edit.js +4 -4
  28. data/app/assets/javascripts/hyrax/batch_select_all.js +13 -13
  29. data/app/assets/javascripts/hyrax/browse_everything.js +4 -2
  30. data/app/assets/javascripts/hyrax/collection_types.es6 +1 -1
  31. data/app/assets/javascripts/hyrax/collections/editor.es6 +5 -1
  32. data/app/assets/javascripts/hyrax/dashboard_actions.js +5 -5
  33. data/app/assets/javascripts/hyrax/editor/controlled_vocabulary.es6 +3 -3
  34. data/app/assets/javascripts/hyrax/editor.es6 +3 -3
  35. data/app/assets/javascripts/hyrax/facets.js +6 -4
  36. data/app/assets/javascripts/hyrax/file_manager/member.es6 +1 -1
  37. data/app/assets/javascripts/hyrax/file_manager/save_manager.es6 +2 -2
  38. data/app/assets/javascripts/hyrax/file_manager/sorting.es6 +2 -2
  39. data/app/assets/javascripts/hyrax/file_manager.es6 +2 -17
  40. data/app/assets/javascripts/hyrax/notification.es6 +1 -1
  41. data/app/assets/javascripts/hyrax/permissions/registry.es6 +4 -4
  42. data/app/assets/javascripts/hyrax/permissions/user_controls.es6 +3 -1
  43. data/app/assets/javascripts/hyrax/relationships/confirm_remove_dialog.es6 +1 -1
  44. data/app/assets/javascripts/hyrax/relationships/control.es6 +2 -2
  45. data/app/assets/javascripts/hyrax/relationships/registry_entry.es6 +1 -1
  46. data/app/assets/javascripts/hyrax/reports-buttons.js +9 -9
  47. data/app/assets/javascripts/hyrax/save_work/required_fields.es6 +1 -1
  48. data/app/assets/javascripts/hyrax/save_work/save_work_control.es6 +6 -6
  49. data/app/assets/javascripts/hyrax/save_work/uploaded_files.es6 +2 -2
  50. data/app/assets/javascripts/hyrax/single_use_links_manager.js +1 -1
  51. data/app/assets/javascripts/hyrax/skip_to_content.js +1 -1
  52. data/app/assets/javascripts/hyrax/sorting.js +1 -1
  53. data/app/assets/javascripts/hyrax/trophy.js +1 -1
  54. data/app/assets/javascripts/hyrax/uploader.js +3 -3
  55. data/app/assets/javascripts/hyrax.js +1 -19
  56. data/app/assets/stylesheets/_bootstrap-default-overrides.scss +4 -4
  57. data/app/assets/stylesheets/hyrax/_accessibility.scss +1 -1
  58. data/app/assets/stylesheets/hyrax/_badge.scss +7 -0
  59. data/app/assets/stylesheets/hyrax/_batch-edit.scss +8 -8
  60. data/app/assets/stylesheets/hyrax/_browse_everything_overrides.scss +1 -1
  61. data/app/assets/stylesheets/hyrax/_buttons.scss +31 -1
  62. data/app/assets/stylesheets/hyrax/_card.scss +10 -0
  63. data/app/assets/stylesheets/hyrax/_catalog.scss +22 -48
  64. data/app/assets/stylesheets/hyrax/_collection_types.scss +1 -1
  65. data/app/assets/stylesheets/hyrax/_collections.scss +13 -13
  66. data/app/assets/stylesheets/hyrax/_facets.scss +46 -0
  67. data/app/assets/stylesheets/hyrax/_featured.scss +1 -1
  68. data/app/assets/stylesheets/hyrax/_file-listing.scss +3 -3
  69. data/app/assets/stylesheets/hyrax/_file_manager.scss +17 -17
  70. data/app/assets/stylesheets/hyrax/_file_sets.scss +1 -1
  71. data/app/assets/stylesheets/hyrax/_file_upload.scss +4 -4
  72. data/app/assets/stylesheets/hyrax/_fixedsticky.scss +1 -1
  73. data/app/assets/stylesheets/hyrax/_footer.scss +3 -3
  74. data/app/assets/stylesheets/hyrax/_form-progress.scss +9 -9
  75. data/app/assets/stylesheets/hyrax/_form.scss +3 -4
  76. data/app/assets/stylesheets/hyrax/_forms.scss +62 -29
  77. data/app/assets/stylesheets/hyrax/_header.scss +0 -17
  78. data/app/assets/stylesheets/hyrax/_home-page.scss +13 -51
  79. data/app/assets/stylesheets/hyrax/_html.scss +11 -0
  80. data/app/assets/stylesheets/hyrax/_hyrax.scss +16 -14
  81. data/app/assets/stylesheets/hyrax/_nestable.scss +1 -1
  82. data/app/assets/stylesheets/hyrax/_select_work_type.scss +2 -2
  83. data/app/assets/stylesheets/hyrax/_styles.scss +9 -14
  84. data/app/assets/stylesheets/hyrax/_users.scss +2 -2
  85. data/app/assets/stylesheets/hyrax/_variables.scss +20 -1
  86. data/app/assets/stylesheets/hyrax/_work-show.scss +21 -13
  87. data/app/assets/stylesheets/hyrax/blacklight_gallery.scss +75 -2
  88. data/app/assets/stylesheets/hyrax/dashboard.scss +70 -95
  89. data/app/assets/stylesheets/hyrax/sidebar.scss +39 -19
  90. data/app/controllers/concerns/hyrax/collections_controller_behavior.rb +9 -0
  91. data/app/controllers/concerns/hyrax/works_controller_behavior.rb +4 -9
  92. data/app/controllers/hyrax/batch_edits_controller.rb +1 -1
  93. data/app/controllers/hyrax/dashboard/nest_collections_controller.rb +0 -32
  94. data/app/controllers/hyrax/file_sets_controller.rb +3 -0
  95. data/app/controllers/hyrax/homepage_controller.rb +0 -1
  96. data/app/controllers/hyrax/my_controller.rb +0 -6
  97. data/app/controllers/hyrax/single_use_links_controller.rb +1 -2
  98. data/app/forms/hyrax/forms/collection_form.rb +1 -1
  99. data/app/helpers/hyrax/facets_helper.rb +150 -0
  100. data/app/helpers/hyrax/hyrax_helper_behavior.rb +5 -5
  101. data/app/indexers/hyrax/basic_metadata_indexer.rb +3 -9
  102. data/app/jobs/characterize_job.rb +4 -7
  103. data/app/jobs/create_derivatives_job.rb +4 -2
  104. data/app/jobs/ingest_local_file_job.rb +5 -13
  105. data/app/jobs/inherit_permissions_job.rb +1 -5
  106. data/app/models/admin_set.rb +0 -8
  107. data/app/models/concerns/hyrax/collection_behavior.rb +1 -1
  108. data/app/models/concerns/hyrax/file_set_behavior.rb +1 -1
  109. data/app/models/concerns/hyrax/in_admin_set.rb +0 -7
  110. data/app/models/concerns/hyrax/user.rb +3 -3
  111. data/app/models/concerns/hyrax/work_behavior.rb +0 -1
  112. data/app/models/content_block.rb +0 -6
  113. data/app/models/hyrax/file_metadata.rb +1 -1
  114. data/app/models/hyrax/permission_template.rb +0 -35
  115. data/app/presenters/hyrax/admin/repository_object_presenter.rb +0 -2
  116. data/app/presenters/hyrax/collapsable_section_presenter.rb +2 -2
  117. data/app/presenters/hyrax/collection_presenter.rb +1 -1
  118. data/app/presenters/hyrax/fixity_status_presenter.rb +2 -2
  119. data/app/presenters/hyrax/menu_presenter.rb +1 -1
  120. data/app/presenters/hyrax/permission_badge.rb +7 -7
  121. data/app/presenters/hyrax/workflow_presenter.rb +1 -1
  122. data/app/renderers/hyrax/renderers/external_link_attribute_renderer.rb +1 -1
  123. data/app/search_builders/hyrax/deposit_search_builder.rb +1 -1
  124. data/app/search_builders/hyrax/nested_collections_parent_search_builder.rb +10 -1
  125. data/app/search_builders/hyrax/single_result.rb +1 -1
  126. data/app/search_builders/hyrax/stats/work_status_search_builder.rb +1 -1
  127. data/app/services/hyrax/adapters/nesting_index_adapter.rb +1 -1
  128. data/app/services/hyrax/collection_member_service.rb +1 -2
  129. data/app/services/hyrax/collections/search_service.rb +0 -1
  130. data/app/services/hyrax/custom_queries.rb +25 -0
  131. data/app/services/hyrax/file_set_csv_service.rb +1 -1
  132. data/app/services/hyrax/graph_exporter.rb +3 -8
  133. data/app/services/hyrax/iiif_authorization_service.rb +1 -1
  134. data/app/services/hyrax/listeners/file_metadata_listener.rb +0 -11
  135. data/app/services/hyrax/search_service.rb +1 -81
  136. data/app/services/hyrax/statistics/depositors/summary.rb +1 -3
  137. data/app/services/hyrax/valkyrie_upload.rb +13 -1
  138. data/app/services/hyrax/work_query_service.rb +1 -1
  139. data/app/services/hyrax/working_directory.rb +2 -0
  140. data/app/views/_controls.html.erb +14 -18
  141. data/app/views/_logo.html.erb +0 -1
  142. data/app/views/_masthead.html.erb +8 -18
  143. data/app/views/_user_util_links.html.erb +16 -18
  144. data/app/views/catalog/_document.html.erb +2 -2
  145. data/app/views/catalog/_document_list.html.erb +1 -1
  146. data/app/views/catalog/_facet_limit.html.erb +1 -1
  147. data/app/views/catalog/_index_gallery_collection_wrapper.html.erb +1 -1
  148. data/app/views/catalog/_index_header_list_collection.html.erb +2 -2
  149. data/app/views/catalog/_index_header_list_default.html.erb +1 -1
  150. data/app/views/catalog/_index_list_default.html.erb +7 -5
  151. data/app/views/catalog/_search_form.html.erb +13 -15
  152. data/app/views/catalog/_thumbnail_list_collection.html.erb +2 -2
  153. data/app/views/catalog/_thumbnail_list_default.html.erb +3 -3
  154. data/app/views/catalog/facet.html.erb +21 -0
  155. data/app/views/catalog/index.html.erb +6 -4
  156. data/app/views/hyrax/admin/admin_sets/_form.html.erb +16 -16
  157. data/app/views/hyrax/admin/admin_sets/_form_participant_table.html.erb +35 -33
  158. data/app/views/hyrax/admin/admin_sets/_form_participants.html.erb +9 -8
  159. data/app/views/hyrax/admin/admin_sets/_form_visibility.html.erb +24 -24
  160. data/app/views/hyrax/admin/admin_sets/_form_workflow.erb +5 -5
  161. data/app/views/hyrax/admin/admin_sets/_show_actions.html.erb +3 -3
  162. data/app/views/hyrax/admin/admin_sets/_show_document_list_row.html.erb +9 -9
  163. data/app/views/hyrax/admin/admin_sets/index.html.erb +3 -3
  164. data/app/views/hyrax/admin/admin_sets/show.html.erb +4 -4
  165. data/app/views/hyrax/admin/analytics/_date_range_form.html.erb +3 -3
  166. data/app/views/hyrax/admin/analytics/collection_reports/_custom_range.html.erb +3 -3
  167. data/app/views/hyrax/admin/analytics/collection_reports/_monthly_summary.html.erb +3 -3
  168. data/app/views/hyrax/admin/analytics/collection_reports/_summary.html.erb +3 -3
  169. data/app/views/hyrax/admin/analytics/collection_reports/_top_collections.html.erb +7 -7
  170. data/app/views/hyrax/admin/analytics/collection_reports/index.html.erb +6 -6
  171. data/app/views/hyrax/admin/analytics/collection_reports/show.html.erb +10 -10
  172. data/app/views/hyrax/admin/analytics/work_reports/_custom_range.html.erb +3 -3
  173. data/app/views/hyrax/admin/analytics/work_reports/_monthly_summary.html.erb +3 -3
  174. data/app/views/hyrax/admin/analytics/work_reports/_summary.html.erb +3 -3
  175. data/app/views/hyrax/admin/analytics/work_reports/_top_file_set_downloads.html.erb +5 -5
  176. data/app/views/hyrax/admin/analytics/work_reports/_top_works.html.erb +7 -7
  177. data/app/views/hyrax/admin/analytics/work_reports/_work_counts.html.erb +4 -4
  178. data/app/views/hyrax/admin/analytics/work_reports/_work_files.html.erb +5 -5
  179. data/app/views/hyrax/admin/analytics/work_reports/index.html.erb +7 -7
  180. data/app/views/hyrax/admin/analytics/work_reports/show.html.erb +10 -10
  181. data/app/views/hyrax/admin/appearances/show.html.erb +2 -2
  182. data/app/views/hyrax/admin/collection_types/_form.html.erb +24 -23
  183. data/app/views/hyrax/admin/collection_types/_form_appearance.html.erb +2 -2
  184. data/app/views/hyrax/admin/collection_types/_form_participants.html.erb +4 -4
  185. data/app/views/hyrax/admin/collection_types/_form_settings.html.erb +9 -9
  186. data/app/views/hyrax/admin/collection_types/index.html.erb +6 -6
  187. data/app/views/hyrax/admin/features/index.html.erb +3 -3
  188. data/app/views/hyrax/admin/stats/_new_users.html.erb +1 -1
  189. data/app/views/hyrax/admin/stats/show.html.erb +4 -6
  190. data/app/views/hyrax/admin/users/index.html.erb +3 -3
  191. data/app/views/hyrax/admin/workflow_roles/index.html.erb +8 -8
  192. data/app/views/hyrax/admin/workflows/index.html.erb +13 -13
  193. data/app/views/hyrax/base/_citations.html.erb +6 -6
  194. data/app/views/hyrax/base/_currently_shared.html.erb +3 -3
  195. data/app/views/hyrax/base/_file_manager_actions.html.erb +5 -3
  196. data/app/views/hyrax/base/_file_manager_member.html.erb +5 -5
  197. data/app/views/hyrax/base/_file_manager_member_resource_options.html.erb +6 -6
  198. data/app/views/hyrax/base/_file_manager_members.html.erb +1 -1
  199. data/app/views/hyrax/base/_file_manager_thumbnail.html.erb +1 -1
  200. data/app/views/hyrax/base/_form_child_work_relationships.html.erb +3 -3
  201. data/app/views/hyrax/base/_form_files.html.erb +9 -9
  202. data/app/views/hyrax/base/_form_member_of_collections.html.erb +3 -3
  203. data/app/views/hyrax/base/_form_metadata.html.erb +1 -1
  204. data/app/views/hyrax/base/_form_permission.html.erb +30 -20
  205. data/app/views/hyrax/base/_form_permission_under_embargo.html.erb +1 -1
  206. data/app/views/hyrax/base/_form_permission_under_lease.html.erb +1 -1
  207. data/app/views/hyrax/base/_form_progress.html.erb +6 -6
  208. data/app/views/hyrax/base/_form_relationships.html.erb +1 -1
  209. data/app/views/hyrax/base/_form_rendering.html.erb +1 -1
  210. data/app/views/hyrax/base/_form_representative.html.erb +1 -1
  211. data/app/views/hyrax/base/_form_share.html.erb +6 -6
  212. data/app/views/hyrax/base/_form_thumbnail.html.erb +1 -1
  213. data/app/views/hyrax/base/_form_visibility_component.html.erb +15 -15
  214. data/app/views/hyrax/base/_guts4form.html.erb +12 -20
  215. data/app/views/hyrax/base/_member.html.erb +1 -1
  216. data/app/views/hyrax/base/_metadata.html.erb +1 -1
  217. data/app/views/hyrax/base/_show_actions.html.erb +9 -9
  218. data/app/views/hyrax/base/_work_button_row.html.erb +16 -15
  219. data/app/views/hyrax/base/_workflow_actions.html.erb +10 -10
  220. data/app/views/hyrax/base/_workflow_actions_widget.erb +1 -1
  221. data/app/views/hyrax/base/file_manager.html.erb +4 -5
  222. data/app/views/hyrax/base/inspect_work.html.erb +1 -1
  223. data/app/views/hyrax/base/show.html.erb +12 -12
  224. data/app/views/hyrax/base/unavailable.html.erb +2 -2
  225. data/app/views/hyrax/batch_edits/_check_all.html.erb +0 -1
  226. data/app/views/hyrax/batch_edits/_delete_selected.html.erb +1 -1
  227. data/app/views/hyrax/batch_edits/edit.html.erb +26 -18
  228. data/app/views/hyrax/collections/_bookmark_control.html.erb +2 -2
  229. data/app/views/hyrax/collections/_list_collections.html.erb +6 -6
  230. data/app/views/hyrax/collections/_list_works.html.erb +3 -1
  231. data/app/views/hyrax/collections/_search_form.html.erb +4 -4
  232. data/app/views/hyrax/collections/_show_document_list_row.html.erb +5 -2
  233. data/app/views/hyrax/collections/_sort_and_per_page.html.erb +3 -3
  234. data/app/views/hyrax/collections/_view_type_group.html.erb +2 -2
  235. data/app/views/hyrax/contact_form/new.html.erb +12 -13
  236. data/app/views/hyrax/content_blocks/_form.html.erb +29 -23
  237. data/app/views/hyrax/content_blocks/templates/agreement.html.erb +3 -3
  238. data/app/views/hyrax/dashboard/_admin_sets.html.erb +22 -28
  239. data/app/views/hyrax/dashboard/_index_partials/_current_proxy_rights.html.erb +2 -2
  240. data/app/views/hyrax/dashboard/_index_partials/_proxy_rights.html.erb +4 -4
  241. data/app/views/hyrax/dashboard/_index_partials/_transfers.html.erb +2 -2
  242. data/app/views/hyrax/dashboard/_repository_growth.html.erb +28 -28
  243. data/app/views/hyrax/dashboard/_resource_type_graph.html.erb +4 -4
  244. data/app/views/hyrax/dashboard/_sidebar.html.erb +3 -3
  245. data/app/views/hyrax/dashboard/_tabs.html.erb +6 -2
  246. data/app/views/hyrax/dashboard/_user_activity.html.erb +22 -19
  247. data/app/views/hyrax/dashboard/_visibility_graph.html.erb +4 -4
  248. data/app/views/hyrax/dashboard/_work_type_graph.html.erb +4 -4
  249. data/app/views/hyrax/dashboard/collections/_batch_edits_actions.html.erb +1 -1
  250. data/app/views/hyrax/dashboard/collections/_bookmark_control.html.erb +2 -2
  251. data/app/views/hyrax/dashboard/collections/_edit_actions.html.erb +1 -1
  252. data/app/views/hyrax/dashboard/collections/_form.html.erb +30 -22
  253. data/app/views/hyrax/dashboard/collections/_form_branding.html.erb +19 -19
  254. data/app/views/hyrax/dashboard/collections/_form_discovery.html.erb +8 -4
  255. data/app/views/hyrax/dashboard/collections/_form_for_select_collection.html.erb +7 -7
  256. data/app/views/hyrax/dashboard/collections/_form_share.html.erb +11 -9
  257. data/app/views/hyrax/dashboard/collections/_form_share_table.html.erb +34 -31
  258. data/app/views/hyrax/dashboard/collections/_list_collections.html.erb +1 -1
  259. data/app/views/hyrax/dashboard/collections/_list_works.html.erb +3 -1
  260. data/app/views/hyrax/dashboard/collections/_modal_remove_from_collection.html.erb +1 -1
  261. data/app/views/hyrax/dashboard/collections/_modal_remove_sub_collection.html.erb +1 -1
  262. data/app/views/hyrax/dashboard/collections/_show_add_items_actions.html.erb +1 -1
  263. data/app/views/hyrax/dashboard/collections/_show_descriptions.html.erb +5 -3
  264. data/app/views/hyrax/dashboard/collections/_show_document_list_menu.html.erb +4 -4
  265. data/app/views/hyrax/dashboard/collections/_show_document_list_row.html.erb +12 -10
  266. data/app/views/hyrax/dashboard/collections/_show_parent_collection_row.html.erb +2 -2
  267. data/app/views/hyrax/dashboard/collections/_sort_and_per_page.html.erb +4 -4
  268. data/app/views/hyrax/dashboard/collections/_subcollection_list.html.erb +1 -1
  269. data/app/views/hyrax/dashboard/collections/_work_action_menu.html.erb +10 -10
  270. data/app/views/hyrax/dashboard/collections/show.html.erb +4 -4
  271. data/app/views/hyrax/dashboard/profiles/_edit_primary.html.erb +21 -21
  272. data/app/views/hyrax/dashboard/profiles/_trophy_edit.html.erb +5 -5
  273. data/app/views/hyrax/dashboard/profiles/_zotero.html.erb +2 -2
  274. data/app/views/hyrax/dashboard/profiles/edit.html.erb +2 -2
  275. data/app/views/hyrax/dashboard/profiles/show.html.erb +3 -3
  276. data/app/views/hyrax/dashboard/show_admin.html.erb +36 -34
  277. data/app/views/hyrax/dashboard/show_user.html.erb +16 -16
  278. data/app/views/hyrax/dashboard/sidebar/_activity.html.erb +10 -10
  279. data/app/views/hyrax/dashboard/sidebar/_configuration.html.erb +8 -8
  280. data/app/views/hyrax/dashboard/sidebar/_repository_content.html.erb +3 -1
  281. data/app/views/hyrax/dashboard/sidebar/_tasks.html.erb +5 -1
  282. data/app/views/hyrax/dashboard/works/_list_works.html.erb +4 -1
  283. data/app/views/hyrax/depositors/index.html.erb +2 -2
  284. data/app/views/hyrax/embargoes/edit.html.erb +11 -11
  285. data/app/views/hyrax/embargoes/index.html.erb +18 -6
  286. data/app/views/hyrax/file_sets/_actions.html.erb +5 -6
  287. data/app/views/hyrax/file_sets/_descriptions.html.erb +1 -1
  288. data/app/views/hyrax/file_sets/_extra_fields_modal.html.erb +1 -1
  289. data/app/views/hyrax/file_sets/_form.html.erb +1 -1
  290. data/app/views/hyrax/file_sets/_permission_form.html.erb +33 -29
  291. data/app/views/hyrax/file_sets/_show_actions.html.erb +2 -2
  292. data/app/views/hyrax/file_sets/_show_details.html.erb +27 -17
  293. data/app/views/hyrax/file_sets/_single_use_link_rows.html.erb +2 -2
  294. data/app/views/hyrax/file_sets/_single_use_links.html.erb +2 -2
  295. data/app/views/hyrax/file_sets/_versioning.html.erb +9 -9
  296. data/app/views/hyrax/file_sets/edit.html.erb +17 -11
  297. data/app/views/hyrax/file_sets/media_display/_image.html.erb +4 -4
  298. data/app/views/hyrax/file_sets/show.html.erb +2 -2
  299. data/app/views/hyrax/homepage/_announcement.html.erb +2 -2
  300. data/app/views/hyrax/homepage/_explore_collections.html.erb +6 -4
  301. data/app/views/hyrax/homepage/_featured_fields.html.erb +1 -1
  302. data/app/views/hyrax/homepage/_featured_works.html.erb +1 -1
  303. data/app/views/hyrax/homepage/_home_content.html.erb +24 -10
  304. data/app/views/hyrax/homepage/_marketing.html.erb +1 -1
  305. data/app/views/hyrax/homepage/_recent_document.html.erb +4 -1
  306. data/app/views/hyrax/homepage/_sortable_featured.html.erb +3 -3
  307. data/app/views/hyrax/homepage/index.html.erb +4 -4
  308. data/app/views/hyrax/leases/edit.html.erb +11 -11
  309. data/app/views/hyrax/leases/index.html.erb +18 -6
  310. data/app/views/hyrax/my/_admin_set_action_menu.html.erb +5 -5
  311. data/app/views/hyrax/my/_collection_action_menu.html.erb +6 -6
  312. data/app/views/hyrax/my/_constraints.html.erb +2 -2
  313. data/app/views/hyrax/my/_document_list.html.erb +1 -1
  314. data/app/views/hyrax/my/_facet_layout.html.erb +1 -2
  315. data/app/views/hyrax/my/_facet_limit.html.erb +4 -4
  316. data/app/views/hyrax/my/_facet_pagination.html.erb +1 -25
  317. data/app/views/hyrax/my/_facet_pivot.html.erb +1 -1
  318. data/app/views/hyrax/my/_facet_selected.html.erb +1 -1
  319. data/app/views/hyrax/my/_search_form.html.erb +7 -8
  320. data/app/views/hyrax/my/_sort_and_per_page.html.erb +10 -12
  321. data/app/views/hyrax/my/_work_action_menu.html.erb +4 -5
  322. data/app/views/hyrax/my/collections/_facets.html.erb +2 -2
  323. data/app/views/hyrax/my/collections/_list_collections.html.erb +1 -1
  324. data/app/views/hyrax/my/collections/_modal_add_subcollection.html.erb +2 -2
  325. data/app/views/hyrax/my/collections/_modal_add_to_collection.html.erb +2 -2
  326. data/app/views/hyrax/my/collections/_modal_collection_types_to_create.html.erb +5 -5
  327. data/app/views/hyrax/my/collections/_modal_delete_collection.html.erb +1 -1
  328. data/app/views/hyrax/my/collections/_modal_delete_empty_collection.html.erb +1 -1
  329. data/app/views/hyrax/my/collections/_modal_delete_selected_collections.html.erb +1 -1
  330. data/app/views/hyrax/my/collections/_tabs.html.erb +11 -4
  331. data/app/views/hyrax/my/collections/index.html.erb +3 -3
  332. data/app/views/hyrax/my/facet.html.erb +17 -16
  333. data/app/views/hyrax/my/index.html.erb +2 -2
  334. data/app/views/hyrax/my/works/_batch_actions.html.erb +1 -1
  335. data/app/views/hyrax/my/works/_facets.html.erb +2 -2
  336. data/app/views/hyrax/my/works/_list_works.html.erb +6 -7
  337. data/app/views/hyrax/my/works/_tabs.html.erb +6 -6
  338. data/app/views/hyrax/my/works/index.html.erb +20 -18
  339. data/app/views/hyrax/notifications/_notifications.html.erb +1 -1
  340. data/app/views/hyrax/notifications/index.html.erb +4 -4
  341. data/app/views/hyrax/operations/index.html.erb +1 -1
  342. data/app/views/hyrax/operations/show.html.erb +2 -2
  343. data/app/views/hyrax/pages/_form.html.erb +76 -64
  344. data/app/views/hyrax/permissions/confirm.html.erb +4 -4
  345. data/app/views/hyrax/permissions/confirm_access.html.erb +4 -4
  346. data/app/views/hyrax/stats/file.html.erb +1 -1
  347. data/app/views/hyrax/stats/work.html.erb +1 -1
  348. data/app/views/hyrax/transfers/_received.html.erb +4 -4
  349. data/app/views/hyrax/transfers/index.html.erb +8 -8
  350. data/app/views/hyrax/uploads/_js_templates.html.erb +14 -14
  351. data/app/views/hyrax/uploads/_js_templates_branding.html.erb +5 -5
  352. data/app/views/hyrax/uploads/_js_templates_versioning.html.erb +15 -15
  353. data/app/views/hyrax/users/_activity.html.erb +3 -3
  354. data/app/views/hyrax/users/_contributions.html.erb +3 -3
  355. data/app/views/hyrax/users/_left_sidebar.html.erb +1 -1
  356. data/app/views/hyrax/users/_profile_tabs.html.erb +16 -8
  357. data/app/views/hyrax/users/_search_form.html.erb +2 -2
  358. data/app/views/hyrax/users/_user.html.erb +5 -5
  359. data/app/views/hyrax/users/_user_info.html.erb +4 -4
  360. data/app/views/hyrax/users/_vitals.html.erb +3 -3
  361. data/app/views/hyrax/users/show.html.erb +2 -2
  362. data/app/views/layouts/hyrax/dashboard.html.erb +4 -4
  363. data/app/views/layouts/hyrax.html.erb +4 -3
  364. data/app/views/shared/_appearance_styles.html.erb +8 -8
  365. data/app/views/shared/_footer.html.erb +1 -1
  366. data/app/views/shared/_locale_picker.html.erb +5 -8
  367. data/app/views/shared/_nav_safety_modal.html.erb +2 -2
  368. data/app/views/shared/_select_work_type_modal.html.erb +2 -2
  369. data/config/locales/hyrax.de.yml +4 -4
  370. data/config/locales/hyrax.en.yml +4 -4
  371. data/config/locales/hyrax.es.yml +6 -6
  372. data/config/locales/hyrax.fr.yml +7 -7
  373. data/config/locales/hyrax.it.yml +6 -6
  374. data/config/locales/hyrax.pt-BR.yml +6 -6
  375. data/config/locales/hyrax.zh.yml +6 -6
  376. data/docker-compose.yml +2 -1
  377. data/documentation/developing-your-hyrax-based-app.md +1 -1
  378. data/documentation/legacyREADME.md +1 -1
  379. data/hyrax.gemspec +12 -21
  380. data/karma.conf.js +104 -0
  381. data/lib/generators/hyrax/assets_generator.rb +2 -5
  382. data/lib/generators/hyrax/install_generator.rb +9 -33
  383. data/lib/generators/hyrax/templates/catalog_controller.rb +20 -13
  384. data/lib/generators/hyrax/templates/config/initializers/riiif.rb +1 -1
  385. data/lib/generators/hyrax/templates/config/locales/hyrax.de.yml +1 -1
  386. data/lib/generators/hyrax/templates/config/locales/hyrax.en.yml +1 -1
  387. data/lib/generators/hyrax/templates/config/locales/hyrax.es.yml +1 -1
  388. data/lib/generators/hyrax/templates/config/locales/hyrax.fr.yml +1 -1
  389. data/lib/generators/hyrax/templates/config/locales/hyrax.it.yml +1 -1
  390. data/lib/generators/hyrax/templates/config/locales/hyrax.pt-BR.yml +1 -1
  391. data/lib/generators/hyrax/templates/config/locales/hyrax.zh.yml +1 -1
  392. data/lib/generators/hyrax/templates/hyrax.scss +1 -2
  393. data/lib/generators/hyrax/templates/package.json +7 -8
  394. data/lib/hyrax/configuration.rb +0 -40
  395. data/lib/hyrax/engine.rb +1 -2
  396. data/lib/hyrax/publisher.rb +0 -4
  397. data/lib/hyrax/specs/capybara.rb +5 -3
  398. data/lib/hyrax/transactions/container.rb +0 -54
  399. data/lib/hyrax/version.rb +1 -1
  400. data/lib/valkyrie/indexing/solr/indexing_adapter.rb +1 -1
  401. data/lib/wings/valkyrie/persister.rb +2 -1
  402. data/package.json +11 -0
  403. data/tasks/hyrax_dev.rake +32 -0
  404. data/template.rb +1 -1
  405. data/vendor/assets/javascripts/dataTables.bootstrap4.js +184 -0
  406. data/vendor/assets/javascripts/fileupload/jquery.fileupload-ui.js +1 -1
  407. data/vendor/assets/javascripts/fileupload/jquery.fileupload.js +2 -2
  408. data/vendor/assets/javascripts/fileupload/jquery.iframe-transport.js +1 -1
  409. data/vendor/assets/javascripts/handlebars.js +5214 -0
  410. data/vendor/assets/javascripts/jquery-ui.js +19057 -0
  411. data/vendor/assets/javascripts/jquery.dataTables.js +15336 -0
  412. data/vendor/assets/javascripts/morris/morris.min.js +9 -1
  413. data/vendor/assets/javascripts/morris/raphael-min.js +4 -6
  414. data/vendor/assets/javascripts/nestable.js +1 -1
  415. data/vendor/assets/stylesheets/dataTables.bootstrap4.css +307 -0
  416. data/vendor/assets/stylesheets/jquery-ui.css +1315 -0
  417. data/vendor/assets/stylesheets/morris.css +3 -0
  418. metadata +92 -172
  419. data/app/actors/hyrax/actors/initialize_workflow_actor.rb +0 -35
  420. data/app/helpers/hyrax/url_helper.rb +0 -13
  421. data/app/jobs/content_depositor_change_event_job.rb +0 -48
  422. data/app/models/concerns/hyrax/with_file_sets.rb +0 -17
  423. data/lib/hyrax/transactions/create_work.rb +0 -65
  424. data/lib/hyrax/transactions/destroy_work.rb +0 -28
  425. data/lib/hyrax/transactions/steps/apply_collection_permission_template.rb +0 -34
  426. data/lib/hyrax/transactions/steps/apply_permission_template.rb +0 -32
  427. data/lib/hyrax/transactions/steps/apply_visibility.rb +0 -41
  428. data/lib/hyrax/transactions/steps/destroy_work.rb +0 -27
  429. data/lib/hyrax/transactions/steps/ensure_permission_template.rb +0 -29
  430. data/lib/hyrax/transactions/steps/save_work.rb +0 -38
  431. data/lib/hyrax/transactions/update_work.rb +0 -19
  432. data/lib/wings/services/file_converter_service.rb +0 -19
  433. data/lib/wings/services/file_metadata_builder.rb +0 -94
  434. data/vendor/assets/javascripts/handlebars-v4.0.5.js +0 -4612
  435. data/vendor/assets/stylesheets/morris.js/0.5.1/morris.css +0 -2
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 9b16b002450d8ab2e549a1e79a558df2cdcc5a4f906d5cad461a010de5d3083d
4
- data.tar.gz: e31cfe1456a09806f220c3a80582c708ea04707fb927dce8bcd1fa897d738c94
3
+ metadata.gz: 0217d84335b2d3a3a1ed7729493eec75e67e5a2563034c9b1b4b3e025eb30520
4
+ data.tar.gz: 509e3aaf3d67a086d2361baa09de56a75d063f3df63c7b2b955027d6fd1fcbd7
5
5
  SHA512:
6
- metadata.gz: c559a06ad78eb3b2e13ab6f11cc7fd0a5ee94a0da1670b0c67557610cf0d65fde294a6998ce46c634bff1a24ad3a17d6eb4755ec7ddf87e7c339ef7c46a0e717
7
- data.tar.gz: d95bd5690258a422be6913a1fb7bed33c225288948c74d6864ec3f7740d4791fd7dcca321b89f81efc33083048965102635281ff5b0de815701125a95c8e24f7
6
+ metadata.gz: 95237e304352c8a36f8fc16994e192f8b305c12d4df7dc12c20de05072932a5516d4598a4facd58f42262d1e1a85aae9a50a21e174e32f9dbc613ac2c90c7177
7
+ data.tar.gz: 42f9ff962f2920a60f78e342cc01114ab9dfe653d5f5ec8cf743816edb5da3d71bad71e553239a67e8e017c0faf4317c004564b6f60653f40697275ba4fc1994
data/.circleci/config.yml CHANGED
@@ -1,18 +1,19 @@
1
1
  version: 2.1
2
2
  orbs:
3
- samvera: samvera/circleci-orb@0
3
+ samvera: samvera/circleci-orb@1
4
+ browser-tools: circleci/browser-tools@1.3
4
5
  jobs:
5
6
  bundle:
6
7
  parameters:
7
8
  ruby_version:
8
9
  type: string
9
- default: 2.5.9
10
+ default: 2.7.6
10
11
  bundler_version:
11
12
  type: string
12
- default: 1.17.3
13
+ default: 2.3.13
13
14
  rails_version:
14
15
  type: string
15
- default: '5.2.6'
16
+ default: 6.0.5
16
17
  executor:
17
18
  name: 'samvera/ruby'
18
19
  ruby_version: << parameters.ruby_version >>
@@ -67,13 +68,13 @@ jobs:
67
68
  parameters:
68
69
  ruby_version:
69
70
  type: string
70
- default: 2.5.9
71
+ default: 2.7.6
71
72
  bundler_version:
72
73
  type: string
73
- default: 1.17.3
74
+ default: 2.3.13
74
75
  rails_version:
75
76
  type: string
76
- default: '5.2.6'
77
+ default: 6.0.5
77
78
  executor:
78
79
  name: 'samvera/ruby_fcrepo_solr_redis_postgres'
79
80
  ruby_version: << parameters.ruby_version >>
@@ -81,20 +82,11 @@ jobs:
81
82
  environment:
82
83
  RAILS_VERSION: << parameters.rails_version >>
83
84
  NOKOGIRI_USE_SYSTEM_LIBRARIES: true
84
- ENGINE_CART_RAILS_OPTIONS: --database=postgresql --skip-git --skip-bundle --skip-listen --skip-spring --skip-keeps --skip-test --skip-bootsnap
85
+ ENGINE_CART_RAILS_OPTIONS: --database=postgresql --skip-git --skip-bundle --skip-listen --skip-spring --skip-keeps --skip-test --skip-bootsnap --skip-javascript
85
86
  DATABASE_URL: postgresql://postgres@127.0.0.1/circle_test # Hard-coded with data from CircleCI orb, related to https://github.com/samvera-labs/samvera-circleci-orb/issues/42
86
87
  steps:
87
88
  - attach_workspace:
88
89
  at: ~/
89
- - when:
90
- condition:
91
- equal: [ '2.5.9', << parameters.ruby_version >> ]
92
- steps:
93
- - run:
94
- name: "Lock browse everything for Ruby 2.5"
95
- command: |
96
- sed -i.bak "s/browse-everything.*/browse-everything\', \'1.1.2\'/" hyrax.gemspec
97
- bundle
98
90
  - samvera/engine_cart_generate:
99
91
  cache_key: v1-internal-test-app-{{ checksum "hyrax.gemspec" }}-{{ checksum ".regen" }}-{{ checksum ".circleci/config.yml" }}-<< parameters.rails_version >>-<< parameters.ruby_version >>
100
92
  - samvera/bundle:
@@ -110,10 +102,10 @@ jobs:
110
102
  parameters:
111
103
  ruby_version:
112
104
  type: string
113
- default: 2.5.9
105
+ default: 2.7.6
114
106
  bundler_version:
115
107
  type: string
116
- default: 1.17.3
108
+ default: 2.3.13
117
109
  hyrax_valkyrie:
118
110
  type: string
119
111
  default: "false"
@@ -126,9 +118,26 @@ jobs:
126
118
  HYRAX_VALKYRIE: << parameters.hyrax_valkyrie >>
127
119
  VALKYRIE_SOLR_PORT: 8985
128
120
  DATABASE_URL: postgresql://postgres@127.0.0.1/circle_test # Hard-coded with data from CircleCI orb, related to https://github.com/samvera-labs/samvera-circleci-orb/issues/42
121
+ KARMA_BROWSER: ChromeHeadlessCustom
122
+ RAILS_ROOT: .internal_test_app
129
123
  steps:
130
124
  - attach_workspace:
131
125
  at: ~/
126
+ - run:
127
+ name: Install system dependencies
128
+ command: |
129
+ sudo apt-get update
130
+ sudo apt-get install imagemagick librsvg2-bin
131
+ - browser-tools/install-chrome
132
+ - browser-tools/install-chromedriver
133
+ - run:
134
+ command: |
135
+ google-chrome --version
136
+ chromedriver --version
137
+ name: Check Chrome install
138
+ - run:
139
+ name: Yarn install
140
+ command: yarn install
132
141
  - samvera/install_solr_core:
133
142
  solr_config_path: .internal_test_app/solr/conf
134
143
  - samvera/install_solr_core:
@@ -159,60 +168,31 @@ jobs:
159
168
  --header 'Content-Type: application/json'
160
169
  workflows:
161
170
  version: 2
162
- ruby2-5:
171
+ ruby2-7-6:
163
172
  jobs:
164
173
  - bundle:
165
- ruby_version: "2.5.9"
166
- rails_version: "5.2.6"
174
+ ruby_version: "2.7.6"
175
+ rails_version: "6.0.5"
176
+ bundler_version: "2.3.13"
167
177
  - build:
168
- ruby_version: "2.5.9"
169
- rails_version: "5.2.6"
178
+ ruby_version: "2.7.6"
179
+ rails_version: "6.0.5"
180
+ bundler_version: "2.3.13"
170
181
  requires:
171
182
  - bundle
172
183
  - test:
173
- name: "ruby2-5"
174
- ruby_version: "2.5.9"
184
+ name: "ruby2-7-6"
185
+ ruby_version: "2.7.6"
186
+ bundler_version: "2.3.13"
175
187
  requires:
176
188
  - build
177
- ruby2-6:
178
- jobs:
179
- - bundle:
180
- ruby_version: "2.6.7"
181
- rails_version: "5.2.6"
182
- - build:
183
- ruby_version: "2.6.7"
184
- rails_version: "5.2.6"
185
- requires:
186
- - bundle
187
189
  - test:
188
- name: "ruby2-6"
189
- ruby_version: "2.6.7"
190
- requires:
191
- - build
192
- - test:
193
- name: "ruby2-6-valkyrie"
194
- ruby_version: "2.6.7"
190
+ name: "ruby2-7-6-valkyrie"
191
+ ruby_version: "2.7.6"
192
+ bundler_version: "2.3.13"
195
193
  hyrax_valkyrie: "true"
196
194
  requires:
197
195
  - build
198
- ruby2-7:
199
- jobs:
200
- - bundle:
201
- ruby_version: "2.7.4"
202
- rails_version: "5.2.6"
203
- bundler_version: "2.1.4"
204
- - build:
205
- ruby_version: "2.7.4"
206
- rails_version: "5.2.6"
207
- bundler_version: "2.1.4"
208
- requires:
209
- - bundle
210
- - test:
211
- name: "ruby2-7"
212
- ruby_version: "2.7.4"
213
- bundler_version: "2.1.4"
214
- requires:
215
- - build
216
196
  nurax-dev_deploy:
217
197
  jobs:
218
198
  - deploy:
data/.dassie/Gemfile CHANGED
@@ -8,16 +8,16 @@ else
8
8
  end
9
9
  git_source(:github) { |repo| "https://github.com/#{repo}.git" }
10
10
 
11
- ruby '2.7.5'
11
+ ruby '2.7.6'
12
12
 
13
13
  # Bundle edge Rails instead: gem 'rails', github: 'rails/rails'
14
- gem 'rails', '~> 5.2.4', '>= 5.2.4.4'
14
+ gem 'rails', '~> 6.0'
15
15
  # Use postgresql as the database for Active Record
16
16
  gem 'pg', '>= 0.18', '< 2.0'
17
17
  # Use Puma as the app server
18
18
  gem 'puma', '~> 4.3.8'
19
19
  # Use SCSS for stylesheets
20
- gem 'sass-rails', '~> 5.0'
20
+ gem 'sass-rails', '~> 6.0'
21
21
  # Use Uglifier as compressor for JavaScript assets
22
22
  gem 'uglifier', '>= 1.3.0'
23
23
 
@@ -52,7 +52,7 @@ gem 'tzinfo-data', platforms: [:mingw, :mswin, :x64_mingw, :jruby]
52
52
 
53
53
  gemspec name: 'hyrax', path: ENV.fetch('HYRAX_ENGINE_PATH', '..')
54
54
 
55
- gem 'bootstrap-sass', '~> 3.0'
55
+ gem 'bootstrap', '~> 4.0'
56
56
  gem 'devise'
57
57
  gem 'devise-guests', '~> 0.6'
58
58
  gem 'jquery-rails'
@@ -15,11 +15,15 @@
15
15
  //= require turbolinks
16
16
  //
17
17
  // Required by Blacklight
18
- //= require jquery
19
- //= require jquery_ujs
20
- //= require dataTables/jquery.dataTables
21
- //= require dataTables/bootstrap/3/jquery.dataTables.bootstrap
18
+ //= require jquery3
19
+ //= require rails-ujs
20
+ //= require popper
21
+ //= require twitter/typeahead
22
+ //= require bootstrap
23
+ //= require jquery.dataTables
24
+ //= require dataTables.bootstrap4
22
25
  //= require blacklight/blacklight
26
+ //= require blacklight_gallery
23
27
 
24
28
  //= require_tree .
25
29
  //= require hyrax
@@ -11,6 +11,6 @@
11
11
  * It is generally better to create a new file per style scope.
12
12
  *
13
13
  *= require_tree .
14
- *= require dataTables/bootstrap/3/jquery.dataTables.bootstrap
14
+ *= require dataTables.bootstrap4
15
15
  *= require_self
16
16
  */
@@ -4,14 +4,13 @@
4
4
  *= require_self
5
5
  */
6
6
 
7
- @import "bootstrap-sprockets";
8
7
  @import "bootstrap-default-overrides";
9
8
  @import 'bootstrap';
10
- @import 'blacklight/blacklight';
11
9
  @import "font-awesome";
12
10
  @import "blacklight_gallery/gallery";
13
11
  @import "blacklight_gallery/masonry";
14
12
  @import "blacklight_gallery/slideshow";
15
13
  @import "blacklight_gallery/osd_viewer";
14
+ @import "hyrax/blacklight_gallery";
16
15
  @import 'hyrax/hyrax';
17
16
  @import 'hyrax/login_signup';
@@ -2,13 +2,11 @@ class ApplicationController < ActionController::Base
2
2
  helper Openseadragon::OpenseadragonHelper
3
3
  # Adds a few additional behaviors into the application controller
4
4
  include Blacklight::Controller
5
- skip_after_action :discard_flash_if_xhr
6
5
  include Hydra::Controller::ControllerBehavior
7
6
 
8
7
  # Adds Hyrax behaviors into the application controller
9
8
  include Hyrax::Controller
10
9
  include Hyrax::ThemedLayoutController
11
- with_themed_layout '1_column'
12
-
13
10
 
11
+ with_themed_layout '1_column'
14
12
  end
@@ -5,8 +5,6 @@ class CatalogController < ApplicationController
5
5
 
6
6
  # This filter applies the hydra access controls
7
7
  before_action :enforce_show_permissions, only: :show
8
- # Allow all search options when in read-only mode
9
- skip_before_action :check_read_only
10
8
 
11
9
  def self.uploaded_field
12
10
  "system_create_dtsi"
@@ -17,19 +15,14 @@ class CatalogController < ApplicationController
17
15
  end
18
16
 
19
17
  configure_blacklight do |config|
20
- config.view.gallery.partials = [:index_header, :index]
21
- config.view.masonry.partials = [:index]
22
- config.view.slideshow.partials = [:index]
23
-
18
+ config.view.gallery(document_component: Blacklight::Gallery::DocumentComponent)
19
+ config.view.masonry(document_component: Blacklight::Gallery::DocumentComponent)
20
+ config.view.slideshow(document_component: Blacklight::Gallery::SlideshowComponent)
24
21
 
25
22
  config.show.tile_source_field = :content_metadata_image_iiif_info_ssm
26
23
  config.show.partials.insert(1, :openseadragon)
27
24
  config.search_builder_class = Hyrax::CatalogSearchBuilder
28
25
 
29
- # Show gallery view
30
- config.view.gallery.partials = [:index_header, :index]
31
- config.view.slideshow.partials = [:index]
32
-
33
26
  # Because too many times on Samvera tech people raise a problem regarding a failed query to SOLR.
34
27
  # Often, it's because they inadvertently exceeded the character limit of a GET request.
35
28
  config.http_method = :post
@@ -46,6 +39,17 @@ class CatalogController < ApplicationController
46
39
  config.index.display_type_field = "has_model_ssim"
47
40
  config.index.thumbnail_field = 'thumbnail_path_ss'
48
41
 
42
+ config.add_results_document_tool(:bookmark, partial: 'bookmark_control', if: :render_bookmarks_control?)
43
+ config.add_results_collection_tool(:sort_widget)
44
+ config.add_results_collection_tool(:per_page_widget)
45
+ config.add_results_collection_tool(:view_type_group)
46
+ config.add_show_tools_partial(:bookmark, partial: 'bookmark_control', if: :render_bookmarks_control?)
47
+ config.add_show_tools_partial(:email, callback: :email_action, validator: :validate_email_params)
48
+ config.add_show_tools_partial(:sms, if: :render_sms_action?, callback: :sms_action, validator: :validate_sms_params)
49
+ config.add_show_tools_partial(:citation)
50
+ config.add_nav_action(:bookmark, partial: 'blacklight/nav/bookmark', if: :render_bookmarks_control?)
51
+ config.add_nav_action(:search_history, partial: 'blacklight/nav/search_history')
52
+
49
53
  # solr fields that will be treated as facets by the blacklight application
50
54
  # The ordering of the field names is the order of the display
51
55
  config.add_facet_field "human_readable_type_sim", label: "Type", limit: 5
@@ -74,22 +78,22 @@ class CatalogController < ApplicationController
74
78
  # The ordering of the field names is the order of the display
75
79
  config.add_index_field "title_tesim", label: "Title", itemprop: 'name', if: false
76
80
  config.add_index_field "description_tesim", itemprop: 'description', helper_method: :iconify_auto_link
77
- config.add_index_field "keyword_tesim", itemprop: 'keywords', link_to_search: "keyword_sim"
78
- config.add_index_field "subject_tesim", itemprop: 'about', link_to_search: "subject_sim"
79
- config.add_index_field "creator_tesim", itemprop: 'creator', link_to_search: "creator_sim"
80
- config.add_index_field "contributor_tesim", itemprop: 'contributor', link_to_search: "contributor_sim"
81
+ config.add_index_field "keyword_tesim", itemprop: 'keywords', link_to_facet: "keyword_sim"
82
+ config.add_index_field "subject_tesim", itemprop: 'about', link_to_facet: "subject_sim"
83
+ config.add_index_field "creator_tesim", itemprop: 'creator', link_to_facet: "creator_sim"
84
+ config.add_index_field "contributor_tesim", itemprop: 'contributor', link_to_facet: "contributor_sim"
81
85
  config.add_index_field "proxy_depositor_ssim", label: "Depositor", helper_method: :link_to_profile
82
86
  config.add_index_field "depositor_tesim", label: "Owner", helper_method: :link_to_profile
83
- config.add_index_field "publisher_tesim", itemprop: 'publisher', link_to_search: "publisher_sim"
84
- config.add_index_field "based_near_label_tesim", itemprop: 'contentLocation', link_to_search: "based_near_label_sim"
85
- config.add_index_field "language_tesim", itemprop: 'inLanguage', link_to_search: "language_sim"
87
+ config.add_index_field "publisher_tesim", itemprop: 'publisher', link_to_facet: "publisher_sim"
88
+ config.add_index_field "based_near_label_tesim", itemprop: 'contentLocation', link_to_facet: "based_near_label_sim"
89
+ config.add_index_field "language_tesim", itemprop: 'inLanguage', link_to_facet: "language_sim"
86
90
  config.add_index_field "date_uploaded_dtsi", itemprop: 'datePublished', helper_method: :human_readable_date
87
91
  config.add_index_field "date_modified_dtsi", itemprop: 'dateModified', helper_method: :human_readable_date
88
92
  config.add_index_field "date_created_tesim", itemprop: 'dateCreated'
89
93
  config.add_index_field "rights_statement_tesim", helper_method: :rights_statement_links
90
94
  config.add_index_field "license_tesim", helper_method: :license_links
91
- config.add_index_field "resource_type_tesim", label: "Resource Type", link_to_search: "resource_type_sim"
92
- config.add_index_field "file_format_tesim", link_to_search: "file_format_sim"
95
+ config.add_index_field "resource_type_tesim", label: "Resource Type", link_to_facet: "resource_type_sim"
96
+ config.add_index_field "file_format_tesim", link_to_facet: "file_format_sim"
93
97
  config.add_index_field "identifier_tesim", helper_method: :index_field_link, field_name: 'identifier'
94
98
  config.add_index_field Hydra.config.permissions.embargo.release_date, label: "Embargo release date", helper_method: :human_readable_date
95
99
  config.add_index_field Hydra.config.permissions.lease.expiration_date, label: "Lease expiration date", helper_method: :human_readable_date
@@ -5,9 +5,6 @@ class User < ApplicationRecord
5
5
  include Hyrax::User
6
6
  include Hyrax::UserUsageStats
7
7
 
8
- if Blacklight::Utils.needs_attr_accessible?
9
- attr_accessible :email, :password, :password_confirmation
10
- end
11
8
  # Connects this user object to Blacklights Bookmarks.
12
9
  include Blacklight::User
13
10
  # Include default devise modules. Others available are:
@@ -9,7 +9,7 @@ Bundler.require(*Rails.groups)
9
9
  module Dassie
10
10
  class Application < Rails::Application
11
11
  # Initialize configuration defaults for originally generated Rails version.
12
- config.load_defaults 5.2
12
+ config.load_defaults 6.0
13
13
 
14
14
  # Settings in config/environments/* take precedence over those specified here.
15
15
  # Application configuration can go into files in config/initializers
@@ -20,7 +20,7 @@ ActiveSupport::Reloader.to_prepare do
20
20
  end
21
21
  end
22
22
 
23
- Riiif::Image.authorization_service = Hyrax::IIIFAuthorizationService
23
+ Riiif::Image.authorization_service = Hyrax::IiifAuthorizationService
24
24
 
25
25
  Riiif.not_found_image = Rails.root.join('app', 'assets', 'images', 'us_404.svg')
26
26
  Riiif.unauthorized_image = Rails.root.join('app', 'assets', 'images', 'us_404.svg')
data/.dassie/db/schema.rb CHANGED
@@ -2,11 +2,11 @@
2
2
  # of editing this file, please use the migrations feature of Active Record to
3
3
  # incrementally modify your database, and then regenerate this schema definition.
4
4
  #
5
- # Note that this schema.rb definition is the authoritative source for your
6
- # database schema. If you need to create the application database on another
7
- # system, you should be using db:schema:load, not running all the migrations
8
- # from scratch. The latter is a flawed and unsustainable approach (the more migrations
9
- # you'll amass, the slower it'll run and the greater likelihood for issues).
5
+ # This file is the source Rails uses to define your schema when running `rails
6
+ # db:schema:load`. When creating a new database, `rails db:schema:load` tends to
7
+ # be faster and is potentially less error prone than running all of your
8
+ # migrations from scratch. Old migrations may fail to apply correctly if those
9
+ # migrations use external dependencies or application code.
10
10
  #
11
11
  # It's strongly recommended that you check this file into your version control system.
12
12
 
data/.dassie/package.json CHANGED
@@ -3,13 +3,13 @@
3
3
  "private": true,
4
4
  "repository": "git@github.com:samvera/hyrax.git",
5
5
  "dependencies": {
6
- "universalviewer": "^3.0.16"
7
- },
8
- "scripts": {
9
- "preinstall": "rm -rf ./public/uv",
10
- "postinstall": "yarn run uv-install && yarn run uv-config",
11
- "uv-install": "cp -r ./node_modules/universalviewer/dist ./public/uv",
12
- "uv-config": "cp ./config/uv/uv.html ./public/uv/uv.html & cp ./config/uv/uv-config.json ./public/uv/"
6
+ "universalviewer": "^3.1.4"
7
+ },
8
+ "scripts": {
9
+ "preinstall": "rm -rf ./public/uv",
10
+ "postinstall": "yarn run uv-install && yarn run uv-config",
11
+ "uv-install": "cp -r ./node_modules/universalviewer/dist ./public/uv",
12
+ "uv-config": "cp ./config/uv/uv.html ./public/uv/uv.html & cp ./config/uv/uv-config.json ./public/uv/"
13
13
  },
14
14
  "devDependencies": {}
15
15
  }
data/.engine_cart.yml CHANGED
@@ -1,40 +1,3 @@
1
- # Greetings Hyrax developer, you may be surprised to see this file.
2
- # Hyrax is moving to using Postgresql for testing in CircleCI and
3
- # hopefully by Hyrax developers during local development. Previously,
4
- # we used sqlite.
5
- #
6
- # And while installing Postgresql is beyond the scope of this
7
- # community, I (Jeremy) installed Postgresql via homebrew (brew.sh),
8
- # and have used the following for testing (note `hyrax-testup` is
9
- # defined later on):
10
- #
11
- # ```console
12
- # hyrax-testup
13
- # brew services start postgresql
14
- # export DATABASE_URL="postgresql://localhost:5432/internal_development"
15
- # bundle exec rspec
16
- # ```
17
- #
18
- # But, before running that, I have a shell alias (see
19
- # https://github.com/jeremyf/dotzshrc/blob/trunk/configs/aliases.zsh)
20
- # that I call. The alias ensures that I have:
21
- #
22
- # * clean set of solr indices
23
- # * running solr indices
24
- # * running fcrepo
25
- # * running redis server
26
- #
27
- # ```console
28
- # alias hyrax-testup='cd $HOME/git/samvera/hyrax/.internal_test_app ; \
29
- # rm -rf tmp/solr-valkyrie-test/server/solr/hyrax-valkyrie-test ; \
30
- # rm -rf tmp/solr-test/server/solr/hydra-test ; \
31
- # fcrepo_wrapper --config config/fcrepo_wrapper_test.yml & \
32
- # solr_wrapper --config config/solr_wrapper_test.yml & \
33
- # solr_wrapper --config config/solr_wrapper_valkyrie_test.yml & \
34
- # redis-server &'
35
- # ```
36
- #
37
- # Best luck, and I (Jeremy) hope to add this to the Wiki at some point
38
- # once this current code is accepted into the main-line.
39
1
  rails_options:
40
- - "--database=postgresql" # Caution, as you may only get "one option" until this is merged. https://github.com/cbeer/engine_cart/pull/102
2
+ - "--database=postgresql"
3
+ - "--skip-javascript"
data/.env CHANGED
@@ -16,6 +16,7 @@ HYRAX_DERIVATIVES_PATH=/app/samvera/hyrax-webapp/derivatives/
16
16
  HYRAX_ENGINE_PATH=/app/samvera/hyrax-engine
17
17
  HYRAX_UPLOAD_PATH=/app/samvera/hyrax-webapp/uploads/
18
18
  IN_DOCKER=true
19
+ KARMA_BROWSER=ChromiumHeadlessCustom
19
20
  RACK_ENV=development
20
21
  RAILS_ENV=development
21
22
  RAILS_ROOT=.dassie
data/.regen CHANGED
@@ -1 +1,2 @@
1
- 46
1
+ # When updating CI regen seed, set to current date.
2
+ 2022-07-01T00
data/.rubocop.yml CHANGED
@@ -5,7 +5,7 @@ inherit_gem:
5
5
  bixby: bixby_default.yml
6
6
 
7
7
  AllCops:
8
- TargetRubyVersion: 2.5
8
+ TargetRubyVersion: 2.6
9
9
  DisplayCopNames: true
10
10
  Exclude:
11
11
  - 'db/**/*'
data/CONTRIBUTING.md CHANGED
@@ -11,17 +11,6 @@ experience for all its members, whether they are at a formal gathering, in
11
11
  a social setting, or taking part in activities online. Please see our
12
12
  [Code of Conduct](CODE_OF_CONDUCT.md) for more information.
13
13
 
14
- ## Samvera Community Intellectual Property Licensing and Ownership
15
-
16
- All code contributors must have an Individual Contributor License Agreement
17
- (iCLA) on file with the Samvera Steering Group. If the contributor works for
18
- an institution, the institution must have a Corporate Contributor License
19
- Agreement (cCLA) on file.
20
-
21
- https://wiki.lyrasis.org/display/samvera/Samvera+Community+Intellectual+Property+Licensing+and+Ownership
22
-
23
- You should also add yourself to the `CONTRIBUTORS.md` file in the root of the project.
24
-
25
14
  ## Language
26
15
 
27
16
  The language we use matters. Today, tomorrow, and for years to come
@@ -67,15 +56,22 @@ further details.
67
56
 
68
57
  * Fork the repository on GitHub
69
58
  * Create a topic branch from where you want to base your work.
70
- * This is usually the master branch.
71
- * To quickly create a topic branch based on master; `git branch fix/master/my_contribution master`
72
- * Then checkout the new branch with `git checkout fix/master/my_contribution`.
73
- * Please avoid working directly on the `master` branch.
59
+ * This is usually the `main` branch.
60
+ * To quickly create a topic branch based on `main`; `git branch fix/main/my_contribution main`
61
+ * Then checkout the new branch with `git checkout fix/main/my_contribution`.
62
+ * Please avoid working directly on the `main` branch.
63
+ * Please do not create a branch called `master`. (See note below.)
74
64
  * You may find the [hub suite of commands](https://github.com/defunkt/hub) helpful
75
65
  * Make sure you have added sufficient tests and documentation for your changes.
76
66
  * Test functionality with RSpec; Test features / UI with Capybara.
77
67
  * Run _all_ the tests to assure nothing else was accidentally broken.
78
68
 
69
+ NOTE: This repository follows the [Samvera Community Code of Conduct](https://samvera.atlassian.net/wiki/spaces/samvera/pages/405212316/Code+of+Conduct)
70
+ and [language recommendations](#language).
71
+ Please ***do not*** create a branch called `master` for this repository or as part of
72
+ your pull request; the branch will either need to be removed or renamed before it can
73
+ be considered for inclusion in the code base and history of this repository.
74
+
79
75
  ### Documenting Code
80
76
 
81
77
  * All new public methods, modules, and classes should include inline documentation in [YARD](http://yardoc.org/).
@@ -131,15 +127,15 @@ further details.
131
127
  ### Submitting Changes
132
128
 
133
129
  * Read the article ["Using Pull Requests"](https://help.github.com/articles/using-pull-requests) on GitHub.
134
- * Make sure your branch is up to date with its parent branch (i.e. master)
135
- * `git checkout master`
130
+ * Make sure your branch is up to date with its parent branch (i.e. main)
131
+ * `git checkout main`
136
132
  * `git pull --rebase`
137
133
  * `git checkout <your-branch>`
138
- * `git rebase master`
134
+ * `git rebase main`
139
135
  * It is a good idea to run your tests again.
140
136
  * If you've made more than one commit take a moment to consider whether squashing commits together would help improve their logical grouping.
141
137
  * [Detailed Walkthrough of One Pull Request per Commit](http://ndlib.github.io/practices/one-commit-per-pull-request/)
142
- * `git rebase --interactive master` ([See Github help](https://help.github.com/articles/interactive-rebase))
138
+ * `git rebase --interactive main` ([See Github help](https://help.github.com/articles/interactive-rebase))
143
139
  * Squashing your branch's changes into one commit is "good form" and helps the person merging your request to see everything that is going on.
144
140
  * Push your changes to a topic branch in your fork of the repository.
145
141
  * Submit a pull request from your fork to the project.
@@ -149,12 +145,14 @@ further details.
149
145
  We adopted [Github's Pull Request Review](https://help.github.com/articles/about-pull-request-reviews/) for our repositories.
150
146
  Common checks that may occur in our repositories:
151
147
 
152
- 1. Travis CI - where our automated tests are running
153
- 2. Approval Required - Github enforces at least one person approve a pull request. Also, all reviewers that have chimed in must approve.
148
+ 1. [CircleCI](https://circleci.com/gh/samvera) - where our automated tests are running
149
+ 2. RuboCop/Bixby - where we check for style violations
150
+ 3. Approval Required - Github enforces at least one person approve a pull request. Also, all reviewers that have chimed in must approve.
151
+ 4. CodeClimate - is our code remaining healthy (at least according to static code analysis)
154
152
 
155
153
  If one or more of the required checks failed (or are incomplete), the code should not be merged (and the UI will not allow it). If all of the checks have passed, then anyone on the project (including the pull request submitter) may merge the code.
156
154
 
157
- *Example: Carolyn submits a pull request, Justin reviews the pull request and approves. However, Justin is still waiting on other checks (Travis CI is usually the culprit), so he does not merge the pull request. Eventually, all of the checks pass. At this point, Carolyn or anyone else may merge the pull request.*
155
+ *Example: Carolyn submits a pull request, Justin reviews the pull request and approves. However, Justin is still waiting on other checks (CI tests are usually the culprit), so he does not merge the pull request. Eventually, all of the checks pass. At this point, Carolyn or anyone else may merge the pull request.*
158
156
 
159
157
  #### Things to Consider When Reviewing
160
158
 
@@ -171,7 +169,7 @@ This is your chance for a mentoring moment of another developer. Take time to gi
171
169
  * Do new or changed methods, modules, and classes have documentation?
172
170
  * Does the commit contain more than it should? Are two separate concerns being addressed in one commit?
173
171
  * Does the description of the new/changed specs match your understanding of what the spec is doing?
174
- * Did the Travis tests complete successfully?
172
+ * Did the Continuous Integration tests complete successfully?
175
173
 
176
174
  If you are uncertain, bring other contributors into the conversation by assigning them as a reviewer.
177
175
 
@@ -180,4 +178,4 @@ If you are uncertain, bring other contributors into the conversation by assignin
180
178
  * [General GitHub documentation](http://help.github.com/)
181
179
  * [GitHub pull request documentation](https://help.github.com/articles/about-pull-requests/)
182
180
  * [Pro Git](http://git-scm.com/book) is both a free and excellent book about Git.
183
- * [A Git Config for Contributing](http://ndlib.github.io/practices/my-typical-per-project-git-config/)
181
+ * [A Git Config for Contributing](http://ndlib.github.io/practices/my-typical-per-project-git-config/)
data/Dockerfile CHANGED
@@ -1,4 +1,4 @@
1
- ARG RUBY_VERSION=2.7.5
1
+ ARG RUBY_VERSION=2.7.6
2
2
  FROM ruby:$RUBY_VERSION-alpine3.15 as hyrax-base
3
3
 
4
4
  ARG DATABASE_APK_PACKAGE="postgresql-dev"
data/Rakefile CHANGED
@@ -9,10 +9,6 @@ end
9
9
 
10
10
  Bundler::GemHelper.install_tasks
11
11
 
12
- import "#{Gem.loaded_specs['jasmine'].full_gem_path}/lib/jasmine/tasks/jasmine.rake"
13
-
14
- # Set up the test application prior to running jasmine tasks.
15
- task 'jasmine:require' => :setup_test_server
16
12
  task :setup_test_server do
17
13
  require 'engine_cart'
18
14
  EngineCart.load_application!
@@ -37,7 +37,7 @@ module Hyrax
37
37
  # @return [Boolean] true if destroy was successful
38
38
  def destroy(env)
39
39
  env.curation_concern.in_collection_ids.each do |id|
40
- destination_collection = Hyrax.config.collection_class.find(id)
40
+ destination_collection = ::Collection.find(id)
41
41
  destination_collection.members.delete(env.curation_concern)
42
42
  destination_collection.update_index
43
43
  end