geoblacklight 3.2.0 → 3.3.0

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 (83) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/ruby.yml +142 -0
  3. data/.gitignore +8 -0
  4. data/.rubocop.yml +9 -10
  5. data/.rubocop_todo.yml +356 -26
  6. data/README.md +2 -2
  7. data/Rakefile +12 -4
  8. data/app/assets/images/favicon.ico +0 -0
  9. data/app/assets/javascripts/geoblacklight/geoblacklight.js +18 -1
  10. data/app/assets/javascripts/geoblacklight/modules/bookmarks.js +43 -0
  11. data/app/assets/javascripts/geoblacklight/modules/metadata_download_button.js +6 -1
  12. data/app/assets/javascripts/geoblacklight/modules/results.js +7 -8
  13. data/app/assets/javascripts/geoblacklight/modules/util.js +5 -0
  14. data/app/assets/javascripts/geoblacklight/viewers/esri.js +1 -1
  15. data/app/assets/javascripts/geoblacklight/viewers/index_map.js +1 -1
  16. data/app/assets/javascripts/geoblacklight/viewers/map.js +12 -2
  17. data/app/assets/javascripts/geoblacklight/viewers/tms.js +10 -0
  18. data/app/assets/javascripts/geoblacklight/viewers/wms.js +1 -1
  19. data/app/assets/stylesheets/geoblacklight/modules/results.scss +1 -1
  20. data/app/helpers/geoblacklight_helper.rb +13 -1
  21. data/app/models/concerns/geoblacklight/solr_document.rb +8 -13
  22. data/app/models/concerns/geoblacklight/spatial_search_behavior.rb +3 -3
  23. data/app/views/catalog/_document_split.html.erb +1 -1
  24. data/app/views/catalog/_index_split_default.html.erb +1 -1
  25. data/app/views/catalog/_show_default_viewer_container.html.erb +1 -1
  26. data/app/views/download/hgl.html.erb +13 -11
  27. data/app/views/relation/_ancestors.html.erb +2 -2
  28. data/app/views/relation/_descendants.html.erb +2 -2
  29. data/babel.config.json +4 -0
  30. data/config/initializers/new_gbl_settings_defaults_3_3.yml +10 -0
  31. data/config/initializers/rails_config.rb +4 -0
  32. data/config/locales/geoblacklight.en.yml +4 -0
  33. data/geoblacklight.gemspec +4 -2
  34. data/jest.config.js +25 -0
  35. data/lib/generators/geoblacklight/install_generator.rb +1 -1
  36. data/lib/generators/geoblacklight/templates/catalog_controller.rb +1 -1
  37. data/lib/generators/geoblacklight/templates/settings.yml +20 -11
  38. data/lib/geoblacklight.rb +1 -2
  39. data/lib/geoblacklight/bounding_box.rb +1 -1
  40. data/lib/geoblacklight/constants.rb +1 -0
  41. data/lib/geoblacklight/download/kmz_download.rb +1 -1
  42. data/lib/geoblacklight/geometry.rb +70 -0
  43. data/lib/geoblacklight/item_viewer.rb +5 -1
  44. data/lib/geoblacklight/metadata/base.rb +1 -7
  45. data/lib/geoblacklight/relation/ancestors.rb +2 -2
  46. data/lib/geoblacklight/relation/descendants.rb +1 -1
  47. data/lib/geoblacklight/version.rb +1 -1
  48. data/lib/geoblacklight/wms_layer.rb +1 -4
  49. data/lib/tasks/geoblacklight.rake +5 -0
  50. data/package.json +17 -1
  51. data/setupJest.js +14 -0
  52. data/solr/conf/schema.xml +1 -3
  53. data/spec/config/initializers/rails_config_spec.rb +14 -0
  54. data/spec/controllers/catalog_controller_spec.rb +6 -6
  55. data/spec/features/download_layer_spec.rb +1 -1
  56. data/spec/features/relations_spec.rb +1 -1
  57. data/spec/features/search_results_overlap_ratio_spec.rb +2 -2
  58. data/spec/features/split_view.html.erb_spec.rb +1 -1
  59. data/spec/features/tms_spec.rb +10 -0
  60. data/spec/fixtures/solr_documents/public_iiif_princeton.json +1 -1
  61. data/spec/fixtures/solr_documents/tms.json +29 -0
  62. data/spec/helpers/geoblacklight_helper_spec.rb +30 -4
  63. data/spec/javascripts/geoblacklight_spec.js +0 -6
  64. data/spec/javascripts/metadata_download_button_spec.js +5 -3
  65. data/spec/javascripts/util_spec.js +2 -4
  66. data/spec/lib/geoblacklight/download/kmz_download_spec.rb +2 -2
  67. data/spec/lib/geoblacklight/download_spec.rb +1 -1
  68. data/spec/lib/geoblacklight/geometry_spec.rb +48 -0
  69. data/spec/lib/geoblacklight/item_viewer_spec.rb +12 -0
  70. data/spec/lib/geoblacklight/references_spec.rb +1 -1
  71. data/spec/lib/geoblacklight/relation/ancestors_spec.rb +1 -1
  72. data/spec/lib/geoblacklight/relation/descendants_spec.rb +1 -1
  73. data/spec/test_app_templates/Gemfile.extra +1 -0
  74. data/spec/test_app_templates/lib/generators/test_app_generator.rb +0 -7
  75. data/spec/views/catalog/_document_split.html.erb_spec.rb +1 -1
  76. data/spec/views/catalog/_index_split.html.erb_spec.rb +1 -1
  77. data/template.rb +1 -0
  78. metadata +62 -26
  79. data/.circleci/config.yml +0 -256
  80. data/spec/javascripts/geoblacklight/viewers/esri/tiled_map_layer_spec.js +0 -12
  81. data/spec/javascripts/spec_helper.js +0 -32
  82. data/spec/lib/geoblacklight/controller_override_spec.rb +0 -2
  83. data/spec/teaspoon_env.rb +0 -214
