curate 0.6.5 → 0.6.6

Sign up to get free protection for your applications and to get access to all the features.
Files changed (431) hide show
  1. checksums.yaml +4 -4
  2. data/Rakefile +9 -0
  3. data/app/assets/javascripts/curate.js +2 -0
  4. data/app/assets/javascripts/curate/link_groups.js.coffee +123 -0
  5. data/app/assets/javascripts/curate/link_users.js.coffee +29 -10
  6. data/app/assets/stylesheets/curate.css.scss +1 -0
  7. data/app/assets/stylesheets/curate/linkedGroups.css.scss +16 -0
  8. data/app/assets/stylesheets/curate/linkedUsers.css.scss +4 -0
  9. data/app/assets/stylesheets/modules.scss +2 -1
  10. data/app/assets/stylesheets/modules/forms.css.scss +5 -0
  11. data/app/assets/stylesheets/modules/profile.css.scss +51 -0
  12. data/app/controllers/catalog_controller.rb +37 -7
  13. data/app/controllers/curate/collections_controller.rb +15 -0
  14. data/app/controllers/curate/people_controller.rb +17 -4
  15. data/app/controllers/curation_concern/generic_works_controller.rb +26 -2
  16. data/app/controllers/curation_concern/linked_resources_controller.rb +1 -1
  17. data/app/controllers/curation_concern/permissions_controller.rb +2 -1
  18. data/app/controllers/hydramata/groups_controller.rb +119 -0
  19. data/app/controllers/registrations_controller.rb +33 -0
  20. data/app/controllers/users_controller.rb +23 -0
  21. data/app/helpers/curate/catalog_helper.rb +14 -0
  22. data/app/helpers/curate/collections_helper.rb +20 -9
  23. data/app/helpers/curate_helper.rb +12 -5
  24. data/app/helpers/hydramata/groups_helper.rb +12 -0
  25. data/app/models/account.rb +17 -0
  26. data/app/models/concerns/curate/ability.rb +1 -5
  27. data/app/models/curate/user_behavior/base.rb +6 -5
  28. data/app/repository_datastreams/group_metadata_datastream.rb +20 -0
  29. data/app/repository_models/collection.rb +49 -1
  30. data/app/repository_models/curation_concern/model.rb +5 -1
  31. data/app/repository_models/curation_concern/with_generic_files.rb +4 -3
  32. data/app/repository_models/curation_concern/work.rb +38 -1
  33. data/app/repository_models/curation_concern/work_permission.rb +54 -0
  34. data/app/repository_models/hydramata/group.rb +87 -0
  35. data/app/repository_models/hydramata/group_membership_form.rb +72 -0
  36. data/app/repository_models/person.rb +37 -1
  37. data/app/repository_models/profile_section.rb +0 -1
  38. data/app/services/curation_concern/work_permission_action_parser.rb +78 -0
  39. data/app/services/hydramata/group_membership_action_parser.rb +65 -0
  40. data/app/views/catalog/_facets.html.erb +3 -1
  41. data/app/views/catalog/index.html.erb +3 -0
  42. data/app/views/curate/collections/_form.html.erb +10 -0
  43. data/app/views/curate/collections/show.html.erb +1 -0
  44. data/app/views/curate/people/_profile_image.html.erb +2 -2
  45. data/app/views/curate/people/show.html.erb +46 -34
  46. data/app/views/curation_concern/articles/_attributes.html.erb +1 -0
  47. data/app/views/curation_concern/base/_form.html.erb +1 -0
  48. data/app/views/curation_concern/base/_form_descriptive_fields.erb +9 -0
  49. data/app/views/curation_concern/base/_linked_editors.html.erb +47 -0
  50. data/app/views/curation_concern/base/_linked_groups.html.erb +45 -0
  51. data/app/views/curation_concern/base/_persons_edit_access.html.erb +44 -0
  52. data/app/views/curation_concern/documents/_attributes.html.erb +1 -0
  53. data/app/views/curation_concern/etds/_attributes.html.erb +1 -0
  54. data/app/views/curation_concern/etds/_form_descriptive_fields.erb +2 -0
  55. data/app/views/curation_concern/generic_works/_attributes.html.erb +1 -0
  56. data/app/views/{curate/organizations/_organization.html.erb → curation_concern/hydramata/groups/_group.html.erb} +6 -6
  57. data/app/views/curation_concern/images/_attributes.html.erb +1 -0
  58. data/app/views/curation_concern/images/_form_descriptive_fields.erb +2 -0
  59. data/app/views/hydramata/groups/_button_create_group.html.erb +1 -0
  60. data/app/views/{curate/organizations → hydramata/groups}/_document_list.html.erb +0 -0
  61. data/app/views/{curate/organizations → hydramata/groups}/_form.html.erb +28 -10
  62. data/app/views/hydramata/groups/_group.html.erb +24 -0
  63. data/app/views/hydramata/groups/_linked_members.html.erb +96 -0
  64. data/app/views/hydramata/groups/edit.html.erb +4 -0
  65. data/app/views/hydramata/groups/index.html.erb +11 -0
  66. data/app/views/{curate/organizations → hydramata/groups}/new.html.erb +1 -1
  67. data/app/views/hydramata/groups/show.html.erb +36 -0
  68. data/app/views/layouts/boilerplate.html.erb +1 -1
  69. data/app/views/registrations/_form_account_deactivation.html.erb +1 -1
  70. data/app/views/registrations/_form_attributes.html.erb +3 -5
  71. data/app/views/registrations/_form_password_management.html.erb +11 -9
  72. data/app/views/registrations/edit.html.erb +8 -5
  73. data/app/views/shared/_add_content.html.erb +1 -1
  74. data/app/views/shared/_my_actions.html.erb +1 -0
  75. data/lib/curate/configuration.rb +6 -0
  76. data/lib/curate/rails/routes.rb +7 -1
  77. data/lib/curate/spec_support.rb +1 -1
  78. data/lib/curate/version.rb +1 -1
  79. data/lib/generators/curate/application_template.rb +10 -2
  80. data/lib/generators/curate/curate_generator.rb +16 -0
  81. data/lib/generators/curate/predicate_mapping/predicate_mappings.yml +64 -0
  82. data/lib/generators/curate/search_config/search_config_generator.rb +177 -0
  83. data/lib/generators/curate/soft_delete/active_fedora_soft_delete_monkey_patch.rb +14 -4
  84. data/spec/abilities/generic_file_abilities_spec.rb +1 -0
  85. data/spec/abilities/generic_work_abilities_spec.rb +1 -0
  86. data/spec/controllers/catalog_controller_spec.rb +21 -0
  87. data/spec/controllers/curate/collections_controller_spec.rb +1 -1
  88. data/spec/controllers/curation_concern/linked_resources_controller_spec.rb +1 -1
  89. data/spec/controllers/curation_concern/permissions_controller_spec.rb +1 -1
  90. data/spec/controllers/hydamata/groups_controller_spec.rb +133 -0
  91. data/spec/factories/group_factory.rb +20 -0
  92. data/spec/features/article_spec.rb +3 -2
  93. data/spec/features/catalog_search_spec.rb +19 -2
  94. data/spec/features/collections_spec.rb +23 -7
  95. data/spec/features/dataset_spec.rb +3 -2
  96. data/spec/features/end_to_end_spec.rb +9 -8
  97. data/spec/features/etd_spec.rb +3 -2
  98. data/spec/features/generic_work_spec.rb +6 -3
  99. data/spec/features/image_spec.rb +3 -2
  100. data/spec/features/manager_profile_workflow_spec.rb +56 -0
  101. data/spec/features/person_profile_spec.rb +4 -4
  102. data/spec/features/user_profile_workflow_spec.rb +1 -7
  103. data/spec/fixtures/cassettes/remotely_identified_doi_mint_generic_work.yml +3 -3
  104. data/spec/fixtures/cassettes/remotely_identified_doi_mint_spam.yml +47 -0
  105. data/spec/helpers/curate/catalog_helper.rb +29 -0
  106. data/spec/internal/Gemfile +23 -4
  107. data/spec/internal/Gemfile.lock +410 -14
  108. data/spec/internal/app/assets/images/blacklight/bg.png +0 -0
  109. data/spec/internal/app/assets/images/blacklight/border.png +0 -0
  110. data/spec/internal/app/assets/images/blacklight/bul_sq_gry.gif +0 -0
  111. data/spec/internal/app/assets/images/blacklight/checkmark.gif +0 -0
  112. data/spec/internal/app/assets/images/blacklight/logo.png +0 -0
  113. data/spec/internal/app/assets/images/blacklight/magnifying_glass.gif +0 -0
  114. data/spec/internal/app/assets/images/blacklight/remove.gif +0 -0
  115. data/spec/internal/app/assets/images/blacklight/separator.gif +0 -0
  116. data/spec/internal/app/assets/images/blacklight/start_over.gif +0 -0
  117. data/spec/internal/app/assets/javascripts/application.js +4 -0
  118. data/spec/internal/app/assets/stylesheets/application.css +1 -0
  119. data/spec/internal/app/controllers/application_controller.rb +9 -0
  120. data/spec/internal/app/controllers/curation_concern/spams_controller.rb +6 -0
  121. data/spec/internal/app/models/ability.rb +20 -0
  122. data/spec/internal/app/models/solr_document.rb +38 -0
  123. data/spec/internal/app/models/user.rb +23 -0
  124. data/spec/internal/app/repository_datastreams/spam_rdf_datastream.rb +78 -0
  125. data/spec/internal/app/repository_models/spam.rb +47 -0
  126. data/spec/internal/app/services/curation_concern/spam_actor.rb +6 -0
  127. data/spec/internal/app/views/curation_concern/spams/_spam.html.erb +2 -0
  128. data/spec/internal/config/SolrMarc/config-test.properties +37 -0
  129. data/spec/internal/config/SolrMarc/config.properties +37 -0
  130. data/spec/internal/config/SolrMarc/index.properties +97 -0
  131. data/spec/internal/config/SolrMarc/index_scripts/dewey.bsh +47 -0
  132. data/spec/internal/config/SolrMarc/index_scripts/format.bsh +126 -0
  133. data/spec/internal/config/SolrMarc/translation_maps/README_MAPS +1 -0
  134. data/spec/internal/config/SolrMarc/translation_maps/callnumber_map.properties +407 -0
  135. data/spec/internal/config/SolrMarc/translation_maps/composition_era_map.properties +56 -0
  136. data/spec/internal/config/SolrMarc/translation_maps/country_map.properties +379 -0
  137. data/spec/internal/config/SolrMarc/translation_maps/format_map.properties +50 -0
  138. data/spec/internal/config/SolrMarc/translation_maps/instrument_map.properties +101 -0
  139. data/spec/internal/config/SolrMarc/translation_maps/language_map.properties +490 -0
  140. data/spec/internal/config/application.rb +6 -0
  141. data/spec/internal/config/doi.yml +5 -0
  142. data/spec/internal/config/environments/test.rb +2 -1
  143. data/spec/internal/config/fedora.yml +14 -0
  144. data/spec/internal/config/initializers/action_dispatch_http_upload_monkey_patch.rb +12 -0
  145. data/spec/internal/config/initializers/curate_config.rb +30 -0
  146. data/spec/internal/config/initializers/devise.rb +256 -0
  147. data/spec/internal/config/initializers/hydra-remote_identifier_config.rb +29 -0
  148. data/spec/internal/config/initializers/hydra_config.rb +28 -0
  149. data/spec/internal/config/initializers/mailboxer.rb +17 -0
  150. data/spec/internal/config/initializers/mime_types.rb +8 -1
  151. data/spec/internal/config/initializers/redis_config.rb +32 -0
  152. data/spec/internal/config/initializers/resque_admin.rb +10 -0
  153. data/spec/internal/config/initializers/resque_config.rb +5 -0
  154. data/spec/internal/config/initializers/secret_token.rb +1 -1
  155. data/spec/internal/config/initializers/sufia.rb +81 -0
  156. data/spec/internal/config/jetty.yml +5 -0
  157. data/spec/internal/config/locales/devise.en.yml +59 -0
  158. data/spec/internal/config/locales/en.yml +11 -20
  159. data/spec/internal/config/manager_usernames.yml +9 -0
  160. data/spec/internal/config/predicate_mappings.yml +64 -0
  161. data/spec/internal/config/recipients_list.yml +2 -0
  162. data/spec/internal/config/redis.yml +6 -0
  163. data/spec/internal/config/role_map_cucumber.yml +10 -0
  164. data/spec/internal/config/role_map_development.yml +12 -0
  165. data/spec/internal/config/role_map_production.yml +2 -0
  166. data/spec/internal/config/role_map_test.yml +15 -0
  167. data/spec/internal/config/routes.rb +8 -0
  168. data/spec/internal/config/search_config.yml +9 -0
  169. data/spec/internal/config/solr.yml +10 -0
  170. data/spec/internal/db/development.sqlite3 +0 -0
  171. data/spec/internal/db/migrate/20140328183252_devise_create_users.rb +42 -0
  172. data/spec/internal/db/migrate/20140328183257_add_devise_guests_to_users.rb +15 -0
  173. data/spec/internal/db/migrate/20140328183258_create_searches.rb +16 -0
  174. data/spec/internal/db/migrate/20140328183259_create_bookmarks.rb +18 -0
  175. data/spec/internal/db/migrate/20140328183260_remove_editable_fields_from_bookmarks.rb +12 -0
  176. data/spec/internal/db/migrate/20140328183261_add_user_types_to_bookmarks_searches.rb +16 -0
  177. data/spec/internal/db/migrate/20140328183262_acts_as_follower_migration.rb +17 -0
  178. data/spec/internal/db/migrate/20140328183263_add_social_to_users.rb +13 -0
  179. data/spec/internal/db/migrate/20140328183264_create_single_use_links.rb +12 -0
  180. data/spec/internal/db/migrate/20140328183265_add_ldap_attrs_to_user.rb +27 -0
  181. data/spec/internal/db/migrate/20140328183266_add_avatars_to_users.rb +9 -0
  182. data/spec/internal/db/migrate/20140328183267_create_checksum_audit_logs.rb +20 -0
  183. data/spec/internal/db/migrate/20140328183268_create_version_committers.rb +15 -0
  184. data/spec/internal/db/migrate/20140328183269_add_groups_to_users.rb +11 -0
  185. data/spec/internal/db/migrate/20140328183270_create_local_authorities.rb +50 -0
  186. data/spec/internal/db/migrate/20140328183271_create_trophies.rb +10 -0
  187. data/spec/internal/db/migrate/20140328183331_create_mailboxer.mailboxer_engine.rb +62 -0
  188. data/spec/internal/db/migrate/20140328183332_add_notified_object.mailboxer_engine.rb +18 -0
  189. data/spec/internal/db/migrate/20140328183333_add_notification_code.mailboxer_engine.rb +14 -0
  190. data/spec/internal/db/migrate/20140328183334_add_attachments.mailboxer_engine.rb +10 -0
  191. data/spec/internal/db/migrate/20140328183335_rename_receipts_read.mailboxer_engine.rb +10 -0
  192. data/spec/internal/db/migrate/20140328183336_add_global_notification_support.mailboxer_engine.rb +10 -0
  193. data/spec/internal/db/migrate/20140328183340_add_terms_of_service_to_user.curate_engine.rb +6 -0
  194. data/spec/internal/db/migrate/20140328183341_add_user_force_update_profile.curate_engine.rb +9 -0
  195. data/spec/internal/db/migrate/20140328183342_create_help_requests.curate_engine.rb +23 -0
  196. data/spec/internal/db/migrate/20140328183343_add_repository_id_to_user.curate_engine.rb +7 -0
  197. data/spec/internal/db/migrate/20140328183344_create_curate_proxy_deposit_rights.curate_engine.rb +12 -0
  198. data/spec/internal/db/migrate/20140328183345_change_display_name_to_name.curate_engine.rb +7 -0
  199. data/spec/internal/db/schema.rb +216 -1
  200. data/spec/internal/db/test.sqlite3 +0 -0
  201. data/spec/internal/fedora_conf/conf/development/fedora.fcfg +953 -0
  202. data/spec/internal/fedora_conf/conf/test/fedora.fcfg +953 -0
  203. data/spec/internal/lib/generators/test_app_generator.rb +23 -2
  204. data/spec/internal/log/development.log +322 -4
  205. data/spec/internal/log/test.log +117837 -0
  206. data/spec/internal/solr_conf/conf/schema.xml +273 -0
  207. data/spec/internal/solr_conf/conf/solrconfig.xml +167 -0
  208. data/spec/internal/solr_conf/solr.xml +35 -0
  209. data/spec/internal/spec/controllers/curation_concern/spams_controller_spec.rb +7 -0
  210. data/spec/internal/spec/factories/spams_factory.rb +40 -0
  211. data/spec/internal/spec/repository_models/spam_spec.rb +16 -0
  212. data/spec/internal/spec/services/curation_concern/spam_actor_spec.rb +7 -0
  213. data/spec/internal/test/models/user_test.rb +7 -0
  214. data/spec/internal/tmp/cache/assets/test/sass/0f223a129cc26de35ff59298da93dd57d598447a/_blacklight_base.css.scssc +0 -0
  215. data/spec/internal/tmp/cache/assets/test/sass/0f223a129cc26de35ff59298da93dd57d598447a/_bookmark.css.scssc +0 -0
  216. data/spec/internal/tmp/cache/assets/test/sass/0f223a129cc26de35ff59298da93dd57d598447a/_catalog.css.scssc +0 -0
  217. data/spec/internal/tmp/cache/assets/test/sass/0f223a129cc26de35ff59298da93dd57d598447a/_dropdown.css.scssc +0 -0
  218. data/spec/internal/tmp/cache/assets/test/sass/0f223a129cc26de35ff59298da93dd57d598447a/_facets.css.scssc +0 -0
  219. data/spec/internal/tmp/cache/assets/test/sass/0f223a129cc26de35ff59298da93dd57d598447a/_footer.css.scssc +0 -0
  220. data/spec/internal/tmp/cache/assets/test/sass/0f223a129cc26de35ff59298da93dd57d598447a/_group.css.scssc +0 -0
  221. data/spec/internal/tmp/cache/assets/test/sass/0f223a129cc26de35ff59298da93dd57d598447a/_header.css.scssc +0 -0
  222. data/spec/internal/tmp/cache/assets/test/sass/0f223a129cc26de35ff59298da93dd57d598447a/_layout.css.scssc +0 -0
  223. data/spec/internal/tmp/cache/assets/test/sass/0f223a129cc26de35ff59298da93dd57d598447a/_modal.css.scssc +0 -0
  224. data/spec/internal/tmp/cache/assets/test/sass/0f223a129cc26de35ff59298da93dd57d598447a/_print.css.scssc +0 -0
  225. data/spec/internal/tmp/cache/assets/test/sass/0f223a129cc26de35ff59298da93dd57d598447a/_responsive.css.scssc +0 -0
  226. data/spec/internal/tmp/cache/assets/test/sass/0f223a129cc26de35ff59298da93dd57d598447a/_search_history.css.scssc +0 -0
  227. data/spec/internal/tmp/cache/assets/test/sass/0f223a129cc26de35ff59298da93dd57d598447a/blacklight.css.scssc +0 -0
  228. data/spec/internal/tmp/cache/assets/test/sass/0f223a129cc26de35ff59298da93dd57d598447a/blacklight_defaults.css.scssc +0 -0
  229. data/spec/internal/tmp/cache/assets/test/sass/108fdfe10ba83060a2164fe91a5d70f57ff08f38/linkedGroups.css.scssc +0 -0
  230. data/spec/internal/tmp/cache/assets/test/sass/108fdfe10ba83060a2164fe91a5d70f57ff08f38/linkedUsers.css.scssc +0 -0
  231. data/spec/internal/tmp/cache/assets/test/sass/2c6be7e0f6fa11a075d87959732f91fde3df1f13/accessibility.css.scssc +0 -0
  232. data/spec/internal/tmp/cache/assets/test/sass/2c6be7e0f6fa11a075d87959732f91fde3df1f13/accordion.css.scssc +0 -0
  233. data/spec/internal/tmp/cache/assets/test/sass/2c6be7e0f6fa11a075d87959732f91fde3df1f13/attributes.css.scssc +0 -0
  234. data/spec/internal/tmp/cache/assets/test/sass/2c6be7e0f6fa11a075d87959732f91fde3df1f13/classify_work.css.scssc +0 -0
  235. data/spec/internal/tmp/cache/assets/test/sass/2c6be7e0f6fa11a075d87959732f91fde3df1f13/collections.css.scssc +0 -0
  236. data/spec/internal/tmp/cache/assets/test/sass/2c6be7e0f6fa11a075d87959732f91fde3df1f13/emphatic_action_area.css.scssc +0 -0
  237. data/spec/internal/tmp/cache/assets/test/sass/2c6be7e0f6fa11a075d87959732f91fde3df1f13/forms.css.scssc +0 -0
  238. data/spec/internal/tmp/cache/assets/test/sass/2c6be7e0f6fa11a075d87959732f91fde3df1f13/multi_value_fields.css.scssc +0 -0
  239. data/spec/internal/tmp/cache/assets/test/sass/2c6be7e0f6fa11a075d87959732f91fde3df1f13/pagination.css.scssc +0 -0
  240. data/spec/internal/tmp/cache/assets/test/sass/2c6be7e0f6fa11a075d87959732f91fde3df1f13/profile.css.scssc +0 -0
  241. data/spec/internal/tmp/cache/assets/test/sass/2c6be7e0f6fa11a075d87959732f91fde3df1f13/search_results.css.scssc +0 -0
  242. data/spec/internal/tmp/cache/assets/test/sass/2c6be7e0f6fa11a075d87959732f91fde3df1f13/site_actions.css.scssc +0 -0
  243. data/spec/internal/tmp/cache/assets/test/sass/2c6be7e0f6fa11a075d87959732f91fde3df1f13/site_search.css.scssc +0 -0
  244. data/spec/internal/tmp/cache/assets/test/sass/3540212d3e8f12f14e3d57e312ff13dc248a7b03/bootstrap-modal.cssc +0 -0
  245. data/spec/internal/tmp/cache/assets/test/sass/393de91b02495e7f60ccd919368de37af38618da/bootstrap-datepicker.cssc +0 -0
  246. data/spec/internal/tmp/cache/assets/test/sass/51b00c7d39146f73896d987722a019852fb2ca5e/_accordion.scssc +0 -0
  247. data/spec/internal/tmp/cache/assets/test/sass/51b00c7d39146f73896d987722a019852fb2ca5e/_alerts.scssc +0 -0
  248. data/spec/internal/tmp/cache/assets/test/sass/51b00c7d39146f73896d987722a019852fb2ca5e/_breadcrumbs.scssc +0 -0
  249. data/spec/internal/tmp/cache/assets/test/sass/51b00c7d39146f73896d987722a019852fb2ca5e/_button-groups.scssc +0 -0
  250. data/spec/internal/tmp/cache/assets/test/sass/51b00c7d39146f73896d987722a019852fb2ca5e/_buttons.scssc +0 -0
  251. data/spec/internal/tmp/cache/assets/test/sass/51b00c7d39146f73896d987722a019852fb2ca5e/_carousel.scssc +0 -0
  252. data/spec/internal/tmp/cache/assets/test/sass/51b00c7d39146f73896d987722a019852fb2ca5e/_close.scssc +0 -0
  253. data/spec/internal/tmp/cache/assets/test/sass/51b00c7d39146f73896d987722a019852fb2ca5e/_code.scssc +0 -0
  254. data/spec/internal/tmp/cache/assets/test/sass/51b00c7d39146f73896d987722a019852fb2ca5e/_component-animations.scssc +0 -0
  255. data/spec/internal/tmp/cache/assets/test/sass/51b00c7d39146f73896d987722a019852fb2ca5e/_dropdowns.scssc +0 -0
  256. data/spec/internal/tmp/cache/assets/test/sass/51b00c7d39146f73896d987722a019852fb2ca5e/_forms.scssc +0 -0
  257. data/spec/internal/tmp/cache/assets/test/sass/51b00c7d39146f73896d987722a019852fb2ca5e/_grid.scssc +0 -0
  258. data/spec/internal/tmp/cache/assets/test/sass/51b00c7d39146f73896d987722a019852fb2ca5e/_hero-unit.scssc +0 -0
  259. data/spec/internal/tmp/cache/assets/test/sass/51b00c7d39146f73896d987722a019852fb2ca5e/_labels-badges.scssc +0 -0
  260. data/spec/internal/tmp/cache/assets/test/sass/51b00c7d39146f73896d987722a019852fb2ca5e/_layouts.scssc +0 -0
  261. data/spec/internal/tmp/cache/assets/test/sass/51b00c7d39146f73896d987722a019852fb2ca5e/_media.scssc +0 -0
  262. data/spec/internal/tmp/cache/assets/test/sass/51b00c7d39146f73896d987722a019852fb2ca5e/_mixins.scssc +0 -0
  263. data/spec/internal/tmp/cache/assets/test/sass/51b00c7d39146f73896d987722a019852fb2ca5e/_modals.scssc +0 -0
  264. data/spec/internal/tmp/cache/assets/test/sass/51b00c7d39146f73896d987722a019852fb2ca5e/_navbar.scssc +0 -0
  265. data/spec/internal/tmp/cache/assets/test/sass/51b00c7d39146f73896d987722a019852fb2ca5e/_navs.scssc +0 -0
  266. data/spec/internal/tmp/cache/assets/test/sass/51b00c7d39146f73896d987722a019852fb2ca5e/_pager.scssc +0 -0
  267. data/spec/internal/tmp/cache/assets/test/sass/51b00c7d39146f73896d987722a019852fb2ca5e/_pagination.scssc +0 -0
  268. data/spec/internal/tmp/cache/assets/test/sass/51b00c7d39146f73896d987722a019852fb2ca5e/_popovers.scssc +0 -0
  269. data/spec/internal/tmp/cache/assets/test/sass/51b00c7d39146f73896d987722a019852fb2ca5e/_progress-bars.scssc +0 -0
  270. data/spec/internal/tmp/cache/assets/test/sass/51b00c7d39146f73896d987722a019852fb2ca5e/_reset.scssc +0 -0
  271. data/spec/internal/tmp/cache/assets/test/sass/51b00c7d39146f73896d987722a019852fb2ca5e/_responsive-1200px-min.scssc +0 -0
  272. data/spec/internal/tmp/cache/assets/test/sass/51b00c7d39146f73896d987722a019852fb2ca5e/_responsive-767px-max.scssc +0 -0
  273. data/spec/internal/tmp/cache/assets/test/sass/51b00c7d39146f73896d987722a019852fb2ca5e/_responsive-768px-979px.scssc +0 -0
  274. data/spec/internal/tmp/cache/assets/test/sass/51b00c7d39146f73896d987722a019852fb2ca5e/_responsive-navbar.scssc +0 -0
  275. data/spec/internal/tmp/cache/assets/test/sass/51b00c7d39146f73896d987722a019852fb2ca5e/_responsive-utilities.scssc +0 -0
  276. data/spec/internal/tmp/cache/assets/test/sass/51b00c7d39146f73896d987722a019852fb2ca5e/_scaffolding.scssc +0 -0
  277. data/spec/internal/tmp/cache/assets/test/sass/51b00c7d39146f73896d987722a019852fb2ca5e/_sprites.scssc +0 -0
  278. data/spec/internal/tmp/cache/assets/test/sass/51b00c7d39146f73896d987722a019852fb2ca5e/_tables.scssc +0 -0
  279. data/spec/internal/tmp/cache/assets/test/sass/51b00c7d39146f73896d987722a019852fb2ca5e/_thumbnails.scssc +0 -0
  280. data/spec/internal/tmp/cache/assets/test/sass/51b00c7d39146f73896d987722a019852fb2ca5e/_tooltip.scssc +0 -0
  281. data/spec/internal/tmp/cache/assets/test/sass/51b00c7d39146f73896d987722a019852fb2ca5e/_type.scssc +0 -0
  282. data/spec/internal/tmp/cache/assets/test/sass/51b00c7d39146f73896d987722a019852fb2ca5e/_utilities.scssc +0 -0
  283. data/spec/internal/tmp/cache/assets/test/sass/51b00c7d39146f73896d987722a019852fb2ca5e/_variables.scssc +0 -0
  284. data/spec/internal/tmp/cache/assets/test/sass/51b00c7d39146f73896d987722a019852fb2ca5e/_wells.scssc +0 -0
  285. data/spec/internal/tmp/cache/assets/test/sass/51b00c7d39146f73896d987722a019852fb2ca5e/bootstrap.scssc +0 -0
  286. data/spec/internal/tmp/cache/assets/test/sass/51b00c7d39146f73896d987722a019852fb2ca5e/responsive.scssc +0 -0
  287. data/spec/internal/tmp/cache/assets/test/sass/6a8f3b19bc293c20ed8d8faf81b13284c10818d6/_catalog.css.scssc +0 -0
  288. data/spec/internal/tmp/cache/assets/test/sass/6a8f3b19bc293c20ed8d8faf81b13284c10818d6/_facets.css.scssc +0 -0
  289. data/spec/internal/tmp/cache/assets/test/sass/6a8f3b19bc293c20ed8d8faf81b13284c10818d6/_header.css.scssc +0 -0
  290. data/spec/internal/tmp/cache/assets/test/sass/953d624c1831fcea22a3be549290f4c654726e96/positioning.css.scssc +0 -0
  291. data/spec/internal/tmp/cache/assets/test/sass/b95751effdfef9cdba38bc1d169b6196172155ed/theme.css.scssc +0 -0
  292. data/spec/internal/tmp/cache/assets/test/sass/b95751effdfef9cdba38bc1d169b6196172155ed/typography.css.scssc +0 -0
  293. data/spec/internal/tmp/cache/assets/test/sass/e653ebc579903efbaf96508ec20b97304a2a14a0/token-input-facebook.cssc +0 -0
  294. data/spec/internal/tmp/cache/assets/test/sass/e9808fc781dff3e3e7170d18d009c46cb33a75c5/curate.css.scssc +0 -0
  295. data/spec/internal/tmp/cache/assets/test/sass/e9808fc781dff3e3e7170d18d009c46cb33a75c5/global-variables.scssc +0 -0
  296. data/spec/internal/tmp/cache/assets/test/sass/e9808fc781dff3e3e7170d18d009c46cb33a75c5/modules.scssc +0 -0
  297. data/spec/internal/tmp/cache/assets/test/sass/ef004a21da8f6e485bf56e67090fd7b67164e2d4/bootstrap-responsive.scssc +0 -0
  298. data/spec/internal/tmp/cache/assets/test/sass/ef004a21da8f6e485bf56e67090fd7b67164e2d4/bootstrap.scssc +0 -0
  299. data/spec/internal/tmp/cache/assets/test/sprockets/022df81faa4bf7df68048b690ef7c85c +0 -0
  300. data/spec/internal/tmp/cache/assets/test/sprockets/04a9cbc691396f514e6b88c05724f9cc +0 -0
  301. data/spec/internal/tmp/cache/assets/test/sprockets/070263a383619079784e4ce15cf15443 +0 -0
  302. data/spec/internal/tmp/cache/assets/test/sprockets/091e4dfe4ed53798289eecba25675954 +0 -0
  303. data/spec/internal/tmp/cache/assets/test/sprockets/0b4f161bc175df6a24a070de15ef8070 +0 -0
  304. data/spec/internal/tmp/cache/assets/test/sprockets/0d6ccd45e1a5bb30040987a5817f5ca7 +0 -0
  305. data/spec/internal/tmp/cache/assets/test/sprockets/1114f56d5a4f05583b0351978456c150 +0 -0
  306. data/spec/internal/tmp/cache/assets/test/sprockets/13fe41fee1fe35b49d145bcc06610705 +0 -0
  307. data/spec/internal/tmp/cache/assets/test/sprockets/163665b72c8e98b0c88c19896f080bc4 +0 -0
  308. data/spec/internal/tmp/cache/assets/test/sprockets/169842bd6ce5ed610c32403ca2ed06d6 +0 -0
  309. data/spec/internal/tmp/cache/assets/test/sprockets/19465db808fbe15048554cecb70ad7cf +0 -0
  310. data/spec/internal/tmp/cache/assets/test/sprockets/1a591a26fdf3ed78b25b5ab792d76b7e +0 -0
  311. data/spec/internal/tmp/cache/assets/test/sprockets/1c1167e9384b80e15359a663448a3196 +0 -0
  312. data/spec/internal/tmp/cache/assets/test/sprockets/1d084625b16ac691b3ac53f7c3af9383 +0 -0
  313. data/spec/internal/tmp/cache/assets/test/sprockets/1d2f8185792ec3fccced5ea4e4dd7ff2 +0 -0
  314. data/spec/internal/tmp/cache/assets/test/sprockets/1eeefbd68878e39bf538ca5fb6816827 +0 -0
  315. data/spec/internal/tmp/cache/assets/test/sprockets/1f3f013d8df49445e8f6d26abe4bd0c3 +0 -0
  316. data/spec/internal/tmp/cache/assets/test/sprockets/22589c57b7736c35f126b70fa4f6838d +0 -0
  317. data/spec/internal/tmp/cache/assets/test/sprockets/2458a8aab642c987741b9e5dbadc40be +0 -0
  318. data/spec/internal/tmp/cache/assets/test/sprockets/25c858866fd7a2ca6719b8f57b7da784 +0 -0
  319. data/spec/internal/tmp/cache/assets/test/sprockets/272deddade92ef016e309a2eb7b775cc +0 -0
  320. data/spec/internal/tmp/cache/assets/test/sprockets/293f9259ef62e6c2afde9949c46f0b36 +0 -0
  321. data/spec/internal/tmp/cache/assets/test/sprockets/2b89cef6265da9c35a9c68f4672c7ff5 +0 -0
  322. data/spec/internal/tmp/cache/assets/test/sprockets/2e0105bbafec2286e09b62e5471f4c73 +0 -0
  323. data/spec/internal/tmp/cache/assets/test/sprockets/2f5173deea6c795b8fdde723bb4b63af +0 -0
  324. data/spec/internal/tmp/cache/assets/test/sprockets/30980d53fa21cb948c92faff2cf90991 +0 -0
  325. data/spec/internal/tmp/cache/assets/test/sprockets/30b468617659dbbfc89c910dcb076662 +0 -0
  326. data/spec/internal/tmp/cache/assets/test/sprockets/31f03bdc9721687fd98c2b12c036e8a2 +0 -0
  327. data/spec/internal/tmp/cache/assets/test/sprockets/357970feca3ac29060c1e3861e2c0953 +0 -0
  328. data/spec/internal/tmp/cache/assets/test/sprockets/3b707f5b5654437450eb8d718b602724 +0 -0
  329. data/spec/internal/tmp/cache/assets/test/sprockets/4132e961bdf0f2ffa2f96a4c7822e209 +0 -0
  330. data/spec/internal/tmp/cache/assets/test/sprockets/41dd5dbd03cfa3f49e2d7569ffd03f8d +0 -0
  331. data/spec/internal/tmp/cache/assets/test/sprockets/42ad0d7de425a02e6ad4b53f8f96e73a +0 -0
  332. data/spec/internal/tmp/cache/assets/test/sprockets/4749d0a94ef75f86eebb5f638b83188c +0 -0
  333. data/spec/internal/tmp/cache/assets/test/sprockets/47d1bee927ac2da38db4c61acd85d648 +0 -0
  334. data/spec/internal/tmp/cache/assets/test/sprockets/483d9b04ae722b59d47428990e5d67a3 +0 -0
  335. data/spec/internal/tmp/cache/assets/test/sprockets/49dddc872622de1d975f563d9d10d6c9 +0 -0
  336. data/spec/internal/tmp/cache/assets/test/sprockets/49f85e65ad619dd02dc51988e77723d2 +0 -0
  337. data/spec/internal/tmp/cache/assets/test/sprockets/4b1fc3a748e34199e72958c656cc06cf +0 -0
  338. data/spec/internal/tmp/cache/assets/test/sprockets/4c5e67849a42922256c692cebe3625ae +0 -0
  339. data/spec/internal/tmp/cache/assets/test/sprockets/5141429549bc789c5a18f47a631ee310 +0 -0
  340. data/spec/internal/tmp/cache/assets/test/sprockets/541a8ef4d67b7e50312977c96e423051 +0 -0
  341. data/spec/internal/tmp/cache/assets/test/sprockets/55e3bb68ac9cf584a33a458f8a2b1676 +0 -0
  342. data/spec/internal/tmp/cache/assets/test/sprockets/5d53e364ada0619aa4fb30c112b6b102 +0 -0
  343. data/spec/internal/tmp/cache/assets/test/sprockets/611235bfd282813bdfbc998bcbe798e8 +0 -0
  344. data/spec/internal/tmp/cache/assets/test/sprockets/671dbbf33392960f4dfc8dc63bd7019b +0 -0
  345. data/spec/internal/tmp/cache/assets/test/sprockets/6e0879a87dae322b4e32263452ba6b4e +0 -0
  346. data/spec/internal/tmp/cache/assets/test/sprockets/6ff6303a1f21708f6bd3a328290e5d24 +0 -0
  347. data/spec/internal/tmp/cache/assets/test/sprockets/72d162018f00a25977df702c0c32873f +0 -0
  348. data/spec/internal/tmp/cache/assets/test/sprockets/7685f208e89b90425bf76796648ebc28 +0 -0
  349. data/spec/internal/tmp/cache/assets/test/sprockets/7d0dafd1bea0f4da00c580f0f6d664b8 +0 -0
  350. data/spec/internal/tmp/cache/assets/test/sprockets/7d4fe23150294500a7bcd2630667e5c8 +0 -0
  351. data/spec/internal/tmp/cache/assets/test/sprockets/7e48304ca1d04f24b1a3ddfd0e762248 +0 -0
  352. data/spec/internal/tmp/cache/assets/test/sprockets/7e6843e999995e7a8a28abe25d44de70 +0 -0
  353. data/spec/internal/tmp/cache/assets/test/sprockets/7f1cb34f019f0890927d422814194b01 +0 -0
  354. data/spec/internal/tmp/cache/assets/test/sprockets/80fbd1f419ec2c1133c164b09a4faa41 +0 -0
  355. data/spec/internal/tmp/cache/assets/test/sprockets/81ecd9c94638acd3ece19ecac462a723 +0 -0
  356. data/spec/internal/tmp/cache/assets/test/sprockets/82f457826b6170c0fd009ef469f31e16 +0 -0
  357. data/spec/internal/tmp/cache/assets/test/sprockets/8401fd13fe82bb392806930ed02005e1 +0 -0
  358. data/spec/internal/tmp/cache/assets/test/sprockets/89051a85201a06056a8d2b0c9f86cc67 +0 -0
  359. data/spec/internal/tmp/cache/assets/test/sprockets/8b503f71e2ed168eb20ff8cfc20ff3d4 +0 -0
  360. data/spec/internal/tmp/cache/assets/test/sprockets/8c7f3211b77d6699db8521f074d3e871 +0 -0
  361. data/spec/internal/tmp/cache/assets/test/sprockets/967c4a151c00ff79d54eab287c5a949b +0 -0
  362. data/spec/internal/tmp/cache/assets/test/sprockets/9a96d61233d5cc5799c7fc16fd9655c3 +0 -0
  363. data/spec/internal/tmp/cache/assets/test/sprockets/9c4023aaef54415afaf4892ced299f30 +0 -0
  364. data/spec/internal/tmp/cache/assets/test/sprockets/9d2b8824bdb90dbf4cc8b238820f5536 +0 -0
  365. data/spec/internal/tmp/cache/assets/test/sprockets/a16e48f0f9253ddceef37908141e96c3 +0 -0
  366. data/spec/internal/tmp/cache/assets/test/sprockets/a58efe476f9446653ee3ae72f0a61fad +0 -0
  367. data/spec/internal/tmp/cache/assets/test/sprockets/a5b14fb35b6609fda372da27bcd729a7 +0 -0
  368. data/spec/internal/tmp/cache/assets/test/sprockets/a9a428b52df1827450a88aa09e03c638 +0 -0
  369. data/spec/internal/tmp/cache/assets/test/sprockets/a9e4b0d4e6cb29a1cbc5e016fbcc0fb9 +0 -0
  370. data/spec/internal/tmp/cache/assets/test/sprockets/ada353bb8ffe3eb0f2dd479e6d869a70 +0 -0
  371. data/spec/internal/tmp/cache/assets/test/sprockets/aed5b98e50f137ce9635dd1ec2e825ae +0 -0
  372. data/spec/internal/tmp/cache/assets/test/sprockets/b148a5e98ff09a12b6a2139af1e62e46 +0 -0
  373. data/spec/internal/tmp/cache/assets/test/sprockets/b3b3d7f6ecf32ce8216b40eccc5da386 +0 -0
  374. data/spec/internal/tmp/cache/assets/test/sprockets/b9d7d32e6982bd30b74f8e53b9217c17 +0 -0
  375. data/spec/internal/tmp/cache/assets/test/sprockets/baf77fc130c9f3d5a5aa7fb780485a04 +0 -0
  376. data/spec/internal/tmp/cache/assets/test/sprockets/bbb1efb94f355bd05863c07b6f552c58 +0 -0
  377. data/spec/internal/tmp/cache/assets/test/sprockets/bd0dea58c57774fef248f0b0844a4654 +0 -0
  378. data/spec/internal/tmp/cache/assets/test/sprockets/bd4a5121c6495d513075e759f8cca6ed +0 -0
  379. data/spec/internal/tmp/cache/assets/test/sprockets/c052b51dcc86bc3909b8d1f00ec52063 +0 -0
  380. data/spec/internal/tmp/cache/assets/test/sprockets/c6d2f8432ae24aaa27e3c17827d59e9a +0 -0
  381. data/spec/internal/tmp/cache/assets/test/sprockets/c89f789c6b72000300327021b7d4c5c2 +0 -0
  382. data/spec/internal/tmp/cache/assets/test/sprockets/cbb27eb65bd8fb970a233e18ba352e8f +0 -0
  383. data/spec/internal/tmp/cache/assets/test/sprockets/cdf8872264f5f8dd811cdf810f6875a7 +0 -0
  384. data/spec/internal/tmp/cache/assets/test/sprockets/cffd775d018f68ce5dba1ee0d951a994 +0 -0
  385. data/spec/internal/tmp/cache/assets/test/sprockets/d0196b42a14494523f6911335f616faf +0 -0
  386. data/spec/internal/tmp/cache/assets/test/sprockets/d2473a08bfca80032fc2b63d1b701155 +0 -0
  387. data/spec/internal/tmp/cache/assets/test/sprockets/d510daa6eb0cd4805bff7fd0990dfdb5 +0 -0
  388. data/spec/internal/tmp/cache/assets/test/sprockets/d610f39602b6149ca02638c1728778b5 +0 -0
  389. data/spec/internal/tmp/cache/assets/test/sprockets/d771ace226fc8215a3572e0aa35bb0d6 +0 -0
  390. data/spec/internal/tmp/cache/assets/test/sprockets/d91f67015353a832fa2e3833f735348c +0 -0
  391. data/spec/internal/tmp/cache/assets/test/sprockets/da3f0c774f5df0a1a089c222895df846 +0 -0
  392. data/spec/internal/tmp/cache/assets/test/sprockets/db2cddc1e711c9846ddae11154b7e021 +0 -0
  393. data/spec/internal/tmp/cache/assets/test/sprockets/dc85d6ffbe7a752fa33121a762c54962 +0 -0
  394. data/spec/internal/tmp/cache/assets/test/sprockets/e0e4f218b157ae599e12a247a4cf8710 +0 -0
  395. data/spec/internal/tmp/cache/assets/test/sprockets/e1b5310fd1def23fa4153a98c6f4ec94 +0 -0
  396. data/spec/internal/tmp/cache/assets/test/sprockets/e214f7e5fca115c8dd417b1756b6c74e +0 -0
  397. data/spec/internal/tmp/cache/assets/test/sprockets/e33bc43550b9803eb105d236a57226ae +0 -0
  398. data/spec/internal/tmp/cache/assets/test/sprockets/e60245101cbc86285dea16c630966171 +0 -0
  399. data/spec/internal/tmp/cache/assets/test/sprockets/e9c2a0f2fa471ace3f7ed3a1f1b9ffc5 +0 -0
  400. data/spec/internal/tmp/cache/assets/test/sprockets/ea0ece5befbce765051e27cf991cc805 +0 -0
  401. data/spec/internal/tmp/cache/assets/test/sprockets/ea537228e3763da36f19f836971837bf +0 -0
  402. data/spec/internal/tmp/cache/assets/test/sprockets/eb8e9f5bc31c8df8014af288cf304fa2 +0 -0
  403. data/spec/internal/tmp/cache/assets/test/sprockets/ee98c5174937598bf3cc6cbd06de1930 +0 -0
  404. data/spec/internal/tmp/cache/assets/test/sprockets/efcc92e2af63ff01bdb496a5cd405447 +0 -0
  405. data/spec/internal/tmp/cache/assets/test/sprockets/f43e6de318148b8815fa65c6fd6ea092 +0 -0
  406. data/spec/internal/tmp/cache/assets/test/sprockets/f4dfad893ed757565a389ceceeadcbc1 +0 -0
  407. data/spec/internal/tmp/cache/assets/test/sprockets/f7cbd26ba1d28d48de824f0e94586655 +0 -0
  408. data/spec/internal/tmp/cache/assets/test/sprockets/f96152606fbc5602cd65176f6098f69a +0 -0
  409. data/spec/internal/tmp/cache/assets/test/sprockets/fb0dfe7bc7417e1329d9cc6c913584e9 +0 -0
  410. data/spec/internal/tmp/cache/assets/test/sprockets/fb4a42a3e047a7a0d87f3ad55c8d267a +0 -0
  411. data/spec/internal/tmp/cache/assets/test/sprockets/fd9f0ae81e726ff65daa70db0055de1a +0 -0
  412. data/spec/internal/tmp/cache/assets/test/sprockets/fecd72966f3f2994e3d5894e05d76bd8 +0 -0
  413. data/spec/internal/tmp/cache/assets/test/sprockets/ff775ea5449360537913ffb102837dfa +0 -0
  414. data/spec/repository_models/generic_work_spec.rb +92 -0
  415. data/spec/repository_models/hydramata/group_membership_form_spec.rb +86 -0
  416. data/spec/repository_models/hydramata/group_spec.rb +91 -0
  417. data/spec/repository_models/person_spec.rb +44 -0
  418. data/spec/support/shared/shared_examples_is_a_curation_concern_controller.rb +23 -1
  419. data/spec/support/shared/shared_examples_remotely_identified.rb +10 -2
  420. metadata +640 -21
  421. data/app/controllers/curate/organizations_controller.rb +0 -96
  422. data/app/helpers/curate/organizations_helper.rb +0 -13
  423. data/app/repository_models/organization.rb +0 -17
  424. data/app/views/curate/organizations/_button_create_organization.html.erb +0 -1
  425. data/app/views/curate/organizations/edit.html.erb +0 -4
  426. data/app/views/curate/organizations/index.html.erb +0 -11
  427. data/app/views/curate/organizations/show.html.erb +0 -27
  428. data/app/views/organizations/_organization.html.erb +0 -30
  429. data/spec/controllers/curate/organizations_controller_spec.rb +0 -50
  430. data/spec/factories/organizations_factory.rb +0 -21
  431. data/spec/repository_models/organization_spec.rb +0 -66
