hyrax 2.1.0.beta1 → 2.1.0.beta2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (348) hide show
  1. checksums.yaml +4 -4
  2. data/.rubocop.yml +9 -49
  3. data/.rubocop_fixme.yml +1 -0
  4. data/.travis.yml +1 -1
  5. data/Gemfile +3 -3
  6. data/README.md +4 -2
  7. data/app/actors/hyrax/actors/file_set_actor.rb +0 -1
  8. data/app/actors/hyrax/actors/interpret_visibility_actor.rb +1 -3
  9. data/app/actors/hyrax/actors/model_actor.rb +4 -0
  10. data/app/assets/javascripts/hyrax.js +1 -1
  11. data/app/assets/javascripts/hyrax/app.js.erb +1 -1
  12. data/app/assets/javascripts/hyrax/authority_select.es6 +15 -7
  13. data/app/assets/javascripts/hyrax/collections.js +188 -9
  14. data/app/assets/javascripts/hyrax/content_blocks.js +13 -1
  15. data/app/assets/javascripts/hyrax/editor.es6 +2 -1
  16. data/app/assets/javascripts/hyrax/proxy_rights.js +2 -2
  17. data/app/assets/javascripts/hyrax/turbolinks_events.js +5 -0
  18. data/app/assets/stylesheets/hyrax/_accessibility.scss +21 -0
  19. data/app/assets/stylesheets/hyrax/_catalog.scss +21 -16
  20. data/app/assets/stylesheets/hyrax/_collections.scss +48 -7
  21. data/app/assets/stylesheets/hyrax/_modal.scss +4 -0
  22. data/app/assets/stylesheets/hyrax/_settings.scss +1 -1
  23. data/app/assets/stylesheets/hyrax/dashboard.scss +0 -1
  24. data/app/controllers/concerns/hyrax/breadcrumbs.rb +3 -1
  25. data/app/controllers/concerns/hyrax/embargoes_controller_behavior.rb +17 -1
  26. data/app/controllers/concerns/hyrax/leases_controller_behavior.rb +10 -0
  27. data/app/controllers/concerns/hyrax/local_file_downloads_controller_behavior.rb +86 -0
  28. data/app/controllers/concerns/hyrax/works_controller_behavior.rb +14 -11
  29. data/app/controllers/hyrax/admin/collection_types_controller.rb +11 -1
  30. data/app/controllers/hyrax/api/items_controller.rb +2 -6
  31. data/app/controllers/hyrax/batch_edits_controller.rb +6 -0
  32. data/app/controllers/hyrax/batch_uploads_controller.rb +1 -1
  33. data/app/controllers/hyrax/dashboard/collections_controller.rb +4 -7
  34. data/app/controllers/hyrax/dashboard/profiles_controller.rb +2 -0
  35. data/app/controllers/hyrax/dashboard_controller.rb +2 -2
  36. data/app/controllers/hyrax/depositors_controller.rb +19 -0
  37. data/app/controllers/hyrax/downloads_controller.rb +3 -4
  38. data/app/controllers/hyrax/embargoes_controller.rb +2 -0
  39. data/app/controllers/hyrax/file_sets_controller.rb +12 -0
  40. data/app/controllers/hyrax/leases_controller.rb +2 -0
  41. data/app/controllers/hyrax/my/works_controller.rb +9 -0
  42. data/app/controllers/hyrax/my_controller.rb +0 -1
  43. data/app/controllers/hyrax/transfers_controller.rb +1 -3
  44. data/app/controllers/hyrax/users_controller.rb +1 -3
  45. data/app/forms/hyrax/forms/admin/collection_type_form.rb +1 -1
  46. data/app/forms/hyrax/forms/permission_template_form.rb +1 -4
  47. data/app/forms/hyrax/forms/work_form.rb +1 -3
  48. data/app/helpers/hyrax/citations_behaviors/common_behavior.rb +1 -3
  49. data/app/helpers/hyrax/citations_behaviors/formatters/chicago_formatter.rb +1 -5
  50. data/app/helpers/hyrax/collections_helper.rb +7 -4
  51. data/app/helpers/hyrax/file_set_helper.rb +0 -1
  52. data/app/helpers/hyrax/hyrax_helper_behavior.rb +0 -1
  53. data/app/helpers/hyrax/trophy_helper.rb +0 -1
  54. data/app/indexers/hyrax/admin_set_indexer.rb +2 -0
  55. data/app/inputs/multi_value_select_input.rb +1 -3
  56. data/app/jobs/attach_files_to_work_job.rb +5 -1
  57. data/app/jobs/import_url_job.rb +9 -8
  58. data/app/models/admin_set.rb +1 -5
  59. data/app/models/concerns/hyrax/ability.rb +3 -4
  60. data/app/models/concerns/hyrax/collection_behavior.rb +0 -4
  61. data/app/models/concerns/hyrax/collection_nesting.rb +12 -0
  62. data/app/models/concerns/hyrax/suppressible.rb +1 -5
  63. data/app/models/featured_work_list.rb +1 -3
  64. data/app/models/hyrax/collection_type.rb +3 -2
  65. data/app/models/hyrax/permission_template_access.rb +6 -4
  66. data/app/models/proxy_deposit_request.rb +1 -1
  67. data/app/presenters/hyrax/collection_presenter.rb +0 -24
  68. data/app/presenters/hyrax/displays_image.rb +1 -1
  69. data/app/presenters/hyrax/file_set_presenter.rb +1 -1
  70. data/app/presenters/hyrax/menu_presenter.rb +1 -1
  71. data/app/presenters/hyrax/work_show_presenter.rb +15 -10
  72. data/app/search_builders/hyrax/abstract_type_relation.rb +2 -1
  73. data/app/search_builders/hyrax/collection_member_search_builder.rb +1 -1
  74. data/app/search_builders/hyrax/dashboard/collections_search_builder.rb +3 -1
  75. data/app/search_builders/hyrax/parent_collection_search_builder.rb +2 -2
  76. data/app/services/hyrax/admin_set_create_service.rb +1 -3
  77. data/app/services/hyrax/analytics.rb +1 -3
  78. data/app/services/hyrax/collection_member_service.rb +6 -5
  79. data/app/services/hyrax/collection_types/create_service.rb +37 -10
  80. data/app/services/hyrax/collections/permissions_create_service.rb +1 -3
  81. data/app/services/hyrax/collections/permissions_service.rb +6 -4
  82. data/app/views/catalog/_index_header_list_collection.html.erb +1 -1
  83. data/app/views/catalog/_index_header_list_default.html.erb +1 -1
  84. data/app/views/catalog/_index_list_default.html.erb +6 -10
  85. data/app/views/catalog/_search_form.html.erb +10 -11
  86. data/app/views/catalog/_thumbnail_list_collection.html.erb +1 -1
  87. data/app/views/catalog/_thumbnail_list_default.html.erb +1 -1
  88. data/app/views/hyrax/admin/admin_sets/_form.html.erb +1 -1
  89. data/app/views/hyrax/admin/admin_sets/_form_participant_table.html.erb +1 -1
  90. data/app/views/hyrax/admin/admin_sets/_form_participants.html.erb +1 -1
  91. data/app/views/hyrax/admin/admin_sets/_form_visibility.html.erb +3 -3
  92. data/app/views/hyrax/admin/admin_sets/_show_document_list_row.html.erb +2 -2
  93. data/app/views/hyrax/admin/admin_sets/index.html.erb +1 -1
  94. data/app/views/hyrax/admin/appearances/show.html.erb +4 -4
  95. data/app/views/hyrax/admin/collection_types/_form_settings.html.erb +3 -2
  96. data/app/views/hyrax/admin/collection_types/index.html.erb +2 -2
  97. data/app/views/hyrax/admin/features/index.html.erb +2 -4
  98. data/app/views/hyrax/admin/stats/_date_form.html.erb +3 -3
  99. data/app/views/hyrax/admin/stats/_top_data.html.erb +1 -1
  100. data/app/views/hyrax/admin/stats/show.html.erb +1 -1
  101. data/app/views/hyrax/admin/workflows/index.html.erb +0 -1
  102. data/app/views/hyrax/base/_file_manager_actions.html.erb +2 -2
  103. data/app/views/hyrax/base/_file_manager_member.html.erb +1 -1
  104. data/app/views/hyrax/base/_form_child_work_relationships.html.erb +1 -2
  105. data/app/views/hyrax/base/_form_files.html.erb +3 -3
  106. data/app/views/hyrax/base/_form_member_of_collections.html.erb +1 -2
  107. data/app/views/hyrax/base/_form_progress.html.erb +3 -3
  108. data/app/views/hyrax/base/_form_relationships.html.erb +2 -3
  109. data/app/views/hyrax/base/_form_representative.html.erb +0 -1
  110. data/app/views/hyrax/base/_form_share.html.erb +1 -3
  111. data/app/views/hyrax/base/_form_thumbnail.html.erb +0 -1
  112. data/app/views/hyrax/base/_form_visibility_component.html.erb +6 -6
  113. data/app/views/hyrax/base/_relationships_parent_rows.html.erb +3 -1
  114. data/app/views/hyrax/base/_representative_media.html.erb +1 -1
  115. data/app/views/hyrax/base/_share_with.html.erb +3 -3
  116. data/app/views/hyrax/base/_show_actions.html.erb +14 -1
  117. data/app/views/hyrax/base/_social_media.html.erb +5 -5
  118. data/app/views/hyrax/base/_work_title.erb +3 -1
  119. data/app/views/hyrax/base/_workflow_actions.html.erb +1 -1
  120. data/app/views/hyrax/base/inspect_work.html.erb +1 -1
  121. data/app/views/hyrax/base/show.html.erb +2 -2
  122. data/app/views/hyrax/batch_edits/_check_all.html.erb +2 -2
  123. data/app/views/hyrax/batch_edits/edit.html.erb +47 -44
  124. data/app/views/hyrax/batch_select/_add_button.html.erb +2 -2
  125. data/app/views/hyrax/citations/work.html.erb +3 -3
  126. data/app/views/hyrax/collections/_collection.html.erb +1 -1
  127. data/app/views/hyrax/collections/_default_group.html.erb +1 -1
  128. data/app/views/hyrax/collections/_list_collections.html.erb +2 -2
  129. data/app/views/hyrax/collections/_list_works.html.erb +1 -1
  130. data/app/views/hyrax/collections/_show_descriptions.html.erb +6 -6
  131. data/app/views/hyrax/collections/_show_document_list_row.html.erb +2 -2
  132. data/app/views/hyrax/collections/_show_parent_collections.html.erb +11 -38
  133. data/app/views/hyrax/collections/_sort_and_per_page.html.erb +13 -13
  134. data/app/views/hyrax/collections/_subcollection_list.html.erb +1 -1
  135. data/app/views/hyrax/collections/_view_type_group.html.erb +1 -1
  136. data/app/views/hyrax/collections/show.html.erb +122 -122
  137. data/app/views/hyrax/content_blocks/_form.html.erb +13 -12
  138. data/app/views/hyrax/content_blocks/_modal_content_block.html.erb +15 -0
  139. data/app/views/hyrax/dashboard/_index_partials/_proxy_rights.html.erb +25 -19
  140. data/app/views/hyrax/dashboard/_sidebar.html.erb +1 -1
  141. data/app/views/hyrax/dashboard/collections/_button_for_remove_selected_from_collection.html.erb +1 -1
  142. data/app/views/hyrax/dashboard/collections/_collection_title.html.erb +16 -16
  143. data/app/views/hyrax/dashboard/collections/_form.html.erb +3 -1
  144. data/app/views/hyrax/dashboard/collections/_form_branding.html.erb +11 -11
  145. data/app/views/hyrax/dashboard/collections/_form_default_group_delt.html.erb +1 -1
  146. data/app/views/hyrax/dashboard/collections/_form_discovery.html.erb +2 -2
  147. data/app/views/hyrax/dashboard/collections/_form_for_select_collection.html.erb +4 -4
  148. data/app/views/hyrax/dashboard/collections/_form_share.html.erb +51 -44
  149. data/app/views/hyrax/dashboard/collections/_form_share_table.html.erb +2 -2
  150. data/app/views/hyrax/dashboard/collections/_list_collections.html.erb +4 -4
  151. data/app/views/hyrax/dashboard/collections/_list_works.html.erb +1 -1
  152. data/app/views/hyrax/dashboard/collections/_modal_remove_from_collection.html.erb +10 -5
  153. data/app/views/hyrax/dashboard/collections/_modal_remove_sub_collection.html.erb +10 -5
  154. data/app/views/hyrax/dashboard/collections/_show_actions.html.erb +1 -1
  155. data/app/views/hyrax/dashboard/collections/_show_add_items_actions.html.erb +2 -2
  156. data/app/views/hyrax/dashboard/collections/_show_document_list_row.html.erb +2 -2
  157. data/app/views/hyrax/dashboard/collections/_show_parent_collection_row.html.erb +10 -5
  158. data/app/views/hyrax/dashboard/collections/_show_parent_collections.html.erb +11 -34
  159. data/app/views/hyrax/dashboard/collections/_sort_and_per_page.html.erb +1 -1
  160. data/app/views/hyrax/dashboard/collections/_subcollection_list.html.erb +23 -17
  161. data/app/views/hyrax/dashboard/collections/show.html.erb +6 -6
  162. data/app/views/hyrax/dashboard/profiles/_edit_primary.html.erb +0 -4
  163. data/app/views/hyrax/dashboard/profiles/_trophy_edit.html.erb +16 -14
  164. data/app/views/hyrax/dashboard/profiles/show.html.erb +6 -0
  165. data/app/views/hyrax/dashboard/show_admin.html.erb +19 -3
  166. data/app/views/hyrax/dashboard/sidebar/_activity.html.erb +6 -0
  167. data/app/views/hyrax/dashboard/works/_list_works.html.erb +1 -1
  168. data/app/views/hyrax/depositors/index.html.erb +13 -0
  169. data/app/views/hyrax/embargoes/_list_expired_active_embargoes.html.erb +1 -1
  170. data/app/views/hyrax/embargoes/edit.html.erb +47 -35
  171. data/app/views/hyrax/embargoes/index.html.erb +6 -7
  172. data/app/views/hyrax/file_sets/_actions.html.erb +6 -2
  173. data/app/views/hyrax/file_sets/_extra_fields_modal.html.erb +3 -3
  174. data/app/views/hyrax/file_sets/_groups_description.html.erb +0 -1
  175. data/app/views/hyrax/file_sets/_permission_form.html.erb +3 -3
  176. data/app/views/hyrax/file_sets/edit.html.erb +24 -20
  177. data/app/views/hyrax/file_sets/media_display/_audio.html.erb +23 -6
  178. data/app/views/hyrax/file_sets/media_display/_default.html.erb +1 -1
  179. data/app/views/hyrax/file_sets/media_display/_video.html.erb +23 -6
  180. data/app/views/hyrax/leases/_list_expired_active_leases.html.erb +1 -1
  181. data/app/views/hyrax/leases/edit.html.erb +47 -35
  182. data/app/views/hyrax/leases/index.html.erb +6 -6
  183. data/app/views/hyrax/my/_collection_action_menu.html.erb +1 -1
  184. data/app/views/hyrax/my/_facet_limit.html.erb +1 -2
  185. data/app/views/hyrax/my/_facet_pagination.html.erb +6 -6
  186. data/app/views/hyrax/my/_facet_pivot.html.erb +1 -1
  187. data/app/views/hyrax/my/_results_pagination.html.erb +1 -1
  188. data/app/views/hyrax/my/collections/_facets.html.erb +1 -1
  189. data/app/views/hyrax/my/collections/_list_collections.html.erb +5 -5
  190. data/app/views/hyrax/my/collections/_modal_add_subcollection.html.erb +3 -2
  191. data/app/views/hyrax/my/collections/_modal_add_to_collection.html.erb +3 -1
  192. data/app/views/hyrax/my/collections/_modal_add_to_collection_permission_deny.html.erb +1 -1
  193. data/app/views/hyrax/my/collections/_modal_collection_types_to_create.html.erb +2 -2
  194. data/app/views/hyrax/my/collections/_modal_delete_collection.html.erb +1 -2
  195. data/app/views/hyrax/my/collections/_modal_delete_deny.html.erb +1 -1
  196. data/app/views/hyrax/my/collections/_modal_delete_selected_collections.html.erb +2 -2
  197. data/app/views/hyrax/my/collections/_tabs.html.erb +2 -2
  198. data/app/views/hyrax/my/collections/index.html.erb +7 -3
  199. data/app/views/hyrax/my/facet.html.erb +1 -1
  200. data/app/views/hyrax/my/index.html.erb +6 -2
  201. data/app/views/hyrax/my/works/_facets.html.erb +1 -1
  202. data/app/views/hyrax/my/works/_list_works.html.erb +1 -1
  203. data/app/views/hyrax/my/works/_tabs.html.erb +2 -2
  204. data/app/views/hyrax/my/works/index.html.erb +6 -2
  205. data/app/views/hyrax/notifications/_notifications.html.erb +1 -1
  206. data/app/views/hyrax/pages/_form.html.erb +12 -12
  207. data/app/views/hyrax/pages/show.html.erb +1 -1
  208. data/app/views/hyrax/single_use_links_viewer/show.html.erb +1 -1
  209. data/app/views/hyrax/stats/file.html.erb +6 -2
  210. data/app/views/hyrax/stats/work.html.erb +6 -2
  211. data/app/views/hyrax/transfers/_received.html.erb +6 -6
  212. data/app/views/hyrax/transfers/_sent.html.erb +2 -2
  213. data/app/views/hyrax/transfers/new.html.erb +0 -1
  214. data/app/views/hyrax/users/_activity_log.html.erb +2 -2
  215. data/app/views/hyrax/users/_profile_tabs.html.erb +1 -1
  216. data/app/views/hyrax/users/_search_form.html.erb +1 -1
  217. data/app/views/hyrax/users/_user.html.erb +0 -1
  218. data/app/views/hyrax/users/index.html.erb +1 -1
  219. data/app/views/kaminari/blacklight_compact/_paginator.html.erb +1 -2
  220. data/app/views/layouts/_head_tag_content.html.erb +2 -2
  221. data/app/views/layouts/error.html.erb +1 -1
  222. data/app/views/layouts/hyrax.html.erb +6 -3
  223. data/app/views/layouts/hyrax/dashboard.html.erb +6 -3
  224. data/app/views/records/show_fields/_based_near.html.erb +0 -1
  225. data/app/views/records/show_fields/_contributor.html.erb +0 -1
  226. data/app/views/records/show_fields/_date_created.html.erb +0 -1
  227. data/app/views/records/show_fields/_description.html.erb +1 -1
  228. data/app/views/records/show_fields/_identifier.html.erb +0 -1
  229. data/app/views/records/show_fields/_language.html.erb +0 -1
  230. data/app/views/records/show_fields/_publisher.html.erb +0 -1
  231. data/app/views/records/show_fields/_related_url.html.erb +0 -1
  232. data/app/views/records/show_fields/_resource_type.html.erb +0 -1
  233. data/app/views/records/show_fields/_subject.html.erb +0 -1
  234. data/app/views/shared/_citations.html.erb +17 -17
  235. data/app/views/shared/_select_work_type_modal.html.erb +2 -2
  236. data/config/locales/hyrax.de.yml +198 -189
  237. data/config/locales/hyrax.en.yml +21 -14
  238. data/config/locales/hyrax.es.yml +9 -0
  239. data/config/locales/hyrax.fr.yml +9 -0
  240. data/config/locales/hyrax.it.yml +9 -0
  241. data/config/locales/hyrax.pt-BR.yml +9 -0
  242. data/config/locales/hyrax.zh.yml +9 -0
  243. data/config/routes.rb +1 -0
  244. data/hyrax.gemspec +7 -18
  245. data/lib/generators/hyrax/models_generator.rb +0 -1
  246. data/lib/generators/hyrax/templates/db/migrate/20180302200051_add_branding_to_collection_type.rb.erb +5 -0
  247. data/lib/generators/hyrax/work/templates/feature_spec.rb.erb +1 -1
  248. data/lib/hyrax/configuration.rb +2 -4
  249. data/lib/hyrax/engine.rb +22 -4
  250. data/lib/hyrax/version.rb +1 -1
  251. data/spec/actors/hyrax/actors/lease_actor_spec.rb +16 -0
  252. data/spec/controllers/hyrax/admin/appearances_controller_spec.rb +1 -1
  253. data/spec/controllers/hyrax/admin/collection_types_controller_spec.rb +2 -0
  254. data/spec/controllers/hyrax/admin/features_controller_spec.rb +1 -1
  255. data/spec/controllers/hyrax/admin/workflow_roles_controller_spec.rb +1 -1
  256. data/spec/controllers/hyrax/admin/workflows_controller_spec.rb +1 -1
  257. data/spec/controllers/hyrax/batch_edits_controller_spec.rb +14 -1
  258. data/spec/controllers/hyrax/batch_uploads_controller_spec.rb +2 -2
  259. data/spec/controllers/hyrax/citations_controller_spec.rb +4 -2
  260. data/spec/controllers/hyrax/collections_controller_spec.rb +32 -4
  261. data/spec/controllers/hyrax/content_blocks_controller_spec.rb +1 -1
  262. data/spec/controllers/hyrax/dashboard/collections_controller_spec.rb +11 -6
  263. data/spec/controllers/hyrax/depositors_controller_spec.rb +11 -0
  264. data/spec/controllers/hyrax/downloads_controller_spec.rb +42 -0
  265. data/spec/controllers/hyrax/embargoes_controller_spec.rb +40 -1
  266. data/spec/controllers/hyrax/file_sets_controller_spec.rb +10 -2
  267. data/spec/controllers/hyrax/generic_works_controller_spec.rb +38 -6
  268. data/spec/controllers/hyrax/leases_controller_spec.rb +11 -0
  269. data/spec/controllers/hyrax/my/collections_controller_spec.rb +1 -1
  270. data/spec/controllers/hyrax/my/works_controller_spec.rb +1 -1
  271. data/spec/controllers/hyrax/pages_controller_spec.rb +1 -1
  272. data/spec/controllers/hyrax/stats_controller_spec.rb +2 -0
  273. data/spec/controllers/hyrax/transfers_controller_spec.rb +1 -1
  274. data/spec/factories/collection_types.rb +10 -1
  275. data/spec/factories/collections.rb +5 -3
  276. data/spec/factories/collections_factory.rb +3 -3
  277. data/spec/factories/file_sets.rb +2 -6
  278. data/spec/factories/generic_works.rb +68 -4
  279. data/spec/factory_tests/collections_factory_spec.rb +2 -1
  280. data/spec/features/batch_create_spec.rb +60 -0
  281. data/spec/features/batch_edit_spec.rb +1 -0
  282. data/spec/features/browse_dashboard_works_spec.rb +1 -0
  283. data/spec/features/collection_multi_membership_spec.rb +9 -6
  284. data/spec/features/collection_spec.rb +1 -1
  285. data/spec/features/collection_type_spec.rb +49 -1
  286. data/spec/features/create_work_admin_spec.rb +2 -2
  287. data/spec/features/create_work_spec.rb +1 -0
  288. data/spec/features/dashboard/all_works.rb +10 -2
  289. data/spec/features/dashboard/collection_spec.rb +38 -17
  290. data/spec/features/dashboard/display_admin_dashboard_spec.rb +29 -0
  291. data/spec/features/dashboard/display_dashboard_spec.rb +1 -1
  292. data/spec/features/edit_content_block_admin_spec.rb +45 -0
  293. data/spec/features/edit_work_spec.rb +40 -2
  294. data/spec/features/ownership_transfer_spec.rb +1 -0
  295. data/spec/features/proxy_spec.rb +2 -2
  296. data/spec/features/search_spec.rb +2 -5
  297. data/spec/features/work_show_spec.rb +14 -4
  298. data/spec/forms/hyrax/forms/admin/collection_type_form_spec.rb +1 -0
  299. data/spec/forms/hyrax/forms/collection_form_spec.rb +1 -1
  300. data/spec/helpers/hyrax/ability_helper_spec.rb +2 -2
  301. data/spec/helpers/hyrax/collections_helper_spec.rb +12 -4
  302. data/spec/javascripts/authority_select_spec.js +1 -1
  303. data/spec/javascripts/settings_spec.js +1 -0
  304. data/spec/jobs/attach_files_to_work_job_spec.rb +13 -0
  305. data/spec/jobs/import_url_job_spec.rb +14 -0
  306. data/spec/models/collection_spec.rb +1 -0
  307. data/spec/models/concerns/hyrax/collection_nesting_spec.rb +16 -0
  308. data/spec/models/hyrax/collection_type_spec.rb +1 -0
  309. data/spec/presenters/hyrax/collection_presenter_spec.rb +1 -100
  310. data/spec/presenters/hyrax/file_set_presenter_spec.rb +17 -2
  311. data/spec/presenters/hyrax/menu_presenter_spec.rb +6 -0
  312. data/spec/presenters/hyrax/work_show_presenter_spec.rb +15 -3
  313. data/spec/search_builders/hyrax/abstract_type_relation_spec.rb +18 -0
  314. data/spec/search_builders/hyrax/dashboard/collections_search_builder_spec.rb +30 -19
  315. data/spec/search_builders/hyrax/parent_collection_search_builder_spec.rb +15 -0
  316. data/spec/services/hyrax/collection_member_service_spec.rb +10 -19
  317. data/spec/services/hyrax/collection_types/create_service_spec.rb +35 -2
  318. data/spec/services/hyrax/collections/collection_member_service_spec.rb +1 -1
  319. data/spec/services/hyrax/qa_select_service_spec.rb +0 -1
  320. data/spec/support/selectors.rb +15 -0
  321. data/spec/views/hyrax/admin/admin_sets/_show_document_list_row.html.erb_spec.rb +2 -0
  322. data/spec/views/hyrax/admin/collection_types/_form_settings.html.erb_spec.rb +1 -0
  323. data/spec/views/hyrax/admin/stats/show.html.erb_spec.rb +9 -0
  324. data/spec/views/hyrax/base/_attributes.html.erb_spec.rb +1 -1
  325. data/spec/views/hyrax/base/_relationships.html.erb_spec.rb +13 -1
  326. data/spec/views/hyrax/base/_show_actions.html.erb_spec.rb +10 -0
  327. data/spec/views/hyrax/base/show.html.erb_spec.rb +8 -0
  328. data/spec/views/hyrax/collections/_show_parent_collections.html.erb_spec.rb +3 -53
  329. data/spec/views/hyrax/dashboard/_sidebar.html.erb_spec.rb +22 -0
  330. data/spec/views/hyrax/dashboard/collections/_form_share.erb_spec.rb +2 -1
  331. data/spec/views/hyrax/dashboard/collections/_show_actions.html.erb_spec.rb +13 -0
  332. data/spec/views/hyrax/dashboard/collections/_show_parent_collection_row.html.erb_spec.rb +26 -8
  333. data/spec/views/hyrax/dashboard/collections/_show_parent_collections.html.erb_spec.rb +7 -43
  334. data/spec/views/hyrax/dashboard/collections/_subcollection_list.html.erb_spec.rb +13 -1
  335. data/spec/views/hyrax/dashboard/collections/show.html.erb_spec.rb +1 -0
  336. data/spec/views/hyrax/dashboard/profiles/_trophy_edit.html.erb_spec.rb +36 -0
  337. data/spec/views/hyrax/dashboard/profiles/edit.html.erb_spec.rb +0 -38
  338. data/spec/views/hyrax/dashboard/profiles/show.html.erb_spec.rb +37 -0
  339. data/spec/views/hyrax/depositors/index.html.erb_spec.rb +13 -0
  340. data/spec/views/hyrax/file_sets/_actions.html.erb_spec.rb +15 -0
  341. data/spec/views/hyrax/file_sets/media_display/_audio.html.erb_spec.rb +29 -0
  342. data/spec/views/hyrax/file_sets/media_display/_default.html.erb_spec.rb +1 -1
  343. data/spec/views/hyrax/file_sets/media_display/_video.html.erb_spec.rb +29 -0
  344. data/spec/views/hyrax/my/collections/_list_collections.html.erb_spec.rb +6 -2
  345. data/tasks/hyrax_dev.rake +1 -3
  346. data/template.rb +1 -1
  347. metadata +49 -41
  348. data/app/assets/javascripts/hyrax/collections_forms.js +0 -108