@@ -72,12 +72,12 @@ describe CatalogController, type: :controller do
72
72
  expect(response.body).not_to be_empty
73
73
  response_values = JSON.parse(response.body)
74
74
  expect(response_values).to include 'geoblacklight_version' => '1.0'
75
- expect(response_values).to include 'dc_title_s' => '100 Foot Grid Cambridge MA 2004'
76
- expect(response_values).to include 'dc_identifier_s' => 'urn:geodata.tufts.edu:Tufts.CambridgeGrid100_04'
77
- expect(response_values).to include 'dc_rights_s' => 'Public'
78
- expect(response_values).to include 'dct_provenance_s' => 'Tufts'
79
- expect(response_values).to include 'layer_slug_s' => 'tufts-cambridgegrid100-04'
80
- expect(response_values).to include 'solr_geom' => 'ENVELOPE(-71.163984, -71.052581, 42.408316, 42.34757)'
75
+ expect(response_values).to include Settings.FIELDS.TITLE => '100 Foot Grid Cambridge MA 2004'
76
+ expect(response_values).to include Settings.FIELDS.IDENTIFIER => 'urn:geodata.tufts.edu:Tufts.CambridgeGrid100_04'
77
+ expect(response_values).to include Settings.FIELDS.RIGHTS => 'Public'
78
+ expect(response_values).to include Settings.FIELDS.PROVENANCE => 'Tufts'
79
+ expect(response_values).to include Settings.FIELDS.UNIQUE_KEY => 'tufts-cambridgegrid100-04'
80
+ expect(response_values).to include Settings.FIELDS.GEOMETRY => 'ENVELOPE(-71.163984, -71.052581, 42.408316, 42.34757)'
81
81
  end
82
82
  end
83
83
  end
