geoblacklight 4.0.0.pre.alpha.3 → 4.0.0.pre.rc3
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/ISSUE_TEMPLATE.md +1 -1
- data/.github/workflows/ruby.yml +32 -103
- data/.gitignore +1 -0
- data/.rubocop.yml +12 -6
- data/.rubocop_todo.yml +0 -3
- data/.solr_wrapper +2 -0
- data/README.md +1 -4
- data/Rakefile +0 -1
- data/app/assets/images/blacklight/child-item.svg +3 -0
- data/app/assets/images/blacklight/collections.svg +4 -0
- data/app/assets/images/blacklight/datasets.svg +7 -0
- data/app/assets/images/blacklight/geoblacklight-icons.json +363 -332
- data/app/assets/images/blacklight/imagery.svg +4 -0
- data/app/assets/images/blacklight/maps.svg +4 -0
- data/app/assets/images/blacklight/parent-item.svg +3 -0
- data/app/assets/images/blacklight/university-of-colorado-boulder.svg +6 -0
- data/app/assets/images/blacklight/websites.svg +4 -0
- data/app/assets/javascripts/geoblacklight/controls/fullscreen.js +8 -0
- data/app/assets/javascripts/geoblacklight/geoblacklight.js +2 -1
- data/app/assets/javascripts/geoblacklight/viewers/esri.js +1 -0
- data/app/assets/javascripts/geoblacklight/viewers/index_map.js +1 -0
- 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/viewer.js +3 -0
- 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/app/assets/stylesheets/geoblacklight/geoblacklight.scss +1 -0
- data/app/assets/stylesheets/geoblacklight/modules/_base.scss +0 -1
- data/app/assets/stylesheets/geoblacklight/modules/_styles.scss +5 -1
- data/app/assets/stylesheets/geoblacklight/modules/downloads.scss +20 -47
- data/app/assets/stylesheets/geoblacklight/modules/index_maps.scss +68 -0
- data/app/assets/stylesheets/geoblacklight/modules/item.scss +16 -0
- data/app/assets/stylesheets/geoblacklight/modules/modal.scss +6 -0
- data/app/assets/stylesheets/geoblacklight/modules/sidebar.scss +4 -0
- data/app/components/geoblacklight/icon_facet_item_component.rb +33 -0
- data/app/controllers/wms_controller.rb +1 -1
- data/app/helpers/geoblacklight_helper.rb +6 -45
- data/app/models/concerns/geoblacklight/bbox_filter_field.rb +64 -0
- data/app/models/concerns/geoblacklight/bbox_filter_query.rb +50 -0
- data/app/models/concerns/geoblacklight/solr_document.rb +1 -1
- data/app/models/concerns/geoblacklight/suppressed_records_search_behavior.rb +31 -0
- data/app/presenters/geoblacklight/bbox_item_presenter.rb +9 -0
- data/app/views/catalog/_downloads_collapse.html.erb +27 -0
- data/app/views/catalog/_header_icons.html.erb +2 -2
- data/app/views/catalog/_index_split_default.html.erb +2 -2
- data/app/views/catalog/_show_default_viewer_container.html.erb +17 -0
- data/app/views/catalog/_show_downloads.html.erb +10 -21
- data/app/views/catalog/_show_sidebar.html.erb +3 -0
- data/app/views/catalog/_show_web_services.html.erb +11 -0
- data/app/views/catalog/_web_services.html.erb +3 -2
- data/app/views/catalog/web_services.html.erb +1 -1
- data/app/views/shared/_header_navbar.html.erb +13 -3
- data/config/locales/geoblacklight.en.yml +6 -1
- data/geoblacklight.gemspec +7 -7
- data/lib/generators/geoblacklight/assets_generator.rb +1 -1
- data/lib/generators/geoblacklight/install_generator.rb +18 -1
- data/lib/generators/geoblacklight/templates/assets/_customizations.scss +5 -4
- data/lib/generators/geoblacklight/templates/assets/application.scss +0 -3
- data/lib/generators/geoblacklight/templates/catalog_controller.rb +86 -57
- data/lib/generators/geoblacklight/templates/settings.gbl_v1.yml +5 -5
- data/lib/generators/geoblacklight/templates/settings.yml +62 -25
- data/lib/geoblacklight/bounding_box.rb +5 -1
- data/lib/geoblacklight/constants.rb +3 -0
- data/lib/geoblacklight/download.rb +1 -1
- data/lib/geoblacklight/engine.rb +7 -4
- data/lib/geoblacklight/faraday_middleware/follow_redirects.rb +176 -0
- data/lib/geoblacklight/item_viewer.rb +13 -1
- data/lib/geoblacklight/metadata/base.rb +2 -1
- data/lib/geoblacklight/metadata_transformer/base.rb +1 -1
- data/lib/geoblacklight/version.rb +1 -1
- data/lib/geoblacklight/view_helper_override.rb +2 -28
- data/lib/geoblacklight.rb +0 -10
- data/lib/tasks/geoblacklight.rake +1 -1
- data/schema/geoblacklight-schema-aardvark.json +3 -23
- data/solr/conf/schema.xml +37 -43
- data/solr/conf/solrconfig.xml +17 -17
- data/spec/components/geoblacklight/icon_facet_item_component_spec.rb +17 -0
- data/spec/config/initializers/rails_config_spec.rb +1 -1
- data/spec/controllers/catalog_controller_spec.rb +8 -8
- data/spec/controllers/download_controller_spec.rb +4 -4
- data/spec/controllers/relation_controller_spec.rb +1 -1
- data/spec/controllers/wms_controller_spec.rb +2 -4
- data/spec/features/download_layer_spec.rb +31 -14
- data/spec/features/esri_viewer_spec.rb +5 -1
- data/spec/features/full_screen_controll_spec.rb +15 -0
- data/spec/features/home_page_spec.rb +2 -2
- data/spec/features/index_map_spec.rb +2 -2
- data/spec/features/missing_metadata_spec.rb +1 -1
- data/spec/features/multiple_downloads_spec.rb +2 -1
- data/spec/features/relations_spec.rb +12 -1
- data/spec/features/saved_searches_spec.rb +1 -1
- data/spec/features/search_results_complex_geometry_spec.rb +24 -0
- data/spec/features/search_results_icons_spec.rb +16 -0
- data/spec/features/search_results_map_spec.rb +2 -2
- data/spec/features/search_spec.rb +17 -0
- data/spec/features/show_page_download_spec.rb +6 -3
- data/spec/features/show_page_metadata_spec.rb +2 -2
- data/spec/features/split_view.html.erb_spec.rb +12 -1
- data/spec/features/tilejson_spec.rb +22 -0
- data/spec/features/tms_spec.rb +2 -2
- data/spec/features/web_services_modal_spec.rb +35 -2
- 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/README.md +46 -43
- data/spec/fixtures/solr_documents/actual-papermap1.json +2 -1
- data/spec/fixtures/solr_documents/actual-point1.json +2 -1
- data/spec/fixtures/solr_documents/actual-polygon1.json +2 -1
- data/spec/fixtures/solr_documents/actual-raster1.json +3 -2
- data/spec/fixtures/solr_documents/b1g_wabash_child_15.json +62 -0
- data/spec/fixtures/solr_documents/b1g_wabash_child_16.json +64 -0
- data/spec/fixtures/solr_documents/b1g_wabash_child_17.json +62 -0
- data/spec/fixtures/solr_documents/b1g_wabash_child_18.json +62 -0
- data/spec/fixtures/solr_documents/b1g_wabash_parent.json +59 -0
- data/spec/fixtures/solr_documents/baruch_ancestor1.json +2 -1
- data/spec/fixtures/solr_documents/baruch_ancestor2.json +2 -1
- data/spec/fixtures/solr_documents/baruch_documentation_download.json +1 -1
- data/spec/fixtures/solr_documents/bbox-spans-180.json +2 -1
- data/spec/fixtures/solr_documents/cornell_html_metadata.json +4 -3
- data/spec/fixtures/solr_documents/esri-dynamic-layer-all-layers.json +3 -2
- data/spec/fixtures/solr_documents/esri-dynamic-layer-single-layer.json +3 -2
- data/spec/fixtures/solr_documents/esri-feature-layer.json +2 -1
- data/spec/fixtures/solr_documents/esri-image-map-layer.json +3 -2
- data/spec/fixtures/solr_documents/esri-tiled_map_layer.json +2 -1
- data/spec/fixtures/solr_documents/esri-wms-layer.json +2 -1
- data/spec/fixtures/solr_documents/harvard_raster.json +3 -2
- data/spec/fixtures/solr_documents/iiif-eastern-hemisphere.json +3 -2
- data/spec/fixtures/solr_documents/index-map-polygon-no-downloadurl.json +2 -1
- data/spec/fixtures/solr_documents/index-map-polygon.json +2 -1
- data/spec/fixtures/solr_documents/index-map-stanford.json +2 -1
- data/spec/fixtures/solr_documents/index_map_point.json +3 -2
- data/spec/fixtures/solr_documents/metadata_no_provider.json +2 -1
- data/spec/fixtures/solr_documents/multiple-downloads.json +3 -2
- data/spec/fixtures/solr_documents/no_spatial.json +1 -4
- data/spec/fixtures/solr_documents/oembed.json +2 -1
- data/spec/fixtures/solr_documents/princeton-child1.json +3 -2
- data/spec/fixtures/solr_documents/princeton-child2.json +3 -2
- data/spec/fixtures/solr_documents/princeton-child3.json +2 -1
- data/spec/fixtures/solr_documents/princeton-child4.json +3 -2
- data/spec/fixtures/solr_documents/princeton-parent.json +5 -3
- data/spec/fixtures/solr_documents/public_direct_download.json +2 -1
- data/spec/fixtures/solr_documents/public_iiif_princeton.json +3 -2
- data/spec/fixtures/solr_documents/public_polygon_mit.json +2 -1
- data/spec/fixtures/solr_documents/restricted-line.json +2 -1
- data/spec/fixtures/solr_documents/tilejson.json +48 -0
- data/spec/fixtures/solr_documents/tms.json +15 -18
- data/spec/fixtures/solr_documents/umn_metro_result1.json +5 -3
- data/spec/fixtures/solr_documents/umn_state_result1.json +3 -2
- data/spec/fixtures/solr_documents/umn_state_result2.json +3 -5
- data/spec/fixtures/solr_documents/uva_slug_colon.json +2 -1
- data/spec/fixtures/solr_documents/wmts-multiple.json +41 -0
- data/spec/fixtures/solr_documents/wmts-single-layer.json +48 -0
- data/spec/fixtures/solr_documents/xyz.json +46 -0
- data/spec/helpers/geoblacklight_helper_spec.rb +14 -37
- data/spec/lib/geoblacklight/document_presenter_spec.rb +3 -3
- data/spec/lib/geoblacklight/download/geojson_download_spec.rb +1 -1
- data/spec/lib/geoblacklight/download/geotiff_download_spec.rb +1 -1
- data/spec/lib/geoblacklight/download/kmz_download_spec.rb +1 -1
- data/spec/lib/geoblacklight/download/shapefile_download_spec.rb +1 -1
- data/spec/lib/geoblacklight/download_spec.rb +2 -2
- data/spec/lib/geoblacklight/metadata/base_spec.rb +19 -1
- data/spec/lib/geoblacklight/metadata_transformer/fgdc_spec.rb +1 -1
- data/spec/lib/geoblacklight/metadata_transformer/iso19139_spec.rb +1 -1
- data/spec/lib/geoblacklight/references_spec.rb +5 -3
- data/spec/lib/geoblacklight/relation/relation_response_spec.rb +5 -0
- data/spec/lib/geoblacklight/view_helper_override_spec.rb +0 -10
- data/spec/lib/geoblacklight/wms_layer_spec.rb +1 -1
- data/spec/models/concerns/geoblacklight/bbox_filter_field_spec.rb +96 -0
- data/spec/models/concerns/geoblacklight/bbox_filter_query_spec.rb +105 -0
- data/spec/models/concerns/geoblacklight/solr_document/inspection_spec.rb +2 -1
- data/spec/models/concerns/geoblacklight/suppressed_records_search_behavior_spec.rb +31 -0
- data/spec/presenters/geoblacklight/bbox_item_presenter_spec.rb +36 -0
- data/spec/spec_helper.rb +8 -3
- data/spec/test_app_templates/Gemfile.extra +1 -0
- data/spec/test_app_templates/lib/generators/test_app_generator.rb +4 -4
- data/spec/views/catalog/_results_pagination.html.erb_spec.rb +1 -1
- data/spec/views/catalog/_show_downloads.html.erb_spec.rb +6 -6
- data/template.rb +2 -4
- data/vendor/assets/images/fullscreen.png +0 -0
- data/vendor/assets/images/fullscreen@2x.png +0 -0
- data/vendor/assets/javascripts/Leaflet.fullscreen.js +152 -0
- data/vendor/assets/javascripts/esri-leaflet.js +10 -3
- data/vendor/assets/javascripts/esri-leaflet.js.map +1 -1
- data/vendor/assets/javascripts/leaflet-iiif.js +39 -18
- data/vendor/assets/javascripts/leaflet-src.js.erb +14126 -0
- data/vendor/assets/javascripts/leaflet-src.js.map +1 -1
- data/vendor/assets/stylesheets/leaflet.css +640 -634
- data/vendor/assets/stylesheets/leaflet.fullscreen.css +40 -0
- metadata +102 -49
- data/app/models/concerns/geoblacklight/spatial_search_behavior.rb +0 -71
- data/app/views/catalog/_download_generated_link.html.erb +0 -4
- data/app/views/catalog/_download_link.html.erb +0 -3
- data/app/views/catalog/_downloads_generated.html.erb +0 -6
- data/app/views/catalog/_downloads_primary.html.erb +0 -21
- data/app/views/catalog/_downloads_secondary.html.erb +0 -39
- data/app/views/catalog/_icon_facet.html.erb +0 -16
- data/bin/coverage.rb +0 -36
- data/lib/generators/geoblacklight/templates/Procfile +0 -3
- data/lib/generators/geoblacklight/templates/package.json +0 -14
- data/lib/generators/geoblacklight/templates/webpacker.yml +0 -67
- data/lib/generators/geoblacklight/webpacker_generator.rb +0 -36
- data/lib/geoblacklight/catalog_helper_override.rb +0 -14
- data/spec/models/concerns/geoblacklight/spatial_search_behavior_spec.rb +0 -97
- data/vendor/assets/javascripts/leaflet.js.erb +0 -13922
- data/vendor/assets/stylesheets/leaflet-label.css +0 -54
@@ -0,0 +1,64 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Geoblacklight
|
4
|
+
class BboxFilterField < Blacklight::SearchState::FilterField
|
5
|
+
# this accessor is unnecessary after Blacklight 7.25.0
|
6
|
+
attr_accessor :filters_key
|
7
|
+
|
8
|
+
def initialize(*args)
|
9
|
+
super
|
10
|
+
@filters_key = :bbox
|
11
|
+
end
|
12
|
+
|
13
|
+
# @param [String,#value] a filter item to add to the url
|
14
|
+
# @return [Blacklight::SearchState] new state
|
15
|
+
def add(item)
|
16
|
+
new_state = search_state.reset_search
|
17
|
+
params = new_state.params
|
18
|
+
value = as_url_parameter(item)
|
19
|
+
|
20
|
+
params[filters_key] = value.to_param
|
21
|
+
|
22
|
+
new_state.reset(params)
|
23
|
+
end
|
24
|
+
|
25
|
+
# @param [String,#value] a filter to remove from the url
|
26
|
+
# @return [Blacklight::SearchState] new state
|
27
|
+
def remove(_item)
|
28
|
+
new_state = search_state.reset_search
|
29
|
+
params = new_state.params
|
30
|
+
|
31
|
+
params.delete(filters_key)
|
32
|
+
new_state.reset(params)
|
33
|
+
end
|
34
|
+
|
35
|
+
# @return [Array] an array of applied filters
|
36
|
+
def values(except: [])
|
37
|
+
params = search_state.params
|
38
|
+
return [] if except.include?(:filters) || params[filters_key].blank?
|
39
|
+
|
40
|
+
[Geoblacklight::BoundingBox.from_rectangle(params[filters_key])]
|
41
|
+
rescue Geoblacklight::Exceptions::WrongBoundingBoxFormat => e
|
42
|
+
Rails.logger.warn(e)
|
43
|
+
|
44
|
+
[]
|
45
|
+
end
|
46
|
+
|
47
|
+
# @param [String,#value] a filter to remove from the url
|
48
|
+
# @return [Boolean] whether the provided filter is currently applied/selected
|
49
|
+
delegate :include?, to: :values
|
50
|
+
|
51
|
+
# @since Blacklight v7.25.0
|
52
|
+
# normal filter fields demangle when they encounter a hash, which they assume to be a number-indexed map
|
53
|
+
def needs_normalization?(value_params)
|
54
|
+
value_params.is_a?(Hash) && value_params.keys.map(&:to_s).all? { |k| k =~ /^\d+$/ }
|
55
|
+
end
|
56
|
+
|
57
|
+
# @since Blacklight v7.25.0
|
58
|
+
# value should be the first value from a mangled hash,
|
59
|
+
# otherwise return the value as-is
|
60
|
+
def normalize(value_params)
|
61
|
+
needs_normalization?(value_params) ? value_params.values : value_params
|
62
|
+
end
|
63
|
+
end
|
64
|
+
end
|
@@ -0,0 +1,50 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Geoblacklight
|
4
|
+
class BboxFilterQuery
|
5
|
+
def self.call(_search_builder, filter, solr_params)
|
6
|
+
bbox_filter_query = Geoblacklight::BboxFilterQuery.new(filter, solr_params)
|
7
|
+
|
8
|
+
[bbox_filter_query.intersects_filter, bbox_filter_query.relevancy_boost]
|
9
|
+
end
|
10
|
+
|
11
|
+
def initialize(filter, solr_params)
|
12
|
+
@filter = filter
|
13
|
+
@solr_params = solr_params
|
14
|
+
end
|
15
|
+
|
16
|
+
def intersects_filter
|
17
|
+
"#{@filter.key}:\"Intersects(#{envelope_bounds})\""
|
18
|
+
end
|
19
|
+
|
20
|
+
def relevancy_boost
|
21
|
+
boosted_params = @solr_params.slice(:bq, :bf)
|
22
|
+
|
23
|
+
boosted_params[:bq] ||= []
|
24
|
+
boosted_params[:bq] << "#{@filter.key}:\"IsWithin(#{envelope_bounds})\"#{boost}"
|
25
|
+
|
26
|
+
if field_config.overlap_boost
|
27
|
+
boosted_params[:bf] ||= []
|
28
|
+
boosted_params[:overlap] =
|
29
|
+
"{!field uf=* defType=lucene f=#{field_config.overlap_field} score=overlapRatio}Intersects(#{envelope_bounds})"
|
30
|
+
boosted_params[:bf] << "$overlap^#{field_config.overlap_boost}"
|
31
|
+
end
|
32
|
+
|
33
|
+
boosted_params
|
34
|
+
end
|
35
|
+
|
36
|
+
def envelope_bounds
|
37
|
+
@filter.values.first.to_envelope
|
38
|
+
end
|
39
|
+
|
40
|
+
def boost
|
41
|
+
"^#{field_config.within_boost || '10'}"
|
42
|
+
end
|
43
|
+
|
44
|
+
private
|
45
|
+
|
46
|
+
def field_config
|
47
|
+
@filter.config
|
48
|
+
end
|
49
|
+
end
|
50
|
+
end
|
@@ -0,0 +1,31 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
module Geoblacklight
|
3
|
+
module SuppressedRecordsSearchBehavior
|
4
|
+
extend ActiveSupport::Concern
|
5
|
+
|
6
|
+
included do
|
7
|
+
self.default_processor_chain += [:hide_suppressed_records]
|
8
|
+
end
|
9
|
+
|
10
|
+
##
|
11
|
+
# Hide suppressed records in search
|
12
|
+
# @param [Blacklight::Solr::Request]
|
13
|
+
# @return [Blacklight::Solr::Request]
|
14
|
+
def hide_suppressed_records(solr_params)
|
15
|
+
# Show suppressed records when searching relationships
|
16
|
+
return if blacklight_params.fetch(:f,
|
17
|
+
{}).keys.any? do |field|
|
18
|
+
Settings.RELATIONSHIPS_SHOWN.map do |_key, value|
|
19
|
+
value.field
|
20
|
+
end.include?(field)
|
21
|
+
end
|
22
|
+
|
23
|
+
# Do not suppress action_documents method calls for individual documents
|
24
|
+
# ex. CatalogController#web_services (exportable views)
|
25
|
+
return if solr_params[:q]&.include?("{!lucene}#{Settings.FIELDS.ID}:")
|
26
|
+
|
27
|
+
solr_params[:fq] ||= []
|
28
|
+
solr_params[:fq] << "-#{Settings.FIELDS.SUPPRESSED}: true"
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
@@ -0,0 +1,27 @@
|
|
1
|
+
<%# Renders the options of the downloads dropdown button %>
|
2
|
+
<% document ||= @document %>
|
3
|
+
|
4
|
+
<% if document.direct_download.present? %>
|
5
|
+
<% if document.direct_download[:download].is_a? Array %>
|
6
|
+
<% document.direct_download[:download].each do |download| %>
|
7
|
+
<%= download_link_file(download['label'], document.id, download['url']) %>
|
8
|
+
<% end %>
|
9
|
+
<% end %>
|
10
|
+
<% if document.direct_download[:download].is_a? String %>
|
11
|
+
<%= download_link_file(download_text(document.file_format), document.id, document.direct_download[:download]) %>
|
12
|
+
<% end %>
|
13
|
+
<% end %>
|
14
|
+
|
15
|
+
<% if document.hgl_download.present? %>
|
16
|
+
<%= download_link_hgl(download_text(document.download_types.first[0]), document) %>
|
17
|
+
<% end %>
|
18
|
+
|
19
|
+
<% if document.iiif_download.present? %>
|
20
|
+
<%= download_link_iiif %>
|
21
|
+
<% end %>
|
22
|
+
|
23
|
+
<% if document.download_types.present? %>
|
24
|
+
<% document.download_types.each do |type| %>
|
25
|
+
<%= download_link_generated(type.first, document) %>
|
26
|
+
<% end %>
|
27
|
+
<% end %>
|
@@ -1,3 +1,3 @@
|
|
1
|
-
<%= geoblacklight_icon(document[Settings.FIELDS.
|
1
|
+
<%= geoblacklight_icon(document[Settings.FIELDS.RESOURCE_CLASS]&.first, classes: 'svg_tooltip') %>
|
2
2
|
<%= geoblacklight_icon(document[Settings.FIELDS.PROVIDER], classes: 'svg_tooltip') %>
|
3
|
-
<%= geoblacklight_icon(document[Settings.FIELDS.
|
3
|
+
<%= geoblacklight_icon(document[Settings.FIELDS.ACCESS_RIGHTS], classes: 'svg_tooltip') %>
|
@@ -5,7 +5,7 @@
|
|
5
5
|
<span class="document-counter">
|
6
6
|
<%= t('blacklight.search.documents.counter', :counter => counter) if counter %>
|
7
7
|
</span>
|
8
|
-
<%= link_to_document document, counter: counter %>
|
8
|
+
<%= link_to_document document, counter: counter, itemprop: "name" %>
|
9
9
|
</h3>
|
10
10
|
<span class='status-icons'>
|
11
11
|
<%= render partial: 'header_icons', locals: { document: document } %>
|
@@ -23,7 +23,7 @@
|
|
23
23
|
|
24
24
|
<div class='more-info-area'>
|
25
25
|
<div id="doc-<%= document.id %>-fields-collapse" class='collapse'>
|
26
|
-
<small>
|
26
|
+
<small itemprop="description">
|
27
27
|
<%= geoblacklight_present(:index_fields_display, document) %>
|
28
28
|
</small>
|
29
29
|
</div>
|
@@ -6,6 +6,23 @@
|
|
6
6
|
<%= render_help_text_entry('viewer_protocol', document.viewer_protocol) %>
|
7
7
|
<% end %>
|
8
8
|
|
9
|
+
<% if document.item_viewer.index_map %>
|
10
|
+
<div class="index-map-legend">
|
11
|
+
<div class="index-map-legend-info">
|
12
|
+
<span class="index-map-legend-default"></span>
|
13
|
+
<p><span class="sr-only">Green tile indicates </span>Map held by collection</p>
|
14
|
+
</div>
|
15
|
+
<div class="index-map-legend-info">
|
16
|
+
<span class="index-map-legend-unavailable"></span>
|
17
|
+
<p><span class="sr-only">Yellow tile indicates </span>Map not held by collection</p>
|
18
|
+
</div>
|
19
|
+
<div class="index-map-legend-info">
|
20
|
+
<span class="index-map-legend-selected"></span>
|
21
|
+
<p><span class="sr-only">Blue tile indicates </span>Selected map tile</p>
|
22
|
+
</div>
|
23
|
+
</div>
|
24
|
+
<% end %>
|
25
|
+
|
9
26
|
<%= content_tag :div, id: 'map', aria: { label: t('geoblacklight.map.label') }, data: { map: 'item', protocol: document.viewer_protocol.camelize, url: document.viewer_endpoint, 'layer-id' => document.wxs_identifier, 'map-geom' => document.geometry.geojson, 'catalog-path'=> search_catalog_path, available: document_available?, inspect: show_attribute_table?, basemap: geoblacklight_basemap, leaflet_options: leaflet_options } do %>
|
10
27
|
<% end %>
|
11
28
|
</div>
|
@@ -1,28 +1,17 @@
|
|
1
1
|
<% document ||= @document %>
|
2
2
|
|
3
3
|
<% if document_downloadable? %>
|
4
|
-
<% if document.direct_download.present? || document.hgl_download.present? || document.iiif_download.present? %>
|
5
|
-
<div class="
|
6
|
-
|
7
|
-
|
4
|
+
<% if document.direct_download.present? || document.hgl_download.present? || document.iiif_download.present? || document.download_types.present? %>
|
5
|
+
<div class="downloads-sidebar">
|
6
|
+
<%# the dropdown-toggle class gives us the little arrow %>
|
7
|
+
<button type="button" class="btn btn-primary dropdown-toggle sidebar-btn" id="downloads-button" data-toggle="collapse" data-target="#downloads-collapse" aria-expanded="false" aria-controls="downloads-collapse">
|
8
|
+
Download
|
9
|
+
</button>
|
10
|
+
<div class="collapse" id="downloads-collapse">
|
11
|
+
<div class="card card-body">
|
12
|
+
<%= render 'downloads_collapse' %>
|
13
|
+
</div>
|
8
14
|
</div>
|
9
|
-
|
10
|
-
<ul class="list-group list-group-flush js-download-list">
|
11
|
-
<%= render 'downloads_primary' %>
|
12
|
-
</ul>
|
13
|
-
</div>
|
14
|
-
<% end %>
|
15
|
-
|
16
|
-
<% if document.download_types.present? %>
|
17
|
-
<div class="card exports">
|
18
|
-
<div class="card-header">
|
19
|
-
|
20
|
-
<h2><%= t('geoblacklight.download.export_formats') %></h2>
|
21
|
-
</div>
|
22
|
-
|
23
|
-
<ul class="list-group list-group-flush">
|
24
|
-
<%= render 'downloads_generated' %>
|
25
|
-
</ul>
|
26
15
|
</div>
|
27
16
|
<% end %>
|
28
17
|
<% elsif document.restricted? && document.same_institution? %>
|
@@ -0,0 +1,11 @@
|
|
1
|
+
<% document ||= @document %>
|
2
|
+
|
3
|
+
<% if (Settings.WEBSERVICES_SHOWN & document.references.refs.map(&:type).map(&:to_s)).any? %>
|
4
|
+
<div class="web-services-sidebar">
|
5
|
+
<%= link_to "Web services",
|
6
|
+
web_services_solr_document_path(id: document.id),
|
7
|
+
class: ['btn', 'btn-primary', 'sidebar-btn'],
|
8
|
+
id: "web-services-button",
|
9
|
+
data: {blacklight_modal: "trigger"} %>
|
10
|
+
</div>
|
11
|
+
<% end %>
|
@@ -2,7 +2,8 @@
|
|
2
2
|
|
3
3
|
<% document.references.refs.each do |reference| %>
|
4
4
|
<% if Settings.WEBSERVICES_SHOWN.include? reference.type.to_s %>
|
5
|
-
|
6
|
-
|
5
|
+
<div class="web-services-modal-entry">
|
6
|
+
<%= render_web_services(reference) %>
|
7
|
+
</div>
|
7
8
|
<% end %>
|
8
9
|
<% end %>
|
@@ -10,11 +10,16 @@
|
|
10
10
|
</div>
|
11
11
|
</div>
|
12
12
|
</nav>
|
13
|
-
|
13
|
+
<%- renderable_fields = blacklight_config.search_fields.values.collect { |field_def| [label_for_search_field(field_def.key), field_def.key] if should_render_field?(field_def)}.compact %>
|
14
14
|
<% if controller_name == 'catalog' && (has_search_parameters? || params[:action] == 'show') %>
|
15
15
|
<div class="navbar-search navbar navbar-light bg-faded" role="navigation">
|
16
16
|
<div class="<%= container_classes %> stuff">
|
17
|
-
<%=
|
17
|
+
<%= render((blacklight_config&.view_config(document_index_view_type)&.search_bar_component ||Blacklight::SearchBarComponent).new(
|
18
|
+
url: search_action_url,
|
19
|
+
advanced_search_url: search_action_url(action: 'advanced_search'),
|
20
|
+
search_fields: renderable_fields,
|
21
|
+
params: search_state.params_for_search.except(:qt),
|
22
|
+
autocomplete_path: search_action_path(action: :suggest))) %>
|
18
23
|
</div>
|
19
24
|
</div>
|
20
25
|
<% else %>
|
@@ -28,7 +33,12 @@
|
|
28
33
|
<div class='row justify-content-md-center'>
|
29
34
|
<div class='col-md-6 col-sm-12'>
|
30
35
|
<div class='navbar-search'>
|
31
|
-
<%=
|
36
|
+
<%= render((blacklight_config&.view_config(document_index_view_type)&.search_bar_component ||Blacklight::SearchBarComponent).new(
|
37
|
+
url: search_action_url,
|
38
|
+
advanced_search_url: search_action_url(action: 'advanced_search'),
|
39
|
+
search_fields: renderable_fields,
|
40
|
+
params: search_state.params_for_search.except(:qt),
|
41
|
+
autocomplete_path: search_action_path(action: :suggest))) %>
|
32
42
|
</div>
|
33
43
|
</div>
|
34
44
|
</div>
|
@@ -16,10 +16,11 @@ en:
|
|
16
16
|
error: 'Sorry, the requested file could not be downloaded'
|
17
17
|
error_with_url: 'Sorry, the requested file could not be downloaded. Try downloading it directly from: %{link}'
|
18
18
|
export_formats: 'Export Formats'
|
19
|
-
export_link: 'Export'
|
19
|
+
export_link: 'Export %{download_format}'
|
20
20
|
export_shapefile_link: 'Shapefile'
|
21
21
|
export_kmz_link: 'KMZ'
|
22
22
|
export_geojson_link: 'GeoJSON'
|
23
|
+
export_geotiff_link: 'GeoTIFF'
|
23
24
|
home:
|
24
25
|
headline: 'Explore and discover...'
|
25
26
|
search_heading: 'Find the maps and data you need'
|
@@ -65,11 +66,15 @@ en:
|
|
65
66
|
services: 'Web services'
|
66
67
|
services_close: 'Close'
|
67
68
|
tms: 'Tile Map Service'
|
69
|
+
tilejson: 'TileJSON Document'
|
70
|
+
xyz: 'XYZ Tiles'
|
71
|
+
wmts: 'Web Map Tile Service'
|
68
72
|
relations:
|
69
73
|
ancestor: 'Source Datasets'
|
70
74
|
descendant: 'Derived Datasets'
|
71
75
|
member_of: 'Belongs to collection...'
|
72
76
|
part_of: 'Is part of...'
|
77
|
+
part_of_descendants: 'Has part...'
|
73
78
|
relation: 'Related Records'
|
74
79
|
replaces: 'Item replaces...'
|
75
80
|
replaced_by: 'Item replaced by...'
|
data/geoblacklight.gemspec
CHANGED
@@ -19,11 +19,10 @@ Gem::Specification.new do |spec|
|
|
19
19
|
spec.require_paths = ['lib']
|
20
20
|
spec.required_rubygems_version = '>= 2.5.2'
|
21
21
|
|
22
|
-
spec.add_dependency 'rails', '>=
|
23
|
-
spec.add_dependency 'blacklight', '~> 7.
|
22
|
+
spec.add_dependency 'rails', '>= 6.1', '< 7.1'
|
23
|
+
spec.add_dependency 'blacklight', '~> 7.12'
|
24
24
|
spec.add_dependency 'config'
|
25
|
-
spec.add_dependency 'faraday', '
|
26
|
-
spec.add_dependency 'faraday_middleware', '~> 1.0.0.rc1'
|
25
|
+
spec.add_dependency 'faraday', '>= 1.0'
|
27
26
|
spec.add_dependency 'coderay'
|
28
27
|
spec.add_dependency 'deprecation'
|
29
28
|
spec.add_dependency 'geo_combine', '~> 0.4'
|
@@ -41,7 +40,8 @@ Gem::Specification.new do |spec|
|
|
41
40
|
spec.add_development_dependency 'database_cleaner', '~> 1.3'
|
42
41
|
spec.add_development_dependency 'simplecov', '~> 0.17.1'
|
43
42
|
spec.add_development_dependency 'foreman'
|
44
|
-
spec.add_development_dependency 'rubocop', '~> 1.
|
45
|
-
spec.add_development_dependency 'rubocop-rails', '~> 2.
|
46
|
-
spec.add_development_dependency 'rubocop-rspec', '~> 2.
|
43
|
+
spec.add_development_dependency 'rubocop', '~> 1.25'
|
44
|
+
spec.add_development_dependency 'rubocop-rails', '~> 2.13'
|
45
|
+
spec.add_development_dependency 'rubocop-rspec', '~> 2.8'
|
46
|
+
spec.add_development_dependency 'webmock', '~> 3.14'
|
47
47
|
end
|
@@ -17,7 +17,7 @@ module Geoblacklight
|
|
17
17
|
def add_javascript
|
18
18
|
copy_file 'assets/geoblacklight.js', 'app/assets/javascripts/geoblacklight.js'
|
19
19
|
|
20
|
-
if Rails.version.to_i
|
20
|
+
if Rails.version.to_i >= 6
|
21
21
|
append_to_file 'app/assets/javascripts/application.js',
|
22
22
|
"\n// Required by GeoBlacklight\n//= require geoblacklight"
|
23
23
|
end
|
@@ -7,6 +7,23 @@ module Geoblacklight
|
|
7
7
|
|
8
8
|
desc 'Install Geoblacklight'
|
9
9
|
|
10
|
+
def allow_geoblacklight_params
|
11
|
+
gbl_params = <<-"PARAMS"
|
12
|
+
before_action :allow_geoblacklight_params
|
13
|
+
|
14
|
+
def allow_geoblacklight_params
|
15
|
+
# Blacklight::Parameters will pass these to params.permit
|
16
|
+
blacklight_config.search_state_fields.append(Settings.GBL_PARAMS)
|
17
|
+
end
|
18
|
+
PARAMS
|
19
|
+
|
20
|
+
inject_into_file 'app/controllers/application_controller.rb', gbl_params, before: /^end/
|
21
|
+
end
|
22
|
+
|
23
|
+
def raise_unpermitted_params
|
24
|
+
inject_into_file 'config/environments/test.rb', "config.action_controller.action_on_unpermitted_parameters = :raise\n", before: /^end/
|
25
|
+
end
|
26
|
+
|
10
27
|
def mount_geoblacklight_engine
|
11
28
|
inject_into_file 'config/routes.rb', "mount Geoblacklight::Engine => 'geoblacklight'\n", before: /^end/
|
12
29
|
end
|
@@ -62,7 +79,7 @@ module Geoblacklight
|
|
62
79
|
|
63
80
|
def add_spatial_search_behavior
|
64
81
|
inject_into_file 'app/models/search_builder.rb', after: 'include Blacklight::Solr::SearchBuilderBehavior' do
|
65
|
-
"\n include Geoblacklight::
|
82
|
+
"\n include Geoblacklight::SuppressedRecordsSearchBehavior"
|
66
83
|
end
|
67
84
|
end
|
68
85
|
|
@@ -13,16 +13,17 @@ $logo-image: image_url('blacklight/logo.svg') !default;
|
|
13
13
|
// Override default Bootstrap variables here
|
14
14
|
|
15
15
|
// Example: Bootstrap Colors
|
16
|
-
$blue: #
|
16
|
+
$blue: #0d6efd !default;
|
17
17
|
$indigo: #6610f2 !default;
|
18
18
|
$purple: #6f42c1 !default;
|
19
|
-
$pink: #
|
19
|
+
$pink: #d63384 !default;
|
20
20
|
$red: #dc3545 !default;
|
21
21
|
$orange: #fd7e14 !default;
|
22
22
|
$yellow: #ffc107 !default;
|
23
|
-
$green: #
|
23
|
+
$green: #198754 !default;
|
24
24
|
$teal: #20c997 !default;
|
25
|
-
$cyan: #
|
25
|
+
$cyan: #0dcaf0 !default;
|
26
|
+
$dark: #212529 !default; // $gray-900
|
26
27
|
|
27
28
|
// Example: Bootstrap Link color
|
28
29
|
$link-color: $blue;
|