geoblacklight 3.2.0 → 4.0.0.pre.alpha

Sign up to get free protection for your applications and to get access to all the features.
Files changed (190) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/ruby.yml +148 -0
  3. data/.gitignore +8 -0
  4. data/.rubocop.yml +14 -10
  5. data/.rubocop_todo.yml +361 -26
  6. data/README.md +3 -3
  7. data/Rakefile +19 -12
  8. data/app/assets/images/blacklight/michigan-state-university.svg +6 -0
  9. data/app/assets/images/blacklight/pennsylvania-state-university.svg +6 -0
  10. data/app/assets/images/blacklight/purdue-university.svg +6 -0
  11. data/app/assets/images/blacklight/the-ohio-state-university.svg +7 -0
  12. data/app/assets/images/blacklight/university-of-chicago.svg +6 -0
  13. data/app/assets/images/blacklight/university-of-illinois-urbana-champaign.svg +6 -0
  14. data/app/assets/images/blacklight/university-of-iowa.svg +5 -0
  15. data/app/assets/images/blacklight/university-of-maryland.svg +5 -0
  16. data/app/assets/images/blacklight/university-of-michigan.svg +5 -0
  17. data/app/assets/images/blacklight/university-of-minnesota.svg +5 -0
  18. data/app/assets/images/blacklight/university-of-nebraska-lincoln.svg +8 -0
  19. data/app/assets/images/blacklight/university-of-wisconsin-madison.svg +5 -0
  20. data/app/assets/images/favicon.ico +0 -0
  21. data/app/assets/javascripts/geoblacklight/geoblacklight.js +18 -1
  22. data/app/assets/javascripts/geoblacklight/modules/bookmarks.js +43 -0
  23. data/app/assets/javascripts/geoblacklight/modules/metadata_download_button.js +6 -1
  24. data/app/assets/javascripts/geoblacklight/modules/results.js +7 -8
  25. data/app/assets/javascripts/geoblacklight/modules/util.js +5 -0
  26. data/app/assets/javascripts/geoblacklight/viewers/esri.js +1 -1
  27. data/app/assets/javascripts/geoblacklight/viewers/index_map.js +1 -1
  28. data/app/assets/javascripts/geoblacklight/viewers/map.js +12 -2
  29. data/app/assets/javascripts/geoblacklight/viewers/tms.js +10 -0
  30. data/app/assets/javascripts/geoblacklight/viewers/wms.js +1 -1
  31. data/app/assets/stylesheets/geoblacklight/modules/icon-customization.scss +41 -0
  32. data/app/assets/stylesheets/geoblacklight/modules/results.scss +1 -1
  33. data/app/assets/stylesheets/geoblacklight/modules/toolbar.scss +6 -0
  34. data/app/components/geoblacklight/homepage_feature_facet_component.html.erb +11 -0
  35. data/app/components/geoblacklight/homepage_feature_facet_component.rb +13 -0
  36. data/{lib → app/helpers}/geoblacklight/geoblacklight_helper_behavior.rb +6 -4
  37. data/app/helpers/geoblacklight_helper.rb +14 -8
  38. data/app/models/concerns/geoblacklight/solr_document/citation.rb +2 -2
  39. data/app/models/concerns/geoblacklight/solr_document.rb +11 -16
  40. data/app/models/concerns/geoblacklight/spatial_search_behavior.rb +5 -5
  41. data/app/views/catalog/_arcgis.html.erb +1 -1
  42. data/app/views/catalog/_data_dictionary.html.erb +1 -2
  43. data/app/views/catalog/_document_split.html.erb +1 -1
  44. data/app/views/catalog/_header_icons.html.erb +1 -1
  45. data/app/views/catalog/_home_text.html.erb +7 -29
  46. data/app/views/catalog/_index_split_default.html.erb +1 -1
  47. data/app/views/catalog/_show_default_viewer_container.html.erb +1 -1
  48. data/app/views/catalog/_show_header_default.html.erb +1 -1
  49. data/app/views/download/hgl.html.erb +13 -11
  50. data/app/views/relation/_relations.html.erb +15 -0
  51. data/app/views/relation/index.html.erb +4 -16
  52. data/app/views/relation/index.json.jbuilder +6 -2
  53. data/babel.config.json +4 -0
  54. data/config/initializers/new_gbl_settings_defaults_3_4.yml +6 -0
  55. data/config/locales/geoblacklight.en.yml +12 -0
  56. data/geoblacklight.gemspec +5 -3
  57. data/jest.config.js +25 -0
  58. data/lib/generators/geoblacklight/install_generator.rb +1 -1
  59. data/lib/generators/geoblacklight/templates/catalog_controller.rb +78 -35
  60. data/lib/generators/geoblacklight/templates/settings.gbl_v1.yml +195 -0
  61. data/lib/generators/geoblacklight/templates/settings.yml +91 -17
  62. data/lib/geoblacklight/bounding_box.rb +1 -1
  63. data/lib/geoblacklight/constants.rb +1 -0
  64. data/lib/geoblacklight/download/geojson_download.rb +1 -1
  65. data/lib/geoblacklight/download/geotiff_download.rb +1 -1
  66. data/lib/geoblacklight/download/hgl_download.rb +1 -1
  67. data/lib/geoblacklight/download/kmz_download.rb +2 -2
  68. data/lib/geoblacklight/download/shapefile_download.rb +1 -1
  69. data/lib/geoblacklight/geometry.rb +85 -0
  70. data/lib/geoblacklight/item_viewer.rb +5 -1
  71. data/lib/geoblacklight/metadata/base.rb +1 -7
  72. data/lib/geoblacklight/references.rb +1 -1
  73. data/lib/geoblacklight/relation/ancestors.rb +4 -3
  74. data/lib/geoblacklight/relation/descendants.rb +4 -3
  75. data/lib/geoblacklight/relation/relation_response.rb +21 -6
  76. data/lib/geoblacklight/version.rb +1 -1
  77. data/lib/geoblacklight/view_helper_override.rb +1 -1
  78. data/lib/geoblacklight/wms_layer.rb +1 -4
  79. data/lib/geoblacklight.rb +1 -3
  80. data/lib/tasks/geoblacklight.rake +5 -0
  81. data/package.json +17 -1
  82. data/schema/{geoblacklight-schema.json → geoblacklight-schema-1.0.json} +1 -1
  83. data/schema/geoblacklight-schema-aardvark.json +211 -0
  84. data/setupJest.js +14 -0
  85. data/solr/conf/schema.xml +35 -29
  86. data/solr/conf/solrconfig.xml +15 -15
  87. data/spec/components/geoblacklight/homepage_feature_facet_component_spec.rb +39 -0
  88. data/spec/config/initializers/rails_config_spec.rb +15 -0
  89. data/spec/controllers/catalog_controller_spec.rb +7 -7
  90. data/spec/features/esri_viewer_spec.rb +1 -1
  91. data/spec/features/home_page_spec.rb +4 -4
  92. data/spec/features/layer_opacity_spec.rb +1 -0
  93. data/spec/features/metadata_panel_spec.rb +1 -1
  94. data/spec/features/missing_metadata_spec.rb +2 -2
  95. data/spec/features/relations_spec.rb +2 -2
  96. data/spec/features/search_results_map_spec.rb +2 -1
  97. data/spec/features/search_results_overlap_ratio_spec.rb +2 -2
  98. data/spec/features/split_view.html.erb_spec.rb +16 -12
  99. data/spec/features/tms_spec.rb +10 -0
  100. data/spec/fixtures/solr_documents/README.md +48 -36
  101. data/spec/fixtures/solr_documents/actual-papermap1.json +41 -18
  102. data/spec/fixtures/solr_documents/actual-point1.json +47 -27
  103. data/spec/fixtures/solr_documents/actual-polygon1.json +43 -18
  104. data/spec/fixtures/solr_documents/actual-raster1.json +52 -23
  105. data/spec/fixtures/solr_documents/all-relationships.json +48 -0
  106. data/spec/fixtures/solr_documents/baruch_ancestor1.json +62 -37
  107. data/spec/fixtures/solr_documents/baruch_ancestor2.json +62 -37
  108. data/spec/fixtures/solr_documents/baruch_documentation_download.json +60 -34
  109. data/spec/fixtures/solr_documents/bbox-spans-180.json +34 -16
  110. data/spec/fixtures/solr_documents/cornell_html_metadata.json +46 -26
  111. data/spec/fixtures/solr_documents/esri-dynamic-layer-all-layers.json +43 -25
  112. data/spec/fixtures/solr_documents/esri-dynamic-layer-single-layer.json +45 -28
  113. data/spec/fixtures/solr_documents/esri-feature-layer.json +44 -34
  114. data/spec/fixtures/solr_documents/esri-image-map-layer.json +45 -31
  115. data/spec/fixtures/solr_documents/esri-tiled_map_layer.json +42 -17
  116. data/spec/fixtures/solr_documents/esri-wms-layer.json +46 -21
  117. data/spec/fixtures/solr_documents/harvard_raster.json +55 -36
  118. data/spec/fixtures/solr_documents/iiif-eastern-hemisphere.json +35 -22
  119. data/spec/fixtures/solr_documents/index-map-polygon-no-downloadurl.json +48 -27
  120. data/spec/fixtures/solr_documents/index-map-polygon.json +48 -27
  121. data/spec/fixtures/solr_documents/index-map-stanford.json +54 -25
  122. data/spec/fixtures/solr_documents/index_map_point.json +54 -26
  123. data/spec/fixtures/solr_documents/metadata_no_geom.json +27 -0
  124. data/spec/fixtures/solr_documents/metadata_no_provider.json +39 -0
  125. data/spec/fixtures/solr_documents/multiple-downloads.json +33 -20
  126. data/spec/fixtures/solr_documents/no_locn_geometry.json +25 -0
  127. data/spec/fixtures/solr_documents/no_spatial.json +37 -19
  128. data/spec/fixtures/solr_documents/oembed.json +34 -17
  129. data/spec/fixtures/solr_documents/princeton-child1.json +45 -28
  130. data/spec/fixtures/solr_documents/princeton-child2.json +45 -28
  131. data/spec/fixtures/solr_documents/princeton-child3.json +45 -28
  132. data/spec/fixtures/solr_documents/princeton-child4.json +45 -28
  133. data/spec/fixtures/solr_documents/princeton-parent.json +46 -23
  134. data/spec/fixtures/solr_documents/public_direct_download.json +48 -21
  135. data/spec/fixtures/solr_documents/public_iiif_princeton.json +49 -24
  136. data/spec/fixtures/solr_documents/public_polygon_mit.json +31 -15
  137. data/spec/fixtures/solr_documents/restricted-line.json +52 -21
  138. data/spec/fixtures/solr_documents/the-related-record.json +27 -0
  139. data/spec/fixtures/solr_documents/tms.json +45 -0
  140. data/spec/fixtures/solr_documents/umn_metro_result1.json +44 -28
  141. data/spec/fixtures/solr_documents/umn_state_result1.json +44 -26
  142. data/spec/fixtures/solr_documents/umn_state_result2.json +45 -24
  143. data/spec/fixtures/solr_documents/uva_slug_colon.json +43 -20
  144. data/spec/{lib → helpers}/geoblacklight/geoblacklight_helper_behavior_spec.rb +1 -0
  145. data/spec/helpers/geoblacklight_helper_spec.rb +30 -4
  146. data/spec/javascripts/geoblacklight_spec.js +0 -6
  147. data/spec/javascripts/metadata_download_button_spec.js +5 -3
  148. data/spec/javascripts/util_spec.js +2 -4
  149. data/spec/lib/geoblacklight/download/geojson_download_spec.rb +1 -1
  150. data/spec/lib/geoblacklight/download/geotiff_download_spec.rb +1 -1
  151. data/spec/lib/geoblacklight/download/hgl_download_spec.rb +1 -1
  152. data/spec/lib/geoblacklight/download/kmz_download_spec.rb +2 -2
  153. data/spec/lib/geoblacklight/download/shapefile_download_spec.rb +1 -1
  154. data/spec/lib/geoblacklight/download_spec.rb +1 -1
  155. data/spec/lib/geoblacklight/geometry_spec.rb +59 -0
  156. data/spec/lib/geoblacklight/item_viewer_spec.rb +12 -0
  157. data/spec/lib/geoblacklight/references_spec.rb +3 -3
  158. data/spec/lib/geoblacklight/relation/ancestors_spec.rb +3 -3
  159. data/spec/lib/geoblacklight/relation/descendants_spec.rb +3 -3
  160. data/spec/lib/geoblacklight/relation/relation_response_spec.rb +32 -17
  161. data/spec/models/concerns/geoblacklight/solr_document_spec.rb +4 -4
  162. data/spec/spec_helper.rb +2 -0
  163. data/spec/support/view_component_capybara_test_helpers.rb +8 -0
  164. data/spec/test_app_templates/Gemfile.extra +1 -0
  165. data/spec/test_app_templates/lib/generators/test_app_generator.rb +0 -7
  166. data/spec/views/catalog/_document_split.html.erb_spec.rb +1 -1
  167. data/spec/views/catalog/_index_split.html.erb_spec.rb +1 -1
  168. data/template.rb +1 -0
  169. metadata +99 -51
  170. data/.circleci/config.yml +0 -256
  171. data/app/views/catalog/_document_action.html.erb +0 -6
  172. data/app/views/catalog/_facet_tag_item.html.erb +0 -3
  173. data/app/views/catalog/_facet_tag_layout.html.erb +0 -2
  174. data/app/views/relation/_ancestors.html.erb +0 -8
  175. data/app/views/relation/_descendants.html.erb +0 -15
  176. data/schema/format-values.md +0 -50
  177. data/schema/geoblacklight-schema-deprecated.md +0 -39
  178. data/schema/geoblacklight-schema.md +0 -323
  179. data/schema/geometry-type-values.md +0 -11
  180. data/schema/references.md +0 -23
  181. data/schema/schema-commentary.md +0 -198
  182. data/schema/subjects.md +0 -41
  183. data/schema/type-values.md +0 -10
  184. data/spec/fixtures/solr_documents/metadata_no_dct_provenance_s.json +0 -30
  185. data/spec/fixtures/solr_documents/metadata_no_layer_geom_type_s.json +0 -17
  186. data/spec/fixtures/solr_documents/metadata_no_solr_geom.json +0 -23
  187. data/spec/javascripts/geoblacklight/viewers/esri/tiled_map_layer_spec.js +0 -12
  188. data/spec/javascripts/spec_helper.js +0 -32
  189. data/spec/lib/geoblacklight/controller_override_spec.rb +0 -2
  190. data/spec/teaspoon_env.rb +0 -214
