arclight 0.1.0 → 1.6.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (247) hide show
  1. checksums.yaml +5 -5
  2. data/.all-contributorsrc +450 -0
  3. data/.codeclimate.yml +5 -0
  4. data/.eslintrc +14 -4
  5. data/.github/workflows/ruby.yml +51 -0
  6. data/.gitignore +2 -0
  7. data/.rspec +0 -1
  8. data/.rubocop.yml +503 -48
  9. data/.rubocop_todo.yml +122 -0
  10. data/.solr_wrapper +2 -1
  11. data/CONTRIBUTING.md +5 -5
  12. data/CONTRIBUTORS.md +79 -0
  13. data/Gemfile +15 -10
  14. data/README.md +47 -32
  15. data/Rakefile +0 -1
  16. data/app/assets/images/blacklight/bookmark.svg +1 -0
  17. data/app/assets/images/blacklight/collection.svg +5 -0
  18. data/app/assets/images/blacklight/compact.svg +1 -25
  19. data/app/assets/images/blacklight/container.svg +5 -0
  20. data/app/assets/images/blacklight/ead.svg +1 -0
  21. data/app/assets/images/blacklight/file.svg +5 -0
  22. data/app/assets/images/blacklight/folder.svg +1 -0
  23. data/app/assets/images/blacklight/list.svg +1 -0
  24. data/app/assets/images/blacklight/minus.svg +1 -0
  25. data/app/assets/images/blacklight/online.svg +5 -0
  26. data/app/assets/images/blacklight/pdf.svg +1 -0
  27. data/app/assets/images/blacklight/plus.svg +1 -0
  28. data/app/assets/images/blacklight/repository.svg +1 -0
  29. data/app/assets/javascripts/arclight/arclight.js +4 -9
  30. data/app/assets/javascripts/arclight/oembed_controller.js +58 -0
  31. data/app/assets/javascripts/arclight/truncate_controller.js +27 -0
  32. data/app/assets/stylesheets/arclight/application.scss +4 -3
  33. data/app/assets/stylesheets/arclight/build.scss +4 -0
  34. data/app/assets/stylesheets/arclight/modules/hierarchy_and_online_contents.scss +117 -136
  35. data/app/assets/stylesheets/arclight/modules/highlights.scss +3 -2
  36. data/app/assets/stylesheets/arclight/modules/icons.scss +20 -0
  37. data/app/assets/stylesheets/arclight/modules/layout.scss +203 -16
  38. data/app/assets/stylesheets/arclight/modules/mastheads.scss +27 -45
  39. data/app/assets/stylesheets/arclight/modules/repositories.scss +3 -7
  40. data/app/assets/stylesheets/arclight/modules/repository_card.scss +5 -50
  41. data/app/assets/stylesheets/arclight/modules/search_form.scss +9 -0
  42. data/app/assets/stylesheets/arclight/modules/search_results.scss +200 -25
  43. data/app/assets/stylesheets/arclight/modules/show_collection.scss +21 -61
  44. data/app/assets/stylesheets/arclight/modules/truncator.scss +58 -0
  45. data/app/assets/stylesheets/arclight/responsive.scss +13 -0
  46. data/app/assets/stylesheets/arclight/variables.scss +25 -2
  47. data/app/components/arclight/access_component.html.erb +14 -0
  48. data/app/components/arclight/access_component.rb +25 -0
  49. data/app/components/arclight/bookmark_component.html.erb +25 -0
  50. data/app/components/arclight/bookmark_component.rb +9 -0
  51. data/app/components/arclight/breadcrumb_component.rb +50 -0
  52. data/app/components/arclight/breadcrumbs_hierarchy_component.html.erb +34 -0
  53. data/app/components/arclight/breadcrumbs_hierarchy_component.rb +25 -0
  54. data/app/components/arclight/collection_context_component.html.erb +12 -0
  55. data/app/components/arclight/collection_context_component.rb +27 -0
  56. data/app/components/arclight/collection_info_component.html.erb +28 -0
  57. data/app/components/arclight/collection_info_component.rb +26 -0
  58. data/app/components/arclight/collection_sidebar_component.html.erb +15 -0
  59. data/app/components/arclight/collection_sidebar_component.rb +39 -0
  60. data/app/{views/catalog/_search_results_repository.html.erb → components/arclight/constraints_component.html.erb} +2 -1
  61. data/app/components/arclight/constraints_component.rb +17 -0
  62. data/app/components/arclight/document_collection_context_component.html.erb +29 -0
  63. data/app/components/arclight/document_collection_context_component.rb +28 -0
  64. data/app/components/arclight/document_collection_hierarchy_component.html.erb +50 -0
  65. data/app/components/arclight/document_collection_hierarchy_component.rb +62 -0
  66. data/app/components/arclight/document_component.html.erb +39 -0
  67. data/app/components/arclight/document_component.rb +49 -0
  68. data/app/components/arclight/document_components_hierarchy_component.html.erb +20 -0
  69. data/app/components/arclight/document_components_hierarchy_component.rb +34 -0
  70. data/app/components/arclight/document_download_component.html.erb +24 -0
  71. data/app/components/arclight/document_download_component.rb +71 -0
  72. data/app/components/arclight/embed_component.html.erb +10 -0
  73. data/app/components/arclight/embed_component.rb +43 -0
  74. data/app/components/arclight/expand_hierarchy_button_component.html.erb +5 -0
  75. data/app/components/arclight/expand_hierarchy_button_component.rb +16 -0
  76. data/app/components/arclight/group_component.html.erb +34 -0
  77. data/app/components/arclight/group_component.rb +23 -0
  78. data/app/components/arclight/header_component.html.erb +5 -0
  79. data/app/components/arclight/header_component.rb +10 -0
  80. data/app/components/arclight/index_metadata_field_component.html.erb +16 -0
  81. data/app/components/arclight/index_metadata_field_component.rb +20 -0
  82. data/app/components/arclight/masthead_component.html.erb +17 -0
  83. data/app/components/arclight/masthead_component.rb +10 -0
  84. data/app/components/arclight/metadata_section_component.html.erb +13 -0
  85. data/app/components/arclight/metadata_section_component.rb +22 -0
  86. data/app/components/arclight/oembed_viewer_component.html.erb +5 -0
  87. data/app/components/arclight/oembed_viewer_component.rb +16 -0
  88. data/app/components/arclight/online_content_filter_component.html.erb +15 -0
  89. data/app/components/arclight/online_content_filter_component.rb +17 -0
  90. data/app/components/arclight/online_status_indicator_component.rb +19 -0
  91. data/app/components/arclight/repository_breadcrumb_component.html.erb +10 -0
  92. data/app/components/arclight/repository_breadcrumb_component.rb +17 -0
  93. data/app/components/arclight/repository_location_component.html.erb +20 -0
  94. data/app/components/arclight/repository_location_component.rb +10 -0
  95. data/app/components/arclight/search_bar_component.html.erb +27 -0
  96. data/app/components/arclight/search_bar_component.rb +32 -0
  97. data/app/components/arclight/search_result_breadcrumbs_component.html.erb +6 -0
  98. data/app/components/arclight/search_result_breadcrumbs_component.rb +37 -0
  99. data/app/components/arclight/search_result_component.html.erb +20 -0
  100. data/app/components/arclight/search_result_component.rb +18 -0
  101. data/app/components/arclight/search_result_title_component.html.erb +15 -0
  102. data/app/components/arclight/search_result_title_component.rb +15 -0
  103. data/app/components/arclight/sidebar_component.html.erb +9 -0
  104. data/app/components/arclight/sidebar_component.rb +19 -0
  105. data/app/components/arclight/upper_metadata_layout_component.rb +10 -0
  106. data/app/components/blacklight/icons/bookmark_component.rb +12 -0
  107. data/app/components/blacklight/icons/collection_component.rb +14 -0
  108. data/app/components/blacklight/icons/compact_component.rb +12 -0
  109. data/app/components/blacklight/icons/container_component.rb +14 -0
  110. data/app/components/blacklight/icons/ead_component.rb +12 -0
  111. data/app/components/blacklight/icons/file_component.rb +14 -0
  112. data/app/components/blacklight/icons/folder_component.rb +12 -0
  113. data/app/components/blacklight/icons/online_component.rb +15 -0
  114. data/app/components/blacklight/icons/pdf_component.rb +12 -0
  115. data/app/components/blacklight/icons/repository_component.rb +12 -0
  116. data/app/controllers/arclight/repositories_controller.rb +4 -4
  117. data/app/helpers/arclight/ead_format_helpers.rb +309 -0
  118. data/app/helpers/arclight/field_config_helpers.rb +26 -0
  119. data/app/helpers/arclight_helper.rb +55 -120
  120. data/app/models/arclight/document_downloads.rb +122 -0
  121. data/app/models/arclight/parent.rb +9 -9
  122. data/app/models/arclight/parents.rb +9 -4
  123. data/app/models/arclight/requests/aeon_external_request.rb +42 -0
  124. data/app/models/arclight/requests/aeon_web_ead.rb +52 -0
  125. data/app/models/arclight/requests/google_form.rb +8 -3
  126. data/app/models/concerns/arclight/catalog.rb +33 -11
  127. data/app/models/concerns/arclight/search_behavior.rb +22 -21
  128. data/app/models/concerns/arclight/solr_document.rb +88 -59
  129. data/app/presenters/arclight/show_presenter.rb +34 -7
  130. data/app/views/arclight/_requests.html.erb +7 -0
  131. data/app/views/arclight/repositories/_repository.html.erb +22 -41
  132. data/app/views/arclight/repositories/index.html.erb +5 -0
  133. data/app/views/arclight/repositories/show.html.erb +7 -8
  134. data/app/views/arclight/requests/_aeon_external_request_endpoint.html.erb +8 -0
  135. data/app/views/arclight/requests/_aeon_web_ead.html.erb +6 -0
  136. data/app/views/arclight/requests/_google_form.html.erb +4 -5
  137. data/app/views/catalog/_document_list.html.erb +8 -0
  138. data/app/views/catalog/_group.html.erb +4 -0
  139. data/app/views/catalog/_group_toggle.html.erb +10 -0
  140. data/app/views/catalog/_search_results_header.html.erb +3 -0
  141. data/app/views/catalog/hierarchy.html.erb +19 -0
  142. data/app/views/catalog/index.html.erb +16 -7
  143. data/app/views/shared/_breadcrumbs.html.erb +3 -15
  144. data/app/views/shared/_main_menu_links.html.erb +1 -1
  145. data/arclight.gemspec +22 -17
  146. data/config/breadcrumbs.rb +24 -0
  147. data/config/i18n-tasks.yml +134 -0
  148. data/config/importmap.rb +3 -0
  149. data/config/locales/arclight.en.yml +90 -55
  150. data/config/routes.rb +1 -1
  151. data/docker-compose.yml +16 -0
  152. data/lib/arclight/digital_object.rb +2 -1
  153. data/lib/arclight/engine.rb +23 -31
  154. data/lib/arclight/exceptions.rb +1 -0
  155. data/lib/arclight/hash_absolute_xpath.rb +62 -0
  156. data/lib/arclight/level_label.rb +46 -0
  157. data/lib/arclight/missing_id_strategy.rb +21 -0
  158. data/lib/arclight/normalized_date.rb +24 -20
  159. data/lib/arclight/normalized_id.rb +7 -2
  160. data/lib/arclight/normalized_title.rb +3 -0
  161. data/lib/arclight/repository.rb +72 -47
  162. data/lib/arclight/routes/hierarchy.rb +19 -0
  163. data/lib/arclight/routes.rb +8 -0
  164. data/lib/arclight/traject/ead2_component_config.rb +335 -0
  165. data/lib/arclight/traject/ead2_config.rb +316 -0
  166. data/lib/arclight/traject/nokogiri_namespaceless_reader.rb +22 -0
  167. data/lib/arclight/version.rb +1 -1
  168. data/lib/arclight/year_range.rb +13 -4
  169. data/lib/arclight.rb +6 -1
  170. data/lib/generators/arclight/install_generator.rb +110 -10
  171. data/lib/generators/arclight/templates/arclight.scss +6 -3
  172. data/lib/generators/arclight/templates/catalog_controller.rb +249 -173
  173. data/lib/generators/arclight/templates/config/downloads.yml +12 -0
  174. data/lib/generators/arclight/templates/config/locales/arclight.en.yml +61 -0
  175. data/lib/generators/arclight/templates/config/repositories.yml +42 -31
  176. data/lib/generators/arclight/update_generator.rb +1 -1
  177. data/lib/tasks/index.rake +25 -28
  178. data/package.json +15 -9
  179. data/solr/conf/schema.xml +101 -332
  180. data/solr/conf/solrconfig.xml +99 -164
  181. data/tasks/arclight.rake +22 -11
  182. data/template.rb +6 -11
  183. metadata +230 -105
  184. data/.travis.yml +0 -33
  185. data/app/assets/javascripts/arclight/collection_context.js +0 -18
  186. data/app/assets/javascripts/arclight/collection_navigation.js +0 -114
  187. data/app/assets/javascripts/arclight/collection_scrollspy.js +0 -6
  188. data/app/assets/javascripts/arclight/component_ancestors.js +0 -56
  189. data/app/assets/javascripts/arclight/oembed_viewer.js +0 -39
  190. data/app/assets/javascripts/arclight/truncator.js.erb +0 -23
  191. data/app/assets/stylesheets/arclight/bootstrap_overrides.scss +0 -3
  192. data/app/assets/stylesheets/arclight/modules/sidebar.scss +0 -16
  193. data/app/controllers/concerns/arclight/field_config_helpers.rb +0 -86
  194. data/app/factories/blacklight_field_configuration_factory.rb +0 -29
  195. data/app/views/arclight/repositories/_in_person_repository.html.erb +0 -19
  196. data/app/views/arclight/viewers/_oembed.html.erb +0 -7
  197. data/app/views/catalog/_arclight_document_index_header.html.erb +0 -13
  198. data/app/views/catalog/_arclight_document_index_header_online_contents_default.html.erb +0 -0
  199. data/app/views/catalog/_arclight_document_show_header.html.erb +0 -15
  200. data/app/views/catalog/_arclight_document_show_header_collection.html.erb +0 -12
  201. data/app/views/catalog/_arclight_index_compact_default.html.erb +0 -15
  202. data/app/views/catalog/_arclight_online_content_indicator.html.erb +0 -5
  203. data/app/views/catalog/_arclight_rangelimit.html.erb +0 -24
  204. data/app/views/catalog/_arclight_viewer_default.html.erb +0 -1
  205. data/app/views/catalog/_collection_contents.html.erb +0 -12
  206. data/app/views/catalog/_collection_count.html.erb +0 -7
  207. data/app/views/catalog/_collection_downloads.html.erb +0 -17
  208. data/app/views/catalog/_collection_online_contents.html.erb +0 -17
  209. data/app/views/catalog/_collection_overview.html.erb +0 -7
  210. data/app/views/catalog/_component_overview.html.erb +0 -46
  211. data/app/views/catalog/_context_card.html.erb +0 -27
  212. data/app/views/catalog/_context_sidebar.html.erb +0 -8
  213. data/app/views/catalog/_custom_metadata.html.erb +0 -16
  214. data/app/views/catalog/_home.html.erb +0 -1
  215. data/app/views/catalog/_index_breadcrumb_default.html.erb +0 -3
  216. data/app/views/catalog/_index_default.html.erb +0 -17
  217. data/app/views/catalog/_index_header.html.erb +0 -7
  218. data/app/views/catalog/_index_header_hierarchy_default.html.erb +0 -42
  219. data/app/views/catalog/_index_header_online_contents_default.html.erb +0 -1
  220. data/app/views/catalog/_index_hierarchy_default.html.erb +0 -28
  221. data/app/views/catalog/_index_online_contents_default.html.erb +0 -6
  222. data/app/views/catalog/_results_histogram.html.erb +0 -10
  223. data/app/views/catalog/_search_results.html.erb +0 -31
  224. data/app/views/catalog/_search_within_form.html.erb +0 -16
  225. data/app/views/catalog/_show_breadcrumbs_default.html.erb +0 -7
  226. data/app/views/catalog/_show_collection.html.erb +0 -40
  227. data/app/views/catalog/_show_component_sidebar.html.erb +0 -12
  228. data/app/views/catalog/_show_default.html.erb +0 -32
  229. data/app/views/catalog/_show_header.html.erb +0 -5
  230. data/app/views/catalog/_show_sidebar.html.erb +0 -30
  231. data/app/views/layouts/catalog_result.html.erb +0 -7
  232. data/app/views/shared/_context_sidebar.html.erb +0 -8
  233. data/app/views/shared/_header_navbar.html.erb +0 -54
  234. data/lib/arclight/custom_component.rb +0 -98
  235. data/lib/arclight/custom_document.rb +0 -93
  236. data/lib/arclight/indexer.rb +0 -9
  237. data/lib/arclight/shared_indexing_behavior.rb +0 -97
  238. data/lib/arclight/shared_terminology_behavior.rb +0 -65
  239. data/lib/arclight/solr_ead_indexer_ext.rb +0 -159
  240. data/lib/arclight/viewer.rb +0 -45
  241. data/lib/arclight/viewers/oembed.rb +0 -56
  242. data/lib/generators/arclight/templates/arclight.js +0 -2
  243. data/solr/conf/scripts.conf +0 -24
  244. data/vendor/assets/javascripts/responsiveTruncator.js +0 -69
  245. data/vendor/assets/javascripts/stickyfill.js +0 -480
  246. /data/app/assets/images/{blacklight → arclight}/logo.png +0 -0
  247. /data/{app/views/catalog/_arclight_document_index_header_hierarchy_default.html.erb → config/repositories.yml} +0 -0