@@ -41,7 +41,7 @@ feature 'Download layer' do
41
41
  end
42
42
  scenario 'clicking jpg download button should redirect to external image' do
43
43
  visit solr_document_path('princeton-02870w62c')
44
- expect(page).to have_css("a.btn.btn-default[href='https://libimages.princeton.edu/loris/pudl0076/map_pownall/00000001.jp2/full/full/0/default.jpg']", text: 'Original JPG')
44
+ expect(page).to have_css("a.btn.btn-default[href='https://iiif-cloud.princeton.edu/iiif/2/6c%2F52%2F12%2F6c5212e81bc845f59bb1cdc740a88bad%2Fintermediate_file/full/full/0/default.jpg']", text: 'Original JPG')
45
45
  end
46
46
  scenario 'options should be available under toggle' do
47
47
  visit solr_document_path('mit-f6rqs4ucovjk2')
@@ -16,7 +16,7 @@ feature 'Display related documents' do
16
16
  visit relations_solr_document_path('nyu_2451_34635', format: 'json')
17
17
  response = JSON.parse(page.body)
18
18
  expect(response['ancestors']['numFound']).to eq 0
19
- expect(response['descendants']['docs'].first['layer_slug_s']).to eq 'nyu_2451_34502'
19
+ expect(response['descendants']['docs'].first[Settings.FIELDS.UNIQUE_KEY]).to eq 'nyu_2451_34502'
20
20
  expect(response['current_doc']).to eq 'nyu_2451_34635'
21
21
  end
22
22
 
@@ -8,7 +8,7 @@ feature 'spatial search results overlap ratio' do
8
8
  # BBox param is the US upper midwest and Canada, roughly centered on the state of Minnesota
9
9
  visit search_catalog_path(
10
10
  bbox: '-103.196521 39.21962 -84.431873 53.63497',
11
- 'f[dct_provenance_s][]': 'Minnesota'
11
+ "f[#{Settings.FIELDS.PROVENANCE}][]": 'Minnesota'
12
12
  )
13
13
 
14
14
  # MN State result
@@ -30,7 +30,7 @@ feature 'spatial search results overlap ratio' do
30
30
  # BBox param is the center to western edge of New York state and Canada, roughly centered on Lake Ontario
31
31
  visit search_catalog_path(
32
32
  bbox: '-83.750499 40.41709 -74.368175 47.963663',
33
- 'f[dct_provenance_s][]': 'Cornell'
33
+ "f[#{Settings.FIELDS.PROVENANCE}][]": 'Cornell'
34
34
  )
35
35
 
36
36
  # NY State result
@@ -10,7 +10,7 @@ feature 'Index view', js: true do
10
10
  scenario 'should have documents and map on page' do
11
11
  visit search_catalog_path(f: { Settings.FIELDS.PROVENANCE => ['Stanford'] })
12
12
  expect(page).to have_css('#documents')
13
- expect(page).to have_css('.document', count: 5)
13
+ expect(page).to have_css('.document', count: 6)
14
14
  expect(page).to have_css('#map')
15
15
  end
16
16
 
@@ -0,0 +1,10 @@
1
+ # frozen_string_literal: true
2
+ require 'spec_helper'
3
+
4
+ feature 'tms layer' do
5
+ scenario 'displays tms layer', js: true do
6
+ visit solr_document_path('6f47b103-9955-4bbe-a364-387039623106')
7
+ expect(page).to have_css '.leaflet-control-zoom', visible: true
8
+ expect(page).to have_css "img[src*='earthquake.usgs.gov']"
9
+ end
10
+ end
@@ -16,7 +16,7 @@
16
16
  "Rogers, Henry Darwin",
17
17
  "Pownall, Thomas"
18
18
  ],