@@ -9,4 +9,16 @@ Blacklight.onLoad(function() {
9
9
  $this.parent().hide();
10
10
  $($this.data('target')).show();
11
11
  });
12
- });
12
+
13
+ $('.show-confirm').on('click', function(evt) {
14
+ evt.preventDefault();
15
+ evt.stopPropagation();
16
+ $('#change-tab-content-block').modal('show');
17
+ });
18
+
19
+ $('#change-tab-btn').on('click', function(evt) {
20
+ evt.preventDefault();
21
+ $('#change-tab-content-block').modal('hide');
22
+ $('.nav-tabs a[href="' + location.hash + '"]').tab('show');
23
+ });
24
+ });
@@ -24,6 +24,7 @@ export default class {
24
24
  this.relationshipsControl()
25
25
  this.saveWorkControl()
26
26
  this.saveWorkFixed()
27
+ this.authoritySelect()
27
28
  }
28
29
 
29
30
  // Used when you have a linked data field that can have terms from multiple
@@ -33,7 +34,7 @@ export default class {
33
34
  let authoritySelect = $(this).data().authoritySelect
34
35
  let options = {selectBox: 'select.' + authoritySelect,
35
36
  inputField: 'input.' + authoritySelect}
36
- new AuthoritySelect(this, options);
37
+ new AuthoritySelect(options);
37
38
  })