@@ -1,9 +1,9 @@
1
1
  # frozen_string_literal: true
2
- class CatalogController < ApplicationController
3
2
 
3
+ # Blacklight controller that handles searches and document requests
4
+ class CatalogController < ApplicationController
4
5
  include Blacklight::Catalog
5
6
  include Arclight::Catalog
6
- include Arclight::FieldConfigHelpers
7
7
 
8
8
  configure_blacklight do |config|
9
9
  ## Class for sending and receiving requests from a search index
@@ -17,35 +17,101 @@ class CatalogController < ApplicationController
17
17
 
18
18
  ## Default parameters to send to solr for all search-like requests. See also SearchBuilder#processed_parameters
19
19
  config.default_solr_params = {
20
- rows: 10
20
+ rows: 10,
21
+ fl: '*,collection:[subquery]',
22
+ 'collection.q': '{!terms f=id v=$row._root_}',
23
+ 'collection.defType': 'lucene',
24
+ 'collection.fl': '*',
25
+ 'collection.rows': 1
21
26
  }
22
27
 
28
+ # Sets the indexed Solr field that will display with highlighted matches
29
+ config.highlight_field = 'text'
30
+
23
31
  # solr path which will be added to solr base url before the other solr params.
24
- #config.solr_path = 'select'
32
+ # config.solr_path = 'select'
25
33
 