19
- "dct_references_s": "{\"http://schema.org/url\":\"http://arks.princeton.edu/ark:/88435/02870w62c\",\"http://schema.org/thumbnailUrl\":\"https://libimages.princeton.edu/loris2/pudl0076%2Fmap_pownall%2F00000001.jp2/full/50,/0/default.jpg\",\"http://iiif.io/api/image\":\"https://libimages.princeton.edu/loris/pudl0076/map_pownall/00000001.jp2/info.json\"}",
19
+ "dct_references_s": "{\"http://schema.org/url\":\"http://arks.princeton.edu/ark:/88435/02870w62c\",\"http://schema.org/thumbnailUrl\":\"https://iiif-cloud.princeton.edu/iiif/2/6c%2F52%2F12%2F6c5212e81bc845f59bb1cdc740a88bad%2Fintermediate_file/full/!200,150/0/default.jpg\",\"http://iiif.io/api/image\":\"https://iiif-cloud.princeton.edu/iiif/2/6c%2F52%2F12%2F6c5212e81bc845f59bb1cdc740a88bad%2Fintermediate_file/info.json\"}",
20
20
  "dct_spatial_sm": [
21
21
  "New York (State)",
22
22
  "New Jersey",
@@ -0,0 +1,29 @@
1
+ {
2
+ "dc_identifier_s": "6f47b103-9955-4bbe-a364-387039623106",
3
+ "dc_title_s": "Quaternary Fault and Fold Database of the United States",
4
+ "dc_description_s": "Quaternary Fault and Fold Database of the United States",
5
+ "dc_rights_s": "Public",
6
+ "dct_provenance_s": "Stanford",
7
+ "dct_references_s": "{\"http://schema.org/url\":\"https://www.usgs.gov/natural-hazards/earthquake-hazards/faults\",\"https://wiki.osgeo.org/wiki/Tile_Map_Service_Specification\":\"https://earthquake.usgs.gov/basemap/tiles/faults/{z}/{x}/{y}.png\",\"http://schema.org/downloadUrl\":\"https://earthquake.usgs.gov/static/lfs/nshm/qfaults/Qfaults_GIS.zip\"}",
8
+ "layer_slug_s": "6f47b103-9955-4bbe-a364-387039623106",
9
+ "layer_geom_type_s": "Polyline",
10
+ "dc_format_s": "Shapefile",
11
+ "dc_language_s": "English",
12
+ "dc_type_s": "Dataset",
13
+ "dc_publisher_s": "Geological Survey (U.S.)",
14
+ "dc_subject_sm": [
15
+ "Earthquakes",
16
+ "Faults"
17
+ ],
18
+ "dct_issued_s": "2020",
19
+ "dct_temporal_sm": [
20
+ "2020"
21
+ ],
22
+ "dct_spatial_sm": [
23
+ "Earth (Planet)",
24
+ "North America"
25
+ ],
26
+ "solr_geom": "ENVELOPE(-156.02, -70.80, 65.59, 18.93)",
27
+ "solr_year_i": 2020,
28
+ "geoblacklight_version": "1.0"
29
+ }
@@ -346,12 +346,12 @@ describe GeoblacklightHelper, type: :helper do
346
346
  end
347
347
 
348
348
  it 'renders a goemetry type as the icon' do
349
- html = Capybara.string(helper.relations_icon({ 'layer_geom_type_s' => 'polygon' }, 'leaf'))
349
+ html = Capybara.string(helper.relations_icon({ Settings.FIELDS.GEOM_TYPE => 'polygon' }, 'leaf'))
350
350
  expect(html.title.strip).to eq 'Polygon'
351
351
  end
352
352
 
353
353
  it 'has the svg_tooltip class so that the Bootstrap tooltip is applied' do
354
- html = Capybara.string(helper.relations_icon({ 'layer_geom_type_s' => 'polygon' }, 'leaf'))
354
+ html = Capybara.string(helper.relations_icon({ Settings.FIELDS.GEOM_TYPE => 'polygon' }, 'leaf'))
355
355
  expect(html).to have_css('.blacklight-icons.svg_tooltip')
356
356
  end
357
357
  end
@@ -362,14 +362,40 @@ describe GeoblacklightHelper, type: :helper do
362
362
  end
363
363
 
364
364
  it 'renders the provided icon' do
365
- html = Capybara.string(helper.relations_icon({ 'layer_geom_type_s' => 'polygon' }, 'leaf'))
365
+ html = Capybara.string(helper.relations_icon({ Settings.FIELDS.GEOM_TYPE => 'polygon' }, 'leaf'))
366
366
  expect(html.title.strip).to eq 'Leaf'
367
367
  end
368
368
 
369
369
  it 'does not have the svg_tooltip class' do
370
- html = Capybara.string(helper.relations_icon({ 'layer_geom_type_s' => 'polygon' }, 'leaf'))
370
+ html = Capybara.string(helper.relations_icon({ Settings.FIELDS.GEOM_TYPE => 'polygon' }, 'leaf'))
371
371
  expect(html).not_to have_css('.blacklight-icons.svg_tooltip')
372
372
  end
373
373
  end
374
374
  end
375
+
376
+ describe '#results_js_map_selector' do
377
+ context 'viewing bookmarks' do
378
+ let(:controller_name) { 'bookmarks' }
379
+
380
+ it 'returns bookmarks data-map selector' do
381
+ expect(results_js_map_selector(controller_name)).to eq 'bookmarks'
382
+ end
383
+ end
384
+
385
+ context 'viewing catalog results' do
386
+ let(:controller_name) { 'catalog' }
387
+
388
+ it 'returns index data-map selector' do
389
+ expect(results_js_map_selector(controller_name)).to eq 'index'
390
+ end
391
+ end
392
+
393
+ context 'calling outside of intended scope' do
394
+ let(:controller_name) { 'outside' }
395
+
396
+ it 'returns default data-map value' do
397
+ expect(results_js_map_selector(controller_name)).to eq 'index'
398
+ end
399
+ end
400
+ end
375
401
  end
@@ -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::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.UNIQUE_KEY => 'test', solr_wfs_url: 'http://www.example.com/wfs', Settings.FIELDS.WXS_IDENTIFIER => 'stanford-test', Settings.FIELDS.GEOMETRY => '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)
@@ -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.UNIQUE_KEY}": '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,48 @@
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
+
9
+ describe '#geojson' do
10
+ context 'with standard WKT geometry' do
11
+ it 'returns geojson' do
12
+ expect(described_class.new(wkt_geom).geojson).to include('MultiPolygon', 'coordinates', '[[[[-180.0,81.66]')
13
+ end
14
+ end
15
+
16
+ context 'with envelope syntax geometry' do
17
+ it 'returns geojson' do
18
+ expect(described_class.new(envelope_geom).geojson).to include('Polygon', 'coordinates', '[[[25.0,81.66]')
19
+ end
20
+ end
21
+
22
+ context 'with an invalid geometry' do
23
+ it 'returns an empty string' do
24
+ expect(described_class.new(invalid_geom).geojson).to eq ''
25
+ end
26
+ end
27
+ end
28
+
29
+ describe '#bounding_box' do
30
+ context 'with standard WKT geometry' do
31
+ it 'returns a bounding_box' do
32
+ expect(described_class.new(wkt_geom).bounding_box).to eq '-180.0, -12.93, 180.0, 81.66'
33
+ end
34
+ end
35
+
36
+ context 'with envelope syntax geometry' do
37
+ it 'returns a bounding_box' do
38
+ expect(described_class.new(envelope_geom).bounding_box).to eq '-168.35, -12.93, 25.0, 81.66'
39
+ end
40
+ end
41
+
42
+ context 'with an invalid geometry' do
43
+ it 'returns an empty string' do
44
+ expect(described_class.new(invalid_geom).bounding_box).to eq ''
45
+ end
46
+ end
47
+ end
48
+ 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
  {
@@ -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
  )
