geoblacklight 5.3.0 → 6.0.0.pre.alpha.1

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 (453) hide show
  1. checksums.yaml +4 -4
  2. data/.engine_cart.yml +14 -0
  3. data/.github/workflows/ruby.yml +24 -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/sidebar_component.html.erb +1 -1
  29. data/app/components/geoblacklight/document/sidebar_component.rb +0 -1
  30. data/app/components/geoblacklight/document_component.html.erb +1 -2
  31. data/app/components/geoblacklight/header_component.html.erb +4 -4
  32. data/app/components/geoblacklight/header_icons_component.rb +4 -2
  33. data/app/components/geoblacklight/homepage_feature_facet_component.html.erb +3 -7
  34. data/app/components/geoblacklight/homepage_feature_facet_component.rb +12 -3
  35. data/app/components/geoblacklight/iiif_drag_drop_component.html.erb +2 -2
  36. data/app/components/geoblacklight/iiif_drag_drop_component.rb +2 -2
  37. data/app/components/geoblacklight/index_map_inspect_component.html.erb +3 -3
  38. data/app/components/geoblacklight/index_map_legend_component.html.erb +7 -7
  39. data/app/components/geoblacklight/index_map_legend_component.rb +7 -0
  40. data/app/components/geoblacklight/item_map_viewer_component.rb +8 -4
  41. data/app/components/geoblacklight/location_leaflet_map_component.rb +28 -15
  42. data/app/components/geoblacklight/relations_component.html.erb +2 -2
  43. data/app/components/geoblacklight/search_result_component.html.erb +28 -26
  44. data/app/components/geoblacklight/search_result_component.rb +2 -2
  45. data/app/components/geoblacklight/static_map_component.rb +5 -4
  46. data/app/components/geoblacklight/viewer_help_text_component.html.erb +1 -1
  47. data/app/components/geoblacklight/viewer_help_text_component.rb +1 -1
  48. data/app/components/geoblacklight/web_services_component.html.erb +1 -1
  49. data/app/components/geoblacklight/web_services_component.rb +1 -1
  50. data/app/components/geoblacklight/web_services_default_component.html.erb +6 -6
  51. data/app/components/geoblacklight/web_services_link_component.rb +12 -9
  52. data/app/components/geoblacklight/web_services_wfs_component.html.erb +4 -4
  53. data/app/components/geoblacklight/web_services_wms_component.html.erb +4 -4
  54. data/app/controllers/download_controller.rb +0 -1
  55. data/app/controllers/wms_controller.rb +1 -1
  56. data/app/helpers/geoblacklight_helper.rb +0 -15
  57. data/app/javascript/geoblacklight/controllers/clipboard_controller.js +6 -6
  58. data/app/javascript/geoblacklight/controllers/downloads_controller.js +37 -29
  59. data/app/javascript/geoblacklight/controllers/leaflet_viewer_controller.js +108 -117
  60. data/app/javascript/geoblacklight/controllers/oembed_viewer_controller.js +5 -5
  61. data/app/javascript/geoblacklight/controllers/openlayers_viewer_controller.js +27 -30
  62. data/app/javascript/geoblacklight/controllers/search_results_controller.js +18 -18
  63. data/app/javascript/geoblacklight/core.js +35 -36
  64. data/app/javascript/geoblacklight/index.js +10 -10
  65. data/app/javascript/geoblacklight/initializers/metadata_download.js +23 -25
  66. data/app/javascript/geoblacklight/initializers/popovers.js +4 -4
  67. data/app/javascript/geoblacklight/initializers/relations.js +20 -20
  68. data/app/javascript/geoblacklight/initializers/tooltips.js +19 -23
  69. data/app/javascript/geoblacklight/initializers/truncation.js +18 -18
  70. data/app/javascript/geoblacklight/leaflet/basemaps.js +2 -3
  71. data/app/javascript/geoblacklight/leaflet/constants.js +7 -7
  72. data/app/javascript/geoblacklight/leaflet/controls/geosearch.js +80 -74
  73. data/app/javascript/geoblacklight/leaflet/controls/layer_opacity.js +74 -73
  74. data/app/javascript/geoblacklight/leaflet/controls/sidebar.js +31 -29
  75. data/app/javascript/geoblacklight/leaflet/controls/sleep.js +54 -51
  76. data/app/javascript/geoblacklight/leaflet/inspection.js +77 -68
  77. data/app/javascript/geoblacklight/leaflet/layer_index_map.js +74 -69
  78. data/app/javascript/geoblacklight/leaflet/layer_wmts.js +14 -16
  79. data/app/javascript/geoblacklight/leaflet/layers.js +59 -66
  80. data/app/javascript/geoblacklight/leaflet/utils.js +37 -43
  81. data/app/javascript/geoblacklight/openlayers/basemaps.js +35 -27
  82. data/app/javascript/geoblacklight/openlayers/inspection.js +23 -23
  83. data/app/javascript/geoblacklight/openlayers/layers.js +11 -11
  84. data/app/models/concerns/geoblacklight/bbox_filter_query.rb +7 -9
  85. data/app/models/concerns/geoblacklight/solr_document.rb +16 -39
  86. data/app/models/concerns/geoblacklight/suppressed_records_search_behavior.rb +3 -3
  87. data/app/views/catalog/_document_split.html.erb +3 -3
  88. data/app/views/catalog/_home_text.html.erb +22 -14
  89. data/app/views/catalog/_metadata.html.erb +1 -1
  90. data/app/views/catalog/_relations_container.html.erb +1 -1
  91. data/app/views/catalog/index.html.erb +0 -1
  92. data/app/views/catalog/metadata/_markup.html.erb +1 -2
  93. data/app/views/catalog/metadata/_missing.html.erb +2 -2
  94. data/app/views/catalog/web_services.html.erb +1 -1
  95. data/app/views/relation/index.html.erb +1 -1
  96. data/app/views/relation/index.json.jbuilder +1 -1
  97. data/config/initializers/rails_config.rb +0 -3
  98. data/config/locales/geoblacklight.en.yml +79 -78
  99. data/geoblacklight.gemspec +1 -2
  100. data/lib/generators/geoblacklight/assets_generator.rb +35 -26
  101. data/lib/generators/geoblacklight/install_generator.rb +6 -11
  102. data/lib/generators/geoblacklight/templates/assets/customizations.css +6 -0
  103. data/lib/generators/geoblacklight/templates/catalog_controller.rb +97 -73
  104. data/lib/generators/geoblacklight/templates/settings.yml +97 -113
  105. data/lib/geoblacklight/configuration/default_settings_builder.rb +18 -0
  106. data/lib/geoblacklight/configuration/display_note_shown_config.rb +13 -0
  107. data/lib/geoblacklight/configuration/fields_config.rb +51 -0
  108. data/lib/geoblacklight/configuration/leaflet_config.rb +73 -0
  109. data/lib/geoblacklight/configuration/leaflet_layers_config.rb +21 -0
  110. data/lib/geoblacklight/configuration/leaflet_sleep_config.rb +20 -0
  111. data/lib/geoblacklight/configuration/legacy_settings_builder.rb +94 -0
  112. data/lib/geoblacklight/configuration.rb +148 -0
  113. data/lib/geoblacklight/download.rb +2 -2
  114. data/lib/geoblacklight/engine.rb +7 -5
  115. data/lib/geoblacklight/metadata/base.rb +0 -2
  116. data/lib/geoblacklight/metadata_transformer.rb +0 -2
  117. data/lib/geoblacklight/references.rb +5 -4
  118. data/lib/geoblacklight/relation/ancestors.rb +3 -2
  119. data/lib/geoblacklight/relation/descendants.rb +2 -1
  120. data/lib/geoblacklight/relation/relation_response.rb +4 -4
  121. data/lib/geoblacklight/version.rb +1 -1
  122. data/lib/geoblacklight/wms_layer.rb +3 -3
  123. data/lib/geoblacklight.rb +7 -1
  124. data/package.json +10 -31
  125. data/schema/geoblacklight-schema-aardvark.json +1 -9
  126. data/schema/readme.md +3 -4
  127. data/solr/conf/_rest_managed.json +3 -2
  128. data/solr/conf/schema.xml +1 -1
  129. data/spec/components/geoblacklight/arcgis_component_spec.rb +6 -6
  130. data/spec/components/geoblacklight/attribute_table_component_spec.rb +6 -7
  131. data/spec/components/geoblacklight/citation_component_spec.rb +7 -4
  132. data/spec/components/geoblacklight/display_note_component_spec.rb +8 -8
  133. data/spec/components/geoblacklight/document_component_spec.rb +13 -13
  134. data/spec/components/geoblacklight/download_links_component_spec.rb +17 -14
  135. data/spec/components/geoblacklight/header_icons_component_spec.rb +6 -11
  136. data/spec/components/geoblacklight/homepage_feature_facet_component_spec.rb +22 -30
  137. data/spec/components/geoblacklight/iiif_drag_drop_component_spec.rb +3 -3
  138. data/spec/components/geoblacklight/index_map_legend_component_spec.rb +5 -18
  139. data/spec/components/geoblacklight/item_map_viewer_component_spec.rb +5 -5
  140. data/spec/components/geoblacklight/login_link_component_spec.rb +4 -5
  141. data/spec/components/geoblacklight/search_result_component_spec.rb +2 -6
  142. data/spec/components/geoblacklight/static_map_component_spec.rb +2 -2
  143. data/spec/components/geoblacklight/viewer_help_text_component_spec.rb +4 -6
  144. data/spec/components/geoblacklight/web_services_component_spec.rb +11 -10
  145. data/spec/controllers/catalog_controller_spec.rb +7 -7
  146. data/spec/controllers/download_controller_spec.rb +1 -1
  147. data/spec/controllers/relation_controller_spec.rb +1 -1
  148. data/spec/controllers/wms_controller_spec.rb +1 -1
  149. data/spec/features/axe_spec.rb +4 -4
  150. data/spec/features/bookmarks_spec.rb +1 -1
  151. data/spec/features/citations_spec.rb +1 -1
  152. data/spec/features/configurable_basemap_spec.rb +1 -1
  153. data/spec/features/data_dictionary_download_spec.rb +1 -1
  154. data/spec/features/download_layer_spec.rb +1 -1
  155. data/spec/features/empty_search_spec.rb +1 -1
  156. data/spec/features/esri_viewer_spec.rb +1 -1
  157. data/spec/features/exports_spec.rb +1 -1
  158. data/spec/features/full_screen_control_spec.rb +3 -10
  159. data/spec/features/help_text_spec.rb +1 -1
  160. data/spec/features/home_page_spec.rb +1 -1
  161. data/spec/features/index_map_spec.rb +3 -3
  162. data/spec/features/index_view_spec.rb +7 -7
  163. data/spec/features/layer_inspection_spec.rb +1 -1
  164. data/spec/features/layer_opacity_spec.rb +1 -1
  165. data/spec/features/layer_preview_spec.rb +1 -1
  166. data/spec/features/layer_with_no_references_spec.rb +1 -1
  167. data/spec/features/linkified_attribute_table_spec.rb +1 -1
  168. data/spec/features/metadata_panel_spec.rb +1 -1
  169. data/spec/features/missing_metadata_spec.rb +1 -1
  170. data/spec/features/multiple_downloads_spec.rb +1 -1
  171. data/spec/features/oembed_spec.rb +1 -1
  172. data/spec/features/relations_spec.rb +2 -2
  173. data/spec/features/saved_searches_spec.rb +1 -1
  174. data/spec/features/search_bar_spec.rb +1 -1
  175. data/spec/features/search_results_complex_geometry_spec.rb +1 -1
  176. data/spec/features/search_results_icons_spec.rb +3 -4
  177. data/spec/features/search_results_map_spec.rb +1 -1
  178. data/spec/features/search_results_overlap_ratio_spec.rb +3 -3
  179. data/spec/features/search_spec.rb +1 -1
  180. data/spec/features/show_page_download_spec.rb +1 -1
  181. data/spec/features/show_page_metadata_spec.rb +2 -2
  182. data/spec/features/show_page_sidebar_static_map_spec.rb +1 -1
  183. data/spec/features/sms_spec.rb +1 -1
  184. data/spec/features/suppressed_records_spec.rb +1 -1
  185. data/spec/features/tilejson_spec.rb +1 -1
  186. data/spec/features/tms_spec.rb +1 -1
  187. data/spec/features/web_services_modal_spec.rb +1 -1
  188. data/spec/features/wmts_spec.rb +1 -1
  189. data/spec/features/xyz_spec.rb +1 -1
  190. data/spec/fixtures/manifests/tilejson.json +10 -19
  191. data/spec/fixtures/metadata/fgdc.html +1 -1
  192. data/spec/fixtures/metadata/iso.html +1 -1
  193. data/spec/fixtures/solr_documents/README.md +0 -1
  194. data/spec/fixtures/solr_documents/actual-papermap1.json +9 -28
  195. data/spec/fixtures/solr_documents/actual-point1.json +12 -39
  196. data/spec/fixtures/solr_documents/actual-polygon1.json +10 -30
  197. data/spec/fixtures/solr_documents/actual-raster1.json +14 -46
  198. data/spec/fixtures/solr_documents/all-relationships.json +12 -36
  199. data/spec/fixtures/solr_documents/b1g_iiif_manifest.json +33 -62
  200. data/spec/fixtures/solr_documents/b1g_wabash_child_15.json +13 -40
  201. data/spec/fixtures/solr_documents/b1g_wabash_child_16.json +13 -40
  202. data/spec/fixtures/solr_documents/b1g_wabash_child_17.json +13 -40
  203. data/spec/fixtures/solr_documents/b1g_wabash_child_18.json +13 -40
  204. data/spec/fixtures/solr_documents/b1g_wabash_parent.json +13 -40
  205. data/spec/fixtures/solr_documents/baruch_ancestor1.json +13 -40
  206. data/spec/fixtures/solr_documents/baruch_ancestor2.json +13 -40
  207. data/spec/fixtures/solr_documents/baruch_documentation_download.json +14 -46
  208. data/spec/fixtures/solr_documents/bbox-spans-180.json +7 -21
  209. data/spec/fixtures/solr_documents/complex-geom.json +11 -37
  210. data/spec/fixtures/solr_documents/cornell_html_metadata.json +12 -37
  211. data/spec/fixtures/solr_documents/display-note.json +11 -33
  212. data/spec/fixtures/solr_documents/esri-dynamic-layer-all-layers.json +13 -39
  213. data/spec/fixtures/solr_documents/esri-dynamic-layer-single-layer.json +13 -40
  214. data/spec/fixtures/solr_documents/esri-feature-layer.json +13 -39
  215. data/spec/fixtures/solr_documents/esri-image-map-layer.json +13 -40
  216. data/spec/fixtures/solr_documents/esri-tiled_map_layer.json +16 -54
  217. data/spec/fixtures/solr_documents/esri-wms-layer.json +12 -36
  218. data/spec/fixtures/solr_documents/harvard_raster.json +12 -37
  219. data/spec/fixtures/solr_documents/iiif-eastern-hemisphere.json +9 -27
  220. data/spec/fixtures/solr_documents/index-map-polygon-no-downloadurl.json +12 -41
  221. data/spec/fixtures/solr_documents/index-map-polygon.json +12 -41
  222. data/spec/fixtures/solr_documents/index-map-stanford.json +14 -45
  223. data/spec/fixtures/solr_documents/index-map-v1-complex.json +13 -38
  224. data/spec/fixtures/solr_documents/index_map_point.json +13 -42
  225. data/spec/fixtures/solr_documents/metadata_no_geom.json +4 -14
  226. data/spec/fixtures/solr_documents/metadata_no_provider.json +8 -25
  227. data/spec/fixtures/solr_documents/multiple-downloads.json +6 -18
  228. data/spec/fixtures/solr_documents/no_locn_geometry.json +4 -12
  229. data/spec/fixtures/solr_documents/no_spatial.json +4 -12
  230. data/spec/fixtures/solr_documents/oembed.json +8 -25
  231. data/spec/fixtures/solr_documents/princeton-child1.json +9 -29
  232. data/spec/fixtures/solr_documents/princeton-child2.json +9 -29
  233. data/spec/fixtures/solr_documents/princeton-child3.json +9 -29
  234. data/spec/fixtures/solr_documents/princeton-child4.json +9 -29
  235. data/spec/fixtures/solr_documents/princeton-parent.json +10 -33
  236. data/spec/fixtures/solr_documents/public_cog_princeton.json +9 -27
  237. data/spec/fixtures/solr_documents/public_iiif_princeton.json +13 -43
  238. data/spec/fixtures/solr_documents/public_pmtiles_princeton.json +29 -39
  239. data/spec/fixtures/solr_documents/public_polygon_mit.json +9 -30
  240. data/spec/fixtures/solr_documents/restricted-line.json +14 -47
  241. data/spec/fixtures/solr_documents/the-related-record.json +4 -12
  242. data/spec/fixtures/solr_documents/tilejson.json +23 -46
  243. data/spec/fixtures/solr_documents/tms.json +7 -21
  244. data/spec/fixtures/solr_documents/umn_metro_result1.json +13 -41
  245. data/spec/fixtures/solr_documents/umn_state_result1.json +13 -39
  246. data/spec/fixtures/solr_documents/umn_state_result2.json +13 -39
  247. data/spec/fixtures/solr_documents/uva_slug_colon.json +10 -30
  248. data/spec/fixtures/solr_documents/wmts-multiple.json +23 -39
  249. data/spec/fixtures/solr_documents/wmts-single-layer.json +23 -46
  250. data/spec/fixtures/solr_documents/xyz.json +10 -33
  251. data/spec/helpers/geoblacklight_helper_spec.rb +5 -50
  252. data/spec/javascripts/geoblacklight_spec.js +10 -10
  253. data/spec/javascripts/metadata_download_button_spec.js +14 -13
  254. data/spec/lib/geoblacklight/bounding_box_spec.rb +1 -1
  255. data/spec/lib/geoblacklight/configuration/default_settings_builder_spec.rb +9 -0
  256. data/spec/lib/geoblacklight/configuration_spec.rb +13 -0
  257. data/spec/lib/geoblacklight/download/csv_download_spec.rb +2 -2
  258. data/spec/lib/geoblacklight/download/geojson_download_spec.rb +2 -2
  259. data/spec/lib/geoblacklight/download/geotiff_download_spec.rb +5 -2
  260. data/spec/lib/geoblacklight/download/kmz_download_spec.rb +2 -2
  261. data/spec/lib/geoblacklight/download/shapefile_download_spec.rb +2 -2
  262. data/spec/lib/geoblacklight/download_spec.rb +15 -6
  263. data/spec/lib/geoblacklight/geometry_spec.rb +1 -1
  264. data/spec/lib/geoblacklight/item_viewer_spec.rb +2 -2
  265. data/spec/lib/geoblacklight/metadata/base_spec.rb +1 -1
  266. data/spec/lib/geoblacklight/metadata/html_spec.rb +1 -1
  267. data/spec/lib/geoblacklight/metadata_spec.rb +1 -1
  268. data/spec/lib/geoblacklight/metadata_transformer/base_spec.rb +1 -1
  269. data/spec/lib/geoblacklight/metadata_transformer/fgdc_spec.rb +1 -1
  270. data/spec/lib/geoblacklight/metadata_transformer/iso19139_spec.rb +1 -1
  271. data/spec/lib/geoblacklight/metadata_transformer_spec.rb +1 -1
  272. data/spec/lib/geoblacklight/reference_spec.rb +1 -1
  273. data/spec/lib/geoblacklight/references_spec.rb +6 -4
  274. data/spec/lib/geoblacklight/relation/ancestors_spec.rb +10 -4
  275. data/spec/lib/geoblacklight/relation/descendants_spec.rb +9 -4
  276. data/spec/lib/geoblacklight/relation/relation_response_spec.rb +12 -15
  277. data/spec/lib/geoblacklight/wms_layer/feature_info_response_spec.rb +1 -1
  278. data/spec/lib/geoblacklight/wms_layer_spec.rb +1 -1
  279. data/spec/models/concerns/geoblacklight/bbox_filter_query_spec.rb +20 -11
  280. data/spec/models/concerns/geoblacklight/solr_document/citation_spec.rb +1 -1
  281. data/spec/models/concerns/geoblacklight/solr_document/finder_spec.rb +1 -1
  282. data/spec/models/concerns/geoblacklight/solr_document/inspection_spec.rb +1 -1
  283. data/spec/models/concerns/geoblacklight/solr_document_spec.rb +4 -39
  284. data/spec/models/concerns/geoblacklight/suppressed_records_search_behavior_spec.rb +2 -2
  285. data/spec/routing/catalog_routing_spec.rb +1 -1
  286. data/spec/spec_helper.rb +21 -10
  287. data/spec/tasks/geoblacklight_spec.rb +1 -1
  288. data/spec/test_app_templates/lib/generators/test_app_generator.rb +4 -3
  289. metadata +33 -184
  290. data/Procfile.dev +0 -3
  291. data/app/assets/stylesheets/geoblacklight/geoblacklight.scss +0 -2
  292. data/app/assets/stylesheets/geoblacklight/modules/_base.scss +0 -31
  293. data/app/assets/stylesheets/geoblacklight/modules/_blacklight_overrides.scss +0 -40
  294. data/app/assets/stylesheets/geoblacklight/modules/_styles.scss +0 -9
  295. data/app/assets/stylesheets/geoblacklight/modules/downloads.scss +0 -62
  296. data/app/assets/stylesheets/geoblacklight/modules/geosearch.scss +0 -23
  297. data/app/assets/stylesheets/geoblacklight/modules/home.scss +0 -13
  298. data/app/assets/stylesheets/geoblacklight/modules/icon-customization.scss +0 -116
  299. data/app/assets/stylesheets/geoblacklight/modules/index_maps.scss +0 -61
  300. data/app/assets/stylesheets/geoblacklight/modules/item.scss +0 -78
  301. data/app/assets/stylesheets/geoblacklight/modules/layer_opacity.scss +0 -87
  302. data/app/assets/stylesheets/geoblacklight/modules/leaflet.scss +0 -4
  303. data/app/assets/stylesheets/geoblacklight/modules/metadata.scss +0 -31
  304. data/app/assets/stylesheets/geoblacklight/modules/metadata_content.scss +0 -43
  305. data/app/assets/stylesheets/geoblacklight/modules/metadata_markup.scss +0 -9
  306. data/app/assets/stylesheets/geoblacklight/modules/metadata_missing.scss +0 -7
  307. data/app/assets/stylesheets/geoblacklight/modules/modal.scss +0 -5
  308. data/app/assets/stylesheets/geoblacklight/modules/results.scss +0 -60
  309. data/app/assets/stylesheets/geoblacklight/modules/search_widgets.scss +0 -5
  310. data/app/assets/stylesheets/geoblacklight/modules/sidebar.scss +0 -42
  311. data/app/assets/stylesheets/geoblacklight/modules/toolbar.scss +0 -34
  312. data/app/assets/stylesheets/geoblacklight/modules/web_services.scss +0 -5
  313. data/app/components/blacklight/icons/american_geographical_society_library_uwm_libraries_component.rb +0 -46
  314. data/app/components/blacklight/icons/arizona_component.rb +0 -24
  315. data/app/components/blacklight/icons/baruch_cuny_component.rb +0 -23
  316. data/app/components/blacklight/icons/bookmark_component.rb +0 -23
  317. data/app/components/blacklight/icons/circle_info_solid_component.rb +0 -23
  318. data/app/components/blacklight/icons/columbia_component.rb +0 -23
  319. data/app/components/blacklight/icons/cornell_component.rb +0 -25
  320. data/app/components/blacklight/icons/george_mason_component.rb +0 -24
  321. data/app/components/blacklight/icons/harvard_component.rb +0 -23
  322. data/app/components/blacklight/icons/indiana_component.rb +0 -23
  323. data/app/components/blacklight/icons/lewis_clark_component.rb +0 -25
  324. data/app/components/blacklight/icons/massgis_component.rb +0 -23
  325. data/app/components/blacklight/icons/michigan_state_university_component.rb +0 -25
  326. data/app/components/blacklight/icons/mit_component.rb +0 -23
  327. data/app/components/blacklight/icons/northwestern_university_component.rb +0 -24
  328. data/app/components/blacklight/icons/nyu_component.rb +0 -26
  329. data/app/components/blacklight/icons/pennsylvania_state_university_component.rb +0 -25
  330. data/app/components/blacklight/icons/princeton_component.rb +0 -23
  331. data/app/components/blacklight/icons/purdue_university_component.rb +0 -25
  332. data/app/components/blacklight/icons/rutgers_component.rb +0 -25
  333. data/app/components/blacklight/icons/sms_component.rb +0 -23
  334. data/app/components/blacklight/icons/stanford_component.rb +0 -23
  335. data/app/components/blacklight/icons/texas_component.rb +0 -23
  336. data/app/components/blacklight/icons/the_ohio_state_university_component.rb +0 -26
  337. data/app/components/blacklight/icons/tufts_component.rb +0 -23
  338. data/app/components/blacklight/icons/ucla_component.rb +0 -23
  339. data/app/components/blacklight/icons/university_of_california_berkeley_component.rb +0 -24
  340. data/app/components/blacklight/icons/university_of_chicago_component.rb +0 -25
  341. data/app/components/blacklight/icons/university_of_colorado_boulder_component.rb +0 -26
  342. data/app/components/blacklight/icons/university_of_illinois_urbana_champaign_component.rb +0 -25
  343. data/app/components/blacklight/icons/university_of_iowa_component.rb +0 -24
  344. data/app/components/blacklight/icons/university_of_maryland_component.rb +0 -24
  345. data/app/components/blacklight/icons/university_of_michigan_component.rb +0 -24
  346. data/app/components/blacklight/icons/university_of_minnesota_component.rb +0 -24
  347. data/app/components/blacklight/icons/university_of_nebraska_lincoln_component.rb +0 -27
  348. data/app/components/blacklight/icons/university_of_wisconsin_madison_component.rb +0 -24
  349. data/app/components/blacklight/icons/uva_component.rb +0 -23
  350. data/app/components/geoblacklight/icon_facet_item_component.rb +0 -33
  351. data/app/components/geoblacklight/web_services_link_component.html.erb +0 -3
  352. data/bin/vite +0 -29
  353. data/config/initializers/new_gbl_settings_defaults_4.1.yml +0 -104
  354. data/lib/generators/geoblacklight/assets/importmap_generator.rb +0 -73
  355. data/lib/generators/geoblacklight/assets/vite_generator.rb +0 -89
  356. data/lib/generators/geoblacklight/templates/assets/_customizations.scss +0 -23
  357. data/lib/generators/geoblacklight/templates/assets/application.js +0 -17
  358. data/lib/generators/geoblacklight/templates/assets/application.scss +0 -9
  359. data/lib/generators/geoblacklight/templates/assets/geoblacklight.scss +0 -11
  360. data/lib/generators/geoblacklight/templates/base.html.erb +0 -46
  361. data/lib/generators/geoblacklight/templates/vite.config.ts +0 -23
  362. data/lib/generators/geoblacklight/templates/vite.json +0 -16
  363. data/schema/geoblacklight-schema-1.0.json +0 -214
  364. data/solr/conf/xslt/example.xsl +0 -132
  365. data/solr/conf/xslt/example_atom.xsl +0 -67
  366. data/solr/conf/xslt/example_rss.xsl +0 -66
  367. data/solr/conf/xslt/luke.xsl +0 -337
  368. data/spec/components/blacklight/icons/american_geographical_society_library_uwm_libraries_component_spec.rb +0 -15
  369. data/spec/components/blacklight/icons/arizona_component_spec.rb +0 -15
  370. data/spec/components/blacklight/icons/arrow_circle_down_component_spec.rb +0 -15
  371. data/spec/components/blacklight/icons/baruch_cuny_component_spec.rb +0 -15
  372. data/spec/components/blacklight/icons/book_component_spec.rb +0 -15
  373. data/spec/components/blacklight/icons/bookmark_component_spec.rb +0 -15
  374. data/spec/components/blacklight/icons/cd_rom_component_spec.rb +0 -15
  375. data/spec/components/blacklight/icons/child_item_component_spec.rb +0 -15
  376. data/spec/components/blacklight/icons/circle_info_solid_component_spec.rb +0 -15
  377. data/spec/components/blacklight/icons/citation_component_spec.rb +0 -15
  378. data/spec/components/blacklight/icons/collection_component_spec.rb +0 -15
  379. data/spec/components/blacklight/icons/collections_component_spec.rb +0 -15
  380. data/spec/components/blacklight/icons/columbia_component_spec.rb +0 -15
  381. data/spec/components/blacklight/icons/cornell_component_spec.rb +0 -15
  382. data/spec/components/blacklight/icons/datasets_component_spec.rb +0 -15
  383. data/spec/components/blacklight/icons/dvd_rom_component_spec.rb +0 -15
  384. data/spec/components/blacklight/icons/email_component_spec.rb +0 -15
  385. data/spec/components/blacklight/icons/esri_globe_component_spec.rb +0 -15
  386. data/spec/components/blacklight/icons/fire_solid_component_spec.rb +0 -15
  387. data/spec/components/blacklight/icons/george_mason_component_spec.rb +0 -15
  388. data/spec/components/blacklight/icons/globe_component_spec.rb +0 -15
  389. data/spec/components/blacklight/icons/harvard_component_spec.rb +0 -15
  390. data/spec/components/blacklight/icons/home_component_spec.rb +0 -15
  391. data/spec/components/blacklight/icons/iiif_drag_drop_component_spec.rb +0 -15
  392. data/spec/components/blacklight/icons/image_component_spec.rb +0 -15
  393. data/spec/components/blacklight/icons/imagery_component_spec.rb +0 -15
  394. data/spec/components/blacklight/icons/indiana_component_spec.rb +0 -15
  395. data/spec/components/blacklight/icons/leaf_component_spec.rb +0 -15
  396. data/spec/components/blacklight/icons/lewis_clark_component_spec.rb +0 -15
  397. data/spec/components/blacklight/icons/lightbulb_solid_component_spec.rb +0 -15
  398. data/spec/components/blacklight/icons/line_component_spec.rb +0 -15
  399. data/spec/components/blacklight/icons/map_component_spec.rb +0 -15
  400. data/spec/components/blacklight/icons/map_marker_component_spec.rb +0 -15
  401. data/spec/components/blacklight/icons/maps_component_spec.rb +0 -15
  402. data/spec/components/blacklight/icons/massgis_component_spec.rb +0 -15
  403. data/spec/components/blacklight/icons/metadata_component_spec.rb +0 -15
  404. data/spec/components/blacklight/icons/michigan_state_university_component_spec.rb +0 -15
  405. data/spec/components/blacklight/icons/mit_component_spec.rb +0 -15
  406. data/spec/components/blacklight/icons/mixed_component_spec.rb +0 -15
  407. data/spec/components/blacklight/icons/multilinestring_component_spec.rb +0 -15
  408. data/spec/components/blacklight/icons/multipoint_component_spec.rb +0 -15
  409. data/spec/components/blacklight/icons/multipolygon_component_spec.rb +0 -15
  410. data/spec/components/blacklight/icons/northwestern_university_component_spec.rb +0 -15
  411. data/spec/components/blacklight/icons/nyu_component_spec.rb +0 -15
  412. data/spec/components/blacklight/icons/pagelines_brands_component_spec.rb +0 -15
  413. data/spec/components/blacklight/icons/paper_map_component_spec.rb +0 -15
  414. data/spec/components/blacklight/icons/parent_item_component_spec.rb +0 -15
  415. data/spec/components/blacklight/icons/pennsylvania_state_university_component_spec.rb +0 -15
  416. data/spec/components/blacklight/icons/point_component_spec.rb +0 -15
  417. data/spec/components/blacklight/icons/polygon_component_spec.rb +0 -15
  418. data/spec/components/blacklight/icons/polyline_component_spec.rb +0 -15
  419. data/spec/components/blacklight/icons/princeton_component_spec.rb +0 -15
  420. data/spec/components/blacklight/icons/public_component_spec.rb +0 -15
  421. data/spec/components/blacklight/icons/purdue_university_component_spec.rb +0 -15
  422. data/spec/components/blacklight/icons/raster_component_spec.rb +0 -15
  423. data/spec/components/blacklight/icons/restricted_component_spec.rb +0 -15
  424. data/spec/components/blacklight/icons/rutgers_component_spec.rb +0 -15
  425. data/spec/components/blacklight/icons/sms_component_spec.rb +0 -15
  426. data/spec/components/blacklight/icons/stanford_component_spec.rb +0 -15
  427. data/spec/components/blacklight/icons/table_component_spec.rb +0 -15
  428. data/spec/components/blacklight/icons/tags_component_spec.rb +0 -15
  429. data/spec/components/blacklight/icons/texas_component_spec.rb +0 -15
  430. data/spec/components/blacklight/icons/the_ohio_state_university_component_spec.rb +0 -15
  431. data/spec/components/blacklight/icons/triangle_exclamation_solid_component_spec.rb +0 -15
  432. data/spec/components/blacklight/icons/tufts_component_spec.rb +0 -15
  433. data/spec/components/blacklight/icons/ucla_component_spec.rb +0 -15
  434. data/spec/components/blacklight/icons/university_of_california_berkeley_component_spec.rb +0 -15
  435. data/spec/components/blacklight/icons/university_of_chicago_component_spec.rb +0 -15
  436. data/spec/components/blacklight/icons/university_of_colorado_boulder_component_spec.rb +0 -15
  437. data/spec/components/blacklight/icons/university_of_illinois_urbana_champaign_component_spec.rb +0 -15
  438. data/spec/components/blacklight/icons/university_of_iowa_component_spec.rb +0 -15
  439. data/spec/components/blacklight/icons/university_of_maryland_component_spec.rb +0 -15
  440. data/spec/components/blacklight/icons/university_of_michigan_component_spec.rb +0 -15
  441. data/spec/components/blacklight/icons/university_of_minnesota_component_spec.rb +0 -15
  442. data/spec/components/blacklight/icons/university_of_nebraska_lincoln_component_spec.rb +0 -15
  443. data/spec/components/blacklight/icons/university_of_wisconsin_madison_component_spec.rb +0 -15
  444. data/spec/components/blacklight/icons/uva_component_spec.rb +0 -15
  445. data/spec/components/blacklight/icons/web_services_component_spec.rb +0 -15
  446. data/spec/components/blacklight/icons/websites_component_spec.rb +0 -15
  447. data/spec/components/geoblacklight/icon_facet_item_component_spec.rb +0 -18
  448. data/spec/config/initializers/rails_config_spec.rb +0 -16
  449. data/spec/fixtures/solr_documents/public_direct_download.json +0 -62
  450. data/spec/support/backport_test_helpers.rb +0 -47
  451. data/spec/support/view_component_capybara_test_helpers.rb +0 -8
  452. data/vite.config.ts +0 -32
  453. /data/app/assets/images/{blacklight → geoblacklight}/logo.svg +0 -0
