geoblacklight 5.3.0 → 6.0.0.pre.alpha.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 (468) hide show
  1. checksums.yaml +4 -4
  2. data/.engine_cart.yml +14 -0
  3. data/.github/workflows/ruby.yml +25 -25
  4. data/.gitignore +0 -9
  5. data/.prettierignore +4 -0
  6. data/.prettierrc +5 -0
  7. data/CONTRIBUTING.md +2 -4
  8. data/Gemfile +4 -2
  9. data/README.md +4 -4
  10. data/Rakefile +0 -22
  11. data/app/assets/stylesheets/geoblacklight/global.css +7 -0
  12. data/app/assets/stylesheets/geoblacklight/home.css +22 -0
  13. data/app/assets/stylesheets/geoblacklight/index_maps.css +36 -0
  14. data/app/assets/stylesheets/geoblacklight/record.css +39 -0
  15. data/app/assets/stylesheets/geoblacklight/search.css +56 -0
  16. data/app/assets/stylesheets/geoblacklight/viewers.css +50 -0
  17. data/app/assets/stylesheets/geoblacklight.css +14 -0
  18. data/app/components/blacklight/icons/web_services_component.rb +3 -3
  19. data/app/components/geoblacklight/accordion_component.html.erb +3 -3
  20. data/app/components/geoblacklight/accordion_component.rb +4 -0
  21. data/app/components/geoblacklight/arcgis_component.html.erb +1 -1
  22. data/app/components/geoblacklight/arcgis_component.rb +1 -1
  23. data/app/components/geoblacklight/attribute_table_component.html.erb +3 -3
  24. data/app/components/geoblacklight/data_dictionary_download_component.html.erb +1 -1
  25. data/app/components/geoblacklight/display_note_component.html.erb +1 -1
  26. data/app/components/geoblacklight/display_note_component.rb +2 -1
  27. data/app/components/geoblacklight/document/citation_component.html.erb +1 -1
  28. data/app/components/geoblacklight/document/relations_container_component.html.erb +1 -0
  29. data/app/components/geoblacklight/document/relations_container_component.rb +12 -0
  30. data/app/components/geoblacklight/document/sidebar_component.html.erb +3 -4
  31. data/app/components/geoblacklight/document/sidebar_component.rb +0 -1
  32. data/app/components/geoblacklight/document_component.html.erb +1 -2
  33. data/app/components/geoblacklight/download_links_component.rb +1 -1
  34. data/app/components/geoblacklight/header_component.html.erb +4 -4
  35. data/app/components/geoblacklight/header_icons_component.rb +4 -2
  36. data/app/components/geoblacklight/homepage_feature_facet_component.html.erb +3 -7
  37. data/app/components/geoblacklight/homepage_feature_facet_component.rb +12 -3
  38. data/app/components/geoblacklight/iiif_drag_drop_component.html.erb +2 -2
  39. data/app/components/geoblacklight/iiif_drag_drop_component.rb +2 -2
  40. data/app/components/geoblacklight/index_map_inspect_component.html.erb +3 -3
  41. data/app/components/geoblacklight/index_map_legend_component.html.erb +7 -7
  42. data/app/components/geoblacklight/index_map_legend_component.rb +7 -0
  43. data/app/components/geoblacklight/item_map_viewer_component.rb +8 -4
  44. data/app/components/geoblacklight/location_leaflet_map_component.rb +28 -15
  45. data/app/components/geoblacklight/login_link_component.rb +1 -1
  46. data/app/components/geoblacklight/relations_component.html.erb +2 -2
  47. data/app/components/geoblacklight/search_result_component.html.erb +28 -26
  48. data/app/components/geoblacklight/search_result_component.rb +2 -2
  49. data/app/components/geoblacklight/static_map_component.html.erb +1 -1
  50. data/app/components/geoblacklight/static_map_component.rb +5 -4
  51. data/app/components/geoblacklight/viewer_help_text_component.html.erb +1 -1
  52. data/app/components/geoblacklight/viewer_help_text_component.rb +1 -1
  53. data/app/components/geoblacklight/web_services_component.html.erb +1 -1
  54. data/app/components/geoblacklight/web_services_component.rb +1 -1
  55. data/app/components/geoblacklight/web_services_default_component.html.erb +6 -6
  56. data/app/components/geoblacklight/web_services_link_component.rb +12 -9
  57. data/app/components/geoblacklight/web_services_wfs_component.html.erb +4 -4
  58. data/app/components/geoblacklight/web_services_wms_component.html.erb +4 -4
  59. data/app/controllers/download_controller.rb +0 -1
  60. data/app/controllers/relation_controller.rb +1 -1
  61. data/app/controllers/wms_controller.rb +1 -1
  62. data/app/helpers/geoblacklight_helper.rb +1 -16
  63. data/app/javascript/geoblacklight/controllers/clipboard_controller.js +6 -6
  64. data/app/javascript/geoblacklight/controllers/downloads_controller.js +37 -29
  65. data/app/javascript/geoblacklight/controllers/leaflet_viewer_controller.js +108 -117
  66. data/app/javascript/geoblacklight/controllers/oembed_viewer_controller.js +5 -5
  67. data/app/javascript/geoblacklight/controllers/openlayers_viewer_controller.js +27 -30
  68. data/app/javascript/geoblacklight/controllers/search_results_controller.js +18 -18
  69. data/app/javascript/geoblacklight/core.js +33 -36
  70. data/app/javascript/geoblacklight/index.js +10 -10
  71. data/app/javascript/geoblacklight/initializers/metadata_download.js +23 -25
  72. data/app/javascript/geoblacklight/initializers/popovers.js +4 -4
  73. data/app/javascript/geoblacklight/initializers/tooltips.js +19 -23
  74. data/app/javascript/geoblacklight/initializers/truncation.js +18 -18
  75. data/app/javascript/geoblacklight/leaflet/basemaps.js +2 -3
  76. data/app/javascript/geoblacklight/leaflet/constants.js +7 -7
  77. data/app/javascript/geoblacklight/leaflet/controls/geosearch.js +80 -74
  78. data/app/javascript/geoblacklight/leaflet/controls/layer_opacity.js +74 -73
  79. data/app/javascript/geoblacklight/leaflet/controls/sidebar.js +31 -29
  80. data/app/javascript/geoblacklight/leaflet/controls/sleep.js +54 -51
  81. data/app/javascript/geoblacklight/leaflet/inspection.js +77 -68
  82. data/app/javascript/geoblacklight/leaflet/layer_index_map.js +74 -69
  83. data/app/javascript/geoblacklight/leaflet/layer_wmts.js +14 -16
  84. data/app/javascript/geoblacklight/leaflet/layers.js +59 -66
  85. data/app/javascript/geoblacklight/leaflet/utils.js +37 -43
  86. data/app/javascript/geoblacklight/openlayers/basemaps.js +35 -27
  87. data/app/javascript/geoblacklight/openlayers/inspection.js +23 -23
  88. data/app/javascript/geoblacklight/openlayers/layers.js +11 -11
  89. data/app/models/concerns/geoblacklight/bbox_filter_query.rb +7 -9
  90. data/app/models/concerns/geoblacklight/solr_document.rb +16 -39
  91. data/app/models/concerns/geoblacklight/suppressed_records_search_behavior.rb +3 -3
  92. data/app/views/catalog/_document_split.html.erb +3 -3
  93. data/app/views/catalog/_home_text.html.erb +22 -14
  94. data/app/views/catalog/_metadata.html.erb +1 -1
  95. data/app/views/catalog/index.html.erb +0 -1
  96. data/app/views/catalog/metadata/_markup.html.erb +1 -2
  97. data/app/views/catalog/metadata/_missing.html.erb +2 -2
  98. data/app/views/catalog/web_services.html.erb +1 -1
  99. data/app/views/relation/index.html.erb +4 -2
  100. data/app/views/relation/index.json.jbuilder +1 -1
  101. data/config/initializers/rails_config.rb +0 -3
  102. data/config/locales/geoblacklight.en.yml +79 -78
  103. data/geoblacklight.gemspec +1 -2
  104. data/lib/generators/geoblacklight/assets_generator.rb +35 -26
  105. data/lib/generators/geoblacklight/install_generator.rb +6 -11
  106. data/lib/generators/geoblacklight/templates/assets/customizations.css +6 -0
  107. data/lib/generators/geoblacklight/templates/catalog_controller.rb +97 -73
  108. data/lib/generators/geoblacklight/templates/settings.yml +159 -171
  109. data/lib/geoblacklight/configuration/case_insensitive_settings.rb +59 -0
  110. data/lib/geoblacklight/configuration/default_settings_builder.rb +18 -0
  111. data/lib/geoblacklight/configuration/display_note_shown_config.rb +13 -0
  112. data/lib/geoblacklight/configuration/fields_config.rb +51 -0
  113. data/lib/geoblacklight/configuration/layer_config.rb +28 -0
  114. data/lib/geoblacklight/configuration/leaflet_config.rb +69 -0
  115. data/lib/geoblacklight/configuration/leaflet_layers_config.rb +33 -0
  116. data/lib/geoblacklight/configuration/leaflet_sleep_config.rb +20 -0
  117. data/lib/geoblacklight/configuration/relationship_config.rb +15 -0
  118. data/lib/geoblacklight/configuration/relationships_config.rb +123 -0
  119. data/lib/geoblacklight/configuration/settings_builder.rb +118 -0
  120. data/lib/geoblacklight/configuration.rb +153 -0
  121. data/lib/geoblacklight/deprecation.rb +7 -0
  122. data/lib/geoblacklight/download.rb +2 -2
  123. data/lib/geoblacklight/engine.rb +7 -5
  124. data/lib/geoblacklight/metadata/base.rb +0 -2
  125. data/lib/geoblacklight/metadata_transformer.rb +0 -2
  126. data/lib/geoblacklight/references.rb +5 -4
  127. data/lib/geoblacklight/relation/ancestors.rb +3 -2
  128. data/lib/geoblacklight/relation/descendants.rb +2 -1
  129. data/lib/geoblacklight/relation/relation_response.rb +4 -4
  130. data/lib/geoblacklight/version.rb +1 -1
  131. data/lib/geoblacklight/wms_layer.rb +3 -3
  132. data/lib/geoblacklight.rb +7 -1
  133. data/package.json +10 -31
  134. data/schema/geoblacklight-schema-aardvark.json +1 -9
  135. data/schema/readme.md +3 -4
  136. data/solr/conf/_rest_managed.json +3 -2
  137. data/solr/conf/schema.xml +1 -1
  138. data/spec/components/geoblacklight/arcgis_component_spec.rb +6 -6
  139. data/spec/components/geoblacklight/attribute_table_component_spec.rb +6 -7
  140. data/spec/components/geoblacklight/citation_component_spec.rb +7 -4
  141. data/spec/components/geoblacklight/display_note_component_spec.rb +8 -8
  142. data/spec/components/geoblacklight/document/sidebar_component_spec.rb +48 -0
  143. data/spec/components/geoblacklight/document_component_spec.rb +13 -13
  144. data/spec/components/geoblacklight/download_links_component_spec.rb +17 -14
  145. data/spec/components/geoblacklight/header_icons_component_spec.rb +6 -11
  146. data/spec/components/geoblacklight/homepage_feature_facet_component_spec.rb +22 -30
  147. data/spec/components/geoblacklight/iiif_drag_drop_component_spec.rb +3 -3
  148. data/spec/components/geoblacklight/index_map_legend_component_spec.rb +5 -18
  149. data/spec/components/geoblacklight/item_map_viewer_component_spec.rb +5 -5
  150. data/spec/components/geoblacklight/login_link_component_spec.rb +5 -6
  151. data/spec/components/geoblacklight/search_result_component_spec.rb +2 -6
  152. data/spec/components/geoblacklight/static_map_component_spec.rb +2 -2
  153. data/spec/components/geoblacklight/viewer_help_text_component_spec.rb +4 -6
  154. data/spec/components/geoblacklight/web_services_component_spec.rb +11 -10
  155. data/spec/controllers/catalog_controller_spec.rb +7 -7
  156. data/spec/controllers/download_controller_spec.rb +1 -1
  157. data/spec/controllers/relation_controller_spec.rb +1 -1
  158. data/spec/controllers/wms_controller_spec.rb +1 -1
  159. data/spec/features/axe_spec.rb +4 -4
  160. data/spec/features/bookmarks_spec.rb +1 -1
  161. data/spec/features/citations_spec.rb +1 -1
  162. data/spec/features/configurable_basemap_spec.rb +1 -1
  163. data/spec/features/data_dictionary_download_spec.rb +1 -1
  164. data/spec/features/download_layer_spec.rb +1 -1
  165. data/spec/features/empty_search_spec.rb +1 -1
  166. data/spec/features/esri_viewer_spec.rb +1 -1
  167. data/spec/features/exports_spec.rb +1 -1
  168. data/spec/features/full_screen_control_spec.rb +3 -10
  169. data/spec/features/help_text_spec.rb +1 -1
  170. data/spec/features/home_page_spec.rb +1 -1
  171. data/spec/features/index_map_spec.rb +3 -3
  172. data/spec/features/index_view_spec.rb +7 -7
  173. data/spec/features/layer_inspection_spec.rb +1 -1
  174. data/spec/features/layer_opacity_spec.rb +1 -1
  175. data/spec/features/layer_preview_spec.rb +1 -1
  176. data/spec/features/layer_with_no_references_spec.rb +1 -1
  177. data/spec/features/linkified_attribute_table_spec.rb +1 -1
  178. data/spec/features/metadata_panel_spec.rb +1 -1
  179. data/spec/features/missing_metadata_spec.rb +1 -1
  180. data/spec/features/multiple_downloads_spec.rb +1 -1
  181. data/spec/features/oembed_spec.rb +1 -1
  182. data/spec/features/relations_spec.rb +2 -2
  183. data/spec/features/saved_searches_spec.rb +1 -1
  184. data/spec/features/search_bar_spec.rb +1 -1
  185. data/spec/features/search_results_complex_geometry_spec.rb +1 -1
  186. data/spec/features/search_results_icons_spec.rb +3 -4
  187. data/spec/features/search_results_map_spec.rb +1 -1
  188. data/spec/features/search_results_overlap_ratio_spec.rb +3 -3
  189. data/spec/features/search_spec.rb +1 -1
  190. data/spec/features/show_page_download_spec.rb +1 -1
  191. data/spec/features/show_page_metadata_spec.rb +2 -2
  192. data/spec/features/sms_spec.rb +1 -1
  193. data/spec/features/suppressed_records_spec.rb +1 -1
  194. data/spec/features/tilejson_spec.rb +1 -1
  195. data/spec/features/tms_spec.rb +1 -1
  196. data/spec/features/web_services_modal_spec.rb +1 -1
  197. data/spec/features/wmts_spec.rb +1 -1
  198. data/spec/features/xyz_spec.rb +1 -1
  199. data/spec/fixtures/manifests/tilejson.json +10 -19
  200. data/spec/fixtures/metadata/fgdc.html +1 -1
  201. data/spec/fixtures/metadata/iso.html +1 -1
  202. data/spec/fixtures/solr_documents/README.md +0 -1
  203. data/spec/fixtures/solr_documents/actual-papermap1.json +9 -28
  204. data/spec/fixtures/solr_documents/actual-point1.json +12 -39
  205. data/spec/fixtures/solr_documents/actual-polygon1.json +10 -30
  206. data/spec/fixtures/solr_documents/actual-raster1.json +14 -46
  207. data/spec/fixtures/solr_documents/all-relationships.json +12 -36
  208. data/spec/fixtures/solr_documents/b1g_iiif_manifest.json +33 -62
  209. data/spec/fixtures/solr_documents/b1g_wabash_child_15.json +13 -40
  210. data/spec/fixtures/solr_documents/b1g_wabash_child_16.json +13 -40
  211. data/spec/fixtures/solr_documents/b1g_wabash_child_17.json +13 -40
  212. data/spec/fixtures/solr_documents/b1g_wabash_child_18.json +13 -40
  213. data/spec/fixtures/solr_documents/b1g_wabash_parent.json +13 -40
  214. data/spec/fixtures/solr_documents/baruch_ancestor1.json +13 -40
  215. data/spec/fixtures/solr_documents/baruch_ancestor2.json +13 -40
  216. data/spec/fixtures/solr_documents/baruch_documentation_download.json +14 -46
  217. data/spec/fixtures/solr_documents/bbox-spans-180.json +7 -21
  218. data/spec/fixtures/solr_documents/complex-geom.json +11 -37
  219. data/spec/fixtures/solr_documents/cornell_html_metadata.json +12 -37
  220. data/spec/fixtures/solr_documents/display-note.json +11 -33
  221. data/spec/fixtures/solr_documents/esri-dynamic-layer-all-layers.json +13 -39
  222. data/spec/fixtures/solr_documents/esri-dynamic-layer-single-layer.json +13 -40
  223. data/spec/fixtures/solr_documents/esri-feature-layer.json +13 -39
  224. data/spec/fixtures/solr_documents/esri-image-map-layer.json +13 -40
  225. data/spec/fixtures/solr_documents/esri-tiled_map_layer.json +16 -54
  226. data/spec/fixtures/solr_documents/esri-wms-layer.json +12 -36
  227. data/spec/fixtures/solr_documents/harvard_raster.json +12 -37
  228. data/spec/fixtures/solr_documents/iiif-eastern-hemisphere.json +9 -27
  229. data/spec/fixtures/solr_documents/index-map-polygon-no-downloadurl.json +12 -41
  230. data/spec/fixtures/solr_documents/index-map-polygon.json +12 -41
  231. data/spec/fixtures/solr_documents/index-map-stanford.json +14 -45
  232. data/spec/fixtures/solr_documents/index-map-v1-complex.json +13 -38
  233. data/spec/fixtures/solr_documents/index_map_point.json +13 -42
  234. data/spec/fixtures/solr_documents/metadata_no_geom.json +4 -14
  235. data/spec/fixtures/solr_documents/metadata_no_provider.json +8 -25
  236. data/spec/fixtures/solr_documents/multiple-downloads.json +6 -18
  237. data/spec/fixtures/solr_documents/no_locn_geometry.json +4 -12
  238. data/spec/fixtures/solr_documents/no_spatial.json +4 -12
  239. data/spec/fixtures/solr_documents/oembed.json +8 -25
  240. data/spec/fixtures/solr_documents/princeton-child1.json +9 -29
  241. data/spec/fixtures/solr_documents/princeton-child2.json +9 -29
  242. data/spec/fixtures/solr_documents/princeton-child3.json +9 -29
  243. data/spec/fixtures/solr_documents/princeton-child4.json +9 -29
  244. data/spec/fixtures/solr_documents/princeton-parent.json +10 -33
  245. data/spec/fixtures/solr_documents/public_cog_princeton.json +9 -27
  246. data/spec/fixtures/solr_documents/public_iiif_princeton.json +13 -43
  247. data/spec/fixtures/solr_documents/public_pmtiles_princeton.json +29 -39
  248. data/spec/fixtures/solr_documents/public_polygon_mit.json +9 -30
  249. data/spec/fixtures/solr_documents/restricted-line.json +14 -47
  250. data/spec/fixtures/solr_documents/the-related-record.json +4 -12
  251. data/spec/fixtures/solr_documents/tilejson.json +23 -46
  252. data/spec/fixtures/solr_documents/tms.json +7 -21
  253. data/spec/fixtures/solr_documents/umn_metro_result1.json +13 -41
  254. data/spec/fixtures/solr_documents/umn_state_result1.json +13 -39
  255. data/spec/fixtures/solr_documents/umn_state_result2.json +13 -39
  256. data/spec/fixtures/solr_documents/uva_slug_colon.json +10 -30
  257. data/spec/fixtures/solr_documents/wmts-multiple.json +23 -39
  258. data/spec/fixtures/solr_documents/wmts-single-layer.json +23 -46
  259. data/spec/fixtures/solr_documents/xyz.json +10 -33
  260. data/spec/helpers/geoblacklight_helper_spec.rb +5 -50
  261. data/spec/javascripts/geoblacklight_spec.js +10 -10
  262. data/spec/javascripts/metadata_download_button_spec.js +14 -13
  263. data/spec/lib/geoblacklight/bounding_box_spec.rb +1 -1
  264. data/spec/lib/geoblacklight/configuration/default_settings_builder_spec.rb +9 -0
  265. data/spec/lib/geoblacklight/configuration/layer_config_spec.rb +71 -0
  266. data/spec/lib/geoblacklight/configuration/leaflet_layers_config_spec.rb +63 -0
  267. data/spec/lib/geoblacklight/configuration/settings_builder_spec.rb +177 -0
  268. data/spec/lib/geoblacklight/configuration_spec.rb +48 -0
  269. data/spec/lib/geoblacklight/download/csv_download_spec.rb +2 -2
  270. data/spec/lib/geoblacklight/download/geojson_download_spec.rb +2 -2
  271. data/spec/lib/geoblacklight/download/geotiff_download_spec.rb +5 -2
  272. data/spec/lib/geoblacklight/download/kmz_download_spec.rb +2 -2
  273. data/spec/lib/geoblacklight/download/shapefile_download_spec.rb +2 -2
  274. data/spec/lib/geoblacklight/download_spec.rb +15 -6
  275. data/spec/lib/geoblacklight/geometry_spec.rb +1 -1
  276. data/spec/lib/geoblacklight/item_viewer_spec.rb +2 -2
  277. data/spec/lib/geoblacklight/metadata/base_spec.rb +1 -1
  278. data/spec/lib/geoblacklight/metadata/html_spec.rb +1 -1
  279. data/spec/lib/geoblacklight/metadata_spec.rb +1 -1
  280. data/spec/lib/geoblacklight/metadata_transformer/base_spec.rb +1 -1
  281. data/spec/lib/geoblacklight/metadata_transformer/fgdc_spec.rb +1 -1
  282. data/spec/lib/geoblacklight/metadata_transformer/iso19139_spec.rb +1 -1
  283. data/spec/lib/geoblacklight/metadata_transformer_spec.rb +1 -1
  284. data/spec/lib/geoblacklight/reference_spec.rb +1 -1
  285. data/spec/lib/geoblacklight/references_spec.rb +6 -4
  286. data/spec/lib/geoblacklight/relation/ancestors_spec.rb +10 -4
  287. data/spec/lib/geoblacklight/relation/descendants_spec.rb +9 -4
  288. data/spec/lib/geoblacklight/relation/relation_response_spec.rb +16 -19
  289. data/spec/lib/geoblacklight/wms_layer/feature_info_response_spec.rb +1 -1
  290. data/spec/lib/geoblacklight/wms_layer_spec.rb +1 -1
  291. data/spec/models/concerns/geoblacklight/bbox_filter_query_spec.rb +20 -11
  292. data/spec/models/concerns/geoblacklight/solr_document/citation_spec.rb +1 -1
  293. data/spec/models/concerns/geoblacklight/solr_document/finder_spec.rb +1 -1
  294. data/spec/models/concerns/geoblacklight/solr_document/inspection_spec.rb +1 -1
  295. data/spec/models/concerns/geoblacklight/solr_document_spec.rb +4 -39
  296. data/spec/models/concerns/geoblacklight/suppressed_records_search_behavior_spec.rb +2 -2
  297. data/spec/routing/catalog_routing_spec.rb +1 -1
  298. data/spec/spec_helper.rb +26 -10
  299. data/spec/tasks/geoblacklight_spec.rb +1 -1
  300. data/spec/test_app_templates/lib/generators/test_app_generator.rb +4 -3
  301. metadata +44 -187
  302. data/Procfile.dev +0 -3
  303. data/app/assets/stylesheets/geoblacklight/geoblacklight.scss +0 -2
  304. data/app/assets/stylesheets/geoblacklight/modules/_base.scss +0 -31
  305. data/app/assets/stylesheets/geoblacklight/modules/_blacklight_overrides.scss +0 -40
  306. data/app/assets/stylesheets/geoblacklight/modules/_styles.scss +0 -9
  307. data/app/assets/stylesheets/geoblacklight/modules/downloads.scss +0 -62
  308. data/app/assets/stylesheets/geoblacklight/modules/geosearch.scss +0 -23
  309. data/app/assets/stylesheets/geoblacklight/modules/home.scss +0 -13
  310. data/app/assets/stylesheets/geoblacklight/modules/icon-customization.scss +0 -116
  311. data/app/assets/stylesheets/geoblacklight/modules/index_maps.scss +0 -61
  312. data/app/assets/stylesheets/geoblacklight/modules/item.scss +0 -78
  313. data/app/assets/stylesheets/geoblacklight/modules/layer_opacity.scss +0 -87
  314. data/app/assets/stylesheets/geoblacklight/modules/leaflet.scss +0 -4
  315. data/app/assets/stylesheets/geoblacklight/modules/metadata.scss +0 -31
  316. data/app/assets/stylesheets/geoblacklight/modules/metadata_content.scss +0 -43
  317. data/app/assets/stylesheets/geoblacklight/modules/metadata_markup.scss +0 -9
  318. data/app/assets/stylesheets/geoblacklight/modules/metadata_missing.scss +0 -7
  319. data/app/assets/stylesheets/geoblacklight/modules/modal.scss +0 -5
  320. data/app/assets/stylesheets/geoblacklight/modules/results.scss +0 -60
  321. data/app/assets/stylesheets/geoblacklight/modules/search_widgets.scss +0 -5
  322. data/app/assets/stylesheets/geoblacklight/modules/sidebar.scss +0 -42
  323. data/app/assets/stylesheets/geoblacklight/modules/toolbar.scss +0 -34
  324. data/app/assets/stylesheets/geoblacklight/modules/web_services.scss +0 -5
  325. data/app/components/blacklight/icons/american_geographical_society_library_uwm_libraries_component.rb +0 -46
  326. data/app/components/blacklight/icons/arizona_component.rb +0 -24
  327. data/app/components/blacklight/icons/baruch_cuny_component.rb +0 -23
  328. data/app/components/blacklight/icons/bookmark_component.rb +0 -23
  329. data/app/components/blacklight/icons/circle_info_solid_component.rb +0 -23
  330. data/app/components/blacklight/icons/columbia_component.rb +0 -23
  331. data/app/components/blacklight/icons/cornell_component.rb +0 -25
  332. data/app/components/blacklight/icons/george_mason_component.rb +0 -24
  333. data/app/components/blacklight/icons/harvard_component.rb +0 -23
  334. data/app/components/blacklight/icons/indiana_component.rb +0 -23
  335. data/app/components/blacklight/icons/lewis_clark_component.rb +0 -25
  336. data/app/components/blacklight/icons/massgis_component.rb +0 -23
  337. data/app/components/blacklight/icons/michigan_state_university_component.rb +0 -25
  338. data/app/components/blacklight/icons/mit_component.rb +0 -23
  339. data/app/components/blacklight/icons/northwestern_university_component.rb +0 -24
  340. data/app/components/blacklight/icons/nyu_component.rb +0 -26
  341. data/app/components/blacklight/icons/pennsylvania_state_university_component.rb +0 -25
  342. data/app/components/blacklight/icons/princeton_component.rb +0 -23
  343. data/app/components/blacklight/icons/purdue_university_component.rb +0 -25
  344. data/app/components/blacklight/icons/rutgers_component.rb +0 -25
  345. data/app/components/blacklight/icons/sms_component.rb +0 -23
  346. data/app/components/blacklight/icons/stanford_component.rb +0 -23
  347. data/app/components/blacklight/icons/texas_component.rb +0 -23
  348. data/app/components/blacklight/icons/the_ohio_state_university_component.rb +0 -26
  349. data/app/components/blacklight/icons/tufts_component.rb +0 -23
  350. data/app/components/blacklight/icons/ucla_component.rb +0 -23
  351. data/app/components/blacklight/icons/university_of_california_berkeley_component.rb +0 -24
  352. data/app/components/blacklight/icons/university_of_chicago_component.rb +0 -25
  353. data/app/components/blacklight/icons/university_of_colorado_boulder_component.rb +0 -26
  354. data/app/components/blacklight/icons/university_of_illinois_urbana_champaign_component.rb +0 -25
  355. data/app/components/blacklight/icons/university_of_iowa_component.rb +0 -24
  356. data/app/components/blacklight/icons/university_of_maryland_component.rb +0 -24
  357. data/app/components/blacklight/icons/university_of_michigan_component.rb +0 -24
  358. data/app/components/blacklight/icons/university_of_minnesota_component.rb +0 -24
  359. data/app/components/blacklight/icons/university_of_nebraska_lincoln_component.rb +0 -27
  360. data/app/components/blacklight/icons/university_of_wisconsin_madison_component.rb +0 -24
  361. data/app/components/blacklight/icons/uva_component.rb +0 -23
  362. data/app/components/geoblacklight/icon_facet_item_component.rb +0 -33
  363. data/app/components/geoblacklight/web_services_link_component.html.erb +0 -3
  364. data/app/javascript/geoblacklight/initializers/relations.js +0 -40
  365. data/app/views/catalog/_relations_container.html.erb +0 -1
  366. data/bin/vite +0 -29
  367. data/config/initializers/new_gbl_settings_defaults_4.1.yml +0 -104
  368. data/lib/generators/geoblacklight/assets/importmap_generator.rb +0 -73
  369. data/lib/generators/geoblacklight/assets/vite_generator.rb +0 -89
  370. data/lib/generators/geoblacklight/templates/assets/_customizations.scss +0 -23
  371. data/lib/generators/geoblacklight/templates/assets/application.js +0 -17
  372. data/lib/generators/geoblacklight/templates/assets/application.scss +0 -9
  373. data/lib/generators/geoblacklight/templates/assets/geoblacklight.scss +0 -11
  374. data/lib/generators/geoblacklight/templates/base.html.erb +0 -46
  375. data/lib/generators/geoblacklight/templates/vite.config.ts +0 -23
  376. data/lib/generators/geoblacklight/templates/vite.json +0 -16
  377. data/schema/geoblacklight-schema-1.0.json +0 -214
  378. data/solr/conf/xslt/example.xsl +0 -132
  379. data/solr/conf/xslt/example_atom.xsl +0 -67
  380. data/solr/conf/xslt/example_rss.xsl +0 -66
  381. data/solr/conf/xslt/luke.xsl +0 -337
  382. data/spec/components/blacklight/icons/american_geographical_society_library_uwm_libraries_component_spec.rb +0 -15
  383. data/spec/components/blacklight/icons/arizona_component_spec.rb +0 -15
  384. data/spec/components/blacklight/icons/arrow_circle_down_component_spec.rb +0 -15
  385. data/spec/components/blacklight/icons/baruch_cuny_component_spec.rb +0 -15
  386. data/spec/components/blacklight/icons/book_component_spec.rb +0 -15
  387. data/spec/components/blacklight/icons/bookmark_component_spec.rb +0 -15
  388. data/spec/components/blacklight/icons/cd_rom_component_spec.rb +0 -15
  389. data/spec/components/blacklight/icons/child_item_component_spec.rb +0 -15
  390. data/spec/components/blacklight/icons/circle_info_solid_component_spec.rb +0 -15
  391. data/spec/components/blacklight/icons/citation_component_spec.rb +0 -15
  392. data/spec/components/blacklight/icons/collection_component_spec.rb +0 -15
  393. data/spec/components/blacklight/icons/collections_component_spec.rb +0 -15
  394. data/spec/components/blacklight/icons/columbia_component_spec.rb +0 -15
  395. data/spec/components/blacklight/icons/cornell_component_spec.rb +0 -15
  396. data/spec/components/blacklight/icons/datasets_component_spec.rb +0 -15
  397. data/spec/components/blacklight/icons/dvd_rom_component_spec.rb +0 -15
  398. data/spec/components/blacklight/icons/email_component_spec.rb +0 -15
  399. data/spec/components/blacklight/icons/esri_globe_component_spec.rb +0 -15
  400. data/spec/components/blacklight/icons/fire_solid_component_spec.rb +0 -15
  401. data/spec/components/blacklight/icons/george_mason_component_spec.rb +0 -15
  402. data/spec/components/blacklight/icons/globe_component_spec.rb +0 -15
  403. data/spec/components/blacklight/icons/harvard_component_spec.rb +0 -15
  404. data/spec/components/blacklight/icons/home_component_spec.rb +0 -15
  405. data/spec/components/blacklight/icons/iiif_drag_drop_component_spec.rb +0 -15
  406. data/spec/components/blacklight/icons/image_component_spec.rb +0 -15
  407. data/spec/components/blacklight/icons/imagery_component_spec.rb +0 -15
  408. data/spec/components/blacklight/icons/indiana_component_spec.rb +0 -15
  409. data/spec/components/blacklight/icons/leaf_component_spec.rb +0 -15
  410. data/spec/components/blacklight/icons/lewis_clark_component_spec.rb +0 -15
  411. data/spec/components/blacklight/icons/lightbulb_solid_component_spec.rb +0 -15
  412. data/spec/components/blacklight/icons/line_component_spec.rb +0 -15
  413. data/spec/components/blacklight/icons/map_component_spec.rb +0 -15
  414. data/spec/components/blacklight/icons/map_marker_component_spec.rb +0 -15
  415. data/spec/components/blacklight/icons/maps_component_spec.rb +0 -15
  416. data/spec/components/blacklight/icons/massgis_component_spec.rb +0 -15
  417. data/spec/components/blacklight/icons/metadata_component_spec.rb +0 -15
  418. data/spec/components/blacklight/icons/michigan_state_university_component_spec.rb +0 -15
  419. data/spec/components/blacklight/icons/mit_component_spec.rb +0 -15
  420. data/spec/components/blacklight/icons/mixed_component_spec.rb +0 -15
  421. data/spec/components/blacklight/icons/multilinestring_component_spec.rb +0 -15
  422. data/spec/components/blacklight/icons/multipoint_component_spec.rb +0 -15
  423. data/spec/components/blacklight/icons/multipolygon_component_spec.rb +0 -15
  424. data/spec/components/blacklight/icons/northwestern_university_component_spec.rb +0 -15
  425. data/spec/components/blacklight/icons/nyu_component_spec.rb +0 -15
  426. data/spec/components/blacklight/icons/pagelines_brands_component_spec.rb +0 -15
  427. data/spec/components/blacklight/icons/paper_map_component_spec.rb +0 -15
  428. data/spec/components/blacklight/icons/parent_item_component_spec.rb +0 -15
  429. data/spec/components/blacklight/icons/pennsylvania_state_university_component_spec.rb +0 -15
  430. data/spec/components/blacklight/icons/point_component_spec.rb +0 -15
  431. data/spec/components/blacklight/icons/polygon_component_spec.rb +0 -15
  432. data/spec/components/blacklight/icons/polyline_component_spec.rb +0 -15
  433. data/spec/components/blacklight/icons/princeton_component_spec.rb +0 -15
  434. data/spec/components/blacklight/icons/public_component_spec.rb +0 -15
  435. data/spec/components/blacklight/icons/purdue_university_component_spec.rb +0 -15
  436. data/spec/components/blacklight/icons/raster_component_spec.rb +0 -15
  437. data/spec/components/blacklight/icons/restricted_component_spec.rb +0 -15
  438. data/spec/components/blacklight/icons/rutgers_component_spec.rb +0 -15
  439. data/spec/components/blacklight/icons/sms_component_spec.rb +0 -15
  440. data/spec/components/blacklight/icons/stanford_component_spec.rb +0 -15
  441. data/spec/components/blacklight/icons/table_component_spec.rb +0 -15
  442. data/spec/components/blacklight/icons/tags_component_spec.rb +0 -15
  443. data/spec/components/blacklight/icons/texas_component_spec.rb +0 -15
  444. data/spec/components/blacklight/icons/the_ohio_state_university_component_spec.rb +0 -15
  445. data/spec/components/blacklight/icons/triangle_exclamation_solid_component_spec.rb +0 -15
  446. data/spec/components/blacklight/icons/tufts_component_spec.rb +0 -15
  447. data/spec/components/blacklight/icons/ucla_component_spec.rb +0 -15
  448. data/spec/components/blacklight/icons/university_of_california_berkeley_component_spec.rb +0 -15
  449. data/spec/components/blacklight/icons/university_of_chicago_component_spec.rb +0 -15
  450. data/spec/components/blacklight/icons/university_of_colorado_boulder_component_spec.rb +0 -15
  451. data/spec/components/blacklight/icons/university_of_illinois_urbana_champaign_component_spec.rb +0 -15
  452. data/spec/components/blacklight/icons/university_of_iowa_component_spec.rb +0 -15
  453. data/spec/components/blacklight/icons/university_of_maryland_component_spec.rb +0 -15
  454. data/spec/components/blacklight/icons/university_of_michigan_component_spec.rb +0 -15
  455. data/spec/components/blacklight/icons/university_of_minnesota_component_spec.rb +0 -15
  456. data/spec/components/blacklight/icons/university_of_nebraska_lincoln_component_spec.rb +0 -15
  457. data/spec/components/blacklight/icons/university_of_wisconsin_madison_component_spec.rb +0 -15
  458. data/spec/components/blacklight/icons/uva_component_spec.rb +0 -15
  459. data/spec/components/blacklight/icons/web_services_component_spec.rb +0 -15
  460. data/spec/components/blacklight/icons/websites_component_spec.rb +0 -15
  461. data/spec/components/geoblacklight/icon_facet_item_component_spec.rb +0 -18
  462. data/spec/config/initializers/rails_config_spec.rb +0 -16
  463. data/spec/features/show_page_sidebar_static_map_spec.rb +0 -21
  464. data/spec/fixtures/solr_documents/public_direct_download.json +0 -62
  465. data/spec/support/backport_test_helpers.rb +0 -47
  466. data/spec/support/view_component_capybara_test_helpers.rb +0 -8
  467. data/vite.config.ts +0 -32
  468. /data/app/assets/images/{blacklight → geoblacklight}/logo.svg +0 -0
