geoblacklight 2.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +7 -0
- data/.circleci/config.yml +195 -0
- data/.github/ISSUE_TEMPLATE.md +17 -0
- data/.gitignore +21 -0
- data/.gitmodules +0 -0
- data/.hound.yml +8 -0
- data/.jshintignore +2 -0
- data/.jshintrc +67 -0
- data/.rubocop.yml +99 -0
- data/.rubocop_todo.yml +196 -0
- data/.solr_wrapper +5 -0
- data/CODE_OF_CONDUCT.md +76 -0
- data/CONTRIBUTING.md +49 -0
- data/Gemfile +39 -0
- data/LICENSE.txt +13 -0
- data/README.md +39 -0
- data/Rakefile +125 -0
- data/app/assets/images/blacklight/arrow-circle-down.svg +4 -0
- data/app/assets/images/blacklight/baruch-cuny.svg +6 -0
- data/app/assets/images/blacklight/berkeley.svg +7 -0
- data/app/assets/images/blacklight/book.svg +6 -0
- data/app/assets/images/blacklight/bookmark.svg +6 -0
- data/app/assets/images/blacklight/cd-rom.svg +6 -0
- data/app/assets/images/blacklight/chicago.svg +7 -0
- data/app/assets/images/blacklight/columbia.svg +6 -0
- data/app/assets/images/blacklight/cornell.svg +8 -0
- data/app/assets/images/blacklight/dvd-rom.svg +6 -0
- data/app/assets/images/blacklight/email.svg +6 -0
- data/app/assets/images/blacklight/esri-globe.svg +34 -0
- data/app/assets/images/blacklight/geoblacklight-icons.json +2079 -0
- data/app/assets/images/blacklight/globe.svg +4 -0
- data/app/assets/images/blacklight/harvard.svg +6 -0
- data/app/assets/images/blacklight/home.svg +4 -0
- data/app/assets/images/blacklight/illinois.svg +7 -0
- data/app/assets/images/blacklight/image.svg +6 -0
- data/app/assets/images/blacklight/indiana.svg +6 -0
- data/app/assets/images/blacklight/iowa.svg +6 -0
- data/app/assets/images/blacklight/leaf.svg +6 -0
- data/app/assets/images/blacklight/lewis-clark.svg +8 -0
- data/app/assets/images/blacklight/line.svg +7 -0
- data/app/assets/images/blacklight/logo.svg +1 -0
- data/app/assets/images/blacklight/map-marker.svg +6 -0
- data/app/assets/images/blacklight/map.svg +6 -0
- data/app/assets/images/blacklight/maryland.svg +6 -0
- data/app/assets/images/blacklight/massgis.svg +6 -0
- data/app/assets/images/blacklight/metadata.svg +6 -0
- data/app/assets/images/blacklight/michigan-state.svg +7 -0
- data/app/assets/images/blacklight/michigan.svg +6 -0
- data/app/assets/images/blacklight/minnesota.svg +6 -0
- data/app/assets/images/blacklight/mit.svg +6 -0
- data/app/assets/images/blacklight/mixed.svg +8 -0
- data/app/assets/images/blacklight/multilinestring.svg +9 -0
- data/app/assets/images/blacklight/multipoint.svg +6 -0
- data/app/assets/images/blacklight/multipolygon.svg +9 -0
- data/app/assets/images/blacklight/nyu.svg +9 -0
- data/app/assets/images/blacklight/ohio-state.svg +8 -0
- data/app/assets/images/blacklight/pagelines-brands.svg +6 -0
- data/app/assets/images/blacklight/paper-map.svg +6 -0
- data/app/assets/images/blacklight/penn-state.svg +7 -0
- data/app/assets/images/blacklight/point.svg +6 -0
- data/app/assets/images/blacklight/polygon.svg +7 -0
- data/app/assets/images/blacklight/polyline.svg +9 -0
- data/app/assets/images/blacklight/princeton.svg +6 -0
- data/app/assets/images/blacklight/public.svg +6 -0
- data/app/assets/images/blacklight/purdue.svg +7 -0
- data/app/assets/images/blacklight/raster.svg +6 -0
- data/app/assets/images/blacklight/restricted.svg +6 -0
- data/app/assets/images/blacklight/sms.svg +6 -0
- data/app/assets/images/blacklight/stanford.svg +6 -0
- data/app/assets/images/blacklight/table.svg +6 -0
- data/app/assets/images/blacklight/tags.svg +4 -0
- data/app/assets/images/blacklight/texas.svg +6 -0
- data/app/assets/images/blacklight/tufts.svg +6 -0
- data/app/assets/images/blacklight/ucla.svg +6 -0
- data/app/assets/images/blacklight/uva.svg +6 -0
- data/app/assets/images/blacklight/web_services.svg +6 -0
- data/app/assets/images/blacklight/wisconsin.svg +6 -0
- data/app/assets/javascripts/geoblacklight/basemaps.js +85 -0
- data/app/assets/javascripts/geoblacklight/controls.js +1 -0
- data/app/assets/javascripts/geoblacklight/controls/opacity.js +6 -0
- data/app/assets/javascripts/geoblacklight/downloaders.js +1 -0
- data/app/assets/javascripts/geoblacklight/downloaders/downloader.js +61 -0
- data/app/assets/javascripts/geoblacklight/downloaders/hgl_downloader.js +32 -0
- data/app/assets/javascripts/geoblacklight/geoblacklight.js +42 -0
- data/app/assets/javascripts/geoblacklight/modules.js +1 -0
- data/app/assets/javascripts/geoblacklight/modules/collapse.js +7 -0
- data/app/assets/javascripts/geoblacklight/modules/download.js +11 -0
- data/app/assets/javascripts/geoblacklight/modules/geosearch.js +133 -0
- data/app/assets/javascripts/geoblacklight/modules/help_text.js +7 -0
- data/app/assets/javascripts/geoblacklight/modules/home.js +16 -0
- data/app/assets/javascripts/geoblacklight/modules/item.js +13 -0
- data/app/assets/javascripts/geoblacklight/modules/layer_opacity.js +68 -0
- data/app/assets/javascripts/geoblacklight/modules/metadata.js +15 -0
- data/app/assets/javascripts/geoblacklight/modules/metadata_download_button.js +53 -0
- data/app/assets/javascripts/geoblacklight/modules/relations.js +14 -0
- data/app/assets/javascripts/geoblacklight/modules/results.js +82 -0
- data/app/assets/javascripts/geoblacklight/modules/util.js +38 -0
- data/app/assets/javascripts/geoblacklight/templates/index_map_download.hbs +19 -0
- data/app/assets/javascripts/geoblacklight/templates/index_map_info.hbs +40 -0
- data/app/assets/javascripts/geoblacklight/viewers.js +1 -0
- data/app/assets/javascripts/geoblacklight/viewers/esri.js +77 -0
- data/app/assets/javascripts/geoblacklight/viewers/esri/dynamic_map_layer.js +85 -0
- data/app/assets/javascripts/geoblacklight/viewers/esri/feature_layer.js +76 -0
- data/app/assets/javascripts/geoblacklight/viewers/esri/image_map_layer.js +14 -0
- data/app/assets/javascripts/geoblacklight/viewers/esri/tiled_map_layer.js +50 -0
- data/app/assets/javascripts/geoblacklight/viewers/iiif.js +25 -0
- data/app/assets/javascripts/geoblacklight/viewers/index_map.js +70 -0
- data/app/assets/javascripts/geoblacklight/viewers/map.js +67 -0
- data/app/assets/javascripts/geoblacklight/viewers/oembed.js +13 -0
- data/app/assets/javascripts/geoblacklight/viewers/viewer.js +65 -0
- data/app/assets/javascripts/geoblacklight/viewers/wms.js +74 -0
- data/app/assets/stylesheets/geoblacklight/_blacklight_overrides.scss +51 -0
- data/app/assets/stylesheets/geoblacklight/_geoblacklight.scss +36 -0
- data/app/assets/stylesheets/geoblacklight/_styles.scss +4 -0
- data/app/assets/stylesheets/geoblacklight/application.scss +2 -0
- data/app/assets/stylesheets/geoblacklight/modules/downloads.scss +93 -0
- data/app/assets/stylesheets/geoblacklight/modules/facets.scss +5 -0
- data/app/assets/stylesheets/geoblacklight/modules/geosearch.scss +29 -0
- data/app/assets/stylesheets/geoblacklight/modules/home.scss +28 -0
- data/app/assets/stylesheets/geoblacklight/modules/icon-customization.scss +50 -0
- data/app/assets/stylesheets/geoblacklight/modules/index_maps.scss +7 -0
- data/app/assets/stylesheets/geoblacklight/modules/item.scss +26 -0
- data/app/assets/stylesheets/geoblacklight/modules/layer_opacity.scss +87 -0
- data/app/assets/stylesheets/geoblacklight/modules/metadata.scss +31 -0
- data/app/assets/stylesheets/geoblacklight/modules/metadata_content.scss +43 -0
- data/app/assets/stylesheets/geoblacklight/modules/metadata_markup.scss +9 -0
- data/app/assets/stylesheets/geoblacklight/modules/metadata_missing.scss +7 -0
- data/app/assets/stylesheets/geoblacklight/modules/mixins.scss +5 -0
- data/app/assets/stylesheets/geoblacklight/modules/modal.scss +14 -0
- data/app/assets/stylesheets/geoblacklight/modules/relations.scss +15 -0
- data/app/assets/stylesheets/geoblacklight/modules/results.scss +68 -0
- data/app/assets/stylesheets/geoblacklight/modules/search_widgets.scss +5 -0
- data/app/assets/stylesheets/geoblacklight/modules/sidebar.scss +60 -0
- data/app/assets/stylesheets/geoblacklight/modules/toolbar.scss +70 -0
- data/app/assets/stylesheets/geoblacklight/modules/web_services.scss +5 -0
- data/app/controllers/download_controller.rb +114 -0
- data/app/controllers/relation_controller.rb +20 -0
- data/app/controllers/wms_controller.rb +15 -0
- data/app/helpers/arcgis_helper.rb +12 -0
- data/app/helpers/blacklight_helper.rb +9 -0
- data/app/helpers/carto_helper.rb +29 -0
- data/app/helpers/geoblacklight_helper.rb +323 -0
- data/app/models/concerns/geoblacklight/solr_document.rb +113 -0
- data/app/models/concerns/geoblacklight/solr_document/arcgis.rb +10 -0
- data/app/models/concerns/geoblacklight/solr_document/carto.rb +28 -0
- data/app/models/concerns/geoblacklight/solr_document/finder.rb +38 -0
- data/app/models/concerns/geoblacklight/solr_document/inspection.rb +15 -0
- data/app/models/concerns/geoblacklight/spatial_search_behavior.rb +69 -0
- data/app/presenters/geoblacklight/document_presenter.rb +23 -0
- data/app/views/catalog/_data_dictionary.html.erb +6 -0
- data/app/views/catalog/_document_action.html.erb +6 -0
- data/app/views/catalog/_document_split.html.erb +6 -0
- data/app/views/catalog/_download_generated_link.html.erb +4 -0
- data/app/views/catalog/_download_link.html.erb +3 -0
- data/app/views/catalog/_downloads_generated.html.erb +6 -0
- data/app/views/catalog/_downloads_primary.html.erb +14 -0
- data/app/views/catalog/_downloads_secondary.html.erb +39 -0
- data/app/views/catalog/_exports.html.erb +3 -0
- data/app/views/catalog/_facet_tag_item.html.erb +3 -0
- data/app/views/catalog/_facet_tag_layout.html.erb +2 -0
- data/app/views/catalog/_header_icons.html.erb +3 -0
- data/app/views/catalog/_home_text.html.erb +43 -0
- data/app/views/catalog/_icon_facet.html.erb +16 -0
- data/app/views/catalog/_index_split_default.html.erb +22 -0
- data/app/views/catalog/_metadata.html.erb +27 -0
- data/app/views/catalog/_relations_container.html.erb +1 -0
- data/app/views/catalog/_results_pagination.html.erb +12 -0
- data/app/views/catalog/_show_default_attribute_table.html.erb +19 -0
- data/app/views/catalog/_show_default_viewer_container.html.erb +12 -0
- data/app/views/catalog/_show_default_viewer_information.html.erb +4 -0
- data/app/views/catalog/_show_downloads.html.erb +34 -0
- data/app/views/catalog/_show_header_default.html.erb +4 -0
- data/app/views/catalog/_show_sidebar.html.erb +12 -0
- data/app/views/catalog/_show_tools.html.erb +25 -0
- data/app/views/catalog/_web_services.html.erb +8 -0
- data/app/views/catalog/_web_services_default.html.erb +8 -0
- data/app/views/catalog/_web_services_wfs.html.erb +8 -0
- data/app/views/catalog/_web_services_wms.html.erb +8 -0
- data/app/views/catalog/index.html.erb +13 -0
- data/app/views/catalog/metadata.html.erb +11 -0
- data/app/views/catalog/metadata/_content.html.erb +3 -0
- data/app/views/catalog/metadata/_markup.html.erb +8 -0
- data/app/views/catalog/metadata/_missing.html.erb +6 -0
- data/app/views/catalog/web_services.html.erb +10 -0
- data/app/views/download/hgl.html.erb +25 -0
- data/app/views/relation/_ancestors.html.erb +11 -0
- data/app/views/relation/_descendants.html.erb +18 -0
- data/app/views/relation/index.html.erb +13 -0
- data/app/views/relation/index.json.jbuilder +3 -0
- data/app/views/shared/_header_navbar.html.erb +38 -0
- data/config/initializers/rails_config.rb +3 -0
- data/config/locales/geoblacklight.en.yml +163 -0
- data/geoblacklight.gemspec +49 -0
- data/lib/generators/geoblacklight/install_generator.rb +105 -0
- data/lib/generators/geoblacklight/templates/Procfile +3 -0
- data/lib/generators/geoblacklight/templates/catalog_controller.rb +272 -0
- data/lib/generators/geoblacklight/templates/geoblacklight.js +10 -0
- data/lib/generators/geoblacklight/templates/geoblacklight.scss +4 -0
- data/lib/generators/geoblacklight/templates/package.json +14 -0
- data/lib/generators/geoblacklight/templates/settings.yml +127 -0
- data/lib/generators/geoblacklight/templates/webpacker.yml +67 -0
- data/lib/generators/geoblacklight/webpacker_generator.rb +35 -0
- data/lib/geoblacklight.rb +50 -0
- data/lib/geoblacklight/bounding_box.rb +45 -0
- data/lib/geoblacklight/catalog_helper_override.rb +13 -0
- data/lib/geoblacklight/constants.rb +28 -0
- data/lib/geoblacklight/download.rb +108 -0
- data/lib/geoblacklight/download/geojson_download.rb +22 -0
- data/lib/geoblacklight/download/geotiff_download.rb +20 -0
- data/lib/geoblacklight/download/hgl_download.rb +18 -0
- data/lib/geoblacklight/download/kmz_download.rb +22 -0
- data/lib/geoblacklight/download/shapefile_download.rb +20 -0
- data/lib/geoblacklight/engine.rb +27 -0
- data/lib/geoblacklight/exceptions.rb +27 -0
- data/lib/geoblacklight/geoblacklight_helper_behavior.rb +14 -0
- data/lib/geoblacklight/item_viewer.rb +54 -0
- data/lib/geoblacklight/metadata.rb +18 -0
- data/lib/geoblacklight/metadata/base.rb +93 -0
- data/lib/geoblacklight/metadata/fgdc.rb +14 -0
- data/lib/geoblacklight/metadata/html.rb +13 -0
- data/lib/geoblacklight/metadata/iso19139.rb +14 -0
- data/lib/geoblacklight/metadata_transformer.rb +33 -0
- data/lib/geoblacklight/metadata_transformer/base.rb +42 -0
- data/lib/geoblacklight/metadata_transformer/fgdc.rb +8 -0
- data/lib/geoblacklight/metadata_transformer/iso19139.rb +8 -0
- data/lib/geoblacklight/reference.rb +45 -0
- data/lib/geoblacklight/references.rb +132 -0
- data/lib/geoblacklight/relation/ancestors.rb +27 -0
- data/lib/geoblacklight/relation/descendants.rb +27 -0
- data/lib/geoblacklight/relation/relation_response.rb +24 -0
- data/lib/geoblacklight/routes.rb +7 -0
- data/lib/geoblacklight/routes/downloadable.rb +14 -0
- data/lib/geoblacklight/routes/exportable.rb +17 -0
- data/lib/geoblacklight/routes/wms.rb +13 -0
- data/lib/geoblacklight/version.rb +3 -0
- data/lib/geoblacklight/view_helper_override.rb +40 -0
- data/lib/geoblacklight/wms_layer.rb +35 -0
- data/lib/geoblacklight/wms_layer/feature_info_response.rb +32 -0
- data/lib/tasks/geoblacklight.rake +108 -0
- data/package.json +4 -0
- data/schema/format-values.md +50 -0
- data/schema/geoblacklight-schema-deprecated.md +39 -0
- data/schema/geoblacklight-schema.json +214 -0
- data/schema/geoblacklight-schema.md +323 -0
- data/schema/geometry-type-values.md +11 -0
- data/schema/references.md +23 -0
- data/schema/schema-commentary.md +198 -0
- data/schema/subjects.md +41 -0
- data/schema/type-values.md +10 -0
- data/solr/conf/_rest_managed.json +3 -0
- data/solr/conf/admin-extra.html +31 -0
- data/solr/conf/core.properties +5 -0
- data/solr/conf/elevate.xml +36 -0
- data/solr/conf/mapping-ISOLatin1Accent.txt +246 -0
- data/solr/conf/protwords.txt +21 -0
- data/solr/conf/schema.xml +198 -0
- data/solr/conf/scripts.conf +24 -0
- data/solr/conf/solrconfig.xml +243 -0
- data/solr/conf/spellings.txt +2 -0
- data/solr/conf/stopwords.txt +58 -0
- data/solr/conf/stopwords_en.txt +58 -0
- data/solr/conf/synonyms.txt +31 -0
- data/solr/conf/xslt/example.xsl +132 -0
- data/solr/conf/xslt/example_atom.xsl +67 -0
- data/solr/conf/xslt/example_rss.xsl +66 -0
- data/solr/conf/xslt/luke.xsl +337 -0
- data/spec/controllers/catalog_controller_spec.rb +82 -0
- data/spec/controllers/download_controller_spec.rb +120 -0
- data/spec/controllers/relation_controller_spec.rb +11 -0
- data/spec/controllers/wms_controller_spec.rb +34 -0
- data/spec/factories/user.rb +7 -0
- data/spec/features/bookmarks_spec.rb +10 -0
- data/spec/features/configurable_basemap_spec.rb +35 -0
- data/spec/features/data_dictionary_download_spec.rb +16 -0
- data/spec/features/download_layer_spec.rb +93 -0
- data/spec/features/empty_search_spec.rb +11 -0
- data/spec/features/esri_viewer_spec.rb +42 -0
- data/spec/features/exports_spec.rb +36 -0
- data/spec/features/help_text_spec.rb +8 -0
- data/spec/features/home_page_spec.rb +40 -0
- data/spec/features/iiif_viewer_spec.rb +8 -0
- data/spec/features/index_map_spec.rb +31 -0
- data/spec/features/layer_inspection_spec.rb +10 -0
- data/spec/features/layer_opacity_spec.rb +20 -0
- data/spec/features/layer_preview_spec.rb +17 -0
- data/spec/features/layer_with_no_references_spec.rb +8 -0
- data/spec/features/linkified_attribute_table_spec.rb +11 -0
- data/spec/features/metadata_panel_spec.rb +78 -0
- data/spec/features/missing_metadata_spec.rb +24 -0
- data/spec/features/oembed_spec.rb +9 -0
- data/spec/features/relations_spec.rb +51 -0
- data/spec/features/saved_searches_spec.rb +13 -0
- data/spec/features/search_bar_spec.rb +12 -0
- data/spec/features/search_results_map_spec.rb +55 -0
- data/spec/features/search_results_overlap_ratio_spec.rb +55 -0
- data/spec/features/search_spec.rb +14 -0
- data/spec/features/show_page_metadata_spec.rb +12 -0
- data/spec/features/sms_spec.rb +15 -0
- data/spec/features/split_view.html.erb_spec.rb +75 -0
- data/spec/features/suppressed_records_spec.rb +14 -0
- data/spec/features/web_services_modal_spec.rb +25 -0
- data/spec/fixtures/fgdc/harvard-g7064-s2-1834-k3.xml +1 -0
- data/spec/fixtures/iso19139/stanford-cg357zz0321.xml +581 -0
- data/spec/fixtures/mods/fb897vt9938.mods +111 -0
- data/spec/fixtures/mods/stanford-cg357zz0321.mods +113 -0
- data/spec/fixtures/solr_documents/README.md +40 -0
- data/spec/fixtures/solr_documents/actual-papermap1.json +23 -0
- data/spec/fixtures/solr_documents/actual-point1.json +37 -0
- data/spec/fixtures/solr_documents/actual-polygon1.json +23 -0
- data/spec/fixtures/solr_documents/actual-raster1.json +38 -0
- data/spec/fixtures/solr_documents/baruch_ancestor1.json +46 -0
- data/spec/fixtures/solr_documents/baruch_ancestor2.json +46 -0
- data/spec/fixtures/solr_documents/baruch_documentation_download.json +49 -0
- data/spec/fixtures/solr_documents/bbox-spans-180.json +20 -0
- data/spec/fixtures/solr_documents/cornell_html_metadata.json +42 -0
- data/spec/fixtures/solr_documents/esri-dynamic-layer-all-layers.json +38 -0
- data/spec/fixtures/solr_documents/esri-dynamic-layer-single-layer.json +40 -0
- data/spec/fixtures/solr_documents/esri-feature-layer.json +46 -0
- data/spec/fixtures/solr_documents/esri-image-map-layer.json +42 -0
- data/spec/fixtures/solr_documents/esri-tiled_map_layer.json +22 -0
- data/spec/fixtures/solr_documents/esri-wms-layer.json +33 -0
- data/spec/fixtures/solr_documents/harvard_raster.json +44 -0
- data/spec/fixtures/solr_documents/iiif-eastern-hemisphere.json +30 -0
- data/spec/fixtures/solr_documents/index-map-polygon-no-downloadurl.json +37 -0
- data/spec/fixtures/solr_documents/index-map-polygon.json +37 -0
- data/spec/fixtures/solr_documents/index-map-stanford.json +37 -0
- data/spec/fixtures/solr_documents/index_map_point.json +27 -0
- data/spec/fixtures/solr_documents/metadata_no_dct_provenance_s.json +30 -0
- data/spec/fixtures/solr_documents/metadata_no_layer_geom_type_s.json +17 -0
- data/spec/fixtures/solr_documents/metadata_no_solr_geom.json +23 -0
- data/spec/fixtures/solr_documents/no_spatial.json +21 -0
- data/spec/fixtures/solr_documents/oembed.json +24 -0
- data/spec/fixtures/solr_documents/princeton-child1.json +30 -0
- data/spec/fixtures/solr_documents/princeton-child2.json +30 -0
- data/spec/fixtures/solr_documents/princeton-child3.json +30 -0
- data/spec/fixtures/solr_documents/princeton-child4.json +30 -0
- data/spec/fixtures/solr_documents/princeton-parent.json +25 -0
- data/spec/fixtures/solr_documents/public_direct_download.json +34 -0
- data/spec/fixtures/solr_documents/public_iiif_princeton.json +36 -0
- data/spec/fixtures/solr_documents/public_polygon_mit.json +27 -0
- data/spec/fixtures/solr_documents/restricted-line.json +37 -0
- data/spec/fixtures/solr_documents/umn_metro_result1.json +41 -0
- data/spec/fixtures/solr_documents/umn_state_result1.json +38 -0
- data/spec/fixtures/solr_documents/umn_state_result2.json +38 -0
- data/spec/fixtures/solr_documents/uva_slug_colon.json +25 -0
- data/spec/helpers/arcgis_helper_spec.rb +14 -0
- data/spec/helpers/carto_helper_spec.rb +11 -0
- data/spec/helpers/geoblacklight_helper_spec.rb +329 -0
- data/spec/javascripts/geoblacklight_spec.js +21 -0
- data/spec/javascripts/metadata_download_button_spec.js +14 -0
- data/spec/javascripts/spec_helper.js +32 -0
- data/spec/javascripts/util_spec.js +12 -0
- data/spec/lib/geoblacklight/bounding_box_spec.rb +27 -0
- data/spec/lib/geoblacklight/controller_override_spec.rb +1 -0
- data/spec/lib/geoblacklight/document_presenter_spec.rb +61 -0
- data/spec/lib/geoblacklight/download/geojson_download_spec.rb +19 -0
- data/spec/lib/geoblacklight/download/geotiff_download_spec.rb +20 -0
- data/spec/lib/geoblacklight/download/hgl_download_spec.rb +60 -0
- data/spec/lib/geoblacklight/download/kmz_download_spec.rb +20 -0
- data/spec/lib/geoblacklight/download/shapefile_download_spec.rb +19 -0
- data/spec/lib/geoblacklight/download_spec.rb +177 -0
- data/spec/lib/geoblacklight/geoblacklight_helper_behavior_spec.rb +30 -0
- data/spec/lib/geoblacklight/item_viewer_spec.rb +63 -0
- data/spec/lib/geoblacklight/metadata/base_spec.rb +157 -0
- data/spec/lib/geoblacklight/metadata/html_spec.rb +18 -0
- data/spec/lib/geoblacklight/metadata_spec.rb +42 -0
- data/spec/lib/geoblacklight/metadata_transformer/base_spec.rb +35 -0
- data/spec/lib/geoblacklight/metadata_transformer/fgdc_spec.rb +23 -0
- data/spec/lib/geoblacklight/metadata_transformer/iso19139_spec.rb +23 -0
- data/spec/lib/geoblacklight/metadata_transformer_spec.rb +69 -0
- data/spec/lib/geoblacklight/reference_spec.rb +64 -0
- data/spec/lib/geoblacklight/references_spec.rb +216 -0
- data/spec/lib/geoblacklight/relation/ancestors_spec.rb +32 -0
- data/spec/lib/geoblacklight/relation/descendants_spec.rb +32 -0
- data/spec/lib/geoblacklight/relation/relation_response_spec.rb +43 -0
- data/spec/lib/geoblacklight/view_helper_override_spec.rb +37 -0
- data/spec/lib/geoblacklight/wms_layer/feature_info_response_spec.rb +50 -0
- data/spec/lib/geoblacklight/wms_layer_spec.rb +99 -0
- data/spec/models/concerns/geoblacklight/solr_document/carto_spec.rb +61 -0
- data/spec/models/concerns/geoblacklight/solr_document/finder_spec.rb +40 -0
- data/spec/models/concerns/geoblacklight/solr_document/inspection_spec.rb +16 -0
- data/spec/models/concerns/geoblacklight/solr_document_spec.rb +251 -0
- data/spec/models/concerns/geoblacklight/spatial_search_behavior_spec.rb +84 -0
- data/spec/routing/catalog_routing_spec.rb +8 -0
- data/spec/spec_helper.rb +79 -0
- data/spec/support/backport_test_helpers.rb +45 -0
- data/spec/support/features.rb +5 -0
- data/spec/support/features/session_helpers.rb +20 -0
- data/spec/teaspoon_env.rb +213 -0
- data/spec/test_app_templates/Gemfile.extra +1 -0
- data/spec/test_app_templates/lib/generators/test_app_generator.rb +49 -0
- data/spec/test_app_templates/metadata/fgdc.html +129 -0
- data/spec/test_app_templates/metadata/fgdc.xml +145 -0
- data/spec/test_app_templates/metadata/iso.html +275 -0
- data/spec/test_app_templates/metadata/iso.xml +511 -0
- data/spec/test_app_templates/solr_documents +1 -0
- data/spec/views/catalog/_document_split.html.erb_spec.rb +5 -0
- data/spec/views/catalog/_index_split.html.erb_spec.rb +5 -0
- data/spec/views/catalog/_results_pagination.html.erb_spec.rb +9 -0
- data/spec/views/catalog/_show_downloads.html.erb_spec.rb +41 -0
- data/spec/views/catalog/_show_tools.html.erb_spec.rb +39 -0
- data/template.rb +19 -0
- data/vendor/assets/images/layers-2x.png +0 -0
- data/vendor/assets/images/layers.png +0 -0
- data/vendor/assets/images/marker-icon-2x.png +0 -0
- data/vendor/assets/images/marker-icon.png +0 -0
- data/vendor/assets/images/marker-shadow.png +0 -0
- data/vendor/assets/javascripts/esri-leaflet.js +5 -0
- data/vendor/assets/javascripts/esri-leaflet.js.map +1 -0
- data/vendor/assets/javascripts/leaflet-iiif.js +302 -0
- data/vendor/assets/javascripts/leaflet-src.js.map +1 -0
- data/vendor/assets/javascripts/leaflet.js.erb +13922 -0
- data/vendor/assets/javascripts/native.history.js +1 -0
- data/vendor/assets/javascripts/readmore.js +618 -0
- data/vendor/assets/javascripts/readmore.js.map +1 -0
- data/vendor/assets/stylesheets/leaflet-label.css +54 -0
- data/vendor/assets/stylesheets/leaflet.css +635 -0
- metadata +967 -0
|
@@ -0,0 +1,323 @@
|
|
|
1
|
+
module GeoblacklightHelper
|
|
2
|
+
def document_available?
|
|
3
|
+
@document.public? || (@document.same_institution? && user_signed_in?)
|
|
4
|
+
end
|
|
5
|
+
|
|
6
|
+
def document_downloadable?
|
|
7
|
+
document_available? && @document.downloadable?
|
|
8
|
+
end
|
|
9
|
+
|
|
10
|
+
def iiif_jpg_url
|
|
11
|
+
@document.references.iiif.endpoint.sub! 'info.json', 'full/full/0/default.jpg'
|
|
12
|
+
end
|
|
13
|
+
|
|
14
|
+
def download_link_direct(text, document)
|
|
15
|
+
link_to(
|
|
16
|
+
text,
|
|
17
|
+
document.direct_download[:download],
|
|
18
|
+
'contentUrl' => document.direct_download[:download],
|
|
19
|
+
class: ['btn', 'btn-default', 'download', 'download-original'],
|
|
20
|
+
data: {
|
|
21
|
+
download: 'trigger',
|
|
22
|
+
download_type: 'direct',
|
|
23
|
+
download_id: document.id
|
|
24
|
+
}
|
|
25
|
+
)
|
|
26
|
+
end
|
|
27
|
+
|
|
28
|
+
def download_link_hgl(text, document)
|
|
29
|
+
link_to(
|
|
30
|
+
text,
|
|
31
|
+
download_hgl_path(id: document),
|
|
32
|
+
class: ['btn', 'btn-default', 'download', 'download-original'],
|
|
33
|
+
data: {
|
|
34
|
+
blacklight_modal: 'trigger',
|
|
35
|
+
download: 'trigger',
|
|
36
|
+
download_type: 'harvard-hgl',
|
|
37
|
+
download_id: document.id
|
|
38
|
+
}
|
|
39
|
+
)
|
|
40
|
+
end
|
|
41
|
+
|
|
42
|
+
# Generates the link markup for the IIIF JPEG download
|
|
43
|
+
# @return [String]
|
|
44
|
+
def download_link_iiif
|
|
45
|
+
link_to(
|
|
46
|
+
download_text('JPG'),
|
|
47
|
+
iiif_jpg_url,
|
|
48
|
+
'contentUrl' => iiif_jpg_url,
|
|
49
|
+
class: ['btn', 'btn-default', 'download', 'download-generated'],
|
|
50
|
+
data: {
|
|
51
|
+
download: 'trigger'
|
|
52
|
+
}
|
|
53
|
+
)
|
|
54
|
+
end
|
|
55
|
+
|
|
56
|
+
def download_link_generated(download_type, document)
|
|
57
|
+
link_to(
|
|
58
|
+
t('geoblacklight.download.export_link', download_format: proper_case_format(download_type)),
|
|
59
|
+
'',
|
|
60
|
+
class: ['btn', 'btn-default', 'download', 'download-generated'],
|
|
61
|
+
data: {
|
|
62
|
+
download_path: download_path(document.id, type: download_type),
|
|
63
|
+
download: 'trigger',
|
|
64
|
+
download_type: download_type,
|
|
65
|
+
download_id: document.id
|
|
66
|
+
}
|
|
67
|
+
)
|
|
68
|
+
end
|
|
69
|
+
|
|
70
|
+
##
|
|
71
|
+
# Blacklight catalog controller helper method to truncate field value to 150 chars
|
|
72
|
+
# @param [SolrDocument] args
|
|
73
|
+
# @return [String]
|
|
74
|
+
def snippit(args)
|
|
75
|
+
truncate(Array(args[:value]).flatten.join(' '), length: 150)
|
|
76
|
+
end
|
|
77
|
+
|
|
78
|
+
def render_facet_tags(facet)
|
|
79
|
+
render_facet_limit(facets_from_request(facet).first,
|
|
80
|
+
partial: 'facet_tag_item',
|
|
81
|
+
layout: 'facet_tag_layout')
|
|
82
|
+
end
|
|
83
|
+
|
|
84
|
+
##
|
|
85
|
+
# Returns an SVG icon or empty HTML span element
|
|
86
|
+
# @return [SVG or HTML tag]
|
|
87
|
+
def geoblacklight_icon(name)
|
|
88
|
+
icon_name = name ? name.to_s.parameterize : 'none'
|
|
89
|
+
begin
|
|
90
|
+
icon = blacklight_icon(icon_name)
|
|
91
|
+
# Add icon info to queue after icon instantiated successfully
|
|
92
|
+
queue_icon_aria_label(icon_name)
|
|
93
|
+
icon
|
|
94
|
+
rescue Blacklight::Exceptions::IconNotFound
|
|
95
|
+
tag.span class: 'icon-missing geoblacklight-none'
|
|
96
|
+
end
|
|
97
|
+
end
|
|
98
|
+
|
|
99
|
+
##
|
|
100
|
+
# Render an empty span
|
|
101
|
+
# @return [HTML tag]
|
|
102
|
+
def render_empty_span(classname)
|
|
103
|
+
tag.span class: classname
|
|
104
|
+
end
|
|
105
|
+
|
|
106
|
+
##
|
|
107
|
+
# Capture SVG icon aria labels to describe
|
|
108
|
+
def queue_icon_aria_label(feature_name)
|
|
109
|
+
@aria_labels ||= Set.new
|
|
110
|
+
@aria_labels << feature_name
|
|
111
|
+
end
|
|
112
|
+
|
|
113
|
+
##
|
|
114
|
+
# Render a div of divs describing aria-labelledby values
|
|
115
|
+
# @return [HTML tag]
|
|
116
|
+
def render_aria_labels(aria_labels)
|
|
117
|
+
return unless aria_labels
|
|
118
|
+
content_tag :div, id: 'aria-labels', class: 'sr-only sr-only-focusable' do
|
|
119
|
+
aria_labels.each do |label|
|
|
120
|
+
concat(render_aria_label(label))
|
|
121
|
+
end
|
|
122
|
+
end
|
|
123
|
+
end
|
|
124
|
+
|
|
125
|
+
# Render a div describing a aria-labelledby value
|
|
126
|
+
# @return [HTML tag]
|
|
127
|
+
def render_aria_label(label)
|
|
128
|
+
content_tag :div, id: "aria-label-#{label}" do
|
|
129
|
+
I18n.t("geoblacklight.aria-labels.#{label}")
|
|
130
|
+
end
|
|
131
|
+
end
|
|
132
|
+
|
|
133
|
+
##
|
|
134
|
+
# Renders an unique array of search links based off of terms
|
|
135
|
+
# passed in using the facet parameter
|
|
136
|
+
#
|
|
137
|
+
def render_facet_links(facet, items)
|
|
138
|
+
items.uniq.map do |item|
|
|
139
|
+
link_to item, search_catalog_path(f: { facet => [item] })
|
|
140
|
+
end.join(', ').html_safe
|
|
141
|
+
end
|
|
142
|
+
|
|
143
|
+
##
|
|
144
|
+
# Looks up properly formatted names for formats
|
|
145
|
+
#
|
|
146
|
+
def proper_case_format(format)
|
|
147
|
+
t("geoblacklight.formats.#{format.to_s.parameterize(separator: '_')}")
|
|
148
|
+
end
|
|
149
|
+
|
|
150
|
+
##
|
|
151
|
+
# Looks up formatted names for references
|
|
152
|
+
# @param (String, Symbol) reference
|
|
153
|
+
# @return (String)
|
|
154
|
+
def formatted_name_reference(reference)
|
|
155
|
+
t "geoblacklight.references.#{reference}"
|
|
156
|
+
end
|
|
157
|
+
|
|
158
|
+
##
|
|
159
|
+
# Wraps download text with proper_case_format
|
|
160
|
+
#
|
|
161
|
+
def download_text(format)
|
|
162
|
+
download_format = proper_case_format(format)
|
|
163
|
+
value = t('geoblacklight.download.download_link', download_format: download_format)
|
|
164
|
+
value.html_safe
|
|
165
|
+
end
|
|
166
|
+
|
|
167
|
+
def download_generated_body(format)
|
|
168
|
+
value = proper_case_format(format)
|
|
169
|
+
value = case value
|
|
170
|
+
when t('geoblacklight.formats.shapefile')
|
|
171
|
+
t('geoblacklight.download.export_shapefile_link')
|
|
172
|
+
when t('geoblacklight.formats.kmz')
|
|
173
|
+
t('geoblacklight.download.export_kmz_link')
|
|
174
|
+
when t('geoblacklight.formats.geojson')
|
|
175
|
+
t('geoblacklight.download.export_geojson_link')
|
|
176
|
+
else
|
|
177
|
+
value
|
|
178
|
+
end
|
|
179
|
+
|
|
180
|
+
value.html_safe
|
|
181
|
+
end
|
|
182
|
+
|
|
183
|
+
##
|
|
184
|
+
# Deteremines if a feature should include help text popover
|
|
185
|
+
# @return [Boolean]
|
|
186
|
+
def show_help_text?(feature, key)
|
|
187
|
+
Settings&.HELP_TEXT&.send(feature)&.include?(key)
|
|
188
|
+
end
|
|
189
|
+
|
|
190
|
+
##
|
|
191
|
+
# Render help text popover for a given feature and translation key
|
|
192
|
+
# @return [HTML tag]
|
|
193
|
+
def render_help_text_entry(feature, key)
|
|
194
|
+
if I18n.exists?("geoblacklight.help_text.#{feature}.#{key}", locale)
|
|
195
|
+
help_text = I18n.t("geoblacklight.help_text.#{feature}.#{key}")
|
|
196
|
+
content_tag :h3, class: 'help-text viewer_protocol h6' do
|
|
197
|
+
content_tag :a, 'data': { toggle: 'popover', title: help_text[:title], content: help_text[:content] } do
|
|
198
|
+
help_text[:title]
|
|
199
|
+
end
|
|
200
|
+
end
|
|
201
|
+
else
|
|
202
|
+
tag.span class: 'help-text translation-missing'
|
|
203
|
+
end
|
|
204
|
+
end
|
|
205
|
+
|
|
206
|
+
##
|
|
207
|
+
# Deteremines if item view should include attribute table
|
|
208
|
+
# @return [Boolean]
|
|
209
|
+
def show_attribute_table?
|
|
210
|
+
document_available? && @document.inspectable?
|
|
211
|
+
end
|
|
212
|
+
|
|
213
|
+
##
|
|
214
|
+
# Render value for a document's field as a truncate abstract
|
|
215
|
+
# div. Arguments come from Blacklight::DocumentPresenter's
|
|
216
|
+
# get_field_values method
|
|
217
|
+
# @param [Hash] args from get_field_values
|
|
218
|
+
def render_value_as_truncate_abstract(args)
|
|
219
|
+
content_tag :div, class: 'truncate-abstract' do
|
|
220
|
+
Array(args[:value]).flatten.join(' ')
|
|
221
|
+
end
|
|
222
|
+
end
|
|
223
|
+
|
|
224
|
+
##
|
|
225
|
+
# Selects the basemap used for map displays
|
|
226
|
+
# @return [String]
|
|
227
|
+
def geoblacklight_basemap
|
|
228
|
+
blacklight_config.basemap_provider || 'positron'
|
|
229
|
+
end
|
|
230
|
+
|
|
231
|
+
def display_carto
|
|
232
|
+
return link_to(
|
|
233
|
+
content_tag(:span, '', class: 'geoblacklight geoblacklight-carto') +
|
|
234
|
+
t('geoblacklight.tools.open_carto'),
|
|
235
|
+
carto_link(@document.carto_reference),
|
|
236
|
+
target: '_blank'
|
|
237
|
+
) if @document.carto_reference.present? && !Settings.CARTO_HIDE
|
|
238
|
+
end
|
|
239
|
+
|
|
240
|
+
def display_arcgis
|
|
241
|
+
return link_to(
|
|
242
|
+
blacklight_icon('esri-globe') + ' ' +
|
|
243
|
+
t('geoblacklight.tools.open_arcgis'),
|
|
244
|
+
arcgis_link(@document.arcgis_urls)
|
|
245
|
+
) if @document.arcgis_urls.present? && !Settings.ARCGIS_HIDE
|
|
246
|
+
end
|
|
247
|
+
|
|
248
|
+
##
|
|
249
|
+
# Creates a Carto OneClick link link, using the configuration link
|
|
250
|
+
# @param [String] file_link
|
|
251
|
+
# @return [String]
|
|
252
|
+
# @deprecated Use {#carto_link} instead.
|
|
253
|
+
def cartodb_link(file_link)
|
|
254
|
+
carto_link(file_link)
|
|
255
|
+
end
|
|
256
|
+
deprecation_deprecate carto_link: 'use GeoblacklightHelper#carto_link instead'
|
|
257
|
+
|
|
258
|
+
##
|
|
259
|
+
# Renders the partials for a Geoblacklight::Reference in the web services
|
|
260
|
+
# modal
|
|
261
|
+
# @param [Geoblacklight::Reference]
|
|
262
|
+
def render_web_services(reference)
|
|
263
|
+
render(
|
|
264
|
+
partial: "web_services_#{reference.type}",
|
|
265
|
+
locals: { reference: reference }
|
|
266
|
+
)
|
|
267
|
+
rescue ActionView::MissingTemplate
|
|
268
|
+
render partial: 'web_services_default', locals: { reference: reference }
|
|
269
|
+
end
|
|
270
|
+
|
|
271
|
+
##
|
|
272
|
+
# Returns a hash of the leaflet plugin settings to pass to the viewer.
|
|
273
|
+
# @return[Hash]
|
|
274
|
+
def leaflet_options
|
|
275
|
+
Settings.LEAFLET
|
|
276
|
+
end
|
|
277
|
+
|
|
278
|
+
##
|
|
279
|
+
# Renders a facet item with an icon placed as the first child of
|
|
280
|
+
# `.facet-label`. This works with `render_facet_value` and
|
|
281
|
+
# `render_selected_facet_value`
|
|
282
|
+
# @return String
|
|
283
|
+
def render_facet_item_with_icon(field_name, item)
|
|
284
|
+
doc = Nokogiri::HTML.fragment(render_facet_item(field_name, item))
|
|
285
|
+
doc.at_css('.facet-label').children.first
|
|
286
|
+
.add_previous_sibling(geoblacklight_icon(item.value))
|
|
287
|
+
doc.to_html.html_safe
|
|
288
|
+
end
|
|
289
|
+
|
|
290
|
+
##
|
|
291
|
+
# Renders the transformed metadata
|
|
292
|
+
# (Renders a partial when the metadata isn't available)
|
|
293
|
+
# @param [Geoblacklight::Metadata::Base] metadata the metadata object
|
|
294
|
+
# @return [String]
|
|
295
|
+
def render_transformed_metadata(metadata)
|
|
296
|
+
render partial: 'catalog/metadata/content', locals: { content: metadata.transform.html_safe }
|
|
297
|
+
rescue Geoblacklight::MetadataTransformer::TransformError => transform_err
|
|
298
|
+
Geoblacklight.logger.warn transform_err.message
|
|
299
|
+
render partial: 'catalog/metadata/markup', locals: { content: metadata.to_xml }
|
|
300
|
+
rescue => err
|
|
301
|
+
Geoblacklight.logger.warn err.message
|
|
302
|
+
render partial: 'catalog/metadata/missing'
|
|
303
|
+
end
|
|
304
|
+
|
|
305
|
+
##
|
|
306
|
+
# Determines whether or not the metadata is the first within the array of References
|
|
307
|
+
# @param [SolrDocument] document the Solr Document for the item
|
|
308
|
+
# @param [Geoblacklight::Metadata::Base] metadata the object for the metadata resource
|
|
309
|
+
# @return [Boolean]
|
|
310
|
+
def first_metadata?(document, metadata)
|
|
311
|
+
document.references.shown_metadata.first.type == metadata.type
|
|
312
|
+
end
|
|
313
|
+
|
|
314
|
+
##
|
|
315
|
+
# Renders a reference url for a document
|
|
316
|
+
# @param [Hash] document, field_name
|
|
317
|
+
def render_references_url(args)
|
|
318
|
+
link_to(
|
|
319
|
+
args[:document].references.url.endpoint,
|
|
320
|
+
args[:document].references.url.endpoint
|
|
321
|
+
) if args[:document]&.references&.url
|
|
322
|
+
end
|
|
323
|
+
end
|
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
module Geoblacklight
|
|
2
|
+
# Extends Blacklight::Solr::Document for GeoBlacklight specific functionalit
|
|
3
|
+
module SolrDocument
|
|
4
|
+
extend Blacklight::Solr::Document
|
|
5
|
+
|
|
6
|
+
include Geoblacklight::SolrDocument::Finder
|
|
7
|
+
include Geoblacklight::SolrDocument::Carto
|
|
8
|
+
include Geoblacklight::SolrDocument::Inspection
|
|
9
|
+
include Geoblacklight::SolrDocument::Arcgis
|
|
10
|
+
|
|
11
|
+
delegate :download_types, to: :references
|
|
12
|
+
delegate :viewer_protocol, to: :item_viewer
|
|
13
|
+
delegate :viewer_endpoint, to: :item_viewer
|
|
14
|
+
|
|
15
|
+
def available?
|
|
16
|
+
public? || same_institution?
|
|
17
|
+
end
|
|
18
|
+
|
|
19
|
+
def public?
|
|
20
|
+
fetch(Settings.FIELDS.RIGHTS).casecmp('public').zero?
|
|
21
|
+
end
|
|
22
|
+
|
|
23
|
+
def restricted?
|
|
24
|
+
fetch(Settings.FIELDS.RIGHTS).casecmp('restricted').zero?
|
|
25
|
+
end
|
|
26
|
+
|
|
27
|
+
def downloadable?
|
|
28
|
+
(direct_download || download_types.present? || iiif_download) && available?
|
|
29
|
+
end
|
|
30
|
+
|
|
31
|
+
def references
|
|
32
|
+
References.new(self)
|
|
33
|
+
end
|
|
34
|
+
|
|
35
|
+
def direct_download
|
|
36
|
+
references.download.to_hash unless references.download.blank?
|
|
37
|
+
end
|
|
38
|
+
|
|
39
|
+
def hgl_download
|
|
40
|
+
references.hgl.to_hash unless references.hgl.blank?
|
|
41
|
+
end
|
|
42
|
+
|
|
43
|
+
def oembed
|
|
44
|
+
references.oembed.endpoint unless references.oembed.blank?
|
|
45
|
+
end
|
|
46
|
+
|
|
47
|
+
def same_institution?
|
|
48
|
+
fetch(Settings.FIELDS.PROVENANCE, '').casecmp(Settings.INSTITUTION.downcase).zero?
|
|
49
|
+
end
|
|
50
|
+
|
|
51
|
+
def iiif_download
|
|
52
|
+
references.iiif.to_hash unless references.iiif.blank?
|
|
53
|
+
end
|
|
54
|
+
|
|
55
|
+
def data_dictionary_download
|
|
56
|
+
references.data_dictionary.to_hash unless references.data_dictionary.blank?
|
|
57
|
+
end
|
|
58
|
+
|
|
59
|
+
def external_url
|
|
60
|
+
references.url.endpoint if references.url
|
|
61
|
+
end
|
|
62
|
+
|
|
63
|
+
def item_viewer
|
|
64
|
+
ItemViewer.new(references)
|
|
65
|
+
end
|
|
66
|
+
|
|
67
|
+
def itemtype
|
|
68
|
+
'http://schema.org/Dataset'
|
|
69
|
+
end
|
|
70
|
+
|
|
71
|
+
def bounding_box_as_wsen
|
|
72
|
+
geom_field = fetch(Settings.FIELDS.GEOMETRY, '')
|
|
73
|
+
exp = /^\s*ENVELOPE\(
|
|
74
|
+
\s*([-\.\d]+)\s*,
|
|
75
|
+
\s*([-\.\d]+)\s*,
|
|
76
|
+
\s*([-\.\d]+)\s*,
|
|
77
|
+
\s*([-\.\d]+)\s*
|
|
78
|
+
\)\s*$/x # uses 'x' option for free-spacing mode
|
|
79
|
+
bbox_match = exp.match(geom_field)
|
|
80
|
+
return geom_field unless bbox_match # return as-is, not a WKT
|
|
81
|
+
w, e, n, s = bbox_match.captures
|
|
82
|
+
"#{w} #{s} #{e} #{n}"
|
|
83
|
+
end
|
|
84
|
+
|
|
85
|
+
def wxs_identifier
|
|
86
|
+
fetch(Settings.FIELDS.WXS_IDENTIFIER, '')
|
|
87
|
+
end
|
|
88
|
+
|
|
89
|
+
def file_format
|
|
90
|
+
fetch(Settings.FIELDS.FILE_FORMAT)
|
|
91
|
+
end
|
|
92
|
+
|
|
93
|
+
##
|
|
94
|
+
# Provides a convenience method to access a SolrDocument's References
|
|
95
|
+
# endpoint url without having to check and see if it is available
|
|
96
|
+
# :type => a string which if its a Geoblacklight::Constants::URI key
|
|
97
|
+
# will return a coresponding Geoblacklight::Reference
|
|
98
|
+
def checked_endpoint(type)
|
|
99
|
+
type = references.send(type)
|
|
100
|
+
type.endpoint if type.present?
|
|
101
|
+
end
|
|
102
|
+
|
|
103
|
+
private
|
|
104
|
+
|
|
105
|
+
def method_missing(method, *args, &block)
|
|
106
|
+
if /.*_url$/ =~ method.to_s
|
|
107
|
+
checked_endpoint(method.to_s.gsub('_url', ''))
|
|
108
|
+
else
|
|
109
|
+
super
|
|
110
|
+
end
|
|
111
|
+
end
|
|
112
|
+
end
|
|
113
|
+
end
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
module Geoblacklight
|
|
2
|
+
module SolrDocument
|
|
3
|
+
##
|
|
4
|
+
# Module for providing external Carto download references for a document
|
|
5
|
+
module Carto
|
|
6
|
+
extend Deprecation
|
|
7
|
+
self.deprecation_horizon = 'Geoblacklight 2.0.0'
|
|
8
|
+
##
|
|
9
|
+
# Returns a url to a file that should be used with CartoDB integration
|
|
10
|
+
# @return [String]
|
|
11
|
+
# @deprecated Use {#carto_reference} instead
|
|
12
|
+
def cartodb_reference
|
|
13
|
+
carto_reference
|
|
14
|
+
end
|
|
15
|
+
deprecation_deprecate(
|
|
16
|
+
cartodb_reference: 'use Geoblacklight::SolrDocument::Carto#carto_reference instead'
|
|
17
|
+
)
|
|
18
|
+
|
|
19
|
+
##
|
|
20
|
+
# Returns a url to a file that should be used with CartoDB integration
|
|
21
|
+
# @return [String]
|
|
22
|
+
def carto_reference
|
|
23
|
+
return unless public? && download_types.try(:[], :geojson).present?
|
|
24
|
+
Geoblacklight::GeojsonDownload.new(self).url_with_params
|
|
25
|
+
end
|
|
26
|
+
end
|
|
27
|
+
end
|
|
28
|
+
end
|