curation_concerns 0.1.0 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (472) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +7 -9
  3. data/.rspec +1 -1
  4. data/.rubocop.yml +185 -0
  5. data/.travis.yml +0 -10
  6. data/CONTRIBUTING.md +117 -0
  7. data/Gemfile +5 -2
  8. data/README.md +18 -11
  9. data/Rakefile +23 -11
  10. data/VERSION +1 -1
  11. data/app/assets/images/audio.png +0 -0
  12. data/app/assets/images/loading.gif +0 -0
  13. data/app/assets/images/progressbar.gif +0 -0
  14. data/app/assets/javascripts/curation_concerns/application.js +2 -8
  15. data/app/assets/javascripts/curation_concerns/curation_concerns.js +1 -15
  16. data/app/assets/javascripts/curation_concerns/facet_mine.js +4 -10
  17. data/app/assets/javascripts/curation_concerns/fileupload.js +6 -0
  18. data/app/assets/javascripts/curation_concerns/uploader.js +183 -0
  19. data/app/assets/stylesheets/curation_concerns/_curation_concerns.scss +3 -0
  20. data/app/assets/stylesheets/curation_concerns/_positioning.scss +6 -0
  21. data/app/assets/stylesheets/curation_concerns/fileupload/jquery.fileupload-ui.scss +86 -0
  22. data/app/assets/stylesheets/curation_concerns/fileupload/thumbnail-scaling.css +3 -0
  23. data/app/assets/stylesheets/curation_concerns/fileupload.scss +48 -0
  24. data/app/assets/stylesheets/curation_concerns/modules/attributes.scss +10 -0
  25. data/app/assets/stylesheets/curation_concerns/modules/embargoes.scss +1 -1
  26. data/app/assets/stylesheets/curation_concerns/modules/forms.scss +0 -10
  27. data/app/assets/stylesheets/curation_concerns/modules/search_results.scss +7 -8
  28. data/app/controllers/concerns/curation_concerns/api.rb +77 -0
  29. data/app/controllers/concerns/curation_concerns/application_controller_behavior.rb +30 -12
  30. data/app/controllers/concerns/curation_concerns/catalog_controller.rb +9 -276
  31. data/app/controllers/concerns/curation_concerns/collections_controller_behavior.rb +51 -40
  32. data/app/controllers/concerns/curation_concerns/curation_concern_controller.rb +60 -30
  33. data/app/controllers/concerns/curation_concerns/download_behavior.rb +51 -37
  34. data/app/controllers/concerns/curation_concerns/embargoes_controller_behavior.rb +29 -29
  35. data/app/controllers/concerns/curation_concerns/file_sets_controller_behavior.rb +198 -0
  36. data/app/controllers/concerns/curation_concerns/leases_controller_behavior.rb +27 -20
  37. data/app/controllers/concerns/curation_concerns/manages_embargoes.rb +2 -7
  38. data/app/controllers/concerns/curation_concerns/parent_container.rb +20 -4
  39. data/app/controllers/concerns/curation_concerns/single_use_links_controller_behavior.rb +48 -0
  40. data/app/controllers/concerns/curation_concerns/single_use_links_viewer_controller_behavior.rb +75 -0
  41. data/app/controllers/concerns/curation_concerns/themed_layout_controller.rb +0 -1
  42. data/app/controllers/concerns/curation_concerns/upload_sets_controller_behavior.rb +38 -0
  43. data/app/controllers/concerns/curation_concerns/welcome_controller_behavior.rb +8 -0
  44. data/app/controllers/concerns/curation_concerns/without_namespace.rb +2 -1
  45. data/app/controllers/curation_concerns/classify_concerns_controller.rb +9 -9
  46. data/app/controllers/curation_concerns/file_sets_controller.rb +5 -0
  47. data/app/controllers/curation_concerns/permissions_controller.rb +2 -3
  48. data/app/controllers/curation_concerns/single_use_links_controller.rb +5 -0
  49. data/app/controllers/curation_concerns/single_use_links_viewer_controller.rb +21 -0
  50. data/app/controllers/downloads_controller.rb +0 -1
  51. data/app/controllers/embargoes_controller.rb +0 -2
  52. data/app/controllers/leases_controller.rb +0 -2
  53. data/app/controllers/registrations_controller.rb +1 -2
  54. data/app/controllers/upload_sets_controller.rb +3 -0
  55. data/app/controllers/welcome_controller.rb +3 -0
  56. data/app/forms/curation_concerns/forms/collection_edit_form.rb +18 -2
  57. data/app/forms/curation_concerns/forms/file_set_edit_form.rb +15 -0
  58. data/app/forms/curation_concerns/forms/work_form.rb +57 -0
  59. data/app/helpers/curation_concerns/ability_helper.rb +24 -24
  60. data/app/helpers/curation_concerns/catalog_helper.rb +9 -8
  61. data/app/helpers/curation_concerns/collections_helper.rb +9 -12
  62. data/app/helpers/curation_concerns/embargo_helper.rb +0 -2
  63. data/app/helpers/curation_concerns/file_set_helper.rb +31 -0
  64. data/app/helpers/curation_concerns/lease_helper.rb +0 -3
  65. data/app/helpers/curation_concerns/main_app_helpers.rb +1 -3
  66. data/app/helpers/curation_concerns/render_constraints_helper.rb +5 -5
  67. data/app/helpers/curation_concerns/search_paths_helper.rb +5 -7
  68. data/app/helpers/curation_concerns/title_helper.rb +3 -7
  69. data/app/helpers/curation_concerns/url_helper.rb +4 -6
  70. data/app/inputs/multifile_input.rb +8 -0
  71. data/app/jobs/visibility_copy_job.rb +22 -0
  72. data/app/presenters/curation_concerns/collection_presenter.rb +14 -32
  73. data/app/presenters/curation_concerns/embargo_presenter.rb +26 -0
  74. data/app/presenters/curation_concerns/file_set_presenter.rb +34 -0
  75. data/app/presenters/curation_concerns/lease_presenter.rb +30 -0
  76. data/app/presenters/curation_concerns/model_proxy.rb +27 -0
  77. data/app/presenters/curation_concerns/permission_badge.rb +61 -0
  78. data/app/presenters/curation_concerns/presenter_factory.rb +45 -0
  79. data/app/presenters/curation_concerns/presents_attributes.rb +25 -0
  80. data/app/presenters/curation_concerns/version_list_presenter.rb +18 -0
  81. data/app/presenters/curation_concerns/version_presenter.rb +27 -0
  82. data/app/presenters/curation_concerns/work_show_presenter.rb +33 -0
  83. data/app/renderers/curation_concerns/attribute_renderer.rb +75 -0
  84. data/app/search_builders/curation_concerns/deactivated_embargo_search_builder.rb +10 -0
  85. data/app/search_builders/curation_concerns/deactivated_lease_search_builder.rb +10 -0
  86. data/app/search_builders/curation_concerns/embargo_search_builder.rb +23 -0
  87. data/app/search_builders/curation_concerns/expired_embargo_search_builder.rb +11 -0
  88. data/app/search_builders/curation_concerns/expired_lease_search_builder.rb +11 -0
  89. data/app/search_builders/curation_concerns/lease_search_builder.rb +23 -0
  90. data/app/search_builders/curation_concerns/search_builder.rb +10 -16
  91. data/app/services/curation_concerns/curation_concern.rb +0 -5
  92. data/app/services/curation_concerns/embargo_service.rb +26 -4
  93. data/app/services/curation_concerns/lease_service.rb +14 -5
  94. data/app/services/curation_concerns/parent_service.rb +19 -0
  95. data/app/services/curation_concerns/restriction_service.rb +24 -0
  96. data/app/services/rights_service.rb +14 -0
  97. data/app/views/catalog/_action_menu_partials/_collection.html.erb +1 -1
  98. data/app/views/catalog/_action_menu_partials/_default.html.erb +5 -3
  99. data/app/views/catalog/_document_list.html.erb +1 -1
  100. data/app/views/catalog/index.html.erb +1 -35
  101. data/app/views/collections/_edit_descriptions.html.erb +3 -4
  102. data/app/views/collections/_form.html.erb +1 -1
  103. data/app/views/collections/_form_permission.html.erb +1 -1
  104. data/app/views/collections/_search_form.html.erb +10 -0
  105. data/app/views/collections/_show_actions.html.erb +3 -3
  106. data/app/views/collections/_sort_and_per_page.html.erb +2 -2
  107. data/app/views/collections/show.html.erb +6 -6
  108. data/app/views/curation_concerns/base/_attribute_rows.html.erb +7 -0
  109. data/app/views/curation_concerns/base/_attributes.html.erb +6 -13
  110. data/app/views/curation_concerns/base/_form.html.erb +4 -5
  111. data/app/views/curation_concerns/base/_form_descriptive_fields.erb +2 -4
  112. data/app/views/curation_concerns/base/_form_files_and_links.html.erb +3 -5
  113. data/app/views/curation_concerns/base/_form_permission.html.erb +13 -26
  114. data/app/views/curation_concerns/base/_form_permission_note.html.erb +15 -0
  115. data/app/views/curation_concerns/base/_form_permission_under_embargo.html.erb +2 -2
  116. data/app/views/curation_concerns/base/_form_permission_under_lease.html.erb +2 -2
  117. data/app/views/curation_concerns/base/_form_representative_image.html.erb +16 -4
  118. data/app/views/curation_concerns/base/_form_rights.html.erb +17 -0
  119. data/app/views/curation_concerns/base/_form_supplementary_fields.html.erb +4 -9
  120. data/app/views/curation_concerns/base/_related_files.html.erb +4 -4
  121. data/app/views/curation_concerns/base/_representative_media.html.erb +2 -4
  122. data/app/views/curation_concerns/base/_versioning.html.erb +23 -0
  123. data/app/views/curation_concerns/base/show.html.erb +13 -10
  124. data/app/views/curation_concerns/base/show.json.jbuilder +1 -0
  125. data/app/views/curation_concerns/base/versions.html.erb +6 -0
  126. data/app/views/curation_concerns/file_sets/_actions.html.erb +16 -0
  127. data/app/views/curation_concerns/file_sets/_file_set.html.erb +12 -0
  128. data/app/views/curation_concerns/{generic_files → file_sets}/_form.html.erb +7 -7
  129. data/app/views/curation_concerns/file_sets/_multiple_upload.html.erb +3 -0
  130. data/app/views/curation_concerns/{generic_files → file_sets}/edit.html.erb +0 -0
  131. data/app/views/curation_concerns/file_sets/jq_upload.json.jbuilder +8 -0
  132. data/app/views/curation_concerns/file_sets/media_display/_audio.html.erb +6 -0
  133. data/app/views/curation_concerns/file_sets/media_display/_default.html.erb +4 -0
  134. data/app/views/curation_concerns/file_sets/media_display/_image.html.erb +8 -0
  135. data/app/views/curation_concerns/file_sets/media_display/_office_document.html.erb +7 -0
  136. data/app/views/curation_concerns/file_sets/media_display/_pdf.html.erb +7 -0
  137. data/app/views/curation_concerns/file_sets/media_display/_video.html.erb +6 -0
  138. data/app/views/curation_concerns/file_sets/show.html.erb +15 -0
  139. data/app/views/curation_concerns/file_sets/show.json.jbuilder +1 -0
  140. data/app/views/curation_concerns/file_sets/upload/_alerts.html.erb +19 -0
  141. data/app/views/curation_concerns/file_sets/upload/_form.html.erb +6 -0
  142. data/app/views/curation_concerns/file_sets/upload/_form_fields.html.erb +45 -0
  143. data/app/views/curation_concerns/file_sets/upload/_script_templates.html.erb +61 -0
  144. data/app/views/curation_concerns/single_use_links/new_download.html.erb +5 -0
  145. data/app/views/curation_concerns/single_use_links/new_show.html.erb +5 -0
  146. data/app/views/curation_concerns/single_use_links_viewer/show.html.erb +10 -0
  147. data/app/views/error/single_use_error.html.erb +19 -0
  148. data/app/views/layouts/error.html.erb +33 -0
  149. data/app/views/leases/_list_expired_active_leases.html.erb +6 -1
  150. data/app/views/records/_rights_modal.html.erb +1 -0
  151. data/app/views/records/edit_fields/_default.html.erb +5 -0
  152. data/app/views/records/show_fields/_default.html.erb +6 -0
  153. data/app/views/shared/_add_content.html.erb +2 -14
  154. data/app/views/shared/_add_works.html.erb +14 -0
  155. data/app/views/shared/_my_actions.html.erb +9 -1
  156. data/app/views/shared/_site_actions.html.erb +1 -1
  157. data/app/views/shared/_site_search.html.erb +7 -7
  158. data/app/views/upload_sets/_edit.js.erb +15 -0
  159. data/app/views/upload_sets/_metadata.html.erb +50 -0
  160. data/app/views/upload_sets/_more_metadata.html.erb +7 -0
  161. data/app/views/upload_sets/edit.html.erb +26 -0
  162. data/app/views/{catalog/_home_text.html.erb → welcome/index.html.erb} +1 -0
  163. data/config/initializers/simple_form.rb +14 -0
  164. data/config/jetty.yml +5 -0
  165. data/config/locales/curation_concerns.en.yml +25 -4
  166. data/config/routes.rb +5 -0
  167. data/curation_concerns.gemspec +4 -6
  168. data/lib/curation_concerns/callbacks/registry.rb +48 -0
  169. data/lib/curation_concerns/callbacks.rb +26 -0
  170. data/lib/curation_concerns/controller_resource.rb +4 -4
  171. data/lib/curation_concerns/engine.rb +4 -2
  172. data/lib/curation_concerns/rails/routes.rb +23 -19
  173. data/lib/curation_concerns/single_use_error.rb +3 -0
  174. data/lib/curation_concerns/spec_support.rb +0 -2
  175. data/lib/curation_concerns/version.rb +1 -1
  176. data/lib/curation_concerns.rb +1 -2
  177. data/lib/generators/curation_concerns/install_generator.rb +34 -30
  178. data/lib/generators/curation_concerns/templates/catalog_controller.rb +236 -0
  179. data/lib/generators/curation_concerns/templates/config/authorities/rights.yml +19 -0
  180. data/lib/generators/curation_concerns/templates/{curation_concerns.css.scss → curation_concerns.scss} +0 -0
  181. data/lib/generators/curation_concerns/work/templates/actor_spec.rb.erb +1 -1
  182. data/lib/generators/curation_concerns/work/templates/controller_spec.rb.erb +1 -1
  183. data/lib/generators/curation_concerns/work/templates/form.rb.erb +8 -0
  184. data/lib/generators/curation_concerns/work/templates/form_spec.rb.erb +10 -0
  185. data/lib/generators/curation_concerns/work/templates/model.rb.erb +2 -2
  186. data/lib/generators/curation_concerns/work/templates/model_spec.rb.erb +1 -1
  187. data/lib/generators/curation_concerns/work/work_generator.rb +31 -26
  188. data/spec/abilities/collection_abilities_spec.rb +13 -13
  189. data/spec/abilities/embargo_and_lease_ability_spec.rb +23 -0
  190. data/spec/abilities/file_set_abilities_spec.rb +67 -0
  191. data/spec/abilities/generic_work_abilities_spec.rb +12 -12
  192. data/spec/actors/curation_concerns/embargo_actor_spec.rb +38 -0
  193. data/spec/actors/curation_concerns/file_set_actor_spec.rb +180 -0
  194. data/spec/actors/curation_concerns/lease_actor_spec.rb +39 -0
  195. data/spec/actors/curation_concerns/manages_embargoes_actor_spec.rb +44 -38
  196. data/spec/actors/curation_concerns/work_actor_spec.rb +121 -63
  197. data/spec/controllers/catalog_controller_spec.rb +30 -32
  198. data/spec/controllers/curation_concerns/classify_concerns_controller_spec.rb +2 -3
  199. data/spec/controllers/curation_concerns/collections_controller_spec.rb +93 -76
  200. data/spec/controllers/curation_concerns/file_sets_controller_json_spec.rb +106 -0
  201. data/spec/controllers/curation_concerns/file_sets_controller_spec.rb +237 -0
  202. data/spec/controllers/curation_concerns/generic_works_controller_json_spec.rb +85 -0
  203. data/spec/controllers/curation_concerns/generic_works_controller_spec.rb +84 -72
  204. data/spec/controllers/curation_concerns/permissions_controller_spec.rb +8 -11
  205. data/spec/controllers/curation_concerns/single_use_links_controller_spec.rb +79 -0
  206. data/spec/controllers/curation_concerns/single_use_links_viewer_controller_spec.rb +74 -0
  207. data/spec/controllers/downloads_controller_spec.rb +49 -24
  208. data/spec/controllers/embargoes_controller_spec.rb +42 -51
  209. data/spec/controllers/leases_controller_spec.rb +53 -42
  210. data/spec/controllers/upload_sets_controller_spec.rb +76 -0
  211. data/spec/controllers/welcome_controller_spec.rb +12 -0
  212. data/spec/factories/collections.rb +5 -1
  213. data/spec/factories/{generic_files.rb → file_sets.rb} +6 -6
  214. data/spec/factories/generic_works.rb +5 -6
  215. data/spec/factories/users.rb +2 -4
  216. data/spec/features/add_file_spec.rb +11 -12
  217. data/spec/features/catalog_search_spec.rb +43 -0
  218. data/spec/features/collection_spec.rb +61 -46
  219. data/spec/features/create_work_spec.rb +26 -19
  220. data/spec/features/embargo_spec.rb +13 -12
  221. data/spec/features/lease_spec.rb +15 -16
  222. data/spec/features/update_file_spec.rb +11 -13
  223. data/spec/features/work_generator_spec.rb +34 -26
  224. data/spec/{helpers/curation_concerns/.keep → fixtures/empty_file.txt} +0 -0
  225. data/spec/fixtures/test.pdf +0 -0
  226. data/spec/forms/collection_edit_form_spec.rb +53 -9
  227. data/spec/forms/file_set_edit_form_spec.rb +53 -0
  228. data/spec/forms/work_form_spec.rb +54 -0
  229. data/spec/helpers/catalog_helper_spec.rb +9 -10
  230. data/spec/helpers/configuration_helper_spec.rb +1 -2
  231. data/spec/helpers/curation_concerns/collections_helper_spec.rb +8 -9
  232. data/spec/helpers/curation_concerns/file_set_helper_spec.rb +61 -0
  233. data/spec/helpers/render_constraints_helper_spec.rb +4 -4
  234. data/spec/helpers/url_helper_spec.rb +8 -7
  235. data/spec/indexers/collection_indexer_spec.rb +14 -0
  236. data/spec/indexers/file_set_indexing_service_spec.rb +69 -0
  237. data/spec/indexers/generic_work_indexing_service_spec.rb +22 -0
  238. data/spec/inputs/multifile_input_spec.rb +32 -0
  239. data/spec/jobs/active_fedora_id_based_job_spec.rb +10 -8
  240. data/spec/jobs/audit_job_spec.rb +28 -20
  241. data/spec/jobs/characterize_job_spec.rb +10 -15
  242. data/spec/jobs/create_derivatives_job_spec.rb +11 -9
  243. data/spec/jobs/import_url_job_spec.rb +14 -21
  244. data/spec/jobs/ingest_file_job_spec.rb +45 -0
  245. data/spec/jobs/ingest_local_file_job_spec.rb +13 -15
  246. data/spec/jobs/upload_set_update_job_spec.rb +30 -0
  247. data/spec/jobs/visibility_copy_job_spec.rb +61 -0
  248. data/spec/lib/curation_concerns/callbacks/registry_spec.rb +54 -0
  249. data/spec/lib/curation_concerns/callbacks_spec.rb +27 -0
  250. data/spec/lib/curation_concerns/messages_spec.rb +29 -30
  251. data/spec/lib/curation_concerns/readable_permissions_spec.rb +18 -20
  252. data/spec/lib/curation_concerns/writable_permissions_spec.rb +2 -4
  253. data/spec/matchers/metadata_field_matchers.rb +1 -1
  254. data/spec/matchers/response_matchers.rb +2 -2
  255. data/spec/matchers.rb +3 -2
  256. data/spec/models/checksum_audit_log_spec.rb +37 -32
  257. data/spec/models/curation_concerns/collection_behavior_spec.rb +50 -37
  258. data/spec/models/curation_concerns/file_set/derivatives_spec.rb +84 -0
  259. data/spec/models/curation_concerns/work_behavior_spec.rb +53 -0
  260. data/spec/models/file_set_spec.rb +601 -0
  261. data/spec/models/generic_work_spec.rb +15 -14
  262. data/spec/models/single_use_link_spec.rb +69 -0
  263. data/spec/models/solr_document_spec.rb +67 -0
  264. data/spec/models/upload_set_spec.rb +39 -0
  265. data/spec/models/user_spec.rb +7 -8
  266. data/spec/presenters/curation_concerns/collection_presenter_spec.rb +8 -24
  267. data/spec/presenters/curation_concerns/file_set_presenter_spec.rb +59 -0
  268. data/spec/presenters/curation_concerns/permission_badge_spec.rb +29 -0
  269. data/spec/presenters/curation_concerns/presenter_factory_spec.rb +29 -0
  270. data/spec/presenters/curation_concerns/version_list_presenter_spec.rb +32 -0
  271. data/spec/presenters/curation_concerns/version_presenter_spec.rb +51 -0
  272. data/spec/presenters/curation_concerns/work_show_presenter_spec.rb +35 -0
  273. data/spec/presenters/embargo_presenter_spec.rb +48 -0
  274. data/spec/presenters/lease_presenter_spec.rb +48 -0
  275. data/spec/renderers/curation_concerns/attribute_renderer_spec.rb +14 -0
  276. data/spec/routing/curation_concerns/routes_spec.rb +38 -12
  277. data/spec/routing/route_spec.rb +38 -39
  278. data/spec/search_builders/curation_concerns/embargo_search_builder_spec.rb +17 -0
  279. data/spec/search_builders/curation_concerns/lease_search_builder_spec.rb +17 -0
  280. data/spec/search_builders/curation_concerns/search_builder_spec.rb +60 -0
  281. data/spec/services/derivative_path_spec.rb +16 -0
  282. data/spec/services/embargo_service_spec.rb +15 -14
  283. data/spec/services/file_set_audit_service_spec.rb +71 -0
  284. data/spec/services/lease_service_spec.rb +13 -13
  285. data/spec/services/lock_manager_spec.rb +12 -0
  286. data/spec/services/parent_service_spec.rb +13 -0
  287. data/spec/services/persist_derivatives_spec.rb +24 -0
  288. data/spec/services/persist_directly_contained_output_file_service_spec.rb +14 -0
  289. data/spec/services/repository_audit_service_spec.rb +8 -7
  290. data/spec/services/rights_service_spec.rb +17 -0
  291. data/spec/services/thumbnail_path_service_spec.rb +43 -0
  292. data/spec/services/versioning_service_spec.rb +8 -9
  293. data/spec/spec_helper.rb +21 -13
  294. data/spec/support/curation_concerns/factory_helpers.rb +1 -0
  295. data/spec/support/features/fixture_file_upload.rb +3 -1
  296. data/spec/support/features/session_helpers.rb +3 -4
  297. data/spec/support/features.rb +1 -4
  298. data/spec/support/input_support.rb +11 -0
  299. data/spec/support/matchers/api_responses.rb +22 -0
  300. data/spec/support/shared/shared_examples_has_dc_metadata.rb +0 -2
  301. data/spec/support/shared/shared_examples_is_embargoable.rb +1 -3
  302. data/spec/support/shared/shared_examples_with_access_rights.rb +13 -16
  303. data/spec/tasks/rake_spec.rb +9 -11
  304. data/spec/test_app_templates/Gemfile.extra +4 -1
  305. data/spec/test_app_templates/lib/generators/test_app_generator.rb +3 -35
  306. data/spec/views/catalog/index.html.erb_spec.rb +7 -10
  307. data/spec/views/curation_concerns/base/_attributes.html.erb_spec.rb +9 -6
  308. data/spec/views/curation_concerns/base/_form_permission.html.erb_spec.rb +13 -0
  309. data/spec/views/curation_concerns/base/show.html.erb_spec.rb +35 -15
  310. data/spec/views/curation_concerns/base/show.json.jbuilder_spec.rb +21 -0
  311. data/spec/views/curation_concerns/file_sets/_file_set.html.erb_spec.rb +37 -0
  312. data/spec/views/curation_concerns/file_sets/show.json.jbuilder_spec.rb +21 -0
  313. data/spec/views/curation_concerns/permissions/confirm.html.erb_spec.rb +6 -6
  314. data/spec/views/error/single_use_error.html.erb_spec.rb +8 -0
  315. data/spec/views/layouts/error.html.erb_spec.rb +8 -0
  316. data/spec/views/shared/_add_content.html.erb_spec.rb +33 -20
  317. data/spec/views/shared/_my_actions.html.erb_spec.rb +18 -6
  318. data/spec/views/single_use_links/new_download.html.erb_spec.rb +29 -0
  319. data/spec/views/single_use_links_viewer/show.html.erb_spec.rb +32 -0
  320. data/tasks/jetty.rake +1 -1
  321. data/vendor/assets/javascrips/fileupload/jquery.fileupload-process.js +175 -0
  322. data/vendor/assets/javascrips/fileupload/jquery.fileupload-ui.js +710 -0
  323. data/vendor/assets/javascrips/fileupload/jquery.fileupload-validate.js +122 -0
  324. data/vendor/assets/javascrips/fileupload/jquery.fileupload.js +1477 -0
  325. data/vendor/assets/javascrips/fileupload/locale.js +27 -0
  326. data/vendor/assets/javascrips/fileupload/tmpl.js +87 -0
  327. metadata +242 -213
  328. data/app/assets/javascripts/curation_concerns/help_modal.js +0 -36
  329. data/app/assets/javascripts/curation_concerns/link_groups.js.coffee +0 -123
  330. data/app/assets/javascripts/curation_concerns/link_users.js.coffee +0 -126
  331. data/app/assets/javascripts/curation_concerns/proxy_rights.js.coffee +0 -95
  332. data/app/assets/javascripts/curation_concerns/proxy_submission.js +0 -23
  333. data/app/assets/javascripts/curation_concerns/select_works.js.coffee +0 -20
  334. data/app/controllers/catalog_controller.rb +0 -3
  335. data/app/controllers/concerns/curation_concerns/generic_files_controller_behavior.rb +0 -149
  336. data/app/controllers/curation_concerns/generic_files_controller.rb +0 -13
  337. data/app/datastreams/curation_concerns/generic_work_rdf_properties.rb +0 -57
  338. data/app/datastreams/generic_work_metadata.rb +0 -3
  339. data/app/forms/curation_concerns/forms/generic_file_edit_form.rb +0 -15
  340. data/app/forms/curation_concerns/forms/generic_work_edit_form.rb +0 -9
  341. data/app/helpers/curation_concerns/attribute_helper.rb +0 -67
  342. data/app/helpers/curation_concerns/generic_file_helper.rb +0 -19
  343. data/app/helpers/curation_concerns/thumbnail_helper.rb +0 -11
  344. data/app/presenters/curation_concerns/generic_file_presenter.rb +0 -14
  345. data/app/presenters/curation_concerns/generic_work_presenter.rb +0 -13
  346. data/app/views/catalog/_index_default.html.erb +0 -17
  347. data/app/views/collections/_form_representative_image.html.erb +0 -13
  348. data/app/views/collections/_identifier_and_action.html.erb +0 -15
  349. data/app/views/curation_concerns/base/_form_content_license.html.erb +0 -16
  350. data/app/views/curation_concerns/base/_form_editors.html.erb +0 -15
  351. data/app/views/curation_concerns/generic_files/_actions.html.erb +0 -16
  352. data/app/views/curation_concerns/generic_files/_generic_file.html.erb +0 -12
  353. data/app/views/curation_concerns/generic_files/_media_display.html.erb +0 -19
  354. data/app/views/curation_concerns/generic_files/jq_upload.json.jbuilder +0 -8
  355. data/app/views/curation_concerns/generic_files/show.html.erb +0 -15
  356. data/app/workers/visibility_copy_worker.rb +0 -30
  357. data/curation_concerns-models/.gitignore +0 -17
  358. data/curation_concerns-models/Gemfile +0 -4
  359. data/curation_concerns-models/LICENSE.md +0 -177
  360. data/curation_concerns-models/README.md +0 -42
  361. data/curation_concerns-models/Rakefile +0 -1
  362. data/curation_concerns-models/app/actors/concerns/curation_concerns/manages_embargoes_actor.rb +0 -99
  363. data/curation_concerns-models/app/actors/curation_concerns/base_actor.rb +0 -90
  364. data/curation_concerns-models/app/actors/curation_concerns/generic_file_actor.rb +0 -150
  365. data/curation_concerns-models/app/actors/curation_concerns/work_actor_behavior.rb +0 -88
  366. data/curation_concerns-models/app/jobs/active_fedora_id_based_job.rb +0 -22
  367. data/curation_concerns-models/app/jobs/active_fedora_pid_based_job.rb +0 -6
  368. data/curation_concerns-models/app/jobs/audit_job.rb +0 -58
  369. data/curation_concerns-models/app/jobs/characterize_job.rb +0 -11
  370. data/curation_concerns-models/app/jobs/copy_permissions_job.rb +0 -24
  371. data/curation_concerns-models/app/jobs/create_derivatives_job.rb +0 -15
  372. data/curation_concerns-models/app/jobs/import_url_job.rb +0 -56
  373. data/curation_concerns-models/app/jobs/ingest_local_file_job.rb +0 -48
  374. data/curation_concerns-models/app/jobs/resolrize_job.rb +0 -9
  375. data/curation_concerns-models/app/models/checksum_audit_log.rb +0 -21
  376. data/curation_concerns-models/app/models/concerns/curation_concerns/ability.rb +0 -34
  377. data/curation_concerns-models/app/models/concerns/curation_concerns/basic_metadata.rb +0 -87
  378. data/curation_concerns-models/app/models/concerns/curation_concerns/collection_behavior.rb +0 -47
  379. data/curation_concerns-models/app/models/concerns/curation_concerns/generic_file/belongs_to_works.rb +0 -53
  380. data/curation_concerns-models/app/models/concerns/curation_concerns/generic_file/characterization.rb +0 -89
  381. data/curation_concerns-models/app/models/concerns/curation_concerns/generic_file/content.rb +0 -8
  382. data/curation_concerns-models/app/models/concerns/curation_concerns/generic_file/export.rb +0 -343
  383. data/curation_concerns-models/app/models/concerns/curation_concerns/generic_file/full_text_indexing.rb +0 -12
  384. data/curation_concerns-models/app/models/concerns/curation_concerns/generic_file/indexing.rb +0 -14
  385. data/curation_concerns-models/app/models/concerns/curation_concerns/generic_file/versions.rb +0 -16
  386. data/curation_concerns-models/app/models/concerns/curation_concerns/generic_file.rb +0 -5
  387. data/curation_concerns-models/app/models/concerns/curation_concerns/generic_file_behavior.rb +0 -44
  388. data/curation_concerns-models/app/models/concerns/curation_concerns/generic_work_behavior.rb +0 -38
  389. data/curation_concerns-models/app/models/concerns/curation_concerns/has_representative.rb +0 -14
  390. data/curation_concerns-models/app/models/concerns/curation_concerns/human_readable_type.rb +0 -23
  391. data/curation_concerns-models/app/models/concerns/curation_concerns/permissions/readable.rb +0 -19
  392. data/curation_concerns-models/app/models/concerns/curation_concerns/permissions/writable.rb +0 -75
  393. data/curation_concerns-models/app/models/concerns/curation_concerns/permissions.rb +0 -7
  394. data/curation_concerns-models/app/models/concerns/curation_concerns/serializers.rb +0 -15
  395. data/curation_concerns-models/app/models/concerns/curation_concerns/solr_document_behavior.rb +0 -135
  396. data/curation_concerns-models/app/models/concerns/curation_concerns/user.rb +0 -65
  397. data/curation_concerns-models/app/models/concerns/curation_concerns/with_basic_metadata.rb +0 -98
  398. data/curation_concerns-models/app/models/concerns/curation_concerns/with_generic_files.rb +0 -29
  399. data/curation_concerns-models/app/models/curation_concerns/classify_concern.rb +0 -47
  400. data/curation_concerns-models/app/models/curation_concerns/quick_classification_query.rb +0 -31
  401. data/curation_concerns-models/app/models/datastreams/fits_datastream.rb +0 -148
  402. data/curation_concerns-models/app/models/version_committer.rb +0 -2
  403. data/curation_concerns-models/app/services/curation_concerns/characterization_service.rb +0 -71
  404. data/curation_concerns-models/app/services/curation_concerns/full_text_extraction_service.rb +0 -38
  405. data/curation_concerns-models/app/services/curation_concerns/generic_file_audit_service.rb +0 -85
  406. data/curation_concerns-models/app/services/curation_concerns/generic_file_indexing_service.rb +0 -14
  407. data/curation_concerns-models/app/services/curation_concerns/generic_work_indexing_service.rb +0 -16
  408. data/curation_concerns-models/app/services/curation_concerns/noid.rb +0 -23
  409. data/curation_concerns-models/app/services/curation_concerns/repository_audit_service.rb +0 -9
  410. data/curation_concerns-models/app/services/curation_concerns/versioning_service.rb +0 -27
  411. data/curation_concerns-models/config/locales/curation_concerns.en.yml +0 -6
  412. data/curation_concerns-models/curation_concerns-models.gemspec +0 -34
  413. data/curation_concerns-models/lib/curation_concerns/messages.rb +0 -66
  414. data/curation_concerns-models/lib/curation_concerns/models/engine.rb +0 -61
  415. data/curation_concerns-models/lib/curation_concerns/models/resque.rb +0 -36
  416. data/curation_concerns-models/lib/curation_concerns/models/utils.rb +0 -22
  417. data/curation_concerns-models/lib/curation_concerns/models/version.rb +0 -5
  418. data/curation_concerns-models/lib/curation_concerns/models.rb +0 -32
  419. data/curation_concerns-models/lib/generators/curation_concerns/models/abstract_migration_generator.rb +0 -30
  420. data/curation_concerns-models/lib/generators/curation_concerns/models/clamav_generator.rb +0 -19
  421. data/curation_concerns-models/lib/generators/curation_concerns/models/fulltext_generator.rb +0 -28
  422. data/curation_concerns-models/lib/generators/curation_concerns/models/install_generator.rb +0 -70
  423. data/curation_concerns-models/lib/generators/curation_concerns/models/templates/app/models/collection.rb +0 -4
  424. data/curation_concerns-models/lib/generators/curation_concerns/models/templates/app/models/generic_file.rb +0 -4
  425. data/curation_concerns-models/lib/generators/curation_concerns/models/templates/config/clamav.rb +0 -1
  426. data/curation_concerns-models/lib/generators/curation_concerns/models/templates/config/curation_concerns.rb +0 -123
  427. data/curation_concerns-models/lib/generators/curation_concerns/models/templates/config/mime_types.rb +0 -6
  428. data/curation_concerns-models/lib/generators/curation_concerns/models/templates/config/redis.yml +0 -9
  429. data/curation_concerns-models/lib/generators/curation_concerns/models/templates/config/redis_config.rb +0 -32
  430. data/curation_concerns-models/lib/generators/curation_concerns/models/templates/config/resque-pool.yml +0 -1
  431. data/curation_concerns-models/lib/generators/curation_concerns/models/templates/config/resque_admin.rb +0 -10
  432. data/curation_concerns-models/lib/generators/curation_concerns/models/templates/config/resque_config.rb +0 -5
  433. data/curation_concerns-models/lib/generators/curation_concerns/models/templates/migrations/create_checksum_audit_logs.rb +0 -19
  434. data/curation_concerns-models/lib/generators/curation_concerns/models/templates/migrations/create_version_committers.rb +0 -15
  435. data/curation_concerns-models/lib/tasks/curation_concerns-models_tasks.rake +0 -75
  436. data/curation_concerns-models/lib/tasks/migrate.rake +0 -13
  437. data/curation_concerns-models/lib/tasks/resque.rake +0 -13
  438. data/curation_concerns-models/lib/tasks/solr_reindex.rake +0 -8
  439. data/lib/curation_concerns/configuration.rb +0 -74
  440. data/lib/generators/curation_concerns/templates/curation_concerns_config.rb +0 -2
  441. data/solr_conf/conf/solrconfig.xml +0 -223
  442. data/spec/abilities/generic_file_abilities_spec.rb +0 -62
  443. data/spec/actors/curation_concerns/generic_file_actor_spec.rb +0 -116
  444. data/spec/controllers/curation_concerns/generic_files_controller_spec.rb +0 -251
  445. data/spec/forms/generic_file_edit_form_spec.rb +0 -33
  446. data/spec/helpers/thumbnail_helper_spec.rb +0 -21
  447. data/spec/jobs/copy_permissions_job_spec.rb +0 -49
  448. data/spec/jobs/curation_concerns_resque_queue_spec.rb +0 -49
  449. data/spec/models/curation_concerns/generic_file/derivatives_spec.rb +0 -88
  450. data/spec/models/curation_concerns/generic_work_behavior_spec.rb +0 -35
  451. data/spec/models/fits_datastream_spec.rb +0 -127
  452. data/spec/models/generic_file_spec.rb +0 -619
  453. data/spec/presenters/curation_concerns/generic_file_presenter_spec.rb +0 -16
  454. data/spec/services/characterization_service_spec.rb +0 -30
  455. data/spec/services/full_text_extraction_service_spec.rb +0 -5
  456. data/spec/services/generic_file_audit_service_spec.rb +0 -71
  457. data/spec/services/generic_file_indexing_service_spec.rb +0 -57
  458. data/spec/services/generic_work_indexing_service_spec.rb +0 -18
  459. data/spec/workers/visibility_copy_worker_spec.rb +0 -70
  460. data/vendor/assets/javascripts/handlebars.js +0 -2278
  461. data/vendor/assets/javascripts/jquery-ui-1.9.2/jquery.ui.autocomplete.js +0 -602
  462. data/vendor/assets/javascripts/jquery-ui-1.9.2/jquery.ui.core.js +0 -356
  463. data/vendor/assets/javascripts/jquery-ui-1.9.2/jquery.ui.effect-highlight.js +0 -50
  464. data/vendor/assets/javascripts/jquery-ui-1.9.2/jquery.ui.effect.js +0 -1276
  465. data/vendor/assets/javascripts/jquery-ui-1.9.2/jquery.ui.menu.js +0 -610
  466. data/vendor/assets/javascripts/jquery-ui-1.9.2/jquery.ui.position.js +0 -498
  467. data/vendor/assets/javascripts/jquery-ui-1.9.2/jquery.ui.widget.js +0 -528
  468. data/vendor/assets/javascripts/jquery.tokeninput.js +0 -1061
  469. data/vendor/assets/stylesheets/jquery-ui-lightness.css +0 -474
  470. data/vendor/assets/stylesheets/token-input-facebook.css +0 -122
  471. data/vendor/assets/stylesheets/token-input-mac.css +0 -204
  472. data/vendor/assets/stylesheets/token-input.css +0 -127
