geoblacklight 6.0.0.pre.alpha.7 → 6.0.0.pre.beta.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 (231) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/ruby.yml +14 -3
  3. data/README.md +2 -2
  4. data/Rakefile +1 -17
  5. data/app/assets/images/geoblacklight/logo-dark.svg +31 -0
  6. data/app/assets/images/geoblacklight/logo.svg +10 -10
  7. data/app/assets/stylesheets/geoblacklight/global.css +44 -7
  8. data/app/assets/stylesheets/geoblacklight/index_maps.css +0 -7
  9. data/app/assets/stylesheets/geoblacklight/record.css +33 -9
  10. data/app/assets/stylesheets/geoblacklight/search.css +66 -17
  11. data/app/assets/stylesheets/geoblacklight/viewers.css +18 -111
  12. data/app/assets/stylesheets/geoblacklight.css +0 -5
  13. data/app/components/blacklight/icons/georeferenced_component.rb +23 -0
  14. data/app/components/geoblacklight/document/download_link_component.html.erb +1 -1
  15. data/app/components/geoblacklight/document/preview_component.html.erb +0 -2
  16. data/app/components/geoblacklight/document_component.html.erb +0 -4
  17. data/app/components/geoblacklight/facets/bbox_field_component.html.erb +2 -1
  18. data/app/components/geoblacklight/georeferenced_header_badge_component.rb +16 -0
  19. data/app/components/geoblacklight/header_badge_component.html.erb +4 -2
  20. data/app/components/geoblacklight/header_badge_component.rb +1 -1
  21. data/app/components/geoblacklight/header_badges_component.html.erb +5 -0
  22. data/app/components/geoblacklight/header_badges_component.rb +34 -0
  23. data/app/components/geoblacklight/iiif_drag_drop_component.html.erb +1 -1
  24. data/app/components/geoblacklight/item_map_viewer_component.html.erb +0 -58
  25. data/app/components/geoblacklight/item_map_viewer_component.rb +19 -70
  26. data/app/components/geoblacklight/locator_map_component.rb +31 -0
  27. data/app/components/geoblacklight/login_link_component.html.erb +1 -1
  28. data/app/components/geoblacklight/login_link_component.rb +17 -1
  29. data/app/components/geoblacklight/metadata_description_markdown_component.rb +3 -9
  30. data/app/components/geoblacklight/overview_map_component.html.erb +2 -0
  31. data/app/components/geoblacklight/overview_map_component.rb +86 -0
  32. data/app/components/geoblacklight/relations/relation_component.html.erb +12 -0
  33. data/app/components/geoblacklight/relations/relation_component.rb +30 -0
  34. data/app/components/geoblacklight/relations/relations_component.html.erb +15 -0
  35. data/app/components/geoblacklight/relations/relations_component.rb +59 -0
  36. data/app/components/geoblacklight/resource_header_badge_component.rb +1 -1
  37. data/app/components/geoblacklight/search_result_component.html.erb +14 -33
  38. data/app/components/geoblacklight/search_result_component.rb +2 -14
  39. data/app/components/geoblacklight/static_map_component.rb +3 -14
  40. data/app/components/geoblacklight/truncatable_metadata_field_layout_component.html.erb +7 -0
  41. data/app/components/geoblacklight/truncatable_metadata_field_layout_component.rb +45 -0
  42. data/app/controllers/{relation_controller.rb → relations_controller.rb} +4 -2
  43. data/app/controllers/viewer_record_controller.rb +28 -0
  44. data/app/helpers/geoblacklight_helper.rb +57 -6
  45. data/app/javascript/geoblacklight/controllers/overview_map_controller.js +143 -0
  46. data/app/javascript/geoblacklight/core.js +8 -10
  47. data/app/javascript/geoblacklight/index.js +9 -12
  48. data/app/javascript/geoblacklight/initializers/field_truncation.js +62 -0
  49. data/app/javascript/geoblacklight/initializers/metadata_download.js +3 -8
  50. data/app/javascript/geoblacklight/initializers/truncation.js +7 -3
  51. data/app/javascript/geoblacklight/initializers/viewer_requests.js +61 -0
  52. data/app/javascript/geoblacklight/initializers/viewer_theme.js +28 -0
  53. data/app/models/concerns/geoblacklight/solr_document/thumbnail.rb +38 -0
  54. data/app/models/concerns/geoblacklight/solr_document.rb +2 -0
  55. data/app/models/concerns/geoblacklight/suppressed_records_search_behavior.rb +1 -1
  56. data/app/views/catalog/_document_split.html.erb +10 -10
  57. data/app/views/catalog/_home_text.html.erb +1 -1
  58. data/app/views/catalog/metadata.html.erb +1 -1
  59. data/app/views/{relation → relations}/index.html.erb +1 -1
  60. data/app/views/relations/index.json.jbuilder +9 -0
  61. data/config/importmap.rb +8 -8
  62. data/config/locales/geoblacklight.en.yml +48 -99
  63. data/geoblacklight.gemspec +3 -3
  64. data/lib/generators/geoblacklight/assets_generator.rb +2 -2
  65. data/lib/generators/geoblacklight/install_generator.rb +3 -6
  66. data/lib/generators/geoblacklight/templates/assets/customizations.css +5 -1
  67. data/lib/generators/geoblacklight/templates/catalog_controller.rb +17 -27
  68. data/lib/generators/geoblacklight/templates/settings.yml +15 -95
  69. data/lib/geoblacklight/configuration/display_note_shown_config.rb +3 -0
  70. data/lib/geoblacklight/configuration/relationship_config.rb +7 -1
  71. data/lib/geoblacklight/configuration/relationships_config.rb +15 -15
  72. data/lib/geoblacklight/configuration/settings_attributes.rb +85 -0
  73. data/lib/geoblacklight/configuration/settings_builder.rb +3 -14
  74. data/lib/geoblacklight/configuration.rb +23 -62
  75. data/lib/geoblacklight/exceptions.rb +4 -0
  76. data/lib/geoblacklight/reference.rb +0 -2
  77. data/lib/geoblacklight/references.rb +17 -5
  78. data/lib/geoblacklight/relations/ancestors.rb +12 -0
  79. data/lib/geoblacklight/relations/descendants.rb +11 -0
  80. data/lib/geoblacklight/relations/query.rb +39 -0
  81. data/lib/geoblacklight/{relation → relations}/relation_response.rb +5 -4
  82. data/lib/geoblacklight/routes/exportable.rb +2 -1
  83. data/lib/geoblacklight/version.rb +1 -1
  84. data/lib/geoblacklight/viewer_record.rb +39 -0
  85. data/lib/geoblacklight.rb +1 -1
  86. data/lib/tasks/geoblacklight.rake +1 -17
  87. data/lib/tasks/solr.rb +37 -0
  88. data/schema/readme.md +1 -1
  89. data/script/wait-for-solr +36 -0
  90. data/solr/conf/solrconfig.xml +10 -16
  91. data/spec/components/geoblacklight/document/sidebar_component_spec.rb +3 -3
  92. data/spec/components/geoblacklight/document_component_spec.rb +8 -34
  93. data/spec/components/geoblacklight/{header_icons_component_spec.rb → header_badges_component_spec.rb} +20 -2
  94. data/spec/components/geoblacklight/item_map_viewer_component_spec.rb +65 -15
  95. data/spec/components/geoblacklight/locator_map_component_spec.rb +54 -0
  96. data/spec/components/geoblacklight/login_link_component_spec.rb +20 -12
  97. data/spec/components/geoblacklight/metadata_description_markdown_component_spec.rb +1 -6
  98. data/spec/components/geoblacklight/overview_map_component_spec.rb +136 -0
  99. data/spec/components/geoblacklight/relations/relation_component_spec.rb +98 -0
  100. data/spec/components/geoblacklight/relations/relations_component_spec.rb +146 -0
  101. data/spec/components/geoblacklight/search_result_component_spec.rb +66 -39
  102. data/spec/components/geoblacklight/static_map_component_spec.rb +8 -2
  103. data/spec/components/geoblacklight/truncatable_metadata_field_layout_component_spec.rb +83 -0
  104. data/spec/controllers/catalog_controller_spec.rb +22 -7
  105. data/spec/controllers/{relation_controller_spec.rb → relations_controller_spec.rb} +1 -1
  106. data/spec/factories/user.rb +6 -1
  107. data/spec/features/axe_spec.rb +5 -3
  108. data/spec/features/home_page_spec.rb +8 -7
  109. data/spec/features/index_view_spec.rb +6 -20
  110. data/spec/features/layer_preview_spec.rb +4 -11
  111. data/spec/features/locator_map_spec.rb +31 -0
  112. data/spec/features/relations_spec.rb +22 -11
  113. data/spec/features/restricted_viewer_spec.rb +14 -0
  114. data/spec/features/search_results_map_spec.rb +89 -13
  115. data/spec/features/search_spec.rb +6 -2
  116. data/spec/features/sign_in_spec.rb +26 -0
  117. data/spec/features/tilejson_spec.rb +1 -3
  118. data/spec/features/tms_spec.rb +2 -2
  119. data/spec/features/truncated_metadata_spec.rb +77 -0
  120. data/spec/features/viewer_requests_spec.rb +40 -0
  121. data/spec/features/viewer_theme_spec.rb +51 -0
  122. data/spec/features/wmts_spec.rb +6 -6
  123. data/spec/features/xyz_spec.rb +3 -3
  124. data/spec/fixtures/solr_documents/README.md +18 -14
  125. data/spec/fixtures/solr_documents/actual-polygon1.json +22 -18
  126. data/spec/fixtures/solr_documents/b1g_wabash_child_15.json +14 -15
  127. data/spec/fixtures/solr_documents/b1g_wabash_child_16.json +14 -15
  128. data/spec/fixtures/solr_documents/b1g_wabash_child_17.json +14 -15
  129. data/spec/fixtures/solr_documents/b1g_wabash_child_18.json +14 -15
  130. data/spec/fixtures/solr_documents/b1g_wabash_parent.json +14 -15
  131. data/spec/fixtures/solr_documents/esri-dynamic-layer-single-layer.json +2 -2
  132. data/spec/fixtures/solr_documents/esri-feature-layer.json +1 -1
  133. data/spec/fixtures/solr_documents/esri-image-map-layer.json +20 -20
  134. data/spec/fixtures/solr_documents/esri-wms-layer.json +22 -24
  135. data/spec/fixtures/solr_documents/index_map_point.json +3 -3
  136. data/spec/fixtures/solr_documents/public_polygon.json +28 -0
  137. data/spec/helpers/geoblacklight_helper_spec.rb +103 -25
  138. data/spec/lib/geoblacklight/bounding_box_spec.rb +16 -0
  139. data/spec/lib/geoblacklight/configuration/relationships_config_spec.rb +121 -0
  140. data/spec/lib/geoblacklight/configuration/settings_attributes_spec.rb +113 -0
  141. data/spec/lib/geoblacklight/configuration/settings_builder_spec.rb +33 -4
  142. data/spec/lib/geoblacklight/references_spec.rb +35 -0
  143. data/spec/lib/geoblacklight/{relation → relations}/ancestors_spec.rb +17 -6
  144. data/spec/lib/geoblacklight/{relation → relations}/descendants_spec.rb +14 -7
  145. data/spec/lib/geoblacklight/{relation → relations}/relation_response_spec.rb +31 -17
  146. data/spec/lib/geoblacklight/viewer_record_spec.rb +69 -0
  147. data/spec/models/concerns/geoblacklight/solr_document/thumbnail_spec.rb +149 -0
  148. data/spec/models/concerns/geoblacklight/solr_document_spec.rb +1 -1
  149. data/spec/requests/bookmarks_spec.rb +2 -1
  150. data/spec/requests/catalog_show_spec.rb +24 -2
  151. data/spec/requests/index_view_spec.rb +50 -2
  152. data/spec/requests/missing_metadata_spec.rb +1 -1
  153. data/spec/requests/relations_spec.rb +9 -2
  154. data/spec/requests/search_results_spec.rb +6 -6
  155. data/spec/requests/viewer_record_spec.rb +37 -0
  156. data/spec/requests/viewer_requests_spec.rb +52 -0
  157. data/spec/solr_config_spec.rb +41 -0
  158. data/spec/solr_fixtures_spec.rb +23 -0
  159. data/spec/spec_helper.rb +13 -3
  160. data/spec/support/authentication.rb +37 -0
  161. data/spec/support/features/map_helpers.rb +68 -0
  162. data/spec/support/features/session_helpers.rb +18 -13
  163. data/spec/support/features/viewer_helpers.rb +20 -0
  164. data/spec/support/features.rb +4 -0
  165. data/spec/test_app_templates/lib/generators/test_app_generator.rb +1 -1
  166. data/template.rb +1 -1
  167. metadata +72 -84
  168. data/app/components/geoblacklight/accordion_component.html.erb +0 -16
  169. data/app/components/geoblacklight/accordion_component.rb +0 -15
  170. data/app/components/geoblacklight/attribute_table_component.html.erb +0 -15
  171. data/app/components/geoblacklight/attribute_table_component.rb +0 -17
  172. data/app/components/geoblacklight/header_icons_component.html.erb +0 -3
  173. data/app/components/geoblacklight/header_icons_component.rb +0 -27
  174. data/app/components/geoblacklight/index_map_inspect_component.html.erb +0 -12
  175. data/app/components/geoblacklight/index_map_inspect_component.rb +0 -15
  176. data/app/components/geoblacklight/index_map_legend_component.html.erb +0 -14
  177. data/app/components/geoblacklight/index_map_legend_component.rb +0 -24
  178. data/app/components/geoblacklight/location_leaflet_map_component.rb +0 -68
  179. data/app/components/geoblacklight/relations_component.html.erb +0 -23
  180. data/app/components/geoblacklight/relations_component.rb +0 -25
  181. data/app/components/geoblacklight/viewer_help_text_component.html.erb +0 -1
  182. data/app/components/geoblacklight/viewer_help_text_component.rb +0 -46
  183. data/app/controllers/wms_controller.rb +0 -17
  184. data/app/javascript/geoblacklight/controllers/leaflet_viewer_controller.js +0 -240
  185. data/app/javascript/geoblacklight/controllers/openlayers_viewer_controller.js +0 -74
  186. data/app/javascript/geoblacklight/controllers/search_results_controller.js +0 -50
  187. data/app/javascript/geoblacklight/initializers/popovers.js +0 -11
  188. data/app/javascript/geoblacklight/initializers/tooltips.js +0 -51
  189. data/app/javascript/geoblacklight/leaflet/basemaps.js +0 -73
  190. data/app/javascript/geoblacklight/leaflet/constants.js +0 -18
  191. data/app/javascript/geoblacklight/leaflet/controls/geosearch.js +0 -168
  192. data/app/javascript/geoblacklight/leaflet/controls/layer_opacity.js +0 -121
  193. data/app/javascript/geoblacklight/leaflet/controls/sidebar.js +0 -49
  194. data/app/javascript/geoblacklight/leaflet/controls/sleep.js +0 -101
  195. data/app/javascript/geoblacklight/leaflet/inspection.js +0 -210
  196. data/app/javascript/geoblacklight/leaflet/layer_index_map.js +0 -128
  197. data/app/javascript/geoblacklight/leaflet/layer_wmts.js +0 -57
  198. data/app/javascript/geoblacklight/leaflet/layers.js +0 -146
  199. data/app/javascript/geoblacklight/leaflet/utils.js +0 -83
  200. data/app/javascript/geoblacklight/openlayers/basemaps.js +0 -55
  201. data/app/javascript/geoblacklight/openlayers/inspection.js +0 -42
  202. data/app/javascript/geoblacklight/openlayers/layers.js +0 -44
  203. data/app/views/relation/index.json.jbuilder +0 -8
  204. data/lib/geoblacklight/configuration/layer_config.rb +0 -28
  205. data/lib/geoblacklight/configuration/leaflet_config.rb +0 -73
  206. data/lib/geoblacklight/configuration/leaflet_layers_config.rb +0 -33
  207. data/lib/geoblacklight/configuration/leaflet_sleep_config.rb +0 -20
  208. data/lib/geoblacklight/relation/ancestors.rb +0 -31
  209. data/lib/geoblacklight/relation/descendants.rb +0 -31
  210. data/lib/geoblacklight/routes/wms.rb +0 -15
  211. data/lib/geoblacklight/wms_layer/feature_info_response.rb +0 -37
  212. data/lib/geoblacklight/wms_layer.rb +0 -34
  213. data/spec/components/geoblacklight/attribute_table_component_spec.rb +0 -36
  214. data/spec/components/geoblacklight/index_map_legend_component_spec.rb +0 -29
  215. data/spec/components/geoblacklight/viewer_help_text_component_spec.rb +0 -27
  216. data/spec/controllers/wms_controller_spec.rb +0 -34
  217. data/spec/features/configurable_basemap_spec.rb +0 -40
  218. data/spec/features/full_screen_control_spec.rb +0 -15
  219. data/spec/features/layer_inspection_spec.rb +0 -12
  220. data/spec/features/layer_opacity_spec.rb +0 -16
  221. data/spec/fixtures/solr_documents/harvard_raster.json +0 -39
  222. data/spec/fixtures/solr_documents/public_polygon_mit.json +0 -23
  223. data/spec/fixtures/solr_documents/uva_slug_colon.json +0 -29
  224. data/spec/javascripts/geoblacklight_spec.js +0 -11
  225. data/spec/lib/geoblacklight/configuration/layer_config_spec.rb +0 -71
  226. data/spec/lib/geoblacklight/configuration/leaflet_config_spec.rb +0 -129
  227. data/spec/lib/geoblacklight/configuration/leaflet_layers_config_spec.rb +0 -63
  228. data/spec/lib/geoblacklight/configuration_spec.rb +0 -48
  229. data/spec/lib/geoblacklight/wms_layer/feature_info_response_spec.rb +0 -54
  230. data/spec/lib/geoblacklight/wms_layer_spec.rb +0 -115
  231. /data/app/components/geoblacklight/{location_leaflet_map_component.html.erb → locator_map_component.html.erb} +0 -0
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: geoblacklight
3
3
  version: !ruby/object:Gem::Version