26
34
  # items to show per page, each number in the array represent another option to choose from.
27
- #config.per_page = [10,20,50,100]
35
+ # config.per_page = [10,20,50,100]
28
36
 
29
- ## Default parameters to send on single-document requests to Solr. These settings are the Blackligt defaults (see SearchHelper#solr_doc_params) or
37
+ ## Default parameters to send on single-document requests to Solr.
38
+ ## These settings are the Blacklight defaults (see SearchHelper#solr_doc_params) or
30
39
  ## parameters included in the Blacklight-jetty document requestHandler.
31
40
  #
32
- #config.default_document_solr_params = {
33
- # qt: 'document',
34
- # ## These are hard-coded in the blacklight 'document' requestHandler
35
- # # fl: '*',
36
- # # rows: 1,
37
- # # q: '{!term f=id v=$id}'
38
- #}
41
+ config.default_document_solr_params = {
42
+ qt: 'document',
43
+ fl: '*,collection:[subquery]',
44
+ 'collection.q': '{!terms f=id v=$row._root_}',
45
+ 'collection.defType': 'lucene',
46
+ 'collection.fl': '*',
47
+ 'collection.rows': 1
48
+ }
49
+
50
+ config.header_component = Arclight::HeaderComponent
51
+ config.add_results_document_tool(:online, component: Arclight::OnlineStatusIndicatorComponent)
52
+ config.add_results_document_tool(:arclight_bookmark_control, component: Arclight::BookmarkComponent)
53
+
54
+ config.add_results_collection_tool(:group_toggle)
55
+ config.add_results_collection_tool(:sort_widget)
56
+ config.add_results_collection_tool(:per_page_widget)
57
+ config.add_results_collection_tool(:view_type_group)
58
+
59
+ config.add_nav_action(:bookmark, partial: 'blacklight/nav/bookmark', if: :render_bookmarks_control?)
60
+ config.add_nav_action(:search_history, partial: 'blacklight/nav/search_history')
39
61
 