@@ -1,11 +1,7 @@
1
- <div class='category-block col-sm'>
2
- <div class='category-icon'>
1
+ <div class="category-block col-md p-3">
2
+ <div class="category-icon">
3
3
  <%= helpers.geoblacklight_icon(@icon) %>
4
4
  </div>
5
5
  <%= content_tag :h4, t(@label) %>
6
- <%- facets = @response.aggregations[@facet_field].items.map { |item|
7
- link_to(item.value, search_catalog_path("f[#{@facet_field}][]": item.value), class: 'home-facet-link')
8
- } %>
9
- <%- facets << link_to('more »', facet_catalog_path(@facet_field), class: 'more_facets_link') %>
10
- <%= facets.join(', ').html_safe %>
6
+ <%= facets %>
11
7
  </div>
@@ -2,12 +2,21 @@
2
2
 
3
3
  module Geoblacklight
4
4
  class HomepageFeatureFacetComponent < ViewComponent::Base
5
- def initialize(icon:, label:, facet_field:, response:)
5
+ def initialize(icon:, label:, facet_field_presenter:, items:)
6
6
  @icon = icon
7
7
  @label = label
8
- @facet_field = facet_field
9
- @response = response
8
+ @facet_field_presenter = facet_field_presenter
9
+ @items = items
10
10
  super()