4
- version: 6.0.0.pre.alpha.7
4
+ version: 6.0.0.pre.beta.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Mike Graves
@@ -10,7 +10,7 @@ authors:
10
10
  - Jack Reed
11
11
  bindir: bin
12
12
  cert_chain: []
13
- date: 2026-07-30 00:00:00.000000000 Z
13
+ date: 1980-01-02 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: rails
@@ -38,7 +38,7 @@ dependencies:
38
38
  requirements:
39
39
  - - ">="
40
40
  - !ruby/object:Gem::Version
41
- version: '8.0'
41
+ version: '9.1'
42
42
  - - "<"
43
43
  - !ruby/object:Gem::Version
44
44
  version: '10'
@@ -48,7 +48,7 @@ dependencies:
48
48
  requirements:
49
49
  - - ">="
50
50
  - !ruby/object:Gem::Version
51
- version: '8.0'
51
+ version: '9.1'
52
52
  - - "<"
53
53
  - !ruby/object:Gem::Version
54
54
  version: '10'
@@ -240,14 +240,14 @@ dependencies:
240
240
  requirements:
241
241
  - - ">="
242
242
  - !ruby/object:Gem::Version
243
- version: '0'
243
+ version: '4.11'
244
244
  type: :development
245
245
  prerelease: false