@@ -0,0 +1,69 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Geoblacklight
4
+ class Configuration
5
+ class LeafletConfig
6
+ include ActiveModel::Model
7
+ include ActiveModel::Attributes
8
+
9
+ attr_accessor :bounds_overlay, :controls
10
+
11
+ attr_reader :sleep, :layers
12
+ # set to true to display attribute table as sidebar on map
13
+ attribute :sidebar, :boolean, default: false
14
+ attribute :selected_color, :string, default: "#2C7FB8"
15
+
16
+ DEFAULT_LAYERS_CONFIG = {
17
+ index: {
18
+ DEFAULT: LayerConfig.new(
19
+ color: "#7FCDBB",
20
+ sr_color_name: "Green"
21
+ ),
22
+ UNAVAILABLE: LayerConfig.new(
23
+ color: "#EDF8B1",
24
+ sr_color_name: "Yellow"
25
+ ),
26
+ SELECTED: LayerConfig.new(
27
+ color: "#2C7FB8",
28
+ sr_color_name: "Blue"
29
+ )
30
+ }
31
+ }.freeze
32
+
33
+ DEFAULT_SLEEP_CONFIG = {
34
+ sleep: true, # set to false to disable
35
+ margin_distance: 100, # set to zero / false if you want to disable this check
36
+ sleeptime: 750,
37
+ waketime: 750,
38
+ hovertowake: false,
39
+ message: "Click to Wake",
40
+ background: "rgba(214, 214, 214, .7)"
41
+ }.freeze
42
+
43
+ def initialize
44
+ super
45
+ @sleep = LeafletSleepConfig.new(DEFAULT_SLEEP_CONFIG)
46
+ @layers = LeafletLayersConfig.new(DEFAULT_LAYERS_CONFIG)
47
+ end
48
+
49
+ def sleep=(attributes)
50
+ @sleep = LeafletSleepConfig.new(attributes)
51
+ end
52
+
53
+ def layers=(attributes)
54
+ @layers = LeafletLayersConfig.new(attributes)
55
+ end
56
+
57
+ def to_h
58
+ {
59
+ bounds_overlay: bounds_overlay,
60
+ selected_color: selected_color,
61
+ sleep: sleep.to_h,
62
+ sidebar: sidebar,
63
+ layers: layers.to_h,
64
+ controls: controls
65
+ }.compact
66
+ end
67
+ end
68
+ end
69
+ end
@@ -0,0 +1,33 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Geoblacklight
4
+ class Configuration
5
+ class LeafletLayersConfig
6
+ include ActiveModel::Model
7
+ include ActiveModel::Attributes
8
+
9
+ attribute :detect_retina, :boolean, default: true
10
+
11
+ attr_reader :index
12
+
13
+ def initialize(attributes = {})
14
+ super
15
+ self.index = attributes[:index]
16
+ end
17
+
18
+ def index=(values)
19
+ @index = (values || {}).transform_values do |val|
20
+ if val.is_a?(LayerConfig)
21
+ val
22
+ else
23
+ LayerConfig.new(val)
24
+ end
25
+ end
26
+ end
27
+
28
+ def to_h
29
+ attributes.merge({"index" => index.transform_values(&:to_h)})
30
+ end
31
+ end
32
+ end
33
+ end
@@ -0,0 +1,20 @@
1
+ module Geoblacklight
2
+ class Configuration
3
+ class LeafletSleepConfig
4
+ include ActiveModel::Model
5
+ include ActiveModel::Attributes
6
+
7
+ attribute :sleep, :boolean, default: true # set to false to disable
8
+ attribute :margin_distance, :integer, default: 100 # set to zero / false if you want to disable this check
9
+ attribute :sleeptime, :integer, default: 750
10
+ attribute :waketime, :integer, default: 750
11
+ attribute :hovertowake, :boolean, default: false
12
+ attribute :message, :string, default: "Click to Wake"
13
+ attribute :background, :string, default: "rgba(214, 214, 214, .7)"
14
+
15
+ def to_h
16
+ attributes
17
+ end
18
+ end
19
+ end
20
+ end
@@ -0,0 +1,15 @@
1
+ module Geoblacklight
2
+ class Configuration
3
+ # Configuration for an individual relationship displayed on a document's show page.
4
+ class RelationshipConfig
5
+ include ActiveModel::Model
6
+ include ActiveModel::Attributes
7
+
8
+ attribute :field, :string
9
+ attribute :icon, :string
10
+ attribute :inverse, :string
11
+ attribute :label, :string
12
+ attribute :query_type, :string
13
+ end
14
+ end
15
+ end
@@ -0,0 +1,123 @@
1
+ module Geoblacklight
2
+ class Configuration
3
+ # Hash-like configuration for the relationships displayed on a document's
4
+ # show page. By default it carries all of the relationships defined in the
5
+ # RELATIONSHIPS_SHOWN section of settings.yml, using lowercase keys.
6
+ class RelationshipsConfig
7
+ include Enumerable
8
+
9
+ DEFAULT_RELATIONSHIPS = {
10
+ member_of_ancestors: {
11
+ field: "pcdm_memberOf_sm",
12
+ icon: "parent-item",
13
+ inverse: :member_of_descendants,
14
+ label: "geoblacklight.relations.member_of_ancestors",
15
+ query_type: "ancestors"
16
+ },
17
+ member_of_descendants: {
18
+ field: "pcdm_memberOf_sm",
19
+ icon: "child-item",
20
+ inverse: :member_of_ancestors,
21
+ label: "geoblacklight.relations.member_of_descendants",
22
+ query_type: "descendants"
23
+ },
24
+ part_of_ancestors: {
25
+ field: "dct_isPartOf_sm",
26
+ icon: "parent-item",
27
+ inverse: :part_of_descendants,
28
+ label: "geoblacklight.relations.part_of_ancestors",
29
+ query_type: "ancestors"
30
+ },
31
+ part_of_descendants: {
32
+ field: "dct_isPartOf_sm",
33
+ icon: "child-item",
34
+ inverse: :part_of_ancestors,
35
+ label: "geoblacklight.relations.part_of_descendants",
36
+ query_type: "descendants"
37
+ },
38
+ relation_ancestors: {
39
+ field: "dct_relation_sm",
40
+ icon: nil,
41
+ inverse: :relation_descendants,
42
+ label: "geoblacklight.relations.relation_ancestors",
43
+ query_type: "ancestors"
44
+ },
45
+ relation_descendants: {
46
+ field: "dct_relation_sm",
47
+ icon: nil,
48
+ inverse: :relation_ancestors,
49
+ label: "geoblacklight.relations.relation_descendants",
50
+ query_type: "descendants"
51
+ },
52
+ replaces_ancestors: {
53
+ field: "dct_replaces_sm",
54
+ icon: nil,
55
+ inverse: :replaces_descendants,
56
+ label: "geoblacklight.relations.replaces_ancestors",
57
+ query_type: "ancestors"
58
+ },
59
+ replaces_descendants: {
60
+ field: "dct_replaces_sm",
61
+ icon: nil,
62
+ inverse: :replaces_ancestors,
63
+ label: "geoblacklight.relations.replaces_descendants",
64
+ query_type: "descendants"
65
+ },
66
+ source_ancestors: {
67
+ field: "dct_source_sm",
68
+ icon: "parent-item",
69
+ inverse: :source_descendants,
70
+ label: "geoblacklight.relations.source_ancestors",
71
+ query_type: "ancestors"
72
+ },
73
+ source_descendants: {
74
+ field: "dct_source_sm",
75
+ icon: "child-item",
76
+ inverse: :source_ancestors,
77
+ label: "geoblacklight.relations.source_descendants",
78
+ query_type: "descendants"
79
+ },
80
+ version_of_ancestors: {
81
+ field: "dct_isVersionOf_sm",
82
+ icon: "parent-item",
83
+ inverse: :version_of_descendants,
84
+ label: "geoblacklight.relations.version_of_ancestors",
85
+ query_type: "ancestors"
86
+ },
87
+ version_of_descendants: {
88
+ field: "dct_isVersionOf_sm",
89
+ icon: "child-item",
90
+ inverse: :version_of_ancestors,
91
+ label: "geoblacklight.relations.version_of_descendants",
92
+ query_type: "descendants"
93
+ }
94
+ }.freeze
95
+
96
+ def initialize(relationships = DEFAULT_RELATIONSHIPS)
97
+ @relationships = relationships.to_h.transform_values do |attrs|
98
+ attrs.is_a?(RelationshipConfig) ? attrs : RelationshipConfig.new(attrs)
99
+ end
100
+ end
101
+
102
+ def each(&block)
103
+ @relationships.each(&block)
104
+ end
105
+
106
+ def each_key(&block)
107
+ @relationships.each_key(&block)
108
+ end
109
+
110
+ def key?(key)
111
+ @relationships.key?(key)
112
+ end
113
+
114
+ def [](key)
115
+ @relationships[key]
116
+ end
117
+
118
+ def method_missing(name, *args, **kwargs, &block) # rubocop:disable Style/MissingRespondToMissing
119
+ @relationships.key?(name) ? @relationships[name] : super
120
+ end
121
+ end
122
+ end
123
+ end
@@ -0,0 +1,118 @@
1
+ module Geoblacklight
2
+ class Configuration
3
+ # Builds a configuration from legacy (uppercase) settings
4
+ class SettingsBuilder
5
+ def self.build
6
+ new.build
7
+ end
8
+
9
+ def initialize(settings: Settings)
10
+ @configuration = Configuration.new
11
+ @settings = CaseInsensitiveSettings.new(settings, deprecation: Geoblacklight::Deprecation)
12
+ end
13
+
14
+ def build
15
+ @configuration.tap do |config|
16
+ assign(config, :arcgis_base_url, settings.ARCGIS_BASE_URL)
17
+ assign(config, :bbox_within_boost, settings.BBOX_WITHIN_BOOST)
18
+ assign(config, :overlap_ratio_boost, settings.OVERLAP_RATIO_BOOST)
19
+ assign(config, :display_notes_shown, build_display_notes)
20
+ assign(config, :institution, settings.INSTITUTION)
21
+ assign(config, :help_text, settings.HELP_TEXT&.to_h)
22
+ assign(config, :sidebar_static_map, settings.SIDEBAR_STATIC_MAP)
23
+ assign(config, :iiif_drag_drop_link, settings.IIIF_DRAG_DROP_LINK)
24
+ assign(config, :homepage_map_geom, settings.HOMEPAGE_MAP_GEOM)
25
+ assign(config, :vector_download_formats, settings.DOWNLOAD_FORMATS&.VECTOR)
26
+ assign(config, :metadata_shown, settings.METADATA_SHOWN)
27
+ assign(config, :webservices_shown, settings.WEBSERVICES_SHOWN)
28
+ assign(config, :relationships_shown, build_relationships)
29
+ assign(config, :timeout_download, settings.TIMEOUT_DOWNLOAD)
30
+ assign(config, :download_path, settings.DOWNLOAD_PATH)
31
+ assign(config, :gbl_params, settings.GBL_PARAMS)
32
+ assign(config, :wms_params, settings.WMS_PARAMS&.to_h)
33
+ assign(config, :timeout_wms, settings.TIMEOUT_WMS)
34
+
35
+ build_fields(config)
36
+ build_leaflet_options(config)
37
+ end
38
+ end
39
+
40
+ private
41
+
42
+ attr_reader :settings
43
+
44
+ # Assigns the value to the target's attribute unless it is nil, so that
45
+ # missing settings do not overwrite the defaults provided by Configuration.
46
+ def assign(target, attribute, value)
47
+ target.public_send("#{attribute}=", value) unless value.nil?
48
+ end
49
+
50
+ def build_display_notes
51
+ settings.DISPLAY_NOTES_SHOWN&.to_h&.transform_values do |value|
52
+ DisplayNoteShownConfig.new(value.to_h)
53
+ end
54
+ end
55
+
56
+ def build_relationships
57
+ RelationshipsConfig.new(settings.RELATIONSHIPS_SHOWN.to_h) if settings.RELATIONSHIPS_SHOWN
58
+ end
59
+
60
+ def build_leaflet_options(config)
61
+ return unless settings.LEAFLET
62
+
63
+ assign(config.leaflet_options, :bounds_overlay, settings.LEAFLET.BOUNDSOVERLAY&.to_h)
64
+ assign(config.leaflet_options, :selected_color, settings.LEAFLET.SELECTED_COLOR)
65
+ assign(config.leaflet_options, :sleep, settings.LEAFLET.SLEEP&.to_h&.transform_keys(&:downcase))
66
+ assign(config.leaflet_options, :sidebar, settings.LEAFLET.SIDEBAR)
67
+ assign(config.leaflet_options, :layers, settings.LEAFLET.LAYERS&.to_h&.transform_keys(&:downcase))
68
+ end
69
+
70
+ def build_fields(config)
71
+ return unless settings.FIELDS
72
+
73
+ assign(config.fields, :access_rights, settings.FIELDS.ACCESS_RIGHTS)
74
+ assign(config.fields, :alternative_title, settings.FIELDS.ALTERNATIVE_TITLE)
75
+ assign(config.fields, :centroid, settings.FIELDS.CENTROID)
76
+ assign(config.fields, :creator, settings.FIELDS.CREATOR)
77
+ assign(config.fields, :date_issued, settings.FIELDS.DATE_ISSUED)
78
+ assign(config.fields, :date_range, settings.FIELDS.DATE_RANGE)
79
+ assign(config.fields, :description, settings.FIELDS.DESCRIPTION)
80
+ assign(config.fields, :display_note, settings.FIELDS.DISPLAY_NOTE)
81
+ assign(config.fields, :format, settings.FIELDS.FORMAT)
82
+ assign(config.fields, :file_size, settings.FIELDS.FILE_SIZE)
83
+ assign(config.fields, :georeferenced, settings.FIELDS.GEOREFERENCED)
84
+ assign(config.fields, :id, settings.FIELDS.ID)
85
+ assign(config.fields, :identifier, settings.FIELDS.IDENTIFIER)
86
+ assign(config.fields, :index_year, settings.FIELDS.INDEX_YEAR)
87
+ assign(config.fields, :is_part_of, settings.FIELDS.IS_PART_OF)
88
+ assign(config.fields, :is_replaced_by, settings.FIELDS.IS_REPLACED_BY)
89
+ assign(config.fields, :theme, settings.FIELDS.THEME)
90
+ assign(config.fields, :keyword, settings.FIELDS.KEYWORD)
91
+ assign(config.fields, :language, settings.FIELDS.LANGUAGE)
92
+ assign(config.fields, :license, settings.FIELDS.LICENSE)
93
+ assign(config.fields, :member_of, settings.FIELDS.MEMBER_OF)
94
+ assign(config.fields, :metadata_version, settings.FIELDS.METADATA_VERSION)
95
+ assign(config.fields, :modified, settings.FIELDS.MODIFIED)
96
+ assign(config.fields, :overlap_field, settings.FIELDS.OVERLAP_FIELD)
97
+ assign(config.fields, :publisher, settings.FIELDS.PUBLISHER)
98
+ assign(config.fields, :provider, settings.FIELDS.PROVIDER)
99
+ assign(config.fields, :references, settings.FIELDS.REFERENCES)
100
+ assign(config.fields, :relation, settings.FIELDS.RELATION)
101
+ assign(config.fields, :replaces, settings.FIELDS.REPLACES)
102
+ assign(config.fields, :resource_class, settings.FIELDS.RESOURCE_CLASS)
103
+ assign(config.fields, :resource_type, settings.FIELDS.RESOURCE_TYPE)
104
+ assign(config.fields, :rights, settings.FIELDS.RIGHTS)
105
+ assign(config.fields, :rights_holder, settings.FIELDS.RIGHTS_HOLDER)
106
+ assign(config.fields, :source, settings.FIELDS.SOURCE)
107
+ assign(config.fields, :spatial_coverage, settings.FIELDS.SPATIAL_COVERAGE)
108
+ assign(config.fields, :geometry, settings.FIELDS.GEOMETRY)
109
+ assign(config.fields, :subject, settings.FIELDS.SUBJECT)
110
+ assign(config.fields, :suppressed, settings.FIELDS.SUPPRESSED)
111
+ assign(config.fields, :temporal_coverage, settings.FIELDS.TEMPORAL_COVERAGE)
112
+ assign(config.fields, :title, settings.FIELDS.TITLE)
113
+ assign(config.fields, :version, settings.FIELDS.VERSION)
114
+ assign(config.fields, :wxs_identifier, settings.FIELDS.WXS_IDENTIFIER)
115
+ end
116
+ end
117
+ end
118
+ end
@@ -0,0 +1,153 @@
1
+ module Geoblacklight
2
+ # Configuration for Geoblacklight
3
+ class Configuration
4
+ include ActiveModel::Attributes
5
+
6
+ # ArcGIS Online Base URL
7
+ attribute :arcgis_base_url, :string, default: "https://www.arcgis.com/apps/mapviewer/index.html"
8
+
9
+ # The bq boost value for spatial search matches within a bounding box
10
+ attribute :bbox_within_boost, :string, default: "10"
11
+
12
+ # The bf boost value for overlap ratio
13
+ attribute :overlap_ratio_boost, :string, default: "2"
14
+
15
+ # Institution deployed at
16
+ attribute :institution, :string, default: "Stanford"
17
+
18
+ # (For external Download) timeout and open_timeout parameters for Faraday
19
+ attribute :timeout_download, :integer, default: 180
20
+
21
+ # (For WMS inspection) timeout and open_timeout parameters for Faraday
22
+ attribute :timeout_wms, :integer, default: 4
23
+
24
+ # Display Notes to display / Non-prefixed default bootstrap class is alert-secondary
25
+ attr_accessor :display_notes_shown # typed as Hash
26
+
27
+ # Toggle the help text feature that offers users context
28
+ attr_accessor :help_text # typed as Hash
29
+
30
+ # Non-search-field GeoBlacklight application permitted params
31
+ attr_accessor :gbl_params # typed as Array
32
+
33
+ # WMS Parameters
34
+ attr_accessor :wms_params # typed as Hash
35
+
36
+ # Enable catalog#show sidebar static map for items with the following viewer protocols
37
+ attr_accessor :sidebar_static_map # typed as Array
38
+
39
+ attribute :iiif_drag_drop_link, :string, default: "@manifest?manifest=@manifest"
40
+
41
+ # Homepage Map Geometry
42
+ # Leave null to default to entire world
43
+ # Add a stringified GeoJSON object to scope initial render (example from UMass)
44
+ # config.homepage_map_geom = '{"type":"Polygon","coordinates":[[[-73.58,42.93],[-73.58,41.20],[-69.90,41.20],[-69.90,42.93]]]}'
45
+ attribute :homepage_map_geom, :string
46
+
47
+ # Vector data download formats to be displayed
48
+ attr_accessor :vector_download_formats # typed as Array
49
+
50
+ # Metadata shown in tool panel
51
+ attr_accessor :metadata_shown # typed as Array
52
+
53
+ # Web services shown in tool panel
54
+ attr_accessor :webservices_shown # typed as Array
55
+
56
+ # Relationships to display
57
+ attr_accessor :relationships_shown # typed as RelationshipsConfig
58
+
59
+ attribute :download_path, :string
60
+
61
+ def initialize
62
+ super
63
+ self.download_path ||= Rails.root.join("tmp", "cache", "downloads")
64
+ @relationships_shown = RelationshipsConfig.new
65
+ @gbl_params = [
66
+ :bbox, :email, :file, :format, :id, :logo, :provider, :type,
67
+ :BBOX, :HEIGHT, :LAYERS, :QUERY_LAYERS, :URL, :WIDTH, :X, :Y
68
+ ]
69
+ @wms_params = {
70
+ SERVICE: "WMS",
71
+ VERSION: "1.1.1",
72
+ REQUEST: "GetFeatureInfo",
73
+ STYLES: "",
74
+ SRS: "EPSG:4326",
75
+ EXCEPTIONS: "application/json",
76
+ INFO_FORMAT: "application/json"
77
+ }
78
+ @help_text = {
79
+ viewer_protocol: %w[
80
+ cog
81
+ dynamic_map_layer
82
+ feature_layer
83
+ iiif
84
+ iiif_manifest
85
+ image_map_layer
86
+ index_map
87
+ oembed
88
+ pmtiles
89
+ tiled_map_layer
90
+ tilejson
91
+ tms
92
+ wms
93
+ wmts
94
+ xyz
95
+ ]
96
+ }
97
+
98
+ @vector_download_formats = ["Shapefile", "KMZ", "GeoJSON", "CSV"]
99
+ @metadata_shown = ["mods", "fgdc", "iso19139", "html"]
100
+ @webservices_shown = %w[
101
+ wms
102
+ tms
103
+ wfs
104
+ xyz
105
+ wmts
106
+ tilejson
107
+ iiif
108
+ feature_layer
109
+ tiled_map_layer
110
+ dynamic_map_layer
111
+ image_map_layer
112
+ cog
113
+ pmtiles
114
+ ]
115
+
116
+ @display_notes_shown = {
117
+ danger: DisplayNoteShownConfig.new(
118
+ bootstrap_alert_class: "alert-danger",
119
+ icon: "fire-solid",
120
+ note_prefix: "Danger: "
121
+ ),
122
+ info: DisplayNoteShownConfig.new(
123
+ bootstrap_alert_class: "alert-info",
124
+ icon: "circle-info-solid",
125
+ note_prefix: "Info: "
126
+ ),
127
+ tip: DisplayNoteShownConfig.new(
128
+ bootstrap_alert_class: "alert-success",
129
+ icon: "lightbulb-solid",
130
+ note_prefix: "Tip: "
131
+ ),
132
+ warning: DisplayNoteShownConfig.new(
133
+ bootstrap_alert_class: "alert-warning",
134
+ icon: "triangle-exclamation-solid",
135
+ note_prefix: "Warning: "
136
+ )
137
+ }
138
+
139
+ @sidebar_static_map = ["iiif", "iiif_manifest"]
140
+ end
141
+
142
+ def fields
143
+ @fields ||= FieldsConfig.new
144
+ end
145
+
146
+ ##
147
+ # Returns Leaflet plugin settings to pass to the viewer.
148
+ # @return[Geoblacklight::Configuration::LeafletConfig]
149
+ def leaflet_options
150
+ @leaflet_options ||= Geoblacklight::Configuration::LeafletConfig.new
151
+ end
152
+ end
153
+ end
@@ -0,0 +1,7 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "active_support/deprecation"
4
+
5
+ module Geoblacklight
6
+ Deprecation = ActiveSupport::Deprecation.new("7.0", "GeoBlacklight")
7
+ end
@@ -16,7 +16,7 @@ module Geoblacklight
16
16
  end