11
11
  end
12
+
13
+ def facets
14
+ links = @items.map do |item|
15
+ item_presenter = @facet_field_presenter.item_presenter(item)
16
+ link_to(item_presenter.value, item_presenter.href, class: "home-facet-link")
17
+ end
18
+ links << link_to("more »", facet_catalog_path(@facet_field_presenter.key), class: "more_facets_link")
19
+ safe_join(links, ", ")
20
+ end
12
21
  end
13
22
  end
@@ -1,3 +1,3 @@
1
1
  <%= link_to @href_link, data: {manifest: @manifest}, class: 'float-end' do %>
2
- <%= helpers.geoblacklight_icon('iiif-drag-drop', classes: 'svg_tooltip iiif-icon') %>
3
- <% end %>
2
+ <%= helpers.geoblacklight_icon('iiif-drag-drop', classes: 'svg_tooltip iiif-icon') %>
3
+ <% end %>
@@ -6,11 +6,11 @@ module Geoblacklight
6
6
  super()
7
7
  manifest_ref = document.item_viewer&.iiif_manifest
8
8
  @manifest = manifest_ref&.endpoint || ""
9
- @href_link = Settings.IIIF_DRAG_DROP_LINK&.gsub("@manifest", @manifest)
9
+ @href_link = Geoblacklight.configuration.iiif_drag_drop_link.gsub("@manifest", @manifest)
10
10
  end
