arclight 0.2.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 (246) hide show
  1. checksums.yaml +4 -4
  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 +1 -0
  7. data/.rspec +0 -1
  8. data/.rubocop.yml +504 -8
  9. data/.rubocop_todo.yml +62 -199
  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 +36 -34
  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 -10
  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 -4
  33. data/app/assets/stylesheets/arclight/build.scss +4 -0
  34. data/app/assets/stylesheets/arclight/modules/hierarchy_and_online_contents.scss +117 -146
  35. data/app/assets/stylesheets/arclight/modules/highlights.scss +2 -1
  36. data/app/assets/stylesheets/arclight/modules/icons.scss +20 -0
  37. data/app/assets/stylesheets/arclight/modules/layout.scss +183 -40
  38. data/app/assets/stylesheets/arclight/modules/mastheads.scss +24 -75
  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 +197 -26
  43. data/app/assets/stylesheets/arclight/modules/show_collection.scss +21 -69
  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 +18 -17
  146. data/config/breadcrumbs.rb +24 -0
  147. data/config/i18n-tasks.yml +11 -9
  148. data/config/importmap.rb +3 -0
  149. data/config/locales/arclight.en.yml +68 -34
  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 +22 -31
  154. data/lib/arclight/exceptions.rb +1 -0
  155. data/lib/arclight/hash_absolute_xpath.rb +13 -8
  156. data/lib/arclight/level_label.rb +46 -0
  157. data/lib/arclight/normalized_date.rb +5 -10
  158. data/lib/arclight/normalized_id.rb +7 -2
  159. data/lib/arclight/normalized_title.rb +3 -0
  160. data/lib/arclight/repository.rb +70 -28
  161. data/lib/arclight/routes/hierarchy.rb +19 -0
  162. data/lib/arclight/routes.rb +8 -0
  163. data/lib/arclight/traject/ead2_component_config.rb +335 -0
  164. data/lib/arclight/traject/ead2_config.rb +172 -331
  165. data/lib/arclight/traject/nokogiri_namespaceless_reader.rb +22 -0
  166. data/lib/arclight/version.rb +1 -1
  167. data/lib/arclight/year_range.rb +13 -4
  168. data/lib/arclight.rb +6 -1
  169. data/lib/generators/arclight/install_generator.rb +100 -10
  170. data/lib/generators/arclight/templates/arclight.scss +6 -3
  171. data/lib/generators/arclight/templates/catalog_controller.rb +237 -179
  172. data/lib/generators/arclight/templates/config/downloads.yml +12 -0
  173. data/lib/generators/arclight/templates/config/locales/arclight.en.yml +61 -0
  174. data/lib/generators/arclight/templates/config/repositories.yml +42 -31
  175. data/lib/generators/arclight/update_generator.rb +1 -1
  176. data/lib/tasks/index.rake +25 -30
  177. data/package.json +15 -9
  178. data/solr/conf/schema.xml +97 -328
  179. data/solr/conf/solrconfig.xml +99 -164
  180. data/tasks/arclight.rake +18 -9
  181. data/template.rb +6 -7
  182. metadata +188 -129
  183. data/.travis.yml +0 -28
  184. data/app/assets/javascripts/arclight/collection_context.js +0 -18
  185. data/app/assets/javascripts/arclight/collection_navigation.js +0 -117
  186. data/app/assets/javascripts/arclight/collection_scrollspy.js +0 -6
  187. data/app/assets/javascripts/arclight/component_ancestors.js +0 -56
  188. data/app/assets/javascripts/arclight/oembed_viewer.js +0 -46
  189. data/app/assets/javascripts/arclight/search_results.js +0 -15
  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 -21
  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_index_compact_default.html.erb +0 -15
  200. data/app/views/catalog/_arclight_online_content_indicator.html.erb +0 -5
  201. data/app/views/catalog/_arclight_rangelimit.html.erb +0 -24
  202. data/app/views/catalog/_arclight_viewer_default.html.erb +0 -1
  203. data/app/views/catalog/_collection_contents.html.erb +0 -12
  204. data/app/views/catalog/_collection_count.html.erb +0 -7
  205. data/app/views/catalog/_collection_downloads.html.erb +0 -15
  206. data/app/views/catalog/_collection_online_contents.html.erb +0 -17
  207. data/app/views/catalog/_collection_overview.html.erb +0 -7
  208. data/app/views/catalog/_component_contents.html.erb +0 -16
  209. data/app/views/catalog/_component_overview.html.erb +0 -40
  210. data/app/views/catalog/_context_card.html.erb +0 -27
  211. data/app/views/catalog/_context_sidebar.html.erb +0 -8
  212. data/app/views/catalog/_custom_metadata.html.erb +0 -16
  213. data/app/views/catalog/_home.html.erb +0 -1
  214. data/app/views/catalog/_index_breadcrumb_default.html.erb +0 -3
  215. data/app/views/catalog/_index_default.html.erb +0 -17
  216. data/app/views/catalog/_index_header.html.erb +0 -7
  217. data/app/views/catalog/_index_header_hierarchy_default.html.erb +0 -42
  218. data/app/views/catalog/_index_header_online_contents_default.html.erb +0 -1
  219. data/app/views/catalog/_index_hierarchy_default.html.erb +0 -28
  220. data/app/views/catalog/_index_online_contents_default.html.erb +0 -6
  221. data/app/views/catalog/_results_histogram.html.erb +0 -15
  222. data/app/views/catalog/_search_results.html.erb +0 -31
  223. data/app/views/catalog/_show_breadcrumbs_default.html.erb +0 -21
  224. data/app/views/catalog/_show_collection.html.erb +0 -48
  225. data/app/views/catalog/_show_component_sidebar.html.erb +0 -12
  226. data/app/views/catalog/_show_default.html.erb +0 -42
  227. data/app/views/catalog/_show_sidebar.html.erb +0 -22
  228. data/app/views/catalog/_show_upper_metadata_collection.html.erb +0 -1
  229. data/app/views/catalog/_show_upper_metadata_default.html.erb +0 -14
  230. data/app/views/layouts/catalog_result.html.erb +0 -7
  231. data/app/views/shared/_context_sidebar.html.erb +0 -8
  232. data/app/views/shared/_header_navbar.html.erb +0 -65
  233. data/lib/arclight/custom_component.rb +0 -99
  234. data/lib/arclight/custom_document.rb +0 -93
  235. data/lib/arclight/indexer.rb +0 -9
  236. data/lib/arclight/shared_indexing_behavior.rb +0 -97
  237. data/lib/arclight/shared_terminology_behavior.rb +0 -65
  238. data/lib/arclight/solr_ead_indexer_ext.rb +0 -155
  239. data/lib/arclight/viewer.rb +0 -45
  240. data/lib/arclight/viewers/oembed.rb +0 -56
  241. data/lib/generators/arclight/templates/arclight.js +0 -2
  242. data/solr/conf/scripts.conf +0 -24
  243. data/vendor/assets/javascripts/responsiveTruncator.js +0 -69
  244. data/vendor/assets/javascripts/stickyfill.js +0 -480
  245. /data/app/assets/images/{blacklight → arclight}/logo.png +0 -0
  246. /data/{app/views/catalog/_arclight_document_index_header_hierarchy_default.html.erb → config/repositories.yml} +0 -0