38
39
  }
39
40
 
@@ -42,8 +42,8 @@
42
42
  function rowTemplate (data) {
43
43
  return '<tr>'+
44
44
  '<td class="depositor-name">'+data.name+'</td>'+
45
- '<td><a class="remove-proxy-button" data-method="delete" href="'+data.delete_path+'" rel="nofollow">'+
46
- '<i class="glyphicon glyphicon-remove"></i></a>'+
45
+ '<td><a class="remove-proxy-button btn btn-danger" data-method="delete" href="'+data.delete_path+'" rel="nofollow">'+
46
+ $('#delete_button_label').data('label')+'</a>'+
47
47
  '</td>'+
48
48
  '</tr>'
49
49
  }
@@ -0,0 +1,5 @@
1
+ // Fixes a problem with csrf tokens and turbolinks
2
+ // See https://github.com/rails/jquery-ujs/issues/456
3
+ $(document).on('turbolinks:load', function() {
4
+ $.rails.refreshCSRFTokens();
5
+ });
@@ -14,3 +14,24 @@
14
14
  .select2-default {
15
15
  color: #4c4c4c !important;
16
16
  }
17
+
18
+ // Adds a skip to content link for keyboard users, but only makes it visible when element receives focus
19
+ .skip-to-content a {
20
+ height: 1px;
21
+ position: absolute;
22
+ left: -10000px;
23
+ top: auto;
24
+ width: 1px;
25
+ overflow: hidden;
26
+ }
27
+
28
+ .skip-to-content a:focus {
29
+ background-color: $admin-content-background-color;
30
+ height: auto;
31
+ left: 1rem;
32
+ padding: 1.5rem;
33
+ position: absolute;
34
+ top: 0.5rem;
35
+ width: auto;
36
+ z-index: 1005;
37
+ }
@@ -25,12 +25,14 @@
25
25
  // Styles added to help with newly implemented