11
11
 
12
12
  def render?
13
- Settings.IIIF_DRAG_DROP_LINK.present? && @manifest.present?
13
+ @manifest.present? && @href_link.present?
14
14
  end
15
15
  end
16
16
  end
@@ -1,5 +1,5 @@
1
- <%= render Geoblacklight::AccordionComponent.new(id: 'index-map-attributes', title: t('geoblacklight.show.table_name')) do %>
2
- <div class='viewer-information px-3'>
1
+ <%= render Geoblacklight::AccordionComponent.new(id: 'index-map-attributes', title: t('geoblacklight.show.table_name')) do %>
2
+ <div class="viewer-information px-3">
3
3
  <em><%= t('geoblacklight.show.click_map') %></em>
4
4
  </div>
5
- <% end %>
5
+ <% end %>
@@ -1,14 +1,14 @@
1
- <div class="index-map-legend pb-2">
1
+ <div class="index-map-legend">
2
2
  <div class="index-map-legend-info">
3
- <span class="index-map-legend-default" style="background: <%= Settings.LEAFLET.LAYERS.INDEX.DEFAULT.color %>"></span>
4
- <p><span class="visually-hidden"><%= Settings.LEAFLET.LAYERS.INDEX.DEFAULT.sr_color_name %> tile indicates </span>Map held by collection</p>
3
+ <div class="index-map-legend-swatch" style="background: <%= index_config.dig(:DEFAULT, :color) %>"></div>
4
+ <div><span class="visually-hidden"><%= index_config.dig(:DEFAULT, :sr_color_name) %> tile indicates </span>Map held by collection</div>
5
5
  </div>