17
17
 
18
18
  def self.file_path
19
- Settings.DOWNLOAD_PATH || Rails.root.join("tmp", "cache", "downloads")
19
+ Geoblacklight.configuration.download_path
20
20
  end
21
21
 
22
22
  def file_path_and_name
@@ -95,7 +95,7 @@ module Geoblacklight
95
95
  # the Geoblacklight::Download class
96
96
  # @return [Fixnum] download timeout in seconds
97
97
  def timeout
98
- @options[:timeout] || Settings.TIMEOUT_DOWNLOAD || 20
98
+ @options[:timeout] || Geoblacklight.configuration.timeout_download
99
99
  end
100
100
 
101
101
  ##
@@ -7,6 +7,7 @@ require "faraday"
7
7
  require "geoblacklight/version"
8
8
  require "nokogiri"
9
9
  require "mime/types"
10
+ require "geo_combine"
10
11
 
11
12
  module Geoblacklight
12
13
  class Engine < ::Rails::Engine
@@ -18,21 +19,22 @@ module Geoblacklight
18
19
  end
19
20
  end
20
21
 
21
- PRECOMPILE_ASSETS = %w[favicon.ico geoblacklight/geoblacklight.umd.cjs geoblacklight/geoblacklight.umd.cjs.map geoblacklight/geoblacklight.js geoblacklight/geoblacklight.js.map].freeze
22
+ PRECOMPILE_ASSETS = %w[favicon.ico].freeze
22
23
 
