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,42 +1,53 @@
1
1
  nlm:
2
2
  name: 'National Library of Medicine. History of Medicine Division'
3
3
  description: 'NLM’s History of Medicine Division collects, preserves, makes available, and interprets for diverse audiences one of the world’s richest collections of historical material related to human health and disease.'
4
- building: 'Building 38, Room 1E-21'
5
- address1: '8600 Rockville Pike'
6
- address2: ''
7
- city: 'Bethesda'
8
- state: 'MD'
9
- zip: '20894'
10
- country: 'USA'
11
- phone: ''
12
- contact_info: 'hmdref@nlm.nih.gov'
13
- thumbnail_url: "https://collections.nlm.nih.gov/pageturnerserver/ajaxp?theurl=http://localhost:8080/fedora/get/nlm:nlmuid-101421040-img/THUMB"
14
- google_request_url: 'https://docs.google.com/a/stanford.edu/forms/d/e/1FAIpQLSeOamhY_IcFw4sPnz0ddwWWkrPaHbM5wp7JVbOLOL_mIusEyw/viewform'
15
- google_request_mappings: "document_url=entry.1980510262&collection_name=entry.619150170&collection_creator=entry.14428541&eadid=entry.996397105&containers=entry.1125277048&title=entry.862815208"
4
+ contact_html: |
5
+ <div class="al-repository-contact-info"><a href="mailto:hmdref@nlm.nih.gov">hmdref@nlm.nih.gov</a></div>
6
+ location_html: |
7
+ <div class="al-repository-street-address-building">Building 38, Room 1E-21</div>
8
+ <div class="al-repository-street-address-address1">8600 Rockville Pike</div>
9
+ <div class="al-repository-street-address-city_state_zip_country">Bethesda, MD 20894, USA</div>
10
+ thumbnail_url: "https://upload.wikimedia.org/wikipedia/commons/thumb/8/8b/United_States_National_Library_of_Medicine_1999.jpg/500px-United_States_National_Library_of_Medicine_1999.jpg"
11
+ request_types:
12
+ google_form:
13
+ request_url: 'https://docs.google.com/a/stanford.edu/forms/d/e/1FAIpQLSeOamhY_IcFw4sPnz0ddwWWkrPaHbM5wp7JVbOLOL_mIusEyw/viewform'
14
+ request_mappings: "document_url=entry.1980510262&collection_name=entry.619150170&collection_creator=entry.14428541&eadid=entry.996397105&containers=entry.1125277048&title=entry.862815208"
15
+
16
16
  sul-spec:
17
17
  name: 'Stanford University Libraries. Special Collections and University Archives'
18
18
  visit_note: 'Special Collections and University Archives materials are stored offsite and must be paged 36 hours in advance.'
19
19
  description: 'The Special Collections and University Archives Department of Stanford University Libraries is committed to acquiring, preserving, and providing access to primary source materials that support the research needs of the Stanford community and beyond. There are three distinct divisions in our department: Manuscripts, Rare Books and University Archives. We welcome all students, scholars and members of the general public to the Field Reading Room. Learn more about using and accessing our collections.'
20
- building: 'Green Library'
21
- address1: '557 Escondido Mall'
22
- address2: ''
23
- city: 'Stanford'
24
- state: 'CA'
25
- zip: '94305'
26
- country: 'USA'
27
- phone: '(650) 725-1022'
28
- contact_info: 'specialcollections@stanford.edu'
29
- thumbnail_url: 'https://library.stanford.edu/sites/default/files/styles/150x150/public/collection/image/Collections-Super-Enlight.jpg'
20
+ contact_html: |
21
+ <div class="al-repository-contact-phone">(650) 725-1022</div>
22
+ <div class="al-repository-contact-info"><a href="mailto:specialcollections@stanford.edu">specialcollections@stanford.edu</a></div>
23
+ location_html: |
24
+ <div class="al-repository-street-address-building">Green Library</div>
25
+ <div class="al-repository-street-address-address1">557 Escondido Mall</div>
26
+ <div class="al-repository-street-address-city_state_zip_country">Stanford, CA 94305, USA</div>
27
+ thumbnail_url: 'https://upload.wikimedia.org/wikipedia/commons/thumb/2/2b/Stanford_University_Green_Library_Bing_Wing.jpg/500px-Stanford_University_Green_Library_Bing_Wing.jpg'
28
+ request_types:
29
+ aeon_web_ead:
30
+ request_url: 'https://sample.request.com'
31
+ request_mappings: 'Action=10&Form=31&Value=ead_url'
32
+
30
33
  umich-bhl:
31
34
  name: 'University of Michigan. Bentley Historical Library'
32
35
  description: 'The Bentley Historical Library collects the materials for and promotes the study of the histories of two great, intertwined institutions, the State of Michigan and the University of Michigan. The Library is open without fee to the public, and we welcome researchers regardless of academic or professional affiliation.'