@@ -8,7 +8,7 @@ describe Geoblacklight::Relation::Ancestors do
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.UNIQUE_KEY}}#{Settings.FIELDS.UNIQUE_KEY}:nyu_2451_34502"], fl: [Settings.FIELDS.TITLE.to_s, Settings.FIELDS.UNIQUE_KEY, Settings.FIELDS.GEOM_TYPE])
12
12
  end
13
13
  end
14
14
 
@@ -8,7 +8,7 @@ describe Geoblacklight::Relation::Descendants do
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.UNIQUE_KEY, Settings.FIELDS.GEOM_TYPE])
12
12
  end
13
13
  end
14
14
 
@@ -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: 3.3.0
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-03-08 00:00:00.000000000 Z
15
15
  dependencies:
16
16
  - !ruby/object:Gem::Dependency
17
17
  name: rails
@@ -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"
@@ -419,6 +447,7 @@ files:
419
447
  - app/assets/images/blacklight/uva.svg
420
448
  - app/assets/images/blacklight/web_services.svg
421
449
  - app/assets/images/blacklight/wisconsin.svg
450
+ - app/assets/images/favicon.ico
422
451
  - app/assets/javascripts/geoblacklight/basemaps.js
423
452
  - app/assets/javascripts/geoblacklight/controls.js