246
246
  version_requirements: !ruby/object:Gem::Requirement
247
247
  requirements:
248
248
  - - ">="
249
249
  - !ruby/object:Gem::Version
250
- version: '0'
250
+ version: '4.11'
251
251
  - !ruby/object:Gem::Dependency
252
252
  name: factory_bot_rails
253
253
  requirement: !ruby/object:Gem::Requirement
@@ -291,19 +291,19 @@ dependencies:
291
291
  - !ruby/object:Gem::Version
292
292
  version: '0'
293
293
  - !ruby/object:Gem::Dependency
294
- name: standardrb
294
+ name: standard
295
295
  requirement: !ruby/object:Gem::Requirement
296
296
  requirements:
297
- - - '='
297
+ - - "~>"
298
298
  - !ruby/object:Gem::Version
299
- version: 1.0.1
299
+ version: 1.56.0
300
300
  type: :development
301
301
  prerelease: false
302
302
  version_requirements: !ruby/object:Gem::Requirement
303
303
  requirements:
304
- - - '='
304
+ - - "~>"
305
305
  - !ruby/object:Gem::Version
306
- version: 1.0.1
306
+ version: 1.56.0
307
307
  - !ruby/object:Gem::Dependency
308
308
  name: webmock
309
309
  requirement: !ruby/object:Gem::Requirement