6
6
  <div class="index-map-legend-info">
7
- <span class="index-map-legend-unavailable" style="background: <%= Settings.LEAFLET.LAYERS.INDEX.UNAVAILABLE.color %>"></span>
8
- <p><span class="visually-hidden"><%= Settings.LEAFLET.LAYERS.INDEX.UNAVAILABLE.sr_color_name %> tile indicates </span>Map not held by collection</p>
7
+ <div class="index-map-legend-swatch" style="background: <%= index_config.dig(:UNAVAILABLE, :color) %>"></div>
8
+ <div><span class="visually-hidden"><%= index_config.dig(:UNAVAILABLE, :sr_color_name) %> tile indicates </span>Map not held by collection</div>
9
9
  </div>
10
10
  <div class="index-map-legend-info">
11
- <span class="index-map-legend-selected" style="background: <%= Settings.LEAFLET.LAYERS.INDEX.SELECTED.color %>"></span>
12
- <p><span class="visually-hidden"><%= Settings.LEAFLET.LAYERS.INDEX.SELECTED.sr_color_name %> tile indicates </span>Selected map tile</p>
11
+ <div class="index-map-legend-swatch" style="background: <%= index_config.dig(:SELECTED, :color) %>"></div>
12
+ <div><span class="visually-hidden"><%= index_config.dig(:SELECTED, :sr_color_name) %> tile indicates </span>Selected map tile</div>
13
13
  </div>
