blacklight-maps 0.4.0 → 0.5.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/.travis.yml +13 -12
- data/README.md +2 -1
- data/app/assets/javascripts/blacklight-maps/blacklight-maps-browse.js +7 -1
- data/app/assets/stylesheets/blacklight_maps/{blacklight-maps.css.scss → blacklight-maps.scss} +0 -0
- data/app/assets/stylesheets/blacklight_maps/{default.css.scss → default.scss} +0 -0
- data/app/helpers/blacklight/blacklight_maps_helper_behavior.rb +6 -6
- data/app/views/catalog/_document_maps.html.erb +1 -1
- data/app/views/catalog/{_index_map.html.erb → _index_mapview.html.erb} +1 -1
- data/blacklight-maps.gemspec +1 -1
- data/config/jetty.yml +1 -1
- data/lib/blacklight/maps.rb +0 -13
- data/lib/blacklight/maps/controller_override.rb +4 -15
- data/lib/blacklight/maps/engine.rb +15 -16
- data/lib/blacklight/maps/maps_search_builder.rb +6 -1
- data/lib/blacklight/maps/render_constraints_override.rb +3 -4
- data/lib/blacklight/maps/version.rb +1 -1
- data/lib/generators/blacklight_maps/install_generator.rb +36 -0
- data/lib/generators/blacklight_maps/templates/saved_searches_controller.rb +5 -0
- data/lib/generators/blacklight_maps/templates/search_history_controller.rb +5 -0
- data/lib/railties/blacklight_maps.rake +3 -2
- data/spec/features/initial_view_spec.rb +2 -2
- data/spec/features/maps_spec.rb +2 -52
- data/spec/features/show_view_maplet_spec.rb +92 -0
- data/spec/fixtures/sample_solr_documents.yml +100 -0
- data/spec/helpers/blacklight_maps_helper_spec.rb +9 -6
- data/spec/lib/blacklight/maps/maps_search_builder_spec.rb +22 -31
- data/spec/test_app_templates/lib/generators/test_app_generator.rb +9 -0
- metadata +12 -8
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: bc71dc7dfe0b126d989b4076ee3caf03f16b319c
|
4
|
+
data.tar.gz: 94a0708fa6cab6c59b73e5c6519b95addc33efdf
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 1e9c2ca3243093244412d93dd265bd8b06ecaacd15892fdc9a92e2fbf15535df24205d56e81d9d46b77468e8d13ce61ff5d1556c24610eec1798c384302278de
|
7
|
+
data.tar.gz: de5b485da3d27a1b3b7d59db34bb62c47dedffd0db6e6ce91baf73e8d7becf8628c03d06ed050cf261e736d104f9859b5e482e7b38e65bc5866ca5217ddf32c7
|
data/.travis.yml
CHANGED
@@ -3,23 +3,24 @@ notifications:
|
|
3
3
|
language: ruby
|
4
4
|
sudo: false
|
5
5
|
rvm:
|
6
|
-
- 2.
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
6
|
+
- 2.3.0
|
7
|
+
|
8
|
+
matrix:
|
9
|
+
include:
|
10
|
+
- rvm: 2.2.4
|
11
|
+
env: "RAILS_VERSION=4.1.14"
|
12
|
+
|
13
|
+
before_install:
|
14
|
+
- gem install bundler
|
15
|
+
|
16
|
+
env:
|
17
|
+
- "RAILS_VERSION=4.2.6"
|
11
18
|
|
12
19
|
notifications:
|
13
20
|
irc: "irc.freenode.org#blacklight"
|
14
21
|
email:
|
15
22
|
- blacklight-commits@googlegroups.com
|
16
23
|
|
17
|
-
|
18
|
-
global:
|
19
|
-
- JRUBY_OPTS="-J-Xms512m -J-Xmx1024m"
|
24
|
+
global_env:
|
20
25
|
- NOKOGIRI_USE_SYSTEM_LIBRARIES=true
|
21
26
|
|
22
|
-
matrix:
|
23
|
-
allow_failures:
|
24
|
-
- rvm: jruby-19mode
|
25
|
-
- rvm: 1.9.3
|
data/README.md
CHANGED
@@ -196,7 +196,8 @@ The table below indicates which versions of Blacklight Maps are compatible with
|
|
196
196
|
|
197
197
|
Blacklight Maps version | works with Blacklight version
|
198
198
|
----------------------- | ---------------------
|
199
|
-
|
199
|
+
0.5.0 | >= 6.1.0
|
200
|
+
0.4.0 | >= 5.12.0 to < 6.*
|
200
201
|
<= 0.3.3 | >= 5.1 to <= 5.11.2
|
201
202
|
|
202
203
|
## Contributing
|
@@ -182,7 +182,13 @@
|
|
182
182
|
* Checks to see if there are any features in the markers MarkerClusterGroup
|
183
183
|
*/
|
184
184
|
function hasAnyFeatures() {
|
185
|
-
|
185
|
+
var has_features = false;
|
186
|
+
markers.eachLayer(function (layer) {
|
187
|
+
if (!$.isEmptyObject(layer)) {
|
188
|
+
has_features = true;
|
189
|
+
}
|
190
|
+
});
|
191
|
+
return has_features;
|
186
192
|
}
|
187
193
|
|
188
194
|
// remove stale params, add new params, and run a new search
|
data/app/assets/stylesheets/blacklight_maps/{blacklight-maps.css.scss → blacklight-maps.scss}
RENAMED
File without changes
|
File without changes
|
@@ -26,7 +26,7 @@ module Blacklight::BlacklightMapsHelperBehavior
|
|
26
26
|
def link_to_bbox_search bbox_coordinates
|
27
27
|
coords_for_search = bbox_coordinates.map { |v| v.to_s }
|
28
28
|
link_to(t('blacklight.maps.interactions.bbox_search'),
|
29
|
-
|
29
|
+
search_catalog_path(spatial_search_type: "bbox",
|
30
30
|
coordinates: "[#{coords_for_search[1]},#{coords_for_search[0]} TO #{coords_for_search[3]},#{coords_for_search[2]}]",
|
31
31
|
view: default_document_index_view_type))
|
32
32
|
end
|
@@ -36,11 +36,11 @@ module Blacklight::BlacklightMapsHelperBehavior
|
|
36
36
|
if params[:f] && params[:f][field] && params[:f][field].include?(field_value)
|
37
37
|
new_params = params
|
38
38
|
else
|
39
|
-
new_params = add_facet_params(field, field_value)
|
39
|
+
new_params = search_state.add_facet_params(field, field_value)
|
40
40
|
end
|
41
41
|
new_params[:view] = default_document_index_view_type
|
42
42
|
link_to(displayvalue.presence || field_value,
|
43
|
-
|
43
|
+
search_catalog_path(new_params.except(:id, :spatial_search_type, :coordinates)))
|
44
44
|
end
|
45
45
|
|
46
46
|
# create a link to a spatial search for a set of point coordinates
|
@@ -49,7 +49,7 @@ module Blacklight::BlacklightMapsHelperBehavior
|
|
49
49
|
new_params[:spatial_search_type] = "point"
|
50
50
|
new_params[:coordinates] = "#{point_coordinates[1]},#{point_coordinates[0]}"
|
51
51
|
new_params[:view] = default_document_index_view_type
|
52
|
-
link_to(t('blacklight.maps.interactions.point_search'),
|
52
|
+
link_to(t('blacklight.maps.interactions.point_search'), search_catalog_path(new_params))
|
53
53
|
end
|
54
54
|
|
55
55
|
# return the facet field containing geographic data
|
@@ -76,8 +76,8 @@ module Blacklight::BlacklightMapsHelperBehavior
|
|
76
76
|
end
|
77
77
|
|
78
78
|
# render the map for #index and #map views
|
79
|
-
def
|
80
|
-
render :partial => 'catalog/
|
79
|
+
def render_index_mapview
|
80
|
+
render :partial => 'catalog/index_mapview',
|
81
81
|
:locals => {:geojson_features => serialize_geojson(map_facet_values)}
|
82
82
|
end
|
83
83
|
|
@@ -1,6 +1,6 @@
|
|
1
1
|
<%= blacklight_map_tag('blacklight-index-map',
|
2
2
|
{data:{searchcontrol: true,
|
3
|
-
catalogpath:
|
3
|
+
catalogpath: search_catalog_path,
|
4
4
|
placenamefield: blacklight_config.view.maps.placename_field,
|
5
5
|
clustercount:'hits',
|
6
6
|
searchresultsview: default_document_index_view_type
|
data/blacklight-maps.gemspec
CHANGED
@@ -18,7 +18,7 @@ Gem::Specification.new do |spec|
|
|
18
18
|
spec.require_paths = ["lib"]
|
19
19
|
|
20
20
|
spec.add_dependency "rails"
|
21
|
-
spec.add_dependency "blacklight", ">=
|
21
|
+
spec.add_dependency "blacklight", ">= 6.1.0"
|
22
22
|
spec.add_dependency "bootstrap-sass", "~> 3.2"
|
23
23
|
spec.add_dependency "leaflet-rails"
|
24
24
|
spec.add_dependency "leaflet-markercluster-rails"
|
data/config/jetty.yml
CHANGED
data/lib/blacklight/maps.rb
CHANGED
@@ -9,18 +9,5 @@ module Blacklight
|
|
9
9
|
require 'blacklight/maps/geometry'
|
10
10
|
require 'blacklight/maps/maps_search_builder'
|
11
11
|
|
12
|
-
def self.inject!
|
13
|
-
CatalogController.send(:include, BlacklightMaps::ControllerOverride)
|
14
|
-
CatalogController.send(:include, BlacklightMaps::RenderConstraintsOverride)
|
15
|
-
CatalogController.send(:helper, BlacklightMaps::RenderConstraintsOverride) unless
|
16
|
-
CatalogController.helpers.is_a?(BlacklightMaps::RenderConstraintsOverride)
|
17
|
-
|
18
|
-
# inject into SearchHistory and SavedSearches so spatial queries display properly
|
19
|
-
SearchHistoryController.send(:helper, BlacklightMaps::RenderConstraintsOverride) unless
|
20
|
-
SearchHistoryController.helpers.is_a?(BlacklightMaps::RenderConstraintsOverride)
|
21
|
-
SavedSearchesController.send(:helper, BlacklightMaps::RenderConstraintsOverride) unless
|
22
|
-
SavedSearchesController.helpers.is_a?(BlacklightMaps::RenderConstraintsOverride)
|
23
|
-
end
|
24
|
-
|
25
12
|
end
|
26
13
|
end
|
@@ -1,25 +1,14 @@
|
|
1
1
|
module BlacklightMaps
|
2
2
|
module ControllerOverride
|
3
3
|
extend ActiveSupport::Concern
|
4
|
-
included do
|
5
|
-
|
6
|
-
if self.respond_to? :search_params_logic
|
7
|
-
search_params_logic << :add_spatial_search_to_solr
|
8
|
-
end
|
9
|
-
|
10
|
-
if self.blacklight_config.search_builder_class
|
11
|
-
self.blacklight_config.search_builder_class.send(:include,
|
12
|
-
BlacklightMaps::MapsSearchBuilder
|
13
|
-
) unless
|
14
|
-
self.blacklight_config.search_builder_class.include?(
|
15
|
-
BlacklightMaps::MapsSearchBuilder
|
16
|
-
)
|
17
|
-
end
|
18
4
|
|
5
|
+
included do
|
6
|
+
self.send(:include, BlacklightMaps::RenderConstraintsOverride)
|
7
|
+
self.send(:helper, BlacklightMaps::RenderConstraintsOverride)
|
19
8
|
end
|
20
9
|
|
21
10
|
def map
|
22
|
-
(@response, @document_list) = search_results(params
|
11
|
+
(@response, @document_list) = search_results(params)
|
23
12
|
params[:view] = 'maps'
|
24
13
|
respond_to do |format|
|
25
14
|
format.html
|
@@ -5,29 +5,28 @@ require 'leaflet-markercluster-rails'
|
|
5
5
|
module Blacklight
|
6
6
|
module Maps
|
7
7
|
class Engine < Rails::Engine
|
8
|
+
|
8
9
|
# Set some default configurations
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
10
|
+
initializer 'blacklight-maps.default_config' do |app|
|
11
|
+
Blacklight::Configuration.default_values[:view].maps.geojson_field = "geojson"
|
12
|
+
Blacklight::Configuration.default_values[:view].maps.placename_property = "placename"
|
13
|
+
Blacklight::Configuration.default_values[:view].maps.coordinates_field = "coordinates"
|
14
|
+
Blacklight::Configuration.default_values[:view].maps.search_mode = "placename" # or 'coordinates'
|
15
|
+
Blacklight::Configuration.default_values[:view].maps.spatial_query_dist = 0.5
|
16
|
+
Blacklight::Configuration.default_values[:view].maps.placename_field = "placename_field"
|
17
|
+
Blacklight::Configuration.default_values[:view].maps.coordinates_facet_field = "coordinates_facet_field"
|
18
|
+
Blacklight::Configuration.default_values[:view].maps.facet_mode = "geojson" # or 'coordinates'
|
19
|
+
Blacklight::Configuration.default_values[:view].maps.tileurl = "http://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png"
|
20
|
+
Blacklight::Configuration.default_values[:view].maps.mapattribution = 'Map data © <a href="http://openstreetmap.org">OpenStreetMap</a> contributors, <a href="http://creativecommons.org/licenses/by-sa/2.0/">CC-BY-SA</a>'
|
21
|
+
Blacklight::Configuration.default_values[:view].maps.maxzoom = 18
|
22
|
+
Blacklight::Configuration.default_values[:view].maps.show_initial_zoom = 5
|
23
|
+
end
|
21
24
|
|
22
25
|
# Add our helpers
|
23
26
|
initializer 'blacklight-maps.helpers' do |app|
|
24
27
|
ActionView::Base.send :include, BlacklightMapsHelper
|
25
28
|
end
|
26
29
|
|
27
|
-
config.to_prepare do
|
28
|
-
Blacklight::Maps.inject!
|
29
|
-
end
|
30
|
-
|
31
30
|
# This makes our rake tasks visible.
|
32
31
|
rake_tasks do
|
33
32
|
Dir.chdir(File.expand_path(File.join(File.dirname(__FILE__), '..', '..'))) do
|
@@ -1,5 +1,10 @@
|
|
1
1
|
module BlacklightMaps
|
2
|
-
module
|
2
|
+
module MapsSearchBuilderBehavior
|
3
|
+
extend ActiveSupport::Concern
|
4
|
+
|
5
|
+
included do
|
6
|
+
self.default_processor_chain += [:add_spatial_search_to_solr]
|
7
|
+
end
|
3
8
|
|
4
9
|
# add spatial search params to solr
|
5
10
|
def add_spatial_search_to_solr(solr_parameters = {})
|
@@ -40,15 +40,14 @@ module BlacklightMaps
|
|
40
40
|
# Render the spatial query constraints
|
41
41
|
def render_spatial_query(localized_params = params)
|
42
42
|
# So simple don't need a view template, we can just do it here.
|
43
|
-
scope = localized_params.delete(:route_set) || self
|
44
43
|
return ''.html_safe if localized_params[:coordinates].blank?
|
45
44
|
|
46
45
|
render_constraint_element(spatial_constraint_label(localized_params),
|
47
46
|
localized_params[:coordinates],
|
48
47
|
:classes => ['coordinates'],
|
49
|
-
:remove =>
|
50
|
-
|
51
|
-
|
48
|
+
:remove => remove_constraint_url(localized_params.merge(:coordinates=>nil,
|
49
|
+
:spatial_search_type=>nil,
|
50
|
+
:action=>'index')))
|
52
51
|
end
|
53
52
|
|
54
53
|
def spatial_constraint_label(params)
|
@@ -21,5 +21,41 @@ module BlacklightMaps
|
|
21
21
|
end
|
22
22
|
end
|
23
23
|
end
|
24
|
+
|
25
|
+
def inject_search_builder
|
26
|
+
inject_into_file 'app/models/search_builder.rb', after: /include Blacklight::Solr::SearchBuilderBehavior.*$/ do
|
27
|
+
"\n include BlacklightMaps::MapsSearchBuilderBehavior\n"
|
28
|
+
end
|
29
|
+
end
|
30
|
+
|
31
|
+
def install_catalog_controller_mixin
|
32
|
+
inject_into_file "app/controllers/catalog_controller.rb", after: /include Blacklight::Catalog.*$/ do
|
33
|
+
"\n include BlacklightMaps::ControllerOverride\n"
|
34
|
+
end
|
35
|
+
end
|
36
|
+
|
37
|
+
def install_search_history_controller
|
38
|
+
target_file = "app/controllers/search_history_controller.rb"
|
39
|
+
if File.exists?(target_file)
|
40
|
+
inject_into_file target_file, after: /include Blacklight::SearchHistory/ do
|
41
|
+
"\n helper BlacklightMaps::RenderConstraintsOverride\n"
|
42
|
+
end
|
43
|
+
else
|
44
|
+
copy_file "search_history_controller.rb", target_file
|
45
|
+
end
|
46
|
+
end
|
47
|
+
|
48
|
+
def install_saved_searches_controller
|
49
|
+
target_file = "app/controllers/saved_searches_controller.rb"
|
50
|
+
if File.exists?(target_file)
|
51
|
+
inject_into_file target_file, after: /include Blacklight::SavedSearches/ do
|
52
|
+
"\n helper BlacklightMaps::RenderConstraintsOverride\n"
|
53
|
+
end
|
54
|
+
else
|
55
|
+
copy_file "saved_searches_controller.rb", target_file
|
56
|
+
end
|
57
|
+
end
|
58
|
+
|
59
|
+
|
24
60
|
end
|
25
61
|
end
|
@@ -6,8 +6,9 @@ namespace :blacklight_maps do
|
|
6
6
|
desc "Put sample data into solr"
|
7
7
|
task :seed => :environment do
|
8
8
|
docs = YAML::load(File.open(File.expand_path(File.join('..', '..', '..', 'spec', 'fixtures', 'sample_solr_documents.yml'), __FILE__)))
|
9
|
-
Blacklight.
|
10
|
-
|
9
|
+
conn = Blacklight.default_index.connection
|
10
|
+
conn.add docs
|
11
|
+
conn.commit
|
11
12
|
end
|
12
13
|
end
|
13
14
|
end
|
@@ -9,13 +9,13 @@ feature 'Initial view parameter', js: true do
|
|
9
9
|
end
|
10
10
|
end
|
11
11
|
scenario 'defaults to zoom area of markers' do
|
12
|
-
visit
|
12
|
+
visit search_catalog_path f: { format: ['Book'] }, view: 'maps'
|
13
13
|
expect(page).to have_css '.leaflet-marker-icon.marker-cluster', count: 8
|
14
14
|
end
|
15
15
|
scenario 'when provided sets map to its view' do
|
16
16
|
map_tag = '<div id="blacklight-index-map" data-initialview="[[37.65, -122.56],[37.89, -122.27]]" data-maxzoom="18" data-tileurl="http://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png" data-mapattribution="Map data &copy; <a href="http://openstreetmap.org">OpenStreetMap</a> contributors, <a href="http://creativecommons.org/licenses/by-sa/2.0/">CC-BY-SA</a>" data-searchcontrol="true" data-catalogpath="/catalog" data-placenamefield="placename_field" data-clustercount="hits" />'.html_safe
|
17
17
|
expect_any_instance_of(Blacklight::BlacklightMapsHelperBehavior).to receive(:blacklight_map_tag).and_return(map_tag)
|
18
|
-
visit
|
18
|
+
visit search_catalog_path f: { format: ['Book'] }, view: 'maps'
|
19
19
|
expect(page).to_not have_css '.leaflet-marker-icon.marker-cluster'
|
20
20
|
end
|
21
21
|
end
|
data/spec/features/maps_spec.rb
CHANGED
@@ -16,7 +16,7 @@ describe "Map View", js: true do
|
|
16
16
|
config.add_facet_field 'geojson', :limit => -2, :label => 'GeoJSON', :show => false
|
17
17
|
config.add_facet_fields_to_solr_request!
|
18
18
|
end
|
19
|
-
visit
|
19
|
+
visit search_catalog_path :q => 'korea', :view => 'maps'
|
20
20
|
end
|
21
21
|
|
22
22
|
it "should display map elements" do
|
@@ -158,7 +158,7 @@ describe "Map View", js: true do
|
|
158
158
|
config.add_facet_fields_to_solr_request!
|
159
159
|
end
|
160
160
|
visit map_path
|
161
|
-
#print page.html # debugging
|
161
|
+
# print page.html # debugging
|
162
162
|
end
|
163
163
|
|
164
164
|
it "should display map elements" do
|
@@ -199,54 +199,4 @@ describe "Map View", js: true do
|
|
199
199
|
|
200
200
|
end
|
201
201
|
|
202
|
-
describe "catalog#show maplet view" do
|
203
|
-
|
204
|
-
before :each do
|
205
|
-
CatalogController.configure_blacklight do |config|
|
206
|
-
# add maplet to show partials
|
207
|
-
config.show.partials << :show_maplet
|
208
|
-
end
|
209
|
-
visit catalog_path('2008308175')
|
210
|
-
end
|
211
|
-
|
212
|
-
it "should show the maplet" do
|
213
|
-
expect(page).to have_selector("#blacklight-show-map")
|
214
|
-
end
|
215
|
-
|
216
|
-
it "should show the mapped item count" do
|
217
|
-
expect(page).to have_selector(".mapped-count .badge", text: "2")
|
218
|
-
end
|
219
|
-
|
220
|
-
it "should show a bounding box and a point marker" do
|
221
|
-
expect(page).to have_selector(".leaflet-overlay-pane path.leaflet-clickable")
|
222
|
-
expect(page).to have_selector(".leaflet-marker-icon")
|
223
|
-
end
|
224
|
-
|
225
|
-
describe "click marker icon" do
|
226
|
-
|
227
|
-
before { find(".leaflet-marker-icon").click }
|
228
|
-
|
229
|
-
it "should show a popup with correct content" do
|
230
|
-
expect(page).to have_selector("div.leaflet-popup-content-wrapper")
|
231
|
-
expect(page).to have_content("India")
|
232
|
-
end
|
233
|
-
|
234
|
-
end
|
235
|
-
|
236
|
-
describe "click bbox path" do
|
237
|
-
|
238
|
-
before do
|
239
|
-
0.upto(4) { find("a.leaflet-control-zoom-in").click } #so bbox not covered by point
|
240
|
-
find(".leaflet-overlay-pane svg").click
|
241
|
-
end
|
242
|
-
|
243
|
-
it "should show a popup with correct content" do
|
244
|
-
expect(page).to have_selector("div.leaflet-popup-content-wrapper")
|
245
|
-
expect(page).to have_content("[68.162386, 6.7535159, 97.395555, 35.5044752]")
|
246
|
-
end
|
247
|
-
|
248
|
-
end
|
249
|
-
|
250
|
-
end
|
251
|
-
|
252
202
|
end
|
@@ -0,0 +1,92 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe "catalog#show view", js: true do
|
4
|
+
|
5
|
+
before :each do
|
6
|
+
CatalogController.blacklight_config = Blacklight::Configuration.new
|
7
|
+
CatalogController.configure_blacklight do |config|
|
8
|
+
# add maplet to show view partials
|
9
|
+
config.show.partials << :show_maplet
|
10
|
+
end
|
11
|
+
end
|
12
|
+
|
13
|
+
describe "item with point feature" do
|
14
|
+
|
15
|
+
before :each do
|
16
|
+
visit solr_document_path("00314247")
|
17
|
+
end
|
18
|
+
|
19
|
+
it "should display the maplet" do
|
20
|
+
expect(page).to have_selector("#blacklight-show-map-container")
|
21
|
+
end
|
22
|
+
|
23
|
+
it "should have a single marker icon" do
|
24
|
+
expect(page).to have_selector(".leaflet-marker-icon", count: 1)
|
25
|
+
end
|
26
|
+
|
27
|
+
describe "click marker icon" do
|
28
|
+
|
29
|
+
before { find(".leaflet-marker-icon").click }
|
30
|
+
|
31
|
+
it "should show a popup with correct content" do
|
32
|
+
expect(page).to have_selector("div.leaflet-popup-content-wrapper")
|
33
|
+
expect(page).to have_content("Japan")
|
34
|
+
end
|
35
|
+
|
36
|
+
end
|
37
|
+
|
38
|
+
end
|
39
|
+
|
40
|
+
describe "item with point and bbox features" do
|
41
|
+
|
42
|
+
before :each do
|
43
|
+
visit solr_document_path("2008308175")
|
44
|
+
end
|
45
|
+
|
46
|
+
it "should show the correct mapped item count" do
|
47
|
+
expect(page).to have_selector(".mapped-count .badge", text: "2")
|
48
|
+
end
|
49
|
+
|
50
|
+
it "should show a bounding box and a point marker" do
|
51
|
+
expect(page).to have_selector(".leaflet-overlay-pane path.leaflet-clickable")
|
52
|
+
expect(page).to have_selector(".leaflet-marker-icon")
|
53
|
+
end
|
54
|
+
|
55
|
+
describe "click bbox path" do
|
56
|
+
|
57
|
+
before do
|
58
|
+
0.upto(4) { find("a.leaflet-control-zoom-in").click } #so bbox not covered by point
|
59
|
+
find(".leaflet-overlay-pane svg").click
|
60
|
+
end
|
61
|
+
|
62
|
+
it "should show a popup with correct content" do
|
63
|
+
expect(page).to have_selector("div.leaflet-popup-content-wrapper")
|
64
|
+
expect(page).to have_content("[68.162386, 6.7535159, 97.395555, 35.5044752]")
|
65
|
+
end
|
66
|
+
|
67
|
+
end
|
68
|
+
|
69
|
+
end
|
70
|
+
|
71
|
+
describe "item with bbox feature" do
|
72
|
+
|
73
|
+
before :each do
|
74
|
+
CatalogController.configure_blacklight do |config|
|
75
|
+
# set maxzoom so we can test whether initial zoom is correct
|
76
|
+
config.view.maps.maxzoom = 8
|
77
|
+
end
|
78
|
+
visit solr_document_path("2009373514")
|
79
|
+
end
|
80
|
+
|
81
|
+
it "should display a bounding box" do
|
82
|
+
expect(page).to have_selector(".leaflet-overlay-pane path.leaflet-clickable")
|
83
|
+
end
|
84
|
+
|
85
|
+
it "should zoom to the correct map bounds" do
|
86
|
+
# if initial zoom >= maxzoom, zoom-in control will be disabled
|
87
|
+
expect(page).to have_selector(".leaflet-control-zoom-in.leaflet-disabled")
|
88
|
+
end
|
89
|
+
|
90
|
+
end
|
91
|
+
|
92
|
+
end
|
@@ -2759,3 +2759,103 @@
|
|
2759
2759
|
coordinates:
|
2760
2760
|
- 113.835078 22.1533884 114.4069561 22.561968
|
2761
2761
|
- 114.109497 22.396428
|
2762
|
+
- subject_addl_t:
|
2763
|
+
- 1990-
|
2764
|
+
- 2005-2015
|
2765
|
+
- Economic conditions 1997-
|
2766
|
+
- Politics and government 1997-
|
2767
|
+
title_display: Test item with bounding box only
|
2768
|
+
subject_era_facet:
|
2769
|
+
- 1990-
|
2770
|
+
- 2005-2015
|
2771
|
+
- 1997-
|
2772
|
+
id: '2009373514'
|
2773
|
+
isbn_t:
|
2774
|
+
- '9789573908678'
|
2775
|
+
- '9573908670'
|
2776
|
+
subject_geo_facet:
|
2777
|
+
- Economic history
|
2778
|
+
- World politics
|
2779
|
+
- Hong Kong (China)
|
2780
|
+
lc_alpha_facet:
|
2781
|
+
- HC
|
2782
|
+
title_series_t:
|
2783
|
+
- Lin Xingzhi zuo pin ji ; 51
|
2784
|
+
author_t:
|
2785
|
+
- Lin, Xingzhi.
|
2786
|
+
lc_1letter_facet:
|
2787
|
+
- H - Social Sciences
|
2788
|
+
marc_display: "<?xml version=\"1.0\" encoding=\"UTF-8\"?><collection xmlns=\"http://www.loc.gov/MARC21/slim\"><record><leader>01213nam
|
2789
|
+
a22003614a 4500</leader><controlfield tag=\"001\"> 2009373513</controlfield><controlfield
|
2790
|
+
tag=\"003\">DLC</controlfield><controlfield tag=\"005\">20090121153231.0</controlfield><controlfield
|
2791
|
+
tag=\"008\">090114s2008 ch 000 0 chi d</controlfield><datafield
|
2792
|
+
tag=\"010\" ind1=\" \" ind2=\" \"><subfield code=\"a\"> 2009373513</subfield></datafield><datafield
|
2793
|
+
tag=\"020\" ind1=\" \" ind2=\" \"><subfield code=\"a\">9789573908678</subfield></datafield><datafield
|
2794
|
+
tag=\"020\" ind1=\" \" ind2=\" \"><subfield code=\"a\">9573908670</subfield></datafield><datafield
|
2795
|
+
tag=\"035\" ind1=\" \" ind2=\" \"><subfield code=\"a\">(OCoLC)ocn268619391</subfield></datafield><datafield
|
2796
|
+
tag=\"040\" ind1=\" \" ind2=\" \"><subfield code=\"a\">HUA</subfield><subfield
|
2797
|
+
code=\"c\">HUA</subfield><subfield code=\"d\">HKP</subfield><subfield code=\"d\">DLC</subfield></datafield><datafield
|
2798
|
+
tag=\"042\" ind1=\" \" ind2=\" \"><subfield code=\"a\">lccopycat</subfield></datafield><datafield
|
2799
|
+
tag=\"043\" ind1=\" \" ind2=\" \"><subfield code=\"a\">a-cc-hk</subfield></datafield><datafield
|
2800
|
+
tag=\"050\" ind1=\"0\" ind2=\"0\"><subfield code=\"a\">HC59.15</subfield><subfield
|
2801
|
+
code=\"b\">.L533 2008</subfield></datafield><datafield tag=\"066\" ind1=\" \"
|
2802
|
+
ind2=\" \"><subfield code=\"c\">$1</subfield></datafield><datafield tag=\"100\"
|
2803
|
+
ind1=\"1\" ind2=\" \"><subfield code=\"6\">880-01</subfield><subfield code=\"a\">Lin,
|
2804
|
+
Xingzhi.</subfield></datafield><datafield tag=\"245\" ind1=\"1\" ind2=\"0\"><subfield
|
2805
|
+
code=\"6\">880-02</subfield><subfield code=\"a\">Ci an zhou bian /</subfield><subfield
|
2806
|
+
code=\"c\">Lin Xingzhi zhu.</subfield></datafield><datafield tag=\"250\" ind1=\"
|
2807
|
+
\" ind2=\" \"><subfield code=\"6\">880-03</subfield><subfield code=\"a\">Chu ban.</subfield></datafield><datafield
|
2808
|
+
tag=\"260\" ind1=\" \" ind2=\" \"><subfield code=\"6\">880-04</subfield><subfield
|
2809
|
+
code=\"a\">Taibei Xian Banqiao Shi :</subfield><subfield code=\"b\">Yuan jing
|
2810
|
+
chu ban shi ye you xian gong si,</subfield><subfield code=\"c\">2008.</subfield></datafield><datafield
|
2811
|
+
tag=\"300\" ind1=\" \" ind2=\" \"><subfield code=\"a\">5, 300 p. ;</subfield><subfield
|
2812
|
+
code=\"c\">21 cm.</subfield></datafield><datafield tag=\"490\" ind1=\"0\" ind2=\"
|
2813
|
+
\"><subfield code=\"6\">880-05</subfield><subfield code=\"a\">Lin Xingzhi zuo
|
2814
|
+
pin ji ;</subfield><subfield code=\"v\">51</subfield></datafield><datafield tag=\"651\"
|
2815
|
+
ind1=\" \" ind2=\"0\"><subfield code=\"a\">Economic history</subfield><subfield
|
2816
|
+
code=\"y\">1990-</subfield></datafield><datafield tag=\"651\" ind1=\" \" ind2=\"0\"><subfield
|
2817
|
+
code=\"a\">World politics</subfield><subfield code=\"y\">2005-2015.</subfield></datafield><datafield
|
2818
|
+
tag=\"651\" ind1=\" \" ind2=\"0\"><subfield code=\"a\">Hong Kong (China)</subfield><subfield
|
2819
|
+
code=\"x\">Economic conditions</subfield><subfield code=\"y\">1997-</subfield></datafield><datafield
|
2820
|
+
tag=\"651\" ind1=\" \" ind2=\"0\"><subfield code=\"a\">Hong Kong (China)</subfield><subfield
|
2821
|
+
code=\"x\">Politics and government</subfield><subfield code=\"y\">1997-</subfield></datafield><datafield
|
2822
|
+
tag=\"880\" ind1=\"1\" ind2=\" \"><subfield code=\"6\">100-01/$1</subfield><subfield
|
2823
|
+
code=\"a\">林行止.</subfield></datafield><datafield tag=\"880\" ind1=\"1\" ind2=\"0\"><subfield
|
2824
|
+
code=\"6\">245-02/$1</subfield><subfield code=\"a\">次按驟變 /</subfield><subfield
|
2825
|
+
code=\"c\">林行止著.</subfield></datafield><datafield tag=\"880\" ind1=\" \" ind2=\"
|
2826
|
+
\"><subfield code=\"6\">250-03/$1</subfield><subfield code=\"a\">初版.</subfield></datafield><datafield
|
2827
|
+
tag=\"880\" ind1=\" \" ind2=\" \"><subfield code=\"6\">260-04/$1</subfield><subfield
|
2828
|
+
code=\"a\">臺北縣板橋市 :</subfield><subfield code=\"b\">遠景出版事業有限公司,</subfield><subfield
|
2829
|
+
code=\"c\">2008.</subfield></datafield><datafield tag=\"880\" ind1=\"0\" ind2=\"
|
2830
|
+
\"><subfield code=\"6\">490-05/$1</subfield><subfield code=\"a\">林行止作品集 ;</subfield><subfield
|
2831
|
+
code=\"v\">51</subfield></datafield></record></collection>"
|
2832
|
+
published_display:
|
2833
|
+
- Taibei Xian Banqiao Shi
|
2834
|
+
author_display: Lin, Xingzhi
|
2835
|
+
lc_callnum_display:
|
2836
|
+
- HC59.15 .L533 2008
|
2837
|
+
title_t:
|
2838
|
+
- Test item with bounding box only /
|
2839
|
+
pub_date:
|
2840
|
+
- '2008'
|
2841
|
+
pub_date_sort: 2008
|
2842
|
+
format: Book
|
2843
|
+
lc_b4cutter_facet:
|
2844
|
+
- HC59.15
|
2845
|
+
material_type_display:
|
2846
|
+
- 5, 300 p.
|
2847
|
+
subject_t:
|
2848
|
+
- Economic history
|
2849
|
+
- World politics
|
2850
|
+
- Hong Kong (China)
|
2851
|
+
title_sort: test item with bounding box only
|
2852
|
+
author_sort: Lin Xingzhi Ci an zhou bian
|
2853
|
+
title_addl_t:
|
2854
|
+
- Ci an zhou bian /
|
2855
|
+
language_facet:
|
2856
|
+
- Chinese
|
2857
|
+
timestamp: '2014-02-03T18:42:53.056Z'
|
2858
|
+
geojson:
|
2859
|
+
- "{\"type\":\"Feature\",\"geometry\":{\"type\":\"Polygon\",\"coordinates\":[[[115.1, 20.1], [118.1, 20.1], [118.1, 21.1], [115.1, 21.1], [115.1, 20.1]]]},\"bbox\":[115.1, 20.1, 118.1, 21.1]}"
|
2860
|
+
coordinates:
|
2861
|
+
- 115.1 20.1 118.1 21.1
|
@@ -4,10 +4,11 @@ require 'spec_helper'
|
|
4
4
|
describe BlacklightMapsHelper do
|
5
5
|
|
6
6
|
let(:blacklight_config) { Blacklight::Configuration.new }
|
7
|
+
let(:search_state) { Blacklight::SearchState.new({}, blacklight_config) }
|
7
8
|
|
8
9
|
def create_response
|
9
10
|
raw_response = eval(mock_query_response)
|
10
|
-
Blacklight::
|
11
|
+
Blacklight::Solr::Response.new(raw_response, raw_response['params'])
|
11
12
|
end
|
12
13
|
|
13
14
|
let(:r) { create_response }
|
@@ -20,6 +21,8 @@ describe BlacklightMapsHelper do
|
|
20
21
|
CatalogController.blacklight_config = Blacklight::Configuration.new
|
21
22
|
@request = ActionDispatch::TestRequest.new
|
22
23
|
@catalog = CatalogController.new
|
24
|
+
allow(helper).to receive_messages(blacklight_configuration_context: Blacklight::Configuration::Context.new(@catalog))
|
25
|
+
allow(helper).to receive(:search_state).and_return(search_state)
|
23
26
|
@catalog.request = @request
|
24
27
|
@catalog.action_name = "index"
|
25
28
|
helper.instance_variable_set(:@_controller, @catalog)
|
@@ -120,9 +123,9 @@ describe BlacklightMapsHelper do
|
|
120
123
|
@response = r
|
121
124
|
end
|
122
125
|
|
123
|
-
it "should return an array of Blacklight::
|
126
|
+
it "should return an array of Blacklight::Solr::Response::Facets::FacetItem items" do
|
124
127
|
expect(helper.map_facet_values.class).to eq(Array)
|
125
|
-
expect(helper.map_facet_values.first.class).to eq(Blacklight::
|
128
|
+
expect(helper.map_facet_values.first.class).to eq(Blacklight::Solr::Response::Facets::FacetItem)
|
126
129
|
expect(helper.map_facet_values.length).to eq(5)
|
127
130
|
end
|
128
131
|
|
@@ -136,14 +139,14 @@ describe BlacklightMapsHelper do
|
|
136
139
|
|
137
140
|
end
|
138
141
|
|
139
|
-
describe "
|
142
|
+
describe "render_index_mapview" do
|
140
143
|
|
141
144
|
before do
|
142
145
|
@response = r
|
143
146
|
end
|
144
147
|
|
145
|
-
it "should render the 'catalog/
|
146
|
-
expect(helper.
|
148
|
+
it "should render the 'catalog/index_mapview' partial" do
|
149
|
+
expect(helper.render_index_mapview).to include("$('#blacklight-index-map').blacklight_leaflet_map")
|
147
150
|
end
|
148
151
|
|
149
152
|
end
|
@@ -1,55 +1,46 @@
|
|
1
1
|
require 'spec_helper'
|
2
2
|
|
3
|
-
describe BlacklightMaps::
|
3
|
+
describe BlacklightMaps::MapsSearchBuilderBehavior do
|
4
4
|
|
5
|
-
|
6
|
-
|
5
|
+
let(:blacklight_config) { CatalogController.blacklight_config.deep_copy }
|
6
|
+
let(:user_params) { Hash.new }
|
7
|
+
let(:context) { CatalogController.new }
|
7
8
|
|
8
|
-
|
9
|
-
include BlacklightMaps::MapsSearchBuilder
|
9
|
+
before { allow(context).to receive(:blacklight_config).and_return(blacklight_config) }
|
10
10
|
|
11
|
-
|
12
|
-
|
13
|
-
|
11
|
+
let(:search_builder_class) do
|
12
|
+
Class.new(Blacklight::SearchBuilder) do
|
13
|
+
include Blacklight::Solr::SearchBuilderBehavior
|
14
|
+
include BlacklightMaps::MapsSearchBuilderBehavior
|
14
15
|
end
|
15
|
-
|
16
16
|
end
|
17
17
|
|
18
|
-
let(:
|
19
|
-
let(:blacklight_params) { Hash.new }
|
20
|
-
let(:solr_parameters) { Blacklight::Solr::Request.new }
|
21
|
-
|
22
|
-
describe "add_spatial_search_to_solr" do
|
18
|
+
let(:search_builder) { search_builder_class.new(context) }
|
23
19
|
|
24
|
-
|
20
|
+
describe 'add_spatial_search_to_solr' do
|
25
21
|
|
26
|
-
describe
|
22
|
+
describe 'coordinate search' do
|
27
23
|
|
28
|
-
|
29
|
-
@obj.blacklight_params[:coordinates] = "35.86166,104.195397"
|
30
|
-
@obj.blacklight_params[:spatial_search_type] = "point"
|
31
|
-
end
|
24
|
+
subject { search_builder.with({coordinates: '35.86166,104.195397', spatial_search_type: 'point'}) }
|
32
25
|
|
33
|
-
it
|
34
|
-
expect(
|
35
|
-
expect(
|
26
|
+
it 'should return a coordinate point spatial search if coordinates are given' do
|
27
|
+
expect(subject[:fq].first).to include('geofilt')
|
28
|
+
expect(subject[:pt]).to eq('35.86166,104.195397')
|
36
29
|
end
|
37
30
|
|
38
31
|
end
|
39
32
|
|
40
|
-
describe
|
33
|
+
describe 'bbox search' do
|
41
34
|
|
42
|
-
|
43
|
-
|
44
|
-
@obj.blacklight_params[:spatial_search_type] = "bbox"
|
45
|
-
end
|
35
|
+
subject { search_builder.with({coordinates: '[6.7535159,68.162386 TO 35.5044752,97.395555]',
|
36
|
+
spatial_search_type: 'bbox'}) }
|
46
37
|
|
47
|
-
it
|
48
|
-
expect(
|
38
|
+
it 'should return a bbox spatial search if a bbox is given' do
|
39
|
+
expect(subject[:fq].first).to include(blacklight_config.view.maps.coordinates_field)
|
49
40
|
end
|
50
41
|
|
51
42
|
end
|
52
43
|
|
53
44
|
end
|
54
45
|
|
55
|
-
end
|
46
|
+
end
|
@@ -1,6 +1,7 @@
|
|
1
1
|
require 'rails/generators'
|
2
2
|
|
3
3
|
class TestAppGenerator < Rails::Generators::Base
|
4
|
+
source_root "../../spec/test_app_templates"
|
4
5
|
|
5
6
|
def remove_index
|
6
7
|
remove_file "public/index.html"
|
@@ -20,4 +21,12 @@ class TestAppGenerator < Rails::Generators::Base
|
|
20
21
|
generate 'blacklight_maps:install'
|
21
22
|
end
|
22
23
|
|
24
|
+
def configure_test_assets
|
25
|
+
insert_into_file 'config/environments/test.rb', :after => 'Rails.application.configure do' do
|
26
|
+
%q{
|
27
|
+
config.assets.digest = false
|
28
|
+
}
|
29
|
+
end
|
30
|
+
end
|
31
|
+
|
23
32
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: blacklight-maps
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.5.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Chris Beer
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date:
|
12
|
+
date: 2016-06-16 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: rails
|
@@ -31,14 +31,14 @@ dependencies:
|
|
31
31
|
requirements:
|
32
32
|
- - ">="
|
33
33
|
- !ruby/object:Gem::Version
|
34
|
-
version:
|
34
|
+
version: 6.1.0
|
35
35
|
type: :runtime
|
36
36
|
prerelease: false
|
37
37
|
version_requirements: !ruby/object:Gem::Requirement
|
38
38
|
requirements:
|
39
39
|
- - ">="
|
40
40
|
- !ruby/object:Gem::Version
|
41
|
-
version:
|
41
|
+
version: 6.1.0
|
42
42
|
- !ruby/object:Gem::Dependency
|
43
43
|
name: bootstrap-sass
|
44
44
|
requirement: !ruby/object:Gem::Requirement
|
@@ -197,12 +197,12 @@ files:
|
|
197
197
|
- Rakefile
|
198
198
|
- app/assets/javascripts/blacklight-maps.js
|
199
199
|
- app/assets/javascripts/blacklight-maps/blacklight-maps-browse.js
|
200
|
-
- app/assets/stylesheets/blacklight_maps/blacklight-maps.
|
201
|
-
- app/assets/stylesheets/blacklight_maps/default.
|
200
|
+
- app/assets/stylesheets/blacklight_maps/blacklight-maps.scss
|
201
|
+
- app/assets/stylesheets/blacklight_maps/default.scss
|
202
202
|
- app/helpers/blacklight/blacklight_maps_helper_behavior.rb
|
203
203
|
- app/helpers/blacklight_maps_helper.rb
|
204
204
|
- app/views/catalog/_document_maps.html.erb
|
205
|
-
- app/views/catalog/
|
205
|
+
- app/views/catalog/_index_mapview.html.erb
|
206
206
|
- app/views/catalog/_map_placename_search.html.erb
|
207
207
|
- app/views/catalog/_map_spatial_search.html.erb
|
208
208
|
- app/views/catalog/_show_maplet_default.html.erb
|
@@ -225,12 +225,15 @@ files:
|
|
225
225
|
- lib/blacklight/maps/version.rb
|
226
226
|
- lib/generators/blacklight_maps/install_generator.rb
|
227
227
|
- lib/generators/blacklight_maps/templates/blacklight_maps.css.scss
|
228
|
+
- lib/generators/blacklight_maps/templates/saved_searches_controller.rb
|
229
|
+
- lib/generators/blacklight_maps/templates/search_history_controller.rb
|
228
230
|
- lib/railties/blacklight_maps.rake
|
229
231
|
- solr_conf/conf/schema.xml
|
230
232
|
- solr_conf/conf/solrconfig.xml
|
231
233
|
- spec/controllers/catalog_controller_spec.rb
|
232
234
|
- spec/features/initial_view_spec.rb
|
233
235
|
- spec/features/maps_spec.rb
|
236
|
+
- spec/features/show_view_maplet_spec.rb
|
234
237
|
- spec/fixtures/sample_solr_documents.yml
|
235
238
|
- spec/helpers/blacklight_maps_helper_spec.rb
|
236
239
|
- spec/lib/blacklight/maps/export_spec.rb
|
@@ -260,7 +263,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
260
263
|
version: '0'
|
261
264
|
requirements: []
|
262
265
|
rubyforge_project:
|
263
|
-
rubygems_version: 2.
|
266
|
+
rubygems_version: 2.4.6
|
264
267
|
signing_key:
|
265
268
|
specification_version: 4
|
266
269
|
summary: Maps for Blacklight
|
@@ -268,6 +271,7 @@ test_files:
|
|
268
271
|
- spec/controllers/catalog_controller_spec.rb
|
269
272
|
- spec/features/initial_view_spec.rb
|
270
273
|
- spec/features/maps_spec.rb
|
274
|
+
- spec/features/show_view_maplet_spec.rb
|
271
275
|
- spec/fixtures/sample_solr_documents.yml
|
272
276
|
- spec/helpers/blacklight_maps_helper_spec.rb
|
273
277
|
- spec/lib/blacklight/maps/export_spec.rb
|