424
453
  - app/assets/javascripts/geoblacklight/controls/opacity.js
@@ -427,6 +456,7 @@ files:
427
456
  - app/assets/javascripts/geoblacklight/downloaders/hgl_downloader.js
428
457
  - app/assets/javascripts/geoblacklight/geoblacklight.js
429
458
  - app/assets/javascripts/geoblacklight/modules.js
459
+ - app/assets/javascripts/geoblacklight/modules/bookmarks.js
430
460
  - app/assets/javascripts/geoblacklight/modules/download.js
431
461
  - app/assets/javascripts/geoblacklight/modules/geosearch.js
432
462
  - app/assets/javascripts/geoblacklight/modules/help_text.js
@@ -451,6 +481,7 @@ files:
451
481
  - app/assets/javascripts/geoblacklight/viewers/index_map.js
452
482
  - app/assets/javascripts/geoblacklight/viewers/map.js
453
483
  - app/assets/javascripts/geoblacklight/viewers/oembed.js
484
+ - app/assets/javascripts/geoblacklight/viewers/tms.js
454
485
  - app/assets/javascripts/geoblacklight/viewers/viewer.js
455
486
  - app/assets/javascripts/geoblacklight/viewers/wms.js
456
487
  - app/assets/stylesheets/geoblacklight/geoblacklight.scss
@@ -533,10 +564,13 @@ files:
533
564
  - app/views/relation/index.html.erb
534
565
  - app/views/relation/index.json.jbuilder
535
566
  - app/views/shared/_header_navbar.html.erb
567
+ - babel.config.json
536
568
  - bin/coverage.rb
569
+ - config/initializers/new_gbl_settings_defaults_3_3.yml
537
570
  - config/initializers/rails_config.rb
538
571
  - config/locales/geoblacklight.en.yml
539
572
  - geoblacklight.gemspec
573
+ - jest.config.js
540
574
  - lib/generators/geoblacklight/assets_generator.rb
541
575
  - lib/generators/geoblacklight/install_generator.rb
542
576
  - lib/generators/geoblacklight/templates/Procfile
@@ -563,6 +597,7 @@ files:
563
597
  - lib/geoblacklight/engine.rb
564
598
  - lib/geoblacklight/exceptions.rb
565
599
  - lib/geoblacklight/geoblacklight_helper_behavior.rb
600
+ - lib/geoblacklight/geometry.rb
566
601
  - lib/geoblacklight/item_viewer.rb
567
602
  - lib/geoblacklight/metadata.rb
568
603
  - lib/geoblacklight/metadata/base.rb