@@ -374,6 +374,7 @@ files:
374
374
  - README.md
375
375
  - Rakefile
376
376
  - app/assets/images/favicon.ico
377
+ - app/assets/images/geoblacklight/logo-dark.svg
377
378
  - app/assets/images/geoblacklight/logo.svg
378
379
  - app/assets/stylesheets/geoblacklight.css
379
380
  - app/assets/stylesheets/geoblacklight/global.css
@@ -394,6 +395,7 @@ files:
394
395
  - app/components/blacklight/icons/email_component.rb
395
396
  - app/components/blacklight/icons/esri_globe_component.rb
396
397
  - app/components/blacklight/icons/fire_solid_component.rb
398
+ - app/components/blacklight/icons/georeferenced_component.rb
397
399
  - app/components/blacklight/icons/globe_component.rb
398
400
  - app/components/blacklight/icons/home_component.rb
399
401
  - app/components/blacklight/icons/iiif_drag_drop_component.rb
@@ -424,12 +426,8 @@ files:
424
426
  - app/components/blacklight/icons/triangle_exclamation_solid_component.rb
425
427
  - app/components/blacklight/icons/web_services_component.rb
426
428
  - app/components/blacklight/icons/websites_component.rb
427
- - app/components/geoblacklight/accordion_component.html.erb
428
- - app/components/geoblacklight/accordion_component.rb
429
429
  - app/components/geoblacklight/arcgis_component.html.erb
430
430
  - app/components/geoblacklight/arcgis_component.rb
431
- - app/components/geoblacklight/attribute_table_component.html.erb
432
- - app/components/geoblacklight/attribute_table_component.rb
433
431
  - app/components/geoblacklight/data_dictionary_download_component.html.erb
434
432
  - app/components/geoblacklight/data_dictionary_download_component.rb
435
433
  - app/components/geoblacklight/display_note_component.html.erb
@@ -450,38 +448,39 @@ files:
450
448
  - app/components/geoblacklight/document_component.rb
451
449
  - app/components/geoblacklight/facets/bbox_field_component.html.erb
452
450
  - app/components/geoblacklight/facets/bbox_field_component.rb
451
+ - app/components/geoblacklight/georeferenced_header_badge_component.rb
453
452
  - app/components/geoblacklight/header_badge_component.html.erb
454
453
  - app/components/geoblacklight/header_badge_component.rb
454
+ - app/components/geoblacklight/header_badges_component.html.erb
455
+ - app/components/geoblacklight/header_badges_component.rb
455
456
  - app/components/geoblacklight/header_component.html.erb
456
457
  - app/components/geoblacklight/header_component.rb
457
- - app/components/geoblacklight/header_icons_component.html.erb
458
- - app/components/geoblacklight/header_icons_component.rb
459
458
  - app/components/geoblacklight/homepage_feature_facet_component.html.erb
460
459
  - app/components/geoblacklight/homepage_feature_facet_component.rb
461
460
  - app/components/geoblacklight/iiif_drag_drop_component.html.erb
462
461
  - app/components/geoblacklight/iiif_drag_drop_component.rb
463
- - app/components/geoblacklight/index_map_inspect_component.html.erb
464
- - app/components/geoblacklight/index_map_inspect_component.rb
465
- - app/components/geoblacklight/index_map_legend_component.html.erb
466
- - app/components/geoblacklight/index_map_legend_component.rb
467
462
  - app/components/geoblacklight/item_map_viewer_component.html.erb
468
463
  - app/components/geoblacklight/item_map_viewer_component.rb
469
- - app/components/geoblacklight/location_leaflet_map_component.html.erb
470
- - app/components/geoblacklight/location_leaflet_map_component.rb
464
+ - app/components/geoblacklight/locator_map_component.html.erb
465
+ - app/components/geoblacklight/locator_map_component.rb
471
466
  - app/components/geoblacklight/login_link_component.html.erb
472
467
  - app/components/geoblacklight/login_link_component.rb
473
468
  - app/components/geoblacklight/metadata_component.html.erb
474
469
  - app/components/geoblacklight/metadata_component.rb
475
470
  - app/components/geoblacklight/metadata_description_markdown_component.rb
476
- - app/components/geoblacklight/relations_component.html.erb
477
- - app/components/geoblacklight/relations_component.rb
471
+ - app/components/geoblacklight/overview_map_component.html.erb
472
+ - app/components/geoblacklight/overview_map_component.rb
473
+ - app/components/geoblacklight/relations/relation_component.html.erb
474
+ - app/components/geoblacklight/relations/relation_component.rb
475
+ - app/components/geoblacklight/relations/relations_component.html.erb
476
+ - app/components/geoblacklight/relations/relations_component.rb
478
477
  - app/components/geoblacklight/resource_header_badge_component.rb
479
478
  - app/components/geoblacklight/search_result_component.html.erb
480
479
  - app/components/geoblacklight/search_result_component.rb