@@ -1,5 +1,5 @@
1
1
  module CurationConcerns
2
- module EmbargoService
2
+ class EmbargoService < RestrictionService
3
3
  class << self
4
4
  #
5
5
  # Methods for Querying Repository to find Embargoed Objects
@@ -7,20 +7,42 @@ module CurationConcerns
7
7
 
8
8
  # Returns all assets with embargo release date set to a date in the past
9
9
  def assets_with_expired_embargoes
10
- ActiveFedora::Base.where('embargo_release_date_dtsi:[* TO NOW]')
10
+ builder = CurationConcerns::ExpiredEmbargoSearchBuilder.new(self)
11
+ presenters(builder)
11
12
  end
12
13
 
13
14
  # Returns all assets with embargo release date set
14
15
  # (assumes that when lease visibility is applied to assets
15
16
  # whose leases have expired, the lease expiration date will be removed from its metadata)
16
17
  def assets_under_embargo
17
- ActiveFedora::Base.where('embargo_release_date_dtsi:*')
18
+ builder = CurationConcerns::EmbargoSearchBuilder.new(self)
19
+ presenters(builder)
18
20
  end
19
21
 
20
22
  # Returns all assets that have had embargoes deactivated in the past.
21
23
  def assets_with_deactivated_embargoes
22
- ActiveFedora::Base.where('embargo_history_ssim:*')
24
+ builder = CurationConcerns::DeactivatedEmbargoSearchBuilder.new(self)
25
+ presenters(builder)
23
26
  end