@@ -1,8 +0,0 @@
1
- <% unless blacklight_config.show.context_sidebar_items.nil? %>
2
- <div id="accordion" role="tablist" aria-multiselectable="true">
3
- <% items = blacklight_config.show.context_sidebar_items.select { |i| fields_have_content?(@document, i) } %>
4
- <% items.each_with_index do |item, index| %>
5
- <%= render partial: 'context_card', locals: { document: @document, field_accessor: item, card_index: index} %>
6
- <% end %>
7
- </div>
8
- <% end %>
@@ -1,16 +0,0 @@
1
- <% doc_presenter = show_presenter(document).with_field_group(field_accessor) %>
2
-
3
- <%= content_tag(:div, id: t("arclight.views.show.sections.#{field_accessor}").parameterize) do %>
4
- <h3 class='al-show-sub-heading'>
5
- <%= t("arclight.views.show.sections.#{field_accessor}", level: document.level) %>
6
- </h3>
7
-
8
- <dl class="row dl-invert">
9
- <% generic_document_fields(field_accessor).each do |field_name, field| %>
10
- <% if generic_should_render_field?(field_accessor, document, field) %>
11
- <dt class="blacklight-<%= field_name.parameterize %> col-md-3"><%= generic_render_document_field_label(field_accessor, document, field: field_name) %></dt>
12
- <dd class="blacklight-<%= field_name.parameterize %> col-md-9"><%= doc_presenter.field_value field %></dd>
13
- <% end %>
14
- <% end %>
15
- </dl>
16
- <% end %>
@@ -1 +0,0 @@
1
-
@@ -1,3 +0,0 @@
1
- <div class='breadcrumb-links'>
2
- <%= parents_to_links(document) %>
3
- </div>
@@ -1,17 +0,0 @@
1
- <%= content_tag('div', class: 'al-document-creator') do %>
2
- <%= document.creator %>
3
- <% end if document.creator %>
4
-
5
- <%= content_tag('div', class: 'al-document-extent') do %>
6
- <%= document.extent %>
7
- <% end if document.extent %>
8
-
9
- <%= content_tag('div', class: 'al-document-abstract-or-scope') do %>
10
- <%= content_tag('div', 'data-arclight-truncate' => true) do %>
11
- <%= document.abstract_or_scope %>
12
- <% end %>
13
- <% end if document.abstract_or_scope %>
14
-
15
- <%= content_tag('div', class: 'al-document-highlight') do %>
16
- <%= document.highlights.join('<br/>').html_safe %>
17
- <% end if document.highlights %>
@@ -1,7 +0,0 @@
1
- <%# header bar for doc items in index view -%>
2
- <div class="documentHeader row" data-document-id="<%= document.id %>">
3
- <h3 class="index_title document-title-heading col-md-12">
4
- <% counter = document_counter_with_offset(document_counter) %>
5
- <%= link_to_document document, document_show_link_field(document), counter: counter %>
6
- </h3>
7
- </div>
@@ -1,42 +0,0 @@
1
- <div class="documentHeader row" data-document-id="<%= document.id %>">
2
- <% requestable = item_requestable?('', { document: document }) %>
3
- <h3 class="index_title document-title-heading col-md-8">
4
- <% if document.containers.present? %>
5
- <span class="document-title-containers">
6
- <%= document.containers.join(', ') %>:
7
- </span>
8
- <% end %>
9
- <% counter = document_counter_with_offset(document_counter) %>
10
- <%= link_to_document document, document_show_link_field(document), counter: counter %>
11
- <%= render_document_partial(document, 'arclight_online_content_indicator') %>
12
- <% if document.children? %>
13
- <div class='al-hierarchy-children-status'>
14
- <span class='badge badge-default al-number-of-children-badge'>
15
- <%= t(:'arclight.views.index.number_of_children', count: document.number_of_children) %>
16
- <% unless hierarchy_component_context? %>
17
- <%= link_to(
18
- t('arclight.hierarchy.view_all'),
19
- "##{document.reference}-collapsible-hierarchy",
20
- class: 'al-toggle-view-all',
21
- data: {
22
- toggle: 'collapse'
23
- }
24
- )
25
- %>
26
- <% end %>
27
- </span>
28
- </div>
29
- <% end %>
30
- </h3>
31
-
32
- <div class="al-hierarchy-side-content float-right col">
33
- <% unless hierarchy_component_context? %>
34
- <div class="index-document-functions">
35
- <%= render partial: 'catalog/bookmark_control', locals: { document: document } %>
36
- </div>
37
- <% end %>
38
- <% if requestable %>
39
- <%= render partial: 'arclight/requests/google_form', locals: { document: document } %>
40
- <% end %>
41
- </div>
42
- </div>
@@ -1 +0,0 @@
1
- <%= render_document_partial(document, :index_header_hierarchy, document_counter: document_counter) %>
@@ -1,28 +0,0 @@
1
- <%= content_tag('div', class: 'al-document-abstract-or-scope') do %>
2
- <%= content_tag(:h4, I18n.t('arclight.hierarchy.scope_and_contents'), class: 'al-hierarchy-sub-heading') %>
3
- <%= content_tag('div', 'data-arclight-truncate' => true) do %>
4
- <%= document.abstract_or_scope %>
5
- <% end %>
6
- <% end if document.abstract_or_scope %>
7
-
8
- <% if document.number_of_children > 0 %>
9
- <%= content_tag(:div, id: "#{document.reference}-collapsible-hierarchy",
10
- class: "collapse al-hierarchy-level-#{document.component_level}",
11
- ) do %>
12
-
13
- <%= content_tag(
14
- :div, '',
15
- class: 'al-contents',
16
- data: {
17
- arclight: {
18
- hierarchy: true,
19
- level: document.component_level + 1,
20
- path: search_catalog_path,
21
- name: document.collection_name,
22
- parent: document.reference
23
- }
24
- }
25
- ) %>
26
-
27
- <% end %>
28
- <% end %>
@@ -1,6 +0,0 @@
1
- <%= content_tag('div', class: 'al-document-abstract-or-scope', title: document.abstract_or_scope) do %>
2
- <%= content_tag(:h4, I18n.t('arclight.hierarchy.scope_and_contents'), class: 'al-hierarchy-sub-heading') %>
3
- <%= content_tag('div', 'data-arclight-truncate' => true) do %>
4
- <%= document.abstract_or_scope %>
5
- <% end %>
6
- <% end if document.abstract_or_scope %>
@@ -1,15 +0,0 @@
1
- <div class='al-data-range-histogram row'>
2
- <div class='col-md-12'>
3
- <div id='al-date-range-histogram-content' class='collapse facet-content'>
4
- <%= render partial: 'arclight_rangelimit', locals: { field_name: :date_range_sim, solr_field: :date_range_sim } %>
5
- </div>
6
- <a class='float-right' data-toggle='collapse' href='#al-date-range-histogram-content' aria-expanded='false' aria-controls='al-date-range-histogram-content'>
7
- <span id="al-date-range-histogram-show">
8
- <%= t('arclight.date_range_histogram.show') %>
9
- </span>
10
- <span id="al-date-range-histogram-hide" hidden="hidden">
11
- <%= t('arclight.date_range_histogram.hide') %>
12
- </span>
13
- </a>
14
- </div>
15
- </div>
@@ -1,31 +0,0 @@
1
- <h2 class="sr-only top-content-title"><%= t('blacklight.search.search_results_header') %></h2>
2
-
3
- <% @page_title = t('blacklight.search.page_title.title', :constraints => render_search_to_page_title(params), :application_name => application_name) %>
4
-
5
- <% content_for(:head) do %>
6
- <%= render_opensearch_response_metadata %>
7
- <%= rss_feed_link_tag %>
8
- <%= atom_feed_link_tag %>
9
- <% end %>
10
-
11
- <% content_for(:container_header) do %>
12
- <%= render 'shared/breadcrumbs' %>
13
- <%= render 'search_results_repository' %>
14
- <%= render 'collection_count' %>
15
- <%= render 'results_histogram' %>
16
- <%= render 'constraints' %>
17
- <% end %>
18
-
19
- <%= render 'search_header' %>
20
-
21
- <h2 class="sr-only"><%= t('blacklight.search.search_results') %></h2>
22
-
23
- <%- if @response.empty? %>
24
- <%= render "zero_results" %>
25
- <%- elsif render_grouped_response? %>
26
- <%= render_grouped_document_index %>
27
- <%- else %>
28
- <%= render_document_index %>
29
- <%- end %>
30
-
31
- <%= render 'results_pagination' %>
@@ -1,21 +0,0 @@
1
- <% parents = Arclight::Parents.from_solr_document(document).as_parents %>
2
- <div class='al-show-breadcrumb'>
3
- <nav aria-label="breadcrumb">
4
- <ol class="breadcrumb">
5
- <li class="breadcrumb-item breadcrumb-item-1">
6
- <%= link_to t('arclight.routes.home'), root_path %>
7
- </li>
8
- <li class="breadcrumb-item breadcrumb-item-2 al-bc-item">
9
- <%= link_to t('arclight.routes.collections'), arclight_engine.collections_path %>
10
- </li>
11
- <% parents.each_with_index.map do |parent, index| %>
12
- <%= content_tag :li, class: "breadcrumb-item breadcrumb-item-#{index + 3} al-bc-item" do %>
13
- <%= link_to parent.label, solr_document_path(parent.global_id) %>
14
- <% end %>
15
- <% end %>
16
- </ol>
17
- <h1 class="breadcrumb-item breadcrumb-item-<%= parents.length + 3 %> al-bc-item">
18
- <%= document.normalized_title %>
19
- </h1>
20
- </nav>
21
- </div>
@@ -1,48 +0,0 @@
1
- <div class='row'>
2
- <div class='col-md-3'>
3
- <%= render partial: 'show_sidebar' %>
4
- </div>
5
- <div class='col-md-9'>
6
- <div class='row'>
7
- <div class='col-lg-9'>
8
- <ul class='nav nav-pills' role='tablist'>
9
- <li class='nav-item'>
10
- <a class='nav-link active' data-toggle='pill' href='#overview' role='tab'>
11
- <%= t 'arclight.views.show.overview' %>
12
- </a>
13
- </li>
14
- <li class='nav-item'>
15
- <a class='nav-link disabled' data-toggle='pill' href='#contents' role='tab' data-hierarchy-enable-me='true'>
16
- <%= t 'arclight.views.show.no_contents' %>
17
- </a>
18
- </li>
19
- <li class='nav-item'>
20
- <a class='nav-link <%= 'disabled' unless document.digital_objects.present? || document.online_content? %>' data-toggle='pill' href='#online-content' role='tab' data-arclight-online-content-tab='true'>
21
- <% if document.digital_objects.present? || document.online_content? %>
22
- <%= t 'arclight.views.show.online_content' %>
23
- <% else %>
24
- <%= t 'arclight.views.show.no_online_content' %>
25
- <% end %>
26
- </a>
27
- </li>
28
- </ul>
29
- </div>
30
-
31
- <div class='col'>
32
- <%= render partial: 'collection_downloads', locals: { downloads: collection_downloads(document) } %>
33
- </div>
34
- </div>
35
-
36
- <div class='tab-content'>
37
- <div class='tab-pane active' id='overview' role='tabpanel'>
38
- <%= render 'collection_overview' %>
39
- </div>
40
- <div class='tab-pane' id='contents' role='tabpanel'>
41
- <%= render 'collection_contents' %>
42
- </div>
43
- <div class='tab-pane' id='online-content' role='tabpanel'>
44
- <%= render partial: 'collection_online_contents', locals: { document: document } %>
45
- </div>
46
- </div>
47
- </div>
48
- </div>
@@ -1,12 +0,0 @@
1
- <div class='al-sticky-sidebar'>
2
- <h2 class="sr-only">Sidebar</h2>
3
-
4
- <% unless blacklight_config.show.component_sidebar_items.nil? %>
5
- <div id="accordion" role="tablist" aria-multiselectable="true">
6
- <% items = blacklight_config.show.component_sidebar_items.select { |i| fields_have_content?(@document, i) } %>
7
- <% items.each_with_index do |item, index| %>
8
- <%= render partial: 'context_card', locals: { document: @document, field_accessor: item, card_index: index} %>
9
- <% end %>
10
- </div>
11
- <% end %>
12
- </div>
@@ -1,42 +0,0 @@
1
- <div class='row'>
2
- <div class='col-md-3'>
3
- <%= render partial: 'show_component_sidebar' %>
4
- </div>
5
- <div class='col-md-9'>
6
- <ul class='nav nav-pills' role='tablist'>
7
- <li class='nav-item'>
8
- <a class='nav-link active' data-toggle='pill' href='#overview' role='tab'>
9
- <%= t 'arclight.views.show.overview' %>
10
- </a>
11
- </li>
12
- <% if document.children? %>
13
- <li class='nav-item'>
14
- <a class='nav-link disabled' data-toggle='pill' href='#contents' role='tab' data-hierarchy-enable-me='true'>
15
- <%= t 'arclight.views.show.no_contents' %>
16
- </a>
17
- </li>
18
- <% end %>
19
- <li class='nav-item'>
20
- <a class='nav-link <%= 'disabled' unless document.online_content? %>' data-toggle='pill' href='#online-content' role='tab' data-arclight-online-content-tab='true'>
21
- <% if document.online_content? %>
22
- <%= t 'arclight.views.show.online_content' %>
23
- <% else %>
24
- <%= t 'arclight.views.show.no_online_content' %>
25
- <% end %>
26
- </a>
27
- </li>
28
- </ul>
29
- <div class='tab-content'>
30
- <div class='tab-pane active' id='overview' role='tabpanel'>
31
- <%= render 'component_overview' %>
32
- </div>
33
- <div class='tab-pane' id='contents' role='tabpanel'>
34
- <%= render 'component_contents' %>
35
- </div>
36
- <div class='tab-pane' id='online-content' role='tabpanel'>
37
- <%= render_document_partial(document, 'arclight_viewer') %>
38
- </div>
39
- </div>
40
- </div>
41
-
42
- </div>
@@ -1,22 +0,0 @@
1
- <div class='al-sticky-sidebar'>
2
- <h2 class="sr-only">Sidebar</h2>
3
- <div class='al-sidebar-navigation-overview card'>
4
- <div class='card-header'>
5
- <h3 class="mb-0"><%= t('arclight.views.show.navigation_sidebar.title') %></h3>
6
- </div>
7
- <div class='card-body'>
8
- <ul class='nav nav-pills flex-column'>
9
- <% unless blacklight_config.show.metadata_partials.nil? %>
10
- <% blacklight_config.show.metadata_partials.each do |item| %>
11
- <% next unless fields_have_content?(@document, item) %>
12
- <li class='nav-item'>
13
- <%= link_to t("arclight.views.show.sections.#{item}"), "##{t("arclight.views.show.sections.#{item}").parameterize}", class: 'nav-link' %>
14
- </li>
15
- <% end %>
16
- <% end %>
17
- </ul>
18
- </div>
19
- </div>
20
-
21
- <%= render 'shared/context_sidebar' %>
22
- </div>
@@ -1 +0,0 @@
1
- <% # intentionally left blank to not repeat collection level metadata that appears in the context overview %>
@@ -1,14 +0,0 @@
1
- <% if blacklight_config.show.component_metadata_partials.present? %>
2
- <% parents = Arclight::Parents.from_solr_document(document).as_parents %>
3
- <dl class="breadcrumb-item breadcrumb-item-<%= parents.length + 3 %>">
4
- <% blacklight_config.show.component_metadata_partials.each do |metadata| %>
5
- <% doc_presenter = show_presenter(document).with_field_group(metadata) %>
6
- <% generic_document_fields(metadata).each do |field_name, field| %>
7
- <% if generic_should_render_field?(metadata, document, field) %>
8
- <dt class="blacklight-<%= field_name.parameterize %>"><%= generic_render_document_field_label(metadata, document, field: field_name) %></dt>
9
- <dd class="blacklight-<%= field_name.parameterize %>"><%= doc_presenter.field_value field %></dd>
10
- <% end %>
11
- <% end %>
12
- <% end %>
13
- </dl>
14
- <% end %>
@@ -1,7 +0,0 @@
1
- <% content_for(:content) do %>
2
- <section class="<%= custom_show_content_classes %>">
3
- <%= yield %>
4
- </section>
5
- <% end %>
6
-
7
- <%= render template: "layouts/blacklight/base" %>
@@ -1,8 +0,0 @@
1
- <% unless blacklight_config.show.context_sidebar_items.nil? %>
2
- <div id="accordion" role="tablist" aria-multiselectable="true">
3
- <% items = blacklight_config.show.context_sidebar_items.select { |i| fields_have_content?(@document, i) } %>
4
- <% items.each_with_index do |item, index| %>
5
- <%= render partial: 'context_card', locals: { document: @document, field_accessor: item, card_index: index} %>
6
- <% end %>
7
- </div>
8
- <% end %>
@@ -1,65 +0,0 @@
1
- <header>
2
- <nav class="navbar navbar-expand-md navbar-dark bg-dark topbar" aria-label="utilities" role="navigation">
3
- <div class="<%= container_classes %>">
4
- <%= link_to application_name, root_path, class: "navbar-brand" %>
5
- <button class="navbar-toggler navbar-toggler-right" type="button" data-toggle="collapse" data-target="#user-util-collapse" aria-controls="user-util-collapse" aria-expanded="false" aria-label="Toggle navigation">
6
- <span class="navbar-toggler-icon"></span>
7
- </button>
8
-
9
- <div class="collapse navbar-collapse justify-content-md-end" id="user-util-collapse">
10
- <%= render 'shared/user_util_links' %>
11
- </div>
12
- </div>
13
- </nav>
14
-
15
- <% if controller_name == 'catalog' && !has_search_parameters? && action_name == 'index' %>
16
- <div class='al-homepage-masthead jumbotron'>
17
- <div class="container">
18
- <div class="row align-items-center">
19
- <div class="col-md-8 masthead-center" >
20
- <h1><%= t('arclight.masthead_heading') %></h1>
21
- </div>
22
-
23
- <div class="col-md-4 nav-links d-flex justify-content-end" >
24
- <span class="navbar-nav" aria-label="browse" role="navigation">
25
- <%= render 'shared/main_menu_links' %>
26
- </span>
27
- </div>
28
- </div>
29
- </div>
30
- <div class='row justify-content-md-center'>
31
- <div class='col-md-6 col-sm-12'>
32
- <div class='navbar-search'>
33
- <%= render_search_bar %>
34
- </div>
35
- </div>
36
- </div>
37
- </div>
38
- <% else %>
39
- <div class='bg-faded al-masthead'>
40
- <div class="container">
41
- <div class="row align-items-center">
42
- <div class="col-md-8" >
43
- <h1><%= t('arclight.masthead_heading') %></h1>
44
- </div>
45
-
46
- <div class="col-md-4 nav-links d-flex justify-content-end" >
47
- <span class="navbar-nav" aria-label="browse" role="navigation">
48
- <%= render 'shared/main_menu_links' %>
49
- </span>
50
- </div>
51
- </div>
52
- </div>
53
- </div>
54
- <div class="navbar-search navbar navbar-expand-sm bg-faded">
55
- <div class="<%= container_classes %>">
56
- <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarSupportedContent" aria-controls="navbarSupportedContent" aria-expanded="false" aria-label="Toggle navigation">
57
- <span class="navbar-toggler-icon"></span>
58
- </button>
59
- <div class="collapse navbar-collapse" id="navbarSupportedContent">
60
- <%= render_search_bar %>
61
- </div>
62
- </div>
63
- </div>
64
- <% end %>
65
- </header>
@@ -1,99 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module Arclight
4
- ##
5
- # An Arclight custom component indexing code
6
- class CustomComponent < SolrEad::Component
7
- extend Arclight::SharedTerminologyBehavior
8
- include Arclight::SharedIndexingBehavior
9
- use_terminology SolrEad::Component
10
-
11
- # we extend the terminology to provide additional fields and/or indexing strategies
12
- # than `solr_ead` provides as-is. in many cases we're doing redundant indexing, but
13
- # we're trying to modify the `solr_ead` gem as little as possible
14
- extend_terminology do |t|
15
- # identifiers
16
- t.level(path: 'c/@level', index_as: %i[displayable]) # machine-readable for string `level_ssm`
17
- t.otherlevel(path: 'c/@otherlevel', index_as: %i[displayable])
18
- t.ref_(path: '/c/@id', index_as: %i[displayable])
19
-
20
- # facets
21
- t.creator(path: "c/did/origination[@label='creator']/*/text()", index_as: %i[displayable facetable symbol])
22
- t.places(path: 'c/controlaccess/geogname/text()', index_as: %i[displayable facetable symbol])
23
-
24
- add_unitid(t, 'c/')
25
- add_extent(t, 'c/')
26
- add_dates(t, 'c/')
27
- add_searchable_notes(t, 'c/')
28
- end
29
-
30
- def to_solr(solr_doc = {})
31
- super
32
- solr_doc['id'] = Arclight::NormalizedId.new(solr_doc['id']).to_s
33
- solr_doc['creator_sort'] = creator.to_a.join(', ') if creator.present?
34
- add_component_fields(solr_doc)
35
- solr_doc
36
- end
37
-
38
- private
39
-
40
- def add_component_fields(solr_doc)
41
- component_field_definitions.each do |field|
42
- # we want to use `set_field` rather than `insert_field` since we may be overriding fields
43
- Solrizer.set_field(solr_doc, field[:name], field[:value], field[:index_as])
44
- end
45
- add_date_ranges(solr_doc)
46
- add_normalized_title(solr_doc)
47
- resolve_repository(solr_doc)
48
- add_digital_content(prefix: 'c', solr_doc: solr_doc)
49
- add_digital_content(prefix: 'c/did', solr_doc: solr_doc)
50
- end
51
-
52
- def component_field_definitions
53
- [
54
- { name: 'level', value: formatted_level, index_as: :facetable },
55
- { name: 'names', value: names, index_as: :symbol },
56
- { name: 'access_subjects', value: access_subjects, index_as: :symbol },
57
- { name: 'containers', value: containers, index_as: :symbol },
58
- { name: 'has_online_content', value: online_content?, index_as: :symbol }
59
- ]
60
- end
61
-
62
- def resolve_repository(solr_doc)
63
- repository = solr_doc[Solrizer.solr_name('repository', :displayable)]
64
- %i[displayable facetable].each do |index_as|
65
- Solrizer.set_field(solr_doc, 'repository', repository_as_configured(repository), index_as)
66
- end
67
- end
68
-
69
- # @see http://eadiva.com/2/c/
70
- def formatted_level
71
- # terminology definitions for level yield Arrays and in this case single values
72
- # TODO: OM changes the behavior of `level = level.first` such that it always returns `nil`
73
- # so need our own local variable here
74
- actual_level = level.first.to_s if level.respond_to? :first
75
-
76
- if actual_level == 'otherlevel'
77
- alternative_level = otherlevel.first.to_s if otherlevel.respond_to? :first
78
- alternative_level.present? ? alternative_level : 'Other'
79
- elsif actual_level.present?
80
- actual_level.capitalize
81
- end
82
- end
83
-
84
- def names
85
- names_array(%w[corpname famname name persname], parent: 'c')
86
- end
87
-
88
- def access_subjects
89
- subjects_array(%w[subject function occupation genreform], parent: 'c')
90
- end
91
-
92
- def containers
93
- contains = search('//container').to_a
94
- contains.map do |c|
95
- "#{c.attributes['type'].try(:value)} #{c.text}".strip
96
- end
97
- end
98
- end
99
- end
@@ -1,93 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module Arclight
4
- ##
5
- # An Arclight custom document indexing code
6
- class CustomDocument < SolrEad::Document
7
- extend Arclight::SharedTerminologyBehavior
8
- include Arclight::SharedIndexingBehavior
9
- use_terminology SolrEad::Document
10
-
11
- # we extend the terminology to provide additional fields and/or indexing strategies
12
- # than `solr_ead` provides as-is. in many cases we're doing redundant indexing, but
13
- # we're trying to modify the `solr_ead` gem as little as possible
14
- extend_terminology do |t|
15
- # facets
16
- t.repository(path: 'archdesc/did/repository/corpname/text() | archdesc/did/repository/name/text()', index_as: %i[displayable facetable])
17
- t.creator(path: "archdesc/did/origination[@label='creator']/*/text()", index_as: %i[displayable facetable symbol])
18
- t.creator_persname(path: "archdesc/did/origination[@label='creator']/persname/text()", index_as: %i[displayable facetable symbol])
19
- t.creator_corpname(path: "archdesc/did/origination[@label='creator']/corpname/text()", index_as: %i[displayable facetable symbol])
20
- t.creator_famname(path: "archdesc/did/origination[@label='creator']/famname/text()", index_as: %i[displayable facetable symbol])
21
- t.function(path: 'archdesc/controlaccess/function/text()', index_as: %i[displayable facetable])
22
- t.occupation(path: 'archdesc/controlaccess/occupation/text()', index_as: %i[displayable facetable])
23
- t.places(path: 'archdesc/controlaccess/geogname/text()', index_as: %i[displayable facetable symbol])
24
-
25
- add_unitid(t, 'archdesc/')
26
- add_extent(t, 'archdesc/')
27
- add_dates(t, 'archdesc/')
28
- add_searchable_notes(t, 'archdesc/')
29
- end
30
-
31
- def to_solr(solr_doc = {})
32
- super
33
- solr_doc['id'] = Arclight::NormalizedId.new(eadid.first).to_s
34
- solr_doc['creator_sort'] = creator.to_a.join(', ') if creator.present?
35
- add_document_fields(solr_doc)
36
- solr_doc
37
- end
38
-
39
- private
40
-
41
- def add_document_fields(solr_doc)
42
- arclight_field_definitions.each do |field|
43
- # we want to use `set_field` rather than `insert_field` since we may be overriding fields
44
- Solrizer.set_field(solr_doc, field[:name], field[:value], field[:index_as])
45
- end
46
-
47
- add_date_ranges(solr_doc)
48
- add_digital_content(prefix: 'ead/archdesc', solr_doc: solr_doc)
49
- add_normalized_titles(solr_doc)
50
- end
51
-
52
- def add_normalized_titles(solr_doc)
53
- title = add_normalized_title(solr_doc)
54
- Solrizer.set_field(solr_doc, 'collection', title, :facetable)
55
- Solrizer.set_field(solr_doc, 'collection', title, :displayable)
56
- end
57
-
58
- def arclight_field_definitions
59
- [
60
- { name: 'level', value: 'collection', index_as: :displayable },
61
- { name: 'level', value: 'Collection', index_as: :facetable },
62
- { name: 'names', value: names, index_as: :symbol },
63
- { name: 'access_subjects', value: access_subjects, index_as: :symbol },
64
- { name: 'creators', value: creators, index_as: :symbol },
65
- { name: 'has_online_content', value: online_content?, index_as: :symbol },
66
- { name: 'repository', value: repository_as_configured(repository), index_as: :displayable },
67
- { name: 'repository', value: repository_as_configured(repository), index_as: :facetable },
68
- { name: 'names_coll', value: names_coll, index_as: :symbol }
69
- ]
70
- end
71
-
72
- def names
73
- [corpname, famname, name, persname].flatten.compact.uniq - repository
74
- end
75
-
76
- def names_coll
77
- names_array(%w[corpname famname name persname], parent: 'archdesc')
78
- end
79
-
80
- def creators
81
- [creator_persname, creator_corpname, creator_famname].flatten.compact.uniq - repository
82
- end
83
-
84
- # Combine subjets into one group from
85
- # <controlaccess/><subject></subject>
86
- # <controlaccess/><function></function>
87
- # <controlaccess/><genreform></genreform>
88
- # <controlaccess/><occupation></occupation>
89
- def access_subjects
90
- subjects_array(%w[subject function occupation genreform], parent: 'archdesc')
91
- end
92
- end
93
- end
@@ -1,9 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module Arclight
4
- ##
5
- # A simple wrapper class around the SolrEad::Indexer so we can add our own behavior
6
- class Indexer < SolrEad::Indexer
7
- include Arclight::SolrEadIndexerExt
8
- end
9
- end