23
24
  # Make the source JS and CSS available to built apps
24
25
  initializer "geoblacklight.assets" do |app|
25
26
  app.config.assets.paths << Geoblacklight::Engine.root.join("app/javascript")
26
- app.config.assets.paths << Geoblacklight::Engine.root.join("app/assets")
27
+ app.config.assets.paths << Geoblacklight::Engine.root.join("app/assets/images")
28
+ app.config.assets.paths << Geoblacklight::Engine.root.join("app/assets/stylesheets")
27
29
  app.config.assets.precompile += Geoblacklight::Engine::PRECOMPILE_ASSETS
28
30
  end
29
31
 
30
32
  # Add the Geoblacklight importmap to the built app's importmap
31
33
  initializer "geoblacklight.importmap", before: "importmap" do |app|
32
- next unless app.config.respond_to?(:importmap) # skip for Vite
34
+ next unless app.config.respond_to?(:importmap)
33
35
 
34
- app.config.importmap.paths << Engine.root.join("config/importmap.rb")
35
- app.config.importmap.cache_sweepers << Engine.root.join("app/javascript")
36
+ app.config.importmap.paths << Geoblacklight::Engine.root.join("config/importmap.rb")
37
+ app.config.importmap.cache_sweepers << Geoblacklight::Engine.root.join("app/javascript")
36
38
  end