27
+
28
+ private
29
+
30
+ def presenter_class
31
+ CurationConcerns::EmbargoPresenter
32
+ end
33
+
34
+ def presenters(builder)
35
+ response = repository.search(builder)
36
+ response.documents.map { |d| presenter_class.new(d) }
37
+ end
38
+
39
+ def repository
40
+ config.repository
41
+ end
42
+
43
+ def config
44
+ @config ||= ::CatalogController.new
45
+ end
24
46
  end
25
47
  end
26
48
  end
@@ -1,23 +1,32 @@
1
1
  module CurationConcerns
2
- module LeaseService
2
+ class LeaseService < RestrictionService
3
3
  class << self
4
4
  # Returns all assets with lease expiration date set to a date in the past
5
5
  def assets_with_expired_leases
6
- ActiveFedora::Base.where('lease_expiration_date_dtsi:[* TO NOW]')
6
+ # ActiveFedora::Base.where('lease_expiration_date_dtsi:[* TO NOW]')
7
+ builder = CurationConcerns::ExpiredLeaseSearchBuilder.new(self)
8
+ presenters(builder)
7
9
  end
8
10
 
9
11
  # Returns all assets with lease expiration date set
10
12
  # (assumes that when lease visibility is applied to assets
11
13
  # whose leases have expired, the lease expiration date will be removed from its metadata)
