geoblacklight 3.4.0 → 3.7.0
Sign up to get free protection for your applications and to get access to all the features.
- 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
|
+
}
|