37
39
  end
38
40
  end
@@ -1,7 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require "geo_combine"
4
-
5
3
  module Geoblacklight
6
4
  module Metadata
7
5
  ##
@@ -1,7 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require "geo_combine"
4
-
5
3
  module Geoblacklight
6
4
  module MetadataTransformer
7
5
  ##
@@ -5,7 +5,7 @@ module Geoblacklight
5
5
  class References
6
6
  attr_reader :refs, :reference_field
7
7
 
8
- def initialize(document, reference_field = Settings.FIELDS.REFERENCES)
8
+ def initialize(document, reference_field = Geoblacklight.configuration.fields.references)
9
9
  @document = document
10
10
  @reference_field = reference_field
11
11
  @refs = parse_references.map { |ref| Reference.new(ref) }
@@ -15,9 +15,10 @@ module Geoblacklight
15
15
  # Return only those metadata references which are exposed within the configuration
16
16
  # @return [Geoblacklight::Reference]
17
17
  def shown_metadata_refs
18
- metadata = @refs.select { |ref| Settings.METADATA_SHOWN.include?(ref.type.to_s) }
18
+ metadata_shown = Geoblacklight.configuration.metadata_shown
19
+ metadata = @refs.select { |ref| metadata_shown.include?(ref.type.to_s) }
19
20
  metadata.sort do |u, v|