33
- building: ''
34
- address1: '1150 Beal Ave'
35
- address2: ''
36
- city: 'Ann Arbor'
37
- state: 'MI'
38
- zip: '48109-2113'
39
- country: 'USA'
40
- phone: ''
41
- contact_info: 'bentley.ref@umich.edu'
36
+ contact_html: |
37
+ <div class="al-repository-contact-info"><a href="mailto:bentley.ref@umich.edu">bentley.ref@umich.edu</a></div>
38
+ location_html: |
39
+ <div class="al-repository-street-address-address1">1150 Beal Ave</div>
40
+ <div class="al-repository-street-address-city_state_zip_country">Ann Arbor, MI 48109-2113, USA</div>
42
41
  thumbnail_url: 'https://upload.wikimedia.org/wikipedia/commons/thumb/9/93/Bhlexterior.jpg/150px-Bhlexterior.jpg'
42
+ request_types:
43
+ aeon_external_request_endpoint:
44
+ request_url: https://example.com/aeon/aeon.dll
45
+ request_mappings:
46
+ url_params:
47
+ Action: 11
48
+ Type: 200
49
+ static:
50
+ SystemId: ArcLight
51
+ ItemInfo1: manuscript
52
+ accessor:
53
+ ItemTitle: collection_name
@@ -9,7 +9,7 @@ module Arclight
9
9
  # downstream application to choose if they want to take our changes or not and
10
10
  # can choose to see a diff of our changes to help them decide.
11
11
  class Update < Arclight::Install
12
- source_root File.expand_path('../templates', __FILE__)
12
+ source_root File.expand_path('templates', __dir__)
13
13
 
14
14
  def create_blacklight_catalog
15
15
  copy_file 'catalog_controller.rb', 'app/controllers/catalog_controller.rb'
data/lib/tasks/index.rake CHANGED
@@ -4,7 +4,7 @@ require 'arclight'
4
4
  require 'benchmark'
5
5
 
6
6
  ##
7
- # Environment variables for indexing:
7
+ # Environment variables and information for indexing:
8
8
  #
9
9
  # REPOSITORY_ID for the repository id/slug to load repository data from
10
10
  # your configuration (default: none).
@@ -12,23 +12,29 @@ require 'benchmark'
12
12
  # REPOSITORY_FILE for the YAML file of your repository configuration
13
13
  # (default: config/repositories.yml).
14
14
  #
15
- # SOLR_URL for the location of your Solr instance
15
+ # Blacklight default connection for the location of your Solr instance, SOLR_URL
16
+ # as a backup
16
17
  # (default: http://127.0.0.1:8983/solr/blacklight-core)
17
18
  #
18
19
  namespace :arclight do
19
20
  desc 'Index an EAD document, use FILE=<path/to/ead.xml> and REPOSITORY_ID=<myid>'
20
- task :index do
21
+ # We need :environment to have access to the Blacklight confg
22
+ task index: :environment do
21
23
  raise 'Please specify your EAD document, ex. FILE=<path/to/ead.xml>' unless ENV['FILE']
22
- indexer = load_indexer
23
- print "Loading #{ENV['FILE']} into index...\n"
24
- elapsed_time = Benchmark.realtime { indexer.update(ENV['FILE']) }
25
- print "Indexed #{ENV['FILE']} (in #{elapsed_time.round(3)} secs).\n"
24
+
25
+ print "Loading #{ENV.fetch('FILE', nil)} into index...\n"
26
+ solr_url = ENV.fetch('SOLR_URL', Blacklight.default_index.connection.base_uri)
27
+ elapsed_time = Benchmark.realtime do
28
+ `bundle exec traject -u #{solr_url} -i xml -c #{Arclight::Engine.root}/lib/arclight/traject/ead2_config.rb #{ENV.fetch('FILE', nil)}`
29
+ end
30
+ print "Indexed #{ENV.fetch('FILE', nil)} (in #{elapsed_time.round(3)} secs).\n"
26
31
  end
27
32
 
28
33
  desc 'Index a directory of EADs, use DIR=<path/to/directory> and REPOSITORY_ID=<myid>'
29
34
  task :index_dir do
30
35
  raise 'Please specify your directory, ex. DIR=<path/to/directory>' unless ENV['DIR']
31
- Dir.glob(File.join(ENV['DIR'], '*.xml')).each do |file|
36
+
37
+ Dir.glob(File.join(ENV.fetch('DIR', nil), '*.xml')).each do |file|
32
38
  system("rake arclight:index FILE=#{file}")
33
39
  end
34
40
  end
@@ -36,7 +42,8 @@ namespace :arclight do
36
42
  desc 'Index an EAD document, use URL=<http[s]://domain/path/to/ead.xml> and REPOSITORY_ID=<myid>'