40
62
  # solr field configuration for search results/index views
63
+ config.index.partials = %i[arclight_index_default]
41
64
  config.index.title_field = 'normalized_title_ssm'
42
65
  config.index.display_type_field = 'level_ssm'
43
- #config.index.thumbnail_field = 'thumbnail_path_ss'
66
+ config.index.document_component = Arclight::SearchResultComponent
67
+ config.index.group_component = Arclight::GroupComponent
68
+ config.index.constraints_component = Arclight::ConstraintsComponent
69
+ config.index.document_presenter_class = Arclight::IndexPresenter
70
+ config.index.search_bar_component = Arclight::SearchBarComponent
71
+ # config.index.thumbnail_field = 'thumbnail_path_ss'
44
72
 
45
73
  # solr field configuration for document/show views
46
- #config.show.title_field = 'title_display'
47
- #config.show.display_type_field = 'format'
48
- #config.show.thumbnail_field = 'thumbnail_path_ss'
74
+ # config.show.title_field = 'title_display'
75
+ config.show.document_component = Arclight::DocumentComponent
76
+ config.show.sidebar_component = Arclight::SidebarComponent
77
+ config.show.breadcrumb_component = Arclight::BreadcrumbsHierarchyComponent
78
+ config.show.embed_component = Arclight::EmbedComponent
79
+ config.show.access_component = Arclight::AccessComponent
80
+ config.show.online_status_component = Arclight::OnlineStatusIndicatorComponent
81
+ config.show.expand_hierarchy_component = Arclight::ExpandHierarchyButtonComponent
82
+ config.show.display_type_field = 'level_ssm'
83
+ # config.show.thumbnail_field = 'thumbnail_path_ss'
84
+ config.show.document_presenter_class = Arclight::ShowPresenter
85
+ config.show.metadata_partials = %i[
86
+ summary_field
87
+ background_field
88
+ related_field
89
+ indexed_terms_field
90
+ access_field
91
+ ]
92
+
93
+ config.show.collection_access_items = %i[
94
+ terms_field
95
+ cite_field
96
+ in_person_field
97
+ contact_field
98
+ ]
99
+
100
+ config.show.component_metadata_partials = %i[
101
+ component_field
102
+ component_indexed_terms_field
103
+ ]
104
+
105
+ config.show.component_access_items = %i[
106
+ component_terms_field
107
+ cite_field
108
+ in_person_field
109
+ contact_field
110
+ ]
111
+
112
+ ##
113
+ # Compact index view
114
+ config.view.compact!
49
115
 
50
116
  # solr fields that will be treated as facets by the blacklight application
51
117
  # The ordering of the field names is the order of the display
@@ -68,19 +134,19 @@ class CatalogController < ApplicationController
68
134
  # facet bar
69
135
  #
70
136
  # set :index_range to true if you want the facet pagination view to have facet prefix-based navigation
71
- # (useful when user clicks "more" on a large facet and wants to navigate alphabetically across a large set of results)
72
- # :index_range can be an array or range of prefixes that will be used to create the navigation (note: It is case sensitive when searching values)
73
-
74
- config.add_facet_field 'collection_sim', label: 'Collection'
75
- config.add_facet_field 'creator_ssim', label: 'Creator'
76
- config.add_facet_field 'creators_ssim', label: 'Creator', show: false
77
- config.add_facet_field 'date_range_sim', label: 'Date range', range: true
78
- config.add_facet_field 'level_sim', label: 'Level'
79
- config.add_facet_field 'names_ssim', label: 'Names'
80
- config.add_facet_field 'repository_sim', label: 'Repository'
81
- config.add_facet_field 'geogname_sim', label: 'Place'
82
- config.add_facet_field 'places_ssim', label: 'Places', show:false
83
- config.add_facet_field 'access_subjects_ssim', label: 'Subject'
137
+ # (useful when user clicks "more" on a large facet and wants to navigate alphabetically
138
+ # across a large set of results)
139
+ # :index_range can be an array or range of prefixes that will be used to create the navigation
140
+ # (note: It is case sensitive when searching values)
141
+
142
+ config.add_facet_field 'collection', field: 'collection_ssim', limit: 10
143
+ config.add_facet_field 'creators', field: 'creator_ssim', limit: 10
144
+ config.add_facet_field 'date_range', field: 'date_range_isim', range: true
145
+ config.add_facet_field 'level', field: 'level_ssim', limit: 10
146
+ config.add_facet_field 'names', field: 'names_ssim', limit: 10
147
+ config.add_facet_field 'repository', field: 'repository_ssim', limit: 10
148
+ config.add_facet_field 'places', field: 'geogname_ssim', limit: 10
149
+ config.add_facet_field 'access_subjects', field: 'access_subjects_ssim', limit: 10
84
150
 