20
- Settings.METADATA_SHOWN.index(u.type.to_s) <=> Settings.METADATA_SHOWN.index(v.type.to_s)
21
+ metadata_shown.index(u.type.to_s) <=> metadata_shown.index(v.type.to_s)
21
22
  end
22
23
  end
23
24
 
@@ -111,7 +112,7 @@ module Geoblacklight
111
112
  end
112
113
 
113
114
  def format_list
114
- Settings.DOWNLOAD_FORMATS&.VECTOR
115
+ Geoblacklight.configuration.vector_download_formats || []
115
116
  end
116
117
 
117
118
  def web_service_hash(format)
@@ -10,8 +10,9 @@ module Geoblacklight
10
10
  end
11
11
 
12
12
  def create_search_params
13
- {fq: ["{!join from=#{@field} to=#{Settings.FIELDS.ID}}#{Settings.FIELDS.ID}:#{@search_id}"],
14
- fl: [Settings.FIELDS.TITLE, Settings.FIELDS.ID, Settings.FIELDS.RESOURCE_TYPE]}
13
+ {fq: ["{!join from=#{@field} to=#{Geoblacklight.configuration.fields.id}}#{Geoblacklight.configuration.fields.id}:#{@search_id}"],
14
+ fl: [Geoblacklight.configuration.fields.title, Geoblacklight.configuration.fields.id,
15
+ Geoblacklight.configuration.fields.resource_type]}
15
16
  end
16
17
 
17
18
  def execute_query
@@ -11,7 +11,8 @@ module Geoblacklight
11
11
 
12
12
  def create_search_params
13
13
  {fq: "#{@field}:#{@search_id}",
14
- fl: [Settings.FIELDS.TITLE, Settings.FIELDS.ID, Settings.FIELDS.RESOURCE_TYPE]}
14
+ fl: [Geoblacklight.configuration.fields.title, Geoblacklight.configuration.fields.id,
15
+ Geoblacklight.configuration.fields.resource_type]}
15
16
  end
16
17
 
17
18
  def execute_query