@@ -597,6 +632,7 @@ files:
597
632
  - schema/schema-commentary.md
598
633
  - schema/subjects.md
599
634
  - schema/type-values.md
635
+ - setupJest.js
600
636
  - solr/conf/_rest_managed.json
601
637
  - solr/conf/admin-extra.html
602
638
  - solr/conf/core.properties
@@ -614,6 +650,7 @@ files:
614
650
  - solr/conf/xslt/example_atom.xsl
615
651
  - solr/conf/xslt/example_rss.xsl
616
652
  - solr/conf/xslt/luke.xsl
653
+ - spec/config/initializers/rails_config_spec.rb
617
654
  - spec/controllers/catalog_controller_spec.rb
618
655
  - spec/controllers/download_controller_spec.rb
619
656
  - spec/controllers/relation_controller_spec.rb
@@ -649,6 +686,7 @@ files:
649
686
  - spec/features/sms_spec.rb
650
687
  - spec/features/split_view.html.erb_spec.rb
651
688
  - spec/features/suppressed_records_spec.rb
689
+ - spec/features/tms_spec.rb
652
690
  - spec/features/web_services_modal_spec.rb
653
691
  - spec/fixtures/fgdc/harvard-g7064-s2-1834-k3.xml
654
692
  - spec/fixtures/iso19139/stanford-cg357zz0321.xml
@@ -691,6 +729,7 @@ files:
691
729
  - spec/fixtures/solr_documents/public_iiif_princeton.json
692
730
  - spec/fixtures/solr_documents/public_polygon_mit.json
693
731
  - spec/fixtures/solr_documents/restricted-line.json
732
+ - spec/fixtures/solr_documents/tms.json
694
733
  - spec/fixtures/solr_documents/umn_metro_result1.json
695
734
  - spec/fixtures/solr_documents/umn_state_result1.json
696
735
  - spec/fixtures/solr_documents/umn_state_result2.json
@@ -698,13 +737,10 @@ files:
698
737
  - spec/helpers/arcgis_helper_spec.rb
699
738
  - spec/helpers/carto_helper_spec.rb
700
739
  - spec/helpers/geoblacklight_helper_spec.rb
701
- - spec/javascripts/geoblacklight/viewers/esri/tiled_map_layer_spec.js
702
740
  - spec/javascripts/geoblacklight_spec.js
703
741
  - spec/javascripts/metadata_download_button_spec.js
704
- - spec/javascripts/spec_helper.js
705
742
  - spec/javascripts/util_spec.js
706
743
  - spec/lib/geoblacklight/bounding_box_spec.rb
707
- - spec/lib/geoblacklight/controller_override_spec.rb
708
744
  - spec/lib/geoblacklight/document_presenter_spec.rb
709
745
  - spec/lib/geoblacklight/download/geojson_download_spec.rb
710
746
  - spec/lib/geoblacklight/download/geotiff_download_spec.rb
@@ -713,6 +749,7 @@ files:
713
749
  - spec/lib/geoblacklight/download/shapefile_download_spec.rb
714
750
  - spec/lib/geoblacklight/download_spec.rb
715
751
  - spec/lib/geoblacklight/geoblacklight_helper_behavior_spec.rb
752
+ - spec/lib/geoblacklight/geometry_spec.rb
716
753
  - spec/lib/geoblacklight/item_viewer_spec.rb
717
754
  - spec/lib/geoblacklight/metadata/base_spec.rb
718
755
  - spec/lib/geoblacklight/metadata/html_spec.rb
@@ -742,7 +779,6 @@ files:
742
779
  - spec/support/features/session_helpers.rb
743
780
  - spec/support/fixtures.rb
744
781
  - spec/tasks/geoblacklight_spec.rb
745
- - spec/teaspoon_env.rb
746
782
  - spec/test_app_templates/Gemfile.extra
747
783
  - spec/test_app_templates/lib/generators/test_app_generator.rb
748
784
  - spec/test_app_templates/metadata/fgdc.html