26
26
  // Bootstrap row / column setup for search results
27
27
  .search-result-wrapper {
28
- padding-bottom: 30px;
28
+ border-bottom: 1px dashed #ccc;
29
+ margin-bottom: 30px;
30
+ padding-bottom: 0;
29
31
 
30
32
  .search-results-title-row {
31
33
  align-items: center;
32
34
  display: flex;
33
- padding: 0 0 10px;
35
+ padding: 0 0 15px;
34
36
 
35
37
  .search-result-title {
36
38
  display: inline-block;
@@ -53,36 +55,38 @@
53
55
 
54
56
  .list-thumbnail {
55
57
  float: none;
58
+ padding-bottom: 20px;
56
59
  width: 100%;
57
- }
58
60
 
59
- .metadata {
60
- width: 100%;
61
- }
61
+ @media (max-width: 768px) {
62
+ img {
63
+ max-height: 200px;
64
+ }
62
65
 
63
- .metadata-row {
66
+ }
67
+ }
64
68
 
65
- > div:first-child {
66
- font-weight: bold;
67
- padding-right: 0;
68
- text-align: right;
69
+ .collection-icon-search {
70
+ padding-bottom: 20px;
71
+ }
69
72
 
70
- @media (max-width: 768px) {
71
- text-align: left;
72
- }
73
- }
73
+ .metadata {
74
+ width: 100%;
74
75
  }
75
76
 
76
77
  .collection-counts-wrapper {
77
78
  text-align: right;
78
79
 
79
- @media (max-width: 768px) {
80
+ @media (max-width: 992px) {
80
81
  text-align: left;
81
82
  }
82
83
 
83
84
  .collection-counts-item {
84
85
  background-color: #f5f5f5;
86
+ color: #666;
85
87
  display: inline-block;
88
+ font-size: 13px;
89
+ font-weight: bold;
86
90
  margin-left: 10px;
87
91
  padding: 8px;
88
92
  text-align: center;
@@ -94,6 +98,7 @@
94
98
  span {
95
99
  display: block;
96
100
  font-size: 18px;
101
+ font-weight: normal;
97
102
  line-height: 1;
98
103
  }
99
104
  }
@@ -42,6 +42,35 @@ header {
42
42
  text-align: center;
43
43
  }
44
44
 
45
+ // Wrapper class for <ul> display list of parent collections, sub collections
46
+ .collections-list {
47
+ li {
48
+ margin: 5px 0;
49
+ }
50
+
51
+ .flex-wrapper {
52
+ align-items: flex-start;
53
+ display: flex;
54
+ justify-content: space-between;
55
+ }
56
+
57
+ .collections-list-title {
58
+ font-weight: bold;
59
+ padding-right: 10px;
60
+ }
61
+
62
+ @media (max-width: 768px) {
63
+ .flex-wrapper,
64
+ .collections-list-title {
65
+ display: block;
66
+ }
67
+
68
+ .collections-list-title {
69
+ padding-bottom: 10px;
70
+ }
71
+ }
72
+ }
73
+
45
74
  .actions-controls-collections {
46
75
  display: block;
47
76
  margin: 1em 0 0 1em;
@@ -262,7 +291,7 @@ button.branding-banner-remove:hover {
262
291
  display: flex;
263
292
  justify-content: space-between;
264
293
 
265
- @media (max-width: 768px) {
294
+ @media (max-width: 992px) {
266
295
  display: block;
267
296
  }
268
297
 
@@ -270,25 +299,34 @@ button.branding-banner-remove:hover {
270
299
  align-items: center;
271
300
  display: flex;
272
301
 
273
- @media (max-width: 768px) {
302
+ @media (max-width: 992px) {
274
303
  display: block;
275
304
  margin-bottom: 10px;
305
+ }
306
+
307
+ .label {
308
+ margin-left: 5px;
309
+ }
276
310
 
311
+ @media (max-width: 768px) {
277
312
  .btn {
278
313
  display: block;
279
314
  margin: 0 0 5px;
280
315
  width: 100%;
281
316
  }
282
317
  }
283
-
284
- .label {
285
- margin-left: 5px;
286
- }
287
318
  }
288
319
 
289
320
  .collection-title {
290
321
  display: inline-block;
291
322
  margin: 0;
323
+ padding-right: 5px;
324
+
325
+ // Wraps each collection title text, and helpful when there are multiple titles
326
+ span {
327
+ display: block;
328
+ padding-bottom: 5px;
329
+ }
292
330
  }
293
331
  }
294
332
 
@@ -365,7 +403,8 @@ button.branding-banner-remove:hover {
365
403
  }
366
404
 
367
405
  input,
368
- select {
406
+ select,
407
+ .select2-container {
369
408
  width: 200px;
370
409
  }
371
410
 
@@ -384,8 +423,10 @@ button.branding-banner-remove:hover {
384
423
  .share-status {
385
424
  th,
386
425
  td {
426
+ width: 40%;
387
427
  &:last-of-type {
388
428
  text-align: center;
429
+ width: 20%;
389
430
  }
390
431
  }
391
432
  }
@@ -2,3 +2,7 @@ div.collection-list legend {
2
2
  font-size: 1.4em;
3
3
  border: none;
4
4
  }
5
+
6
+ .modal-body select {
7
+ max-width: 100%;
8
+ }
@@ -22,7 +22,7 @@ $icon-border-color-hover: $gray-base !default;
22
22
  $icon-font-color-hover: $gray-base !default;
23
23
 
24
24
  // Collection Icon
25
- $collection-icon-search-lg: 8em !default;
25
+ $collection-icon-search-lg: 7em !default;
26
26
 
27
27
  // File Show Page
28
28
  $file-show-term-color: $gray-dark !default;
@@ -67,7 +67,6 @@ body.dashboard {
67
67
  border-top: 2px solid $tab-active-accent-color;
68
68
  }
69
69
 
70
-
71
70
  /* The #masthead selector below could (and ideally, should) be removed if we can
72
71
  * replace the "navbar-static-top" class with "navbar-fixed-top" for the Admin UI only
73
72
  */
@@ -11,16 +11,18 @@ module Hyrax
11
11
  end
12
12
 
13
13
  def default_trail
14
+ add_breadcrumb I18n.t('hyrax.controls.home'), hyrax.root_path
14
15
  add_breadcrumb I18n.t('hyrax.dashboard.title'), hyrax.dashboard_path if user_signed_in?
15
16
  end
16
17
 
17
18
  def trail_from_referer
18
19
  case request.referer
19
20
  when /catalog/
21
+ add_breadcrumb I18n.t('hyrax.controls.home'), hyrax.root_path
20
22
  add_breadcrumb I18n.t('hyrax.bread_crumb.search_results'), request.referer
21
23
  else
22
24
  default_trail
23
- add_breadcrumb_for_controller
25
+ add_breadcrumb_for_controller if user_signed_in?
24
26
  add_breadcrumb_for_action
25
27
  end
26
28
  end
@@ -5,6 +5,9 @@ module Hyrax
5
5
  include Hyrax::Collections::AcceptsBatches
6
6
 
7
7
  def index
8
+ add_breadcrumb t(:'hyrax.controls.home'), root_path
9
+ add_breadcrumb t(:'hyrax.dashboard.breadcrumbs.admin'), hyrax.dashboard_path
10
+ add_breadcrumb t(:'hyrax.embargoes.index.manage_embargoes'), hyrax.embargoes_path
8
11
  authorize! :index, Hydra::AccessControls::Embargo
9
12
  end
10
13
 
@@ -25,7 +28,13 @@ module Hyrax
25
28
  copy_visibility = params[:embargoes].values.map { |h| h[:copy_visibility] }
26
29
  ActiveFedora::Base.find(batch).each do |curation_concern|
27
30
  Hyrax::Actors::EmbargoActor.new(curation_concern).destroy
28
- curation_concern.copy_visibility_to_files if copy_visibility.include?(curation_concern.id)
31
+ # if the concern is a FileSet, set its visibility and skip the copy_visibility_to_files, which is built for Works
32
+ if curation_concern.file_set?
33
+ curation_concern.visibility = curation_concern.to_solr["visibility_after_embargo_ssim"]
34
+ curation_concern.save!
35
+ elsif copy_visibility.include?(curation_concern.id)
36
+ curation_concern.copy_visibility_to_files
37
+ end
29
38
  end
30
39
  redirect_to embargoes_path
31
40
  end
@@ -34,5 +43,12 @@ module Hyrax
34
43
  def self.local_prefixes
35
44
  ['hyrax/base']
36
45
  end
46
+
47
+ def edit
48
+ add_breadcrumb t(:'hyrax.controls.home'), root_path
49
+ add_breadcrumb t(:'hyrax.dashboard.breadcrumbs.admin'), hyrax.dashboard_path
50
+ add_breadcrumb t(:'hyrax.embargoes.index.manage_embargoes'), hyrax.embargoes_path
51
+ add_breadcrumb t(:'hyrax.embargoes.edit.embargo_update'), '#'
52
+ end
37
53
  end
38
54
  end
@@ -5,6 +5,9 @@ module Hyrax
5
5
  include Hyrax::Collections::AcceptsBatches
6
6
 
7
7
  def index
8
+ add_breadcrumb t(:'hyrax.controls.home'), root_path
9
+ add_breadcrumb t(:'hyrax.dashboard.breadcrumbs.admin'), hyrax.dashboard_path
10
+ add_breadcrumb t(:'hyrax.leases.index.manage_leases'), hyrax.leases_path
8
11
  authorize! :index, Hydra::AccessControls::Lease
9
12
  end
10
13
 
@@ -33,5 +36,12 @@ module Hyrax
33
36
  def self.local_prefixes
34
37
  ['hyrax/base']
35
38
  end
39
+
40
+ def edit
41
+ add_breadcrumb t(:'hyrax.controls.home'), root_path
42
+ add_breadcrumb t(:'hyrax.dashboard.breadcrumbs.admin'), hyrax.dashboard_path
43
+ add_breadcrumb t(:'hyrax.leases.index.manage_leases'), hyrax.leases_path
44
+ add_breadcrumb t(:'hyrax.leases.edit.lease_update'), '#'
45
+ end
36
46
  end
37
47
  end
@@ -0,0 +1,86 @@
1
+ module Hyrax
2
+ module LocalFileDownloadsControllerBehavior
3
+ protected
4
+
5
+ # Handle the HTTP show request
6
+ def send_local_content
7
+ response.headers['Accept-Ranges'] = 'bytes'
8
+ if request.head?
9
+ local_content_head
10
+ elsif request.headers['Range']
11
+ send_range_for_local_file
12
+ else
13
+ send_local_file_contents
14
+ end
15
+ end
16
+
17
+ # render an HTTP Range response
18
+ def send_range_for_local_file
19
+ _, range = request.headers['Range'].split('bytes=')
20
+ from, to = range.split('-').map(&:to_i)
21
+ to = local_file_size - 1 unless to
22
+ length = to - from + 1
23
+ response.headers['Content-Range'] = "bytes #{from}-#{to}/#{local_file_size}"
24
+ response.headers['Content-Length'] = length.to_s
25
+ self.status = 206
26
+ prepare_local_file_headers
27
+ # For derivatives stored on the local file system
28
+ send_data IO.binread(file, length, from), local_derivative_download_options.merge(status: status)
29
+ end
30
+
31
+ def send_local_file_contents
32
+ self.status = 200
33
+ prepare_local_file_headers
34
+ # For derivatives stored on the local file system
35
+ send_file file, local_derivative_download_options
36
+ end
37
+
38
+ def local_file_size
39
+ File.size(file)
40
+ end
41
+
42
+ def local_file_mime_type
43
+ mime_type_for(file)
44
+ end
45
+
46
+ # @return [String] the filename
47
+ def local_file_name
48
+ params[:filename] || File.basename(file) || (asset.respond_to?(:label) && asset.label)
49
+ end
50
+
51
+ def local_file_last_modified
52
+ File.mtime(file) if file.is_a? String
53
+ end
54
+
55
+ # Override
56
+ # render an HTTP HEAD response
57
+ def local_content_head
58
+ response.headers['Content-Length'] = local_file_size.to_s
59
+ head :ok, content_type: local_file_mime_type
60
+ end
61
+
62
+ # Override
63
+ def prepare_local_file_headers
64
+ send_file_headers! local_content_options
65
+ response.headers['Content-Type'] = local_file_mime_type
66
+ response.headers['Content-Length'] ||= local_file_size.to_s
67
+ # Prevent Rack::ETag from calculating a digest over body
68
+ response.headers['Last-Modified'] = local_file_last_modified.utc.strftime("%a, %d %b %Y %T GMT")
69
+ self.content_type = local_file_mime_type
70
+ end
71
+
72
+ private
73
+
74
+ # Override the Hydra::Controller::DownloadBehavior#content_options so that
75
+ # we have an attachement rather than 'inline'
76
+ def local_content_options
77
+ { type: local_file_mime_type, filename: local_file_name, disposition: 'attachment' }
78
+ end
79
+
80
+ # Override this method if you want to change the options sent when downloading
81
+ # a derivative file
82
+ def local_derivative_download_options
83
+ { type: local_file_mime_type, filename: local_file_name, disposition: 'inline' }
84
+ end
85
+ end
86
+ end