12
14
  def assets_under_lease
13
- ActiveFedora::Base.where('lease_expiration_date_dtsi:*')
15
+ builder = CurationConcerns::LeaseSearchBuilder.new(self)
16
+ presenters(builder)
14
17
  end
15
18
 
16
19
  # Returns all assets that have had embargoes deactivated in the past.
17
20
  def assets_with_deactivated_leases
18
- ActiveFedora::Base.where('lease_history_ssim:*')
21
+ builder = CurationConcerns::DeactivatedLeaseSearchBuilder.new(self)
22
+ presenters(builder)
19
23
  end
24
+
25
+ private
26
+
27
+ def presenter_class
28
+ CurationConcerns::LeasePresenter
29
+ end
20
30
  end
21
31
  end
22
32
  end
23
-
@@ -0,0 +1,19 @@
1
+ module CurationConcerns
2
+ class ParentService
3
+ # @param [String] the id of a child GenericFile
4
+ # @return [ActiveFedora::Base] the parent object
5
+ def self.parent_for(id)
6
+ ids = ordered_by_ids(id)
7
+ ActiveFedora::Base.find(ordered_by_ids(id).first) if ids.present?
8
+ end
9
+
10
+ def self.ordered_by_ids(id)
11
+ if id.present?
12
+ ActiveFedora::SolrService.query("{!join from=proxy_in_ssi to=id}ordered_targets_ssim:#{id}")
13
+ .map { |x| x["id"] }
14
+ else
15
+ []
16
+ end
17
+ end
18
+ end
19
+ end
@@ -0,0 +1,24 @@
1
+ module CurationConcerns
2
+ class RestrictionService
3
+ class << self
4
+ private
5
+
6
+ def presenter_class
7
+ raise "RestrictionService is an Abstract class and should be extended. Implement presenter_class in the subclass"
8
+ end
9
+
10
+ def presenters(builder)
11
+ response = repository.search(builder)
12
+ response.documents.map { |d| presenter_class.new(d) }
13
+ end
14
+
15
+ def repository
16
+ config.repository
17
+ end
18
+
19
+ def config
20
+ @config ||= ::CatalogController.new
21
+ end
22
+ end
23
+ end
24
+ end
@@ -0,0 +1,14 @@
1
+ module RightsService
2
+ mattr_accessor :authority
3
+ self.authority = Qa::Authorities::Local.subauthority_for('rights')
4
+
5
+ def self.select_options
6
+ authority.all.map do |element|
7
+ [element[:label], element[:id]]
8
+ end
9
+ end
10
+
11
+ def self.label(id)
12
+ authority.find(id).fetch('term')
13
+ end
14
+ end
@@ -11,7 +11,7 @@
11
11
  <%= button_for_remove_from_collection(document) %>