@@ -1,5 +1,3 @@
1
- //= require geoblacklight
2
-
3
1
  describe('GeoBlacklight', function() {
4
2
  describe('loads and makes available libraries', function() {
5
3
  it('Leaflet is defined', function() {
@@ -9,9 +7,5 @@ describe('GeoBlacklight', function() {
9
7
  it('History.js is defined', function() {
10
8
  expect(History).toBeDefined();
11
9
  });
12
-
13
- it('MetadataDownloadButton is defined', function() {
14
- expect(GeoBlacklight.MetadataDownloadButton).toBeDefined();
15
- });
16
10
  });
17
11
  });
@@ -1,11 +1,13 @@
1
- //= require geoblacklight
1
+ const MetadataDownloadButton = require('../../app/assets/javascripts/geoblacklight/modules/metadata_download_button');
2
2
 
3
3
  describe('MetadataDownloadButton', function() {
4
4
  describe('initialize', function() {
5
- fixture.set('<button id="foo" data-ref-endpoint="http://testdomain" data-ref-download="#bar">test element</button><a href="http://testdomain" id="bar">another test element</a>');
5
+ beforeEach(() => {
6
+ document.body.innerHTML = '<button id="foo" data-ref-endpoint="http://testdomain" data-ref-download="#bar">test element</button><a href="http://testdomain" id="bar">another test element</a>';
7
+ });
6
8
 
7
9
  it('creates a new instance and sets the download button @href value', function() {
8
- var button = new GeoBlacklight.MetadataDownloadButton('#foo');
10
+ var button = new MetadataDownloadButton('#foo');
9
11
  expect(button.$el.attr('id')).toBe('foo');
10
12
  expect(button.$download.attr('id')).toBe('bar');
11
13
  expect(button.$download.attr('href')).toBe('http://testdomain');
@@ -1,11 +1,9 @@
1
- //= require geoblacklight
2
-
3
- 'use strict';
1
+ const Util = require('../../app/assets/javascripts/geoblacklight/modules/util');
4
2
 
5
3
  describe('GeoBlacklight.Util', function() {
6
4
  describe('linkify', function() {
7
5
  it('returns a linkified string', function() {
8
- expect(GeoBlacklight.Util.linkify('http://www.example.com'))
6
+ expect(Util.linkify('http://www.example.com'))
9
7
  .toEqual("<a href='http://www.example.com'>http://www.example.com</a>");
10
8
  });
11
9
  });
@@ -2,7 +2,7 @@
2
2
  require 'spec_helper'
3
3
 
4
4
  describe Geoblacklight::GeojsonDownload do
5
- let(:document) { SolrDocument.new(layer_slug_s: 'test', solr_wfs_url: 'http://www.example.com/wfs', layer_id_s: 'stanford-test', solr_geom: 'ENVELOPE(-180, 180, 90, -90)') }
5
+ let(:document) { SolrDocument.new(Settings.FIELDS.ID => 'test', solr_wfs_url: 'http://www.example.com/wfs', Settings.FIELDS.WXS_IDENTIFIER => 'stanford-test', Settings.FIELDS.SPATIAL_EXTENT => 'ENVELOPE(-180, 180, 90, -90)') }
6
6
  let(:download) { described_class.new(document) }
7
7
  describe '#initialize' do
8
8
  it 'initializes as a GeojsonDownload object with specific options' do
@@ -2,7 +2,7 @@
2
2
  require 'spec_helper'
3
3
 
4
4
  describe Geoblacklight::GeotiffDownload do
5
- let(:document) { SolrDocument.new(layer_slug_s: 'test', layer_id_s: 'stanford-test', solr_geom: 'ENVELOPE(-180, 180, 90, -90)') }
5
+ let(:document) { SolrDocument.new(Settings.FIELDS.ID => 'test', Settings.FIELDS.WXS_IDENTIFIER => 'stanford-test', Settings.FIELDS.SPATIAL_EXTENT => 'ENVELOPE(-180, 180, 90, -90)') }
6
6
  let(:download) { described_class.new(document) }
7
7
  describe '#initialize' do
8
8
  it 'initializes as a GeotiffDownload object with specific options' do
@@ -4,7 +4,7 @@ require 'spec_helper'
4
4
  describe Geoblacklight::HglDownload do
5
5
  subject(:download) { described_class.new(document, options) }
6
6
 
7
- let(:document) { SolrDocument.new(layer_slug_s: 'test', layer_id_s: 'cite:harvard-test') }
7
+ let(:document) { SolrDocument.new(Settings.FIELDS.ID => 'test', Settings.FIELDS.WXS_IDENTIFIER => 'cite:harvard-test') }
8
8
  let(:options) { 'foo@example.com' }
9
9
 
10
10
  describe '#initialize' do
@@ -2,7 +2,7 @@
2
2
  require 'spec_helper'
3
3
 
4
4
  describe Geoblacklight::KmzDownload do
5
- let(:document) { SolrDocument.new(layer_slug_s: 'test', solr_wfs_url: 'http://www.example.com/wfs', layer_id_s: 'stanford-test', solr_geom: 'ENVELOPE(-180, 180, 90, -90)') }
5
+ let(:document) { SolrDocument.new(Settings.FIELDS.ID => 'test', solr_wfs_url: 'http://www.example.com/wfs', Settings.FIELDS.WXS_IDENTIFIER => 'stanford-test', Settings.FIELDS.SPATIAL_EXTENT => 'ENVELOPE(-180, 180, 90, -90)') }
6
6
  let(:download) { described_class.new(document) }
7
7
  describe '#initialize' do
8
8
  it 'initializes as a KmzDownload object with specific options' do
@@ -10,7 +10,7 @@ describe Geoblacklight::KmzDownload do
10
10
  options = download.instance_variable_get(:@options)
11
11
  expect(options[:content_type]).to eq 'application/vnd.google-earth.kmz'
12
12
  expect(options[:request_params][:layers]).to eq 'stanford-test'
13
- expect(options[:request_params][:bbox]).to eq '-180, -90, 180, 90'
13
+ expect(options[:request_params][:bbox]).to eq '-180.0, -90.0, 180.0, 90.0'
14
14
  end
15
15
  it 'merges custom options' do
16
16
  download = described_class.new(document, timeout: 33)
@@ -2,7 +2,7 @@
2
2
  require 'spec_helper'
3
3
 
4
4
  describe Geoblacklight::ShapefileDownload do
5
- let(:document) { SolrDocument.new(layer_slug_s: 'test', solr_wfs_url: 'http://www.example.com/wfs', layer_id_s: 'stanford-test', solr_geom: 'ENVELOPE(-180, 180, 90, -90)') }
5
+ let(:document) { SolrDocument.new(Settings.FIELDS.ID => 'test', solr_wfs_url: 'http://www.example.com/wfs', Settings.FIELDS.WXS_IDENTIFIER => 'stanford-test', Settings.FIELDS.SPATIAL_EXTENT => 'ENVELOPE(-180, 180, 90, -90)') }
6
6
  let(:download) { described_class.new(document) }
7
7
  describe '#initialize' do
8
8
  it 'initializes as a ShapefileDownload object with specific options' do
@@ -7,7 +7,7 @@ describe Geoblacklight::Download do
7
7
  let(:faraday_connection) { instance_double(Faraday::Connection) }
8
8
  let(:faraday_response) { instance_double(Faraday::Response) }
9
9
  let(:references_field) { Settings.FIELDS.REFERENCES }
10
- let(:document) { SolrDocument.new(layer_slug_s: 'test', references_field => { 'http://www.opengis.net/def/serviceType/ogc/wms' => 'http://www.example.com/wms' }.to_json) }
10
+ let(:document) { SolrDocument.new("#{Settings.FIELDS.ID}": 'test', references_field => { 'http://www.opengis.net/def/serviceType/ogc/wms' => 'http://www.example.com/wms' }.to_json) }
11
11
  let(:options) { { type: 'shapefile', extension: 'zip', service_type: 'wms', content_type: 'application/zip' } }
12
12
 
13
13
  describe '#initialize' do
@@ -0,0 +1,59 @@
1
+ # frozen_string_literal: true
2
+ require 'spec_helper'
3
+
4
+ describe Geoblacklight::Geometry do
5
+ let(:wkt_geom) { 'MULTIPOLYGON(((-180 81.66, -180 -12.93, -168.35 -12.93, -168.35 81.66, -180 81.66)), ((180 81.66, 25 81.66, 25 -12.93, 180 -12.93, 180 81.66)))' }
6
+ let(:envelope_geom) { 'ENVELOPE(25, -168.35, 81.66, -12.93)' }
7
+ let(:invalid_geom) { 'INVALID' }
8
+ let(:non_polygon_geom) { 'ENVELOPE(130, 130, 33, 33)' }
9
+
10
+ describe '#geojson' do
11
+ context 'with standard WKT geometry' do
12
+ it 'returns geojson' do
13
+ expect(described_class.new(wkt_geom).geojson).to include('MultiPolygon', 'coordinates', '[[[[-180.0,81.66]')
14
+ end
15
+ end
16
+
17
+ context 'with envelope syntax geometry' do
18
+ it 'returns geojson' do
19
+ expect(described_class.new(envelope_geom).geojson).to include('Polygon', 'coordinates', '[[[25.0,81.66]')
20
+ end
21
+ end
22
+
23
+ context 'with an invalid geometry' do
24
+ it 'returns a default GeoJSON extent' do
25
+ expect(described_class.new(invalid_geom).geojson).to include('coordinates', '-180.0,90.0')
26
+ end
27
+ end
28
+
29
+ context 'with a non-polygon geometry' do
30
+ before do
31
+ allow(RGeo::GeoJSON).to receive(:encode).and_raise(RGeo::Error::InvalidGeometry)
32
+ end
33
+
34
+ it 'returns a default GeoJSON extent' do
35
+ expect(described_class.new(non_polygon_geom).geojson).to include('coordinates', '-180.0,90.0')
36
+ end
37
+ end
38
+ end
39
+
40
+ describe '#bounding_box' do
41
+ context 'with standard WKT geometry' do
42
+ it 'returns a bounding_box' do
43
+ expect(described_class.new(wkt_geom).bounding_box).to eq '-180.0, -12.93, 180.0, 81.66'
44
+ end
45
+ end
46
+
47
+ context 'with envelope syntax geometry' do
48
+ it 'returns a bounding_box' do
49
+ expect(described_class.new(envelope_geom).bounding_box).to eq '-168.35, -12.93, 25.0, 81.66'
50
+ end
51
+ end
52
+
53
+ context 'with an invalid geometry' do
54
+ it 'returns a default GeoJSON extent' do
55
+ expect(described_class.new(invalid_geom).bounding_box).to include('coordinates', '-180.0,90.0')
56
+ end
57
+ end
58
+ end
59
+ end
@@ -26,6 +26,18 @@ describe Geoblacklight::ItemViewer do
26
26
  expect(item_viewer.viewer_preference).to eq wms: 'http://www.example.com/wms'
27
27
  end
28
28
  end
29
+ describe 'for tms reference' do
30
+ let(:document_attributes) do
31
+ {
32
+ references_field => {
33
+ 'https://wiki.osgeo.org/wiki/Tile_Map_Service_Specification' => 'http://www.example.com/tms'
34
+ }.to_json
35
+ }
36
+ end
37
+ it 'tms if tms is present' do
38
+ expect(item_viewer.viewer_preference).to eq tms: 'http://www.example.com/tms'
39
+ end
40
+ end
29
41
  describe 'for iiif only reference' do
30
42
  let(:document_attributes) do
31
43
  {
@@ -3,7 +3,7 @@ require 'spec_helper'
3
3
 
4
4
  describe Geoblacklight::References do
5
5
  let(:references_field) { Settings.FIELDS.REFERENCES }
6
- let(:file_format_field) { Settings.FIELDS.FILE_FORMAT }
6
+ let(:file_format_field) { Settings.FIELDS.FORMAT }
7
7
  let(:typical_ogp_shapefile) do
8
8
  described_class.new(
9
9
  SolrDocument.new(
@@ -76,7 +76,7 @@ describe Geoblacklight::References do
76
76
  file_format_field => 'Raster',
77
77
  references_field => {
78
78
  'http://schema.org/url' => 'http://arks.princeton.edu/ark:/88435/02870w62c',
79
- 'http://iiif.io/api/image' => 'http://libimages.princeton.edu/loris2/pudl0076%2Fmap_pownall%2F00000001.jp2/info.json'
79
+ 'http://iiif.io/api/image' => 'https://iiif-cloud.princeton.edu/iiif/2/6c%2F52%2F12%2F6c5212e81bc845f59bb1cdc740a88bad%2Fintermediate_file/info.json'
80
80
  }.to_json
81
81
  )
82
82
  )
@@ -135,7 +135,7 @@ describe Geoblacklight::References do
135
135
  let(:settings_klass) { class_double('Settings').as_stubbed_const }
136
136
  before do
137
137
  allow(settings_klass).to receive(:METADATA_SHOWN).and_return %w[iso19139 mods]
138
- allow(settings_klass).to receive(:FIELDS).and_return OpenStruct.new(FILE_FORMAT: 'dc_format_s')
138
+ allow(settings_klass).to receive(:FIELDS).and_return OpenStruct.new(FORMAT: 'dc_format_s')
139
139
  end
140
140
  it 'is ordered by the configuration' do
141
141
  expect(complex_shapefile.shown_metadata_refs.first.type.to_s).to eq 'iso19139'
@@ -3,12 +3,12 @@ require 'spec_helper'
3
3
 
4
4
  describe Geoblacklight::Relation::Ancestors do
5
5
  let(:repository) { Blacklight::Solr::Repository.new(CatalogController.blacklight_config) }
6
- let(:ancestors) { described_class.new('nyu_2451_34502', repository) }
7
- let(:empty_ancestors) { described_class.new('harvard-g7064-s2-1834-k3', repository) }
6
+ let(:ancestors) { described_class.new('nyu_2451_34502', Settings.FIELDS.SOURCE, repository) }
7
+ let(:empty_ancestors) { described_class.new('harvard-g7064-s2-1834-k3', Settings.FIELDS.SOURCE, repository) }
8
8
 
9
9
  describe '#create_search_params' do
10
10
  it 'assembles the correct search params for finding ancestor documents' do
11
- expect(ancestors.create_search_params).to eq(fq: ["{!join from=#{Settings.FIELDS.SOURCE} to=layer_slug_s}layer_slug_s:nyu_2451_34502"], fl: [Settings.FIELDS.TITLE.to_s, 'layer_slug_s', 'layer_geom_type_s'])
11
+ expect(ancestors.create_search_params).to eq(fq: ["{!join from=#{Settings.FIELDS.SOURCE} to=#{Settings.FIELDS.ID}}#{Settings.FIELDS.ID}:nyu_2451_34502"], fl: [Settings.FIELDS.TITLE.to_s, Settings.FIELDS.ID, Settings.FIELDS.RESOURCE_TYPE])
12
12
  end
13
13
  end
14
14
 
@@ -3,12 +3,12 @@ require 'spec_helper'
3
3
 
4
4
  describe Geoblacklight::Relation::Descendants do
5
5
  let(:repository) { Blacklight::Solr::Repository.new(CatalogController.blacklight_config) }
6
- let(:descendants) { described_class.new('nyu_2451_34636', repository) }
7
- let(:empty_descendants) { described_class.new('harvard-g7064-s2-1834-k3', repository) }
6
+ let(:descendants) { described_class.new('nyu_2451_34636', Settings.FIELDS.SOURCE, repository) }
7
+ let(:empty_descendants) { described_class.new('harvard-g7064-s2-1834-k3', Settings.FIELDS.SOURCE, repository) }
8
8
 
9
9
  describe '#create_search_params' do
10
10
  it 'assembles the correct search params for finding descendant documents' do
11
- expect(descendants.create_search_params).to eq(fq: "#{Settings.FIELDS.SOURCE}:nyu_2451_34636", fl: [Settings.FIELDS.TITLE.to_s, 'layer_slug_s', 'layer_geom_type_s'])
11
+ expect(descendants.create_search_params).to eq(fq: "#{Settings.FIELDS.SOURCE}:nyu_2451_34636", fl: [Settings.FIELDS.TITLE.to_s, Settings.FIELDS.ID, Settings.FIELDS.RESOURCE_TYPE])
12
12
  end
13
13
  end
14
14
 
@@ -11,34 +11,49 @@ describe Geoblacklight::Relation::RelationResponse do
11
11
  end
12
12
  end
13
13
 
14
- describe '#ancestors' do
14
+ describe '#method_missing' do
15
15
  it 'returns a hash of ancestor documents' do
16
- expect(relation_resp.ancestors).to include('numFound')
17
- expect(relation_resp.ancestors).to include('docs')
16
+ expect(relation_resp.SOURCE_ANCESTORS).to include('numFound')
17
+ expect(relation_resp.SOURCE_ANCESTORS).to include('docs')
18
18
  end
19
- end
20
19
 
21
- describe '#descendants' do
22
20
  it 'returns a hash of descendant documents' do
23
- expect(relation_resp.ancestors).to include('numFound')
24
- expect(relation_resp.ancestors).to include('docs')
21
+ expect(relation_resp.SOURCE_DESCENDANTS).to include('numFound')
22
+ expect(relation_resp.SOURCE_DESCENDANTS).to include('docs')
23
+ end
24
+
25
+ it 'raises no method error' do
26
+ expect { relation_resp.FAIL }.to raise_error NoMethodError
25
27
  end
26
28
  end
27
29
 
28
- describe '#empty?' do
29
- it 'returns false if document has ancestors or descendants' do
30
- expect(relation_resp.empty?).to be false
30
+ describe '#respond_to_missing?' do
31
+ it 'returns true for configured relationships' do
32
+ Settings.RELATIONSHIPS_SHOWN.each_key do |key|
33
+ expect(relation_resp).to respond_to(key)
34
+ end
31
35
  end
32
- it 'returns true if document has neither ancestors nor descendants' do
33
- expect(empty_relation_resp.empty?).to be true
36
+
37
+ it 'returns false for non-configured options' do
38
+ expect(relation_resp).not_to respond_to('fail')
34
39
  end
40
+ end
35
41
 
36
- context 'with a layer slug containing a colon' do
37
- let(:empty_relation_resp) { described_class.new('uva-Norfolk:police_point', repository) }
42
+ describe '#query_type' do
43
+ it 'fails for a bad query type request' do
44
+ Settings.add_source!({
45
+ RELATIONSHIPS_SHOWN: {
46
+ BAD: {
47
+ field: 'dct_source_sm',
48
+ query_type: 'bad_query_type',
49
+ icon: 'pagelines-brands',
50
+ label: 'geoblacklight.relations.ancestor'
51
+ }
52
+ }
53
+ })
54
+ Settings.reload!
38
55
 
39
- it 'returns true if document has neither ancestors nor descendants' do
40
- expect(empty_relation_resp.empty?).to be true
41
- end
56
+ expect { relation_resp.BAD }.to raise_error(ArgumentError)
42
57
  end
43
58
  end
44
59
  end
@@ -3,8 +3,8 @@ require 'spec_helper'
3
3
 
4
4
  describe Geoblacklight::SolrDocument do
5
5
  let(:document) { SolrDocument.new(document_attributes) }
6
- let(:rights_field) { Settings.FIELDS.RIGHTS }
7
- let(:provenance_field) { Settings.FIELDS.PROVENANCE }
6
+ let(:rights_field) { Settings.FIELDS.ACCESS_RIGHTS }
7
+ let(:provider_field) { Settings.FIELDS.PROVIDER }
8
8
  let(:references_field) { Settings.FIELDS.REFERENCES }
9
9
  describe '#available?' do
10
10
  let(:document_attributes) { {} }
@@ -80,7 +80,7 @@ describe Geoblacklight::SolrDocument do
80
80
  end
81
81
  describe '#same_institution?' do
82
82
  describe 'within the same institution' do
83
- let(:document_attributes) { { provenance_field => 'STANFORD' } }
83
+ let(:document_attributes) { { provider_field => 'STANFORD' } }
84
84
  it 'is true' do
85
85
  allow(Settings).to receive('Institution').and_return('Stanford')
86
86
  expect(document.same_institution?).to be_truthy
@@ -91,7 +91,7 @@ describe Geoblacklight::SolrDocument do
91
91
  end
92
92
  end
93
93
  describe 'within a different institution' do
94
- let(:document_attributes) { { provenance_field => 'MIT' } }
94
+ let(:document_attributes) { { provider_field => 'MIT' } }
95
95
  it 'is false' do
96
96
  allow(Settings).to receive('Institution').and_return('Stanford')
97
97
  expect(document.same_institution?).to be_falsey
data/spec/spec_helper.rb CHANGED
@@ -79,4 +79,6 @@ RSpec.configure do |config|
79
79
  end
80
80
 
81
81
  config.include Devise::Test::ControllerHelpers, type: :controller
82
+ config.include ViewComponent::TestHelpers, type: :component
83
+ config.include ViewComponentCapybaraTestHelpers, type: :component
82
84
  end
@@ -0,0 +1,8 @@
1
+ # frozen_string_literal: true
2
+
3
+ module ViewComponentCapybaraTestHelpers
4
+ # Work around for https://github.com/teamcapybara/capybara/issues/2466
5
+ def render_inline_to_capybara_node(component)
6
+ Capybara::Node::Simple.new(render_inline(component).to_s)
7
+ end
8
+ end
@@ -1 +1,2 @@
1
1
  gem 'sprockets', '< 4'
2
+ gem 'view_component', '!= 2.26.0'
@@ -14,8 +14,6 @@ class TestAppGenerator < Rails::Generators::Base
14
14
 
15
15
  def add_gems
16
16
  gem 'blacklight'
17
- gem 'teaspoon'
18
- gem 'teaspoon-jasmine'
19
17
  gem 'webpacker' unless Rails.version.to_s.start_with? '6.1.'
20
18
  Bundler.with_clean_env do
21
19
  run 'bundle install'
@@ -42,9 +40,4 @@ class TestAppGenerator < Rails::Generators::Base
42
40
  FileUtils.mkdir_p 'spec/fixtures/metadata'
43
41
  directory 'metadata', 'spec/fixtures/metadata'
44
42
  end
45
-
46
- def install_teaspoon
47
- # Implicit copy of GeoBlacklight checked-in teaspoon_env.rb
48
- copy_file '../teaspoon_env.rb', 'spec/teaspoon_env.rb'
49
- end
50
43
  end
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
  require 'spec_helper'
3
3
 
4
- describe 'catalog/_document_split.html.erb' do
4
+ describe 'catalog/_document_split.html.erb', type: :view do
5
5
  # TODO: js plugin refactor really needs to be redone so that the views can be testable
6
6
  end
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
  require 'spec_helper'
3
3
 
4
- describe 'catalog/_document_split.html.erb' do
4
+ describe 'catalog/_document_split.html.erb', type: :view do
5
5
  # TODO: js plugin refactor really needs to be redone so that the views can be testable
6
6
  end
data/template.rb CHANGED
@@ -2,6 +2,7 @@
2
2
  gem 'blacklight', '~> 7.0'
3
3
  gem 'geoblacklight', '~> 3.0'
4
4
  gem 'webpacker' unless Rails.version.to_s.start_with? '6.1.'
5
+ gem 'sprockets', '< 4.0' # Use sprockets less than 4.0, let webpacker users set this up themselves
5
6
 
6
7
  # Hack for https://github.com/rails/rails/issues/35153
7
8
  # Adapted from https://github.com/projectblacklight/blacklight/pull/2065
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: 3.2.0
4
+ version: 4.0.0.pre.alpha
5
5
  platform: ruby
6
6
  authors:
7
7
  - Mike Graves
@@ -11,7 +11,7 @@ authors:
11
11
  autorequire:
12
12
  bindir: bin
13
13
  cert_chain: []
14
- date: 2021-02-04 00:00:00.000000000 Z
14
+ date: 2021-09-03 00:00:00.000000000 Z
15
15
  dependencies:
16
16
  - !ruby/object:Gem::Dependency
17
17
  name: rails
@@ -39,14 +39,14 @@ dependencies:
39
39
  requirements:
40
40
  - - "~>"
41
41
  - !ruby/object:Gem::Version
42
- version: '7.0'
42
+ version: '7.8'
43
43
  type: :runtime
44
44
  prerelease: false
45
45
  version_requirements: !ruby/object:Gem::Requirement
46
46
  requirements:
47
47
  - - "~>"
48
48
  - !ruby/object:Gem::Version
49
- version: '7.0'
49
+ version: '7.8'
50
50
  - !ruby/object:Gem::Dependency
51
51
  name: config
52
52
  requirement: !ruby/object:Gem::Requirement
@@ -159,6 +159,20 @@ dependencies:
159
159
  - - ">="
160
160
  - !ruby/object:Gem::Version
161
161
  version: '0'
162
+ - !ruby/object:Gem::Dependency
163
+ name: rgeo-geojson
164
+ requirement: !ruby/object:Gem::Requirement
165
+ requirements:
166
+ - - ">="
167
+ - !ruby/object:Gem::Version
168
+ version: '0'
169
+ type: :runtime
170
+ prerelease: false
171
+ version_requirements: !ruby/object:Gem::Requirement
172
+ requirements:
173
+ - - ">="
174
+ - !ruby/object:Gem::Version
175
+ version: '0'
162
176
  - !ruby/object:Gem::Dependency
163
177
  name: solr_wrapper
164
178
  requirement: !ruby/object:Gem::Requirement
@@ -272,7 +286,21 @@ dependencies:
272
286
  - !ruby/object:Gem::Version
273
287
  version: '1.3'
274
288
  - !ruby/object:Gem::Dependency
275
- name: bixby
289
+ name: simplecov
290
+ requirement: !ruby/object:Gem::Requirement
291
+ requirements:
292
+ - - "~>"
293
+ - !ruby/object:Gem::Version
294
+ version: 0.17.1
295
+ type: :development
296
+ prerelease: false
297
+ version_requirements: !ruby/object:Gem::Requirement
298
+ requirements:
299
+ - - "~>"
300
+ - !ruby/object:Gem::Version
301
+ version: 0.17.1
302
+ - !ruby/object:Gem::Dependency
303
+ name: foreman
276
304
  requirement: !ruby/object:Gem::Requirement
277
305
  requirements:
278
306
  - - ">="
@@ -286,47 +314,47 @@ dependencies:
286
314
  - !ruby/object:Gem::Version
287
315
  version: '0'
288
316
  - !ruby/object:Gem::Dependency
289
- name: simplecov
317
+ name: rubocop
290
318
  requirement: !ruby/object:Gem::Requirement
291
319
  requirements:
292
320
  - - "~>"
293
321
  - !ruby/object:Gem::Version
294
- version: 0.17.1
322
+ version: '1.10'
295
323
  type: :development
296
324
  prerelease: false
297
325
  version_requirements: !ruby/object:Gem::Requirement
298
326
  requirements:
299
327
  - - "~>"
300
328
  - !ruby/object:Gem::Version
301
- version: 0.17.1
329
+ version: '1.10'
302
330
  - !ruby/object:Gem::Dependency
303
- name: foreman
331
+ name: rubocop-rails
304
332
  requirement: !ruby/object:Gem::Requirement
305
333
  requirements:
306
- - - ">="
334
+ - - "~>"
307
335
  - !ruby/object:Gem::Version
308
- version: '0'
336
+ version: '2.9'
309
337
  type: :development
310
338
  prerelease: false
311
339
  version_requirements: !ruby/object:Gem::Requirement
312
340
  requirements:
313
- - - ">="
341
+ - - "~>"
314
342
  - !ruby/object:Gem::Version
315
- version: '0'
343
+ version: '2.9'
316
344
  - !ruby/object:Gem::Dependency
317
- name: teaspoon
345
+ name: rubocop-rspec
318
346
  requirement: !ruby/object:Gem::Requirement
319
347
  requirements:
320
- - - ">="
348
+ - - "~>"
321
349
  - !ruby/object:Gem::Version
322
- version: '0'
350
+ version: '2.2'
323
351
  type: :development
324
352
  prerelease: false
325
353
  version_requirements: !ruby/object:Gem::Requirement
326
354
  requirements:
327
- - - ">="
355
+ - - "~>"
328
356
  - !ruby/object:Gem::Version
329
- version: '0'
357
+ version: '2.2'
330
358
  description: GeoBlacklight provides a world-class discovery platform for geospatial
331
359
  (GIS) holdings. It is an open collaborative project aiming to build off of the successes
332
360
  of the Blacklight Solr-powered discovery interface and the multi-institutional OpenGeoportal
@@ -341,8 +369,8 @@ executables:
341
369
  extensions: []
342
370
  extra_rdoc_files: []
343
371
  files:
344
- - ".circleci/config.yml"
345
372
  - ".github/ISSUE_TEMPLATE.md"
373
+ - ".github/workflows/ruby.yml"
346
374
  - ".gitignore"
347
375
  - ".gitmodules"
348
376
  - ".hound.yml"
@@ -388,6 +416,7 @@ files:
388
416
  - app/assets/images/blacklight/maryland.svg
389
417
  - app/assets/images/blacklight/massgis.svg
390
418
  - app/assets/images/blacklight/metadata.svg
419
+ - app/assets/images/blacklight/michigan-state-university.svg
391
420
  - app/assets/images/blacklight/michigan-state.svg
392
421
  - app/assets/images/blacklight/michigan.svg
393
422
  - app/assets/images/blacklight/minnesota.svg
@@ -401,11 +430,13 @@ files:
401
430
  - app/assets/images/blacklight/pagelines-brands.svg
402
431
  - app/assets/images/blacklight/paper-map.svg
403
432
  - app/assets/images/blacklight/penn-state.svg
433
+ - app/assets/images/blacklight/pennsylvania-state-university.svg
404
434
  - app/assets/images/blacklight/point.svg
405
435
  - app/assets/images/blacklight/polygon.svg
406
436
  - app/assets/images/blacklight/polyline.svg
407
437
  - app/assets/images/blacklight/princeton.svg
408
438
  - app/assets/images/blacklight/public.svg
439
+ - app/assets/images/blacklight/purdue-university.svg
409
440
  - app/assets/images/blacklight/purdue.svg
410
441
  - app/assets/images/blacklight/raster.svg
411
442
  - app/assets/images/blacklight/restricted.svg
@@ -414,11 +445,21 @@ files:
414
445
  - app/assets/images/blacklight/table.svg
415
446
  - app/assets/images/blacklight/tags.svg
416
447
  - app/assets/images/blacklight/texas.svg
448
+ - app/assets/images/blacklight/the-ohio-state-university.svg
417
449
  - app/assets/images/blacklight/tufts.svg
418
450
  - app/assets/images/blacklight/ucla.svg
451
+ - app/assets/images/blacklight/university-of-chicago.svg
452
+ - app/assets/images/blacklight/university-of-illinois-urbana-champaign.svg
453
+ - app/assets/images/blacklight/university-of-iowa.svg
454
+ - app/assets/images/blacklight/university-of-maryland.svg
455
+ - app/assets/images/blacklight/university-of-michigan.svg
456
+ - app/assets/images/blacklight/university-of-minnesota.svg
457
+ - app/assets/images/blacklight/university-of-nebraska-lincoln.svg
458
+ - app/assets/images/blacklight/university-of-wisconsin-madison.svg
419
459
  - app/assets/images/blacklight/uva.svg
420
460
  - app/assets/images/blacklight/web_services.svg
421
461
  - app/assets/images/blacklight/wisconsin.svg
462
+ - app/assets/images/favicon.ico
422
463
  - app/assets/javascripts/geoblacklight/basemaps.js
423
464
  - app/assets/javascripts/geoblacklight/controls.js
424
465
  - app/assets/javascripts/geoblacklight/controls/opacity.js
@@ -427,6 +468,7 @@ files:
427
468
  - app/assets/javascripts/geoblacklight/downloaders/hgl_downloader.js
428
469
  - app/assets/javascripts/geoblacklight/geoblacklight.js
429
470
  - app/assets/javascripts/geoblacklight/modules.js
471
+ - app/assets/javascripts/geoblacklight/modules/bookmarks.js
430
472
  - app/assets/javascripts/geoblacklight/modules/download.js
431
473
  - app/assets/javascripts/geoblacklight/modules/geosearch.js
432
474
  - app/assets/javascripts/geoblacklight/modules/help_text.js
@@ -451,6 +493,7 @@ files:
451
493
  - app/assets/javascripts/geoblacklight/viewers/index_map.js
452
494
  - app/assets/javascripts/geoblacklight/viewers/map.js
453
495
  - app/assets/javascripts/geoblacklight/viewers/oembed.js
496
+ - app/assets/javascripts/geoblacklight/viewers/tms.js
454
497
  - app/assets/javascripts/geoblacklight/viewers/viewer.js
455
498
  - app/assets/javascripts/geoblacklight/viewers/wms.js
456
499
  - app/assets/stylesheets/geoblacklight/geoblacklight.scss
@@ -476,12 +519,15 @@ files:
476
519
  - app/assets/stylesheets/geoblacklight/modules/sidebar.scss
477
520
  - app/assets/stylesheets/geoblacklight/modules/toolbar.scss
478
521
  - app/assets/stylesheets/geoblacklight/modules/web_services.scss
522
+ - app/components/geoblacklight/homepage_feature_facet_component.html.erb
523
+ - app/components/geoblacklight/homepage_feature_facet_component.rb
479
524
  - app/controllers/download_controller.rb
480
525
  - app/controllers/relation_controller.rb
481
526
  - app/controllers/wms_controller.rb
482
527
  - app/helpers/arcgis_helper.rb
483
528
  - app/helpers/blacklight_helper.rb
484
529
  - app/helpers/carto_helper.rb
530
+ - app/helpers/geoblacklight/geoblacklight_helper_behavior.rb
485
531
  - app/helpers/geoblacklight_helper.rb
486
532
  - app/models/concerns/geoblacklight/solr_document.rb
487
533
  - app/models/concerns/geoblacklight/solr_document/arcgis.rb
@@ -495,15 +541,12 @@ files:
495
541
  - app/views/catalog/_carto.html.erb
496
542
  - app/views/catalog/_citation.html.erb
497
543
  - app/views/catalog/_data_dictionary.html.erb
498
- - app/views/catalog/_document_action.html.erb
499
544
  - app/views/catalog/_document_split.html.erb
500
545
  - app/views/catalog/_download_generated_link.html.erb
501
546
  - app/views/catalog/_download_link.html.erb
502
547
  - app/views/catalog/_downloads_generated.html.erb
503
548
  - app/views/catalog/_downloads_primary.html.erb
504
549
  - app/views/catalog/_downloads_secondary.html.erb
505
- - app/views/catalog/_facet_tag_item.html.erb
506
- - app/views/catalog/_facet_tag_layout.html.erb
507
550
  - app/views/catalog/_header_icons.html.erb
508
551
  - app/views/catalog/_home_text.html.erb
509
552
  - app/views/catalog/_icon_facet.html.erb
@@ -528,15 +571,17 @@ files:
528
571
  - app/views/catalog/metadata/_missing.html.erb
529
572
  - app/views/catalog/web_services.html.erb
530
573
  - app/views/download/hgl.html.erb
531
- - app/views/relation/_ancestors.html.erb
532
- - app/views/relation/_descendants.html.erb
574
+ - app/views/relation/_relations.html.erb
533
575
  - app/views/relation/index.html.erb
534
576
  - app/views/relation/index.json.jbuilder
535
577
  - app/views/shared/_header_navbar.html.erb
578
+ - babel.config.json
536
579
  - bin/coverage.rb
580
+ - config/initializers/new_gbl_settings_defaults_3_4.yml
537
581
  - config/initializers/rails_config.rb
538
582
  - config/locales/geoblacklight.en.yml
539
583
  - geoblacklight.gemspec
584
+ - jest.config.js
540
585
  - lib/generators/geoblacklight/assets_generator.rb
541
586
  - lib/generators/geoblacklight/install_generator.rb
542
587
  - lib/generators/geoblacklight/templates/Procfile
@@ -547,6 +592,7 @@ files:
547
592
  - lib/generators/geoblacklight/templates/assets/geoblacklight.js
548
593
  - lib/generators/geoblacklight/templates/catalog_controller.rb
549
594
  - lib/generators/geoblacklight/templates/package.json
595
+ - lib/generators/geoblacklight/templates/settings.gbl_v1.yml
550
596
  - lib/generators/geoblacklight/templates/settings.yml
551
597
  - lib/generators/geoblacklight/templates/webpacker.yml
552
598
  - lib/generators/geoblacklight/webpacker_generator.rb
@@ -562,7 +608,7 @@ files:
562
608
  - lib/geoblacklight/download/shapefile_download.rb
563
609
  - lib/geoblacklight/engine.rb
564
610
  - lib/geoblacklight/exceptions.rb
565
- - lib/geoblacklight/geoblacklight_helper_behavior.rb
611
+ - lib/geoblacklight/geometry.rb
566
612
  - lib/geoblacklight/item_viewer.rb
567
613
  - lib/geoblacklight/metadata.rb
568
614
  - lib/geoblacklight/metadata/base.rb
@@ -588,15 +634,9 @@ files:
588
634
  - lib/geoblacklight/wms_layer/feature_info_response.rb
589
635
  - lib/tasks/geoblacklight.rake
590
636
  - package.json
591
- - schema/format-values.md
592
- - schema/geoblacklight-schema-deprecated.md
593
- - schema/geoblacklight-schema.json
594
- - schema/geoblacklight-schema.md
595
- - schema/geometry-type-values.md
596
- - schema/references.md
597
- - schema/schema-commentary.md
598
- - schema/subjects.md
599
- - schema/type-values.md
637
+ - schema/geoblacklight-schema-1.0.json
638
+ - schema/geoblacklight-schema-aardvark.json
639
+ - setupJest.js
600
640
  - solr/conf/_rest_managed.json
601
641
  - solr/conf/admin-extra.html
602
642
  - solr/conf/core.properties
@@ -614,6 +654,8 @@ files:
614
654
  - solr/conf/xslt/example_atom.xsl
615
655
  - solr/conf/xslt/example_rss.xsl
616
656
  - solr/conf/xslt/luke.xsl
657
+ - spec/components/geoblacklight/homepage_feature_facet_component_spec.rb
658
+ - spec/config/initializers/rails_config_spec.rb
617
659
  - spec/controllers/catalog_controller_spec.rb
618
660
  - spec/controllers/download_controller_spec.rb
619
661
  - spec/controllers/relation_controller_spec.rb
@@ -649,6 +691,7 @@ files:
649
691
  - spec/features/sms_spec.rb
650
692
  - spec/features/split_view.html.erb_spec.rb
651
693
  - spec/features/suppressed_records_spec.rb
694
+ - spec/features/tms_spec.rb
652
695
  - spec/features/web_services_modal_spec.rb
653
696
  - spec/fixtures/fgdc/harvard-g7064-s2-1834-k3.xml
654
697
  - spec/fixtures/iso19139/stanford-cg357zz0321.xml
@@ -659,6 +702,7 @@ files:
659
702
  - spec/fixtures/solr_documents/actual-point1.json
660
703
  - spec/fixtures/solr_documents/actual-polygon1.json
661
704
  - spec/fixtures/solr_documents/actual-raster1.json
705
+ - spec/fixtures/solr_documents/all-relationships.json
662
706
  - spec/fixtures/solr_documents/baruch_ancestor1.json
663
707
  - spec/fixtures/solr_documents/baruch_ancestor2.json
664
708
  - spec/fixtures/solr_documents/baruch_documentation_download.json
@@ -676,10 +720,10 @@ files:
676
720
  - spec/fixtures/solr_documents/index-map-polygon.json
677
721
  - spec/fixtures/solr_documents/index-map-stanford.json
678
722
  - spec/fixtures/solr_documents/index_map_point.json
679
- - spec/fixtures/solr_documents/metadata_no_dct_provenance_s.json
680
- - spec/fixtures/solr_documents/metadata_no_layer_geom_type_s.json
681
- - spec/fixtures/solr_documents/metadata_no_solr_geom.json
723
+ - spec/fixtures/solr_documents/metadata_no_geom.json
724
+ - spec/fixtures/solr_documents/metadata_no_provider.json
682
725
  - spec/fixtures/solr_documents/multiple-downloads.json
726
+ - spec/fixtures/solr_documents/no_locn_geometry.json
683
727
  - spec/fixtures/solr_documents/no_spatial.json
684
728
  - spec/fixtures/solr_documents/oembed.json
685
729
  - spec/fixtures/solr_documents/princeton-child1.json
@@ -691,20 +735,20 @@ files:
691
735
  - spec/fixtures/solr_documents/public_iiif_princeton.json
692
736
  - spec/fixtures/solr_documents/public_polygon_mit.json
693
737
  - spec/fixtures/solr_documents/restricted-line.json
738
+ - spec/fixtures/solr_documents/the-related-record.json
739
+ - spec/fixtures/solr_documents/tms.json
694
740
  - spec/fixtures/solr_documents/umn_metro_result1.json
695
741
  - spec/fixtures/solr_documents/umn_state_result1.json
696
742
  - spec/fixtures/solr_documents/umn_state_result2.json
697
743
  - spec/fixtures/solr_documents/uva_slug_colon.json
698
744
  - spec/helpers/arcgis_helper_spec.rb
699
745
  - spec/helpers/carto_helper_spec.rb
746
+ - spec/helpers/geoblacklight/geoblacklight_helper_behavior_spec.rb
700
747
  - spec/helpers/geoblacklight_helper_spec.rb
701
- - spec/javascripts/geoblacklight/viewers/esri/tiled_map_layer_spec.js
702
748
  - spec/javascripts/geoblacklight_spec.js
703
749
  - spec/javascripts/metadata_download_button_spec.js
704
- - spec/javascripts/spec_helper.js
705
750
  - spec/javascripts/util_spec.js
706
751
  - spec/lib/geoblacklight/bounding_box_spec.rb
707
- - spec/lib/geoblacklight/controller_override_spec.rb
708
752
  - spec/lib/geoblacklight/document_presenter_spec.rb
709
753
  - spec/lib/geoblacklight/download/geojson_download_spec.rb
710
754
  - spec/lib/geoblacklight/download/geotiff_download_spec.rb
@@ -712,7 +756,7 @@ files:
712
756
  - spec/lib/geoblacklight/download/kmz_download_spec.rb
713
757
  - spec/lib/geoblacklight/download/shapefile_download_spec.rb
714
758
  - spec/lib/geoblacklight/download_spec.rb
715
- - spec/lib/geoblacklight/geoblacklight_helper_behavior_spec.rb
759
+ - spec/lib/geoblacklight/geometry_spec.rb
716
760
  - spec/lib/geoblacklight/item_viewer_spec.rb
717
761
  - spec/lib/geoblacklight/metadata/base_spec.rb
718
762
  - spec/lib/geoblacklight/metadata/html_spec.rb
@@ -741,8 +785,8 @@ files:
741
785
  - spec/support/features.rb
742
786
  - spec/support/features/session_helpers.rb
743
787
  - spec/support/fixtures.rb
788
+ - spec/support/view_component_capybara_test_helpers.rb
744
789
  - spec/tasks/geoblacklight_spec.rb
745
- - spec/teaspoon_env.rb
746
790
  - spec/test_app_templates/Gemfile.extra
747
791
  - spec/test_app_templates/lib/generators/test_app_generator.rb
748
792
  - spec/test_app_templates/metadata/fgdc.html
@@ -788,11 +832,13 @@ required_rubygems_version: !ruby/object:Gem::Requirement
788
832
  - !ruby/object:Gem::Version
789
833
  version: 2.5.2
790
834
  requirements: []
791
- rubygems_version: 3.1.4
835
+ rubygems_version: 3.2.15
792
836
  signing_key:
793
837
  specification_version: 4
794
838
  summary: A discovery platform for geospatial holdings
795
839
  test_files:
840
+ - spec/components/geoblacklight/homepage_feature_facet_component_spec.rb
841
+ - spec/config/initializers/rails_config_spec.rb
796
842
  - spec/controllers/catalog_controller_spec.rb
797
843
  - spec/controllers/download_controller_spec.rb
798
844
  - spec/controllers/relation_controller_spec.rb
@@ -828,6 +874,7 @@ test_files:
828
874
  - spec/features/sms_spec.rb
829
875
  - spec/features/split_view.html.erb_spec.rb
830
876
  - spec/features/suppressed_records_spec.rb
877
+ - spec/features/tms_spec.rb
831
878
  - spec/features/web_services_modal_spec.rb
832
879
  - spec/fixtures/fgdc/harvard-g7064-s2-1834-k3.xml
833
880
  - spec/fixtures/iso19139/stanford-cg357zz0321.xml
@@ -838,6 +885,7 @@ test_files:
838
885
  - spec/fixtures/solr_documents/actual-point1.json
839
886
  - spec/fixtures/solr_documents/actual-polygon1.json
840
887
  - spec/fixtures/solr_documents/actual-raster1.json
888
+ - spec/fixtures/solr_documents/all-relationships.json
841
889
  - spec/fixtures/solr_documents/baruch_ancestor1.json
842
890
  - spec/fixtures/solr_documents/baruch_ancestor2.json
843
891
  - spec/fixtures/solr_documents/baruch_documentation_download.json
@@ -855,10 +903,10 @@ test_files:
855
903
  - spec/fixtures/solr_documents/index-map-polygon.json
856
904
  - spec/fixtures/solr_documents/index-map-stanford.json
857
905
  - spec/fixtures/solr_documents/index_map_point.json
858
- - spec/fixtures/solr_documents/metadata_no_dct_provenance_s.json
859
- - spec/fixtures/solr_documents/metadata_no_layer_geom_type_s.json
860
- - spec/fixtures/solr_documents/metadata_no_solr_geom.json
906
+ - spec/fixtures/solr_documents/metadata_no_geom.json
907
+ - spec/fixtures/solr_documents/metadata_no_provider.json
861
908
  - spec/fixtures/solr_documents/multiple-downloads.json
909
+ - spec/fixtures/solr_documents/no_locn_geometry.json
862
910
  - spec/fixtures/solr_documents/no_spatial.json
863
911
  - spec/fixtures/solr_documents/oembed.json
864
912
  - spec/fixtures/solr_documents/princeton-child1.json
@@ -870,20 +918,20 @@ test_files:
870
918
  - spec/fixtures/solr_documents/public_iiif_princeton.json
871
919
  - spec/fixtures/solr_documents/public_polygon_mit.json
872
920
  - spec/fixtures/solr_documents/restricted-line.json
921
+ - spec/fixtures/solr_documents/the-related-record.json
922
+ - spec/fixtures/solr_documents/tms.json
873
923
  - spec/fixtures/solr_documents/umn_metro_result1.json
874
924
  - spec/fixtures/solr_documents/umn_state_result1.json
875
925
  - spec/fixtures/solr_documents/umn_state_result2.json
876
926
  - spec/fixtures/solr_documents/uva_slug_colon.json
877
927
  - spec/helpers/arcgis_helper_spec.rb
878
928
  - spec/helpers/carto_helper_spec.rb
929
+ - spec/helpers/geoblacklight/geoblacklight_helper_behavior_spec.rb
879
930
  - spec/helpers/geoblacklight_helper_spec.rb
880
- - spec/javascripts/geoblacklight/viewers/esri/tiled_map_layer_spec.js
881
931
  - spec/javascripts/geoblacklight_spec.js
882
932
  - spec/javascripts/metadata_download_button_spec.js
883
- - spec/javascripts/spec_helper.js
884
933
  - spec/javascripts/util_spec.js
885
934
  - spec/lib/geoblacklight/bounding_box_spec.rb
886
- - spec/lib/geoblacklight/controller_override_spec.rb
887
935
  - spec/lib/geoblacklight/document_presenter_spec.rb
888
936
  - spec/lib/geoblacklight/download/geojson_download_spec.rb
889
937
  - spec/lib/geoblacklight/download/geotiff_download_spec.rb
@@ -891,7 +939,7 @@ test_files:
891
939
  - spec/lib/geoblacklight/download/kmz_download_spec.rb
892
940
  - spec/lib/geoblacklight/download/shapefile_download_spec.rb
893
941
  - spec/lib/geoblacklight/download_spec.rb
894
- - spec/lib/geoblacklight/geoblacklight_helper_behavior_spec.rb
942
+ - spec/lib/geoblacklight/geometry_spec.rb
895
943
  - spec/lib/geoblacklight/item_viewer_spec.rb
896
944
  - spec/lib/geoblacklight/metadata/base_spec.rb
897
945
  - spec/lib/geoblacklight/metadata/html_spec.rb
@@ -920,8 +968,8 @@ test_files:
920
968
  - spec/support/features.rb
921
969
  - spec/support/features/session_helpers.rb
922
970
  - spec/support/fixtures.rb
971
+ - spec/support/view_component_capybara_test_helpers.rb
923
972
  - spec/tasks/geoblacklight_spec.rb
924
- - spec/teaspoon_env.rb
925
973
  - spec/test_app_templates/Gemfile.extra
926
974
  - spec/test_app_templates/lib/generators/test_app_generator.rb
927
975
  - spec/test_app_templates/metadata/fgdc.html