481
480
  - app/components/geoblacklight/static_map_component.html.erb
482
481
  - app/components/geoblacklight/static_map_component.rb
483
- - app/components/geoblacklight/viewer_help_text_component.html.erb
484
- - app/components/geoblacklight/viewer_help_text_component.rb
482
+ - app/components/geoblacklight/truncatable_metadata_field_layout_component.html.erb
483
+ - app/components/geoblacklight/truncatable_metadata_field_layout_component.rb
485
484
  - app/components/geoblacklight/web_services_component.html.erb
486
485
  - app/components/geoblacklight/web_services_component.rb
487
486
  - app/components/geoblacklight/web_services_default_component.html.erb
@@ -491,34 +490,19 @@ files:
491
490
  - app/components/geoblacklight/web_services_wfs_component.rb
492
491
  - app/components/geoblacklight/web_services_wms_component.html.erb
493
492
  - app/components/geoblacklight/web_services_wms_component.rb
494
- - app/controllers/relation_controller.rb
495
- - app/controllers/wms_controller.rb
493
+ - app/controllers/relations_controller.rb
494
+ - app/controllers/viewer_record_controller.rb
496
495
  - app/helpers/geoblacklight_helper.rb
497
496
  - app/javascript/geoblacklight/controllers/clipboard_controller.js
498
- - app/javascript/geoblacklight/controllers/leaflet_viewer_controller.js
499
497
  - app/javascript/geoblacklight/controllers/oembed_viewer_controller.js
500
- - app/javascript/geoblacklight/controllers/openlayers_viewer_controller.js
501
- - app/javascript/geoblacklight/controllers/search_results_controller.js
498
+ - app/javascript/geoblacklight/controllers/overview_map_controller.js
502
499
  - app/javascript/geoblacklight/core.js
503
500
  - app/javascript/geoblacklight/index.js
501
+ - app/javascript/geoblacklight/initializers/field_truncation.js
504
502
  - app/javascript/geoblacklight/initializers/metadata_download.js
505
- - app/javascript/geoblacklight/initializers/popovers.js
506
- - app/javascript/geoblacklight/initializers/tooltips.js
507
503
  - app/javascript/geoblacklight/initializers/truncation.js
508
- - app/javascript/geoblacklight/leaflet/basemaps.js
509
- - app/javascript/geoblacklight/leaflet/constants.js
510
- - app/javascript/geoblacklight/leaflet/controls/geosearch.js
511
- - app/javascript/geoblacklight/leaflet/controls/layer_opacity.js
512
- - app/javascript/geoblacklight/leaflet/controls/sidebar.js
513
- - app/javascript/geoblacklight/leaflet/controls/sleep.js
514
- - app/javascript/geoblacklight/leaflet/inspection.js
515
- - app/javascript/geoblacklight/leaflet/layer_index_map.js
516
- - app/javascript/geoblacklight/leaflet/layer_wmts.js
517
- - app/javascript/geoblacklight/leaflet/layers.js
518
- - app/javascript/geoblacklight/leaflet/utils.js
519
- - app/javascript/geoblacklight/openlayers/basemaps.js
520
- - app/javascript/geoblacklight/openlayers/inspection.js
521
- - app/javascript/geoblacklight/openlayers/layers.js
504
+ - app/javascript/geoblacklight/initializers/viewer_requests.js
505
+ - app/javascript/geoblacklight/initializers/viewer_theme.js
522
506
  - app/models/concerns/geoblacklight/bbox_filter_field.rb
523
507
  - app/models/concerns/geoblacklight/bbox_filter_query.rb
524
508
  - app/models/concerns/geoblacklight/solr_document.rb
@@ -526,6 +510,7 @@ files:
526
510
  - app/models/concerns/geoblacklight/solr_document/citation.rb
527
511
  - app/models/concerns/geoblacklight/solr_document/finder.rb
528
512
  - app/models/concerns/geoblacklight/solr_document/inspection.rb
513
+ - app/models/concerns/geoblacklight/solr_document/thumbnail.rb
529
514
  - app/models/concerns/geoblacklight/suppressed_records_search_behavior.rb
530
515
  - app/presenters/geoblacklight/bbox_item_presenter.rb
531
516
  - app/views/catalog/_citation.html.erb
@@ -537,8 +522,8 @@ files:
537
522
  - app/views/catalog/metadata/_markup.html.erb
538
523
  - app/views/catalog/metadata/_missing.html.erb
539
524
  - app/views/catalog/web_services.html.erb
540
- - app/views/relation/index.html.erb
541
- - app/views/relation/index.json.jbuilder
525
+ - app/views/relations/index.html.erb
526
+ - app/views/relations/index.json.jbuilder
542
527
  - compose.yml
543
528
  - config/importmap.rb
544
529
  - config/initializers/rails_config.rb
@@ -556,12 +541,9 @@ files:
556
541
  - lib/geoblacklight/configuration/default_settings_builder.rb
557
542
  - lib/geoblacklight/configuration/display_note_shown_config.rb
558
543
  - lib/geoblacklight/configuration/fields_config.rb
559
- - lib/geoblacklight/configuration/layer_config.rb
560
- - lib/geoblacklight/configuration/leaflet_config.rb
561
- - lib/geoblacklight/configuration/leaflet_layers_config.rb
562
- - lib/geoblacklight/configuration/leaflet_sleep_config.rb
563
544
  - lib/geoblacklight/configuration/relationship_config.rb
564
545
  - lib/geoblacklight/configuration/relationships_config.rb
546
+ - lib/geoblacklight/configuration/settings_attributes.rb
565
547
  - lib/geoblacklight/configuration/settings_builder.rb
566
548
  - lib/geoblacklight/constants.rb
567
549
  - lib/geoblacklight/deprecation.rb
@@ -580,19 +562,20 @@ files:
580
562
  - lib/geoblacklight/metadata_transformer/iso19139.rb
581
563
  - lib/geoblacklight/reference.rb
582
564
  - lib/geoblacklight/references.rb
583
- - lib/geoblacklight/relation/ancestors.rb
584
- - lib/geoblacklight/relation/descendants.rb
585
- - lib/geoblacklight/relation/relation_response.rb
565
+ - lib/geoblacklight/relations/ancestors.rb
566
+ - lib/geoblacklight/relations/descendants.rb
567
+ - lib/geoblacklight/relations/query.rb
568
+ - lib/geoblacklight/relations/relation_response.rb
586
569
  - lib/geoblacklight/routes.rb
587
570
  - lib/geoblacklight/routes/exportable.rb