14
14
  </div>
@@ -13,5 +13,12 @@ module Geoblacklight
13
13
  def render?
14
14
  @document.item_viewer.index_map
15
15
  end
16
+
17
+ delegate :configuration, to: :Geoblacklight
18
+ delegate :leaflet_options, to: :configuration
19
+
20
+ def index_config
21
+ @index_config ||= leaflet_options.layers.index
22
+ end
16
23
  end
17
24
  end
@@ -46,7 +46,7 @@ module Geoblacklight
46
46
  def iiif_manifest_tag
47
47
  tag.div(nil,
48
48
  id: "mirador",
49
- class: "viewer",
49
+ class: "viewer border",
50
50
  data: {
51
51
  manifest_url: @document.viewer_endpoint
52
52
  })
@@ -57,7 +57,7 @@ module Geoblacklight
57
57
  def iiif_image_tag
58
58
  tag.div(nil,
59
59
  id: "openseadragon",
60
- class: "viewer",
60
+ class: "viewer border",
61
61
  data: {
62
62
  image_url: @document.viewer_endpoint
63
63
  })
@@ -80,7 +80,7 @@ module Geoblacklight
80
80
  viewer_name = openlayers? ? "openlayers-viewer" : "leaflet-viewer"
81
81
  tag.div(nil,
82
82
  id: viewer_name,
83
- class: "viewer",
83
+ class: "viewer border",
84
84
  data: {
85
85
  "controller" => viewer_name,
86
86
  "#{viewer_name}-available-value" => helpers.document_available?(@document),
@@ -89,10 +89,14 @@ module Geoblacklight
89
89
  "#{viewer_name}-url-value" => @document.viewer_endpoint,
90
90
  "#{viewer_name}-map-geom-value" => @document.geometry.geojson,
91
91
  "#{viewer_name}-layer-id-value" => @document.wxs_identifier,
92
- "#{viewer_name}-options-value" => helpers.leaflet_options,
92
+ "#{viewer_name}-options-value" => leaflet_options.to_h,
93
93
  "#{viewer_name}-page-value" => params[:action]&.upcase,
94
94
  "#{viewer_name}-draw-initial-bounds-value" => true
95
95
  }.compact)
96
96
  end
97
+
98
+ def leaflet_options
99
+ Geoblacklight.configuration.leaflet_options
100
+ end
97
101
  end
98
102
  end
@@ -4,7 +4,7 @@ module Geoblacklight
4
4
  class LocationLeafletMapComponent < ViewComponent::Base