12
12
  <% else %>
13
13
  <%= link_to [collections, document], class: 'itemicon itemtrash', title: 'Delete Collection', method: :delete, data: {
14
- confirm: "Deleting a collection from #{t('sufia.product_name')} is permanent. Click OK to delete this collection from #{t('sufia.product_name')}, or Cancel to cancel this operation" } do %>
14
+ confirm: "Deleting a collection from #{t('curation_concerns.product_name')} is permanent. Click OK to delete this collection from #{t('curation_concerns.product_name')}, or Cancel to cancel this operation" } do %>
15
15
  <i class="glyphicon glyphicon-trash"></i> Delete <%= document.human_readable_type %>
16
16
  <% end %>
17
17
  <% end %>
@@ -7,11 +7,13 @@
7
7
  <% end %>
8
8
  </li>
9
9
  <li>
10
- <% if @collection # We're on the view page for @collection. -%>
10
+ <% if @collection || (@presenter and @presenter.collection?) # We're on the view page for @collection. -%>
11
11
  <%= link_to_remove_from_collection(document) %>
12
12
  <% else %>
13
- <%= link_to [:curation_concerns, document], class: 'itemicon itemtrash', title: 'Delete Collection', method: :delete, data: {
14
- confirm: "Deleting a collection from #{t('curation_concerns.product_name')} is permanent. Click OK to delete this collection from #{t('curation_concerns.product_name')}, or Cancel to cancel this operation" } do %>
13
+ <%= link_to [:curation_concerns, document], class: 'itemicon itemtrash',
14
+ title: "Delete #{document.human_readable_type}", method: :delete,
15
+ data: {
16
+ confirm: "Deleting a #{document.human_readable_type} from #{t('curation_concerns.product_name')} is permanent. Click OK to delete this #{document.human_readable_type} from #{t('curation_concerns.product_name')}, or Cancel to cancel this operation" } do %>
15
17
  <i class="glyphicon glyphicon-trash"></i> Delete <%= document.human_readable_type %>