588
- - lib/geoblacklight/routes/wms.rb
589
571
  - lib/geoblacklight/version.rb
590
- - lib/geoblacklight/wms_layer.rb
591
- - lib/geoblacklight/wms_layer/feature_info_response.rb
572
+ - lib/geoblacklight/viewer_record.rb
592
573
  - lib/tasks/geoblacklight.rake
574
+ - lib/tasks/solr.rb
593
575
  - package.json
594
576
  - schema/geoblacklight-schema-aardvark.json
595
577
  - schema/readme.md
578
+ - script/wait-for-solr
596
579
  - solr/conf/_rest_managed.json
597
580
  - solr/conf/admin-extra.html
598
581
  - solr/conf/core.properties
@@ -607,44 +590,47 @@ files:
607
590
  - solr/conf/stopwords_en.txt
608
591
  - solr/conf/synonyms.txt
609
592
  - spec/components/geoblacklight/arcgis_component_spec.rb
610
- - spec/components/geoblacklight/attribute_table_component_spec.rb
611
593
  - spec/components/geoblacklight/citation_component_spec.rb
612
594
  - spec/components/geoblacklight/display_note_component_spec.rb
613
595
  - spec/components/geoblacklight/document/sidebar_component_spec.rb
614
596
  - spec/components/geoblacklight/document_component_spec.rb
615
597
  - spec/components/geoblacklight/download_links_component_spec.rb
616
- - spec/components/geoblacklight/header_icons_component_spec.rb
598
+ - spec/components/geoblacklight/header_badges_component_spec.rb
617
599
  - spec/components/geoblacklight/homepage_feature_facet_component_spec.rb
618
600
  - spec/components/geoblacklight/iiif_drag_drop_component_spec.rb
619
- - spec/components/geoblacklight/index_map_legend_component_spec.rb
620
601
  - spec/components/geoblacklight/item_map_viewer_component_spec.rb
602
+ - spec/components/geoblacklight/locator_map_component_spec.rb
621
603
  - spec/components/geoblacklight/login_link_component_spec.rb
622
604
  - spec/components/geoblacklight/metadata_component_spec.rb
623
605
  - spec/components/geoblacklight/metadata_description_markdown_component_spec.rb
606
+ - spec/components/geoblacklight/overview_map_component_spec.rb
607
+ - spec/components/geoblacklight/relations/relation_component_spec.rb
608
+ - spec/components/geoblacklight/relations/relations_component_spec.rb
624
609
  - spec/components/geoblacklight/search_result_component_spec.rb
625
610
  - spec/components/geoblacklight/static_map_component_spec.rb
626
- - spec/components/geoblacklight/viewer_help_text_component_spec.rb
611
+ - spec/components/geoblacklight/truncatable_metadata_field_layout_component_spec.rb
627
612
  - spec/components/geoblacklight/web_services_component_spec.rb
628
613
  - spec/controllers/catalog_controller_spec.rb
629
- - spec/controllers/relation_controller_spec.rb
630
- - spec/controllers/wms_controller_spec.rb
614
+ - spec/controllers/relations_controller_spec.rb
631
615
  - spec/factories/user.rb
632
616
  - spec/features/axe_spec.rb
633
617
  - spec/features/citations_spec.rb
634
- - spec/features/configurable_basemap_spec.rb
635
- - spec/features/full_screen_control_spec.rb
636
618
  - spec/features/home_page_spec.rb
637
619
  - spec/features/index_view_spec.rb
638
- - spec/features/layer_inspection_spec.rb
639
- - spec/features/layer_opacity_spec.rb
640
620
  - spec/features/layer_preview_spec.rb
621
+ - spec/features/locator_map_spec.rb
641
622
  - spec/features/metadata_panel_spec.rb
642
623
  - spec/features/relations_spec.rb
624
+ - spec/features/restricted_viewer_spec.rb
643
625
  - spec/features/search_results_map_spec.rb
644
626
  - spec/features/search_spec.rb
627
+ - spec/features/sign_in_spec.rb
645
628
  - spec/features/sms_spec.rb
646
629
  - spec/features/tilejson_spec.rb
647
630
  - spec/features/tms_spec.rb
631
+ - spec/features/truncated_metadata_spec.rb
632
+ - spec/features/viewer_requests_spec.rb
633
+ - spec/features/viewer_theme_spec.rb
648
634
  - spec/features/web_services_modal_spec.rb
649
635
  - spec/features/wmts_spec.rb
650
636
  - spec/features/xyz_spec.rb
@@ -688,7 +674,6 @@ files:
688
674
  - spec/fixtures/solr_documents/esri-image-map-layer.json
689
675
  - spec/fixtures/solr_documents/esri-tiled_map_layer.json
690
676
  - spec/fixtures/solr_documents/esri-wms-layer.json
691
- - spec/fixtures/solr_documents/harvard_raster.json
692
677
  - spec/fixtures/solr_documents/iiif-eastern-hemisphere.json
693
678
  - spec/fixtures/solr_documents/index-map-polygon-no-downloadurl.json
694
679
  - spec/fixtures/solr_documents/index-map-polygon.json
@@ -709,7 +694,7 @@ files:
709
694
  - spec/fixtures/solr_documents/public_cog_princeton.json
710
695
  - spec/fixtures/solr_documents/public_iiif_princeton.json
711
696
  - spec/fixtures/solr_documents/public_pmtiles_princeton.json
712
- - spec/fixtures/solr_documents/public_polygon_mit.json
697
+ - spec/fixtures/solr_documents/public_polygon.json
713
698
  - spec/fixtures/solr_documents/restricted-line.json
714
699
  - spec/fixtures/solr_documents/the-related-record.json
715
700
  - spec/fixtures/solr_documents/tilejson.json
@@ -717,20 +702,16 @@ files:
717
702
  - spec/fixtures/solr_documents/umn_metro_result1.json
718
703
  - spec/fixtures/solr_documents/umn_state_result1.json
719
704
  - spec/fixtures/solr_documents/umn_state_result2.json
720
- - spec/fixtures/solr_documents/uva_slug_colon.json
721
705
  - spec/fixtures/solr_documents/wmts-multiple.json
722
706
  - spec/fixtures/solr_documents/wmts-single-layer.json
723
707
  - spec/fixtures/solr_documents/xyz.json
724
708
  - spec/helpers/geoblacklight_helper_spec.rb
725
- - spec/javascripts/geoblacklight_spec.js
726
709
  - spec/javascripts/metadata_download_button_spec.js