5
5
  def initialize(
6
6
  id: "leaflet-viewer",
7
- map_geometry: Settings.HOMEPAGE_MAP_GEOM,
7
+ map_geometry: config.homepage_map_geom,
8
8
  classes: "",
9
9
  page: nil,
10
10
  geosearch: nil
@@ -26,24 +26,37 @@ module Geoblacklight
26
26
 
27
27
  # Add top-level geosearch control to leaflet options if configured
28
28
  def leaflet_options
29
- options = helpers.leaflet_options.deep_dup
30
- options["CONTROLS"] = {"Geosearch" => @geosearch} if @geosearch
31
- options.to_json
29
+ config.leaflet_options.deep_dup.tap do |options|
30
+ options.controls = {"Geosearch" => @geosearch} if @geosearch
31
+ end
32
+ end
33
+
34
+ def config
35
+ Geoblacklight.configuration
36
+ end
37
+
38
+ # We don't want turbo-permanent on the home page.
39
+ def data_permanent
40
+ return {} unless helpers.has_search_parameters?
41
+ {turbo_permanent: true}
32
42
  end
33
43
 
34
44
  def viewer_tag
35
- tag.div(nil,
36
- id: @id,
45
+ tag.div(id: @id,
37
46
  class: @classes,
38
- data: {
39
- "controller" => "leaflet-viewer",
40
- "leaflet-viewer-basemap-value" => helpers.geoblacklight_basemap,
41
- "leaflet-viewer-map-geom-value" => search_bbox || @map_geometry,
42
- "leaflet-viewer-data-map-value" => @data_map,
43
- "leaflet-viewer-page-value" => params[:action]&.upcase,
44
- "leaflet-viewer-options-value" => leaflet_options,
45
- "leaflet-viewer-catalog-base-url-value" => (helpers.search_catalog_url if @geosearch)
46
- }.compact)
47
+ data: data_permanent.merge(leaflet_viewer_data_attributes))
48
+ end
49
+
50
+ def leaflet_viewer_data_attributes
51
+ {
52
+ "controller" => "leaflet-viewer",
53
+ "leaflet-viewer-basemap-value" => helpers.geoblacklight_basemap,
54
+ "leaflet-viewer-map-geom-value" => search_bbox || @map_geometry,
55
+ "leaflet-viewer-data-map-value" => @data_map,
56
+ "leaflet-viewer-page-value" => params[:action]&.upcase,
57
+ "leaflet-viewer-options-value" => leaflet_options.to_h,
58
+ "leaflet-viewer-catalog-base-url-value" => (helpers.search_action_path if @geosearch)
59
+ }.compact
47
60
  end
48
61
  end
49
62
  end
@@ -7,14 +7,14 @@
7
7
  <% relationship_type_results['docs'][0..2].map { |hash| SolrDocument.new(hash) }.each do |doc| %>
8
8
  <li class="list-group-item border-bottom-0">
9
9
  <%= link_to solr_document_path(doc) do %>
10
- <%= helpers.relations_icon(doc, rel_type_info.icon) unless rel_type_info.icon.nil? %>
10
+ <%= helpers.geoblacklight_icon(rel_type_info.icon) unless rel_type_info.icon.nil? %>
11
11
  <%= doc.title %>
12
12
  <% end %>
13
13
  </li>
14
14
  <% end %>
15
15
  <% unless (relationship_type_results['numFound'].to_i <= 3) %>
16
16
  <li class="list-group-item border-bottom-0">
17
- <%= link_to search_catalog_path({f: {"#{Settings.RELATIONSHIPS_SHOWN.public_send(relationship_type).field}" => [relations.link_id]}}) do %>
17
+ <%= link_to search_catalog_path({f: {"#{Geoblacklight.configuration.relationships_shown.public_send(relationship_type).field}" => [relations.link_id]}}) do %>
18
18
  <%= t('geoblacklight.relations.browse_all', count: relationship_type_results['numFound']) %>
19
19
  <% end %>
20
20
  </li>
@@ -1,4 +1,4 @@
1
- <%# This template copies from Blacklight's components/document_component.html.erb
1
+ <%# This template copies from Blacklight's components/document_component.html.erb
2
2
  # for the wrapping `content_tag @component` structure
3
3
  # and adds custom layout within for the document header, status-icons and more-info areas %>
4
4
 
@@ -14,31 +14,33 @@
14
14
  itemtype: @document.itemtype,
15
15
  class: classes.flatten.join(' ') do %>
16
16
 
17
- <%= content_tag :div, class: 'documentHeader index-split d-flex flex-grow-1', data: { layer_id: @document.id, geom: @document.geometry.geojson } do %>
18
- <h3 class="index_title d-flex flex-grow-1">
19
- <span class="document-counter">
20
- <%= t('blacklight.search.documents.counter', :counter => @counter) if @counter %>
21
- </span>
22
- <%= helpers.link_to_document(@document, counter: @counter, itemprop: "name") %>
23
- </h3>
17
+ <%= content_tag :div, class: 'documentHeader index-split', data: { layer_id: @document.id, geom: @document.geometry.geojson } do %>
18
+ <div class="document-counter">
19
+ <%= t('blacklight.search.documents.counter', :counter => @counter) if @counter %>
20
+ </div>
24
21
 
25
- <span class='status-icons'>
26
- <%= render Geoblacklight::HeaderIconsComponent.new(document: @document) %>
27
- <button
28
- class="btn dropdown-toggle collapsed"
29
- data-bs-toggle="collapse"
30
- data-bs-target="#doc-<%= @document.id %>-fields-collapse"
31
- aria-label="<%= t('geoblacklight.metadata.toggle_summary') %>"
32
- aria-expanded="false"
33
- aria-controls="doc-<%= @document.id %>-fields-collapse">
34
- </button>
35
- </span>
36
- <% end %>
37
- <% end %>
38
- <div class='more-info-area border-bottom'>
39
- <div id="doc-<%= @document.id %>-fields-collapse" class='collapse'>
40
- <small itemprop="description">
41
- <%= index_fields_display %>
42
- </small>
22
+ <h3 class="index_title">
23
+ <%= helpers.link_to_document(@document, counter: @counter, itemprop: "name") %>
24
+ </h3>
25
+
26
+ <div class="status-icons">
27
+ <%= render Geoblacklight::HeaderIconsComponent.new(document: @document) %>
28
+ <button
29
+ class="btn dropdown-toggle collapsed"
30
+ data-bs-toggle="collapse"
31
+ data-bs-target="#doc-<%= @document.id %>-fields-collapse"
32
+ aria-label="<%= t('geoblacklight.metadata.toggle_summary') %>"
33
+ aria-expanded="false"
34
+ aria-controls="doc-<%= @document.id %>-fields-collapse">
35
+ </button>
43
36
  </div>
37
+
38
+ <% end %>
39
+ <% end %>
40
+ <div class="more-info-area border-bottom">
41
+ <div id="doc-<%= @document.id %>-fields-collapse" class="collapse">
42
+ <small itemprop="description">
43
+ <%= index_fields_display %>
44
+ </small>
44
45
  </div>
46
+ </div>
@@ -15,8 +15,8 @@ module Geoblacklight
15
15
  # @return [String]
16
16
  def index_fields_display
17
17
  fields_values = []
18
- @presenter.configuration.index_fields.each do |_field_name, field_config|
19
- val = @presenter.field_value(field_config).to_s
18
+ @presenter.configuration.index_fields.each_value do |field_config|
19
+ val = @presenter.field_value(field_config).to_sentence
20
20
  if val.present?
21
21
  val += "." unless val.end_with?(".")
22
22
  fields_values << val
@@ -10,7 +10,7 @@ module Geoblacklight
10
10
  end
11
11
 
12
12
  def render?
13
- Settings.SIDEBAR_STATIC_MAP&.any? { |vp| @document.viewer_protocol == vp }
13
+ Geoblacklight.configuration.sidebar_static_map&.any? { |vp| @document.viewer_protocol == vp }
14
14
  end
15
15
 
16
16
  def before_render
@@ -18,16 +18,17 @@ module Geoblacklight
18
18
  end
19
19
 
20
20
  def viewer_tag
21
- leaflet_options = helpers.leaflet_options.deep_dup
22
- leaflet_options.SLEEP.SLEEP = false
21
+ leaflet_options = Geoblacklight.configuration.leaflet_options.deep_dup
22
+ leaflet_options.sleep.sleep = false
23
23
  tag.div(nil,
24
24
  id: "static-map",
25
+ class: "viewer border",
25
26
  data: {
26
27
  "controller" => "leaflet-viewer",
27
28
  "leaflet-viewer-basemap-value" => helpers.geoblacklight_basemap,
28
29
  "leaflet-viewer-page-value" => "STATIC_MAP",
29
30
  "leaflet-viewer-map-geom-value" => @document.geometry.geojson,
30
- "leaflet-viewer-options-value" => leaflet_options,
31
+ "leaflet-viewer-options-value" => leaflet_options.to_h,
31
32
  "leaflet-viewer-draw-initial-bounds-value" => true
32
33
  })
33
34
  end
@@ -1 +1 @@
1
- <%= display_text %>
1
+ <%= display_text %>
@@ -40,7 +40,7 @@ module Geoblacklight
40
40
  end
41
41
 
42
42
  def render?
43
- Settings&.HELP_TEXT&.public_send(@feature)&.include?(@key)
43
+ Geoblacklight.configuration.help_text.fetch(@feature.to_sym, []).include?(@key)
44
44
  end
45
45
  end
46
46
  end
@@ -1 +1 @@
1
- <%= render_web_services %>
1
+ <%= render_web_services %>
@@ -12,7 +12,7 @@ module Geoblacklight
12
12
  end
13
13
 
14
14
  def render?
15
- Settings.WEBSERVICES_SHOWN.include? @type
15
+ Geoblacklight.configuration.webservices_shown.include? @type
16
16
  end
17
17
 
18
18
  def render_web_services
@@ -1,11 +1,11 @@
1
- <div class='mb-3 web-services-form'>
2
- <label for='<%= reference.type%>_webservice'>
3
- <%= "#{helpers.formatted_name_reference(reference.type)}" %>
1
+ <div class="mb-3 web-services-form">
2
+ <label for="<%= reference.type %>_webservice">
3
+ <%= helpers.formatted_name_reference(reference.type) %>
4
4
  </label>
5
- <div class='input-group'>
6
- <input type='text' id='<%= reference.type%>_webservice' value='<%= reference.endpoint %>' class='form-control'>
5
+ <div class="input-group">
6
+ <input type="text" id="<%= reference.type %>_webservice" value="<%= reference.endpoint %>" class="form-control">
7
7
  <div class="input-group-append">
8
- <button button type="button" class="btn btn-primary" data-action="clipboard#copyToClipboard" data-clipboard-value-param='<%= reference.endpoint %>'><%= t('blacklight.modal.copy') %></button>
8
+ <button button type="button" class="btn btn-primary" data-action="clipboard#copyToClipboard" data-clipboard-value-param="<%= reference.endpoint %>"><%= t('blacklight.modal.copy') %></button>
9
9
  </div>
10
10
  </div>
11
11
  </div>
@@ -2,21 +2,24 @@
2
2
 
3
3
  module Geoblacklight
4
4
  class WebServicesLinkComponent < ViewComponent::Base
5
- def initialize(document:)
5
+ attr_reader :document
6
+
7
+ def initialize(document:, **)
6
8
  @document = document
7
9
  super()
8
10
  end
9
11
 
10
- def render?
11
- (Settings.WEBSERVICES_SHOWN & @document.references.refs.map(&:type).map(&:to_s)).any?
12
+ def call
13
+ link_to(
14
+ "Web services",
15
+ helpers.web_services_solr_document_path(id: document.id),
16
+ class: "nav-link",
17
+ data: {blacklight_modal: "trigger"}
18
+ )
12
19
  end
13
20
 
14
- def web_services_link
15
- link_to "Web services",
16
- helpers.web_services_solr_document_path(id: @document.id),
17
- class: ["btn", "btn-primary", "sidebar-btn"],
18
- id: "web-services-button",
19
- data: {blacklight_modal: "trigger"}
21
+ def key
22
+ "web_services"
20
23
  end
21
24
  end
22
25
  end
@@ -1,10 +1,10 @@
1
1
  <%= render Geoblacklight::WebServicesDefaultComponent.new(reference:) %>
2
2
  <div class="mb-3 d-flex align-items-center">
3
- <label for="wfs_abv_webservice" class="me-2"><%= t('geoblacklight.references.wfs_abv')%> <code><%= t('geoblacklight.references.wfs_label')%></code></label>
4
- <div class='input-group'>
5
- <input id="wfs_abv_webservice" type='text' value='<%= document.wxs_identifier %>' readonly='readonly' class="form-control">
3
+ <label for="wfs_abv_webservice" class="me-2"><%= t('geoblacklight.references.wfs_abv') %> <code><%= t('geoblacklight.references.wfs_label') %></code></label>
4
+ <div class="input-group">
5
+ <input id="wfs_abv_webservice" type="text" value="<%= document.wxs_identifier %>" readonly class="form-control">
6
6
  <div class="input-group-append">
7
- <button button type="button" class="btn btn-primary" data-action="clipboard#copyToClipboard" data-clipboard-value-param='<%= document.wxs_identifier %>'><%= t('blacklight.modal.copy') %></button>
7
+ <button button type="button" class="btn btn-primary" data-action="clipboard#copyToClipboard" data-clipboard-value-param="<%= document.wxs_identifier %>"><%= t('blacklight.modal.copy') %></button>
8
8
  </div>
9
9
  </div>
10
10
  </div>
@@ -1,10 +1,10 @@
1
1
  <%= render Geoblacklight::WebServicesDefaultComponent.new(reference:) %>
2
2
  <div class="mb-3 d-flex align-items-center">
3
- <label for="wms_abv_webservice" class="me-2"><%= t('geoblacklight.references.wms_abv')%> <code><%= t('geoblacklight.references.wms_label')%></code></label>
4
- <div class='input-group'>
5
- <input id="wms_abv_webservice" type='text' value='<%= document.wxs_identifier %>' class="form-control">
3
+ <label for="wms_abv_webservice" class="me-2"><%= t('geoblacklight.references.wms_abv') %> <code><%= t('geoblacklight.references.wms_label') %></code></label>
4
+ <div class="input-group">
5
+ <input id="wms_abv_webservice" type="text" value="<%= document.wxs_identifier %>" class="form-control">
6
6
  <div class="input-group-append">
7
- <button button type="button" class="btn btn-primary" data-action="clipboard#copyToClipboard" data-clipboard-value-param='<%= document.wxs_identifier %>'><%= t('blacklight.modal.copy') %></button>
7
+ <button button type="button" class="btn btn-primary" data-action="clipboard#copyToClipboard" data-clipboard-value-param="<%= document.wxs_identifier %>"><%= t('blacklight.modal.copy') %></button>
8
8
  </div>
9
9
  </div>
10
10
  </div>
@@ -1,7 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  class DownloadController < ApplicationController
4
- # include Blacklight::SearchHelper
5
4
  include Blacklight::Catalog
6
5
 
7
6
  rescue_from Geoblacklight::Exceptions::ExternalDownloadFailed do |exception|
@@ -12,6 +12,6 @@ class WmsController < ApplicationController
12
12
  private
13
13
 
14
14
  def wms_params
15
- params.permit(Settings.GBL_PARAMS)
15
+ params.permit(Geoblacklight.configuration.gbl_params)
16
16
  end
17
17
  end
@@ -18,7 +18,6 @@ module GeoblacklightHelper
18
18
  # @return [SVG or HTML tag]
19
19
  def geoblacklight_icon(name, **args)
20
20
  icon_name = name ? name.to_s.parameterize : "none"
21
- icon_name = Settings.ICON_MAPPING && Settings.ICON_MAPPING[icon_name] || icon_name
22
21
  camel_icon = icon_name.tr("-", "_").camelize.delete(" ")
23
22
  begin
24
23
  render "Blacklight::Icons::#{camel_icon}Component".constantize.new(name: icon_name, **args)
@@ -53,13 +52,6 @@ module GeoblacklightHelper
53
52
  blacklight_config.basemap_provider || "positron"
54
53
  end
55
54
 
56
- ##
57
- # Returns a hash of the leaflet plugin settings to pass to the viewer.
58
- # @return[Hash]
59
- def leaflet_options
60
- Settings.LEAFLET
61
- end
62
-
63
55
  ##
64
56
  # Renders the transformed metadata
65
57
  # (Renders a partial when the metadata isn't available)
@@ -95,13 +87,6 @@ module GeoblacklightHelper
95
87
  )