@@ -0,0 +1,47 @@
1
+ import org.marc4j.marc.Record;
2
+ import org.solrmarc.tools.Utils;
3
+ import org.solrmarc.tools.CallNumUtils;
4
+
5
+ // define the base level indexer so that its methods can be called from the script.
6
+ // note that the SolrIndexer code will set this value before the script methods are called.
7
+ org.solrmarc.index.SolrIndexer indexer = null;
8
+
9
+ /**
10
+ * returns the facet value for dewey hundreds digits, and dewey tens digits
11
+ * @param record
12
+ * @return Set of Strings containing facet value for dewey hundreds digits, and dewey tens digits
13
+ */
14
+ Set getDeweyFacet(Record record, String propertiesMapName)
15
+ {
16
+ LinkedHashSet resultSet = new LinkedHashSet();
17
+ Set values = indexer.getFieldList(record, "082a");
18
+ String mapName = indexer.loadTranslationMap(propertiesMapName);
19
+
20
+ for (String dewey : values)
21
+ {
22
+ if (! CallNumUtils.isValidDewey(dewey)) continue;
23
+ String hundreds = dewey.substring(0, 1) + "00";
24
+ String tens = dewey.substring(0,2) + "0";
25
+ String hundredsMapped = Utils.remap(hundreds, indexer.findMap(mapName), true);
26
+ String tensMapped = Utils.remap(tens, indexer.findMap(mapName), true);
27
+ if (hundredsMapped != null) resultSet.add(hundredsMapped);
28
+ if (tensMapped != null) resultSet.add(tensMapped);
29
+ }
30
+
31
+ return resultSet;
32
+ }
33
+
34
+ Set getDeweyText(Record record)
35
+ {
36
+ LinkedHashSet resultSet = new LinkedHashSet();
37
+ Set values = indexer.getFieldList(record, "082a");
38
+
39
+ for (String dewey : values)
40
+ {
41
+ if (! CallNumUtils.isValidDewey(dewey)) continue;
42
+ dewey = dewey.replaceAll("/[.]", ".").replaceAll("/", " ");
43
+ resultSet.add(dewey);
44
+ }
45
+
46
+ return resultSet;
47
+ }
@@ -0,0 +1,126 @@
1
+ import org.marc4j.marc.Record;
2
+ import org.solrmarc.tools.Utils;
3
+
4
+ // define the base level indexer so that its methods can be called from the script.
5
+ // note that the SolrIndexer code will set this value before the script methods are called.
6
+ org.solrmarc.index.SolrIndexer indexer = null;
7
+
8
+ /**
9
+ * Determine Record Format(s)
10
+ *
11
+ * @param Record record
12
+ * @return Set format of record
13
+ */
14
+
15
+ public Set getFormat(Record record)
16
+ {
17
+ Set result = new LinkedHashSet();
18
+
19
+ // check if there's an h in the 245
20
+ Set title_245h = indexer.getFieldList(record, "245h");
21
+ if (Utils.setItemContains(title_245h, "electronic resource"))
22
+ {
23
+ result.add("Electronic");
24
+ return result;
25
+ }
26
+ boolean field007hasC = false;
27
+ // check the 007 - this is a repeating field
28
+ // if we find a matching value there, grab it and return.
29
+ Set fields007 = indexer.getFieldList(record, "007[0-1]");
30
+ for (String f_007 : fields007)
31
+ {
32
+ f_007 = f_007.toUpperCase();
33
+ if (f_007.startsWith("A"))
34
+ if (f_007.equals( "AD")) result.add("Atlas");
35
+ else result.add("Map");
36
+ else if (f_007.startsWith("C"))
37
+ if (f_007.equals("CA")) result.add("TapeCartridge");
38
+ else if (f_007.equals("CB")) result.add("ChipCartridge");
39
+ else if (f_007.equals("CC")) result.add("DiscCartridge");
40
+ else if (f_007.equals("CF")) result.add("TapeCassette");
41
+ else if (f_007.equals("CH")) result.add("TapeReel");
42
+ else if (f_007.equals("CJ")) result.add("FloppyDisk");
43
+ else if (f_007.equals("CM")) result.add("CDROM");
44
+ else if (f_007.equals("C0")) result.add("CDROM");
45
+ else if (f_007.equals("CR")) field007hasC = true; // Do not return - this will cause anything with an 856 field to be labeled as "Electronic"
46
+ else result.add("Software");
47
+ else if (f_007.startsWith("D")) result.add("Globe");
48
+ else if (f_007.startsWith("F")) result.add("Braille");
49
+ else if (f_007.startsWith("G"))
50
+ if (f_007.equals("GC")) result.add("Filmstrip");
51
+ else if (f_007.equals("GD")) result.add("Filmstrip");
52
+ else if (f_007.equals("GT")) result.add("Transparency");
53
+ else result.add("Slide");
54
+ else if (f_007.startsWith("H")) result.add("Microfilm");
55
+ else if (f_007.startsWith("K"))
56
+ if (f_007.equals("KC")) result.add("Collage");
57
+ else if (f_007.equals("KD")) result.add("Drawing");
58
+ else if (f_007.equals("KE")) result.add("Painting");
59
+ else if (f_007.equals("KF")) result.add("Print");
60
+ else if (f_007.equals("KG")) result.add("Photonegative");
61
+ else if (f_007.equals("KJ")) result.add("Print");
62
+ else if (f_007.equals("KL")) result.add("Drawing");
63
+ else if (f_007.equals("K0")) result.add("FlashCard");
64
+ else if (f_007.equals("KN")) result.add("Chart");
65
+ else result.add("Photo");
66
+ else if (f_007.startsWith("M"))
67
+ if (f_007.equals("MF")) result.add("VideoCassette");
68
+ else if (f_007.equals("MR")) result.add("Filmstrip");
69
+ else result.add("MotionPicture");
70
+ else if (f_007.startsWith("O")) result.add("Kit");
71
+ else if (f_007.startsWith("Q")) result.add("MusicalScore");
72
+ else if (f_007.startsWith("R")) result.add("SensorImage");
73
+ else if (f_007.startsWith("S"))
74
+ if (f_007.equals("SD")) result.add("SoundDisc");
75
+ else if (f_007.equals("SS")) result.add("SoundCassette");
76
+ else result.add("SoundRecording");
77
+ else if (f_007.startsWith("V"))
78
+ if (f_007.equals("VC")) result.add("VideoCartridge");
79
+ else if (f_007.equals("VD")) result.add("VideoDisc");
80
+ else if (f_007.equals("VF")) result.add("VideoCassette");
81
+ else if (f_007.equals("VR")) result.add("VideoReel");
82
+ else result.add("Video");
83
+
84
+ // if we found a matching value and return it.
85
+ if (!result.isEmpty()) return result;
86
+ }
87
+ // check the Leader - this is NOT a repeating field
88
+ // if we find a matching value there, grab it and return.
89
+ String f_000 = indexer.getFirstFieldVal(record, null, "000[6-7]");
90
+ f_000 = f_000.toUpperCase();
91
+ if (f_000.startsWith("C")) result.add("MusicalScore");
92
+ else if (f_000.startsWith("D")) result.add("MusicalScore");
93
+ else if (f_000.startsWith("E")) result.add("Map");
94
+ else if (f_000.startsWith("F")) result.add("Map");
95
+ else if (f_000.startsWith("G")) result.add("Slide");
96
+ else if (f_000.startsWith("I")) result.add("SoundRecording");
97
+ else if (f_000.startsWith("J")) result.add("MusicRecording");
98
+ else if (f_000.startsWith("K")) result.add("Photo");
99
+ else if (f_000.startsWith("M")) result.add("Electronic");
100
+ else if (f_000.startsWith("O")) result.add("Kit");
101
+ else if (f_000.startsWith("P")) result.add("Kit");
102
+ else if (f_000.startsWith("R")) result.add("PhysicalObject");
103
+ else if (f_000.startsWith("T")) result.add("Manuscript");
104
+ else if (f_000.startsWith("A"))
105
+ {
106
+ if (f_000.equals("AM"))
107
+ {
108
+ if (field007hasC) result.add("eBook");
109
+ else result.add("Book");
110
+ }
111
+ else if (f_000.equals("AS"))
112
+ {
113
+ // Look in 008 to determine what type of Continuing Resource
114
+ String formatCode = indexer.getFirstFieldVal(record, null, "008[21]");
115
+ if (formatCode.equals("N")) result.add("Newspaper");
116
+ else if (formatCode.equals("P")) result.add("Journal");
117
+ else result.add("Serial");
118
+ }
119
+ }
120
+ // Nothing worked!
121
+ if (result.isEmpty()) {
122
+ result.add("Unknown");
123
+ }
124
+
125
+ return result;
126
+ }
@@ -0,0 +1 @@
1
+ This is the directory in which you should place locally defined translation maps.
@@ -0,0 +1,407 @@
1
+ # Map Call Number Classification pieces to User Friendly Description
2
+ displayRawIfMissing = true
3
+
4
+ # note: need more specific call numbers first so first matching is most specific
5
+ AC = AC - Collections Works
6
+ AE = AE - Encyclopedias
7
+ AG = AG - General Reference Works
8
+ AI = AI - Indexes
9
+ AM = AM - Museums
10
+ AN = AN - Newspapers
11
+ AP = AP - Periodicals
12
+ AS = AS - Academies & Learned Societies
13
+ AY = AY - Yearbooks, Almanacs, Directories
14
+ AZ = AZ - History of Scholarship & Learning
15
+ A = A - General Works
16
+ BC = BC - Logic
17
+ BD = BD - Speculative Philosophy
18
+ BF = BF - Psychology
19
+ BH = BH - Aesthetics
20
+ BJ = BJ - Ethics
21
+ BL = BL - Religions (General)
22
+ BM = BM - Judaism
23
+ BP = BP - Islam, Bahaism, Theosophy, etc.
24
+ BQ = BQ - Buddhism
25
+ BR = BR - Christianity
26
+ BS = BS - The Bible
27
+ BT = BT - Doctrinal Theology
28
+ BV = BV - Practical Theology
29
+ BX = BX - Christian Denominations
30
+ B = B - Philosophy, Psychology, Religion
31
+ CB = CB - History of Civilization
32
+ CC = CC - Archaeology
33
+ CD = CD - Diplomatics
34
+ CE = CE - Technical Chronology
35
+ CJ = CJ - Numismatics
36
+ CN = CN - Inscriptions
37
+ CR = CR - Heraldry
38
+ CS = CS - Genealogy
39
+ CT = CT - Biography
40
+ C = C - Historical Sciences (Archaeology, Genealogy)
41
+ DA = DA - Great Britain (History)
42
+ DB = DB - Austria, Liechtenstein, Czech Rep., Hungary, Slovakia (History)
43
+ DC = DC - France (History)
44
+ DD = DD - Germany (History)
45
+ DE = DE - Greco-Roman World (History)
46
+ DF = DF - Greece (History)
47
+ DG = DG - Italy (History)
48
+ DH = DH - Low Countries (History)
49
+ DJK = DJK - Eastern Europe (History)
50
+ DJ = DJ - Netherlands (History)
51
+ DK = DK - Russia. Former Soviet Republics. Poland (History)
52
+ DL = DL - Scandinavia (History)
53
+ DP = DP - Spain. Portugal (History)
54
+ DQ = DQ - Switzerland (History)
55
+ DR = DR - Balkan Peninsula (History)
56
+ DS = DS - Asia (History)
57
+ DT = DT - Africa (History)
58
+ DU = DU - Oceanía (History)
59
+ DX = DX - Gypsies (History)
60
+ D = D - World History
61
+ E = E - History of the Americas (General)
62
+ F = F - History of the Americas (Local)
63
+ GA = GA - Mathematical Geography, Cartography
64
+ GB = GB - Physical Geography
65
+ GC = GC - Oceanography
66
+ GE = GE - Environmental Sciences
67
+ GF = GF - Human Ecology, Anthropogeography
68
+ GN = GN - Anthropology
69
+ GR = GR - Folklore
70
+ GT = GT - Manners & Customs
71
+ GV = GV - Recreation. Leisure
72
+ G = G - Geography, Anthropology, Recreation
73
+ HA = HA - Statistics
74
+ HB = HB - Economic Theory, Demography
75
+ HC = HC - Economic History & Conditions
76
+ HD = HD - Industries, Land use, Labor
77
+ HE = HE - Transportation & Communications
78
+ HF = HF - Commerce
79
+ HG = HG - Finance
80
+ HJ = HJ - Public Finance
81
+ HM = HM - Sociology
82
+ HN = HN - Social History & Conditions
83
+ HQ = HQ - The Family, Marriage, Woman
84
+ HS = HS - Societies
85
+ HT = HT - Communities, Classes, Races
86
+ HV = HV - Social Pathology, Social & Public Welfare, Criminology
87
+ HX = HX - Socialism, Communism, Anarchism
88
+ H = H - Social Sciences
89
+ JA = JA - Political Science
90
+ JC = JC - Political Theory
91
+ JF = JF - Political Institutions
92
+ JK = JK - Political Institutions (U.S.)
93
+ JL = JL - Political Institutions (Canada, Latin America)
94
+ JN = JN - Political Institutions (Europe)
95
+ JQ = JQ - Political Institutions (Asia, Africa, Australia, Pacific Area)
96
+ JS = JS - Local Government
97
+ JV = JV - Colonies & Colonization, Emigration & Immigration
98
+ JX = JX - International Law
99
+ JZ = JZ - International Relations
100
+ J = J - Political Science
101
+ KBM = KBM - Jewish Law
102
+ KBP = KBP - Islamic Law
103
+ KBR = KBR - Canon Law
104
+ KBU = KBU - Law of Roman Catholic Church
105
+ KB = KB - Religious Law (General)
106
+ KDC = KDC - Law of Scotland
107
+ KDE = KDE - Law of Northern Ireland
108
+ KDG = KDG - Law of Isle of Man, Channel Islands
109
+ KDK = KDK - Law of Ireland (EIRE)
110
+ KDZ = KDZ - Law of America, North America
111
+ KD = KD - Law of England & Wales
112
+ KE = KE - Law of Canada
113
+ KF = KF - Law of the U.S.
114
+ KG = KG - Law of Latin America, Mexico, Central America, West Indies, Caribbean
115
+ KH = KH - South America
116
+ KJA = KJA - Roman Law
117
+ KJC = KJC - Regional Comparative & Uniform Law
118
+ KJE = KJE - Regional Organization & Integration
119
+ KJG = KJG - Law of Albania
120
+ KJH = KJH - Law of Andorra
121
+ KJJ = KJJ - Law of Austria
122
+ KJK = KJK - Law of Belgium, Bosnia & Hercegovina (Republic)
123
+ KJM = KJM - Law of Bulgaria, Croatia
124
+ KJN = KJN - Law of Cyprus
125
+ KJP = KJP - Law of Czechoslovakia, Czech Republic
126
+ KJQ = KJQ - Law of Slovakia
127
+ KJR = KJR - Law of Denmark
128
+ KJS = KJS - Law of Estonia
129
+ KJT = KJT - Law of Finland
130
+ KJV = KJV - Law of France
131
+ KJW = KJW - Law of French Regions, Provinces, Departments
132
+ KJ = KJ - Law of Europe
133
+ KKE = KKE - Law of Greece
134
+ KKF = KKF - Law of Hungary
135
+ KKG = KKG - Law of Iceland
136
+ KKH = KKH - Law of Italy
137
+ KKI = KKI - Law of Latvia
138
+ KKJ = KKJ - Law of Lithuania, Liechtenstein
139
+ KKK = KKK - Law of Luxemburg, Malta
140
+ KKL = KKL - Law of Monaco
141
+ KKM = KKM - Law of the Netherlands
142
+ KKN = KKN - Law of Norway
143
+ KKP = KKP - Law of Poland
144
+ KKQ = KKQ - Law of Portugal
145
+ KKR = KKR - Law of Romania
146
+ KKT = KKT - Law of Spain
147
+ KKV = KKV - Law of Sweden
148
+ KKW = KKW - Law of Switzerland
149
+ KKX = KKX - Law of Turkey
150
+ KKY = KKY - Law of Ukraine
151
+ KKZ = KKZ - Law of Yugoslavia
152
+ KK = KK - Law of Germany
153
+ KLA = KLA - Law of Russia, Soviet Union
154
+ KLB = KLB - Law of Russia (Federation)
155
+ KLD = KLD - Law of Armenia (Republic)
156
+ KLE = KLE - Law of Azerbaijan
157
+ KLF = KLF - Law of Belarus
158
+ KLH = KLH - Law of Georgia
159
+ KLM = KLM - Law of Moldova
160
+ KLP = KLP - Law of Ukraine
161
+ KLR = KLR - Law of Kazakhstan
162
+ KLS = KLS - Law of Kyrgyzstan
163
+ KLT = KLT - Law of Tajikistan
164
+ KLV = KLV - Law of Turkmenistan
165
+ KLW = KLW - Law of Uzbekistan
166
+ KL = KL - History of Law, The Ancient Orient
167
+ KMC = KMC - Law of the Middle East, Southwest Asia
168
+ KMH = KMH - Law of Iran
169
+ KMJ = KMJ - Law of Iraq
170
+ KMK = KMK - Law of Israel
171
+ KML = KML - Law of Jerusalem
172
+ KMM = KMM - Law of Jordan
173
+ KMN = KMN - Law of Kuwait
174
+ KMP = KMP - Law of Lebanon
175
+ KMT = KMT - Law of Saudi Arabia
176
+ KMU = KMU - Law of Syria
177
+ KMX = KMX - Law of Yemen
178
+ KM = KM - Law of Asia
179
+ KNC = KNC - Law of South Asia
180
+ KNN = KNN - Law of China
181
+ KNP = KNP - Law of Taiwan
182
+ KNR = KNR - Law of Hong Kong
183
+ KNS = KNS - Law of India
184
+ KNW = KNW - Law of Indonesia
185
+ KNX = KNX - Law of Japan
186
+ KPA = KPA - Law of Korea, South Korea
187
+ KPC = KPC - Law of Korea, North Korea
188
+ KQ = KQ - Law of Africa
189
+ KU = KU - Law of the Pacific Area, Australia, New Zealand
190
+ KWX = KWX - Law of Antarctica
191
+ KZ = KZ - Law of Nations
192
+ K = K - Law
193
+ LA = LA - History of Education
194
+ LB = LB - Theory & Practice of Education
195
+ LC = LC - Special Aspects of Education
196
+ LD = LD - Individual Educational Institutions (U.S.)
197
+ LE = LE - Individual Educational Institutions: America (except U.S.)
198
+ LF = LF - Individual Educational Institutions: Europe
199
+ LG = LG - Individual Educational Institutions: Asia, Africa, Oceania
200
+ LH = LH - College & School Magazines & Papers
201
+ LT = LT - Textbooks
202
+ L = L - Education
203
+ MLCME = Unknown
204
+ MLCSN = Unknown
205
+ ML = ML - Literature on Music
206
+ MT = MT - Musical Instruction & Study
207
+ M = M - Music
208
+ NA = NA - Architecture
209
+ NB = NB - Sculpture
210
+ NC = NC - Drawing, Design, Illustration
211
+ ND = ND - Painting
212
+ NE = NE - Print Media
213
+ NK = NK - Decorative Arts
214
+ NX = NX - Arts in General
215
+ N = N - Fine Arts
216
+ PA = PA - Greek & Latin Language & Literature
217
+ PB = PB - Modern Language, Celtic Languages
218
+ PC = PC - Romanic Languages
219
+ PD = PD - Germanic Languages
220
+ PE = PE - English Languages
221
+ PF = PF - West Germanic Languages
222
+ PG = PG - Slavic, Baltic, Albanian Languages, Russian Language & Literature
223
+ PH = PH - Uralic & Basque Languages
224
+ PJ = PJ - Oriental Languages & Literature
225
+ PK = PK - Indo-Iranian Languages & Literature
226
+ PL = PL - Languages & Literatures of Eastern Asia, Africa, Oceania
227
+ PM = PM - Hyperborean, Indian & Artificial Languages
228
+ PN = PN - Literature (General)
229
+ PQ = PQ - French, Italian, Spanish & Portuguese Literature
230
+ PR = PR - English Literature
231
+ PS = PS - American Literature
232
+ PT = PT - Germanic & Scandinavian Literatures
233
+ PZ = PZ - Children’s Literature
234
+ P = P - Language & Literature
235
+ QA = QA - Mathematics
236
+ QB = QB - Astronomy
237
+ QC = QC - Physics
238
+ QD = QD - Chemistry
239
+ QE = QE - Geology
240
+ QH = QH - Natural History, Biology
241
+ QK = QK - Botany
242
+ QL = QL - Zoology
243
+ QM = QM - Human Anatomy
244
+ QP = QP - Physiology
245
+ QR = QR - Microbiology
246
+ Q = Q - Science
247
+ RA = RA - Public Aspects of Medicine
248
+ RB = RB - Pathology
249
+ RC = RC - Internal Medicine
250
+ RD = RD - Surgery
251
+ RE = RE - Ophthalmology
252
+ RF = RF - Otorhinolaryngology
253
+ RG = RG - Gynecology & Obstetrics
254
+ RJ = RJ - Pediatrics
255
+ RK = RK - Dentistry
256
+ RL = RL - Dermatology
257
+ RM = RM - Therapeutics, Pharmacology
258
+ RS = RS - Pharmacy & Materia Medica
259
+ RT = RT - Nursing
260
+ RV = RV - Botanic, Thomsonian, & Eclectic Medicine
261
+ RX = RX - Homeopathy
262
+ RZ = RZ - Other Systems of Medicine
263
+ R = R - Medicine
264
+ SB = SB - Plant Culture
265
+ SD = SD - Forestry
266
+ SF = SF - Animal Culture
267
+ SH = SH - Aquaculture
268
+ SK = SK - Hunting Sports
269
+ S = S - Agriculture
270
+ TA = TA - Engineering, Civil Engineering
271
+ TC = TC - Hydraulic Engineering
272
+ TD = TD - Environmental Technology
273
+ TE = TE - Highway Engineering
274
+ TF = TF - Railroad Engineering & Operation
275
+ TG = TG - Bridge Engineering
276
+ TH = TH - Building Construction
277
+ TJ = TJ - Mechanical Engineering & Machinery
278
+ TK = TK - Electrical Engineering, Nuclear Engineering
279
+ TL = TL - Motor Vehicles, Aeronautics, Astronautics
280
+ TN = TN - Mining Engineering
281
+ TP = TP - Chemical Technology
282
+ TR = TR - Photography
283
+ TS = TS - Manufactures
284
+ TT = TT - Handicrafts
285
+ TX = TX - Home Economics
286
+ T = T - Technology
287
+ UA = UA - Armies
288
+ UB = UB - Military Administration
289
+ UC = UC - Maintenance & Transportation
290
+ UD = UD - Infantry
291
+ UE = UE - Cavalry, Armor
292
+ UF = UF - Artillery
293
+ UG = UG - Military Engineering, Air Forces, Military Astronautics
294
+ UH = UH - Other Military Services
295
+ U = U - Military Science
296
+ VA = VA - Navies
297
+ VB = VB - Naval Administration
298
+ VC = VC - Naval Maintenance
299
+ VD = VD - Naval Seamen
300
+ VE = VE - Marines
301
+ VF = VF - Naval Ordnance
302
+ VG = VG - Minor Services of Navies
303
+ VK = VK - Navigation, Merchant Marine
304
+ VM = VM - Naval Architecture, Marine Engineering
305
+ V = V - Naval Science
306
+ ZA = ZA - Information Science
307
+ Z = Z - Bibliography, Library Science, Information Resources
308
+
309
+ 000 = 000s - Computer Science, Information & General Works
310
+ 010 = 010s - Bibliography
311
+ 020 = 020s - Library & Information Sciences
312
+ 030 = 030s - General Encyclopedic Works
313
+ 050 = 050s - General Serials & their Indexes
314
+ 060 = 060s - General Organization & Museology
315
+ 070 = 070s - News Media, Journalism, Publishing
316
+ 080 = 080s - General Collections
317
+ 090 = 090s - Manuscripts & Rare Books
318
+ 100 = 100s - Philosophy & Psychology
319
+ 110 = 110s - Metaphysics
320
+ 120 = 120s - Epistemology, Causation, Humankind
321
+ 130 = 130s - Paranormal Phenomena
322
+ 140 = 140s - Specific Philosophical Schools
323
+ 150 = 150s - Psychology
324
+ 160 = 160s - Logic
325
+ 170 = 170s - Ethics (Moral Philosophy)
326
+ 180 = 180s - Ancient, Medieval, Oriental Philosophy
327
+ 190 = 190s - Modern Western Philosophy
328
+ 200 = 200s - Religion
329
+ 210 = 210s - Natural Theology
330
+ 220 = 220s - Bible
331
+ 230 = 230s - Christian Theology
332
+ 240 = 240s - Christian Moral & Devotional Theology
333
+ 250 = 250s - Christian Orders & Local Church
334
+ 260 = 260s - Christian Social Theology
335
+ 270 = 270s - Christian Church History
336
+ 280 = 280s - Christian Denominations & Sects
337
+ 290 = 290s - Other & Comparative Religions
338
+ 300 = 300s - Social Sciences
339
+ 310 = 310s - General Statistics
340
+ 320 = 320s - Political Science
341
+ 330 = 330s - Economics
342
+ 340 = 340s - Law
343
+ 350 = 350s - Public Administration
344
+ 360 = 360s - Social Services; Association
345
+ 370 = 370s - Education
346
+ 380 = 380s - Commerce, Communications, Transport
347
+ 390 = 390s - Customs, Etiquette, Folklore
348
+ 400 = 400s - Language
349
+ 410 = 410s - Linguistics
350
+ 420 = 420s - English & Old English
351
+ 430 = 430s - Germanic Languages German
352
+ 440 = 440s - Romance Languages French
353
+ 450 = 450s - Italian, Romanian, Rhaeto-Romantic
354
+ 460 = 460s - Spanish & Portugese Languages
355
+ 470 = 470s - Italic Latin
356
+ 480 = 480s - Hellenic Languages Classical Greek
357
+ 490 = 490s - Other Languages
358
+ 500 = 500s - Science
359
+ 510 = 510s - Mathematics
360
+ 520 = 520s - Astronomy & Allied Sciences
361
+ 530 = 530s - Physics
362
+ 540 = 540s - Chemistry & Allied Sciences
363
+ 550 = 550s - Earth Sciences
364
+ 560 = 560s - Paleontology Paleozoology
365
+ 570 = 570s - Life Sciences
366
+ 580 = 580s - Botanical Sciences
367
+ 590 = 590s - Zoological Sciences
368
+ 600 = 600s - Technology
369
+ 610 = 610s - Medical Sciences Medicine
370
+ 620 = 620s - Engineering & Allied Operations
371
+ 630 = 630s - Agriculture
372
+ 640 = 640s - Home economics & Family Living
373
+ 650 = 650s - Management & Auxiliary Services
374
+ 660 = 660s - Chemical Engineering
375
+ 670 = 670s - Manufacturing
376
+ 680 = 680s - Manufacture for Specific Uses
377
+ 690 = 690s - Buildings
378
+ 700 = 700s - Arts & Recreation
379
+ 710 = 710s - Civic & Landscape Art
380
+ 720 = 720s - Architecture
381
+ 730 = 730s - Plastic Arts Sculpture
382
+ 740 = 740s - Drawing & Decorative Arts
383
+ 750 = 750s - Painting & Paintings
384
+ 760 = 760s - Graphic Arts Printmaking & Prints
385
+ 770 = 770s - Photography & Photographs
386
+ 780 = 780s - Music
387
+ 790 = 790s - Recreational & Performing Arts
388
+ 800 = 800s - Literature
389
+ 810 = 810s - American Literature in English
390
+ 820 = 820s - English & Old English Literatures
391
+ 830 = 830s - Literatures of Germanic Languages
392
+ 840 = 840s - Literatures of Romance Languages
393
+ 850 = 850s - Italian, Romanian, Rhaeto-Romanic
394
+ 860 = 860s - Spanish & Portuguese Literatures
395
+ 870 = 870s - Italic Literatures Latin
396
+ 880 = 880s - Hellenic Literatures Classical Greek
397
+ 890 = 890s - Literatures of Other Languages
398
+ 900 = 900s - History & Geography
399
+ 910 = 910s - Geography & Travel
400
+ 920 = 920s - Biography, Genealogy, Insignia
401
+ 930 = 930s - History of Ancient World
402
+ 940 = 940s - General History of Europe
403
+ 950 = 950s - General History of Asia Far East
404
+ 960 = 960s - General History of Africa
405
+ 970 = 970s - General History of North America
406
+ 980 = 980s - General History of South America
407
+ 990 = 990s - General History of Other Areas