727
710
  - spec/lib/geoblacklight/bounding_box_spec.rb
728
711
  - spec/lib/geoblacklight/configuration/default_settings_builder_spec.rb
729
- - spec/lib/geoblacklight/configuration/layer_config_spec.rb
730
- - spec/lib/geoblacklight/configuration/leaflet_config_spec.rb
731
- - spec/lib/geoblacklight/configuration/leaflet_layers_config_spec.rb
712
+ - spec/lib/geoblacklight/configuration/relationships_config_spec.rb
713
+ - spec/lib/geoblacklight/configuration/settings_attributes_spec.rb
732
714
  - spec/lib/geoblacklight/configuration/settings_builder_spec.rb
733
- - spec/lib/geoblacklight/configuration_spec.rb
734
715
  - spec/lib/geoblacklight/geometry_spec.rb
735
716
  - spec/lib/geoblacklight/item_viewer_spec.rb
736
717
  - spec/lib/geoblacklight/metadata/base_spec.rb
@@ -742,16 +723,16 @@ files:
742
723
  - spec/lib/geoblacklight/metadata_transformer_spec.rb
743
724
  - spec/lib/geoblacklight/reference_spec.rb
744
725
  - spec/lib/geoblacklight/references_spec.rb
745
- - spec/lib/geoblacklight/relation/ancestors_spec.rb
746
- - spec/lib/geoblacklight/relation/descendants_spec.rb
747
- - spec/lib/geoblacklight/relation/relation_response_spec.rb
748
- - spec/lib/geoblacklight/wms_layer/feature_info_response_spec.rb
749
- - spec/lib/geoblacklight/wms_layer_spec.rb
726
+ - spec/lib/geoblacklight/relations/ancestors_spec.rb
727
+ - spec/lib/geoblacklight/relations/descendants_spec.rb
728
+ - spec/lib/geoblacklight/relations/relation_response_spec.rb
729
+ - spec/lib/geoblacklight/viewer_record_spec.rb
750
730
  - spec/models/concerns/geoblacklight/bbox_filter_field_spec.rb
751
731
  - spec/models/concerns/geoblacklight/bbox_filter_query_spec.rb
752
732
  - spec/models/concerns/geoblacklight/solr_document/citation_spec.rb
753
733
  - spec/models/concerns/geoblacklight/solr_document/finder_spec.rb
754
734
  - spec/models/concerns/geoblacklight/solr_document/inspection_spec.rb
735
+ - spec/models/concerns/geoblacklight/solr_document/thumbnail_spec.rb
755
736
  - spec/models/concerns/geoblacklight/solr_document_spec.rb
756
737
  - spec/models/concerns/geoblacklight/suppressed_records_search_behavior_spec.rb
757
738
  - spec/presenters/geoblacklight/bbox_item_presenter_spec.rb
@@ -765,11 +746,18 @@ files:
765
746
  - spec/requests/relations_spec.rb
766
747
  - spec/requests/search_history_spec.rb
767
748
  - spec/requests/search_results_spec.rb
749
+ - spec/requests/viewer_record_spec.rb
750
+ - spec/requests/viewer_requests_spec.rb
768
751
  - spec/requests/web_services_spec.rb
769
752
  - spec/routing/catalog_routing_spec.rb
753
+ - spec/solr_config_spec.rb
754
+ - spec/solr_fixtures_spec.rb
770
755
  - spec/spec_helper.rb
756
+ - spec/support/authentication.rb
771
757
  - spec/support/features.rb
758
+ - spec/support/features/map_helpers.rb
772
759
  - spec/support/features/session_helpers.rb
760
+ - spec/support/features/viewer_helpers.rb
773
761
  - spec/support/fixtures.rb
774
762
  - spec/test_app_templates/lib/generators/test_app_generator.rb
775
763
  - template.rb
@@ -791,7 +779,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
791
779
  - !ruby/object:Gem::Version
792
780
  version: 2.5.2
793
781
  requirements: []
794
- rubygems_version: 3.6.2
782
+ rubygems_version: 4.0.3
795
783
  specification_version: 4
796
784
  summary: A discovery platform for geospatial holdings
797
785
  test_files: []