96
88
  end
97
89
 
98
- ## Returns the icon used based off a Settings strategy
99
- def relations_icon(document, icon)
100
- icon_html = render Geoblacklight::HeaderIconsComponent.new(document: document, fields: [Settings.FIELDS.GEOM_TYPE]) if Settings.USE_GEOM_FOR_RELATIONS_ICON
101
- return icon_html unless !Settings.USE_GEOM_FOR_RELATIONS_ICON || icon_html.include?("icon-missing")
102
- geoblacklight_icon(icon, **{})
103
- end
104
-
105
90
  ## Returns the data-page attribute value used as the JS map selector
106
91
  def results_js_map_selector(controller_name)
107
92
  case controller_name
@@ -1,11 +1,11 @@
1
1
  import { Controller } from "@hotwired/stimulus"
2
2
 
3
3
  export default class extends Controller {
4
- static targets = ["alert"];
4
+ static targets = ["alert"]
5
5
 
6
- async copyToClipboard(event) {
7
- let text = event.params.value;
8
- await navigator.clipboard.writeText(text)
9
- this.alertTarget.classList.remove('d-none');
10
- }
6
+ async copyToClipboard(event) {
7
+ let text = event.params.value
8
+ await navigator.clipboard.writeText(text)
9
+ this.alertTarget.classList.remove("d-none")
10
+ }
11
11
  }
@@ -2,55 +2,63 @@ import { Controller } from "@hotwired/stimulus"
2
2
 
3
3
  export default class extends Controller {
4
4
  download(ev) {
5
- ev.preventDefault();
5
+ ev.preventDefault()
6
6
  if (this.downloading) {
7
- return;
7
+ return
8
8
  }
9
- this.downloading = true;
10
- ev.target.classList.add('download-in-progress');
11
- const url = ev.target.dataset.downloadPath;
12
- ev.target.removeAttribute('href');
13
- ev.target.innerHTML = '<div class="spinner-border spinner-border-sm float-end"></div> Preparing download...';
9
+ this.downloading = true
10
+ ev.target.classList.add("download-in-progress")
11
+ const url = ev.target.dataset.downloadPath
12
+ ev.target.removeAttribute("href")
13
+ ev.target.innerHTML = '<div class="spinner-border spinner-border-sm float-end"></div> Preparing download...'
14
14
 
15
15
  fetch(url)
16
16
  .then((response) => {
17
17
  if (!response.ok) {
18
18
  return response.json().then((errorData) => {
19
- const exception = new Error("Network response was not ok");
20
- exception.data = errorData; // Attach the parsed JSON data to the error object
21
- throw exception;
22
- });
19
+ const exception = new Error("Network response was not ok")
20
+ exception.data = errorData // Attach the parsed JSON data to the error object
21
+ throw exception
22
+ })
23
23
  }
24
- return response.json();
24
+ return response.json()
25
25
  })
26
26
  .then((data) => this.complete(data, ev.target))
27
- .catch((error) => this.error(error, ev.target));
27
+ .catch((error) => this.error(error, ev.target))
28
28
  }
29
29
 
30
30
  complete(data, target) {
31
- this.downloading = false;
32
- target.classList.remove('download-in-progress');
33
- target.classList.add('download-complete');
34
- target.innerHTML = `Download ready (${target.dataset.downloadType})`;
35
- target.href = data[1];
36
- this.renderMessage(data[0]);
31
+ this.downloading = false
32
+ target.classList.remove("download-in-progress")
33
+ target.classList.add("download-complete")
34
+ target.innerHTML = `Download ready (${target.dataset.downloadType})`
35
+ target.href = data[1]
36
+ this.renderMessage(data[0])
37
37
  //target.click();
38
38
  }
39
39
 
40
40
  error(exception, target) {
41
- this.downloading = false;
42
- target.classList.remove('download-in-progress');
43
- target.classList.add('download-complete');
44
- target.innerHTML = `Download failed (${target.dataset.downloadType})`;
45
- this.renderMessage(exception.data[0]);
41
+ this.downloading = false
42
+ target.classList.remove("download-in-progress")
43
+ target.classList.add("download-complete")
44
+ target.innerHTML = `Download failed (${target.dataset.downloadType})`
45
+ console.log(exception)
46
+
47
+ this.renderMessage(exception.data[0])
46
48
  }
47
49
 
48
50
  renderMessage(message) {
51
+ let flashContainer = document.querySelector("div.flash_messages")
52
+ if (!flashContainer) {
53
+ flashContainer = document.createElement("div")
54
+ flashContainer.className = "flash_messages"
55
+ document.getElementById("document").prepend(flashContainer)
56
+ }
49
57
  Object.entries(message).forEach(([idx, msg]) => {
50
- const flash = document.createElement("div");
51
- flash.className = `alert alert-${msg[0]} alert-dismissible fade show`;
52
- flash.innerHTML = `${msg[1]}<button type="button" class="btn-close" data-bs-dismiss="alert" aria-label="Close"></button>`;
53
- document.querySelector("div.flash_messages").appendChild(flash);
54
- });
58
+ const flash = document.createElement("div")
59
+ flash.className = `alert alert-${msg[0]} alert-dismissible fade show`
60
+ flash.innerHTML = `${msg[1]}<button type="button" class="btn-close" data-bs-dismiss="alert" aria-label="Close"></button>`
61
+ flashContainer.appendChild(flash)
62
+ })
55
63
  }
56
64
  }