diff --git a/Gemfile b/Gemfile index 1cbc9af3..a3f70c20 100644 --- a/Gemfile +++ b/Gemfile @@ -71,7 +71,7 @@ end gem 'blacklight', '~> 7.33' gem 'rsolr' # required for Blacklight -gem "geoblacklight", '~> 3.8' +gem "geoblacklight", '~> 4.3.0' gem 'faraday', '~> 2.0' gem "devise" gem "devise-guests", ">= 0.3.3" @@ -83,7 +83,9 @@ gem 'newrelic_rpm' gem 'twitter-typeahead-rails' gem 'blacklight_range_limit', '~> 7.0' gem 'redis', '~> 5.0' -gem 'geo_monitor', '~> 0.7', github: 'geoblacklight/geo_monitor' +# Not compatible with GeoBlacklight 4.x +# https://github.com/geoblacklight/geo_monitor/issues/12 +# gem 'geo_monitor', '~> 0.7', github: 'geoblacklight/geo_monitor' gem 'geo_combine', '>= 0.9' # For OpenGeoMetadata indexing gem 'sidekiq', '~> 7.0' gem 'whenever', require: false diff --git a/Gemfile.lock b/Gemfile.lock index db1e6051..df6d622a 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -1,11 +1,3 @@ -GIT - remote: https://github.com/geoblacklight/geo_monitor.git - revision: 28d61996677292730a9285f5686e4f5a193c8fae - specs: - geo_monitor (0.8.0) - faraday - rails (>= 6.1, < 7.2) - GEM remote: https://rubygems.org/ specs: @@ -92,8 +84,10 @@ GEM execjs (~> 2) base64 (0.2.0) bcrypt (3.1.20) + bcrypt_pbkdf (1.1.1) bcrypt_pbkdf (1.1.1-arm64-darwin) bcrypt_pbkdf (1.1.1-x86_64-darwin) + bigdecimal (3.1.8) bindex (0.8.1) blacklight (7.37.0) deprecation @@ -120,7 +114,7 @@ GEM bundler-audit (0.9.1) bundler (>= 1.2.0, < 3) thor (~> 1.0) - capistrano (3.18.1) + capistrano (3.19.0) airbrussh (>= 1.0.0) i18n rake (>= 10.0.0) @@ -191,9 +185,9 @@ GEM ed25519 docile (1.4.0) domain_name (0.6.20240107) - ed25519 (1.3.0) drb (2.2.1) dry-cli (1.0.0) + ed25519 (1.3.0) erubi (1.13.0) execjs (2.9.1) factory_bot (6.2.1) @@ -210,7 +204,16 @@ GEM net-http-persistent (~> 4.0) faraday-retry (2.2.1) faraday (~> 2.0) + ffi (1.17.0-aarch64-linux-gnu) + ffi (1.17.0-aarch64-linux-musl) + ffi (1.17.0-arm-linux-gnu) + ffi (1.17.0-arm-linux-musl) ffi (1.17.0-arm64-darwin) + ffi (1.17.0-x86-linux-gnu) + ffi (1.17.0-x86-linux-musl) + ffi (1.17.0-x86_64-darwin) + ffi (1.17.0-x86_64-linux-gnu) + ffi (1.17.0-x86_64-linux-musl) ffi-compiler (1.3.2) ffi (>= 1.15.5) rake @@ -224,17 +227,19 @@ GEM rsolr sanitize thor - geoblacklight (3.8.0) - blacklight (~> 7.8) + geoblacklight (4.3.0) + blacklight (~> 7.0) coderay config deprecation - faraday (>= 1.0) - geo_combine (~> 0.8) + faraday (~> 2.0) + geo_combine (~> 0.9) handlebars_assets mime-types - rails (>= 5.2.4, < 7.1) + rails (>= 6.1, < 7.2) rgeo-geojson + sprockets-rails (~> 3.0) + vite_rails (~> 3.0) git (2.1.1) activesupport (>= 5.0) addressable (~> 2.8) @@ -329,8 +334,18 @@ GEM net-ssh (7.2.3) newrelic_rpm (9.11.0) nio4r (2.7.3) + nokogiri (1.16.6-aarch64-linux) + racc (~> 1.4) + nokogiri (1.16.6-arm-linux) + racc (~> 1.4) nokogiri (1.16.6-arm64-darwin) racc (~> 1.4) + nokogiri (1.16.6-x86-linux) + racc (~> 1.4) + nokogiri (1.16.6-x86_64-darwin) + racc (~> 1.4) + nokogiri (1.16.6-x86_64-linux) + racc (~> 1.4) okcomputer (1.18.5) orm_adapter (0.5.0) ostruct (0.6.0) @@ -347,11 +362,15 @@ GEM puma (6.4.2) nio4r (~> 2.0) racc (1.8.0) - rack (3.0.11) + rack (3.1.4) rack-attack (6.7.0) rack (>= 1.0, < 4) rack-mini-profiler (2.3.4) rack (>= 1.2.0) + rack-proxy (0.7.7) + rack + rack-session (2.0.0) + rack (>= 3.0.0) rack-test (2.1.0) rack (>= 1.3) rackup (2.1.0) @@ -403,7 +422,7 @@ GEM actionpack (>= 5.2) railties (>= 5.2) retriable (3.1.2) - rexml (3.3.0) + rexml (3.3.1) strscan rgeo (3.0.1) rgeo-geojson (2.1.1) @@ -500,7 +519,12 @@ GEM actionpack (>= 6.1) activesupport (>= 6.1) sprockets (>= 3.0.0) + sqlite3 (1.7.3-aarch64-linux) + sqlite3 (1.7.3-arm-linux) sqlite3 (1.7.3-arm64-darwin) + sqlite3 (1.7.3-x86-linux) + sqlite3 (1.7.3-x86_64-darwin) + sqlite3 (1.7.3-x86_64-linux) sshkit (1.23.0) base64 net-scp (>= 1.1.2) @@ -509,7 +533,7 @@ GEM stringio (3.1.1) strscan (3.1.0) thor (1.3.1) - tilt (2.3.0) + tilt (2.4.0) timeout (0.4.1) twitter-typeahead-rails (0.11.1) actionpack (>= 3.1) @@ -523,6 +547,13 @@ GEM activesupport (>= 5.2.0, < 8.0) concurrent-ruby (~> 1.0) method_source (~> 1.0) + vite_rails (3.0.17) + railties (>= 5.1, < 8) + vite_ruby (~> 3.0, >= 3.2.2) + vite_ruby (3.6.0) + dry-cli (>= 0.7, < 2) + rack-proxy (~> 0.6, >= 0.6.1) + zeitwerk (~> 2.2) warden (1.2.9) rack (>= 2.0.9) web-console (4.2.1) @@ -542,7 +573,20 @@ GEM zeitwerk (2.6.16) PLATFORMS - arm64-darwin-23 + aarch64-linux + aarch64-linux-gnu + aarch64-linux-musl + arm-linux + arm-linux-gnu + arm-linux-musl + arm64-darwin + x86-linux + x86-linux-gnu + x86-linux-musl + x86_64-darwin + x86_64-linux + x86_64-linux-gnu + x86_64-linux-musl DEPENDENCIES bcrypt_pbkdf (~> 1.1) @@ -568,8 +612,7 @@ DEPENDENCIES factory_bot_rails (~> 6.2.0) faraday (~> 2.0) geo_combine (>= 0.9) - geo_monitor (~> 0.7)! - geoblacklight (~> 3.8) + geoblacklight (~> 4.3.0) honeybadger http jbuilder (~> 2.5) diff --git a/app/assets/javascripts/modules/mirador.js b/app/assets/javascripts/modules/mirador.js new file mode 100644 index 00000000..4fc19518 --- /dev/null +++ b/app/assets/javascripts/modules/mirador.js @@ -0,0 +1,63 @@ +// Borrowed from: +// https://github.com/sul-dlss/sul-embed/blob/main/app/javascript/src/modules/m3_viewer.js +const setupViewer = function () { + const target = document.getElementById("mirador"); + if (target) { + Mirador.viewer({ + id: "mirador", + selectedTheme: "sul", + themes: { + sul: { + palette: { + type: "light", + primary: { + main: "#8c1515", + }, + secondary: { + main: "#8c1515", + }, + shades: { + dark: "#2e2d29", + main: "#ffffff", + light: "#f4f4f4", + }, + notification: { + main: "#e98300", + }, + }, + }, + }, + windows: [ + { + id: "main", + loadedManifest: target.dataset.manifestUrl, + }, + ], + window: { + allowClose: false, + allowFullscreen: true, + allowMaximize: false, + authNewWindowCenter: "screen", + hideWindowTitle: true, + sidebarPanel: "attribution", + views: [ + { key: "single", behaviors: [null, "individuals"] }, + { key: "book", behaviors: [null, "paged"] }, + { key: "scroll", behaviors: ["continuous"] }, + { key: "gallery" }, + ], + }, + workspace: { + showZoomControls: true, + type: "single", + }, + workspaceControlPanel: { + enabled: false, + }, + }); + } +}; + +// Load the viewer on page load and Turbolinks page change +document.addEventListener("DOMContentLoaded", setupViewer); +document.addEventListener("turbolinks:load", setupViewer); diff --git a/app/assets/stylesheets/geoblacklight.scss b/app/assets/stylesheets/geoblacklight.scss index 7537ccf2..6df19998 100644 --- a/app/assets/stylesheets/geoblacklight.scss +++ b/app/assets/stylesheets/geoblacklight.scss @@ -1,2 +1 @@ @import 'geoblacklight/geoblacklight'; -@import 'leaflet-label'; diff --git a/app/assets/stylesheets/modules/show.scss b/app/assets/stylesheets/modules/show.scss index 5612f149..58b38f20 100644 --- a/app/assets/stylesheets/modules/show.scss +++ b/app/assets/stylesheets/modules/show.scss @@ -18,3 +18,23 @@ dd[itemprop='url'] a { padding-top: 0; } } + +// Paragraph margins for description field +.blacklight-dct_description_sm p { + margin-bottom: 0.5rem; + + &:last-of-type { + margin-bottom: 0; + } +} + +// Move the index map legend to make space for "Embedded Content" text +.index-map-legend { + left: unset; +} + +// Styles for Mirador viewer (non-stanford IIIF content) +#mirador { + width: 100%; + min-height: 493px; +} diff --git a/app/controllers/application_controller.rb b/app/controllers/application_controller.rb index 8204ca4c..d6bee864 100644 --- a/app/controllers/application_controller.rb +++ b/app/controllers/application_controller.rb @@ -4,6 +4,8 @@ class ApplicationController < ActionController::Base # Please be sure to impelement current_user and user_session. Blacklight depends on # these methods in order to perform user specific actions. + before_action :allow_geoblacklight_params + layout :determine_layout if respond_to? :layout # Prevent CSRF attacks by raising an exception. @@ -14,4 +16,9 @@ class ApplicationController < ActionController::Base def after_sign_out_path_for(_resource_or_scope) '/Shibboleth.sso/Logout' end + + def allow_geoblacklight_params + # Blacklight::Parameters will pass these to params.permit + blacklight_config.search_state_fields.append(Settings.GBL_PARAMS) + end end diff --git a/app/controllers/catalog_controller.rb b/app/controllers/catalog_controller.rb index 013643fa..cdf902ad 100644 --- a/app/controllers/catalog_controller.rb +++ b/app/controllers/catalog_controller.rb @@ -1,13 +1,15 @@ require 'blacklight/catalog' -require 'legacy_id_map' class CatalogController < ApplicationController include BlacklightRangeLimit::ControllerOverride include Blacklight::Catalog - rescue_from Blacklight::Exceptions::RecordNotFound, with: :redirect_from_legacy_id - configure_blacklight do |config| + # Ensures that JSON representations of Solr Documents can be retrieved using + # the path /catalog/:id/raw + # Please see https://github.com/projectblacklight/blacklight/pull/2006/ + config.raw_endpoint.enabled = true + ## Default parameters to send to solr for all search-like requests. See also SolrHelper#solr_search_params config.default_solr_params = { :start => 0, @@ -20,23 +22,24 @@ class CatalogController < ApplicationController # parameters included in the Blacklight-jetty document requestHandler. config.default_document_solr_params = { qt: 'document', - q: '{!raw f=layer_slug_s v=$id}' + q: "{!raw f=#{Settings.FIELDS.ID} v=$id}" } + # GeoBlacklight Defaults + # * Adds the "map" split view for catalog#index + config.view.split(partials: ['index']) + config.view.delete_field('list') + # solr field configuration for search results/index views # config.index.show_link = 'title_display' # config.index.record_display_type = 'format' - config.index.title_field = 'dc_title_s' - - config.raw_endpoint.enabled = true + config.index.title_field = Settings.FIELDS.TITLE config.crawler_detector = ->(req) { req.env['HTTP_USER_AGENT']&.include?('bot') } # solr field configuration for document/show views - config.show.display_type_field = 'format' - config.show.partials << 'rights_metadata' config.show.partials << 'show_message' config.show.partials << 'show_default_viewer_container' config.show.partials << 'show_default_attribute_table' @@ -47,10 +50,6 @@ class CatalogController < ApplicationController # Configure the index document presenter. config.index.document_presenter_class = Geoblacklight::DocumentPresenter - # Custom GeoBlacklight fields which currently map to GeoBlacklight-Schema - # v0.3.2 - config.wxs_identifier_field = 'layer_id_s' - # solr fields that will be treated as facets by the blacklight application # The ordering of the field names is the order of the display # @@ -77,7 +76,6 @@ class CatalogController < ApplicationController # config.add_facet_field 'lc_1letter_facet', :label => 'Call Number' # config.add_facet_field 'subject_geo_facet', :label => 'Region' # config.add_facet_field 'solr_bbox', :fq => "solr_bbox:IsWithin(-88,26,-79,36)", :label => 'Spatial' - # config.add_facet_field 'example_pivot_field', :label => 'Pivot Field', :pivot => ['format', 'language_facet'] # config.add_facet_field 'example_query_facet_field', :label => 'Publish Date', :query => { @@ -86,108 +84,140 @@ class CatalogController < ApplicationController # :years_25 => { :label => 'within 25 Years', :fq => "pub_date:[#{Time.now.year - 25 } TO *]" } # } - config.add_facet_field Settings.FIELDS.PROVENANCE, label: 'Institution', limit: 8, partial: 'icon_facet' - config.add_facet_field Settings.FIELDS.CREATOR, label: 'Author', limit: 6 - config.add_facet_field Settings.FIELDS.PUBLISHER, label: 'Publisher', limit: 6 - config.add_facet_field Settings.FIELDS.SUBJECT, label: 'Subject', limit: 6 - config.add_facet_field Settings.FIELDS.SPATIAL_COVERAGE, label: 'Place', limit: 6 - # config.add_facet_field 'dct_isPartOf_sm', :label => 'Collection', :limit => 6 - config.add_facet_field Settings.FIELDS.SOURCE, show: false, label: 'Collection' - - config.add_facet_field 'solr_year_i', label: 'Year', limit: 10, range: { - # :num_segments => 6, - assumed_boundaries: [0o001, 2016] - # :segments => true + # DEFAULT FACETS + # to add additional facets, use the keys defined in the settings.yml file + config.add_facet_field Settings.FIELDS.PROVIDER, label: 'Provider', limit: 8, + item_component: Geoblacklight::IconFacetItemComponent + config.add_facet_field Settings.FIELDS.CREATOR, label: 'Creator', limit: 8 + config.add_facet_field Settings.FIELDS.PUBLISHER, label: 'Publisher', limit: 8 + config.add_facet_field Settings.FIELDS.SUBJECT, label: 'Subject', limit: 8 + config.add_facet_field Settings.FIELDS.THEME, label: 'Theme', limit: 8 + config.add_facet_field Settings.FIELDS.SPATIAL_COVERAGE, label: 'Place', limit: 8 + config.add_facet_field Settings.FIELDS.INDEX_YEAR, label: 'Year', limit: 10, range: { + assumed_boundaries: [1100, Time.zone.now.year + 2] } - - # Needed as a fallback for dc_rights_s facet selections that were previously linked, does not show up in UI - config.add_facet_field 'dc_rights_s', label: 'Rights', partial: 'icon_facet', show: false - - config.add_facet_field 'access', label: 'Access', - query: { - restricted: { - label: 'Restricted', fq: 'dc_rights_s:Restricted' - }, - public: { - label: 'Public', fq: 'dc_rights_s:Public' - }, - available: { - label: 'Available', - fq: "(layer_availability_score_f:[#{Settings.GEOMONITOR_TOLERANCE} TO 1])" - }, - unavailable: { - label: 'Unavailable', - fq: "layer_availability_score_f:[0 TO #{Settings.GEOMONITOR_TOLERANCE}]" - } - }, - partial: 'icon_facet' - config.add_facet_field 'layer_geom_type_s', label: 'Data type', limit: 8, partial: 'icon_facet' - config.add_facet_field 'dc_format_s', label: 'Format', limit: 3 + config.add_facet_field Settings.FIELDS.ACCESS_RIGHTS, label: 'Access', limit: 8, + item_component: Geoblacklight::IconFacetItemComponent + # Disabled until GeoMonitor is updated for v4.x compatibility + # https://github.com/geoblacklight/geo_monitor/issues/12 + # config.add_facet_field 'availability', + # label: 'Availability', + # query: { + # available: { + # label: 'Available', + # fq: "(layer_availability_score_f:[#{Settings.GEOMONITOR_TOLERANCE} TO 1])" + # }, + # unavailable: { + # label: 'Unavailable', + # fq: "layer_availability_score_f:[0 TO #{Settings.GEOMONITOR_TOLERANCE}]" + # } + # }, + # item_component: Geoblacklight::IconFacetItemComponent + config.add_facet_field Settings.FIELDS.RESOURCE_CLASS, label: 'Resource Class', limit: 8, + item_component: Geoblacklight::IconFacetItemComponent + config.add_facet_field Settings.FIELDS.RESOURCE_TYPE, label: 'Resource Type', limit: 8 + + # GEOBLACKLIGHT APPLICATION FACETS + + # Map-Based "Search Here" Feature + # item_presenter - Defines how the facet appears in the GBL UI + # filter_query_builder - Defines the query generated for Solr + # filter_class - Defines how to add/remove facet from query + # label - Defines the label used in contstraints container + config.add_facet_field Settings.FIELDS.GEOMETRY, + item_presenter: Geoblacklight::BboxItemPresenter, + filter_class: Geoblacklight::BboxFilterField, + filter_query_builder: Geoblacklight::BboxFilterQuery, + within_boost: Settings.BBOX_WITHIN_BOOST, + overlap_boost: Settings.OVERLAP_RATIO_BOOST, + overlap_field: Settings.FIELDS.OVERLAP_FIELD, + label: 'Bounding Box' + + # Item Relationship Facets + # * Not displayed to end user (show: false) + # * Must be present for relationship "Browse all 4 records" links to work + # * Label value becomes the search contraint filter name + config.add_facet_field Settings.FIELDS.MEMBER_OF, label: 'Member Of', show: false + config.add_facet_field Settings.FIELDS.IS_PART_OF, label: 'Is Part Of', show: false + config.add_facet_field Settings.FIELDS.RELATION, label: 'Related', show: false + config.add_facet_field Settings.FIELDS.REPLACES, label: 'Replaces', show: false + config.add_facet_field Settings.FIELDS.IS_REPLACED_BY, label: 'Is Replaced By', show: false + config.add_facet_field Settings.FIELDS.SOURCE, label: 'Source', show: false + config.add_facet_field Settings.FIELDS.VERSION, label: 'Is Version Of', show: false # Have BL send all facet field names to Solr, which has been the default # previously. Simply remove these lines if you'd rather use Solr request # handler defaults, or have no facets. config.add_facet_fields_to_solr_request! + # SEARCH RESULTS FIELDS # solr fields to be displayed in the index (search results) view # The ordering of the field names is the order of the display - # config.add_index_field 'title_display', :label => 'Title:' - # config.add_index_field 'title_vern_display', :label => 'Title:' - # config.add_index_field 'author_display', :label => 'Author:' - # config.add_index_field 'author_vern_display', :label => 'Author:' - # config.add_index_field 'format', :label => 'Format:' - # config.add_index_field 'language_facet', :label => 'Language:' - # config.add_index_field 'published_display', :label => 'Published:' - # config.add_index_field 'published_vern_display', :label => 'Published:' - # config.add_index_field 'lc_callnum_display', :label => 'Call number:' - - # config.add_index_field 'dc_title_t', :label => 'Display Name:' - # config.add_index_field 'dct_provenance_s', :label => 'Institution:' - # config.add_index_field 'dc_rights_s', :label => 'Access:' - # # config.add_index_field 'Area', :label => 'Area:' - # config.add_index_field 'dc_subject_sm', :label => 'Keywords:' - config.add_index_field Settings.FIELDS.YEAR + config.add_index_field Settings.FIELDS.INDEX_YEAR config.add_index_field Settings.FIELDS.CREATOR config.add_index_field Settings.FIELDS.DESCRIPTION, helper_method: :snippit config.add_index_field Settings.FIELDS.PUBLISHER + # ITEM VIEW FIELDS # solr fields to be displayed in the show (single result) view # The ordering of the field names is the order of the display # item_prop: [String] property given to span with Schema.org item property # link_to_search: [Boolean] that can be passed to link to a facet search # helper_method: [Symbol] method that can be used to render the value - config.add_show_field Settings.FIELDS.CREATOR, label: 'Author(s)', itemprop: 'author', link_to_facet: true + config.add_show_field Settings.FIELDS.CREATOR, label: 'Creator', itemprop: 'creator', link_to_facet: true config.add_show_field Settings.FIELDS.DESCRIPTION, label: 'Description', itemprop: 'description', helper_method: :render_value_as_truncate_abstract - config.add_show_field Settings.FIELDS.PUBLISHER, label: 'Publisher', itemprop: 'publisher' - config.add_show_field Settings.FIELDS.PART_OF, label: 'Collection', itemprop: 'isPartOf' - config.add_show_field Settings.FIELDS.SPATIAL_COVERAGE, label: 'Place(s)', itemprop: 'spatial', link_to_facet: true - config.add_show_field Settings.FIELDS.SUBJECT, label: 'Subject(s)', itemprop: 'keywords', link_to_facet: true - config.add_show_field Settings.FIELDS.TEMPORAL, label: 'Year', itemprop: 'temporal' - config.add_show_field Settings.FIELDS.PROVENANCE, label: 'Held by', link_to_facet: true + config.add_show_field Settings.FIELDS.PUBLISHER, label: 'Publisher', itemprop: 'publisher', link_to_facet: true + config.add_show_field Settings.FIELDS.SPATIAL_COVERAGE, label: 'Place', itemprop: 'spatial', + link_to_facet: true + config.add_show_field Settings.FIELDS.SUBJECT, label: 'Subject', itemprop: 'keywords', link_to_facet: true + config.add_show_field Settings.FIELDS.THEME, label: 'Theme', itemprop: 'theme', link_to_facet: true + config.add_show_field Settings.FIELDS.DATE_ISSUED, label: 'Date Issued', itemprop: 'issued' + config.add_show_field Settings.FIELDS.TEMPORAL_COVERAGE, label: 'Temporal Coverage', itemprop: 'temporal' + config.add_show_field Settings.FIELDS.PROVIDER, label: 'Provider', link_to_facet: true + config.add_show_field Settings.FIELDS.RESOURCE_CLASS, label: 'Resource Class', itemprop: 'class', + link_to_facet: true + config.add_show_field Settings.FIELDS.RESOURCE_TYPE, label: 'Resource Type', itemprop: 'type', link_to_facet: true + # config.add_show_field Settings.FIELDS.FORMAT, label: 'Format', itemprop: 'format' + config.add_show_field Settings.FIELDS.RIGHTS, label: 'Use and Reproduction', itemprop: 'rights' + config.add_show_field Settings.FIELDS.RIGHTS_HOLDER, label: 'Copyright', itemprop: 'rights_holder' + config.add_show_field Settings.FIELDS.LICENSE, label: 'License', itemprop: 'license', helper_method: :render_license config.add_show_field( - Settings.FIELDS.REFERENCES, + Settings.FIELDS.IDENTIFIER, label: 'More details at', accessor: [:external_url], if: proc { |_, _, doc| doc.external_url }, helper_method: :render_references_url ) - # config.add_show_field 'dc_title_t', :label => 'Title:' - # config.add_show_field 'title_display', :label => 'Title:' - # config.add_show_field 'title_vern_display', :label => 'Title:' - # config.add_show_field 'subtitle_display', :label => 'Subtitle:' - # config.add_show_field 'subtitle_vern_display', :label => 'Subtitle:' - # config.add_show_field 'author_display', :label => 'Author:' - # config.add_show_field 'author_vern_display', :label => 'Author:' - # config.add_show_field 'format', :label => 'Format:' - # config.add_show_field 'url_fulltext_display', :label => 'URL:' - # config.add_show_field 'url_suppl_display', :label => 'More Information:' - # config.add_show_field 'language_facet', :label => 'Language:' - # config.add_show_field 'published_display', :label => 'Published:' - # config.add_show_field 'published_vern_display', :label => 'Published:' - # config.add_show_field 'lc_callnum_display', :label => 'Call number:' - # config.add_show_field 'isbn_t', :label => 'ISBN:' + # ADDITIONAL FIELDS + # The following fields are not user friendly and are not set to appear on the item show page. + # They contain non-literal values, codes, URIs, or are otherwise designed to power features in the interface. + # These values might need a translations to be readable by users. + + # config.add_show_field Settings.FIELDS.LANGUAGE, label: 'Language', itemprop: 'language' + # config.add_show_field Settings.FIELDS.KEYWORD, label: 'Keyword(s)', itemprop: 'keyword' + + # config.add_show_field Settings.FIELDS.INDEX_YEAR, label: 'Year', itemprop: 'year' + # config.add_show_field Settings.FIELDS.DATE_RANGE, label: 'Date Range', itemprop: 'date_range' + + # config.add_show_field Settings.FIELDS.CENTROID, label: 'Centroid', itemprop: 'centroid' + # config.add_show_field Settings.FIELDS.OVERLAP_FIELD, label: 'Overlap BBox', itemprop: 'overlap_field' + + # config.add_show_field Settings.FIELDS.RELATION, label: 'Relation', itemprop: 'relation' + # config.add_show_field Settings.FIELDS.MEMBER_OF, label: 'Member Of', itemprop: 'member_of' + # config.add_show_field Settings.FIELDS.IS_PART_OF, label: 'Is Part Of', itemprop: 'is_part_of' + # config.add_show_field Settings.FIELDS.VERSION, label: 'Version', itemprop: 'version' + # config.add_show_field Settings.FIELDS.REPLACES, label: 'Replaces', itemprop: 'replaces' + # config.add_show_field Settings.FIELDS.IS_REPLACED_BY, label: 'Is Replaced By', itemprop: 'is_replaced_by' + + # config.add_show_field Settings.FIELDS.WXS_IDENTIFIER, label: 'Web Service Layer', itemprop: 'wxs_identifier' + # config.add_show_field Settings.FIELDS.ID, label: 'ID', itemprop: 'id' + # config.add_show_field Settings.FIELDS.IDENTIFIER, label: 'Identifier', itemprop: 'identifier' + + # config.add_show_field Settings.FIELDS.MODIFIED, label: 'Date Modified', itemprop: 'modified' + # config.add_show_field Settings.FIELDS.METADATA_VERSION, label: 'Metadata Version', itemprop: 'metadata_version' + # config.add_show_field Settings.FIELDS.SUPPRESSED, label: 'Suppressed', itemprop: 'suppresed' # "fielded" search configuration. Used by pulldown among other places. # For supported keys in hash, see rdoc for Blacklight::SearchFields @@ -208,8 +238,8 @@ class CatalogController < ApplicationController # since we aren't specifying it otherwise. # config.add_search_field 'text', :label => 'All Fields' - # config.add_search_field 'dc_title_ti', :label => 'Title' - # config.add_search_field 'dc_description_ti', :label => 'Description' + # config.add_search_field 'dct_title_ti', :label => 'Title' + # config.add_search_field 'dct_description_ti', :label => 'Description' # Now we see how to over-ride Solr request handler defaults, in this # case for a BL "search field", which is really a dismax aggregate @@ -261,11 +291,10 @@ class CatalogController < ApplicationController # label in pulldown is followed by the name of the SOLR field to sort by and # whether the sort is ascending or descending (it must be asc or desc # except in the relevancy case). - config.add_sort_field 'score desc, dc_title_sort asc', label: 'relevance' - config.add_sort_field 'solr_year_i desc, dc_title_sort asc', label: 'year' - config.add_sort_field 'dc_publisher_sort asc, dc_title_sort asc', label: 'publisher' - config.add_sort_field 'dc_title_sort asc', label: 'title' - config.add_sort_field 'layer_modified_dt asc', label: 'Layer modified date (for API use only)', if: false + config.add_sort_field 'score desc, dct_title_sort asc', label: 'relevance' + config.add_sort_field "#{Settings.FIELDS.INDEX_YEAR} desc, dct_title_sort asc", label: 'year' + config.add_sort_field 'dct_title_sort asc', label: 'title' + config.add_sort_field "#{Settings.FIELDS.MODIFIED} asc", label: 'Layer modified date (for API use only)', if: false # If there are more than this many search results, no spelling ("did you # mean") suggestion is offered. @@ -280,17 +309,15 @@ class CatalogController < ApplicationController config.add_show_tools_partial(:sms, if: :render_sms_action?, callback: :sms_action, validator: :validate_sms_params) # Custom tools for GeoBlacklight - # rubocop:disable Layout/LineLength - config.add_show_tools_partial :web_services, if: proc { |_context, _config, options| - options[:document] && (Settings.WEBSERVICES_SHOWN & options[:document].references.refs.map { |r| r.type.to_s }).any? - } config.add_show_tools_partial :metadata, if: proc { |_context, _config, options| options[:document] && (Settings.METADATA_SHOWN & options[:document].references.refs.map { |r| r.type.to_s }).any? } config.add_show_tools_partial :arcgis, partial: 'arcgis', if: proc { |_context, _config, options| options[:document] && options[:document].arcgis_urls.present? } - # rubocop:enable Layout/LineLength + config.add_show_tools_partial :data_dictionary, partial: 'data_dictionary', if: proc { |_context, _config, options| + options[:document] && options[:document].data_dictionary_download.present? + } config.show.document_actions.delete(:sms) # Configure basemap provider @@ -301,18 +328,21 @@ class CatalogController < ApplicationController config.autocomplete_path = 'suggest' end + def web_services + @response, @documents = action_documents + + respond_to do |format| + format.html do + return render layout: false if request.xhr? + # Otherwise draw the full page + end + end + end + ## # Overrides default Blacklight method to return true for an empty q value # @return [Boolean] def has_search_parameters? !params[:q].nil? || super end - - def redirect_from_legacy_id - if (redirect_id = LegacyIdMap.map[params[:id]]) - redirect_to solr_document_path(redirect_id) - else - raise Blacklight::Exceptions::RecordNotFound - end - end end diff --git a/app/helpers/earthworks_geoblacklight_helper.rb b/app/helpers/earthworks_geoblacklight_helper.rb index c637c05a..c8f36b02 100644 --- a/app/helpers/earthworks_geoblacklight_helper.rb +++ b/app/helpers/earthworks_geoblacklight_helper.rb @@ -6,24 +6,22 @@ def document_available? (@document.same_institution? && user_signed_in? && @document.available?) end - ## - # Override from GeoBlacklight to include custom `featured` param - def has_search_parameters? - params[:featured].present? || super + # Override to render multi-valued description as individual paragraphs + def render_value_as_truncate_abstract(args) + tag.div class: 'truncate-abstract' do + Array(args[:value]).flatten.collect { |v| concat tag.p(v) } + end end - ## - # Override from GeoBlacklight to include custom `featured` param - def render_constraints_filters(localized_params = params) - content = super(localized_params) - localized_params = localized_params.to_unsafe_h unless localized_params.is_a?(Hash) - - if localized_params[:featured] - value = localized_params[:featured].humanize.split.map(&:capitalize).join(' ') - path = search_action_path(remove_spatial_filter_group(:featured, localized_params)) - content << render_constraint_element('Featured', value, remove: path) - end + # Try to render a human-readable license description, or fall back to the URI + def render_license(args) + tag.span @document.license.description + rescue License::UnknownLicenseError + tag.span args[:value] + end - content + # Use Mirador as the IIIF manifest viewer + def iiif_manifest_viewer + tag.div(nil, id: 'mirador', data: { 'manifest-url' => @document.viewer_endpoint }) end end diff --git a/app/jobs/check_layer_job.rb b/app/jobs/check_layer_job.rb index a209006d..d7c140f9 100644 --- a/app/jobs/check_layer_job.rb +++ b/app/jobs/check_layer_job.rb @@ -3,6 +3,7 @@ class CheckLayerJob < ApplicationJob ## # @param [GeoMonitor::Layer] layer + # TODO: migrate this to the geo_monitor gem itself? def perform(layer) # See if in Solr first, if not, deactivate and exit num_found = Blacklight.default_index.connection.get( diff --git a/app/models/concerns/featured_content_behavior.rb b/app/models/concerns/featured_content_behavior.rb deleted file mode 100644 index 40786b10..00000000 --- a/app/models/concerns/featured_content_behavior.rb +++ /dev/null @@ -1,43 +0,0 @@ -module FeaturedContentBehavior - extend ActiveSupport::Concern - - def add_featured_content(solr_params) - featured_content_params = send(:"#{blacklight_params[:featured]}_content_params") - featured_content_params.each do |param| - solr_params[:fq] ||= [] - solr_params[:fq] << param - end - - solr_params - rescue NoMethodError - solr_params - end - - private - - # rubocop:disable Layout/LineLength - def scanned_maps_content_params - [ - 'layer_geom_type_s:Image OR layer_geom_type_s:"Paper Map"' - ] - end - - def geospatial_data_content_params - [ - '-layer_geom_type_s:Image AND -layer_geom_type_s:"Paper Map" AND -layer_geom_type_s:Mixed AND -layer_geom_type_s:Table' - ] - end - - def census_data_content_params - [ - 'dc_title_ti:census OR dc_description_ti:census OR dc_publisher_ti:census OR dc_subject_tmi:census' - ] - end - - def california_data_content_params - [ - 'dc_title_ti:california OR dc_description_ti:california OR dc_publisher_ti:california OR dc_subject_tmi:california' - ] - end - # rubocop:enable Layout/LineLength -end diff --git a/app/models/concerns/license_concern.rb b/app/models/concerns/license_concern.rb new file mode 100644 index 00000000..5f725796 --- /dev/null +++ b/app/models/concerns/license_concern.rb @@ -0,0 +1,12 @@ +# frozen_string_literal: true + +# Custom handling for license URIs +module LicenseConcern + extend Geoblacklight::SolrDocument + + # Use the first URI in the license field to create a License object + def license + license_uris = fetch(:dct_license_sm, []) + License.new(url: license_uris.first) + end +end diff --git a/app/models/concerns/rights_metadata_concern.rb b/app/models/concerns/rights_metadata_concern.rb deleted file mode 100644 index 87a2e99a..00000000 --- a/app/models/concerns/rights_metadata_concern.rb +++ /dev/null @@ -1,7 +0,0 @@ -module RightsMetadataConcern - extend Geoblacklight::SolrDocument - - def rights_metadata - RightsMetadata.new(fetch(:stanford_rights_metadata_s, {})) - end -end diff --git a/app/models/concerns/status_extension.rb b/app/models/concerns/status_extension.rb index 2be8bcee..bab1e403 100644 --- a/app/models/concerns/status_extension.rb +++ b/app/models/concerns/status_extension.rb @@ -7,7 +7,7 @@ module StatusExtension def update_index data = [{ layer_availability_score_f: { set: layer.availability_score }, - layer_slug_s: layer.slug + id: layer.id }] Indexer.new.solr_update(data) end diff --git a/app/models/concerns/wms_rewrite_concern.rb b/app/models/concerns/wms_rewrite_concern.rb index c8308f6d..28b8b5f9 100644 --- a/app/models/concerns/wms_rewrite_concern.rb +++ b/app/models/concerns/wms_rewrite_concern.rb @@ -2,19 +2,11 @@ module WmsRewriteConcern extend Geoblacklight::SolrDocument def viewer_endpoint - if is_stanford_restricted? + if stanford? && restricted? # replace wms prefix with webauthed proxy super.gsub(%r{.+?(?=/geoserver)}, Settings.PROXY_URL) else super end end - - def is_stanford_restricted? - stanford? && restricted? - end - - def stanford? - fetch(:dct_provenance_s).casecmp('stanford').zero? - end end diff --git a/app/models/search_builder.rb b/app/models/search_builder.rb index c264bc0d..45f022a6 100644 --- a/app/models/search_builder.rb +++ b/app/models/search_builder.rb @@ -1,23 +1,5 @@ class SearchBuilder < Blacklight::SearchBuilder include Blacklight::Solr::SearchBuilderBehavior include BlacklightRangeLimit::RangeLimitBuilder - - include Geoblacklight::SpatialSearchBehavior - include ::FeaturedContentBehavior - - self.default_processor_chain += %i[add_featured_content] - - def add_spatial_params(solr_params) - if blacklight_params[:bbox] - solr_params[:bq] ||= [] - solr_params[:bq] = - ["#{Settings.GEOMETRY_FIELD}:\"IsWithin(#{envelope_bounds})\"^300"] - solr_params[:fq] ||= [] - solr_params[:fq] << - "#{Settings.GEOMETRY_FIELD}:\"Intersects(#{envelope_bounds})\"" - end - solr_params - rescue Geoblacklight::Exceptions::WrongBoundingBoxFormat - solr_params - end + include Geoblacklight::SuppressedRecordsSearchBehavior end diff --git a/app/models/solr_document.rb b/app/models/solr_document.rb index c3ea4118..2dfa5414 100644 --- a/app/models/solr_document.rb +++ b/app/models/solr_document.rb @@ -1,19 +1,15 @@ class SolrDocument include Blacklight::Solr::Document include Geoblacklight::SolrDocument - include GeomonitorConcern - include RightsMetadataConcern + # include GeomonitorConcern + # https://github.com/geoblacklight/geo_monitor/issues/12 include WmsRewriteConcern + include LicenseConcern - # self.unique_key = 'id' - self.unique_key = 'layer_slug_s' - - field_semantics[:author] = :dc_creator_sm - field_semantics[:title] = :dc_title_s - field_semantics[:year] = :dct_temporal_sm + alias stanford? same_institution? def institution - fetch(Settings.FIELDS.PROVENANCE) + fetch(Settings.FIELDS.PROVIDER, '') end def contact_email @@ -25,11 +21,11 @@ def department end def collection? - fetch(Settings.FIELDS.GEOM_TYPE, nil) == 'Collection' + fetch(Settings.FIELDS.RESOURCE_CLASS, []).include? 'Collections' end def mixed? - fetch(Settings.FIELDS.GEOM_TYPE, nil) == 'Mixed' + fetch(Settings.FIELDS.RESOURCE_CLASS, []) == 'Other' end # Email uses the semantic field mappings below to generate the body of an email. diff --git a/app/views/catalog/_home_text.html.erb b/app/views/catalog/_home_text.html.erb index 2adb81b2..04c808b6 100644 --- a/app/views/catalog/_home_text.html.erb +++ b/app/views/catalog/_home_text.html.erb @@ -16,7 +16,7 @@
- <%= link_to search_catalog_path(featured: 'geospatial_data', q: '') do %> + <%= link_to search_catalog_path(f: { gbl_resourceClass_sm: ['Datasets']}) do %> <%= image_tag 'geospatial_data.png', alt: '' %>