16
18
  <% end %>
17
19
  <% end %>
@@ -1,5 +1,5 @@
1
1
  <h3 id="document-list-heading" class="accessible-hidden">List of files deposited in <%= t('curation_concerns.product_name') %> that match your search criteria</h3>
2
2
  <ol id="documents" class="container-fluid search-results-list" start="<%= document_counter_with_offset(0) %>" aria-labeled-by="document-list-heading">
3
3
  <%= render documents, as: :document %>
4
- </ul>
4
+ </ol>
5
5
 
@@ -9,39 +9,5 @@
9
9
  <% end %>
10
10
 
11
11
  <div id="content">
12
-
13
- <% unless has_search_parameters? %>
14
- <%# if there are no input/search related params, display the "home" partial -%>
15
- <%= render 'home' %>
16
- <% else %>
17
-
18
- <h2 class="sr-only top-content-title"><%= t('blacklight.search.search_results_header') %></h2>
19
-
20
- <% @page_title = t('blacklight.search.title', :application_name => application_name) %>
21
-
22
-
23
- <% provide(:head) do -%>
24
- <%= render_opensearch_response_metadata %>
25
- <%= auto_discovery_link_tag(:rss, url_for(params.merge(:format => 'rss')), :title => t('blacklight.search.rss_feed') ) %>
26
- <%= auto_discovery_link_tag(:atom, url_for(params.merge(:format => 'atom')), :title => t('blacklight.search.atom_feed') ) %>
27
- <% end -%>
28
-
29
-
30
- <%= render 'search_header' %>
31
-
32
- <h2 class="sr-only"><%= t('blacklight.search.search_results') %></h2>
33
-
34
- <%- if @response.empty? %>
35
- <%= render "zero_results" %>
36
- <%- elsif render_grouped_response? %>
37
- <%= render_grouped_document_index %>
38
- <%- else %>
39
- <%= render_document_index %>
40
- <%- end %>
41
-
42
- <%= render 'results_pagination' %>
43
-
44
-
45
- <% end %>
46
-
12
+ <%= render 'search_results' %>
47
13
  </div>
@@ -1,4 +1,4 @@
1
- <%# This mimics the generic_files/descriptions partial & re-uses some of its sub-partials %>
1
+ <%# This mimics the file_sets/descriptions partial & re-uses some of its sub-partials %>
2
2
  <div id="descriptions_display" class="tab-pane active">
3
3
  <%= form_for collection, url: collections.collection_path, html: {multipart: true, class: 'form-horizontal'} do |f| %>
4
4
  <%= hidden_field_tag('redirect_tab', 'descriptions') %>
@@ -6,13 +6,12 @@
6
6
  <div class="well">
7
7
 
8
8
  <% (collection.terms_for_editing).each do |term| %>
9
- <%= render partial: "generic_files/field_form", locals: { generic_file: collection, f: f, render_req: true, key: term } %>
9
+ <%= render partial: "file_sets/field_form", locals: { file_set: collection, f: f, render_req: true, key: term } %>
10
10
  <% end %>
11
-
12
11
  </div><!-- /well -->
13
12
  <div class="row">
14
13
  <div class="form-actions">
15
- <%= f.button '<i class="icon-save"></i> Save Descriptions'.html_safe, type: 'submit', class: 'btn-primary',
14
+ <%= f.button '<i class="icon-save"></i> Save Descriptions'.html_safe, type: 'submit', class: 'btn-primary',
16
15
  onclick: "confirmation_needed = false;", id: "upload_submit", name: "update_descriptions" %>
17
16
  </div>
18
17
  </div>
@@ -10,7 +10,7 @@
10
10
  <%= render 'form_descriptive_fields', curation_concern: @collection, f: f %>
11
11
  <%= render 'form_permission', f: f %>
12
12
 
13
- <%= render "form_representative_image", curation_concern: @collection, f: f %>
13
+ <%= render "curation_concerns/base/form_representative_image", f: f %>
14
14
 
15
15
  <div class="row">
16
16
  <div class="col-md-12 form-actions">
@@ -24,7 +24,7 @@
24
24
  </label>
25
25
  <label class="radio">
26
26
  <input type="radio" id="visibility_registered" name="<%= f.object_name %>[visibility]" value="<%= Hydra::AccessControls::AccessRight::VISIBILITY_TEXT_VALUE_AUTHENTICATED %>" <% if @collection.authenticated_only_access? %> checked="true"<% end %> />
27
- <span class="label label-info"><%=t('sufia.institution_name') %></span> Visible to all <%=t('sufia.institution_name') %> users.
27
+ <span class="label label-info"><%=t('curation_concerns.institution_name') %></span> Visible to all <%=t('curation_concerns.institution_name') %> users.
28
28
  </label>
29
29
  <label class="radio">
30
30
  <input type="radio" id="visibility_restricted" name="<%= f.object_name %>[visibility]" value="<%= Hydra::AccessControls::AccessRight::VISIBILITY_TEXT_VALUE_PRIVATE%>" <% if @collection.private_access? %> checked="true"<% end %>/>
@@ -0,0 +1,10 @@
1
+ <div style="float: right;" >
2
+ <%= form_for [collections, @presenter], method: :get, class: "well form-search" do |f| %>
3
+
4
+ <label class="accessible-hidden">Search Collection <%= @presenter.title %></label>
5
+ <%= text_field_tag :cq, params[:cq], class: "collection-query", placeholder: "Search Collection", size: '30', type: "search", id: "collection_search" %>
6
+ <%= hidden_field_tag :sort, params[:sort], id: 'collection_sort' %>
7
+ <%= render_hash_as_hidden_fields(params_for_search.except(:cq, :sort, :qt, :page)).html_safe %>
8
+ <button type="submit" class="btn btn-primary" id="collection_submit"><i class="icon-search"></i> Go</button>
9
+ <% end %>
10
+ </div>
@@ -1,8 +1,8 @@
1
- <% if can? :edit, @collection %>
1
+ <% if can? :edit, @presenter.id %>
2
2
  <h2 class="non lower">Actions</h2>
3
3
  <p>
4
- <%= link_to "Edit", collections.edit_collection_path, class: 'btn btn-primary' %> &nbsp;&nbsp;
5
- <%= link_to "Add files from your dashboard", search_path_for_my_works, class: 'btn btn-primary' %>
4
+ <%= link_to "Edit", collections.edit_collection_path, class: 'btn btn-default' %> &nbsp;&nbsp;
5
+ <%= link_to "Add files from your dashboard", search_path_for_my_works, class: 'btn btn-default' %>
6
6
  </p>
7
7
  <%end %>
8
8
 
@@ -6,13 +6,13 @@
6
6
  <% if params[:action] == "edit" %>
7
7
  <div class="batch-toggle">
8
8
  <% session[:batch_edit_state] = "on" %>
9
- <%= button_for_remove_selected_from_collection @collection %>
9
+ <%= button_for_remove_selected_from_collection @presenter %>
10
10
  </div>
11
11
  <%end %>