@@ -1,16 +0,0 @@
1
- <div data-sidebar="<%= sidebar? %>">
2
- <div class="accordion attribute-data<% if sidebar? %> sidebar-container<% end %>">
3
- <div class="accordion-item">
4
- <h2 class="accordion-header" id="accordionHeading">
5
- <button class="accordion-button p-2 border-none bg-none" type="button" data-bs-toggle="collapse" data-bs-target="#<%= @id %>" aria-expanded="true" aria-controls="<%= @id %>">
6
- <%= @title %>
7
- </button>
8
- </h2>
9
- <div id="<%= @id %>" class="accordion-collapse collapse show" aria-labelledby="accordionHeading" data-bs-parent="#accordionHeading">
10
- <div class="accordion-body p-0">
11
- <%= content %>
12
- </div>
13
- </div>
14
- </div>
15
- </div>
16
- </div>
@@ -1,15 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module Geoblacklight
4
- class AccordionComponent < ViewComponent::Base
5
- def initialize(id:, title:)
6
- @id = id
7
- @title = title
8
- super()
9
- end
10
-
11
- def sidebar?
12
- Geoblacklight.configuration.leaflet_options.sidebar
13
- end
14
- end
15
- end
@@ -1,15 +0,0 @@
1
- <%= render Geoblacklight::AccordionComponent.new(id: 'attribute-table', title: t('geoblacklight.show.table_name')) do %>
2
- <table id="attribute-table" class="table table-hover table-condensed table-striped mb-0 collapse show" data-inspecting-text="<%= t('geoblacklight.show.inspecting') %>" data-not-found-text="<%= t('geoblacklight.show.not_found') %>">
3
- <thead>
4
- <tr>
5
- <th><%= t('geoblacklight.show.attribute') %></th>
6
- <th><%= t('geoblacklight.show.value') %></th>
7
- </tr>
8
- </thead>
9
- <tbody class="attribute-table-body">
10
- <tr>
11
- <td class="default-text" colspan="2"><em><%= t('geoblacklight.show.click_map') %></em></td>
12
- </tr>
13
- </tbody>
14
- </table>
15
- <% end %>
@@ -1,17 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module Geoblacklight
4
- ##
5
- # A component for rendering attribute table
6
- #
7
- class AttributeTableComponent < ViewComponent::Base
8
- def initialize(document:)
9
- @document = document
10
- super()
11
- end
12
-
13
- def render?
14
- helpers.document_available?(@document) && @document.inspectable?
15
- end
16
- end
17
- end
@@ -1,3 +0,0 @@
1
- <% @fields.each do |field| %>
2
- <%= render_badge(field) %>
3
- <% end %>
@@ -1,27 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module Geoblacklight
4
- class HeaderIconsComponent < ViewComponent::Base
5
- attr_reader :document, :fields
6
-
7
- def initialize(document:,
8
- fields: [Geoblacklight.configuration.fields.resource_class,
9
- Geoblacklight.configuration.fields.access_rights])
10
- @document = document
11
- @fields = fields
12
- super()
13
- end
14
-
15
- def render_badge(field)
16
- render badge_class(field).new(document: @document, field:)
17
- end
18
-
19
- def badge_class(field)
20
- if field == Geoblacklight.configuration.fields.resource_class
21
- Geoblacklight::ResourceHeaderBadgeComponent
22
- else
23
- Geoblacklight::HeaderBadgeComponent
24
- end
25
- end
26
- end
27
- end
@@ -1,12 +0,0 @@
1
- <%= render Geoblacklight::AccordionComponent.new(id: 'index-map-attributes', title: t('geoblacklight.show.table_name')) do %>
2
- <div class="viewer-information px-3"
3
- data-website-label="<%= t('geoblacklight.map.index.website_label') %>"
4
- data-download-label="<%= t('geoblacklight.map.index.download_label') %>"
5
- data-record-identifier-label="<%= t('geoblacklight.map.index.record_identifier_label') %>"
6
- data-label-label="<%= t('geoblacklight.map.index.label_label') %>"
7
- data-note-label="<%= t('geoblacklight.map.index.note_label') %>"
8
- data-selected-feature="<%= t('geoblacklight.map.index.selected_feature') %>"
9
- data-download-text="<%= t('geoblacklight.download.download') %>">
10
- <em><%= t('geoblacklight.show.click_map') %></em>
11
- </div>
12
- <% end %>
@@ -1,15 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module Geoblacklight
4
- # Renders the HTML that is dynamically populated when inspecting index maps
5
- class IndexMapInspectComponent < ViewComponent::Base
6
- def initialize(document:)
7
- super()
8
- @document = document
9
- end
10
-
11
- def render?
12
- @document.viewer_protocol == "index_map"
13
- end
14
- end
15
- end
@@ -1,14 +0,0 @@
1
- <div class="index-map-legend">
2
- <div class="index-map-legend-info">
3
- <div class="index-map-legend-swatch" style="background: <%= index_config.dig(:DEFAULT).color %>"></div>
4
- <div><span class="visually-hidden"><%= t('geoblacklight.map.legend.sr_tile_indicates', color: index_config.dig(:DEFAULT).sr_color_name) %></span><%= t('geoblacklight.map.legend.held') %></div>
5
- </div>
6
- <div class="index-map-legend-info">
7
- <div class="index-map-legend-swatch" style="background: <%= index_config.dig(:UNAVAILABLE).color %>"></div>
8
- <div><span class="visually-hidden"><%= t('geoblacklight.map.legend.sr_tile_indicates', color: index_config.dig(:UNAVAILABLE).sr_color_name) %></span><%= t('geoblacklight.map.legend.not_held') %></div>
9
- </div>
10
- <div class="index-map-legend-info">
11
- <div class="index-map-legend-swatch" style="background: <%= index_config.dig(:SELECTED).color %>"></div>
12
- <div><span class="visually-hidden"><%= t('geoblacklight.map.legend.sr_tile_indicates', color: index_config.dig(:SELECTED).sr_color_name) %></span><%= t('geoblacklight.map.legend.selected') %></div>
13
- </div>
14
- </div>
@@ -1,24 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module Geoblacklight
4
- ##
5
- # A component for rendering legend for the index map
6
- #
7
- class IndexMapLegendComponent < ViewComponent::Base
8
- def initialize(document:)
9
- super()
10
- @document = document
11
- end
12
-
13
- def render?
14
- @document.item_viewer.index_map
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
23
- end
24
- end
@@ -1,68 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module Geoblacklight
4
- class LocationLeafletMapComponent < ViewComponent::Base
5
- def initialize(
6
- map_geometry: config.homepage_map_geom,
7
- page: nil,
8
- geosearch: nil
9
- )
10
- @map_geometry = map_geometry if map_geometry != "null"
11
- @page = page
12
- @geosearch = geosearch
13
- super()
14
- end
15
-
16
- def search_bbox
17
- return unless params[:bbox].present?
18
-
19
- bbox = Geoblacklight::BoundingBox.new(*params[:bbox].split(" "))
20
- bbox.to_geojson
21
- end
22
-
23
- # Add top-level geosearch control to leaflet options if configured
24
- def leaflet_options
25
- config.leaflet_options.deep_dup.tap do |options|
26
- options.controls = {"Geosearch" => geosearch_options} if @geosearch
27
- end
28
- end
29
-
30
- def geosearch_options
31
- {
32
- search_here_text: I18n.t("geoblacklight.map.geosearch.search_here"),
33
- search_when_moved_text: I18n.t("geoblacklight.map.geosearch.search_when_moved")
34
- }.merge(@geosearch)
35
- end
36
-
37
- def config
38
- Geoblacklight.configuration
39
- end
40
-
41
- # We don't want turbo-permanent on the home page.
42
- def data_permanent
43
- return {} unless helpers.has_search_parameters?
44
- {turbo_permanent: true}
45
- end
46
-
47
- def viewer_tag
48
- tag.div(
49
- id: "leaflet-viewer",
50
- class: "viewer leaflet-viewer location-viewer",
51
- data: data_permanent.merge(leaflet_viewer_data_attributes)
52
- )
53
- end
54
-
55
- def leaflet_viewer_data_attributes
56
- {
57
- "controller" => "leaflet-viewer",
58
- "leaflet-viewer-basemap-value" => Geoblacklight.configuration.basemap_provider,
59
- "leaflet-viewer-dark-basemap-value" => Geoblacklight.configuration.dark_basemap_provider,
60
- "leaflet-viewer-map-geom-value" => search_bbox || @map_geometry,
61
- "leaflet-viewer-data-map-value" => @data_map,
62
- "leaflet-viewer-page-value" => @page || params[:action],
63
- "leaflet-viewer-options-value" => leaflet_options.to_h,
64
- "leaflet-viewer-catalog-base-url-value" => (helpers.search_action_path if @geosearch)
65
- }.compact
66
- end
67
- end
68
- end