85
151
  # Have BL send all facet field names to Solr, which has been the default
86
152
  # previously. Simply remove these lines if you'd rather use Solr request
@@ -89,18 +155,16 @@ class CatalogController < ApplicationController
89
155
 
90
156
  # solr fields to be displayed in the index (search results) view
91
157
  # The ordering of the field names is the order of the display
92
- config.add_index_field 'unitid_ssm', label: 'Unit ID'
93
- config.add_index_field 'repository_ssm', label: 'Repository'
94
- config.add_index_field 'normalized_date_ssm', label: 'Date'
95
- config.add_index_field 'creator_ssm', label: 'Creator'
96
- config.add_index_field 'language_ssm', label: 'Language'
97
- config.add_index_field 'scopecontent_ssm', label: 'Scope Content'
98
- config.add_index_field 'extent_ssm', label: 'Physical Description'
99
- config.add_index_field 'accessrestrict_ssm', label: 'Conditions Governing Access'
100
- config.add_index_field 'collection_ssm', label: 'Collection Title'
101
- config.add_index_field 'geogname_ssm', label: 'Place'
102
-
103
- config.add_facet_field 'has_online_content_ssim', label: 'Access', query: {
158
+ config.add_index_field 'highlight', accessor: 'highlights', separator_options: {
159
+ words_connector: '<br/>',
160
+ two_words_connector: '<br/>',
161
+ last_word_connector: '<br/>'
162
+ }, compact: true, component: Arclight::IndexMetadataFieldComponent
163
+ config.add_index_field 'creator', accessor: true, component: Arclight::IndexMetadataFieldComponent
164
+ config.add_index_field 'abstract_or_scope', accessor: true, truncate: true, repository_context: true, helper_method: :render_html_tags, component: Arclight::IndexMetadataFieldComponent
165
+ config.add_index_field 'breadcrumbs', accessor: :itself, component: Arclight::SearchResultBreadcrumbsComponent, compact: { count: 2 }
166
+
167
+ config.add_facet_field 'access', query: {
104
168
  online: { label: 'Online access', fq: 'has_online_content_ssim:true' }
105
169
  }
106
170
 
@@ -131,7 +195,7 @@ class CatalogController < ApplicationController
131
195
  config.add_search_field 'within_collection' do |field|
132
196
  field.include_in_simple_select = false
133
197
  field.solr_parameters = {
134
- fq: '-level_sim:Collection'
198
+ fq: '-level_ssim:Collection'
135
199
  }
136
200
  end
137
201
 
@@ -141,18 +205,52 @@ class CatalogController < ApplicationController
141
205
  field.qt = 'search' # default
142
206
  end
143
207
  config.add_search_field 'name', label: 'Name' do |field|
144
- field.qt = 'name_search'
208
+ field.qt = 'search'
209
+ field.solr_parameters = {
210
+ qf: '${qf_name}',
211
+ pf: '${pf_name}'
212
+ }
145
213
  end
146
214
  config.add_search_field 'place', label: 'Place' do |field|
147
- field.qt = 'place_search'
215
+ field.qt = 'search'
216
+ field.solr_parameters = {
217
+ qf: '${qf_place}',
218
+ pf: '${pf_place}'
219
+ }
148
220
  end
149
221
  config.add_search_field 'subject', label: 'Subject' do |field|
150
- field.qt = 'subject_search'
222
+ field.qt = 'search'
223
+ field.solr_parameters = {
224
+ qf: '${qf_subject}',
225
+ pf: '${pf_subject}'
226
+ }
151
227
  end
152
228
  config.add_search_field 'title', label: 'Title' do |field|
153
- field.qt = 'title_search'
229
+ field.qt = 'search'
230
+ field.solr_parameters = {
231
+ qf: '${qf_title}',
232
+ pf: '${pf_title}'
233
+ }
234
+ end
235
+ config.add_search_field 'container', label: 'Container' do |field|
236
+ field.qt = 'search'
237
+ field.solr_parameters = {
238
+ qf: '${qf_container}',
239
+ pf: '${pf_container}'
240
+ }
241
+ end
242
+ config.add_search_field 'identifier', label: 'Identifier' do |field|
243
+ field.qt = 'search'
244
+ field.solr_parameters = {
245
+ qf: '${qf_identifier}',
246
+ pf: '${pf_identifier}'
247
+ }
154
248
  end
155
249
 
250
+ # These are the parameters passed through in search_state.params_for_search
251
+ config.search_state_fields += %i[id group hierarchy_context original_document]
252
+ config.search_state_fields << { original_parents: [] }
253
+
156
254
  # "sort results by" select (pulldown)
157
255
  # label in pulldown is followed by the name of the SOLR field to sort by and
158
256
  # whether the sort is ascending or descending (it must be asc or desc
@@ -173,175 +271,153 @@ class CatalogController < ApplicationController
173
271
  config.autocomplete_enabled = true
174
272
  config.autocomplete_path = 'suggest'
175
273
 
176
- ##
177
- # Arclight Configurations
178
274
 
179
- config.show.document_presenter_class = Arclight::ShowPresenter
180
- config.index.document_presenter_class = Arclight::IndexPresenter
181
- ##
182
- # Configuration for partials
183
- config.index.partials.insert(0, :arclight_online_content_indicator)
184
- config.index.partials.insert(0, :index_breadcrumb)
185
- config.index.partials.insert(0, :arclight_document_index_header)
186
-
187
- config.show.metadata_partials = [
188
- :summary_field,
189
- :access_field,
190
- :background_field,
191
- :related_field,
192
- :indexed_terms_field
193
- ]
275
+ # ===========================
276
+ # COLLECTION SHOW PAGE FIELDS
277
+ # ===========================
194
278
 
195
- config.show.context_sidebar_items = [
196
- :in_person_field,
197
- :terms_field,
198
- :cite_field
199
- ]
279
+ # Collection Show Page - Summary Section
280
+ config.add_summary_field 'creators', field: 'creator_ssim', link_to_facet: true
281
+ config.add_summary_field 'abstract', field: 'abstract_html_tesm', helper_method: :render_html_tags
282
+ config.add_summary_field 'extent', field: 'extent_ssm'
283
+ config.add_summary_field 'language', field: 'language_ssim'
284
+ config.add_summary_field 'prefercite', field: 'prefercite_html_tesm', helper_method: :render_html_tags
200
285
 
201
- config.show.component_metadata_partials = [
202
- :component_field,
203
- :component_indexed_terms_field
204
- ]
286
+ # Collection Show Page - Background Section
287
+ config.add_background_field 'scopecontent', field: 'scopecontent_html_tesm', helper_method: :render_html_tags
288
+ config.add_background_field 'bioghist', field: 'bioghist_html_tesm', helper_method: :render_html_tags
289
+ config.add_background_field 'acqinfo', field: 'acqinfo_ssim', helper_method: :render_html_tags
290
+ config.add_background_field 'appraisal', field: 'appraisal_html_tesm', helper_method: :render_html_tags
291
+ config.add_background_field 'custodhist', field: 'custodhist_html_tesm', helper_method: :render_html_tags
292
+ config.add_background_field 'processinfo', field: 'processinfo_html_tesm', helper_method: :render_html_tags
293
+ config.add_background_field 'arrangement', field: 'arrangement_html_tesm', helper_method: :render_html_tags
294
+ config.add_background_field 'accruals', field: 'accruals_html_tesm', helper_method: :render_html_tags
295
+ config.add_background_field 'phystech', field: 'phystech_html_tesm', helper_method: :render_html_tags
296
+ config.add_background_field 'physloc', field: 'physloc_html_tesm', helper_method: :render_html_tags
297
+ config.add_background_field 'physdesc', field: 'physdesc_tesim', helper_method: :render_html_tags
298
+ config.add_background_field 'physfacet', field: 'physfacet_tesim', helper_method: :render_html_tags
299
+ config.add_background_field 'dimensions', field: 'dimensions_tesim', helper_method: :render_html_tags
300
+ config.add_background_field 'materialspec', field: 'materialspec_html_tesm', helper_method: :render_html_tags
301
+ config.add_background_field 'fileplan', field: 'fileplan_html_tesm', helper_method: :render_html_tags
302
+ config.add_background_field 'descrules', field: 'descrules_ssm', helper_method: :render_html_tags
303
+ config.add_background_field 'note', field: 'note_html_tesm', helper_method: :render_html_tags
205
304
 
206
- config.show.component_sidebar_items = [
207
- :in_person_field,
208
- :component_terms_field,
209
- :cite_field
210
- ]
305
+ # Collection Show Page - Related Section
306
+ config.add_related_field 'relatedmaterial', field: 'relatedmaterial_html_tesm', helper_method: :render_html_tags
307
+ config.add_related_field 'separatedmaterial', field: 'separatedmaterial_html_tesm', helper_method: :render_html_tags
308
+ config.add_related_field 'otherfindaid', field: 'otherfindaid_html_tesm', helper_method: :render_html_tags
309
+ config.add_related_field 'altformavail', field: 'altformavail_html_tesm', helper_method: :render_html_tags
310
+ config.add_related_field 'originalsloc', field: 'originalsloc_html_tesm', helper_method: :render_html_tags
311
+ config.add_related_field 'odd', field: 'odd_html_tesm', helper_method: :render_html_tags
211
312
 
212
- # Component Show Page - Metadata Section
213
- config.add_component_field 'containers', label: 'Containers', accessor: 'containers', separator_options: {
214
- words_connector: ', ',
215
- two_words_connector: ', ',
216
- last_word_connector: ', '
217
- }, if: lambda { |_context, _field_config, document|
218
- document.containers.present?
219
- }
220
- config.add_component_field 'abstract_ssm', label: 'Abstract'
221
- config.add_component_field 'extent_ssm', label: 'Extent'
222
- config.add_component_field 'scopecontent_ssm', label: 'Scope and Content'
223
- config.add_component_field 'accessrestrict_ssm', label: 'Restrictions'
224
- config.add_component_field 'userestrict_ssm', label: 'Terms of Access'
225
- config.add_component_field 'access_subjects_ssm', label: 'Subjects', separator_options: {
226
- words_connector: '<br/>',
227
- two_words_connector: '<br/>',
228
- last_word_connector: '<br/>'
229
- }
230
-
231
313
  # Collection Show Page - Indexed Terms Section
232
- config.add_component_indexed_terms_field 'access_subjects_ssim', label: 'Subjects', :link_to_facet => true, separator_options: {
314
+ config.add_indexed_terms_field 'access_subjects', field: 'access_subjects_ssim', link_to_facet: true, separator_options: {
233
315
  words_connector: '<br/>',
234
316
  two_words_connector: '<br/>',
235
317
  last_word_connector: '<br/>'
236
318
  }
237
319
 
238
- config.add_component_indexed_terms_field 'names_ssim', label: 'Names', separator_options: {
320
+ config.add_indexed_terms_field 'names_coll', field: 'names_coll_ssim', separator_options: {
239
321
  words_connector: '<br/>',
240
322
  two_words_connector: '<br/>',
241
323
  last_word_connector: '<br/>'
242
324
  }, helper_method: :link_to_name_facet
243
325
 
244
- config.add_component_indexed_terms_field 'places_ssim', label: 'Places', :link_to_facet => true, separator_options: {
326
+ config.add_indexed_terms_field 'places', field: 'places_ssim', link_to_facet: true, separator_options: {
245
327
  words_connector: '<br/>',
246
328
  two_words_connector: '<br/>',
247
329
  last_word_connector: '<br/>'
248
330
  }
249
331
 
250
- # Component Show Page Sidebar - Terms and Condition Section
251
- config.add_component_terms_field 'parent_access_restrict_ssm', label: 'Restrictions'
252
- config.add_component_terms_field 'parent_access_terms_ssm', label: 'Terms of Access'
253
-
254
- # Collection Show Page - Summary Section
255
- config.add_summary_field 'creators_ssim', label: 'Creator', :link_to_facet => true
256
- config.add_summary_field 'abstract_ssm', label: 'Abstract'
257
- config.add_summary_field 'extent_ssm', label: 'Extent'
258
- config.add_summary_field 'language_ssm', label: 'Language'
259
- config.add_summary_field 'prefercite_ssm', label: 'Preferred citation'
260
-
261
- # Collection Show Page - In Person Section
262
- config.add_in_person_field 'id', if: :before_you_visit_note_present, label: 'Before you visit', helper_method: :context_sidebar_visit_note # Using ID because we know it will always exist
263
- config.add_in_person_field 'containers_ssim', if: :request_config_present, label: 'Request', helper_method: :context_sidebar_containers_request
264
- config.add_in_person_field 'repository_ssm', if: :repository_config_present, label: 'Location of this collection', helper_method: :context_sidebar_repository
332
+ config.add_indexed_terms_field 'indexes', field: 'indexes_html_tesm',
333
+ helper_method: :render_html_tags
265
334
 
266
- # Collection Show Page - Terms and Condition Section
267
- config.add_terms_field 'accessrestrict_ssm', label: 'Restrictions'
268
- config.add_terms_field 'userestrict_ssm', label: 'Terms of Access'
335
+ # ==========================
336
+ # COMPONENT SHOW PAGE FIELDS
337
+ # ==========================
269
338
 
270
- # Collection Show Page - How to Cite Section
271
- config.add_cite_field 'prefercite_ssm', label: 'Preferred citation'
272
-
273
- # Collection Show Page - Access Section
274
- config.add_access_field 'accessrestrict_ssm', label: 'Conditions Governing Access', helper_method: :paragraph_separator
275
- config.add_access_field 'userestrict_ssm', label: 'Terms Of Use', helper_method: :paragraph_separator
276
-
277
- # Collection Show Page - Background Section
278
- config.add_background_field 'scopecontent_ssm', label: 'Scope and Content', helper_method: :paragraph_separator
279
- config.add_background_field 'bioghist_ssm', label: 'Biographical / Historical', helper_method: :paragraph_separator
280
- config.add_background_field 'acqinfo_ssm', label: 'Acquisition information', helper_method: :paragraph_separator
281
- config.add_background_field 'appraisal_ssm', label: 'Appraisal information', helper_method: :paragraph_separator
282
- config.add_background_field 'custodhist_ssm', label: 'Custodial history', helper_method: :paragraph_separator
283
- config.add_background_field 'processinfo_ssm', label: 'Processing information', helper_method: :paragraph_separator
284
-
285
- # Collection Show Page - Related Section
286
- config.add_related_field 'relatedmaterial_ssm', label: 'Related material', helper_method: :paragraph_separator
287
- config.add_related_field 'separatedmaterial_ssm', label: 'Separated material', helper_method: :paragraph_separator
288
- config.add_related_field 'otherfindaid_ssm', label: 'Other finding aids', helper_method: :paragraph_separator
289
- config.add_related_field 'altformavail_ssm', label: 'Alternative form available', helper_method: :paragraph_separator
290
- config.add_related_field 'originalsloc_ssm', label: 'Location of originals', helper_method: :paragraph_separator
291
-
292
- # Collection Show Page - Indexed Terms Section
293
- config.add_indexed_terms_field 'access_subjects_ssim', label: 'Subjects', :link_to_facet => true, separator_options: {
339
+ # Component Show Page - Metadata Section
340
+ config.add_component_field 'containers', accessor: 'containers', separator_options: {
341
+ words_connector: ', ',
342
+ two_words_connector: ', ',
343
+ last_word_connector: ', '
344
+ }, if: lambda { |_context, _field_config, document|
345
+ document.containers.present?
346
+ }
347
+ config.add_component_field 'creators', field: 'creator_ssim', link_to_facet: true
348
+ config.add_component_field 'abstract', field: 'abstract_html_tesm', helper_method: :render_html_tags
349
+ config.add_component_field 'extent', field: 'extent_ssm'
350
+ config.add_component_field 'scopecontent', field: 'scopecontent_html_tesm', helper_method: :render_html_tags
351
+ config.add_component_field 'language', field: 'language_ssim'
352
+ config.add_component_field 'acqinfo', field: 'acqinfo_ssim', helper_method: :render_html_tags
353
+ config.add_component_field 'bioghist', field: 'bioghist_html_tesm', helper_method: :render_html_tags
354
+ config.add_component_field 'appraisal', field: 'appraisal_html_tesm', helper_method: :render_html_tags
355
+ config.add_component_field 'custodhist', field: 'custodhist_html_tesm', helper_method: :render_html_tags
356
+ config.add_component_field 'processinfo', field: 'processinfo_html_tesm', helper_method: :render_html_tags
357
+ config.add_component_field 'arrangement', field: 'arrangement_html_tesm', helper_method: :render_html_tags
358
+ config.add_component_field 'accruals', field: 'accruals_html_tesm', helper_method: :render_html_tags
359
+ config.add_component_field 'phystech', field: 'phystech_html_tesm', helper_method: :render_html_tags
360
+ config.add_component_field 'materialspec', field: 'materialspec_html_tesm', helper_method: :render_html_tags
361
+ config.add_component_field 'physloc', field: 'physloc_html_tesm', helper_method: :render_html_tags
362
+ config.add_component_field 'physdesc', field: 'physdesc_tesim', helper_method: :render_html_tags
363
+ config.add_component_field 'physfacet', field: 'physfacet_tesim', helper_method: :render_html_tags
364
+ config.add_component_field 'dimensions', field: 'dimensions_tesim', helper_method: :render_html_tags
365
+ config.add_component_field 'fileplan', field: 'fileplan_html_tesm', helper_method: :render_html_tags
366
+ config.add_component_field 'altformavail', field: 'altformavail_html_tesm', helper_method: :render_html_tags
367
+ config.add_component_field 'otherfindaid', field: 'otherfindaid_html_tesm', helper_method: :render_html_tags
368
+ config.add_component_field 'odd', field: 'odd_html_tesm', helper_method: :render_html_tags
369
+ config.add_component_field 'relatedmaterial', field: 'relatedmaterial_html_tesm', helper_method: :render_html_tags
370
+ config.add_component_field 'separatedmaterial', field: 'separatedmaterial_html_tesm', helper_method: :render_html_tags
371
+ config.add_component_field 'originalsloc', field: 'originalsloc_html_tesm', helper_method: :render_html_tags
372
+ config.add_component_field 'note', field: 'note_html_tesm', helper_method: :render_html_tags
373
+
374
+ # Component Show Page - Indexed Terms Section
375
+ config.add_component_indexed_terms_field 'access_subjects', field: 'access_subjects_ssim', link_to_facet: true, separator_options: {
294
376
  words_connector: '<br/>',
295
377
  two_words_connector: '<br/>',
296
378
  last_word_connector: '<br/>'
297
379
  }
298
380
 
299
- config.add_indexed_terms_field 'names_coll_ssim', label: 'Names', separator_options: {
381
+ config.add_component_indexed_terms_field 'names', field: 'names_ssim', separator_options: {
300
382
  words_connector: '<br/>',
301
383
  two_words_connector: '<br/>',
302
384
  last_word_connector: '<br/>'
303
385
  }, helper_method: :link_to_name_facet
304
386
 
305
- config.add_indexed_terms_field 'places_ssim', label: 'Places', :link_to_facet => true, separator_options: {
387
+ config.add_component_indexed_terms_field 'places', field: 'places_ssim', link_to_facet: true, separator_options: {
306
388
  words_connector: '<br/>',
307
389
  two_words_connector: '<br/>',
308
390
  last_word_connector: '<br/>'
309
391
  }
310
392
 
311
- # Collection Show Page - Administrative Information Section
312
- config.add_admin_info_field 'acqinfo_ssm', label: 'Acquisition information'
313
- config.add_admin_info_field 'appraisal_ssm', label: 'Appraisal information'
314
- config.add_admin_info_field 'custodhist_ssm', label: 'Custodial history'
315
- config.add_admin_info_field 'processinfo_ssm', label: 'Processing information'
393
+ config.add_component_indexed_terms_field 'indexes', field: 'indexes_html_tesm',
394
+ helper_method: :render_html_tags
316
395
 
317
- # Remove unused show document actions
318
- %i[citation email sms].each do |action|
319
- config.view_config(:show).document_actions.delete(action)
320
- end
396
+ # =================
397
+ # ACCESS TAB FIELDS
398
+ # =================
321
399
 
322
- # Insert the breadcrumbs at the beginning
323
- config.show.partials.unshift(:show_breadcrumbs)
400
+ # Collection Show Page Access Tab - Terms and Conditions Section
401
+ config.add_terms_field 'restrictions', field: 'accessrestrict_html_tesm', helper_method: :render_html_tags
402
+ config.add_terms_field 'terms', field: 'userestrict_html_tesm', helper_method: :render_html_tags
324
403
 
325
- ##
326
- # Hierarchy Index View
327
- config.view.hierarchy
328
- config.view.hierarchy.display_control = false
329
- config.view.hierarchy.partials = config.index.partials.dup
330
- config.view.hierarchy.partials.delete(:index_breadcrumb)
404
+ # Component Show Page Access Tab - Terms and Condition Section
405
+ config.add_component_terms_field 'restrictions', field: 'accessrestrict_html_tesm', helper_method: :render_html_tags
406
+ config.add_component_terms_field 'terms', field: 'userestrict_html_tesm', helper_method: :render_html_tags
407
+ config.add_component_terms_field 'parent_restrictions', field: 'parent_access_restrict_tesm', helper_method: :render_html_tags
408
+ config.add_component_terms_field 'parent_terms', field: 'parent_access_terms_tesm', helper_method: :render_html_tags
331
409
 
332
- ##
333
- # Hierarchy Index View
334
- config.view.online_contents
335
- config.view.online_contents.display_control = false
336
- config.view.online_contents.partials = config.view.hierarchy.partials.dup
410
+ # Collection and Component Show Page Access Tab - In Person Section
411
+ config.add_in_person_field 'repository_location', values: ->(_, document, _) { document.repository_config }, component: Arclight::RepositoryLocationComponent
412
+ config.add_in_person_field 'before_you_visit', values: ->(_, document, _) { document.repository_config&.visit_note }
337
413
 
338
- # #
339
- # Compact index view
340
- config.view.compact
341
- config.view.compact.partials = %i[arclight_index_compact]
414
+ # Collection and Component Show Page Access Tab - How to Cite Section
415
+ config.add_cite_field 'prefercite', field: 'prefercite_html_tesm', helper_method: :render_html_tags
342
416
 
343
- ##
344
- # Extra actions
345
- config.add_results_document_tool :google_form, partial: 'arclight/requests/google_form', if: :item_requestable?
417
+ # Collection and Component Show Page Access Tab - Contact Section
418
+ config.add_contact_field 'repository_contact', values: ->(_, document, _) { document.repository_config&.contact }
419
+
420
+ # Group header values
421
+ config.add_group_header_field 'abstract_or_scope', accessor: true, truncate: true, helper_method: :render_html_tags
346
422
  end
347
423
  end
@@ -3,6 +3,11 @@
3
3
  # provide the PDF and/or EAD (.xml) links. The
4
4
  # size value should be a String (shown as-is) or
5
5
  # the number of bytes in the download.
6
+ # - Pass a template key to use a formatted string
7
+ # which interpolates document accessors into the
8
+ # url using the %{accessor} syntax.
9
+ # - Pass a size_accessor key to pull the size of
10
+ # the file from an accessor in the solr document
6
11
  #
7
12
  sample_unitid:
8
13
  pdf:
@@ -11,3 +16,10 @@ sample_unitid:
11
16
  ead:
12
17
  href: 'http://example.com/sample.xml'
13
18
  size: 123456
19
+ # size_accessor: 'level'
20
+ default:
21
+ disabled: true
22
+ pdf:
23
+ template: 'http://example.com/%{unitid}.pdf'
24
+ ead:
25
+ template: 'http://example.com/%{unitid}.xml'
@@ -0,0 +1,61 @@
1
+ en:
2
+ blacklight:
3
+ search:
4
+ fields:
5
+ abstract: Abstract
6
+ creators: Creator
7
+ extent: Extent
8
+ language: Language
9
+ prefercite: Preferred citation
10
+
11
+ scopecontent: Scope and content
12
+ bioghist: Biographical / historical
13
+ acqinfo: Acquisition information
14
+ appraisal: Appraisal information
15
+ custodhist: Custodial history
16
+ processinfo: Processing information
17
+ arrangement: Arrangement
18
+ accruals: Accruals
19
+ phystech: Physical / technical requirements
20
+ physloc: Physical location
21
+ physdesc: Physical description
22
+ physfacet: Physical facet
23
+ dimensions: Dimensions
24
+ indexes: Indexes
25
+ descrules: Rules or conventions
26
+
27
+ relatedmaterial: Related material
28
+ separatedmaterial: Separated material
29
+ otherfindaid: Other finding aids
30
+ altformavail: Alternative form available
31
+ originalsloc: Location of originals
32
+ materialspec: Material specific details
33
+ fileplan: File plan
34
+ odd: Other descriptive data
35
+ note: Note
36
+
37
+ access_subjects: Subjects
38
+ names_coll: Names
39
+ places: Places
40
+
41
+ containers: Containers
42
+ names: Names
43
+
44
+ restrictions: Restrictions
45
+ terms: Terms of access
46
+ parent_restrictions: Parent restrictions
47
+ parent_terms: Parent terms of access
48
+ repository_location: Location of this collection
49
+ before_you_visit: Before you visit
50
+ repository_contact: Contact
51
+
52
+ facet:
53
+ collection: Collection
54
+ creator: Creator
55
+ date_range: Date range
56
+ level: Level
57
+ names: Names
58
+ repository: Repository
59
+ place: Place
60
+ subject: Subject
61
+ access: Access