Geospatial data

<% end %> @@ -26,7 +26,7 @@
- <%= link_to search_catalog_path(featured: 'scanned_maps', q: '') do %> + <%= link_to search_catalog_path(f: { gbl_resourceClass_sm: ['Maps'] }) do %> <%= image_tag 'scanned_maps.png', alt: '' %>

Scanned maps

<% end %> @@ -36,7 +36,7 @@
- <%= link_to search_catalog_path(featured: 'census_data', q: '') do %> + <%= link_to search_catalog_path(f: { dct_subject_sm: ['Census']}) do %> <%= image_tag 'census_data.png', alt: '' %>

Census data

<% end %> @@ -46,7 +46,7 @@
- <%= link_to search_catalog_path(featured: 'california_data', q: '') do %> + <%= link_to search_catalog_path(f: { dct_spatial_sm: ['California'] }) do %> <%= image_tag 'california_data.png', alt: '' %>

California data

<% end %> diff --git a/app/views/catalog/_rights_metadata.html.erb b/app/views/catalog/_rights_metadata.html.erb deleted file mode 100644 index 7b9c3f0d..00000000 --- a/app/views/catalog/_rights_metadata.html.erb +++ /dev/null @@ -1,36 +0,0 @@ -<% document ||= @document %> - -<% rights_metadata ||= document.rights_metadata %> - - diff --git a/app/views/layouts/blacklight/base.html.erb b/app/views/layouts/blacklight/base.html.erb index 21ad13ec..77073327 100644 --- a/app/views/layouts/blacklight/base.html.erb +++ b/app/views/layouts/blacklight/base.html.erb @@ -15,7 +15,7 @@ gtag('js', new Date()); const config = {}; - <% if Settings.analytics_debug %> + <% if Settings.ANALYTICS_DEBUG %> config.debug_mode = true <% end %> @@ -29,6 +29,7 @@ + <%= javascript_include_tag 'application' %> + + + + + + + + + + + + + - + - @@ -44,26 +58,8 @@ - - - + + @@ -80,6 +76,9 @@ A Trie based date field for faster date range queries and date faceting. --> + + + @@ -134,54 +133,65 @@ - - + + + + + - - - - - - - - - + + + + + + + + + - - + - - + + - - - + + - - - - - + + + + + - - - - - + + + + + + + + diff --git a/config/solr_configs/solrconfig.xml b/config/solr_configs/solrconfig.xml index f0ece28f..c06b819d 100644 --- a/config/solr_configs/solrconfig.xml +++ b/config/solr_configs/solrconfig.xml @@ -18,7 +18,7 @@ this file, see http://wiki.apache.org/solr/SolrConfigXml. --> - 6.1.0 + 8.11.2 ${solr.data.dir:} @@ -51,8 +51,6 @@ - - @@ -109,54 +107,54 @@ 0 0.01 *,score - score desc, dc_title_sort asc + score desc, dct_title_sort asc *:* text^1 - dc_description_ti^2 - dc_creator_tmi^3 - dc_publisher_ti^3 + dct_description_ti^2 + dct_creator_tmi^3 + dct_publisher_ti^3 dct_isPartOf_tmi^4 - dc_subject_tmi^5 + dct_subject_tmi^5 dct_spatial_tmi^5 dct_temporal_tmi^5 - dc_title_ti^6 - dc_rights_ti^7 - dct_provenance_ti^8 + dct_title_ti^6 + dct_accessRights_ti^7 + dct_provider_ti^8 layer_geom_type_ti^9 layer_slug_ti^10 - dc_identifier_ti^10 + dct_identifier_ti^10 text^1 - dc_description_ti^2 - dc_creator_tmi^3 - dc_publisher_ti^3 + dct_description_ti^2 + dct_creator_tmi^3 + dct_publisher_ti^3 dct_isPartOf_tmi^4 - dc_subject_tmi^5 + dct_subject_tmi^5 dct_spatial_tmi^5 dct_temporal_tmi^5 - dc_title_ti^6 - dc_rights_ti^7 - dct_provenance_ti^8 + dct_title_ti^6 + dct_accessRights_ti^7 + dct_provider_ti^8 layer_geom_type_ti^9 layer_slug_ti^10 - dc_identifier_ti^10 + dct_identifier_ti^10 true 1 10 dct_isPartOf_sm - dct_provenance_s + schema_provider_s dct_spatial_sm - dc_creator_sm - dc_format_s - dc_language_s - dc_publisher_s - dc_rights_s - dc_subject_sm - layer_geom_type_s - solr_year_i + dct_creator_sm + dct_format_s + dct_language_sm + dct_publisher_sm + dct_accessRights_s + dct_subject_sm + locn_geometry_s + gbl_indexYear_im true diff --git a/lib/earthworks/harvester.rb b/lib/earthworks/harvester.rb index 7d4b6cb9..d0591f35 100644 --- a/lib/earthworks/harvester.rb +++ b/lib/earthworks/harvester.rb @@ -34,9 +34,9 @@ def skip_record?(_record, path) # We transform some records in order to get more consistent metadata display # in Earthworks, especially for facets. def transform_record(record, path) - # Transform provenance to a shorter, consistent value based on the repository - if (transformed_provenance = @ogm_repos.dig(record_repo(path), :provenance)) - record.update({ 'dct_provenance_s' => transformed_provenance }) + # Transform provider name to a shorter, consistent value based on the repository + if (transformed_provider = @ogm_repos.dig(record_repo(path), :provider)) + record.update({ 'schema_provider_s' => transformed_provider }) end record diff --git a/lib/legacy_id_map.rb b/lib/legacy_id_map.rb deleted file mode 100644 index e30d43a3..00000000 --- a/lib/legacy_id_map.rb +++ /dev/null @@ -1,15 +0,0 @@ -# frozen_string_literal: true - -class LegacyIdMap - class << self - def map - @map ||= YAML.safe_load_file(path) - end - - private - - def path - Rails.root.join('config', 'legacy_id.map') - end - end -end diff --git a/lib/license.rb b/lib/license.rb new file mode 100644 index 00000000..5eded02f --- /dev/null +++ b/lib/license.rb @@ -0,0 +1,22 @@ +# frozen_string_literal: true + +# This is the license entity used for translating a license URL into text +# that is rendered on an item's show page +class License + attr_reader :description, :uri + + # Raised when the license provided is not valid + class UnknownLicenseError < StandardError; end + + def self.licenses + @licenses ||= Rails.application.config_for(:licenses, env: 'production').stringify_keys + end + + def initialize(url:) + raise UnknownLicenseError unless License.licenses.key?(url) + + attrs = License.licenses.fetch(url) + @uri = url + @description = attrs.fetch(:description) + end +end diff --git a/lib/rights_metadata.rb b/lib/rights_metadata.rb deleted file mode 100644 index f0ee596e..00000000 --- a/lib/rights_metadata.rb +++ /dev/null @@ -1,52 +0,0 @@ -class RightsMetadata - def initialize(rights_metadata) - @rights_metadata = rights_metadata - end - - def use_and_reproduction - ng_xml.xpath('//rightsMetadata/use/human[@type="useAndReproduction"]').first.try(:content) - end - - def copyright - ng_xml.xpath('//rightsMetadata/copyright').first.try(:content) - end - - def license - cc_license || odc_licence - end - - def ng_xml - @ng_xml ||= Nokogiri::XML(@rights_metadata) - end - - private - - def cc_license - { human: cc_license_human, machine: cc_license_machine } if cc_license_human.present? && cc_license_machine.present? - end - - def cc_license_machine - ng_xml.xpath('//rightsMetadata/use/machine[@type="creativeCommons"]').first.try(:content) - end - - def cc_license_human - ng_xml.xpath('//rightsMetadata/use/human[@type="creativeCommons"]').first.try(:content) - end - - def odc_licence - return unless odc_licence_human.present? && odc_licence_machine.present? - - { - human: odc_licence_human, - machine: odc_licence_machine - } - end - - def odc_licence_human - ng_xml.xpath('//rightsMetadata/use/human[@type="openDataCommons"]').first.try(:content) - end - - def odc_licence_machine - ng_xml.xpath('//rightsMetadata/use/machine[@type="openDataCommons"]').first.try(:content) - end -end diff --git a/package-lock.json b/package-lock.json new file mode 100644 index 00000000..85bcda40 --- /dev/null +++ b/package-lock.json @@ -0,0 +1,1059 @@ +{ + "name": "earthworks", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "devDependencies": { + "vite": "^5.2.11", + "vite-plugin-ruby": "^5.0.0" + } + }, + "node_modules/@esbuild/aix-ppc64": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.20.2.tgz", + "integrity": "sha512-D+EBOJHXdNZcLJRBkhENNG8Wji2kgc9AZ9KiPr1JuZjsNtyHzrsfLRrY0tk2H2aoFu6RANO1y1iPPUCDYWkb5g==", + "cpu": [ + "ppc64" + ], + "dev": true, + "optional": true, + "os": [ + "aix" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/android-arm": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.20.2.tgz", + "integrity": "sha512-t98Ra6pw2VaDhqNWO2Oph2LXbz/EJcnLmKLGBJwEwXX/JAN83Fym1rU8l0JUWK6HkIbWONCSSatf4sf2NBRx/w==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/android-arm64": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.20.2.tgz", + "integrity": "sha512-mRzjLacRtl/tWU0SvD8lUEwb61yP9cqQo6noDZP/O8VkwafSYwZ4yWy24kan8jE/IMERpYncRt2dw438LP3Xmg==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/android-x64": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.20.2.tgz", + "integrity": "sha512-btzExgV+/lMGDDa194CcUQm53ncxzeBrWJcncOBxuC6ndBkKxnHdFJn86mCIgTELsooUmwUm9FkhSp5HYu00Rg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/darwin-arm64": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.20.2.tgz", + "integrity": "sha512-4J6IRT+10J3aJH3l1yzEg9y3wkTDgDk7TSDFX+wKFiWjqWp/iCfLIYzGyasx9l0SAFPT1HwSCR+0w/h1ES/MjA==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/darwin-x64": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.20.2.tgz", + "integrity": "sha512-tBcXp9KNphnNH0dfhv8KYkZhjc+H3XBkF5DKtswJblV7KlT9EI2+jeA8DgBjp908WEuYll6pF+UStUCfEpdysA==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/freebsd-arm64": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.20.2.tgz", + "integrity": "sha512-d3qI41G4SuLiCGCFGUrKsSeTXyWG6yem1KcGZVS+3FYlYhtNoNgYrWcvkOoaqMhwXSMrZRl69ArHsGJ9mYdbbw==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/freebsd-x64": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.20.2.tgz", + "integrity": "sha512-d+DipyvHRuqEeM5zDivKV1KuXn9WeRX6vqSqIDgwIfPQtwMP4jaDsQsDncjTDDsExT4lR/91OLjRo8bmC1e+Cw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-arm": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.20.2.tgz", + "integrity": "sha512-VhLPeR8HTMPccbuWWcEUD1Az68TqaTYyj6nfE4QByZIQEQVWBB8vup8PpR7y1QHL3CpcF6xd5WVBU/+SBEvGTg==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-arm64": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.20.2.tgz", + "integrity": "sha512-9pb6rBjGvTFNira2FLIWqDk/uaf42sSyLE8j1rnUpuzsODBq7FvpwHYZxQ/It/8b+QOS1RYfqgGFNLRI+qlq2A==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-ia32": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.20.2.tgz", + "integrity": "sha512-o10utieEkNPFDZFQm9CoP7Tvb33UutoJqg3qKf1PWVeeJhJw0Q347PxMvBgVVFgouYLGIhFYG0UGdBumROyiig==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-loong64": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.20.2.tgz", + "integrity": "sha512-PR7sp6R/UC4CFVomVINKJ80pMFlfDfMQMYynX7t1tNTeivQ6XdX5r2XovMmha/VjR1YN/HgHWsVcTRIMkymrgQ==", + "cpu": [ + "loong64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-mips64el": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.20.2.tgz", + "integrity": "sha512-4BlTqeutE/KnOiTG5Y6Sb/Hw6hsBOZapOVF6njAESHInhlQAghVVZL1ZpIctBOoTFbQyGW+LsVYZ8lSSB3wkjA==", + "cpu": [ + "mips64el" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-ppc64": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.20.2.tgz", + "integrity": "sha512-rD3KsaDprDcfajSKdn25ooz5J5/fWBylaaXkuotBDGnMnDP1Uv5DLAN/45qfnf3JDYyJv/ytGHQaziHUdyzaAg==", + "cpu": [ + "ppc64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-riscv64": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.20.2.tgz", + "integrity": "sha512-snwmBKacKmwTMmhLlz/3aH1Q9T8v45bKYGE3j26TsaOVtjIag4wLfWSiZykXzXuE1kbCE+zJRmwp+ZbIHinnVg==", + "cpu": [ + "riscv64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-s390x": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.20.2.tgz", + "integrity": "sha512-wcWISOobRWNm3cezm5HOZcYz1sKoHLd8VL1dl309DiixxVFoFe/o8HnwuIwn6sXre88Nwj+VwZUvJf4AFxkyrQ==", + "cpu": [ + "s390x" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-x64": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.20.2.tgz", + "integrity": "sha512-1MdwI6OOTsfQfek8sLwgyjOXAu+wKhLEoaOLTjbijk6E2WONYpH9ZU2mNtR+lZ2B4uwr+usqGuVfFT9tMtGvGw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/netbsd-x64": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.20.2.tgz", + "integrity": "sha512-K8/DhBxcVQkzYc43yJXDSyjlFeHQJBiowJ0uVL6Tor3jGQfSGHNNJcWxNbOI8v5k82prYqzPuwkzHt3J1T1iZQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/openbsd-x64": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.20.2.tgz", + "integrity": "sha512-eMpKlV0SThJmmJgiVyN9jTPJ2VBPquf6Kt/nAoo6DgHAoN57K15ZghiHaMvqjCye/uU4X5u3YSMgVBI1h3vKrQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/sunos-x64": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.20.2.tgz", + "integrity": "sha512-2UyFtRC6cXLyejf/YEld4Hajo7UHILetzE1vsRcGL3earZEW77JxrFjH4Ez2qaTiEfMgAXxfAZCm1fvM/G/o8w==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-arm64": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.20.2.tgz", + "integrity": "sha512-GRibxoawM9ZCnDxnP3usoUDO9vUkpAxIIZ6GQI+IlVmr5kP3zUq+l17xELTHMWTWzjxa2guPNyrpq1GWmPvcGQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-ia32": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.20.2.tgz", + "integrity": "sha512-HfLOfn9YWmkSKRQqovpnITazdtquEW8/SoHW7pWpuEeguaZI4QnCRW6b+oZTztdBnZOS2hqJ6im/D5cPzBTTlQ==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-x64": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.20.2.tgz", + "integrity": "sha512-N49X4lJX27+l9jbLKSqZ6bKNjzQvHaT8IIFUy+YIqmXQdjYCToGWwOItDrfby14c78aDd5NHQl29xingXfCdLQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "dev": true, + "dependencies": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "dev": true, + "dependencies": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@rollup/rollup-android-arm-eabi": { + "version": "4.18.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.18.0.tgz", + "integrity": "sha512-Tya6xypR10giZV1XzxmH5wr25VcZSncG0pZIjfePT0OVBvqNEurzValetGNarVrGiq66EBVAFn15iYX4w6FKgQ==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-android-arm64": { + "version": "4.18.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.18.0.tgz", + "integrity": "sha512-avCea0RAP03lTsDhEyfy+hpfr85KfyTctMADqHVhLAF3MlIkq83CP8UfAHUssgXTYd+6er6PaAhx/QGv4L1EiA==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-darwin-arm64": { + "version": "4.18.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.18.0.tgz", + "integrity": "sha512-IWfdwU7KDSm07Ty0PuA/W2JYoZ4iTj3TUQjkVsO/6U+4I1jN5lcR71ZEvRh52sDOERdnNhhHU57UITXz5jC1/w==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-darwin-x64": { + "version": "4.18.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.18.0.tgz", + "integrity": "sha512-n2LMsUz7Ynu7DoQrSQkBf8iNrjOGyPLrdSg802vk6XT3FtsgX6JbE8IHRvposskFm9SNxzkLYGSq9QdpLYpRNA==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-linux-arm-gnueabihf": { + "version": "4.18.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.18.0.tgz", + "integrity": "sha512-C/zbRYRXFjWvz9Z4haRxcTdnkPt1BtCkz+7RtBSuNmKzMzp3ZxdM28Mpccn6pt28/UWUCTXa+b0Mx1k3g6NOMA==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm-musleabihf": { + "version": "4.18.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.18.0.tgz", + "integrity": "sha512-l3m9ewPgjQSXrUMHg93vt0hYCGnrMOcUpTz6FLtbwljo2HluS4zTXFy2571YQbisTnfTKPZ01u/ukJdQTLGh9A==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-gnu": { + "version": "4.18.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.18.0.tgz", + "integrity": "sha512-rJ5D47d8WD7J+7STKdCUAgmQk49xuFrRi9pZkWoRD1UeSMakbcepWXPF8ycChBoAqs1pb2wzvbY6Q33WmN2ftw==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-musl": { + "version": "4.18.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.18.0.tgz", + "integrity": "sha512-be6Yx37b24ZwxQ+wOQXXLZqpq4jTckJhtGlWGZs68TgdKXJgw54lUUoFYrg6Zs/kjzAQwEwYbp8JxZVzZLRepQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-powerpc64le-gnu": { + "version": "4.18.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.18.0.tgz", + "integrity": "sha512-hNVMQK+qrA9Todu9+wqrXOHxFiD5YmdEi3paj6vP02Kx1hjd2LLYR2eaN7DsEshg09+9uzWi2W18MJDlG0cxJA==", + "cpu": [ + "ppc64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-riscv64-gnu": { + "version": "4.18.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.18.0.tgz", + "integrity": "sha512-ROCM7i+m1NfdrsmvwSzoxp9HFtmKGHEqu5NNDiZWQtXLA8S5HBCkVvKAxJ8U+CVctHwV2Gb5VUaK7UAkzhDjlg==", + "cpu": [ + "riscv64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-s390x-gnu": { + "version": "4.18.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.18.0.tgz", + "integrity": "sha512-0UyyRHyDN42QL+NbqevXIIUnKA47A+45WyasO+y2bGJ1mhQrfrtXUpTxCOrfxCR4esV3/RLYyucGVPiUsO8xjg==", + "cpu": [ + "s390x" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-gnu": { + "version": "4.18.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.18.0.tgz", + "integrity": "sha512-xuglR2rBVHA5UsI8h8UbX4VJ470PtGCf5Vpswh7p2ukaqBGFTnsfzxUBetoWBWymHMxbIG0Cmx7Y9qDZzr648w==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-musl": { + "version": "4.18.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.18.0.tgz", + "integrity": "sha512-LKaqQL9osY/ir2geuLVvRRs+utWUNilzdE90TpyoX0eNqPzWjRm14oMEE+YLve4k/NAqCdPkGYDaDF5Sw+xBfg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-win32-arm64-msvc": { + "version": "4.18.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.18.0.tgz", + "integrity": "sha512-7J6TkZQFGo9qBKH0pk2cEVSRhJbL6MtfWxth7Y5YmZs57Pi+4x6c2dStAUvaQkHQLnEQv1jzBUW43GvZW8OFqA==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-ia32-msvc": { + "version": "4.18.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.18.0.tgz", + "integrity": "sha512-Txjh+IxBPbkUB9+SXZMpv+b/vnTEtFyfWZgJ6iyCmt2tdx0OF5WhFowLmnh8ENGNpfUlUZkdI//4IEmhwPieNg==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-x64-msvc": { + "version": "4.18.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.18.0.tgz", + "integrity": "sha512-UOo5FdvOL0+eIVTgS4tIdbW+TtnBLWg1YBCcU2KWM7nuNwRz9bksDX1bekJJCpu25N1DVWaCwnT39dVQxzqS8g==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@types/estree": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.5.tgz", + "integrity": "sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==", + "dev": true + }, + "node_modules/braces": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", + "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", + "dev": true, + "dependencies": { + "fill-range": "^7.1.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dev": true, + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/esbuild": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.20.2.tgz", + "integrity": "sha512-WdOOppmUNU+IbZ0PaDiTst80zjnrOkyJNHoKupIcVyU8Lvla3Ugx94VzkQ32Ijqd7UhHJy75gNWDMUekcrSJ6g==", + "dev": true, + "hasInstallScript": true, + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=12" + }, + "optionalDependencies": { + "@esbuild/aix-ppc64": "0.20.2", + "@esbuild/android-arm": "0.20.2", + "@esbuild/android-arm64": "0.20.2", + "@esbuild/android-x64": "0.20.2", + "@esbuild/darwin-arm64": "0.20.2", + "@esbuild/darwin-x64": "0.20.2", + "@esbuild/freebsd-arm64": "0.20.2", + "@esbuild/freebsd-x64": "0.20.2", + "@esbuild/linux-arm": "0.20.2", + "@esbuild/linux-arm64": "0.20.2", + "@esbuild/linux-ia32": "0.20.2", + "@esbuild/linux-loong64": "0.20.2", + "@esbuild/linux-mips64el": "0.20.2", + "@esbuild/linux-ppc64": "0.20.2", + "@esbuild/linux-riscv64": "0.20.2", + "@esbuild/linux-s390x": "0.20.2", + "@esbuild/linux-x64": "0.20.2", + "@esbuild/netbsd-x64": "0.20.2", + "@esbuild/openbsd-x64": "0.20.2", + "@esbuild/sunos-x64": "0.20.2", + "@esbuild/win32-arm64": "0.20.2", + "@esbuild/win32-ia32": "0.20.2", + "@esbuild/win32-x64": "0.20.2" + } + }, + "node_modules/fast-glob": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz", + "integrity": "sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==", + "dev": true, + "dependencies": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.4" + }, + "engines": { + "node": ">=8.6.0" + } + }, + "node_modules/fastq": { + "version": "1.17.1", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.17.1.tgz", + "integrity": "sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==", + "dev": true, + "dependencies": { + "reusify": "^1.0.4" + } + }, + "node_modules/fill-range": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", + "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", + "dev": true, + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "dev": true, + "hasInstallScript": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dev": true, + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true, + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/micromatch": { + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.7.tgz", + "integrity": "sha512-LPP/3KorzCwBxfeUuZmaR6bG2kdeHSbe0P2tY3FLRU4vYrjYz5hI4QZwV0njUx3jeuKe67YukQ1LSPZBKDqO/Q==", + "dev": true, + "dependencies": { + "braces": "^3.0.3", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "node_modules/nanoid": { + "version": "3.3.7", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.7.tgz", + "integrity": "sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, + "node_modules/picocolors": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.1.tgz", + "integrity": "sha512-anP1Z8qwhkbmu7MFP5iTt+wQKXgwzf7zTyGlcdzabySa9vd0Xt392U0rVmz9poOaBj0uHJKyyo9/upk0HrEQew==", + "dev": true + }, + "node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true, + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/postcss": { + "version": "8.4.38", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.38.tgz", + "integrity": "sha512-Wglpdk03BSfXkHoQa3b/oulrotAkwrlLDRSOb9D0bN86FdRyE9lppSp33aHNPgBa0JKCoB+drFLZkQoRRYae5A==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "nanoid": "^3.3.7", + "picocolors": "^1.0.0", + "source-map-js": "^1.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, + "node_modules/queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/reusify": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "dev": true, + "engines": { + "iojs": ">=1.0.0", + "node": ">=0.10.0" + } + }, + "node_modules/rollup": { + "version": "4.18.0", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.18.0.tgz", + "integrity": "sha512-QmJz14PX3rzbJCN1SG4Xe/bAAX2a6NpCP8ab2vfu2GiUr8AQcr2nCV/oEO3yneFarB67zk8ShlIyWb2LGTb3Sg==", + "dev": true, + "dependencies": { + "@types/estree": "1.0.5" + }, + "bin": { + "rollup": "dist/bin/rollup" + }, + "engines": { + "node": ">=18.0.0", + "npm": ">=8.0.0" + }, + "optionalDependencies": { + "@rollup/rollup-android-arm-eabi": "4.18.0", + "@rollup/rollup-android-arm64": "4.18.0", + "@rollup/rollup-darwin-arm64": "4.18.0", + "@rollup/rollup-darwin-x64": "4.18.0", + "@rollup/rollup-linux-arm-gnueabihf": "4.18.0", + "@rollup/rollup-linux-arm-musleabihf": "4.18.0", + "@rollup/rollup-linux-arm64-gnu": "4.18.0", + "@rollup/rollup-linux-arm64-musl": "4.18.0", + "@rollup/rollup-linux-powerpc64le-gnu": "4.18.0", + "@rollup/rollup-linux-riscv64-gnu": "4.18.0", + "@rollup/rollup-linux-s390x-gnu": "4.18.0", + "@rollup/rollup-linux-x64-gnu": "4.18.0", + "@rollup/rollup-linux-x64-musl": "4.18.0", + "@rollup/rollup-win32-arm64-msvc": "4.18.0", + "@rollup/rollup-win32-ia32-msvc": "4.18.0", + "@rollup/rollup-win32-x64-msvc": "4.18.0", + "fsevents": "~2.3.2" + } + }, + "node_modules/run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "dependencies": { + "queue-microtask": "^1.2.2" + } + }, + "node_modules/source-map-js": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.0.tgz", + "integrity": "sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/vite": { + "version": "5.2.11", + "resolved": "https://registry.npmjs.org/vite/-/vite-5.2.11.tgz", + "integrity": "sha512-HndV31LWW05i1BLPMUCE1B9E9GFbOu1MbenhS58FuK6owSO5qHm7GiCotrNY1YE5rMeQSFBGmT5ZaLEjFizgiQ==", + "dev": true, + "dependencies": { + "esbuild": "^0.20.1", + "postcss": "^8.4.38", + "rollup": "^4.13.0" + }, + "bin": { + "vite": "bin/vite.js" + }, + "engines": { + "node": "^18.0.0 || >=20.0.0" + }, + "funding": { + "url": "https://github.com/vitejs/vite?sponsor=1" + }, + "optionalDependencies": { + "fsevents": "~2.3.3" + }, + "peerDependencies": { + "@types/node": "^18.0.0 || >=20.0.0", + "less": "*", + "lightningcss": "^1.21.0", + "sass": "*", + "stylus": "*", + "sugarss": "*", + "terser": "^5.4.0" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + }, + "less": { + "optional": true + }, + "lightningcss": { + "optional": true + }, + "sass": { + "optional": true + }, + "stylus": { + "optional": true + }, + "sugarss": { + "optional": true + }, + "terser": { + "optional": true + } + } + }, + "node_modules/vite-plugin-ruby": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/vite-plugin-ruby/-/vite-plugin-ruby-5.0.0.tgz", + "integrity": "sha512-c8PjTp21Ah/ttgnNUyu0qvCXZI08Jr9I24oUKg3TRIRhF5GcOZ++6wtlTCrNFd9COEQbpXHxlRIXd/MEg0iZJw==", + "dev": true, + "dependencies": { + "debug": "^4.3.4", + "fast-glob": "^3.3.2" + }, + "peerDependencies": { + "vite": ">=5.0.0" + } + } + } +} diff --git a/package.json b/package.json new file mode 100644 index 00000000..c23fdb0a --- /dev/null +++ b/package.json @@ -0,0 +1,6 @@ +{ + "devDependencies": { + "vite": "^5.2.11", + "vite-plugin-ruby": "^5.0.0" + } +} diff --git a/spec/controllers/catalog_controller_spec.rb b/spec/controllers/catalog_controller_spec.rb deleted file mode 100644 index 09d70da6..00000000 --- a/spec/controllers/catalog_controller_spec.rb +++ /dev/null @@ -1,13 +0,0 @@ -# frozen_string_literal: true - -require 'rails_helper' - -describe CatalogController do - describe 'Mapping legacy IDs to new ones' do - it 'redirects from an old ID to a new one (when it does not exist)' do - get :show, params: { id: 'mit-ao-p2roads-2005' } - - expect(response).to redirect_to(solr_document_path('mit-f4b5a2yjdflbi')) - end - end -end diff --git a/spec/factories/layer.rb b/spec/factories/layer.rb index fc4110ec..9b452431 100644 --- a/spec/factories/layer.rb +++ b/spec/factories/layer.rb @@ -1,5 +1,4 @@ -FactoryBot.define do - factory :layer, class: 'GeoMonitor::Layer' do - sequence(:slug) { |n| "institution-#{n}" } - end -end +# https://github.com/geoblacklight/geo_monitor/issues/12 +# FactoryBot.define do +# factory :layer, class: 'GeoMonitor::Layer' +# end diff --git a/spec/features/bookmarks_spec.rb b/spec/features/bookmarks_spec.rb deleted file mode 100644 index 14224de4..00000000 --- a/spec/features/bookmarks_spec.rb +++ /dev/null @@ -1,11 +0,0 @@ -require 'rails_helper' - -describe 'Blacklight Bookmarks' do - it 'index has created bookmarks' do - skip('Passes locally, not on Travis.') if ENV['CI'] - visit solr_document_path 'columbia-columbia-landinfo-global-aet' - click_on 'Bookmark' - visit bookmarks_path - expect(page).to have_css '.document', count: 1 - end -end diff --git a/spec/features/canonical_urls_spec.rb b/spec/features/canonical_urls_spec.rb index f29a064f..f0a92051 100644 --- a/spec/features/canonical_urls_spec.rb +++ b/spec/features/canonical_urls_spec.rb @@ -7,7 +7,7 @@ end it 'not Stanford' do - visit solr_document_path 'mit-us-ma-e25zcta5dct-2000' + visit solr_document_path 'princeton-02870w62c' expect(page).to have_no_css 'link[rel="canonical"]', visible: false end end diff --git a/spec/features/copyright_license_spec.rb b/spec/features/copyright_license_spec.rb deleted file mode 100644 index d0115fc5..00000000 --- a/spec/features/copyright_license_spec.rb +++ /dev/null @@ -1,25 +0,0 @@ -require 'rails_helper' - -# rubocop:disable Layout/LineLength -describe 'Use and reproduction, copyright and license' do - it 'Stanford restricted' do - visit solr_document_path 'stanford-cg357zz0321' - expect(page).to have_css 'dt', text: 'Use and reproduction' - expect(page).to have_css 'dd', - text: 'These data are licensed by Stanford Libraries and are available to Stanford University affiliates only. Affiliates are limited to current faculty, staff and students. These data may not be reproduced or used for any purpose without permission. For more information please contact brannerlibrary@stanford.edu.' - expect(page).to have_css 'dt', text: 'Copyright' - expect(page).to have_css 'dd', text: 'Copyright ownership resides with the originator.' - end - - it 'Stanford public' do - visit solr_document_path 'stanford-cz128vq0535' - expect(page).to have_css 'dt', text: 'Use and reproduction' - expect(page).to have_css 'dd', text: 'This item is in the public domain. There are no restrictions on use.' - expect(page).to have_css 'dt', text: 'Copyright' - expect(page).to have_css 'dd', - text: 'This work is in the Public Domain, meaning that it is not subject to copyright.' - expect(page).to have_css 'dt', text: 'License' - expect(page).to have_css 'dd', text: 'Attribution Share Alike 3.0 Unported' - end -end -# rubocop:enable Layout/LineLength diff --git a/spec/features/custom_featured_searches_spec.rb b/spec/features/custom_featured_searches_spec.rb deleted file mode 100644 index a5b716bf..00000000 --- a/spec/features/custom_featured_searches_spec.rb +++ /dev/null @@ -1,9 +0,0 @@ -require 'rails_helper' - -describe 'Custom featured searches' do - it 'breadcrumbs are present' do - visit search_catalog_path(q: '', featured: 'geospatial_data') - expect(page).to have_css '.filter-name', text: 'Featured' - expect(page).to have_css '.filter-value', text: 'Geospatial Data' - end -end diff --git a/spec/features/facets_spec.rb b/spec/features/facets_spec.rb deleted file mode 100644 index 4e2fdc42..00000000 --- a/spec/features/facets_spec.rb +++ /dev/null @@ -1,12 +0,0 @@ -require 'rails_helper' - -describe 'Custom facets' do - describe 'dc_rights_s' do - it 'handles a query, but not show up in facet bar' do - visit search_catalog_path(q: '', f: { dc_rights_s: ['Restricted'] }) - expect(page).to have_no_css '.facet-select', text: 'Rights' - expect(page).to have_css '.filter-name', text: 'Rights' - expect(page).to have_css '.document', count: 2 - end - end -end diff --git a/spec/features/license_spec.rb b/spec/features/license_spec.rb new file mode 100644 index 00000000..dfbe2c11 --- /dev/null +++ b/spec/features/license_spec.rb @@ -0,0 +1,33 @@ +# frozen_string_literal: true + +require 'rails_helper' + +# rubocop:disable Layout/LineLength +describe 'License rendering' do + context 'with a CC license' do + it 'renders the human-friendly license description' do + visit solr_document_path 'stanford-dy750qs3024' + expect(page).to have_css 'dt', text: 'License' + expect(page).to have_css 'dd', + text: 'This work is licensed under a Creative Commons Attribution Non Commercial 3.0 Unported license (CC BY-NC).' + end + end + + context 'with an ODC license' do + it 'renders the human-friendly license description' do + visit solr_document_path 'stanford-cj936rq6257' + expect(page).to have_css 'dt', text: 'License' + expect(page).to have_css 'dd', + text: 'This work is licensed under an Open Data Commons Open Database License v1.0.' + end + end + + context 'with an unknown license' do + it 'renders the license URI' do + visit solr_document_path 'harvard-g7064-s2-1834-k3' + expect(page).to have_css 'dt', text: 'License' + expect(page).to have_css 'dd', text: 'example.com/license' + end + end +end +# rubocop:enable Layout/LineLength diff --git a/spec/features/page_title_spec.rb b/spec/features/page_title_spec.rb index c388857e..fcad24fd 100644 --- a/spec/features/page_title_spec.rb +++ b/spec/features/page_title_spec.rb @@ -17,6 +17,6 @@ describe 'Show page' do it 'have title' do visit solr_document_path 'stanford-cg357zz0321' - expect(page.title).to eq '10 Meter Countours: Russian River Basin, California in EarthWorks' + expect(page.title).to eq '10 Meter Contours: Russian River Basin, California in EarthWorks' end end diff --git a/spec/features/record_spec.rb b/spec/features/record_spec.rb deleted file mode 100644 index df829298..00000000 --- a/spec/features/record_spec.rb +++ /dev/null @@ -1,11 +0,0 @@ -# frozen_string_literal: true - -require 'rails_helper' - -describe 'Record view' do - it 'does not have empty values indexed' do - visit solr_document_path('columbia-columbia-landinfo-global-aet') - - expect(page).to have_no_css('dt', text: 'Publisher') - end -end diff --git a/spec/features/stanford_new_rights_spec.rb b/spec/features/stanford_new_rights_spec.rb deleted file mode 100644 index da97b9e6..00000000 --- a/spec/features/stanford_new_rights_spec.rb +++ /dev/null @@ -1,18 +0,0 @@ -require 'rails_helper' - -describe 'Stanford licenses done the new way' do - it 'renders page with rights information and the license logo' do - visit solr_document_path 'stanford-dy750qs3024' - # rubocop:disable Layout/LineLength - expect(page).to have_css 'dt', text: 'License' - expect(page).to have_link 'This work is licensed under a Creative Commons Attribution-Noncommercial 3.0 Unported License', - href: 'http://creativecommons.org/licenses/by-nc/3.0/' - expect(page).to have_css 'dt', text: 'Use and reproduction' - expect(page).to have_css 'dd', - text: 'Image from the Map Collections courtesy Stanford University Libraries. If you have questions, please contact the Branner Earth Science Library & Map Collections at brannerlibrary@stanford.edu.' - expect(page).to have_css 'dt', text: 'Copyright' - expect(page).to have_css 'dd', - text: 'Property rights reside with the repository. Copyright © Stanford University. All Rights Reserved.' - # rubocop:enable Layout/LineLength - end -end diff --git a/spec/features/unavailable_layer_spec.rb b/spec/features/unavailable_layer_spec.rb index 0df85877..a41c8fa2 100644 --- a/spec/features/unavailable_layer_spec.rb +++ b/spec/features/unavailable_layer_spec.rb @@ -1,6 +1,6 @@ require 'rails_helper' -describe 'Unavailable layer' do +describe 'Unavailable layer', skip: 'needs GBLv4 compatibility' do it 'hides and shows appropriate messages for geomonitored unavailable' do visit solr_document_path 'harvard-ntadcd106' within '.unavailable-warning' do diff --git a/spec/fixtures/solr_documents/actual-papermap1.json b/spec/fixtures/solr_documents/actual-papermap1.json index 590d6453..25afc1a6 100644 --- a/spec/fixtures/solr_documents/actual-papermap1.json +++ b/spec/fixtures/solr_documents/actual-papermap1.json @@ -1,25 +1,23 @@ { - "uuid": "urn:arrowsmith.mit.edu:MIT.001145244", - "dc_description_s": "Panel title. Depths shown by isolines. \"Geological map [copyright] NERC 1996.\" Also available on flat sheet. \"Sheet 1\"--on panel. Includes text, notes, organizations' logos, and ancillary map of \"Orogenic terranes of Britain, Ireland and surrounding seas.\"", - "dc_format_s": "Paper", - "dc_identifier_s": "urn:arrowsmith.mit.edu:MIT.001145244", - "dc_language_s": "English", - "dc_publisher_s": "British Geological Survey", - "dc_rights_s": "Public", - "dc_title_s": "1:1 500 000 series [cartographic material] : tectonic map of Britain, Ireland and adjacent areas / British Geological Survey ; Geological Survey of Ireland ; Geological Survey of Northern Ireland.", - "dc_type_s": "Dataset", - "dct_references_s": "{\"http://schema.org/url\":\"http://library.mit.edu/item/001145244\",\"http://www.opengis.net/cat/csw/csdgm\":\"http://opengeometadata.stanford.edu/metadata/org.opengeoportal/MIT:001145244/fgdc.xml\",\"http://www.w3.org/1999/xhtml\":\"http://opengeometadata.stanford.edu/metadata/org.opengeoportal/MIT:001145244/fgdc.html\"}", - "dct_temporal_sm": [ - "1996" - ], - "dct_issued_s": "2000", - "dct_provenance_s": "MIT", - "georss_box_s": "49.0 -13.0 62.0 4.0", - "georss_polygon_s": "62.0 -13.0 62.0 4.0 49.0 4.0 49.0 -13.0 62.0 -13.0", - "layer_slug_s": "mit-001145244", - "layer_id_s": "MIT:001145244", - "layer_geom_type_s": "Paper Map", - "layer_modified_dt": "2014-12-04T21:32:59Z", - "solr_geom": "ENVELOPE(-13.0, 4.0, 62.0, 49.0)", - "solr_year_i": 1996 - } \ No newline at end of file + "dct_description_sm": [ + "Panel title. Depths shown by isolines. \"Geological map [copyright] NERC 1996.\" Also available on flat sheet. \"Sheet 1\"--on panel. Includes text, notes, organizations' logos, and ancillary map of \"Orogenic terranes of Britain, Ireland and surrounding seas.\"" + ], + "dct_format_s": "Paper", + "dct_identifier_sm": ["urn:arrowsmith.mit.edu:MIT.001145244"], + "dct_language_sm": ["eng"], + "dct_publisher_sm": ["British Geological Survey"], + "dct_accessRights_s": "Public", + "dct_title_s": "1:1 500 000 series [cartographic material] : tectonic map of Britain, Ireland and adjacent areas / British Geological Survey ; Geological Survey of Ireland ; Geological Survey of Northern Ireland.", + "dct_references_s": "{\"http://schema.org/url\":\"http://library.mit.edu/item/001145244\",\"http://www.opengis.net/cat/csw/csdgm\":\"http://opengeometadata.stanford.edu/metadata/org.opengeoportal/MIT:001145244/fgdc.xml\",\"http://www.w3.org/1999/xhtml\":\"http://opengeometadata.stanford.edu/metadata/org.opengeoportal/MIT:001145244/fgdc.html\"}", + "dct_temporal_sm": ["1996"], + "dct_issued_s": "2000", + "schema_provider_s": "MIT", + "id": "mit-001145244", + "gbl_wxsIdentifier_s": "MIT:001145244", + "gbl_mdModified_dt": "2014-12-04T21:32:59Z", + "dcat_bbox": "ENVELOPE(-13.0, 4.0, 62.0, 49.0)", + "locn_geometry": "ENVELOPE(-13.0, 4.0, 62.0, 49.0)", + "gbl_indexYear_im": [1996], + "gbl_resourceClass_sm": ["Datasets"], + "gbl_mdVersion_s": "Aardvark" +} diff --git a/spec/fixtures/solr_documents/actual-point1.json b/spec/fixtures/solr_documents/actual-point1.json index d0cccdd5..1da2b7ed 100644 --- a/spec/fixtures/solr_documents/actual-point1.json +++ b/spec/fixtures/solr_documents/actual-point1.json @@ -1,28 +1,29 @@ { - "uuid": "urn:columbia.edu:Columbia.landinfo_global_aet", - "dc_description_s": "Actual Evapotrans is a point theme representing the sum of evaporation and plant transpiration to the atmosphere from throughout the world. Measurements are represented by points at every.5 degrees and provided for every month of the year. This dataset is a part of the Global Climate Database from the Global Change Department National Institute of Public Health and Environmental Protection.", - "dc_format_s": "Shapefile", - "dc_identifier_s": "urn:columbia.edu:Columbia.landinfo_global_aet", - "dc_language_s": "English", - "dc_rights_s": "Public", - "dc_title_s": "Actual Evapotrans", - "dc_publisher_s": "", - "dc_type_s": "Dataset", + "dct_description_sm": [ + "Actual Evapotrans is a point theme representing the sum of evaporation and plant transpiration to the atmosphere from throughout the world. Measurements are represented by points at every.5 degrees and provided for every month of the year. This dataset is a part of the Global Climate Database from the Global Change Department National Institute of Public Health and Environmental Protection." + ], + "dct_format_s": "Shapefile", + "dct_identifier_sm": ["urn:columbia.edu:Columbia.landinfo_global_aet"], + "dct_language_sm": ["eng"], + "dct_accessRights_s": "Public", + "dct_title_s": "Actual Evapotrans", + "dct_publisher_sm": [""], "dct_references_s": "{\"http://www.opengis.net/cat/csw/csdgm\":\"http://opengeometadata.stanford.edu/metadata/org.opengeoportal/Columbia:Columbia.landinfo_global_aet/fgdc.xml\",\"http://www.w3.org/1999/xhtml\":\"http://opengeometadata.stanford.edu/metadata/org.opengeoportal/Columbia:Columbia.landinfo_global_aet/fgdc.html\"}", "dct_spatial_sm": [ "World", "Erat me exerci eorum anteposuerit quam. Liber feugait iis lorem assum imperdiet. Nibh luptatum ipsum quis notare tation. Clari seacula aliquam futurum nunc sed. Lectorum eu lius velit tation lius. Delenit placerat claritas diam hendrerit diam. Dolor vero non nulla anteposuerit imperdiet. Erat me exerci eorum anteposuerit quam. Liber feugait iis lorem assum imperdiet. Nibh luptatum ipsum quis notare tation. Clari seacula aliquam futurum nunc sed. Lectorum eu lius velit tation lius. Delenit placerat claritas diam hendrerit diam. Dolor vero non nulla anteposuerit imperdiet. Erat me exerci eorum anteposuerit quam. Liber feugait iis lorem assum imperdiet. Nibh luptatum ipsum quis notare tation. Clari seacula aliquam futurum nunc sed. Lectorum eu lius velit tation lius. Delenit placerat claritas diam hendrerit diam. Dolor vero non nulla anteposuerit imperdiet. Erat me exerci eorum anteposuerit quam. Liber feugait iis lorem assum imperdiet. Nibh luptatum ipsum quis notare tation. Clari seacula aliquam futurum nunc sed. Lectorum eu lius velit tation lius. Delenit placerat claritas diam hendrerit diam. Dolor vero non nulla anteposuerit imperdiet. Erat me exerci eorum anteposuerit quam. Liber feugait iis lorem assum imperdiet. Nibh luptatum ipsum quis notare tation. Clari seacula aliquam futurum nunc sed. Lectorum eu lius velit tation lius. Delenit placerat claritas diam hendrerit diam. Dolor vero non nulla anteposuerit imperdiet. Erat me exerci eorum anteposuerit quam. Liber feugait iis lorem assum imperdiet. Nibh luptatum ipsum quis notare tation. Clari seacula aliquam futurum nunc sed. Lectorum eu lius velit tation lius. Delenit placerat claritas diam hendrerit diam. Dolor vero non nulla anteposuerit imperdiet. Erat me exerci eorum anteposuerit quam. Liber feugait iis lorem assum imperdiet. Nibh luptatum ipsum quis notare tation. Clari seacula aliquam futurum nunc sed. Lectorum eu lius velit tation lius. Delenit placerat claritas diam hendrerit diam. Dolor vero non nulla anteposuerit imperdiet. Erat me exerci eorum anteposuerit quam. Liber feugait iis lorem assum imperdiet. Nibh luptatum ipsum quis notare tation. Clari seacula aliquam futurum nunc sed. Lectorum eu lius velit tation lius. Delenit placerat claritas diam hendrerit diam. Dolor vero non nulla anteposuerit imperdiet. Erat me exerci eorum anteposuerit quam. Liber feugait iis lorem assum imperdiet. Nibh luptatum ipsum quis notare tation. Clari seacula aliquam futurum nunc sed. Lectorum eu lius velit tation lius. Delenit placerat claritas diam hendrerit diam. Dolor vero non nulla anteposuerit imperdiet. Erat me exerci eorum anteposuerit quam. Liber feugait iis lorem assum imperdiet. Nibh luptatum ipsum quis notare tation. Clari seacula aliquam futurum nunc sed. Lectorum eu lius velit tation lius. Delenit placerat claritas diam hendrerit diam. Dolor vero non nulla anteposuerit imperdiet. Erat me exerci eorum anteposuerit quam. Liber feugait iis lorem assum imperdiet. Nibh luptatum ipsum quis notare tation. Clari seacula aliquam futurum nunc sed. Lectorum eu lius velit tation lius. Delenit placerat claritas diam hendrerit diam. Dolor vero non nulla anteposuerit imperdiet. Erat me exerci eorum anteposuerit quam. Liber feugait iis lorem assum imperdiet. Nibh luptatum ipsum quis notare tation. Clari seacula aliquam futurum nunc sed. Lectorum eu lius velit tation lius. Delenit placerat claritas diam hendrerit diam. Dolor vero non nulla anteposuerit imperdiet." ], - "dct_temporal_sm": [ - "1996" - ], - "dct_provenance_s": "Columbia", + "dct_temporal_sm": ["1996"], + "schema_provider_s": "Columbia", "georss_box_s": "-56.0 -179.5 83.0 180.0", "georss_polygon_s": "83.0 -179.5 83.0 180.0 -56.0 180.0 -56.0 -179.5 83.0 -179.5", - "layer_slug_s": "columbia-columbia-landinfo-global-aet", - "layer_id_s": "Columbia:Columbia.landinfo_global_aet", - "layer_geom_type_s": "Point", - "layer_modified_dt": "2014-12-12T19:54:57Z", - "solr_geom": "ENVELOPE(-179.5, 180.0, 83.0, -56.0)", - "solr_year_i": 1996 + "id": "columbia-columbia-landinfo-global-aet", + "gbl_wxsIdentifier_s": "Columbia:Columbia.landinfo_global_aet", + "gbl_mdModified_dt": "2014-12-12T19:54:57Z", + "dcat_bbox": "ENVELOPE(-179.5, 180.0, 83.0, -56.0)", + "locn_geometry": "ENVELOPE(-179.5, 180.0, 83.0, -56.0)", + "gbl_indexYear_im": [1996], + "gbl_resourceClass_sm": ["Datasets"], + "gbl_resourceType_sm": ["Point data"], + "gbl_mdVersion_s": "Aardvark" } diff --git a/spec/fixtures/solr_documents/actual-polygon1.json b/spec/fixtures/solr_documents/actual-polygon1.json index e37462c7..7d3a6f91 100644 --- a/spec/fixtures/solr_documents/actual-polygon1.json +++ b/spec/fixtures/solr_documents/actual-polygon1.json @@ -1,25 +1,26 @@ { - "uuid": "urn:geodata.tufts.edu:Tufts.CambridgeGrid100_04", - "dc_description_s": "This polygon dataset is a 100 foot grid overlay for Cambridge, MA.", - "dc_format_s": "Shapefile", - "dc_identifier_s": "urn:geodata.tufts.edu:Tufts.CambridgeGrid100_04", - "dc_language_s": "English", - "dc_publisher_s": "Cambridge (Mass.) Geographic Information Systems", - "dc_rights_s": "Public", - "dc_title_s": "100 Foot Grid Cambridge MA 2004", - "dc_type_s": "Dataset", - "dct_references_s": "{\"http://www.opengis.net/def/serviceType/ogc/wfs\":\"http://geoserver01.uit.tufts.edu/wfs\",\"http://www.opengis.net/def/serviceType/ogc/wms\":\"http://geoserver01.uit.tufts.edu/wms\",\"http://www.opengis.net/cat/csw/csdgm\":\"http://opengeometadata.stanford.edu/metadata/org.opengeoportal/sde:GISPORTAL.GISOWNER01.CAMBRIDGEGRID100_04/fgdc.xml\",\"http://www.w3.org/1999/xhtml\":\"http://opengeometadata.stanford.edu/metadata/org.opengeoportal/sde:GISPORTAL.GISOWNER01.CAMBRIDGEGRID100_04/fgdc.html\"}", - "dct_temporal_sm": [ - "2004" + "dct_description_sm": [ + "This polygon dataset is a 100 foot grid overlay for Cambridge, MA." ], + "dct_format_s": "Shapefile", + "dct_identifier_sm": ["urn:geodata.tufts.edu:Tufts.CambridgeGrid100_04"], + "dct_language_sm": ["eng"], + "dct_publisher_sm": ["Cambridge (Mass.) Geographic Information Systems"], + "dct_accessRights_s": "Public", + "dct_title_s": "100 Foot Grid Cambridge MA 2004", + "dct_references_s": "{\"http://www.opengis.net/def/serviceType/ogc/wfs\":\"http://geoserver01.uit.tufts.edu/wfs\",\"http://www.opengis.net/def/serviceType/ogc/wms\":\"http://geoserver01.uit.tufts.edu/wms\",\"http://www.opengis.net/cat/csw/csdgm\":\"http://opengeometadata.stanford.edu/metadata/org.opengeoportal/sde:GISPORTAL.GISOWNER01.CAMBRIDGEGRID100_04/fgdc.xml\",\"http://www.w3.org/1999/xhtml\":\"http://opengeometadata.stanford.edu/metadata/org.opengeoportal/sde:GISPORTAL.GISOWNER01.CAMBRIDGEGRID100_04/fgdc.html\"}", + "dct_temporal_sm": ["2004"], "dct_issued_s": "2005", - "dct_provenance_s": "Tufts", + "schema_provider_s": "Tufts", "georss_box_s": "42.34757 -71.163984 42.408316 -71.052581", "georss_polygon_s": "42.408316 -71.163984 42.408316 -71.052581 42.34757 -71.052581 42.34757 -71.163984 42.408316 -71.163984", - "layer_slug_s": "tufts-cambridgegrid100-04", - "layer_id_s": "sde:GISPORTAL.GISOWNER01.CAMBRIDGEGRID100_04", - "layer_geom_type_s": "Polygon", - "layer_modified_dt": "2014-12-04T21:33:07Z", - "solr_geom": "ENVELOPE(-71.163984, -71.052581, 42.408316, 42.34757)", - "solr_year_i": 2004 -} \ No newline at end of file + "id": "tufts-cambridgegrid100-04", + "gbl_wxsIdentifier_s": "sde:GISPORTAL.GISOWNER01.CAMBRIDGEGRID100_04", + "gbl_mdModified_dt": "2014-12-04T21:33:07Z", + "dcat_bbox": "ENVELOPE(-71.163984, -71.052581, 42.408316, 42.34757)", + "locn_geometry": "ENVELOPE(-71.163984, -71.052581, 42.408316, 42.34757)", + "gbl_indexYear_im": [2004], + "gbl_resourceClass_sm": ["Datasets"], + "gbl_resourceType_sm": ["Polygon data"], + "gbl_mdVersion_s": "Aardvark" +} diff --git a/spec/fixtures/solr_documents/actual-raster1.json b/spec/fixtures/solr_documents/actual-raster1.json index 00769480..365b9ddf 100644 --- a/spec/fixtures/solr_documents/actual-raster1.json +++ b/spec/fixtures/solr_documents/actual-raster1.json @@ -1,43 +1,39 @@ { - "uuid": "http://purl.stanford.edu/dp018hs9766", - "dc_identifier_s": "http://purl.stanford.edu/dp018hs9766", - "dc_title_s": "1-Meter Shaded Relief Multibeam Bathymetry Image (Color): Elkhorn Slough, California, 2005", - "dc_description_s": "This layer is a 10-color shaded relief GeoTIFF that contains high-resolution bathymetric data collected from the Elkhorn Slough region of Monterey Bay, California. The survey for Elkhorn Slough was conducted 8/12/2005 - 8/15/2005. Elkhorn Slough, one of the largest remaining coastal wetlands in California, has been directly subjected to tidal scour since the opening of Moss Landing Harbor in 1946. This erosion endangers the habitat of several rare and endangered species and disrupts the wetland ecosystem as a whole. In 2003, the Seafloor Mapping Lab of California State University, Monterey Bay created the most detailed bathymetry model of the Slough to date using a combination of multi-beam sonar, single-beam sonar and aerial photography. This layer was created as part of the California Seafloor Mapping Project.This project was conducted to determine changes in the pattern of erosion and deposition in Elkhorn Slough since surveys conducted in 1993, 2001 and 2003. Marine data offered here represent the efforts of a comprehensive state waters mapping program for California launched by the California State Coastal Conservancy, Ocean Protection Council, Department of Fish and Game, and the NOAA National Marine Sanctuary Program. The ultimate goal is the creation of a high-resolution 1:24,000 scale geologic and habitat base map series covering all of California's 14,500 km2 state waters out to the 3 mile limit, and support of the state's Marine Life Protection Act Initiative (MLPA) goal to create a statewide network of Marine Protected Areas (MPAs). This statewide project requires, involves and leverages expertise from industry, resource management agencies and academia. The tiered mapping campaign involves the use of state-of-the-art sonar, LIDAR (aerial laser) and video seafloor mapping technologies; computer aided classification and visualization; expert geologic and habitat interpretations codified into strip maps spanning California's land/sea boundary; and the creation of an online, publicly accessible data repository for the dissemination of all mapping products.\n", - "dc_rights_s": "Restricted", - "dct_provenance_s": "Stanford", - "dct_references_s": "{\"http://schema.org/url\":\"http://purl.stanford.edu/dp018hs9766\",\"http://schema.org/downloadUrl\":\"http://stacks.stanford.edu/file/druid:dp018hs9766/data.zip\",\"http://www.loc.gov/mods/v3\":\"http://purl.stanford.edu/dp018hs9766.mods\",\"http://www.isotc211.org/schemas/2005/gmd/\":\"http://opengeometadata.stanford.edu/metadata/edu.stanford.purl/druid:dp018hs9766/iso19139.xml\",\"http://www.w3.org/1999/xhtml\":\"http://opengeometadata.stanford.edu/metadata/edu.stanford.purl/druid:dp018hs9766/default.html\",\"http://www.opengis.net/def/serviceType/ogc/wcs\":\"http://kurma-podd1.stanford.edu/geoserver/wcs\",\"http://www.opengis.net/def/serviceType/ogc/wms\":\"http://kurma-podd1.stanford.edu/geoserver/wms\"}", - "layer_id_s": "druid:dp018hs9766", - "layer_slug_s": "stanford-dp018hs9766", - "layer_geom_type_s": "Raster", - "layer_modified_dt": "2014-12-03T02:15:20Z", - "dc_format_s": "GeoTIFF", - "dc_language_s": "English", - "dc_type_s": "Dataset", - "dc_publisher_s": "Seafloor Mapping Lab", - "dc_creator_sm": [ - "Seafloor Mapping Lab" - ], - "dc_subject_sm": [ - "Continental margins", - "Multibeam mapping", - "Elevation", - "Imagery and Base Maps", - "Inland Waters" - ], - "dct_issued_s": "2006", - "dct_temporal_sm": [ - "2005" - ], - "dct_spatial_sm": [ - "Elkhorn Slough (Calif.)", - "Monterey Bay (Calif.)" - ], - "dc_relation_sm": [ - "http://sws.geonames.org/5346182/about.rdf", - "http://sws.geonames.org/5374363/about.rdf" - ], - "georss_box_s": "36.8085911 -121.7948738 36.8606925 -121.7389503", - "georss_polygon_s": "36.8085911 -121.7948738 36.8606925 -121.7948738 36.8606925 -121.7389503 36.8085911 -121.7389503 36.8085911 -121.7948738", - "solr_geom": "ENVELOPE(-121.7948738, -121.7389503, 36.8606925, 36.8085911)", - "solr_year_i": 2005 - } \ No newline at end of file + "dct_identifier_sm": ["http://purl.stanford.edu/dp018hs9766"], + "dct_title_s": "1-Meter Shaded Relief Multibeam Bathymetry Image (Color): Elkhorn Slough, California, 2005", + "dct_description_sm": [ + "This layer is a 10-color shaded relief GeoTIFF that contains high-resolution bathymetric data collected from the Elkhorn Slough region of Monterey Bay, California. The survey for Elkhorn Slough was conducted 8/12/2005 - 8/15/2005. Elkhorn Slough, one of the largest remaining coastal wetlands in California, has been directly subjected to tidal scour since the opening of Moss Landing Harbor in 1946. This erosion endangers the habitat of several rare and endangered species and disrupts the wetland ecosystem as a whole. In 2003, the Seafloor Mapping Lab of California State University, Monterey Bay created the most detailed bathymetry model of the Slough to date using a combination of multi-beam sonar, single-beam sonar and aerial photography. This layer was created as part of the California Seafloor Mapping Project.This project was conducted to determine changes in the pattern of erosion and deposition in Elkhorn Slough since surveys conducted in 1993, 2001 and 2003. Marine data offered here represent the efforts of a comprehensive state waters mapping program for California launched by the California State Coastal Conservancy, Ocean Protection Council, Department of Fish and Game, and the NOAA National Marine Sanctuary Program. The ultimate goal is the creation of a high-resolution 1:24,000 scale geologic and habitat base map series covering all of California's 14,500 km2 state waters out to the 3 mile limit, and support of the state's Marine Life Protection Act Initiative (MLPA) goal to create a statewide network of Marine Protected Areas (MPAs). This statewide project requires, involves and leverages expertise from industry, resource management agencies and academia. The tiered mapping campaign involves the use of state-of-the-art sonar, LIDAR (aerial laser) and video seafloor mapping technologies; computer aided classification and visualization; expert geologic and habitat interpretations codified into strip maps spanning California's land/sea boundary; and the creation of an online, publicly accessible data repository for the dissemination of all mapping products.\n" + ], + "dct_accessRights_s": "Restricted", + "schema_provider_s": "Stanford", + "dct_references_s": "{\"http://schema.org/url\":\"http://purl.stanford.edu/dp018hs9766\",\"http://schema.org/downloadUrl\":\"http://stacks.stanford.edu/file/druid:dp018hs9766/data.zip\",\"http://www.loc.gov/mods/v3\":\"http://purl.stanford.edu/dp018hs9766.mods\",\"http://www.isotc211.org/schemas/2005/gmd/\":\"http://opengeometadata.stanford.edu/metadata/edu.stanford.purl/druid:dp018hs9766/iso19139.xml\",\"http://www.w3.org/1999/xhtml\":\"http://opengeometadata.stanford.edu/metadata/edu.stanford.purl/druid:dp018hs9766/default.html\",\"http://www.opengis.net/def/serviceType/ogc/wcs\":\"http://kurma-podd1.stanford.edu/geoserver/wcs\",\"http://www.opengis.net/def/serviceType/ogc/wms\":\"http://kurma-podd1.stanford.edu/geoserver/wms\"}", + "gbl_wxsIdentifier_s": "druid:dp018hs9766", + "id": "stanford-dp018hs9766", + "gbl_mdModified_dt": "2014-12-03T02:15:20Z", + "dct_format_s": "GeoTIFF", + "dct_language_sm": ["eng"], + "dct_publisher_sm": ["Seafloor Mapping Lab"], + "dct_creator_sm": ["Seafloor Mapping Lab"], + "dct_subject_sm": [ + "Continental margins", + "Multibeam mapping", + "Elevation", + "Imagery and Base Maps", + "Inland Waters" + ], + "dct_issued_s": "2006", + "dct_temporal_sm": ["2005"], + "dct_spatial_sm": ["Elkhorn Slough (Calif.)", "Monterey Bay (Calif.)"], + "dc_relation_sm": [ + "http://sws.geonames.org/5346182/about.rdf", + "http://sws.geonames.org/5374363/about.rdf" + ], + "georss_box_s": "36.8085911 -121.7948738 36.8606925 -121.7389503", + "georss_polygon_s": "36.8085911 -121.7948738 36.8606925 -121.7948738 36.8606925 -121.7389503 36.8085911 -121.7389503 36.8085911 -121.7948738", + "dcat_bbox": "ENVELOPE(-121.7948738, -121.7389503, 36.8606925, 36.8085911)", + "locn_geometry": "ENVELOPE(-121.7948738, -121.7389503, 36.8606925, 36.8085911)", + "gbl_indexYear_im": [2005], + "gbl_resourceClass_sm": ["Datasets"], + "gbl_resourceType_sm": ["Raster data"], + "gbl_mdVersion_s": "Aardvark" +} diff --git a/spec/fixtures/solr_documents/collection.json b/spec/fixtures/solr_documents/collection.json index 654063e3..be0b590c 100644 --- a/spec/fixtures/solr_documents/collection.json +++ b/spec/fixtures/solr_documents/collection.json @@ -1,31 +1,24 @@ { - "dc_identifier_s": "http://purl.stanford.edu/bq589tv8583", - "dc_title_s": "Metropolitan Transportation Commission GIS Maps & Data", - "dc_description_s": "by Bay Area Metropolitan Transportation Commission These are geospatial data layers acquired from the Bay Area Metropolitan Transportation Commission (MTC) spatial data library. Layers contain feature data related to transportation, administrative boundaries, demographics, environmental factors, census activities, and regional projects. New data layers are added on an ongoing basis.", - "dc_rights_s": "Public", - "layer_modified_dt": "2020-03-21T21:39:02Z", - "dct_issued_s": "c2010", - "layer_geom_type_s": "Collection", - "dc_language_s": "English", - "dc_subject_sm": [ - "Transportation", - "Boundaries", - "Census" - ], - "dct_spatial_sm": [ - "San Francisco Bay Area", - "California" - ], - "dc_publisher_s": "California. Metropolitan Transportation Commission", - "dc_creator_sm": [ - "California Metropolitan Transportation Commission" + "dct_identifier_sm": ["http://purl.stanford.edu/bq589tv8583"], + "dct_title_s": "Metropolitan Transportation Commission GIS Maps & Data", + "dct_description_sm": [ + "by Bay Area Metropolitan Transportation Commission These are geospatial data layers acquired from the Bay Area Metropolitan Transportation Commission (MTC) spatial data library. Layers contain feature data related to transportation, administrative boundaries, demographics, environmental factors, census activities, and regional projects. New data layers are added on an ongoing basis." ], + "dct_accessRights_s": "Public", + "gbl_mdModified_dt": "2020-03-21T21:39:02Z", + "dct_issued_s": "c2010", + "dct_language_sm": ["eng"], + "dct_subject_sm": ["Transportation", "Boundaries", "Census"], + "dct_spatial_sm": ["San Francisco Bay Area", "California"], + "dct_publisher_sm": ["California. Metropolitan Transportation Commission"], + "dct_creator_sm": ["California Metropolitan Transportation Commission"], "layer_availability_score_f": 1, - "geoblacklight_version": "1.0", + "gbl_mdVersion_s": "Aardvark", "dct_references_s": "{\"http://schema.org/url\":\"https://purl.stanford.edu/bq589tv8583\",\"http://www.loc.gov/mods/v3\":\"https://purl.stanford.edu/bq589tv8583.mods\"}", - "solr_geom": "ENVELOPE(-123.10749999999999, -122.32777777777777, 37.92972222222222, 37.69333333333333)", - "layer_slug_s": "stanford-bq589tv8583", - "dct_provenance_s": "Stanford", - "stanford_rights_metadata_s": "\n \n \n \n \n \n \n \n \n \n \n \n This item is in the public domain. There are no restrictions on use.\n \n \n \n \n This work is in the Public Domain, meaning that it is not subject to copyright.\n \n ", - "solr_year_i": 2010 + "dcat_bbox": "ENVELOPE(-123.10749999999999, -122.32777777777777, 37.92972222222222, 37.69333333333333)", + "locn_geometry": "ENVELOPE(-123.10749999999999, -122.32777777777777, 37.92972222222222, 37.69333333333333)", + "id": "stanford-bq589tv8583", + "schema_provider_s": "Stanford", + "gbl_indexYear_im": [2010], + "gbl_resourceClass_sm": ["Other"] } diff --git a/spec/fixtures/solr_documents/harvard-unavailable.json b/spec/fixtures/solr_documents/harvard-unavailable.json index 43d026e8..87cccaac 100644 --- a/spec/fixtures/solr_documents/harvard-unavailable.json +++ b/spec/fixtures/solr_documents/harvard-unavailable.json @@ -1,25 +1,26 @@ { - "uuid":"urn:hul.harvard.edu:HARVARD.SDE.NTADCD106", - "dc_description_s":"The 106th Congressional District Boundaries data set contains geographic information for the political entities of the Congressional districts of the United States and U.S. Territories.", - "dc_format_s":"Shapefile", - "dc_identifier_s":"urn:hul.harvard.edu:HARVARD.SDE.NTADCD106", - "dc_language_s":"English", - "dc_publisher_s":"Bureau of Transportation Statistics", - "dc_rights_s":"Public", - "dc_title_s":"106th Congressional District Boundaries", - "dc_type_s":"Dataset", - "dct_references_s":"{\"http://www.opengis.net/def/serviceType/ogc/wfs\":\"http://hgl.harvard.edu:8080/geoserver/wfs\",\"http://www.opengis.net/def/serviceType/ogc/wms\":\"http://hgl.harvard.edu:8080/geoserver/wms\",\"http://schema.org/UserDownloads\":\"http://hgl.harvard.edu:8080/HGL/RemoteServiceStarter\",\"http://tilecache.org\":\"http://hgl.harvard.edu/cgi-bin/tilecache/tilecache.cgi\",\"http://www.opengis.net/cat/csw/csdgm\":\"http://opengeometadata.stanford.edu/metadata/org.opengeoportal/sde:SDE.NTADCD106/fgdc.xml\",\"http://www.w3.org/1999/xhtml\":\"http://opengeometadata.stanford.edu/metadata/org.opengeoportal/sde:SDE.NTADCD106/fgdc.html\",\"http://schema.org/url\":\"http://opengeometadata.stanford.edu/metadata/org.opengeoportal/sde:SDE.NTADCD106/fgdc.html\"}", - "dct_temporal_sm":[ - "1999" + "dct_description_sm": [ + "The 106th Congressional District Boundaries data set contains geographic information for the political entities of the Congressional districts of the United States and U.S. Territories." ], - "dct_provenance_s":"Harvard", - "georss_box_s":"-14.602623 -179.149436 71.331916 179.759346", - "georss_polygon_s":"71.331916 -179.149436 71.331916 179.759346 -14.602623 179.759346 -14.602623 -179.149436 71.331916 -179.149436", - "layer_slug_s":"harvard-ntadcd106", - "layer_id_s":"sde:SDE.NTADCD106", - "layer_geom_type_s":"Polygon", - "layer_modified_dt":"2014-12-16T00:47:27Z", - "solr_geom":"ENVELOPE(-179.149436, 179.759346, 71.331916, -14.602623)", - "solr_year_i":1999, - "layer_availability_score_f":0.0 -} \ No newline at end of file + "dct_format_s": "Shapefile", + "dct_identifier_sm": ["urn:hul.harvard.edu:HARVARD.SDE.NTADCD106"], + "dct_language_sm": ["eng"], + "dct_publisher_sm": ["Bureau of Transportation Statistics"], + "dct_accessRights_s": "Public", + "dct_title_s": "106th Congressional District Boundaries", + "dct_references_s": "{\"http://www.opengis.net/def/serviceType/ogc/wfs\":\"http://hgl.harvard.edu:8080/geoserver/wfs\",\"http://www.opengis.net/def/serviceType/ogc/wms\":\"http://hgl.harvard.edu:8080/geoserver/wms\",\"http://schema.org/UserDownloads\":\"http://hgl.harvard.edu:8080/HGL/RemoteServiceStarter\",\"http://tilecache.org\":\"http://hgl.harvard.edu/cgi-bin/tilecache/tilecache.cgi\",\"http://www.opengis.net/cat/csw/csdgm\":\"http://opengeometadata.stanford.edu/metadata/org.opengeoportal/sde:SDE.NTADCD106/fgdc.xml\",\"http://www.w3.org/1999/xhtml\":\"http://opengeometadata.stanford.edu/metadata/org.opengeoportal/sde:SDE.NTADCD106/fgdc.html\",\"http://schema.org/url\":\"http://opengeometadata.stanford.edu/metadata/org.opengeoportal/sde:SDE.NTADCD106/fgdc.html\"}", + "dct_temporal_sm": ["1999"], + "schema_provider_s": "Harvard", + "georss_box_s": "-14.602623 -179.149436 71.331916 179.759346", + "georss_polygon_s": "71.331916 -179.149436 71.331916 179.759346 -14.602623 179.759346 -14.602623 -179.149436 71.331916 -179.149436", + "id": "harvard-ntadcd106", + "gbl_wxsIdentifier_s": "sde:SDE.NTADCD106", + "gbl_mdModified_dt": "2014-12-16T00:47:27Z", + "dcat_bbox": "ENVELOPE(-179.149436, 179.759346, 71.331916, -14.602623)", + "locn_geometry": "ENVELOPE(-179.149436, 179.759346, 71.331916, -14.602623)", + "gbl_indexYear_im": [1999], + "layer_availability_score_f": 0.0, + "gbl_resourceClass_sm": ["Datasets"], + "gbl_resourceType_sm": ["Polygon data"], + "gbl_mdVersion_s": "Aardvark" +} diff --git a/spec/fixtures/solr_documents/harvard_raster.json b/spec/fixtures/solr_documents/harvard_raster.json index e73294b5..d7a93d4a 100644 --- a/spec/fixtures/solr_documents/harvard_raster.json +++ b/spec/fixtures/solr_documents/harvard_raster.json @@ -1,12 +1,14 @@ { - "uuid": "urn:hul.harvard.edu:HARVARD.SDE2.G7064_S2_1834_K3", - "dc_description_s": "This layer is a georeferenced raster image of the historic paper map entitled: [Karta mesta zanimaemago Sanktpeterburgom : v tom vide v kakom onoe nakhodilos' za god do osnovaniia goroda; sostavlena dlia panoramy S. Peterburga, 1834]. It was published in 1834. Scale [ca. 1:76,000]. Covers Saint Petersburg Region, Russia. Map in Russian and Swedish.\n\nThe image inside the map neatline is georeferenced to the surface of the earth and fit to the 'Pulkovo 1995 Gauss Kruger Zone 6N' coordinate system. All map collar and inset information is also available as part of the raster image, including any inset maps, profiles, statistical tables, directories, text, illustrations, index maps, legends, or other information associated with the principal map.\n\nThis map shows features such as roads, drainage, built-up areas and selected buildings, ground cover, and more. Relief is shown by hachures. Depths shown by soundings. Includes insets: [Retusari island] -- [Sluselberg]. \n\nThis layer is part of a selection of digitally scanned and georeferenced historic maps from The Harvard Map Collection as part of the Imaging the Urban Environment project. Maps selected for this project represent major urban areas and cities of the world, at various time periods. These maps typically portray both natural and manmade features at a large scale. The selection represents a range of regions, originators, ground condition dates, scales, and purposes.", - "dc_format_s": "GeoTIFF", - "dc_identifier_s": "urn:hul.harvard.edu:HARVARD.SDE2.G7064_S2_1834_K3", - "dc_language_s": "English", - "dc_publisher_s": "Harvard Map Collection, Harvard College Library", - "dc_rights_s": "Public", - "dc_subject_sm": [ + "dct_description_sm": [ + "This layer is a georeferenced raster image of the historic paper map entitled: [Karta mesta zanimaemago Sanktpeterburgom : v tom vide v kakom onoe nakhodilos' za god do osnovaniia goroda; sostavlena dlia panoramy S. Peterburga, 1834]. It was published in 1834. Scale [ca. 1:76,000]. Covers Saint Petersburg Region, Russia. Map in Russian and Swedish.\n\nThe image inside the map neatline is georeferenced to the surface of the earth and fit to the 'Pulkovo 1995 Gauss Kruger Zone 6N' coordinate system. All map collar and inset information is also available as part of the raster image, including any inset maps, profiles, statistical tables, directories, text, illustrations, index maps, legends, or other information associated with the principal map.\n\nThis map shows features such as roads, drainage, built-up areas and selected buildings, ground cover, and more. Relief is shown by hachures. Depths shown by soundings. Includes insets: [Retusari island] -- [Sluselberg]. \n\nThis layer is part of a selection of digitally scanned and georeferenced historic maps from The Harvard Map Collection as part of the Imaging the Urban Environment project. Maps selected for this project represent major urban areas and cities of the world, at various time periods. These maps typically portray both natural and manmade features at a large scale. The selection represents a range of regions, originators, ground condition dates, scales, and purposes." + ], + "dct_format_s": "GeoTIFF", + "dct_identifier_sm": ["urn:hul.harvard.edu:HARVARD.SDE2.G7064_S2_1834_K3"], + "dct_language_sm": ["eng"], + "dct_publisher_sm": ["Harvard Map Collection, Harvard College Library"], + "dct_accessRights_s": "Public", + "dct_license_sm": ["example.com/license"], + "dct_subject_sm": [ "Maps", "Human", "settlements", @@ -24,24 +26,22 @@ "water", "imageryBaseMapsEarthCover" ], - "dc_title_s": "Saint Petersburg Region, Russia, 1834 (Raster Image)", - "dc_type_s": "Dataset", + "dct_title_s": "Saint Petersburg Region, Russia, 1834 (Raster Image)", "dct_references_s": "{\"http://schema.org/DownloadAction\":\"http://hgl.harvard.edu:8080/HGL/HGLOpenDelivery\",\"http://www.opengis.net/def/serviceType/ogc/wcs\":\"http://hgl.harvard.edu:8080/geoserver/wcs\",\"http://www.opengis.net/def/serviceType/ogc/wms\":\"http://hgl.harvard.edu:8080/geoserver/wms\"}", - "dct_spatial_sm": [ - "Russia Saint Petersburg" - ], - "dct_temporal_sm": [ - "1834" - ], + "dct_spatial_sm": ["Russia Saint Petersburg"], + "dct_temporal_sm": ["1834"], "dct_issued_s": "2000", - "dct_provenance_s": "Harvard", + "schema_provider_s": "Harvard", "georss_box_s": "59.669749 30.013108 60.041712 30.875309", "georss_polygon_s": "60.041712 30.013108 60.041712 30.875309 59.669749 30.875309 59.669749 30.013108 60.041712 30.013108", - "layer_slug_s": "harvard-g7064-s2-1834-k3", - "layer_id_s": "cite:SDE2.G7064_S2_1834_K3", - "layer_geom_type_s": "Raster", - "layer_modified_dt": "2014-05-27T18:09:36Z", - "solr_geom": "ENVELOPE(30.013108, 30.875309, 60.041712, 59.669749)", - "solr_year_i": 1834, - "solr_issued_dt": "2000-01-01T00:00:00Z" -} \ No newline at end of file + "id": "harvard-g7064-s2-1834-k3", + "gbl_wxsIdentifier_s": "cite:SDE2.G7064_S2_1834_K3", + "gbl_mdModified_dt": "2014-05-27T18:09:36Z", + "dcat_bbox": "ENVELOPE(30.013108, 30.875309, 60.041712, 59.669749)", + "locn_geometry": "ENVELOPE(30.013108, 30.875309, 60.041712, 59.669749)", + "gbl_indexYear_im": [1834], + "solr_issued_dt": "2000-01-01T00:00:00Z", + "gbl_resourceClass_sm": ["Datasets"], + "gbl_resourceType_sm": ["Raster data"], + "gbl_mdVersion_s": "Aardvark" +} diff --git a/spec/fixtures/solr_documents/part_of_collection.json b/spec/fixtures/solr_documents/part_of_collection.json index 96209618..96f53891 100644 --- a/spec/fixtures/solr_documents/part_of_collection.json +++ b/spec/fixtures/solr_documents/part_of_collection.json @@ -1,22 +1,18 @@ { - "dc_creator_sm": [ - "California. Metropolitan Transportation Commission" + "dct_creator_sm": ["California. Metropolitan Transportation Commission"], + "dct_description_sm": [ + "This line shapefile represents high-occupancy vehicle (HOV) lanes within the San Francisco Bay Area of California. An HOV lane (also known as carpool lane) is a restricted traffic lane reserved at peak travel times or longer for the exclusive use of vehicles with a driver and one or more passengers, including carpools, vanpools, and transit buses. This layer is part of the Bay Area Metropolitan Transportation Commission (MTC) GIS Maps and Data collection.This dataset is intended for researchers, students, and policy makers for reference and mapping purposes, and may be used for basic applications such as viewing, querying, and map output production, or to provide a basemap to support graphical overlays and analysis with other spatial data." ], - "dc_description_s": "This line shapefile represents high-occupancy vehicle (HOV) lanes within the San Francisco Bay Area of California. An HOV lane (also known as carpool lane) is a restricted traffic lane reserved at peak travel times or longer for the exclusive use of vehicles with a driver and one or more passengers, including carpools, vanpools, and transit buses. This layer is part of the Bay Area Metropolitan Transportation Commission (MTC) GIS Maps and Data collection.This dataset is intended for researchers, students, and policy makers for reference and mapping purposes, and may be used for basic applications such as viewing, querying, and map output production, or to provide a basemap to support graphical overlays and analysis with other spatial data.", - "dc_format_s": "Shapefile", - "dc_identifier_s": "http://purl.stanford.edu/mc977kq8162", - "dc_language_s": "English", - "dc_publisher_s": "California. Metropolitan Transportation Commission", - "dc_rights_s": "Public", - "dc_subject_sm": [ - "High occupancy vehicle lanes", - "Transportation" - ], - "dc_source_sm": ["stanford-bq589tv8583"], - "dc_title_s": "HOV Lanes, San Francisco Bay Area, 2002", - "dc_type_s": "Dataset", + "dct_format_s": "Shapefile", + "dct_identifier_sm": ["http://purl.stanford.edu/mc977kq8162"], + "dct_language_sm": ["eng"], + "dct_publisher_sm": ["California. Metropolitan Transportation Commission"], + "dct_accessRights_s": "Public", + "dct_subject_sm": ["High occupancy vehicle lanes", "Transportation"], + "pcdm_memberOf_sm": ["stanford-bq589tv8583"], + "dct_title_s": "HOV Lanes, San Francisco Bay Area, 2002", "dct_issued_s": "2002", - "dct_provenance_s": "Stanford", + "schema_provider_s": "Stanford", "dct_references_s": "{\"http://schema.org/url\":\"http://purl.stanford.edu/mc977kq8162\",\"http://schema.org/downloadUrl\":\"http://stacks.stanford.edu/file/druid:mc977kq8162/data.zip\",\"http://www.loc.gov/mods/v3\":\"http://purl.stanford.edu/mc977kq8162.mods\",\"http://www.isotc211.org/schemas/2005/gmd/\":\"https://raw.githubusercontent.com/OpenGeoMetadata/edu.stanford.purl/master/mc/977/kq/8162/iso19139.xml\",\"http://www.opengis.net/def/serviceType/ogc/wfs\":\"https://geowebservices.stanford.edu/geoserver/wfs\",\"http://www.opengis.net/def/serviceType/ogc/wms\":\"https://geowebservices.stanford.edu/geoserver/wms\"}", "dct_spatial_sm": [ "San Francisco Bay Area (Calif.)", @@ -30,16 +26,15 @@ "Marin County (Calif.)", "Alameda County (Calif.)" ], - "dct_temporal_sm": [ - "2002" - ], - "geoblacklight_version": "1.0", + "dct_temporal_sm": ["2002"], + "gbl_mdVersion_s": "Aardvark", "layer_availability_score_f": 1, - "layer_geom_type_s": "Line", - "layer_id_s": "druid:mc977kq8162", - "layer_modified_dt": "2016-02-04T00:03:29Z", - "layer_slug_s": "stanford-mc977kq8162", - "solr_geom": "ENVELOPE(-122.54625, -121.751457, 38.080099, 37.239303)", - "solr_year_i": 2002, - "stanford_rights_metadata_s": "\n\n \n \n \n \n \n \n \n \n \n \n \n This item is in the public domain. There are no restrictions on use.\n \n \n \n \n This work is in the Public Domain, meaning that it is not subject to copyright.\n \n\n" + "gbl_wxsIdentifier_s": "druid:mc977kq8162", + "gbl_mdModified_dt": "2016-02-04T00:03:29Z", + "id": "stanford-mc977kq8162", + "dcat_bbox": "ENVELOPE(-122.54625, -121.751457, 38.080099, 37.239303)", + "locn_geometry": "ENVELOPE(-122.54625, -121.751457, 38.080099, 37.239303)", + "gbl_indexYear_im": [2002], + "gbl_resourceClass_sm": ["Datasets"], + "gbl_resourceType_sm": ["Line data"] } diff --git a/spec/fixtures/solr_documents/public-stanford.json b/spec/fixtures/solr_documents/public-stanford.json index c3f54b22..b6d92485 100644 --- a/spec/fixtures/solr_documents/public-stanford.json +++ b/spec/fixtures/solr_documents/public-stanford.json @@ -1,39 +1,36 @@ { - "uuid":"http://purl.stanford.edu/cz128vq0535", - "dc_identifier_s":"http://purl.stanford.edu/cz128vq0535", - "dc_title_s":"2005 Rural Poverty GIS Database: Uganda", - "dc_description_s":"This polygon shapefile contains 2005 poverty data for 855 rural subcounties in Uganda. These data are intended for researchers, students, policy makers and the general public for reference and mapping purposes, and may be used for basic applications such as viewing, querying, and map output production.", - "dc_rights_s":"Public", - "dct_provenance_s":"Stanford", - "dct_references_s":"{\"http://schema.org/url\":\"http://purl.stanford.edu/cz128vq0535\",\"http://schema.org/downloadUrl\":\"http://stacks.stanford.edu/file/druid:cz128vq0535/data.zip\",\"http://www.loc.gov/mods/v3\":\"http://purl.stanford.edu/cz128vq0535.mods\",\"http://www.isotc211.org/schemas/2005/gmd/\":\"http://opengeometadata.stanford.edu/metadata/edu.stanford.purl/druid:cz128vq0535/iso19139.xml\",\"http://www.w3.org/1999/xhtml\":\"http://opengeometadata.stanford.edu/metadata/edu.stanford.purl/druid:cz128vq0535/default.html\",\"http://www.opengis.net/def/serviceType/ogc/wfs\":\"https://geowebservices.stanford.edu/geoserver/wfs\",\"http://www.opengis.net/def/serviceType/ogc/wms\":\"https://geowebservices.stanford.edu/geoserver/wms\"}", - "layer_id_s":"druid:cz128vq0535", - "layer_slug_s":"stanford-cz128vq0535", - "layer_geom_type_s":"Polygon", - "layer_modified_dt":"2015-01-13T18:46:38Z", - "dc_format_s":"Shapefile", - "dc_language_s":"English", - "dc_type_s":"Dataset", - "dc_publisher_s":"Uganda Bureau of Statistics", - "dc_creator_sm":[ - "Uganda Bureau of Statistics" + "id": ["stanford-cz128vq0535"], + "dct_title_s": "2005 Rural Poverty GIS Database: Uganda", + "dct_description_sm": [ + "This polygon shapefile contains 2005 poverty data for 855 rural subcounties in Uganda.", + "These data are intended for researchers, students, policy makers and the general public for reference and mapping purposes, and may be used for basic applications such as viewing, querying, and map output production." ], - "dc_subject_sm":[ - "Poverty", - "Statistics" + "dct_language_sm": ["eng"], + "dct_creator_sm": ["Uganda Bureau of Statistics"], + "dct_publisher_sm": ["Uganda Bureau of Statistics"], + "dct_issued_s": "2005", + "dct_subject_sm": ["Poverty", "Statistics"], + "dct_spatial_sm": ["Uganda"], + "dct_temporal_sm": ["2005"], + "gbl_dateRange_drsim": ["[2005 TO 2005]"], + "gbl_indexYear_im": [2005], + "schema_provider_s": "Stanford", + "dct_identifier_sm": ["https://purl.stanford.edu/cz128vq0535"], + "gbl_resourceClass_sm": ["Datasets"], + "gbl_resourceType_sm": ["Polygon data"], + "dct_format_s": "Shapefile", + "locn_geometry": "ENVELOPE(29.572742, 35.000308, 4.234077, -1.478794)", + "dcat_bbox": "ENVELOPE(29.572742, 35.000308, 4.234077, -1.478794)", + "pcdm_memberOf_sm": ["stanford-rb371kw9607"], + "dct_rights_sm": [ + "This item is in the public domain. There are no restrictions on use." ], - "dct_issued_s":"2005", - "dct_temporal_sm":[ - "2005" + "dct_rightsHolder_sm": [ + "This work is in the Public Domain, meaning that it is not subject to copyright." ], - "dct_spatial_sm":[ - "Uganda" - ], - "dc_relation_sm":[ - "http://sws.geonames.org/226074/about.rdf" - ], - "georss_box_s":"-1.478794 29.572742 4.234077 35.000308", - "georss_polygon_s":"-1.478794 29.572742 4.234077 29.572742 4.234077 35.000308 -1.478794 35.000308 -1.478794 29.572742", - "solr_geom":"ENVELOPE(29.572742, 35.000308, 4.234077, -1.478794)", - "solr_year_i":2005, - "stanford_rights_metadata_s": "<\/machine><\/access><\/machine><\/access>This item is in the public domain. There are no restrictions on use.<\/human>Attribution Share Alike 3.0 Unported<\/human>by-sa<\/machine><\/use>This work is in the Public Domain, meaning that it is not subject to copyright.<\/human><\/copyright><\/rightsMetadata>" -} \ No newline at end of file + "dct_accessRights_s": "Public", + "gbl_mdModified_dt": "2022-04-27T07:27:29Z", + "gbl_mdVersion_s": "Aardvark", + "gbl_wxsIdentifier_s": "druid:cz128vq0535", + "dct_references_s": "{\"http://schema.org/url\":\"https://purl.stanford.edu/cz128vq0535\",\"http://schema.org/downloadUrl\":\"https://stacks.stanford.edu/object/cz128vq0535\",\"https://oembed.com\":\"https://purl.stanford.edu/embed.json?hide_title=true\\u0026url=https%3A%2F%2Fpurl.stanford.edu%2Fcz128vq0535\",\"http://www.opengis.net/def/serviceType/ogc/wms\":\"https://geowebservices.stanford.edu/geoserver/wms\",\"http://www.opengis.net/def/serviceType/ogc/wfs\":\"https://geowebservices.stanford.edu/geoserver/wfs\"}" +} diff --git a/spec/fixtures/solr_documents/public_iiif_princeton.json b/spec/fixtures/solr_documents/public_iiif_princeton.json index 33b5beec..f1b5b7ab 100644 --- a/spec/fixtures/solr_documents/public_iiif_princeton.json +++ b/spec/fixtures/solr_documents/public_iiif_princeton.json @@ -1,37 +1,28 @@ { - "uuid": "http://arks.princeton.edu/ark:/88435/02870w62c", - "dc_description_s": "Partly colored. Relief shown pictorially. Shows administrative divisions. From Thomas Jefferys's The American atlas, or, A geographical description of the whole continent of America (London : Printed by R. Sayer and Bennett, 1778). Insets: A chart of the mouth of Hudson's River, from Sandy Hook to New York. A plan of the city of New York. Plan of Amboy, with its environs, from an actual survey.", - "dc_format_s": "Raster", - "dc_identifier_s": "http://arks.princeton.edu/ark:/88435/02870w62c", - "dc_language_s": "English", - "dc_publisher_s": "London, Robt. Sayer & John Bennett", - "dc_rights_s": "Public", - "dc_subject_sm": [ - "New York (State)‒Maps", - "New Jersey‒Maps" - ], - "dc_title_s": "The provinces of New York and New Jersey, with part of Pensilvania, and the Province of Quebec : drawn by Major Holland, Surveyor General, of the Northern District in America. Corrected and improved, from the original materials, by Governr. Pownall, Member of Parliament, 1776", - "dc_type_s": "Dataset", - "dc_creator_sm": [ - "Rogers, Henry Darwin", - "Pownall, Thomas" + "dct_description_sm": [ + "Partly colored. Relief shown pictorially. Shows administrative divisions. From Thomas Jefferys's The American atlas, or, A geographical description of the whole continent of America (London : Printed by R. Sayer and Bennett, 1778). Insets: A chart of the mouth of Hudson's River, from Sandy Hook to New York. A plan of the city of New York. Plan of Amboy, with its environs, from an actual survey." ], + "dct_format_s": "Raster", + "dct_identifier_sm": ["http://arks.princeton.edu/ark:/88435/02870w62c"], + "dct_language_sm": ["eng"], + "dct_publisher_sm": ["London, Robt. Sayer & John Bennett"], + "dct_accessRights_s": "Public", + "dct_subject_sm": ["New York (State)‒Maps", "New Jersey‒Maps"], + "dct_title_s": "The provinces of New York and New Jersey, with part of Pensilvania, and the Province of Quebec : drawn by Major Holland, Surveyor General, of the Northern District in America. Corrected and improved, from the original materials, by Governr. Pownall, Member of Parliament, 1776", + "dct_creator_sm": ["Rogers, Henry Darwin", "Pownall, Thomas"], "dct_references_s": "{\"http://schema.org/url\":\"http://arks.princeton.edu/ark:/88435/02870w62c\",\"http://schema.org/thumbnailUrl\":\"http://libimages.princeton.edu/loris2/pudl0076%2Fmap_pownall%2F00000001.jp2/full/50,/0/default.jpg\",\"http://iiif.io/api/image\":\"http://libimages.princeton.edu/loris2/pudl0076%2Fmap_pownall%2F00000001.jp2/info.json\"}", - "dct_spatial_sm": [ - "New York (State)", - "New Jersey", - "Pennsylvania" - ], - "dct_temporal_sm": [ - "1778" - ], + "dct_spatial_sm": ["New York (State)", "New Jersey", "Pennsylvania"], + "dct_temporal_sm": ["1778"], "dct_issued_s": "1778", - "dct_provenance_s": "Princeton", + "schema_provider_s": "Princeton", "georss_box_s": "38.6693 -76.3394 46.5798 -72.1916", - "layer_slug_s": "princeton-02870w62c", - "layer_id_s": "02870w62c", - "layer_geom_type_s": "Raster", - "layer_modified_dt": "2014-10-09T18:00:18Z", - "solr_geom": "ENVELOPE(-76.3394, -72.1916, 46.5798, 38.6693)", - "solr_year_i": 1778 -} \ No newline at end of file + "id": "princeton-02870w62c", + "gbl_wxsIdentifier_s": "02870w62c", + "gbl_mdModified_dt": "2014-10-09T18:00:18Z", + "dcat_bbox": "ENVELOPE(-76.3394, -72.1916, 46.5798, 38.6693)", + "locn_geometry": "ENVELOPE(-76.3394, -72.1916, 46.5798, 38.6693)", + "gbl_indexYear_im": [1778], + "gbl_resourceClass_sm": ["Datasets"], + "gbl_resourceType_sm": ["Raster data"], + "gbl_mdVersion_s": "Aardvark" +} diff --git a/spec/fixtures/solr_documents/public_polygon_mit.json b/spec/fixtures/solr_documents/public_polygon_mit.json index 6c07b4bd..3f759b16 100644 --- a/spec/fixtures/solr_documents/public_polygon_mit.json +++ b/spec/fixtures/solr_documents/public_polygon_mit.json @@ -1,11 +1,12 @@ { - "uuid": "urn:arrowsmith.mit.edu:MIT.SDE_DATA.US_MA_E25ZCTA5DCT_2000", - "dc_format_s": "Shapefile", - "dc_identifier_s": "urn:arrowsmith.mit.edu:MIT.SDE_DATA.US_MA_E25ZCTA5DCT_2000", - "dc_language_s": "English", - "dc_publisher_s": "U.S. Census Bureau", - "dc_rights_s": "Public", - "dc_subject_sm": [ + "dct_format_s": "Shapefile", + "dct_identifier_sm": [ + "urn:arrowsmith.mit.edu:MIT.SDE_DATA.US_MA_E25ZCTA5DCT_2000" + ], + "dct_language_sm": ["eng"], + "dct_publisher_sm": ["U.S. Census Bureau"], + "dct_accessRights_s": "Public", + "dct_subject_sm": [ "polygon", "Zip", "Code", @@ -19,26 +20,24 @@ "zip", "codes" ], - "dc_title_s": "Massachusetts (ZCTA - 5 digit zip code tabulation area, 2000)", - "dc_type_s": "Dataset", + "dct_title_s": "Massachusetts (ZCTA - 5 digit zip code tabulation area, 2000)", "dct_references_s": "{\"http://www.opengis.net/def/serviceType/ogc/wfs\":\"http://arrowsmith.mit.edu:8080/geoserver/wfs\",\"http://www.opengis.net/def/serviceType/ogc/wms\":\"http://arrowsmith.mit.edu:8080/geoserver/wms\"}", - "dct_spatial_sm": [ - "Massachusetts MA USA" - ], - "dct_temporal_sm": [ - "2000" - ], + "dct_spatial_sm": ["Massachusetts MA USA"], + "dct_temporal_sm": ["2000"], "dct_issued_s": "2000", - "dct_provenance_s": "MIT", + "schema_provider_s": "MIT", "georss_box_s": "41.230345 -73.533237 42.888068 -69.898565", "georss_polygon_s": "42.888068 -73.533237 42.888068 -69.898565 41.230345 -69.898565 41.230345 -73.533237 42.888068 -73.533237", - "layer_slug_s": "mit-us-ma-e25zcta5dct-2000", - "layer_id_s": "sde:SDE_DATA.US_MA_E25ZCTA5DCT_2000", - "layer_geom_type_s": "Polygon", - "layer_modified_dt": "2014-05-27T18:09:34Z", - "solr_geom": "ENVELOPE(-73.533237, -69.898565, 42.888068, 41.230345)", - "solr_year_i": 2000, + "id": "mit-us-ma-e25zcta5dct-2000", + "gbl_wxsIdentifier_s": "sde:SDE_DATA.US_MA_E25ZCTA5DCT_2000", + "gbl_mdModified_dt": "2014-05-27T18:09:34Z", + "dcat_bbox": "ENVELOPE(-73.533237, -69.898565, 42.888068, 41.230345)", + "locn_geometry": "ENVELOPE(-73.533237, -69.898565, 42.888068, 41.230345)", + "gbl_indexYear_im": [2000], "solr_issued_dt": "2000-01-01T00:00:00Z", "solr_wms_url": "http://arrowsmith.mit.edu:8080/geoserver/wms", - "solr_wfs_url": "http://arrowsmith.mit.edu:8080/geoserver/wfs" + "solr_wfs_url": "http://arrowsmith.mit.edu:8080/geoserver/wfs", + "gbl_resourceClass_sm": ["Datasets"], + "gbl_resourceType_sm": ["Polygon data"], + "gbl_mdVersion_s": "Aardvark" } diff --git a/spec/fixtures/solr_documents/restricted-line.json b/spec/fixtures/solr_documents/restricted-line.json index e375ecf5..34d18448 100644 --- a/spec/fixtures/solr_documents/restricted-line.json +++ b/spec/fixtures/solr_documents/restricted-line.json @@ -1,44 +1,39 @@ { - "uuid": "http://purl.stanford.edu/cg357zz0321", - "dc_identifier_s": "http://purl.stanford.edu/cg357zz0321", - "dc_title_s": "10 Meter Countours: Russian River Basin, California", - "dc_description_s": "This line shapefile contains contours that were derived from a mosiac of 10 meter digital elevation models for the extent of the Russian River basin, located in Sonoma and Mendocino Counties, California.This layer can be used for watershed analysis and planning in the Russian River region of California.", - "dc_rights_s": "Restricted", - "dct_provenance_s": "Stanford", - "dct_references_s": "{\"http://schema.org/url\":\"http://purl.stanford.edu/cg357zz0321\",\"http://schema.org/downloadUrl\":\"http://stacks.stanford.edu/file/druid:cg357zz0321/data.zip\",\"http://www.loc.gov/mods/v3\":\"http://purl.stanford.edu/cg357zz0321.mods\",\"http://www.isotc211.org/schemas/2005/gmd/\":\"http://opengeometadata.stanford.edu/metadata/edu.stanford.purl/druid:cg357zz0321/iso19139.xml\",\"http://www.w3.org/1999/xhtml\":\"http://opengeometadata.stanford.edu/metadata/edu.stanford.purl/druid:cg357zz0321/default.html\",\"http://www.opengis.net/def/serviceType/ogc/wfs\":\"http://geowebservices-restricted.stanford.edu/geoserver/wfs\",\"http://www.opengis.net/def/serviceType/ogc/wms\":\"http://geowebservices-restricted.stanford.edu/geoserver/wms\"}", - "layer_id_s": "druid:cg357zz0321", - "layer_slug_s": "stanford-cg357zz0321", - "layer_geom_type_s": "Line", - "layer_modified_dt": "2014-12-03T01:20:46Z", - "dc_format_s": "Shapefile", - "dc_language_s": "English", - "dc_type_s": "Dataset", - "dc_publisher_s": "Circuit Rider Productions", - "dc_creator_sm": [ + "id": ["stanford-cg357zz0321"], + "dct_title_s": "10 Meter Contours: Russian River Basin, California", + "dct_description_sm": [ + "This line shapefile contains contours that were derived from a mosiac of 10 meter digital elevation models for the extent of the Russian River basin, located in Sonoma and Mendocino Counties, California.", + "This layer can be used for watershed analysis and planning in the Russian River region of California.", + "This layer is presented in the WGS84 coordinate system for web display purposes. Downloadable data are provided in native coordinate system or projection." + ], + "dct_language_sm": ["eng"], + "dct_creator_sm": [ "United States. National Oceanic and Atmospheric Administration", "Circuit Rider Productions" ], - "dc_subject_sm": [ - "Contours (Cartography)", - "Elevation", - "Inland Waters" - ], - "dct_issued_s": "2003", - "dct_temporal_sm": [ - "2002" - ], - "dct_spatial_sm": [ - "Sonoma County (Calif.)", - "Mendocino County (Calif.)" - ], - "dc_relation_sm": [ - "http://sws.geonames.org/5397100/about.rdf", - "http://sws.geonames.org/5372163/about.rdf" + "dct_publisher_sm": ["Circuit Rider Productions"], + "dct_issued_s": "2002", + "dct_subject_sm": ["Contours (Cartography)", "Elevation", "Inland Waters"], + "dct_spatial_sm": ["Sonoma County (Calif.)", "Mendocino County (Calif.)"], + "dcat_theme_sm": ["Elevation", "Inland Waters"], + "dct_temporal_sm": ["2002"], + "gbl_dateRange_drsim": ["[2002 TO 2002]"], + "gbl_indexYear_im": [2002], + "schema_provider_s": "Stanford", + "dct_identifier_sm": ["https://purl.stanford.edu/cg357zz0321"], + "gbl_resourceClass_sm": ["Datasets"], + "gbl_resourceType_sm": ["Line data"], + "dct_format_s": "Shapefile", + "locn_geometry": "ENVELOPE(-123.387366, -122.52958, 39.398403, 38.302994)", + "dcat_bbox": "ENVELOPE(-123.387366, -122.52958, 39.398403, 38.302994)", + "pcdm_memberOf_sm": ["stanford-zt526qk7324"], + "dct_rights_sm": [ + "These data are licensed by Stanford Libraries and are available to Stanford University affiliates only. Affiliates are limited to current faculty, staff and students. Non affiliates seeking access should contact the publisher directly. These data may not be reproduced or used for any purpose without permission." ], - "georss_box_s": "38.302994 -123.387366 39.398403 -122.52958", - "georss_polygon_s": "38.302994 -123.387366 39.398403 -123.387366 39.398403 -122.52958 38.302994 -122.52958 38.302994 -123.387366", - "solr_geom": "ENVELOPE(-123.387366, -122.52958, 39.398403, 38.302994)", - "solr_year_i": 2002, - "stanford_rights_metadata_s": "<\/machine><\/access>Stanford<\/group><\/machine><\/access>These data are licensed by Stanford Libraries and are available to Stanford University affiliates only. Affiliates are limited to current faculty, staff and students. These data may not be reproduced or used for any purpose without permission. For more information please contact brannerlibrary@stanford.edu.<\/human><\/use>Copyright ownership resides with the originator.<\/human><\/copyright><\/rightsMetadata>", - "layer_availability_score_f": 0.8 -} \ No newline at end of file + "dct_rightsHolder_sm": ["Copyright ownership resides with the originator."], + "dct_accessRights_s": "Restricted", + "gbl_mdModified_dt": "2022-04-27T02:34:01Z", + "gbl_mdVersion_s": "Aardvark", + "gbl_wxsIdentifier_s": "druid:cg357zz0321", + "dct_references_s": "{\"http://schema.org/url\":\"https://purl.stanford.edu/cg357zz0321\",\"http://schema.org/downloadUrl\":\"https://stacks.stanford.edu/object/cg357zz0321\",\"https://oembed.com\":\"https://purl.stanford.edu/embed.json?hide_title=true\\u0026url=https%3A%2F%2Fpurl.stanford.edu%2Fcg357zz0321\",\"http://www.opengis.net/def/serviceType/ogc/wms\":\"https://geowebservices-restricted.stanford.edu/geoserver/wms\",\"http://www.opengis.net/def/serviceType/ogc/wfs\":\"https://geowebservices-restricted.stanford.edu/geoserver/wfs\"}" +} diff --git a/spec/fixtures/solr_documents/stanford-dy750qs3024.json b/spec/fixtures/solr_documents/stanford-dy750qs3024.json index 40ae0a4c..bc525c81 100644 --- a/spec/fixtures/solr_documents/stanford-dy750qs3024.json +++ b/spec/fixtures/solr_documents/stanford-dy750qs3024.json @@ -1 +1,34 @@ -{"dc_identifier_s":"http://purl.stanford.edu/dy750qs3024","dc_title_s":"Tōa yochizu","dc_description_s":"Dai Nihon Teikoku Rikuchi Sokuryōbu. Relief shown by shading. Each sheet includes index to adjoining sheets. Title sheet includes legend. Various issues of some sheets. Covers Mongolia, China (Tibet not included), Russia, Central Asia. Some sheets are 1947 reprints by Kyodo Printing Co. Ltd. In Japanese. Gaihōzu. 大日本帝國陸地測量部.","dc_rights_s":"Public","layer_geom_type_s":"Image","layer_modified_dt":"2021-02-12T21:38:15Z","dct_issued_s":"Meiji 30 [1896]-","dc_type_s":"Image","dc_format_s":"JPEG 2000","dc_language_s":"Japanese","dct_spatial_sm":["Asia","East Asia"],"dc_publisher_s":"Dai Nihon Teikoku Rikuchi Sokuryōbu","dc_creator_sm":["Japan Rikuchi Sokuryōbu","Japan 陸地測量部"],"layer_availability_score_f":1.0,"geoblacklight_version":"1.0","dct_references_s":"{\"http://schema.org/url\":\"https://purl.stanford.edu/dy750qs3024\",\"http://www.loc.gov/mods/v3\":\"https://purl.stanford.edu/dy750qs3024.mods\",\"https://oembed.com\":\"https://purl.stanford.edu/embed.json?\u0026hide_title=true\u0026url=https://purl.stanford.edu/dy750qs3024\",\"http://iiif.io/api/presentation#manifest\":\"https://purl.stanford.edu/dy750qs3024/iiif/manifest\"}","solr_geom":"ENVELOPE(50.0, 160.0, 60.0, 20.0)","layer_slug_s":"stanford-dy750qs3024","layer_id_s":"druid:dy750qs3024","hashed_id_ssi":"1334afcfd71d0a5342fa0a7f1fa123f8","dct_provenance_s":"Stanford","stanford_rights_metadata_s":"\u003crightsMetadata\u003e\n \u003ccopyright\u003e\n \u003chuman type=\"copyright\"\u003eProperty rights reside with the repository. Copyright © Stanford University. All Rights Reserved.\u003c/human\u003e\n \u003c/copyright\u003e\n \u003caccess type=\"discover\"\u003e\n \u003cmachine\u003e\n \u003cworld/\u003e\n \u003c/machine\u003e\n \u003c/access\u003e\n \u003caccess type=\"read\"\u003e\n \u003cmachine\u003e\n \u003cworld/\u003e\n \u003c/machine\u003e\n \u003c/access\u003e\n \u003cuse\u003e\n \u003chuman type=\"useAndReproduction\"\u003eImage from the Map Collections courtesy Stanford University Libraries. If you have questions, please contact the Branner Earth Science Library \u0026amp; Map Collections at brannerlibrary@stanford.edu.\u003c/human\u003e\n \u003cmachine type=\"creativeCommons\"\u003eby-nc\u003c/machine\u003e\n \u003chuman type=\"creativeCommons\"\u003eAttribution Non-Commercial 3.0 Unported\u003c/human\u003e\n \u003c/use\u003e\n \u003c/rightsMetadata\u003e","stanford_license_s":"\u003cdiv class='cc-by-nc'\u003e\u003ca href='http://creativecommons.org/licenses/by-nc/3.0/'\u003eThis work is licensed under a Creative Commons Attribution-Noncommercial 3.0 Unported License\u003c/a\u003e\u003c/div\u003e","stanford_use_and_reproduction_s":"Image from the Map Collections courtesy Stanford University Libraries. If you have questions, please contact the Branner Earth Science Library \u0026 Map Collections at brannerlibrary@stanford.edu.","stanford_copyright_s":"Property rights reside with the repository. Copyright © Stanford University. All Rights Reserved.","solr_year_i":1896,"timestamp":"2021-06-15T17:09:29.938Z"} +{ + "id": ["stanford-dy750qs3024"], + "dct_title_s": "Tōa yochizu", + "dct_description_sm": [ + "Relief shown by shading.", + "Each sheet includes index to adjoining sheets.", + "Title sheet includes legend.", + "Various issues of some sheets.", + "Covers Mongolia, China (Tibet not included), Russia, Central Asia.", + "Some sheets are 1947 reprints by Kyodo Printing Co. Ltd.", + "In Japanese." + ], + "dct_language_sm": ["jpn"], + "dct_spatial_sm": ["Asia", "East Asia"], + "schema_provider_s": "Stanford", + "dct_identifier_sm": ["https://purl.stanford.edu/dy750qs3024"], + "gbl_resourceClass_sm": ["Maps"], + "dct_format_s": "JPEG2000", + "locn_geometry": "ENVELOPE(50.0, 160.0, 60.0, 20.0)", + "dcat_bbox": "ENVELOPE(50.0, 160.0, 60.0, 20.0)", + "dct_rights_sm": [ + "Image from the Map Collections courtesy Stanford University Libraries. If you have questions, please contact the Branner Earth Science Library & Map Collections at brannerlibrary@stanford.edu." + ], + "dct_rightsHolder_sm": [ + "Property rights reside with the repository. Copyright © Stanford University. All Rights Reserved." + ], + "dct_license_sm": [ + "https://creativecommons.org/licenses/by-nc/3.0/legalcode" + ], + "dct_accessRights_s": "Public", + "gbl_mdModified_dt": "2012-05-06T01:47:02Z", + "gbl_mdVersion_s": "Aardvark", + "dct_references_s": "{\"http://schema.org/url\":\"https://purl.stanford.edu/dy750qs3024\",\"http://schema.org/downloadUrl\":\"https://stacks.stanford.edu/object/dy750qs3024\",\"https://oembed.com\":\"https://purl.stanford.edu/embed.json?hide_title=true\\u0026url=https%3A%2F%2Fpurl.stanford.edu%2Fdy750qs3024\",\"http://iiif.io/api/presentation#manifest\":\"https://purl.stanford.edu/dy750qs3024/iiif3/manifest\"}" +} diff --git a/spec/fixtures/solr_documents/stanford-paper-map.json b/spec/fixtures/solr_documents/stanford-paper-map.json index dc723cc2..5d355c71 100644 --- a/spec/fixtures/solr_documents/stanford-paper-map.json +++ b/spec/fixtures/solr_documents/stanford-paper-map.json @@ -1,27 +1,20 @@ { - "dc_identifier_s": "http://purl.stanford.edu/dt131hw5005", - "dc_title_s": "Buffer Zone Study, Stanford University. Eldridge T. Spencer. 1955", - "dc_description_s": "Stanford University campus buffer zone study prepared by the Stanford University Planning Office. Digitized by Stanford University Libraries.", - "dc_rights_s": "Public", - "layer_geom_type_s": "Image", - "dc_type_s": "Image", - "dc_format_s": "JPEG 2000", - "dc_language_s": "English", - "dc_subject_sm": [ - "Stanford University Lands", - "Stanford University Campus" + "dct_identifier_sm": ["http://purl.stanford.edu/dt131hw5005"], + "dct_title_s": "Buffer Zone Study, Stanford University. Eldridge T. Spencer. 1955", + "dct_description_sm": [ + "Stanford University campus buffer zone study prepared by the Stanford University Planning Office. Digitized by Stanford University Libraries." ], - "dct_spatial_sm": [ - "Palo Alto (Calif.)", - "Stanford (Calif.)" - ], - "dc_creator_sm": [ - "Spencer, Eldridge T" - ], - "geoblacklight_version": "1.0", + "dct_accessRights_s": "Public", + "dct_format_s": "JPEG 2000", + "dct_language_sm": ["eng"], + "dct_subject_sm": ["Stanford University Lands", "Stanford University Campus"], + "dct_spatial_sm": ["Palo Alto (Calif.)", "Stanford (Calif.)"], + "dct_creator_sm": ["Spencer, Eldridge T"], + "gbl_mdVersion_s": "Aardvark", "dct_references_s": "{\"http://schema.org/url\":\"https://purl.stanford.edu/dt131hw5005\",\"https://oembed.com\":\"https://purl.stanford.edu/embed.json?&hide_title=true&url=https://purl.stanford.edu/dt131hw5005\",\"http://iiif.io/api/presentation#manifest\":\"https://purl.stanford.edu/dt131hw5005/iiif/manifest\"}", - "solr_geom": "ENVELOPE(-122.191292, -122.149475, 37.4435369, 37.4063388)", - "layer_slug_s": "stanford-dt131hw5005", - "dct_provenance_s": "Stanford", - "stanford_rights_metadata_s": "\n \n \n \n \n \n \n \n \n \n \n \n Property rights reside with the repository. Literary rights reside with the creators of the documents or their heirs. To obtain permission to publish or reproduce, please contact the Public Services Librarian of the Dept. of Special Collections (http://library.stanford.edu/spc).\n \n \n \n \n \n " + "dcat_bbox": "ENVELOPE(-122.191292, -122.149475, 37.4435369, 37.4063388)", + "locn_geometry": "ENVELOPE(-122.191292, -122.149475, 37.4435369, 37.4063388)", + "id": "stanford-dt131hw5005", + "schema_provider_s": "Stanford", + "gbl_resourceClass_sm": ["Imagery"] } diff --git a/spec/fixtures/solr_documents/stanford-ts545zc6250.json b/spec/fixtures/solr_documents/stanford-ts545zc6250.json index 3d349413..5d355c71 100644 --- a/spec/fixtures/solr_documents/stanford-ts545zc6250.json +++ b/spec/fixtures/solr_documents/stanford-ts545zc6250.json @@ -1,38 +1,20 @@ { - "geoblacklight_version": "1.0", - "dc_identifier_s": "http://purl.stanford.edu/ts545zc6250", - "dc_title_s": "Chōsen Gomanbunnoichi Zu, Maps Index", - "dc_description_s": "This polygon shapefile is an index to 1:50,000 scale maps of North Korea, titled 'Chosen 1:50,000 Chikeizu.' This map series was originally produced by the Japanese Land Survey Department of the General Staff Headquarters between 1916 and 1918. Stanford University Libraries holds a large collection of Japanese military and imperial maps, referred to as gaihōzu, or \"maps of outer lands.\" These maps were produced starting in the early Meiji (1868-1912) era and the end of World War II by the Land Survey Department of the General Staff Headquarters, the former Japanese Army. The Library is in the process of scanning and making available all of the maps in the collection. To create this index, footprints were generated using the fishnet tool, and metadata were supplied for the digitized paper maps by Stanford University Libraries. After the footprints were created, the shapefile was trimmed and labeled according to the sources.This layer provides an index map that can be used to locate individual scanned map sheets.", - "dc_rights_s": "Public", - "dct_provenance_s": "Stanford", - "dct_references_s": "{\"http://schema.org/url\":\"http://purl.stanford.edu/ts545zc6250\",\"http://schema.org/downloadUrl\":\"http://stacks.stanford.edu/file/druid:ts545zc6250/data.zip\",\"http://www.loc.gov/mods/v3\":\"http://purl.stanford.edu/ts545zc6250.mods\",\"http://www.isotc211.org/schemas/2005/gmd/\":\"https://raw.githubusercontent.com/OpenGeoMetadata/edu.stanford.purl/master/ts/545/zc/6250/iso19139.xml\",\"http://www.opengis.net/def/serviceType/ogc/wfs\":\"https://geowebservices.stanford.edu/geoserver/wfs\",\"http://www.opengis.net/def/serviceType/ogc/wms\":\"https://geowebservices.stanford.edu/geoserver/wms\",\"https://openindexmaps.org\":\"https://stacks.stanford.edu/file/druid:ts545zc6250/index_map.json\"}", - "layer_id_s": "druid:ts545zc6250", - "layer_slug_s": "stanford-ts545zc6250", - "layer_geom_type_s": "Polygon", - "layer_modified_dt": "2018-01-25T20:31:47Z", - "dc_format_s": "Shapefile", - "dc_language_s": "English", - "dc_type_s": "Dataset", - "dc_publisher_s": "Stanford Digital Repository", - "dc_creator_sm": [ - "Stanford Geospatial Center" + "dct_identifier_sm": ["http://purl.stanford.edu/dt131hw5005"], + "dct_title_s": "Buffer Zone Study, Stanford University. Eldridge T. Spencer. 1955", + "dct_description_sm": [ + "Stanford University campus buffer zone study prepared by the Stanford University Planning Office. Digitized by Stanford University Libraries." ], - "dc_subject_sm": [ - "Military maps", - "Topographic maps", - "Grids (Cartography)", - "Index maps", - "Boundaries", - "Military" - ], - "dct_issued_s": "2016", - "dct_temporal_sm": [ - "1916-1918" - ], - "dct_spatial_sm": [ - "Korea (North)" - ], - "solr_geom": "ENVELOPE(124, 130, 42.666667, 38)", - "solr_year_i": 1916, - "stanford_rights_metadata_s": "\n\n \n \n \n \n \n \n \n \n \n \n \n This item is in the public domain. There are no restrictions on use.\n \n \n \n \n This work is in the Public Domain, meaning that it is not subject to copyright.\n \n\n" + "dct_accessRights_s": "Public", + "dct_format_s": "JPEG 2000", + "dct_language_sm": ["eng"], + "dct_subject_sm": ["Stanford University Lands", "Stanford University Campus"], + "dct_spatial_sm": ["Palo Alto (Calif.)", "Stanford (Calif.)"], + "dct_creator_sm": ["Spencer, Eldridge T"], + "gbl_mdVersion_s": "Aardvark", + "dct_references_s": "{\"http://schema.org/url\":\"https://purl.stanford.edu/dt131hw5005\",\"https://oembed.com\":\"https://purl.stanford.edu/embed.json?&hide_title=true&url=https://purl.stanford.edu/dt131hw5005\",\"http://iiif.io/api/presentation#manifest\":\"https://purl.stanford.edu/dt131hw5005/iiif/manifest\"}", + "dcat_bbox": "ENVELOPE(-122.191292, -122.149475, 37.4435369, 37.4063388)", + "locn_geometry": "ENVELOPE(-122.191292, -122.149475, 37.4435369, 37.4063388)", + "id": "stanford-dt131hw5005", + "schema_provider_s": "Stanford", + "gbl_resourceClass_sm": ["Imagery"] } diff --git a/spec/fixtures/solr_documents/stanford_index_map.json b/spec/fixtures/solr_documents/stanford_index_map.json index 076e6cde..ffc010f9 100644 --- a/spec/fixtures/solr_documents/stanford_index_map.json +++ b/spec/fixtures/solr_documents/stanford_index_map.json @@ -1,23 +1,20 @@ { - "uuid": "http://purl.stanford.edu/vj008bs4183", - "dc_identifier_s": "http://purl.stanford.edu/vj008bs4183", - "dc_title_s": "Yōzu (Kūchū shashin sokuryō) Kita Shina jūmanbun no ichi zu, Maps Index", - "dc_description_s": "This polygon shapefile is an index to 1:100,000 scale topographic maps of Northern China, titled 'Yōzu (Kūchū shashin sokuryō) Kita Shina jūmanbun no ichi zu.' This map series was originally produced by the Japanese Land Survey Department of the General Staff Headquarters between 1940 and 1944. Stanford University Libraries holds a large collection of Japanese military and imperial maps, referred to as gaihōzu, or \"maps of outer lands.\" These maps were produced starting in the early Meiji (1868-1912) era and the end of World War II by the Land Survey Department of the General Staff Headquarters, the former Japanese Army. The Library is in the process of scanning and making available all of the maps in the collection. To create this index, footprints were generated using the fishnet tool, and metadata were supplied for the digitized paper maps by Stanford University Libraries. After the footprints were created, the shapefile was trimmed and labeled according to the sources.This layer provides an index map that can be used to locate individual scanned map sheets.", - "dc_rights_s": "Public", - "dct_provenance_s": "Stanford", - "dct_references_s": "{\"http://schema.org/url\":\"http://purl.stanford.edu/vj008bs4183\",\"http://schema.org/downloadUrl\":\"http://stacks.stanford.edu/file/druid:vj008bs4183/data.zip\",\"http://www.loc.gov/mods/v3\":\"http://purl.stanford.edu/vj008bs4183.mods\",\"http://www.isotc211.org/schemas/2005/gmd/\":\"http://opengeometadata.stanford.edu/metadata/edu.stanford.purl/druid:vj008bs4183/iso19139.xml\",\"http://www.w3.org/1999/xhtml\":\"http://opengeometadata.stanford.edu/metadata/edu.stanford.purl/druid:vj008bs4183/default.html\",\"http://www.opengis.net/def/serviceType/ogc/wfs\":\"https://geowebservices.stanford.edu/geoserver/wfs\",\"http://www.opengis.net/def/serviceType/ogc/wms\":\"https://geowebservices.stanford.edu/geoserver/wms\"}", - "layer_id_s": "druid:vj008bs4183", - "layer_slug_s": "stanford-vj008bs4183", - "layer_geom_type_s": "Polygon", - "layer_modified_dt": "2016-07-08T16:08:20Z", - "dc_format_s": "Shapefile", - "dc_language_s": "English", - "dc_type_s": "Dataset", - "dc_publisher_s": "Stanford Digital Repository", - "dc_creator_sm": [ - "Stanford Geospatial Center" + "dct_identifier_sm": ["http://purl.stanford.edu/vj008bs4183"], + "dct_title_s": "Yōzu (Kūchū shashin sokuryō) Kita Shina jūmanbun no ichi zu, Maps Index", + "dct_description_sm": [ + "This polygon shapefile is an index to 1:100,000 scale topographic maps of Northern China, titled 'Yōzu (Kūchū shashin sokuryō) Kita Shina jūmanbun no ichi zu.' This map series was originally produced by the Japanese Land Survey Department of the General Staff Headquarters between 1940 and 1944. Stanford University Libraries holds a large collection of Japanese military and imperial maps, referred to as gaihōzu, or \"maps of outer lands.\" These maps were produced starting in the early Meiji (1868-1912) era and the end of World War II by the Land Survey Department of the General Staff Headquarters, the former Japanese Army. The Library is in the process of scanning and making available all of the maps in the collection. To create this index, footprints were generated using the fishnet tool, and metadata were supplied for the digitized paper maps by Stanford University Libraries. After the footprints were created, the shapefile was trimmed and labeled according to the sources.This layer provides an index map that can be used to locate individual scanned map sheets." ], - "dc_subject_sm": [ + "dct_accessRights_s": "Public", + "schema_provider_s": "Stanford", + "dct_references_s": "{\"http://schema.org/url\":\"http://purl.stanford.edu/vj008bs4183\",\"http://schema.org/downloadUrl\":\"http://stacks.stanford.edu/file/druid:vj008bs4183/data.zip\",\"http://www.loc.gov/mods/v3\":\"http://purl.stanford.edu/vj008bs4183.mods\",\"http://www.isotc211.org/schemas/2005/gmd/\":\"http://opengeometadata.stanford.edu/metadata/edu.stanford.purl/druid:vj008bs4183/iso19139.xml\",\"http://www.w3.org/1999/xhtml\":\"http://opengeometadata.stanford.edu/metadata/edu.stanford.purl/druid:vj008bs4183/default.html\",\"http://www.opengis.net/def/serviceType/ogc/wfs\":\"https://geowebservices.stanford.edu/geoserver/wfs\",\"http://www.opengis.net/def/serviceType/ogc/wms\":\"https://geowebservices.stanford.edu/geoserver/wms\"}", + "gbl_wxsIdentifier_s": "druid:vj008bs4183", + "id": "stanford-vj008bs4183", + "gbl_mdModified_dt": "2016-07-08T16:08:20Z", + "dct_format_s": "Shapefile", + "dct_language_sm": ["eng"], + "dct_publisher_sm": ["Stanford Digital Repository"], + "dct_creator_sm": ["Stanford Geospatial Center"], + "dct_subject_sm": [ "Grids (Cartography)", "Index maps", "World War, 1939-1945", @@ -26,13 +23,12 @@ "Boundaries", "Military" ], - "dct_temporal_sm": [ - "1940-1944" - ], - "dct_spatial_sm": [ - "China" - ], - "solr_geom": "ENVELOPE(108.000122, 116.500122, 41.666687, 39.000122)", - "solr_year_i": 1940, - "stanford_rights_metadata_s": "\n\n \n \n \n \n \n \n \n \n \n \n \n This item is in the public domain. There are no restrictions on use.\n \n \n \n \n This work is in the Public Domain, meaning that it is not subject to copyright.\n \n\n" -} \ No newline at end of file + "dct_temporal_sm": ["1940-1944"], + "dct_spatial_sm": ["China"], + "dcat_bbox": "ENVELOPE(108.000122, 116.500122, 41.666687, 39.000122)", + "locn_geometry": "ENVELOPE(108.000122, 116.500122, 41.666687, 39.000122)", + "gbl_indexYear_im": [1940], + "gbl_resourceClass_sm": ["Datasets"], + "gbl_resourceType_sm": ["Polygon data"], + "gbl_mdVersion_s": "Aardvark" +} diff --git a/spec/fixtures/solr_documents/stanford_odbl.json b/spec/fixtures/solr_documents/stanford_odbl.json index f599603b..be2fb146 100644 --- a/spec/fixtures/solr_documents/stanford_odbl.json +++ b/spec/fixtures/solr_documents/stanford_odbl.json @@ -1,39 +1,44 @@ { - "uuid": "http://purl.stanford.edu/cj936rq6257", - "dc_identifier_s": "http://purl.stanford.edu/cj936rq6257", - "dc_title_s": "Vasserot Arrondissements (1810-1836)", - "dc_description_s": "This polygon shapefile contains the boundaries of 12 arrondissements in Paris, France, as represented in Philibert Vasserot's Atlas of Paris (1810-1836). This layer covers the whole of Paris (including the Seine) up to the boundary of the Farmers General.The ALPAGE programme aims to provide collaborative tools for the Humanities and Social Sciences and for Information Communication Technology (ICT) allowing for the development of research about the Parisian urban area. This aim is achieved by means of a GIS that includes cadastral and historical layers.", - "dc_rights_s": "Public", - "dct_provenance_s": "Stanford", - "dct_references_s": "{\"http://schema.org/url\":\"http://purl.stanford.edu/cj936rq6257\",\"http://schema.org/downloadUrl\":\"http://stacks.stanford.edu/file/druid:cj936rq6257/data.zip\",\"http://www.loc.gov/mods/v3\":\"http://purl.stanford.edu/cj936rq6257.mods\",\"http://www.isotc211.org/schemas/2005/gmd/\":\"http://opengeometadata.stanford.edu/metadata/edu.stanford.purl/druid:cj936rq6257/iso19139.xml\",\"http://www.w3.org/1999/xhtml\":\"http://opengeometadata.stanford.edu/metadata/edu.stanford.purl/druid:cj936rq6257/default.html\",\"http://www.opengis.net/def/serviceType/ogc/wfs\":\"https://geowebservices.stanford.edu/geoserver/wfs\",\"http://www.opengis.net/def/serviceType/ogc/wms\":\"https://geowebservices.stanford.edu/geoserver/wms\"}", - "layer_id_s": "druid:cj936rq6257", - "layer_slug_s": "stanford-cj936rq6257", - "layer_geom_type_s": "Polygon", - "layer_modified_dt": "2017-08-31T20:45:43Z", - "dc_format_s": "Shapefile", - "dc_language_s": "English", - "dc_type_s": "Dataset", - "dc_publisher_s": "Analyse Diachronique de l'espace Urbain Parisien: Approche Geomatique", - "dc_creator_sm": [ - "Bethe, Anne-Laure" + "id": ["stanford-cj936rq6257"], + "dct_title_s": "Vasserot Arrondissements (1810-1836)", + "dct_description_sm": [ + "This polygon shapefile contains the boundaries of 12 arrondissements in Paris, France, as represented in Philibert Vasserot's Atlas of Paris (1810-1836). This layer covers the whole of Paris (including the Seine) up to the boundary of the Farmers General.", + "The ALPAGE programme aims to provide collaborative tools for the Humanities and Social Sciences and for Information Communication Technology (ICT) allowing for the development of research about the Parisian urban area. This aim is achieved by means of a GIS that includes cadastral and historical layers.", + "This data is a direct result of the work of the researchers from the ALPAGE consortium who released this data under an Open Data Commons Open Database Licence (ODbL). Therefore, use of this data by others must respect the legal requirements specific to this licence. All freely downloadable data contains the shapefiles, metadata file and licence files describing the users rights and responsibilities. All data produced within the consortium is published in this way with the exception of any ongoing work which is in process of academic evaluation (masters, doctoral thesis, habilitation to supervise research).", + "This layer is presented in the WGS84 coordinate system for web display purposes. Downloadable data are provided in native coordinate system or projection." ], - "dc_subject_sm": [ - "Administrative and political divisions", - "Boundaries" + "dct_language_sm": ["fre"], + "dct_creator_sm": ["Bethe, Anne-Laure"], + "dct_publisher_sm": [ + "Analyse Diachronique de l'espace Urbain Parisien: Approche Geomatique" ], "dct_issued_s": "2015", - "dct_temporal_sm": [ - "1810-1836" + "dct_subject_sm": ["Administrative and political divisions", "Boundaries"], + "dct_spatial_sm": ["Paris (France)"], + "dcat_theme_sm": ["Boundaries"], + "dct_temporal_sm": ["1810-1836"], + "gbl_dateRange_drsim": ["[1810 TO 1836]"], + "gbl_indexYear_im": [ + 1810, 1811, 1812, 1813, 1814, 1815, 1816, 1817, 1818, 1819, 1820, 1821, + 1822, 1823, 1824, 1825, 1826, 1827, 1828, 1829, 1830, 1831, 1832, 1833, + 1834, 1835, 1836 ], - "dct_spatial_sm": [ - "Paris (France)" + "schema_provider_s": "Stanford", + "dct_identifier_sm": ["https://purl.stanford.edu/cj936rq6257"], + "gbl_resourceClass_sm": ["Datasets"], + "gbl_resourceType_sm": ["Polygon data"], + "dct_format_s": "Shapefile", + "locn_geometry": "ENVELOPE(2.287239, 2.402833, 48.884585, 48.829617)", + "dcat_bbox": "ENVELOPE(2.287239, 2.402833, 48.884585, 48.829617)", + "pcdm_memberOf_sm": ["stanford-zp399nk6394"], + "dct_rights_sm": [ + "This data is a direct result of the work of the researchers from the ALPAGE consortium who released this data under an Open Data Commons Open Database Licence (ODbL). Therefore, use of this data by others must respect the legal requirements specific to this licence. All freely downloadable data contains the shapefiles, metadata file and licence files describing the users rights and responsibilities. All data produced within the consortium is published in this way with the exception of any ongoing work which is in process of academic evaluation (masters, doctoral thesis, habilitation to supervise research)." ], - "dc_relation_sm": [ - "http://sws.geonames.org/2988507/" - ], - "georss_box_s": "48.829617 2.287239 48.884585 2.402833", - "georss_polygon_s": "48.829617 2.287239 48.884585 2.287239 48.884585 2.402833 48.829617 2.402833 48.829617 2.287239", - "solr_geom": "ENVELOPE(2.287239, 2.402833, 48.884585, 48.829617)", - "solr_year_i": 1810, - "stanford_rights_metadata_s": "\n\n \n \n \n \n \n \n \n \n \n \n \n Open Data Commons Open Database License 1.0\n odc-odbl\n This data is a direct result of the work of the researchers from the ALPAGE consortium who released this data under an Open Data Commons Open Database Licence (ODbL). Therefore, use of this data by others must respect the legal requirements specific to this licence. All freely downloadable data contains the shapefiles, metadata file and licence files describing the users rights and responsibilities. All data produced within the consortium is published in this way with the exception of any ongoing work which is in process of academic evaluation (masters, doctoral thesis, habilitation to supervise research).\n \n \n Copyright resides with the originator.\n \n\n" + "dct_rightsHolder_sm": ["Copyright resides with the originator."], + "dct_license_sm": ["https://opendatacommons.org/licenses/odbl/1-0/"], + "dct_accessRights_s": "Public", + "gbl_mdModified_dt": "2022-04-27T03:24:46Z", + "gbl_mdVersion_s": "Aardvark", + "gbl_wxsIdentifier_s": "druid:cj936rq6257", + "dct_references_s": "{\"http://schema.org/url\":\"https://purl.stanford.edu/cj936rq6257\",\"http://schema.org/downloadUrl\":\"https://stacks.stanford.edu/object/cj936rq6257\",\"https://oembed.com\":\"https://purl.stanford.edu/embed.json?hide_title=true\\u0026url=https%3A%2F%2Fpurl.stanford.edu%2Fcj936rq6257\",\"http://www.opengis.net/def/serviceType/ogc/wms\":\"https://geowebservices.stanford.edu/geoserver/wms\",\"http://www.opengis.net/def/serviceType/ogc/wfs\":\"https://geowebservices.stanford.edu/geoserver/wfs\"}" } diff --git a/spec/integration/external-data/author_search_spec.rb b/spec/integration/external-data/author_search_spec.rb deleted file mode 100644 index 34e3c6cd..00000000 --- a/spec/integration/external-data/author_search_spec.rb +++ /dev/null @@ -1,13 +0,0 @@ -require 'rails_helper' - -describe 'Author search', :'data-integration', :feature do - it 'returns 1 result for pinsky' do - visit root_path - fill_in 'q', with: 'pinsky' - click_on 'search' - expect(page).to have_css '.document', count: 1 - within '.document' do - expect(page).to have_link 'Abundance Estimates of the Pacific Salmon Conservation Assessment Database, 1978-2008' - end - end -end diff --git a/spec/integration/external-data/geo_search_spec.rb b/spec/integration/external-data/geo_search_spec.rb deleted file mode 100644 index 93a0b1f2..00000000 --- a/spec/integration/external-data/geo_search_spec.rb +++ /dev/null @@ -1,9 +0,0 @@ -require 'rails_helper' - -describe 'Spatial search', :'data-integration', :feature do - it 'isWithin should be more relevant' do - visit search_catalog_path(q: 'road', bbox: '61.34 2.11 92 40.45') - expect(page).to have_css 'h3.index_title', text: '1. Roads: Badakhshān Pr' \ - 'ovince, Afghanistan, 2005' - end -end diff --git a/spec/jobs/check_layer_job_spec.rb b/spec/jobs/check_layer_job_spec.rb index c4e34ba2..e6595a69 100644 --- a/spec/jobs/check_layer_job_spec.rb +++ b/spec/jobs/check_layer_job_spec.rb @@ -1,6 +1,6 @@ require 'rails_helper' -RSpec.describe CheckLayerJob do +RSpec.describe CheckLayerJob, skip: 'needs GBLv4 compatibility' do context 'when in Solr index' do let(:layer) { create(:layer, slug: 'tufts-cambridgegrid100-04', checktype: 'WMS') } diff --git a/spec/lib/earthworks/harvester_spec.rb b/spec/lib/earthworks/harvester_spec.rb index 03c7e6c5..e0485cd7 100644 --- a/spec/lib/earthworks/harvester_spec.rb +++ b/spec/lib/earthworks/harvester_spec.rb @@ -11,8 +11,8 @@ let(:ogm_path) { 'tmp/ogm' } let(:ogm_repos) do { - 'edu.princeton.arks' => { provenance: 'Princeton' }, - 'edu.psu' => { provenance: 'Penn State' } + 'edu.princeton.arks' => { provider: 'Princeton' }, + 'edu.psu' => { provider: 'Penn State' } } end @@ -60,11 +60,11 @@ describe '#docs_to_index' do # Provenance value will be transformed by our ogm_repos config - let(:psu_doc) { { dct_provenance_s: 'Pennsylvania State University', geoblacklight_version: '1.0' }.to_json } + let(:psu_doc) { { schema_provider_s: 'Pennsylvania State University', geoblacklight_version: '1.0' }.to_json } let(:psu_path) { "#{ogm_path}/edu.psu/metadata-1.0/Maps/08d-01/geoblacklight.json" } # PolicyMap records have placeholder data and should be skipped - let(:policymap_doc) { { dct_provenance_s: 'Geoblacklight', geoblacklight_version: '1.0' }.to_json } + let(:policymap_doc) { { schema_provider_s: 'Geoblacklight', geoblacklight_version: '1.0' }.to_json } let(:policymap_path) { "#{ogm_path}/shared-repository/gbl-policymap/records/geoblacklight.json" } before do @@ -81,7 +81,7 @@ it 'supports transforming arbitrary records' do docs = harvester.docs_to_index.to_a - expect(docs.first.first['dct_provenance_s']).to eq('Penn State') + expect(docs.first.first['schema_provider_s']).to eq('Penn State') end end end diff --git a/spec/models/concerns/geomonitor_concern_spec.rb b/spec/models/concerns/geomonitor_concern_spec.rb index f2428efb..55fd8985 100644 --- a/spec/models/concerns/geomonitor_concern_spec.rb +++ b/spec/models/concerns/geomonitor_concern_spec.rb @@ -1,33 +1,33 @@ require 'rails_helper' -describe GeomonitorConcern do +RSpec.describe GeomonitorConcern, skip: 'needs GBLv4 compatibility' do let(:document) { SolrDocument.new(document_attributes) } describe 'available?' do describe 'for Stanford resources' do let(:document_attributes) do { - dct_provenance_s: 'Stanford', - dc_rights_s: 'Restricted' + schema_provider_s: 'Stanford', + dct_accessRights_s: 'Restricted' } end it 'calls super logic' do - expect(document.available?).to be_truthy + expect(document.available?).to be true end end describe 'for resources less than threshold tolerance' do let(:document_attributes) do { - dct_provenance_s: 'Harvard', - dc_rights_s: 'Restricted', + schema_provider_s: 'Harvard', + dct_accessRights_s: 'Restricted', layer_availability_score_f: 0.6 } end it 'is not avilable' do - expect(document.available?).to be_falsey + expect(document.available?).to be false end end end @@ -36,7 +36,7 @@ let(:document_attributes) { {} } it 'no score present' do - expect(document.score_meets_threshold?).to be_truthy + expect(document.score_meets_threshold?).to be true end end end diff --git a/spec/models/concerns/wms_rewrite_concern_spec.rb b/spec/models/concerns/wms_rewrite_concern_spec.rb index d5d22175..05ac356c 100644 --- a/spec/models/concerns/wms_rewrite_concern_spec.rb +++ b/spec/models/concerns/wms_rewrite_concern_spec.rb @@ -7,8 +7,8 @@ describe 'for stanford restricted' do let(:document_attributes) do { - dct_provenance_s: 'Stanford', - dc_rights_s: 'Restricted', + schema_provider_s: 'Stanford', + dct_accessRights_s: 'Restricted', dct_references_s: { 'http://www.opengis.net/def/serviceType/ogc/wms' => 'http://www.example.com/geoserver/wms' }.to_json @@ -23,8 +23,8 @@ describe 'for not stanford or public' do let(:document_attributes) do { - dct_provenance_s: 'Princeton', - dc_rights_s: 'Restricted', + schema_provider_s: 'Princeton', + dct_accessRights_s: 'Restricted', dct_references_s: { 'http://www.opengis.net/def/serviceType/ogc/wms' => 'http://www.example.com/geoserver/wms' }.to_json @@ -37,27 +37,9 @@ end end - describe 'is_stanford_restricted?' do - describe 'for Stanford and Restricted' do - let(:document_attributes) { { dct_provenance_s: 'Stanford', dc_rights_s: 'Restricted' } } - - it 'identifies restricted stanford documents' do - expect(document.is_stanford_restricted?).to be_truthy - end - end - - describe 'for Stanford public' do - let(:document_attributes) { { dct_provenance_s: 'Stanford', dc_rights_s: 'Public' } } - - it 'requires both conditions' do - expect(document.is_stanford_restricted?).to be_falsey - end - end - end - describe 'stanford?' do describe 'for stanford' do - let(:document_attributes) { { dct_provenance_s: 'Stanford' } } + let(:document_attributes) { { schema_provider_s: 'Stanford' } } it 'identifies stanford documents' do expect(document.stanford?).to be_truthy @@ -65,7 +47,7 @@ end describe 'for non stanford' do - let(:document_attributes) { { dct_provenance_s: 'Princeton' } } + let(:document_attributes) { { schema_provider_s: 'Princeton' } } it 'identifies stanford documents' do expect(document.stanford?).to be_falsey diff --git a/spec/models/search_builder_spec.rb b/spec/models/search_builder_spec.rb deleted file mode 100644 index 6b764532..00000000 --- a/spec/models/search_builder_spec.rb +++ /dev/null @@ -1,72 +0,0 @@ -require 'rails_helper' - -describe SearchBuilder do - subject { search_builder.with(user_params) } - - let(:user_params) { {} } - let(:solr_params) { {} } - let(:blacklight_config) { CatalogController.blacklight_config.deep_copy } - let(:context) { CatalogController.new } - - let(:search_builder) { described_class.new(context) } - - describe '#add_spatial_params' do - it 'returns the solr_params when no bbox is given' do - expect(subject.add_spatial_params(solr_params)).to eq solr_params - end - - it 'returns a spatial search if bbox is given' do - params = { bbox: '-180 -80 120 80' } - subject.with(params) - expect(subject.add_spatial_params(solr_params)[:fq].to_s) - .to include('Intersects') - expect(subject.add_spatial_params(solr_params)[:bq].to_s) - .to match(/.*IsWithin.*\^300/) - end - end - - describe '#add_featured_content' do - context 'scanned maps' do - it do - params = { featured: 'scanned_maps' } - subject.with(params) - expect(subject.add_featured_content(solr_params)[:fq]).to eq [ - 'layer_geom_type_s:Image OR layer_geom_type_s:"Paper Map"' - ] - end - end - - context 'geospatial data' do - it do - params = { featured: 'geospatial_data' } - subject.with(params) - expect(subject.add_featured_content(solr_params)[:fq]).to eq [ - '-layer_geom_type_s:Image AND -layer_geom_type_s:"Paper Map" AND -la' \ - 'yer_geom_type_s:Mixed AND -layer_geom_type_s:Table' - ] - end - end - - context 'census data' do - it do - params = { featured: 'census_data' } - subject.with(params) - expect(subject.add_featured_content(solr_params)[:fq]).to eq [ - 'dc_title_ti:census OR dc_description_ti:census OR dc_publisher_ti:c' \ - 'ensus OR dc_subject_tmi:census' - ] - end - end - - context 'california data' do - it do - params = { featured: 'california_data' } - subject.with(params) - expect(subject.add_featured_content(solr_params)[:fq]).to eq [ - 'dc_title_ti:california OR dc_description_ti:california OR dc_publis' \ - 'her_ti:california OR dc_subject_tmi:california' - ] - end - end - end -end