geoblacklight 3.4.0 → 3.7.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.
- checksums.yaml +4 -4
- data/.github/workflows/ruby.yml +28 -75
- data/.gitignore +1 -0
- data/.rubocop.yml +1 -0
- data/.solr_wrapper +1 -0
- data/app/assets/images/blacklight/michigan-state-university.svg +0 -1
- data/app/assets/images/blacklight/pennsylvania-state-university.svg +0 -1
- data/app/assets/images/blacklight/purdue-university.svg +0 -1
- data/app/assets/images/blacklight/the-ohio-state-university.svg +0 -1
- data/app/assets/images/blacklight/university-of-chicago.svg +0 -1
- data/app/assets/images/blacklight/university-of-illinois-urbana-champaign.svg +0 -1
- data/app/assets/images/blacklight/university-of-iowa.svg +0 -1
- data/app/assets/images/blacklight/university-of-maryland.svg +0 -1
- data/app/assets/images/blacklight/university-of-michigan.svg +0 -1
- data/app/assets/images/blacklight/university-of-minnesota.svg +0 -1
- data/app/assets/images/blacklight/university-of-nebraska-lincoln.svg +0 -1
- data/app/assets/images/blacklight/university-of-wisconsin-madison.svg +0 -1
- data/app/assets/javascripts/geoblacklight/viewers/tilejson.js +33 -0
- data/app/assets/javascripts/geoblacklight/viewers/tms.js +2 -2
- data/app/assets/javascripts/geoblacklight/viewers/wms.js +2 -2
- data/app/assets/javascripts/geoblacklight/viewers/wmts.js +85 -0
- data/app/assets/javascripts/geoblacklight/viewers/xyz.js +10 -0
- data/config/locales/geoblacklight.en.yml +3 -0
- data/geoblacklight.gemspec +2 -1
- data/lib/generators/geoblacklight/assets_generator.rb +1 -1
- data/lib/generators/geoblacklight/templates/settings.yml +3 -0
- data/lib/geoblacklight/constants.rb +3 -0
- data/lib/geoblacklight/engine.rb +4 -2
- data/lib/geoblacklight/item_viewer.rb +13 -1
- data/lib/geoblacklight/version.rb +1 -1
- data/solr/conf/solrconfig.xml +3 -3
- data/spec/features/home_page_spec.rb +2 -2
- data/spec/features/split_view.html.erb_spec.rb +1 -1
- data/spec/features/tilejson_spec.rb +22 -0
- data/spec/features/tms_spec.rb +1 -1
- data/spec/features/web_services_modal_spec.rb +33 -0
- data/spec/features/wmts_spec.rb +34 -0
- data/spec/features/xyz_spec.rb +10 -0
- data/spec/fixtures/manifests/tilejson.json +21 -0
- data/spec/fixtures/manifests/wmts-multiple.xml +813 -0
- data/spec/fixtures/manifests/wmts-single.xml +126 -0
- data/spec/fixtures/solr_documents/tilejson.json +38 -0
- data/spec/fixtures/solr_documents/tms.json +2 -2
- data/spec/fixtures/solr_documents/wmts-multiple.json +32 -0
- data/spec/fixtures/solr_documents/wmts-single-layer.json +38 -0
- data/spec/fixtures/solr_documents/xyz.json +29 -0
- data/spec/spec_helper.rb +4 -0
- data/spec/views/catalog/_results_pagination.html.erb_spec.rb +1 -1
- data/spec/views/catalog/_show_downloads.html.erb_spec.rb +1 -1
- metadata +45 -8
@@ -16,7 +16,10 @@ module Geoblacklight
|
|
16
16
|
wcs: 'http://www.opengis.net/def/serviceType/ogc/wcs',
|
17
17
|
wfs: 'http://www.opengis.net/def/serviceType/ogc/wfs',
|
18
18
|
wms: 'http://www.opengis.net/def/serviceType/ogc/wms',
|
19
|
+
wmts: 'http://www.opengis.net/def/serviceType/ogc/wmts',
|
19
20
|
tms: 'https://wiki.osgeo.org/wiki/Tile_Map_Service_Specification',
|
21
|
+
tilejson: 'https://github.com/mapbox/tilejson-spec',
|
22
|
+
xyz: 'https://wiki.openstreetmap.org/wiki/Slippy_map_tilenames',
|
20
23
|
hgl: 'http://schema.org/DownloadAction',
|
21
24
|
feature_layer: 'urn:x-esri:serviceType:ArcGIS#FeatureLayer',
|
22
25
|
tiled_map_layer: 'urn:x-esri:serviceType:ArcGIS#TiledMapLayer',
|
data/lib/geoblacklight/engine.rb
CHANGED
@@ -16,8 +16,10 @@ module Geoblacklight
|
|
16
16
|
# GeoblacklightHelper is needed by all helpers, so we inject it
|
17
17
|
# into action view base here.
|
18
18
|
initializer 'geoblacklight.helpers' do
|
19
|
-
|
20
|
-
|
19
|
+
config.after_initialize do
|
20
|
+
ActionView::Base.send :include, GeoblacklightHelper
|
21
|
+
ActionView::Base.send :include, CartoHelper
|
22
|
+
end
|
21
23
|
end
|
22
24
|
|
23
25
|
config.to_prepare do
|
@@ -51,8 +51,20 @@ module Geoblacklight
|
|
51
51
|
@references.tms
|
52
52
|
end
|
53
53
|
|
54
|
+
def xyz
|
55
|
+
@references.xyz
|
56
|
+
end
|
57
|
+
|
58
|
+
def tilejson
|
59
|
+
@references.tilejson
|
60
|
+
end
|
61
|
+
|
62
|
+
def wmts
|
63
|
+
@references.wmts
|
64
|
+
end
|
65
|
+
|
54
66
|
def viewer_preference
|
55
|
-
[oembed, index_map, tms, wms, iiif, tiled_map_layer, dynamic_map_layer,
|
67
|
+
[oembed, index_map, tilejson, xyz, wmts, tms, wms, iiif, tiled_map_layer, dynamic_map_layer,
|
56
68
|
image_map_layer, feature_layer].compact.map(&:to_hash).first
|
57
69
|
end
|
58
70
|
end
|
data/solr/conf/solrconfig.xml
CHANGED
@@ -70,9 +70,9 @@
|
|
70
70
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->
|
71
71
|
<query>
|
72
72
|
<maxBooleanClauses>1024</maxBooleanClauses>
|
73
|
-
<filterCache class="solr.
|
74
|
-
<queryResultCache class="solr.
|
75
|
-
<documentCache class="solr.
|
73
|
+
<filterCache class="solr.CaffeineCache" size="512" initialSize="512" autowarmCount="0" async="true"/>
|
74
|
+
<queryResultCache class="solr.CaffeineCache" size="512" initialSize="512" autowarmCount="0" async="true"/>
|
75
|
+
<documentCache class="solr.CaffeineCache" size="512" initialSize="512" autowarmCount="0" async="true"/>
|
76
76
|
<enableLazyFieldLoading>true</enableLazyFieldLoading>
|
77
77
|
<queryResultWindowSize>20</queryResultWindowSize>
|
78
78
|
<queryResultMaxDocsCached>200</queryResultMaxDocsCached>
|
@@ -21,9 +21,9 @@ feature 'Home page', js: true do # use js: true for tests which require js, but
|
|
21
21
|
expect(page).to have_css '.category-block', count: 4
|
22
22
|
expect(page).to have_css '.home-facet-link', count: 36
|
23
23
|
expect(page).to have_css 'a.more_facets_link', count: 4
|
24
|
-
click_link '
|
24
|
+
click_link 'Transportation'
|
25
25
|
expect(page).to have_css '.filter-name', text: 'Subject'
|
26
|
-
expect(page).to have_css '.filter-value', text: '
|
26
|
+
expect(page).to have_css '.filter-value', text: 'Transportation'
|
27
27
|
end
|
28
28
|
scenario 'map should be visible' do
|
29
29
|
within '#main-container' do
|
@@ -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:
|
13
|
+
expect(page).to have_css('.document', count: 7)
|
14
14
|
expect(page).to have_css('#map')
|
15
15
|
end
|
16
16
|
|
@@ -0,0 +1,22 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
require 'spec_helper'
|
3
|
+
|
4
|
+
feature 'tilejson layer' do
|
5
|
+
before do
|
6
|
+
WebMock.disable_net_connect!(allow_localhost: true, allow: 'chromedriver.storage.googleapis.com')
|
7
|
+
end
|
8
|
+
|
9
|
+
after do
|
10
|
+
WebMock.allow_net_connect!
|
11
|
+
end
|
12
|
+
|
13
|
+
scenario 'displays tilejson layer', js: true do
|
14
|
+
# Mock tilejson manifest url
|
15
|
+
stub_request(:get, 'https://map-tiles-staging.princeton.edu/mosaicjson/tilejson.json?id=2a91d82c541c426cb787cc62afe8f248')
|
16
|
+
.to_return(status: 200, body: read_fixture('manifests/tilejson.json'))
|
17
|
+
|
18
|
+
visit solr_document_path('princeton-fk4544658v-tilejson')
|
19
|
+
expect(page).to have_css '.leaflet-control-zoom', visible: :visible
|
20
|
+
expect(page).to have_css "img[src*='https://map-tiles-staging.princeton.edu/mosaicjson/tiles/WebMercatorQuad']"
|
21
|
+
end
|
22
|
+
end
|
data/spec/features/tms_spec.rb
CHANGED
@@ -3,7 +3,7 @@ require 'spec_helper'
|
|
3
3
|
|
4
4
|
feature 'tms layer' do
|
5
5
|
scenario 'displays tms layer', js: true do
|
6
|
-
visit solr_document_path('6f47b103-9955-4bbe-a364-387039623106')
|
6
|
+
visit solr_document_path('6f47b103-9955-4bbe-a364-387039623106-tms')
|
7
7
|
expect(page).to have_css '.leaflet-control-zoom', visible: true
|
8
8
|
expect(page).to have_css "img[src*='earthquake.usgs.gov']"
|
9
9
|
end
|
@@ -23,4 +23,37 @@ feature 'web services tools' do
|
|
23
23
|
expect(page).not_to have_css 'li.web_services a', text: 'Web services'
|
24
24
|
end
|
25
25
|
end
|
26
|
+
feature 'when xyz tile reference is provided', js: true do
|
27
|
+
scenario 'shows up in tools' do
|
28
|
+
visit solr_document_path '6f47b103-9955-4bbe-a364-387039623106-xyz'
|
29
|
+
expect(page).to have_css 'li.web_services a', text: 'Web services'
|
30
|
+
click_link 'Web services'
|
31
|
+
within '.modal-body' do
|
32
|
+
expect(page).to have_css 'label', text: 'XYZ Tiles'
|
33
|
+
expect(page).to have_css 'input[value="https://earthquake.usgs.gov/basemap/tiles/faults/{z}/{x}/{y}.png"]'
|
34
|
+
end
|
35
|
+
end
|
36
|
+
end
|
37
|
+
feature 'when wmts tile reference is provided', js: true do
|
38
|
+
scenario 'shows up in tools' do
|
39
|
+
visit solr_document_path 'princeton-fk4544658v-wmts'
|
40
|
+
expect(page).to have_css 'li.web_services a', text: 'Web services'
|
41
|
+
click_link 'Web services'
|
42
|
+
within '.modal-body' do
|
43
|
+
expect(page).to have_css 'label', text: 'Web Map Tile Service'
|
44
|
+
expect(page).to have_css 'input[value="https://map-tiles-staging.princeton.edu/mosaicjson/WMTSCapabilities.xml?id=2a91d82c541c426cb787cc62afe8f248"]'
|
45
|
+
end
|
46
|
+
end
|
47
|
+
end
|
48
|
+
feature 'when tilejson reference is provided', js: true do
|
49
|
+
scenario 'shows up in tools' do
|
50
|
+
visit solr_document_path 'princeton-fk4544658v-tilejson'
|
51
|
+
expect(page).to have_css 'li.web_services a', text: 'Web services'
|
52
|
+
click_link 'Web services'
|
53
|
+
within '.modal-body' do
|
54
|
+
expect(page).to have_css 'label', text: 'TileJSON Document'
|
55
|
+
expect(page).to have_css 'input[value="https://map-tiles-staging.princeton.edu/mosaicjson/tilejson.json?id=2a91d82c541c426cb787cc62afe8f248"]'
|
56
|
+
end
|
57
|
+
end
|
58
|
+
end
|
26
59
|
end
|
@@ -0,0 +1,34 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
require 'spec_helper'
|
3
|
+
|
4
|
+
feature 'wmts layer' do
|
5
|
+
before do
|
6
|
+
WebMock.disable_net_connect!(allow_localhost: true, allow: 'chromedriver.storage.googleapis.com')
|
7
|
+
end
|
8
|
+
|
9
|
+
after do
|
10
|
+
WebMock.allow_net_connect!
|
11
|
+
end
|
12
|
+
|
13
|
+
context 'when referencing a WMTSCapabilities document with a single layer' do
|
14
|
+
scenario 'displays the layer', js: true do
|
15
|
+
# Mock wmts manifest url
|
16
|
+
stub_request(:get, 'https://map-tiles-staging.princeton.edu/mosaicjson/WMTSCapabilities.xml?id=2a91d82c541c426cb787cc62afe8f248')
|
17
|
+
.to_return(status: 200, body: read_fixture('manifests/wmts-single.xml'))
|
18
|
+
|
19
|
+
visit solr_document_path('princeton-fk4544658v-wmts')
|
20
|
+
expect(page).to have_css '.leaflet-control-zoom', visible: :visible
|
21
|
+
expect(page).to have_css "img[src*='map-tiles-staging.princeton.edu/mosaicjson/tiles/WebMercatorQuad']"
|
22
|
+
end
|
23
|
+
end
|
24
|
+
context 'when referencing a WMTSCapabilities document with a multiple layers' do
|
25
|
+
scenario 'displays the layer referenced in the layer_id field', js: true do
|
26
|
+
# Mock wmts manifest url
|
27
|
+
stub_request(:get, 'https://maps.wien.gv.at/wmts/1.0.0/WMTSCapabilities.xml')
|
28
|
+
.to_return(status: 200, body: read_fixture('manifests/wmts-multiple.xml'))
|
29
|
+
visit solr_document_path('princeton-fk4db9hn29')
|
30
|
+
expect(page).to have_css '.leaflet-control-zoom', visible: :visible
|
31
|
+
expect(page).to have_css "img[src*='http://maps1.wien.gv.at/wmts/lb2016/farbe/google3857']"
|
32
|
+
end
|
33
|
+
end
|
34
|
+
end
|
@@ -0,0 +1,10 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
require 'spec_helper'
|
3
|
+
|
4
|
+
feature 'xyz layer' do
|
5
|
+
scenario 'displays tms layer', js: true do
|
6
|
+
visit solr_document_path('6f47b103-9955-4bbe-a364-387039623106-xyz')
|
7
|
+
expect(page).to have_css '.leaflet-control-zoom', visible: :visible
|
8
|
+
expect(page).to have_css "img[src*='earthquake.usgs.gov']"
|
9
|
+
end
|
10
|
+
end
|
@@ -0,0 +1,21 @@
|
|
1
|
+
{
|
2
|
+
"tilejson": "2.2.0",
|
3
|
+
"version": "1.0.0",
|
4
|
+
"scheme": "xyz",
|
5
|
+
"tiles": [
|
6
|
+
"https://map-tiles-staging.princeton.edu/mosaicjson/tiles/WebMercatorQuad/{z}/{x}/{y}@1x?url=s3%3A%2F%2Ffiggy-geo-staging%2F2a%2F91%2Fd8%2F2a91d82c541c426cb787cc62afe8f248%2Fmosaic-6c5b32bfe4cb8e4fb07d32cd6656d024.json&rescale=0%2C255"
|
7
|
+
],
|
8
|
+
"minzoom": 8,
|
9
|
+
"maxzoom": 13,
|
10
|
+
"bounds": [
|
11
|
+
19.22222222200001,
|
12
|
+
39.74997750505241,
|
13
|
+
29.356941715411907,
|
14
|
+
43.083333000050004
|
15
|
+
],
|
16
|
+
"center": [
|
17
|
+
24.28958196870596,
|
18
|
+
41.41665525255121,
|
19
|
+
8
|
20
|
+
]
|
21
|
+
}
|