@@ -788,11 +824,12 @@ required_rubygems_version: !ruby/object:Gem::Requirement
788
824
  - !ruby/object:Gem::Version
789
825
  version: 2.5.2
790
826
  requirements: []
791
- rubygems_version: 3.1.4
827
+ rubygems_version: 3.2.3
792
828
  signing_key:
793
829
  specification_version: 4
794
830
  summary: A discovery platform for geospatial holdings
795
831
  test_files:
832
+ - spec/config/initializers/rails_config_spec.rb
796
833
  - spec/controllers/catalog_controller_spec.rb
797
834
  - spec/controllers/download_controller_spec.rb
798
835
  - spec/controllers/relation_controller_spec.rb
@@ -828,6 +865,7 @@ test_files:
828
865
  - spec/features/sms_spec.rb
829
866
  - spec/features/split_view.html.erb_spec.rb
830
867
  - spec/features/suppressed_records_spec.rb
868
+ - spec/features/tms_spec.rb
831
869
  - spec/features/web_services_modal_spec.rb
832
870
  - spec/fixtures/fgdc/harvard-g7064-s2-1834-k3.xml
833
871
  - spec/fixtures/iso19139/stanford-cg357zz0321.xml
@@ -870,6 +908,7 @@ test_files:
870
908
  - spec/fixtures/solr_documents/public_iiif_princeton.json
871
909
  - spec/fixtures/solr_documents/public_polygon_mit.json
872
910
  - spec/fixtures/solr_documents/restricted-line.json
911
+ - spec/fixtures/solr_documents/tms.json
873
912
  - spec/fixtures/solr_documents/umn_metro_result1.json
874
913
  - spec/fixtures/solr_documents/umn_state_result1.json
875
914
  - spec/fixtures/solr_documents/umn_state_result2.json
@@ -877,13 +916,10 @@ test_files:
877
916
  - spec/helpers/arcgis_helper_spec.rb
878
917
  - spec/helpers/carto_helper_spec.rb
879
918
  - spec/helpers/geoblacklight_helper_spec.rb
880
- - spec/javascripts/geoblacklight/viewers/esri/tiled_map_layer_spec.js
881
919
  - spec/javascripts/geoblacklight_spec.js
882
920
  - spec/javascripts/metadata_download_button_spec.js
883
- - spec/javascripts/spec_helper.js
884
921
  - spec/javascripts/util_spec.js
885
922
  - spec/lib/geoblacklight/bounding_box_spec.rb
886
- - spec/lib/geoblacklight/controller_override_spec.rb
887
923
  - spec/lib/geoblacklight/document_presenter_spec.rb
888
924
  - spec/lib/geoblacklight/download/geojson_download_spec.rb
889
925
  - spec/lib/geoblacklight/download/geotiff_download_spec.rb
@@ -892,6 +928,7 @@ test_files:
892
928
  - spec/lib/geoblacklight/download/shapefile_download_spec.rb
893
929
  - spec/lib/geoblacklight/download_spec.rb
894
930
  - spec/lib/geoblacklight/geoblacklight_helper_behavior_spec.rb
931
+ - spec/lib/geoblacklight/geometry_spec.rb
895
932
  - spec/lib/geoblacklight/item_viewer_spec.rb
896
933
  - spec/lib/geoblacklight/metadata/base_spec.rb
897
934
  - spec/lib/geoblacklight/metadata/html_spec.rb
@@ -921,7 +958,6 @@ test_files:
921
958
  - spec/support/features/session_helpers.rb
922
959
  - spec/support/fixtures.rb
923
960
  - spec/tasks/geoblacklight_spec.rb
924
- - spec/teaspoon_env.rb
925
961
  - spec/test_app_templates/Gemfile.extra
926
962
  - spec/test_app_templates/lib/generators/test_app_generator.rb
927
963
  - spec/test_app_templates/metadata/fgdc.html