37
43
  task :index_url do
38
44
  raise 'Please specify your EAD document, ex. URL=<http[s]://domain/path/to/ead.xml>' unless ENV['URL']
39
- ead = Nokogiri::XML(open(ENV['URL']))
45
+
46
+ ead = Nokogiri::XML(open(ENV.fetch('URL', nil)))
40
47
  tmp = Tempfile.new(["#{Time.now.to_i}-", '.xml'], encoding: 'utf-8')
41
48
  begin
42
49
  tmp.write ead
@@ -53,35 +60,25 @@ namespace :arclight do
53
60
  desc 'Index EADs from a file of URLs, use BATCH=<path/to/urls.txt> and REPOSITORY_ID=<myid>'
54
61
  task :index_url_batch do
55
62
  raise 'Please specify your URLs file, ex. BATCH=<path/to/urls.txt>' unless ENV['BATCH']
56
- File.open(ENV['BATCH']).each_line do |l|
63
+
64
+ File.open(ENV.fetch('BATCH', nil)).each_line do |l|
57
65
  ENV['URL'] = l.chomp
58
66
  next if ENV['URL'].empty?
59
- unless ENV['URL'] =~ /\A#{URI.regexp(%w[http https])}\z/
60
- puts "Skipping invalid looking url #{ENV['URL']}"
67
+
68
+ unless ENV.fetch('URL', nil) =~ /\A#{URI::DEFAULT_PARSER.make_regexp(%w[http https])}\z/
69
+ puts "Skipping invalid looking url #{ENV.fetch('URL', nil)}"
61
70
  next
62
71
  end
63
- puts "Indexing #{ENV['URL']}"
72
+ puts "Indexing #{ENV.fetch('URL', nil)}"
64
73
  Rake::Task['arclight:index_url'].invoke
65
74
  Rake::Task['arclight:index_url'].reenable
66
75
  end
67
76
  end
68
77
 
69
78
  desc 'Destroy all documents in the index'
70
- task :destroy_index_docs do
79
+ task destroy_index_docs: :environment do
71
80
  puts 'Deleting all documents from index...'
72
- indexer = load_indexer
73
- indexer.delete_all
81
+ Blacklight.default_index.connection.delete_by_query('*:*')
82
+ Blacklight.default_index.connection.commit
74
83
  end
75
84
  end
76
-
77
- def load_indexer
78
- # hardcoded since we don't have access to Blacklight.connection_config[:url] here
79
- ENV['SOLR_URL'] ||= 'http://127.0.0.1:8983/solr/blacklight-core'
80
-
81
- options = {
82
- document: Arclight::CustomDocument,
83
- component: Arclight::CustomComponent
84
- }
85
-
86
- Arclight::Indexer.new(options)
87
- end
data/package.json CHANGED
@@ -1,24 +1,30 @@
1
1
  {
2
2
  "name": "arclight",
3
- "description": "",
4
- "main": "index.js",
5
- "dependencies": {},
3
+ "version": "1.6.0",
4
+ "description": "The frontend for arclight",
5
+ "main": "app/assets/javascript/arclight/arclight.js",
6
+ "files": ["app/assets"],
6
7
  "devDependencies": {
7
- "eslint": "^3.19.0",
8
- "eslint-config-airbnb-base": "^11.1.3",
9
- "eslint-plugin-import": "^2.2.0"
8
+ "eslint": "^8.26.0",
9
+ "eslint-config-airbnb-base": "^15.0.0",
10
+ "eslint-plugin-import": "^2.2.0",
11
+ "sass": "^1.59.3",
12
+ "bootstrap": "^5.2.0"
10
13
  },
11
14
  "scripts": {
15
+ "build": "sass ./app/assets/stylesheets/arclight/build.scss:./app/assets/builds/arclight.css --no-source-map --load-path=node_modules",
16
+ "lint": "eslint './app/assets/javascripts/**/*.{js,es6}'",
17
+ "lint:fix": "eslint --fix './app/assets/javascripts/**/*.{js,es6}'",
12
18
  "test": "echo \"Error: no test specified\" && exit 1"
13
19
  },
14
20
  "repository": {
15
21
  "type": "git",
16
- "url": "git+https://github.com/sul-dlss/arclight.git"
22
+ "url": "https://github.com/projectblacklight/arclight.git"
17
23
  },
18
24
  "author": "",
19
25
  "license": "Apache-2.0",
20
26
  "bugs": {
21
- "url": "https://github.com/sul-dlss/arclight/issues"
27
+ "url": "https://github.com/projectblacklight/arclight/issues"
22
28
  },
23
- "homepage": "https://github.com/sul-dlss/arclight#readme"
29
+ "homepage": "https://library.stanford.edu/projects/arclight"
24
30
  }