12
12
  <div class="sort-toggle">
13
13
  <%-# kind of hacky way to get this to work on catalog and folder controllers. May be able to simple do {:action=>"index"} but I'm not sure -%>
14
14
  <% unless @response.response['numFound'] < 2 %>
15
- <%= form_tag collections.collection_path(@collection), method: :get, class: 'per_page form-inline' do %>
15
+ <%= form_tag collections.collection_path(@presenter), method: :get, class: 'per_page form-inline' do %>
16
16
  <%= label_tag(:sort, "<span>Sort By:</span>".html_safe) %>
17
17
  <%= select_tag(:sort, options_for_select(sort_fields, h(params[:sort]))) %>
18
18
  &nbsp;&nbsp;&nbsp;
@@ -1,17 +1,17 @@
1
- <% @page_title = "#{@collection.title} - #{application_name}" %>
1
+ <% @page_title = "#{@presenter.title} - #{application_name}" %>
2
2
 
3
- <h1 class="lower"><%= @collection.title %></h1>
3
+ <h1 class="lower"><%= @presenter.title %></h1>
4
4
 
5
- <%= render partial: 'curation_concerns/base/representative_media', locals: {work: @collection} %>
5
+ <%= render 'curation_concerns/base/representative_media', work: @presenter %>
6
6
 
7
- <h3><%=@collection.description%> </h3>
7
+ <h3><%= @presenter.description %> </h3>
8
8
 
9
9
  <% unless has_collection_search_parameters? %>
10
10
  <%= render partial: 'collections/show_actions' %>
11
- <%= render 'attributes', curation_concern: @collection %>
11
+ <%= render 'attributes', curation_concern: @presenter %>
12
12
  <% end %>
13
13
 
14
- <%= render partial: 'search_form'%>
14
+ <%= render 'search_form' %>
15
15
  <%= render 'sort_and_per_page' %>
16
16
 
17
17
  <% if has_collection_search_parameters? %>
@@ -0,0 +1,7 @@
1
+ <%= @presenter.attribute_to_html(:description) %>
2
+ <%= @presenter.attribute_to_html(:creator, catalog_search_link: true ) %>
3
+ <%= @presenter.attribute_to_html(:contributor, label: 'Contributors', catalog_search_link: true) %>
4
+ <%= @presenter.attribute_to_html(:subject, catalog_search_link: true) %>
5
+ <%= @presenter.attribute_to_html(:publisher) %>
6
+ <%= @presenter.attribute_to_html(:language) %>
7
+
@@ -1,25 +1,18 @@
1
- <table class="table table-striped <%= dom_class(curation_concern) %> attributes">
1
+ <table class="table table-striped <%= dom_class(@presenter) %> attributes">
2
2
  <caption class="table-heading"><h2>Attributes</h2></caption>
3
3
  <thead>
4
4
  <tr><th>Attribute Name</th><th>Values</th></tr>
5
5
  </thead>
6
6
  <tbody>
7
- <%= curation_concern_attribute_to_html(curation_concern, :description, 'Abstract') %>
8
- <%= curation_concern_attribute_to_html(curation_concern, :creator, 'Creator', { catalog_search_link: true }) %>
9
- <%= curation_concern_attribute_to_html(curation_concern, :contributor, 'Contributors', { catalog_search_link: true }) %>
10
- <%= curation_concern_attribute_to_html(curation_concern, :subject, "Subject", { catalog_search_link: true }) %>
11
- <%= curation_concern_attribute_to_html(curation_concern, :publisher, "Publisher") %>
12
- <%#= curation_concern_attribute_to_html(curation_concern, :bibliographic_citation, "Bibliographic Citation") %>
13
- <%#= curation_concern_attribute_to_html(curation_concern, :source, "Source") %>
14
- <%= curation_concern_attribute_to_html(curation_concern, :language, "Language") %>
7
+ <%= render 'attribute_rows' %>
15
8
  <tr>
16
9
  <th>Access Rights</th>
17
10
  <td>
18
- <%= permission_badge_for(curation_concern) %>
11
+ <%= @presenter.permission_badge %>
19
12
  </td>
20
13
  </tr>
21
- <%= curation_concern_attribute_to_html(curation_concern, :embargo_release_date, "Embargo Release Date") %>
22
- <%= curation_concern_attribute_to_html(curation_concern, :lease_expiration_date, "Lease Expiration Date") %>
23
- <%= curation_concern_attribute_to_html(curation_concern, :rights, "Content License") %>
14
+ <%= @presenter.attribute_to_html(:embargo_release_date) %>
15
+ <%= @presenter.attribute_to_html(:lease_expiration_date) %>
16
+ <%= @presenter.attribute_to_html(:rights) %>
24
17
  </tbody>
25
18
  </table>
@@ -1,5 +1,5 @@
1
- <%= simple_form_for [main_app, :curation_concerns, curation_concern] do |f| %>
2
-
1
+ <%= simple_form_for [main_app, :curation_concerns, curation_concern],
2
+ wrapper_mappings: { multifile: :horizontal_file_input } do |f| %>
3
3
  <% if f.error_notification -%>
4
4
  <div class="alert alert-danger fade in">
5
5
  <strong>Wait don't go!</strong> There was a problem with your submission. Please review the errors below:
@@ -7,9 +7,8 @@
7
7
  </div>
8
8
  <% end -%>
9
9
 
10
- <%= render 'form_descriptive_fields', curation_concern: curation_concern, f: f %>
11
-
12
- <%= render 'form_supplementary_fields', curation_concern: curation_concern, f: f %>
10
+ <%= render 'form_descriptive_fields', f: f %>
11
+ <%= render 'form_supplementary_fields', f: f %>
13
12
 
14
13
  <div class="row">
15
14
  <div class="col-md-12 form-actions">
@@ -1,11 +1,9 @@
1
1
  <div class="row">
2
2
  <div class="col-md-6" id="required-information">
3
- <%= render "form_required_information", curation_concern: curation_concern, f: f %>
3
+ <%= render "form_required_information", f: f %>
4
4
  </div>
5
5
 
6
- <%# render 'form_editors', f: f %>
7
-
8
6
  <div class="col-md-6" id="additional-information">
9
- <%= render "form_additional_information", curation_concern: curation_concern, f: f %>
7
+ <%= render "form_additional_information", f: f %>
10
8
  </div>
11
9
  </div>
@@ -1,4 +1,4 @@
1
- <% unless curation_concern.persisted? %>
1
+ <% unless f.object.persisted? %>
2
2
  <fieldset id="work-contents">
3
3
  <div class="row with-headroom">
4
4
  <div class="span12">
@@ -7,17 +7,15 @@
7
7
  </legend>
8
8
 
9
9
  <p class="help-block">
10
- The subject of your <%= curation_concern.human_readable_type.downcase %> can either be a file <em>or</em> a URL.
10
+ The subject of your <%= f.object.human_readable_type.downcase %> can either be a file <em>or</em> a URL.
11
11
  </p>
12
12
  </div>
13
13
  </div>
14
14
 
15
15
  <div class="row">
16
-
17
16
  <fieldset class="col-md-5">
18
- <%= f.input :files, as: :file, label: 'Upload a file', hint: 'A PDF is preferred.'%>
17
+ <%= f.input :files, as: :multifile %>
19
18
  </fieldset>
20
-
21
19
  </div>
22
20
  </fieldset>
23
21
  <% end %>
@@ -1,7 +1,8 @@
1
- <% if curation_concern.embargo_release_date %>
2
- <%= render 'form_permission_under_embargo', curation_concern: curation_concern, f: f %>
3
- <% elsif curation_concern.lease_expiration_date %>
4
- <%= render 'form_permission_under_lease', curation_concern: curation_concern, f: f %>
1
+ <% # This is used by works and by FileSet and the layout (col-6 vs col-12) is different for both %>
2
+ <% if f.object.embargo_release_date %>
3
+ <%= render 'form_permission_under_embargo', f: f %>
4
+ <% elsif f.object.lease_expiration_date %>
5
+ <%= render 'form_permission_under_lease', f: f %>
5
6
  <% else %>
6
7
  <fieldset id="set-access-controls">
7
8
  <legend>
@@ -9,41 +10,27 @@
9
10
  <small>Who should be able to view or download this content?</small>
10
11
  </legend>
11
12
 
12
- <section class="help-block">
13
- <p>
14
- <strong>Please note</strong>, making something visible to the world (i.e.
15
- marking this as <span class="label label-success">Open Access</span>) may be
16
- viewed as publishing which could impact your ability to:
17
- </p>
18
- <ul>
19
- <li>Patent your work</li>
20
- <li>Publish your work in a journal</li>
21
- </ul>
22
- <p>
23
- Check out <a href="http://www.sherpa.ac.uk/romeo/">SHERPA/RoMEO</a> for more
24
- information about publisher copyright policies.
25
- </p>
26
- </section>
13
+ <%= render "form_permission_note" %>
27
14
 
28
15
  <div class="form-group">
29
16
  <label class="radio">
30
- <input type="radio" id="visibility_open" name="<%= f.object_name %>[visibility]" value="<%= Hydra::AccessControls::AccessRight::VISIBILITY_TEXT_VALUE_PUBLIC %>" <% if curation_concern.open_access? %> checked="true"<% end %>/>
17
+ <input type="radio" id="visibility_open" name="<%= f.object_name %>[visibility]" value="<%= Hydra::AccessControls::AccessRight::VISIBILITY_TEXT_VALUE_PUBLIC %>" <% if f.object.open_access? %> checked="true"<% end %>/>
31
18
  <span class="label label-success">Open Access</span> Visible to the world.
32
19
  </label>
33
20
  <label class="radio">
34
- <input type="radio" id="visibility_registered" name="<%= f.object_name %>[visibility]" value="<%= Hydra::AccessControls::AccessRight::VISIBILITY_TEXT_VALUE_AUTHENTICATED %>" <% if curation_concern.authenticated_only_access? %> checked="true"<% end %> />
21
+ <input type="radio" id="visibility_registered" name="<%= f.object_name %>[visibility]" value="<%= Hydra::AccessControls::AccessRight::VISIBILITY_TEXT_VALUE_AUTHENTICATED %>" <% if f.object.authenticated_only_access? %> checked="true"<% end %> />
35
22
  <span class="label label-info"><%=t('curation_concerns.institution.name') %></span> Visible to all <%=t('curation_concerns.institution.name') %> users.
36
23
  </label>
37
24
  <label class="radio">
38
- <input type="radio" id="visibility_embargo" name="<%= f.object_name %>[visibility]" value="<%= Hydra::AccessControls::AccessRight::VISIBILITY_TEXT_VALUE_EMBARGO %>" <% if curation_concern.open_access_with_embargo_release_date? %> checked="true"<% end %>/>
39
- <%= render "form_permission_embargo", curation_concern: curation_concern, f: f %>
25
+ <input type="radio" id="visibility_embargo" name="<%= f.object_name %>[visibility]" value="<%= Hydra::AccessControls::AccessRight::VISIBILITY_TEXT_VALUE_EMBARGO %>" <% if f.object.open_access_with_embargo_release_date? %> checked="true"<% end %>/>
26
+ <%= render "form_permission_embargo", f: f %>
40
27
  </label>
41
28
  <label class="radio">
42
- <input type="radio" id="visibility_lease" name="<%= f.object_name %>[visibility]" value="lease" <% if curation_concern.open_access_with_embargo_release_date? %> checked="true"<% end %>/>
43
- <%= render "form_permission_lease", curation_concern: curation_concern, f: f %>
29
+ <input type="radio" id="visibility_lease" name="<%= f.object_name %>[visibility]" value="lease" <% if f.object.open_access_with_embargo_release_date? %> checked="true"<% end %>/>
30
+ <%= render "form_permission_lease", f: f %>
44
31
  </label>
45
32
  <label class="radio">
46
- <input type="radio" id="visibility_restricted" name="<%= f.object_name %>[visibility]" value="<%= Hydra::AccessControls::AccessRight::VISIBILITY_TEXT_VALUE_PRIVATE%>" <% if curation_concern.private_access? %> checked="true"<% end %>/>
33
+ <input type="radio" id="visibility_restricted" name="<%= f.object_name %>[visibility]" value="<%= Hydra::AccessControls::AccessRight::VISIBILITY_TEXT_VALUE_PRIVATE%>" <% if f.object.private_access? %> checked="true"<% end %>/>
47
34
  <span class="label label-danger">Private</span> Only visible to you and your delegates.
48
35
  </label>
49
36
  </div>
@@ -0,0 +1,15 @@
1
+ <section class="help-block">
2
+ <p>
3
+ <strong>Please note</strong>, making something visible to the world (i.e.
4
+ marking this as <span class="label label-success">Open Access</span>) may be
5
+ viewed as publishing which could impact your ability to:
6
+ </p>
7
+ <ul>
8
+ <li>Patent your work</li>
9
+ <li>Publish your work in a journal</li>
10
+ </ul>
11
+ <p>
12
+ Check out <a href="http://www.sherpa.ac.uk/romeo/">SHERPA/RoMEO</a> for more
13
+ information about publisher copyright policies.
14
+ </p>
15
+ </section>
@@ -6,11 +6,11 @@
6
6
 
7
7
  <section class="help-block">
8
8
  <p>
9
- <strong>This work is under embargo.</strong> You can change the settings of the embargo here, or you can visit the <%= link_to 'Embargo Management Page', main_app.edit_embargo_path(curation_concern) %> to deactivate it.
9
+ <strong>This work is under embargo.</strong> You can change the settings of the embargo here, or you can visit the <%= link_to 'Embargo Management Page', main_app.edit_embargo_path(f.object) %> to deactivate it.
10
10
  </p>
11
11
  </section>
12
12
 
13
13
  <input type="hidden" name="<%= f.object_name %>[visibility]" value="<%= Hydra::AccessControls::AccessRight::VISIBILITY_TEXT_VALUE_EMBARGO %>" />
14
- <%= render "form_permission_embargo", curation_concern: curation_concern, f: f %>
14
+ <%= render "form_permission_embargo", f: f %>
15
15
 
16
16
  </fieldset>
@@ -6,13 +6,13 @@
6
6
 
7
7
  <section class="help-block">
8
8
  <p>
9
- <strong>This work is under lease.</strong> You can change the settings of the lease here, or you can visit the <%= link_to 'Lease Management Page', main_app.edit_lease_path(curation_concern) %> to deactivate it.
9
+ <strong>This work is under lease.</strong> You can change the settings of the lease here, or you can visit the <%= link_to 'Lease Management Page', main_app.edit_lease_path(f.object) %> to deactivate it.
10
10
  </p>
11
11
  </section>
12
12
 
13
13
  <div class="form-group">
14
14
  <input type="hidden" name="<%= f.object_name %>[visibility]" value="<%= Hydra::AccessControls::AccessRight::VISIBILITY_TEXT_VALUE_LEASE %>" />
15
- <%= render "form_permission_lease", curation_concern: curation_concern, f: f %>
15
+ <%= render "form_permission_lease", f: f %>
16
16
  </div>
17
17
 
18
18
  </fieldset>
@@ -1,12 +1,24 @@
1
- <% if curation_concern.persisted? && curation_concern.generic_files.present? %>
1
+ <% if f.object.persisted? && f.object.member_ids.present? %>
2
+ <div class="row">
3
+ <div class="col-md-12">
4
+ <fieldset id="representative-media">
5
+ <legend>
6
+ Representative Media
7
+ </legend>
8
+ <p>Select the file with media that represents this <%= f.object.human_readable_type %>.</p>
9
+ <%= f.select :representative_id, @form.select_files, {}, { class: 'form-control' } %>
10
+ </fieldset>
11
+ </div>
12
+ </div>
13
+
2
14
  <div class="row">
3
15
  <div class="col-md-12">
4
16
  <fieldset id="representative-image">
5
17
  <legend>
6
- Assign a Thumbnail
18
+ Thumbnail
7
19
  </legend>
8
- <p>Select the file whose thumbnail should represent this <%= curation_concern.human_readable_type %>.</p>
9
- <%= f.select( :representative, Hash[ curation_concern.generic_files.map {|file| [file.title.first, file.id] } ],{}, { class: 'form-control' } ) %>
20
+ <p>Select the file to be used as the thumbnail for this <%= f.object.human_readable_type %>.</p>
21
+ <%= f.select :thumbnail_id, @form.select_files, {}, { class: 'form-control' } %>
10
22
  </fieldset>
11
23
  </div>
12
24
  </div>
@@ -0,0 +1,17 @@
1
+ <div class="row with-headroom">
2
+ <div class="col-md-12">
3
+ <fieldset id="set-license">
4
+ <legend>Choose a License for your Content</legend>
5
+ <p>
6
+ What do you want others to be able to do with your work?
7
+ </p>
8
+ <p>
9
+ <a href="http://creativecommons.org/licenses/" target="_blank">Here's some help</a> if you don't know which license to choose.
10
+ </p>
11
+
12
+ <%= f.input :rights, as: :select,
13
+ collection: RightsService.select_options,
14
+ input_html: { class: 'form-control' } %>
15
+ </fieldset>
16
+ </div>
17
+ </div>
@@ -1,15 +1,10 @@
1
- <%= render "form_files_and_links", curation_concern: curation_concern, f: f %>
2
-
3
- <%= render "form_representative_image", curation_concern: curation_concern, f: f %>
1
+ <%= render "form_files_and_links", f: f %>
2
+ <%= render "form_representative_image", f: f %>
4
3
 
5
4
  <div class="row with-headroom">
6
5
  <div class="col-md-12">
7
- <%= render "form_permission", curation_concern: curation_concern, f: f %>
6
+ <%= render "form_permission", f: f %>
8
7
  </div>
9
8
  </div>
10
9
 
11
- <div class="row with-headroom">
12
- <div class="col-md-12">
13
- <%= render "form_content_license", curation_concern: curation_concern, f: f %>
14
- </div>
15
- </div>
10
+ <%= render "form_rights", f: f %>