geoblacklight 4.4.2 → 5.0.0.pre.alpha.11
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.github/workflows/build-demo-app.yml +153 -0
- data/.github/workflows/prune-containers.yml +19 -0
- data/.github/workflows/ruby.yml +54 -52
- data/.gitignore +2 -2
- data/CONTRIBUTING.md +62 -44
- data/Gemfile +3 -28
- data/Rakefile +42 -67
- data/app/assets/images/blacklight/logo.svg +31 -1
- data/app/assets/stylesheets/geoblacklight/geoblacklight.scss +1 -2
- data/app/assets/stylesheets/geoblacklight/modules/_base.scss +1 -1
- data/app/assets/stylesheets/geoblacklight/modules/_blacklight_overrides.scss +24 -26
- data/app/assets/stylesheets/geoblacklight/modules/downloads.scss +13 -0
- data/app/assets/stylesheets/geoblacklight/modules/home.scss +2 -17
- data/app/assets/stylesheets/geoblacklight/modules/icon-customization.scss +48 -23
- data/app/assets/stylesheets/geoblacklight/modules/index_maps.scss +1 -15
- data/app/assets/stylesheets/geoblacklight/modules/item.scss +13 -11
- data/app/assets/stylesheets/geoblacklight/modules/layer_opacity.scss +3 -3
- data/app/assets/stylesheets/geoblacklight/modules/leaflet.scss +4 -0
- data/app/assets/stylesheets/geoblacklight/modules/modal.scss +0 -15
- data/app/assets/stylesheets/geoblacklight/modules/results.scss +10 -19
- data/app/assets/stylesheets/geoblacklight/modules/sidebar.scss +2 -2
- data/app/components/blacklight/icons/american_geographical_society_library_uwm_libraries_component.rb +46 -0
- data/app/components/blacklight/icons/arizona_component.rb +24 -0
- data/app/components/blacklight/icons/arrow_circle_down_component.rb +23 -0
- data/app/components/blacklight/icons/baruch_cuny_component.rb +23 -0
- data/app/components/blacklight/icons/book_component.rb +23 -0
- data/app/components/blacklight/icons/bookmark_component.rb +23 -0
- data/app/components/blacklight/icons/cd_rom_component.rb +23 -0
- data/app/components/blacklight/icons/child_item_component.rb +23 -0
- data/app/components/blacklight/icons/circle_info_solid_component.rb +23 -0
- data/app/components/blacklight/icons/citation_component.rb +23 -0
- data/app/components/blacklight/icons/collection_component.rb +23 -0
- data/app/components/blacklight/icons/collections_component.rb +24 -0
- data/app/components/blacklight/icons/columbia_component.rb +23 -0
- data/app/components/blacklight/icons/cornell_component.rb +25 -0
- data/app/components/blacklight/icons/datasets_component.rb +27 -0
- data/app/components/blacklight/icons/dvd_rom_component.rb +23 -0
- data/app/components/blacklight/icons/email_component.rb +23 -0
- data/app/components/blacklight/icons/esri_globe_component.rb +51 -0
- data/app/components/blacklight/icons/fire_solid_component.rb +23 -0
- data/app/components/blacklight/icons/george_mason_component.rb +24 -0
- data/app/components/blacklight/icons/globe_component.rb +23 -0
- data/app/components/blacklight/icons/harvard_component.rb +23 -0
- data/app/components/blacklight/icons/home_component.rb +23 -0
- data/app/components/blacklight/icons/iiif_drag_drop_component.rb +31 -0
- data/app/components/blacklight/icons/image_component.rb +23 -0
- data/app/components/blacklight/icons/imagery_component.rb +24 -0
- data/app/components/blacklight/icons/indiana_component.rb +23 -0
- data/app/components/blacklight/icons/leaf_component.rb +23 -0
- data/app/components/blacklight/icons/lewis_clark_component.rb +25 -0
- data/app/components/blacklight/icons/lightbulb_solid_component.rb +23 -0
- data/app/components/blacklight/icons/line_component.rb +24 -0
- data/app/components/blacklight/icons/map_component.rb +23 -0
- data/app/components/blacklight/icons/map_marker_component.rb +23 -0
- data/app/components/blacklight/icons/maps_component.rb +24 -0
- data/app/components/blacklight/icons/massgis_component.rb +23 -0
- data/app/components/blacklight/icons/metadata_component.rb +23 -0
- data/app/components/blacklight/icons/michigan_state_university_component.rb +25 -0
- data/app/components/blacklight/icons/mit_component.rb +23 -0
- data/app/components/blacklight/icons/mixed_component.rb +25 -0
- data/app/components/blacklight/icons/multilinestring_component.rb +26 -0
- data/app/components/blacklight/icons/multipoint_component.rb +23 -0
- data/app/components/blacklight/icons/multipolygon_component.rb +26 -0
- data/app/components/blacklight/icons/northwestern_university_component.rb +24 -0
- data/app/components/blacklight/icons/nyu_component.rb +26 -0
- data/app/components/blacklight/icons/pagelines_brands_component.rb +23 -0
- data/app/components/blacklight/icons/paper_map_component.rb +23 -0
- data/app/components/blacklight/icons/parent_item_component.rb +23 -0
- data/app/components/blacklight/icons/pennsylvania_state_university_component.rb +25 -0
- data/app/components/blacklight/icons/point_component.rb +23 -0
- data/app/components/blacklight/icons/polygon_component.rb +24 -0
- data/app/components/blacklight/icons/polyline_component.rb +26 -0
- data/app/components/blacklight/icons/princeton_component.rb +23 -0
- data/app/components/blacklight/icons/public_component.rb +23 -0
- data/app/components/blacklight/icons/purdue_university_component.rb +25 -0
- data/app/components/blacklight/icons/raster_component.rb +23 -0
- data/app/components/blacklight/icons/restricted_component.rb +23 -0
- data/app/components/blacklight/icons/rutgers_component.rb +25 -0
- data/app/components/blacklight/icons/sms_component.rb +23 -0
- data/app/components/blacklight/icons/stanford_component.rb +23 -0
- data/app/components/blacklight/icons/table_component.rb +23 -0
- data/app/components/blacklight/icons/tags_component.rb +23 -0
- data/app/components/blacklight/icons/texas_component.rb +23 -0
- data/app/components/blacklight/icons/the_ohio_state_university_component.rb +26 -0
- data/app/components/blacklight/icons/triangle_exclamation_solid_component.rb +23 -0
- data/app/components/blacklight/icons/tufts_component.rb +23 -0
- data/app/components/blacklight/icons/ucla_component.rb +23 -0
- data/app/components/blacklight/icons/university_of_california_berkeley_component.rb +24 -0
- data/app/components/blacklight/icons/university_of_chicago_component.rb +25 -0
- data/app/components/blacklight/icons/university_of_colorado_boulder_component.rb +26 -0
- data/app/components/blacklight/icons/university_of_illinois_urbana_champaign_component.rb +25 -0
- data/app/components/blacklight/icons/university_of_iowa_component.rb +24 -0
- data/app/components/blacklight/icons/university_of_maryland_component.rb +24 -0
- data/app/components/blacklight/icons/university_of_michigan_component.rb +24 -0
- data/app/components/blacklight/icons/university_of_minnesota_component.rb +24 -0
- data/app/components/blacklight/icons/university_of_nebraska_lincoln_component.rb +27 -0
- data/app/components/blacklight/icons/university_of_wisconsin_madison_component.rb +24 -0
- data/app/components/blacklight/icons/uva_component.rb +23 -0
- data/app/components/blacklight/icons/web_services_component.rb +23 -0
- data/app/components/blacklight/icons/websites_component.rb +24 -0
- data/app/components/geoblacklight/arcgis_component.html.erb +3 -0
- data/app/components/geoblacklight/arcgis_component.rb +25 -0
- data/app/components/geoblacklight/attribute_table_component.html.erb +17 -0
- data/app/components/geoblacklight/attribute_table_component.rb +17 -0
- data/app/components/geoblacklight/data_dictionary_download_component.html.erb +3 -0
- data/app/components/geoblacklight/data_dictionary_download_component.rb +16 -0
- data/app/components/geoblacklight/display_note_component.rb +1 -1
- data/app/components/geoblacklight/document/citation_component.html.erb +1 -0
- data/app/components/geoblacklight/document/citation_component.rb +19 -0
- data/app/components/geoblacklight/document/sidebar_component.html.erb +12 -0
- data/app/components/geoblacklight/document/sidebar_component.rb +8 -0
- data/app/components/geoblacklight/document_component.html.erb +43 -0
- data/app/components/geoblacklight/document_component.rb +6 -0
- data/app/components/geoblacklight/download_links_component.html.erb +31 -0
- data/app/components/geoblacklight/download_links_component.rb +80 -0
- data/app/components/geoblacklight/header_component.html.erb +14 -0
- data/app/components/geoblacklight/header_component.rb +9 -0
- data/app/components/geoblacklight/header_icons_component.html.erb +3 -0
- data/app/components/geoblacklight/header_icons_component.rb +29 -0
- data/app/components/geoblacklight/iiif_drag_drop_component.html.erb +3 -0
- data/app/components/geoblacklight/iiif_drag_drop_component.rb +16 -0
- data/app/components/geoblacklight/index_map_inspect_component.rb +15 -0
- data/app/components/geoblacklight/index_map_legend_component.html.erb +14 -0
- data/app/components/geoblacklight/index_map_legend_component.rb +17 -0
- data/app/components/geoblacklight/item_map_viewer_component.html.erb +1 -0
- data/app/components/geoblacklight/item_map_viewer_component.rb +87 -0
- data/app/components/geoblacklight/location_leaflet_map_component.html.erb +1 -0
- data/app/components/geoblacklight/location_leaflet_map_component.rb +49 -0
- data/app/components/geoblacklight/login_link_component.html.erb +5 -0
- data/app/components/geoblacklight/login_link_component.rb +17 -0
- data/app/components/geoblacklight/relations_component.html.erb +23 -0
- data/app/components/geoblacklight/relations_component.rb +25 -0
- data/app/components/geoblacklight/search_result_component.html.erb +44 -0
- data/app/{presenters/geoblacklight/document_presenter.rb → components/geoblacklight/search_result_component.rb} +9 -6
- data/app/components/geoblacklight/static_map_component.html.erb +9 -0
- data/app/components/geoblacklight/static_map_component.rb +36 -0
- data/app/components/geoblacklight/viewer_help_text_component.html.erb +1 -0
- data/app/components/geoblacklight/viewer_help_text_component.rb +46 -0
- data/app/components/geoblacklight/web_services_component.html.erb +1 -0
- data/app/components/geoblacklight/web_services_component.rb +26 -0
- data/app/{views/catalog/_web_services_default.html.erb → components/geoblacklight/web_services_default_component.html.erb} +3 -5
- data/app/components/geoblacklight/web_services_default_component.rb +11 -0
- data/app/components/geoblacklight/web_services_link_component.html.erb +3 -0
- data/app/components/geoblacklight/web_services_link_component.rb +22 -0
- data/app/{views/catalog/_web_services_wfs.html.erb → components/geoblacklight/web_services_wfs_component.html.erb} +4 -7
- data/app/components/geoblacklight/web_services_wfs_component.rb +12 -0
- data/app/components/geoblacklight/web_services_wms_component.html.erb +10 -0
- data/app/components/geoblacklight/web_services_wms_component.rb +12 -0
- data/app/controllers/download_controller.rb +8 -24
- data/app/helpers/geoblacklight_helper.rb +10 -194
- data/app/javascript/geoblacklight/controllers/clipboard_controller.js +11 -0
- data/app/javascript/geoblacklight/controllers/clover_viewer_controller.js +47 -0
- data/app/javascript/geoblacklight/controllers/downloads_controller.js +56 -0
- data/app/javascript/geoblacklight/controllers/leaflet_viewer_controller.js +217 -0
- data/app/javascript/geoblacklight/controllers/oembed_viewer_controller.js +18 -0
- data/app/javascript/geoblacklight/controllers/openlayers_viewer_controller.js +63 -0
- data/app/javascript/geoblacklight/controllers/search_results_controller.js +50 -0
- data/app/javascript/geoblacklight/core.js +69 -0
- data/app/javascript/geoblacklight/index.js +29 -0
- data/app/javascript/geoblacklight/initializers/metadata_download.js +54 -0
- data/app/javascript/geoblacklight/initializers/popovers.js +11 -0
- data/app/javascript/geoblacklight/initializers/relations.js +40 -0
- data/app/javascript/geoblacklight/initializers/tooltips.js +55 -0
- data/app/javascript/geoblacklight/initializers/truncation.js +45 -0
- data/app/javascript/geoblacklight/leaflet/basemaps.js +74 -0
- data/app/javascript/geoblacklight/leaflet/constants.js +18 -0
- data/app/javascript/geoblacklight/leaflet/controls/geosearch.js +160 -0
- data/app/javascript/geoblacklight/leaflet/controls/layer_opacity.js +120 -0
- data/app/javascript/geoblacklight/leaflet/inspection.js +195 -0
- data/app/javascript/geoblacklight/leaflet/layer_index_map.js +120 -0
- data/app/javascript/geoblacklight/leaflet/layer_wmts.js +59 -0
- data/app/javascript/geoblacklight/leaflet/layers.js +153 -0
- data/app/javascript/geoblacklight/leaflet/utils.js +83 -0
- data/app/javascript/geoblacklight/openlayers/basemaps.js +47 -0
- data/app/javascript/geoblacklight/openlayers/layers.js +44 -0
- data/app/models/concerns/geoblacklight/solr_document/citation.rb +20 -8
- data/app/models/concerns/geoblacklight/solr_document.rb +22 -30
- data/app/presenters/geoblacklight/bbox_item_presenter.rb +1 -1
- data/app/views/catalog/_citation.html.erb +16 -33
- data/app/views/catalog/_document_split.html.erb +18 -3
- data/app/views/catalog/_home_text.html.erb +2 -2
- data/app/views/catalog/_metadata.html.erb +1 -1
- data/app/views/catalog/index.html.erb +8 -4
- data/app/views/catalog/metadata/_markup.html.erb +1 -1
- data/app/views/catalog/metadata.html.erb +14 -13
- data/app/views/catalog/web_services.html.erb +19 -28
- data/app/views/relation/index.html.erb +2 -12
- data/app/views/relation/index.json.jbuilder +1 -1
- data/compose.yml +14 -0
- data/config/importmap.rb +20 -0
- data/config/locales/geoblacklight.en.yml +15 -24
- data/geoblacklight.gemspec +7 -7
- data/lib/generators/geoblacklight/assets/importmap_generator.rb +87 -0
- data/lib/generators/geoblacklight/assets/vite_generator.rb +90 -0
- data/lib/generators/geoblacklight/assets_generator.rb +12 -37
- data/lib/generators/geoblacklight/install_generator.rb +11 -49
- data/lib/generators/geoblacklight/templates/assets/_customizations.scss +13 -19
- data/lib/generators/geoblacklight/templates/assets/application.js +17 -0
- data/lib/generators/geoblacklight/templates/assets/application.scss +9 -4
- data/lib/generators/geoblacklight/templates/assets/geoblacklight.scss +11 -0
- data/lib/generators/geoblacklight/templates/base.html.erb +9 -12
- data/lib/generators/geoblacklight/templates/catalog_controller.rb +7 -15
- data/lib/generators/geoblacklight/templates/demo-app/Dockerfile +31 -0
- data/lib/generators/geoblacklight/templates/demo-app/compose.yml +26 -0
- data/lib/generators/geoblacklight/templates/demo-app/start-server.sh +21 -0
- data/lib/generators/geoblacklight/templates/package.json +7 -1
- data/lib/generators/geoblacklight/templates/settings.yml +45 -40
- data/lib/generators/geoblacklight/templates/vite.config.ts +22 -7
- data/lib/geoblacklight/bounding_box.rb +16 -0
- data/lib/geoblacklight/constants.rb +0 -1
- data/lib/geoblacklight/download/csv_download.rb +22 -0
- data/lib/geoblacklight/download/geojson_download.rb +1 -1
- data/lib/geoblacklight/download/geotiff_download.rb +1 -1
- data/lib/geoblacklight/download/kmz_download.rb +1 -1
- data/lib/geoblacklight/download/shapefile_download.rb +1 -1
- data/lib/geoblacklight/download.rb +1 -1
- data/lib/geoblacklight/engine.rb +15 -6
- data/lib/geoblacklight/item_viewer.rb +1 -1
- data/lib/geoblacklight/metadata/base.rb +2 -1
- data/lib/geoblacklight/references.rb +27 -8
- data/lib/geoblacklight/routes/downloadable.rb +0 -1
- data/lib/geoblacklight/routes.rb +0 -3
- data/lib/geoblacklight/version.rb +1 -1
- data/lib/geoblacklight/wms_layer/feature_info_response.rb +9 -6
- data/lib/geoblacklight.rb +6 -30
- data/lib/tasks/geoblacklight.rake +24 -60
- data/package.json +24 -17
- data/solr/conf/schema.xml +15 -13
- data/solr/conf/solrconfig.xml +6 -4
- data/spec/components/blacklight/icons/american_geographical_society_library_uwm_libraries_component_spec.rb +15 -0
- data/spec/components/blacklight/icons/arizona_component_spec.rb +15 -0
- data/spec/components/blacklight/icons/arrow_circle_down_component_spec.rb +15 -0
- data/spec/components/blacklight/icons/baruch_cuny_component_spec.rb +15 -0
- data/spec/components/blacklight/icons/book_component_spec.rb +15 -0
- data/spec/components/blacklight/icons/bookmark_component_spec.rb +15 -0
- data/spec/components/blacklight/icons/cd_rom_component_spec.rb +15 -0
- data/spec/components/blacklight/icons/child_item_component_spec.rb +15 -0
- data/spec/components/blacklight/icons/circle_info_solid_component_spec.rb +15 -0
- data/spec/components/blacklight/icons/citation_component_spec.rb +15 -0
- data/spec/components/blacklight/icons/collection_component_spec.rb +15 -0
- data/spec/components/blacklight/icons/collections_component_spec.rb +15 -0
- data/spec/components/blacklight/icons/columbia_component_spec.rb +15 -0
- data/spec/components/blacklight/icons/cornell_component_spec.rb +15 -0
- data/spec/components/blacklight/icons/datasets_component_spec.rb +15 -0
- data/spec/components/blacklight/icons/dvd_rom_component_spec.rb +15 -0
- data/spec/components/blacklight/icons/email_component_spec.rb +15 -0
- data/spec/components/blacklight/icons/esri_globe_component_spec.rb +15 -0
- data/spec/components/blacklight/icons/fire_solid_component_spec.rb +15 -0
- data/spec/components/blacklight/icons/george_mason_component_spec.rb +15 -0
- data/spec/components/blacklight/icons/globe_component_spec.rb +15 -0
- data/spec/components/blacklight/icons/harvard_component_spec.rb +15 -0
- data/spec/components/blacklight/icons/home_component_spec.rb +15 -0
- data/spec/components/blacklight/icons/iiif_drag_drop_component_spec.rb +15 -0
- data/spec/components/blacklight/icons/image_component_spec.rb +15 -0
- data/spec/components/blacklight/icons/imagery_component_spec.rb +15 -0
- data/spec/components/blacklight/icons/indiana_component_spec.rb +15 -0
- data/spec/components/blacklight/icons/leaf_component_spec.rb +15 -0
- data/spec/components/blacklight/icons/lewis_clark_component_spec.rb +15 -0
- data/spec/components/blacklight/icons/lightbulb_solid_component_spec.rb +15 -0
- data/spec/components/blacklight/icons/line_component_spec.rb +15 -0
- data/spec/components/blacklight/icons/map_component_spec.rb +15 -0
- data/spec/components/blacklight/icons/map_marker_component_spec.rb +15 -0
- data/spec/components/blacklight/icons/maps_component_spec.rb +15 -0
- data/spec/components/blacklight/icons/massgis_component_spec.rb +15 -0
- data/spec/components/blacklight/icons/metadata_component_spec.rb +15 -0
- data/spec/components/blacklight/icons/michigan_state_university_component_spec.rb +15 -0
- data/spec/components/blacklight/icons/mit_component_spec.rb +15 -0
- data/spec/components/blacklight/icons/mixed_component_spec.rb +15 -0
- data/spec/components/blacklight/icons/multilinestring_component_spec.rb +15 -0
- data/spec/components/blacklight/icons/multipoint_component_spec.rb +15 -0
- data/spec/components/blacklight/icons/multipolygon_component_spec.rb +15 -0
- data/spec/components/blacklight/icons/northwestern_university_component_spec.rb +15 -0
- data/spec/components/blacklight/icons/nyu_component_spec.rb +15 -0
- data/spec/components/blacklight/icons/pagelines_brands_component_spec.rb +15 -0
- data/spec/components/blacklight/icons/paper_map_component_spec.rb +15 -0
- data/spec/components/blacklight/icons/parent_item_component_spec.rb +15 -0
- data/spec/components/blacklight/icons/pennsylvania_state_university_component_spec.rb +15 -0
- data/spec/components/blacklight/icons/point_component_spec.rb +15 -0
- data/spec/components/blacklight/icons/polygon_component_spec.rb +15 -0
- data/spec/components/blacklight/icons/polyline_component_spec.rb +15 -0
- data/spec/components/blacklight/icons/princeton_component_spec.rb +15 -0
- data/spec/components/blacklight/icons/public_component_spec.rb +15 -0
- data/spec/components/blacklight/icons/purdue_university_component_spec.rb +15 -0
- data/spec/components/blacklight/icons/raster_component_spec.rb +15 -0
- data/spec/components/blacklight/icons/restricted_component_spec.rb +15 -0
- data/spec/components/blacklight/icons/rutgers_component_spec.rb +15 -0
- data/spec/components/blacklight/icons/sms_component_spec.rb +15 -0
- data/spec/components/blacklight/icons/stanford_component_spec.rb +15 -0
- data/spec/components/blacklight/icons/table_component_spec.rb +15 -0
- data/spec/components/blacklight/icons/tags_component_spec.rb +15 -0
- data/spec/components/blacklight/icons/texas_component_spec.rb +15 -0
- data/spec/components/blacklight/icons/the_ohio_state_university_component_spec.rb +15 -0
- data/spec/components/blacklight/icons/triangle_exclamation_solid_component_spec.rb +15 -0
- data/spec/components/blacklight/icons/tufts_component_spec.rb +15 -0
- data/spec/components/blacklight/icons/ucla_component_spec.rb +15 -0
- data/spec/components/blacklight/icons/university_of_california_berkeley_component_spec.rb +15 -0
- data/spec/components/blacklight/icons/university_of_chicago_component_spec.rb +15 -0
- data/spec/components/blacklight/icons/university_of_colorado_boulder_component_spec.rb +15 -0
- data/spec/components/blacklight/icons/university_of_illinois_urbana_champaign_component_spec.rb +15 -0
- data/spec/components/blacklight/icons/university_of_iowa_component_spec.rb +15 -0
- data/spec/components/blacklight/icons/university_of_maryland_component_spec.rb +15 -0
- data/spec/components/blacklight/icons/university_of_michigan_component_spec.rb +15 -0
- data/spec/components/blacklight/icons/university_of_minnesota_component_spec.rb +15 -0
- data/spec/components/blacklight/icons/university_of_nebraska_lincoln_component_spec.rb +15 -0
- data/spec/components/blacklight/icons/university_of_wisconsin_madison_component_spec.rb +15 -0
- data/spec/components/blacklight/icons/uva_component_spec.rb +15 -0
- data/spec/components/blacklight/icons/web_services_component_spec.rb +15 -0
- data/spec/components/blacklight/icons/websites_component_spec.rb +15 -0
- data/spec/components/geoblacklight/arcgis_component_spec.rb +31 -0
- data/spec/components/geoblacklight/attribute_table_component_spec.rb +37 -0
- data/spec/components/geoblacklight/citation_component_spec.rb +37 -0
- data/spec/components/geoblacklight/document_component_spec.rb +92 -0
- data/spec/components/geoblacklight/download_links_component_spec.rb +102 -0
- data/spec/components/geoblacklight/header_icons_component_spec.rb +56 -0
- data/spec/components/geoblacklight/iiif_drag_drop_component_spec.rb +30 -0
- data/spec/components/geoblacklight/index_map_legend_component_spec.rb +42 -0
- data/spec/components/geoblacklight/item_map_viewer_component_spec.rb +36 -0
- data/spec/components/geoblacklight/login_link_component_spec.rb +33 -0
- data/spec/{lib/geoblacklight/document_presenter_spec.rb → components/geoblacklight/search_result_component_spec.rb} +19 -11
- data/spec/components/geoblacklight/static_map_component_spec.rb +22 -0
- data/spec/components/geoblacklight/viewer_help_text_component_spec.rb +28 -0
- data/spec/components/geoblacklight/web_services_component_spec.rb +45 -0
- data/spec/controllers/download_controller_spec.rb +12 -35
- data/spec/features/axe_spec.rb +66 -0
- data/spec/features/bookmarks_spec.rb +1 -1
- data/spec/features/citations_spec.rb +7 -3
- data/spec/features/download_layer_spec.rb +24 -39
- data/spec/features/esri_viewer_spec.rb +1 -1
- data/spec/features/exports_spec.rb +0 -15
- data/spec/features/{full_screen_controll_spec.rb → full_screen_control_spec.rb} +6 -6
- data/spec/features/home_page_spec.rb +12 -7
- data/spec/features/iiif_viewer_spec.rb +1 -1
- data/spec/features/index_map_spec.rb +16 -9
- data/spec/features/{split_view.html.erb_spec.rb → index_view_spec.rb} +15 -13
- data/spec/features/layer_inspection_spec.rb +2 -2
- data/spec/features/layer_preview_spec.rb +1 -1
- data/spec/features/missing_metadata_spec.rb +5 -5
- data/spec/features/oembed_spec.rb +2 -2
- data/spec/features/saved_searches_spec.rb +4 -1
- data/spec/features/search_results_complex_geometry_spec.rb +2 -2
- data/spec/features/search_results_icons_spec.rb +3 -3
- data/spec/features/search_results_map_spec.rb +4 -36
- data/spec/features/search_results_overlap_ratio_spec.rb +1 -1
- data/spec/features/show_page_download_spec.rb +0 -8
- data/spec/features/tilejson_spec.rb +2 -2
- data/spec/features/web_services_modal_spec.rb +57 -39
- data/spec/features/wmts_spec.rb +4 -4
- data/spec/fixtures/solr_documents/README.md +2 -1
- data/spec/fixtures/solr_documents/complex-geom.json +61 -0
- data/spec/fixtures/solr_documents/esri-tiled_map_layer.json +45 -24
- data/spec/fixtures/solr_documents/harvard_raster.json +1 -1
- data/spec/fixtures/solr_documents/multiple-downloads.json +1 -0
- data/spec/helpers/geoblacklight_helper_spec.rb +8 -173
- data/spec/lib/geoblacklight/download/csv_download_spec.rb +21 -0
- data/spec/lib/geoblacklight/reference_spec.rb +17 -19
- data/spec/lib/geoblacklight/references_spec.rb +31 -17
- data/spec/lib/geoblacklight/wms_layer/feature_info_response_spec.rb +8 -6
- data/spec/lib/geoblacklight/wms_layer_spec.rb +14 -0
- data/spec/models/concerns/geoblacklight/solr_document/citation_spec.rb +1 -1
- data/spec/models/concerns/geoblacklight/solr_document_spec.rb +1 -21
- data/spec/spec_helper.rb +2 -28
- data/spec/test_app_templates/lib/generators/test_app_generator.rb +4 -12
- data/template.rb +13 -11
- data/test/leaflet/layers.test.js +17 -0
- data/vite.config.ts +34 -23
- metadata +304 -256
- data/.hound.yml +0 -8
- data/.jshintignore +0 -2
- data/.jshintrc +0 -67
- data/.solr_wrapper +0 -6
- data/app/assets/images/blacklight/american-geographical-society-library-uwm-libraries.svg +0 -26
- data/app/assets/images/blacklight/arizona.svg +0 -4
- data/app/assets/images/blacklight/arrow-circle-down.svg +0 -3
- data/app/assets/images/blacklight/baruch-cuny.svg +0 -3
- data/app/assets/images/blacklight/book.svg +0 -3
- data/app/assets/images/blacklight/bookmark.svg +0 -3
- data/app/assets/images/blacklight/cd-rom.svg +0 -3
- data/app/assets/images/blacklight/chicago.svg +0 -4
- data/app/assets/images/blacklight/child-item.svg +0 -3
- data/app/assets/images/blacklight/circle-info-solid.svg +0 -1
- data/app/assets/images/blacklight/citation.svg +0 -3
- data/app/assets/images/blacklight/collection.svg +0 -3
- data/app/assets/images/blacklight/collections.svg +0 -4
- data/app/assets/images/blacklight/columbia.svg +0 -3
- data/app/assets/images/blacklight/cornell.svg +0 -5
- data/app/assets/images/blacklight/datasets.svg +0 -7
- data/app/assets/images/blacklight/dvd-rom.svg +0 -3
- data/app/assets/images/blacklight/email.svg +0 -3
- data/app/assets/images/blacklight/esri-globe.svg +0 -31
- data/app/assets/images/blacklight/fire-solid.svg +0 -1
- data/app/assets/images/blacklight/geoblacklight-icons.json +0 -3312
- data/app/assets/images/blacklight/george-mason.svg +0 -4
- data/app/assets/images/blacklight/globe.svg +0 -3
- data/app/assets/images/blacklight/harvard.svg +0 -3
- data/app/assets/images/blacklight/home.svg +0 -3
- data/app/assets/images/blacklight/illinois.svg +0 -4
- data/app/assets/images/blacklight/image.svg +0 -3
- data/app/assets/images/blacklight/imagery.svg +0 -4
- data/app/assets/images/blacklight/indiana.svg +0 -3
- data/app/assets/images/blacklight/iowa.svg +0 -3
- data/app/assets/images/blacklight/leaf.svg +0 -3
- data/app/assets/images/blacklight/lewis-clark.svg +0 -5
- data/app/assets/images/blacklight/lightbulb-solid.svg +0 -1
- data/app/assets/images/blacklight/line.svg +0 -4
- data/app/assets/images/blacklight/map-marker.svg +0 -3
- data/app/assets/images/blacklight/map.svg +0 -3
- data/app/assets/images/blacklight/maps.svg +0 -4
- data/app/assets/images/blacklight/maryland.svg +0 -3
- data/app/assets/images/blacklight/massgis.svg +0 -3
- data/app/assets/images/blacklight/metadata.svg +0 -3
- data/app/assets/images/blacklight/michigan-state-university.svg +0 -5
- data/app/assets/images/blacklight/michigan-state.svg +0 -4
- data/app/assets/images/blacklight/michigan.svg +0 -3
- data/app/assets/images/blacklight/minnesota.svg +0 -3
- data/app/assets/images/blacklight/mit.svg +0 -3
- data/app/assets/images/blacklight/mixed.svg +0 -5
- data/app/assets/images/blacklight/multilinestring.svg +0 -6
- data/app/assets/images/blacklight/multipoint.svg +0 -3
- data/app/assets/images/blacklight/multipolygon.svg +0 -6
- data/app/assets/images/blacklight/nebraska.svg +0 -4
- data/app/assets/images/blacklight/northwestern-university.svg +0 -5
- data/app/assets/images/blacklight/nyu.svg +0 -6
- data/app/assets/images/blacklight/ohio-state.svg +0 -5
- data/app/assets/images/blacklight/pagelines-brands.svg +0 -3
- data/app/assets/images/blacklight/paper-map.svg +0 -3
- data/app/assets/images/blacklight/parent-item.svg +0 -3
- data/app/assets/images/blacklight/penn-state.svg +0 -4
- data/app/assets/images/blacklight/pennsylvania-state-university.svg +0 -5
- data/app/assets/images/blacklight/point.svg +0 -3
- data/app/assets/images/blacklight/polygon.svg +0 -4
- data/app/assets/images/blacklight/polyline.svg +0 -6
- data/app/assets/images/blacklight/princeton.svg +0 -3
- data/app/assets/images/blacklight/public.svg +0 -3
- data/app/assets/images/blacklight/purdue-university.svg +0 -5
- data/app/assets/images/blacklight/purdue.svg +0 -4
- data/app/assets/images/blacklight/raster.svg +0 -3
- data/app/assets/images/blacklight/restricted.svg +0 -3
- data/app/assets/images/blacklight/rutgers.svg +0 -5
- data/app/assets/images/blacklight/sms.svg +0 -3
- data/app/assets/images/blacklight/stanford.svg +0 -3
- data/app/assets/images/blacklight/table.svg +0 -3
- data/app/assets/images/blacklight/tags.svg +0 -3
- data/app/assets/images/blacklight/texas.svg +0 -3
- data/app/assets/images/blacklight/the-ohio-state-university.svg +0 -6
- data/app/assets/images/blacklight/triangle-exclamation-solid.svg +0 -1
- data/app/assets/images/blacklight/tufts.svg +0 -3
- data/app/assets/images/blacklight/ucla.svg +0 -3
- data/app/assets/images/blacklight/university-of-california-berkeley.svg +0 -4
- data/app/assets/images/blacklight/university-of-chicago.svg +0 -5
- data/app/assets/images/blacklight/university-of-colorado-boulder.svg +0 -6
- data/app/assets/images/blacklight/university-of-illinois-urbana-champaign.svg +0 -5
- data/app/assets/images/blacklight/university-of-iowa.svg +0 -4
- data/app/assets/images/blacklight/university-of-maryland.svg +0 -4
- data/app/assets/images/blacklight/university-of-michigan.svg +0 -4
- data/app/assets/images/blacklight/university-of-minnesota.svg +0 -4
- data/app/assets/images/blacklight/university-of-nebraska-lincoln.svg +0 -7
- data/app/assets/images/blacklight/university-of-wisconsin-madison.svg +0 -4
- data/app/assets/images/blacklight/uva.svg +0 -3
- data/app/assets/images/blacklight/web_services.svg +0 -3
- data/app/assets/images/blacklight/websites.svg +0 -4
- data/app/assets/images/blacklight/wisconsin.svg +0 -3
- data/app/assets/javascripts/geoblacklight/basemaps.js +0 -85
- data/app/assets/javascripts/geoblacklight/controls/fullscreen.js +0 -8
- data/app/assets/javascripts/geoblacklight/controls/opacity.js +0 -6
- data/app/assets/javascripts/geoblacklight/controls.js +0 -1
- data/app/assets/javascripts/geoblacklight/downloaders/downloader.js +0 -61
- data/app/assets/javascripts/geoblacklight/downloaders/hgl_downloader.js +0 -32
- data/app/assets/javascripts/geoblacklight/downloaders.js +0 -1
- data/app/assets/javascripts/geoblacklight/geoblacklight.js +0 -60
- data/app/assets/javascripts/geoblacklight/modules/bookmarks.js +0 -43
- data/app/assets/javascripts/geoblacklight/modules/download.js +0 -11
- data/app/assets/javascripts/geoblacklight/modules/geosearch.js +0 -133
- data/app/assets/javascripts/geoblacklight/modules/help_text.js +0 -7
- data/app/assets/javascripts/geoblacklight/modules/home.js +0 -16
- data/app/assets/javascripts/geoblacklight/modules/item.js +0 -32
- data/app/assets/javascripts/geoblacklight/modules/layer_opacity.js +0 -68
- data/app/assets/javascripts/geoblacklight/modules/metadata.js +0 -15
- data/app/assets/javascripts/geoblacklight/modules/metadata_download_button.js +0 -58
- data/app/assets/javascripts/geoblacklight/modules/relations.js +0 -14
- data/app/assets/javascripts/geoblacklight/modules/results.js +0 -81
- data/app/assets/javascripts/geoblacklight/modules/svg_tooltips.js +0 -31
- data/app/assets/javascripts/geoblacklight/modules/util.js +0 -48
- data/app/assets/javascripts/geoblacklight/modules.js +0 -1
- data/app/assets/javascripts/geoblacklight/templates/index_map_download.hbs +0 -19
- data/app/assets/javascripts/geoblacklight/templates/index_map_info.hbs +0 -61
- data/app/assets/javascripts/geoblacklight/viewers/cog.js +0 -5
- data/app/assets/javascripts/geoblacklight/viewers/esri/dynamic_map_layer.js +0 -85
- data/app/assets/javascripts/geoblacklight/viewers/esri/feature_layer.js +0 -76
- data/app/assets/javascripts/geoblacklight/viewers/esri/image_map_layer.js +0 -14
- data/app/assets/javascripts/geoblacklight/viewers/esri/tiled_map_layer.js +0 -50
- data/app/assets/javascripts/geoblacklight/viewers/esri.js +0 -78
- data/app/assets/javascripts/geoblacklight/viewers/iiif.js +0 -25
- data/app/assets/javascripts/geoblacklight/viewers/index_map.js +0 -71
- data/app/assets/javascripts/geoblacklight/viewers/map.js +0 -77
- data/app/assets/javascripts/geoblacklight/viewers/oembed.js +0 -13
- data/app/assets/javascripts/geoblacklight/viewers/pmtiles.js +0 -5
- data/app/assets/javascripts/geoblacklight/viewers/tilejson.js +0 -33
- data/app/assets/javascripts/geoblacklight/viewers/tms.js +0 -10
- data/app/assets/javascripts/geoblacklight/viewers/viewer.js +0 -68
- data/app/assets/javascripts/geoblacklight/viewers/wms.js +0 -74
- data/app/assets/javascripts/geoblacklight/viewers/wmts.js +0 -85
- data/app/assets/javascripts/geoblacklight/viewers/xyz.js +0 -10
- data/app/assets/javascripts/geoblacklight/viewers.js +0 -1
- data/app/assets/stylesheets/geoblacklight/modules/mixins.scss +0 -5
- data/app/helpers/arcgis_helper.rb +0 -14
- data/app/helpers/blacklight_helper.rb +0 -11
- data/app/helpers/carto_helper.rb +0 -31
- data/app/helpers/geoblacklight/geoblacklight_helper_behavior.rb +0 -18
- data/app/javascript/clover/clover_initializer.js +0 -29
- data/app/javascript/index.js +0 -7
- data/app/javascript/openlayers/basemaps.js +0 -47
- data/app/javascript/openlayers/ol_initializer.js +0 -106
- data/app/javascript/stylesheets/openlayers.css +0 -1
- data/app/models/concerns/geoblacklight/solr_document/carto.rb +0 -17
- data/app/views/catalog/_arcgis.html.erb +0 -4
- data/app/views/catalog/_carto.html.erb +0 -4
- data/app/views/catalog/_data_dictionary.html.erb +0 -5
- data/app/views/catalog/_downloads_collapse.html.erb +0 -27
- data/app/views/catalog/_header_icons.html.erb +0 -3
- data/app/views/catalog/_index_split_default.html.erb +0 -30
- data/app/views/catalog/_results_pagination.html.erb +0 -12
- data/app/views/catalog/_show_default_attribute_table.html.erb +0 -19
- data/app/views/catalog/_show_default_display_note.html.erb +0 -7
- data/app/views/catalog/_show_default_viewer_container.html.erb +0 -28
- data/app/views/catalog/_show_downloads.html.erb +0 -23
- data/app/views/catalog/_show_header_default.html.erb +0 -4
- data/app/views/catalog/_show_sidebar.html.erb +0 -16
- data/app/views/catalog/_show_sidebar_static_map.html.erb +0 -10
- data/app/views/catalog/_show_web_services.html.erb +0 -11
- data/app/views/catalog/_web_services.html.erb +0 -9
- data/app/views/catalog/_web_services_wms.html.erb +0 -13
- data/app/views/download/hgl.html.erb +0 -27
- data/app/views/relation/_relations.html.erb +0 -15
- data/app/views/shared/_header_navbar.html.erb +0 -46
- data/babel.config.json +0 -4
- data/jest.config.js +0 -25
- data/lib/generators/geoblacklight/templates/assets/_blacklight.scss +0 -1
- data/lib/generators/geoblacklight/templates/assets/_geoblacklight.scss +0 -1
- data/lib/generators/geoblacklight/templates/assets/geoblacklight.js +0 -9
- data/lib/generators/geoblacklight/templates/clover.js +0 -5
- data/lib/generators/geoblacklight/templates/ol.js +0 -6
- data/lib/generators/geoblacklight/templates/package-test.json +0 -10
- data/lib/generators/geoblacklight/templates/settings.gbl_v1.yml +0 -195
- data/lib/geoblacklight/download/hgl_download.rb +0 -20
- data/lib/geoblacklight/view_helper_override.rb +0 -16
- data/setupJest.js +0 -14
- data/spec/helpers/arcgis_helper_spec.rb +0 -16
- data/spec/helpers/carto_helper_spec.rb +0 -13
- data/spec/helpers/geoblacklight/geoblacklight_helper_behavior_spec.rb +0 -27
- data/spec/javascripts/util_spec.js +0 -10
- data/spec/lib/geoblacklight/download/hgl_download_spec.rb +0 -62
- data/spec/lib/geoblacklight/view_helper_override_spec.rb +0 -29
- data/spec/models/concerns/geoblacklight/solr_document/carto_spec.rb +0 -43
- data/spec/test_app_templates/Gemfile.extra +0 -2
- data/spec/views/catalog/_document_split.html.erb_spec.rb +0 -7
- data/spec/views/catalog/_index_split.html.erb_spec.rb +0 -7
- data/spec/views/catalog/_results_pagination.html.erb_spec.rb +0 -11
- data/spec/views/catalog/_show_downloads.html.erb_spec.rb +0 -43
- data/spec/views/catalog/_show_tools.html.erb_spec.rb +0 -38
- data/vendor/assets/images/fullscreen.png +0 -0
- data/vendor/assets/images/fullscreen@2x.png +0 -0
- data/vendor/assets/images/layers-2x.png +0 -0
- data/vendor/assets/images/layers.png +0 -0
- data/vendor/assets/images/marker-icon-2x.png +0 -0
- data/vendor/assets/images/marker-icon.png +0 -0
- data/vendor/assets/images/marker-shadow.png +0 -0
- data/vendor/assets/javascripts/Leaflet.fullscreen.js +0 -152
- data/vendor/assets/javascripts/esri-leaflet.js +0 -12
- data/vendor/assets/javascripts/esri-leaflet.js.map +0 -1
- data/vendor/assets/javascripts/leaflet-iiif.js +0 -323
- data/vendor/assets/javascripts/leaflet-src.js.erb +0 -14126
- data/vendor/assets/javascripts/leaflet-src.js.map +0 -1
- data/vendor/assets/javascripts/native.history.js +0 -1
- data/vendor/assets/stylesheets/leaflet.css +0 -640
- data/vendor/assets/stylesheets/leaflet.fullscreen.css +0 -40
- /data/app/{views/catalog/_show_default_viewer_information.html.erb → components/geoblacklight/index_map_inspect_component.html.erb} +0 -0
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 0e2b959de4c55a7527ad4d7687af25f972a6e219f94dc0ec8b7fb9c76154d5ee
|
4
|
+
data.tar.gz: 99cba751fbb1f088a2f96e40c64998e77e07bccb50511508fa57da35c8cb38a2
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: f98c1fd49c6dd1c0718a22dab3fea41457f54844415cf1003b36e5a14f6584eabb91061e52bdd7cf4224deadb4557d78125d90d06f15c74b808a1acff3bd9716
|
7
|
+
data.tar.gz: 1d716078cca8102a668cbb9ac1e6d987b9837f9428ffcc2ec51aa7f6986681fa169200e2f0e9fe5916ba187705e154d78189e82009cf5d4ddec2148385fa0d5a
|
@@ -0,0 +1,153 @@
|
|
1
|
+
name: Build demo app
|
2
|
+
|
3
|
+
on:
|
4
|
+
pull_request:
|
5
|
+
push:
|
6
|
+
branches:
|
7
|
+
- main
|
8
|
+
schedule:
|
9
|
+
- cron: "0 1 * * SUN" # every sunday at 1AM
|
10
|
+
workflow_dispatch:
|
11
|
+
|
12
|
+
env:
|
13
|
+
REGISTRY: ghcr.io
|
14
|
+
IMAGE_NAME: ${{ github.repository }}
|
15
|
+
BRANCH: ${{ github.head_ref || github.ref_name }}
|
16
|
+
|
17
|
+
jobs:
|
18
|
+
build-app:
|
19
|
+
runs-on: ubuntu-latest
|
20
|
+
outputs:
|
21
|
+
artifact-url: ${{ steps.artifact-upload-step.outputs.artifact-url }}
|
22
|
+
steps:
|
23
|
+
- uses: actions/checkout@v4
|
24
|
+
- name: Set up Ruby
|
25
|
+
uses: ruby/setup-ruby@v1
|
26
|
+
with:
|
27
|
+
ruby-version: 3.3.4
|
28
|
+
|
29
|
+
- name: Install dependencies
|
30
|
+
run: bundle install
|
31
|
+
env:
|
32
|
+
RAILS_VERSION: 7.1.3
|
33
|
+
|
34
|
+
- name: Setup Yarn
|
35
|
+
run: exec "yarnpkg"
|
36
|
+
|
37
|
+
- name: Build
|
38
|
+
run: BRANCH=${{ env.BRANCH }} rails new build -m template.rb -a propshaft
|
39
|
+
|
40
|
+
- name: Cleanup
|
41
|
+
run: rm -rf build/node_modules build/Gemfile.lock build/yarn.lock build/tmp
|
42
|
+
|
43
|
+
- name: Copy Dockerfile
|
44
|
+
run: cp lib/generators/geoblacklight/templates/demo-app/Dockerfile build/.
|
45
|
+
|
46
|
+
- name: Copy demo-app compose.yml
|
47
|
+
run: cp -f lib/generators/geoblacklight/templates/demo-app/compose.yml build/.
|
48
|
+
|
49
|
+
- name: Copy start-server script
|
50
|
+
run: cp lib/generators/geoblacklight/templates/demo-app/start-server.sh build/.
|
51
|
+
|
52
|
+
- name: Copy fixture solr documents
|
53
|
+
run: mkdir -p build/spec/fixtures && cp -R spec/fixtures/solr_documents build/spec/fixtures/.
|
54
|
+
|
55
|
+
- name: Replace main image tag with pr tag
|
56
|
+
if: github.ref_name != 'main'
|
57
|
+
run: sed -i 's/main/pr-${{ github.event.number }}/g' build/compose.yml
|
58
|
+
|
59
|
+
- name: Upload app build
|
60
|
+
uses: actions/upload-artifact@v4
|
61
|
+
id: artifact-upload-step
|
62
|
+
with:
|
63
|
+
name: build-${{ env.BRANCH }}
|
64
|
+
path: build/
|
65
|
+
|
66
|
+
build-docker:
|
67
|
+
runs-on: ubuntu-latest
|
68
|
+
needs:
|
69
|
+
- build-app
|
70
|
+
steps:
|
71
|
+
- name: Download app build
|
72
|
+
uses: actions/download-artifact@v4
|
73
|
+
with:
|
74
|
+
name: build-${{ env.BRANCH }}
|
75
|
+
|
76
|
+
- name: Set up QEMU
|
77
|
+
uses: docker/setup-qemu-action@v3
|
78
|
+
|
79
|
+
- name: Set up Docker Buildx
|
80
|
+
uses: docker/setup-buildx-action@v3
|
81
|
+
|
82
|
+
- name: Log in to the Container registry
|
83
|
+
uses: docker/login-action@v3
|
84
|
+
with:
|
85
|
+
registry: ${{ env.REGISTRY }}
|
86
|
+
username: ${{ github.actor }}
|
87
|
+
password: ${{ secrets.GITHUB_TOKEN }}
|
88
|
+
|
89
|
+
- name: Extract metadata (tags, labels) for Docker
|
90
|
+
id: meta
|
91
|
+
uses: docker/metadata-action@v5
|
92
|
+
with:
|
93
|
+
images: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}
|
94
|
+
tags: |
|
95
|
+
type=ref,event=branch
|
96
|
+
type=ref,event=pr
|
97
|
+
type=sha
|
98
|
+
env:
|
99
|
+
DOCKER_METADATA_PR_HEAD_SHA: true
|
100
|
+
|
101
|
+
# Rebuild base context when triggered by schedule or workflow_dispatch
|
102
|
+
- name: Build and push base Docker image
|
103
|
+
uses: docker/build-push-action@v6
|
104
|
+
if: github.event_name == 'workflow_dispatch' || github.event_name == 'schedule'
|
105
|
+
with:
|
106
|
+
context: "${{ github.workspace }}"
|
107
|
+
file: "${{ github.workspace }}/Dockerfile"
|
108
|
+
push: true
|
109
|
+
platforms: linux/amd64,linux/arm64
|
110
|
+
cache-from: type=gha
|
111
|
+
cache-to: type=gha,mode=max
|
112
|
+
tags: ghcr.io/geoblacklight/geoblacklight:base
|
113
|
+
target: "base"
|
114
|
+
|
115
|
+
# Build only the app context. Build times are faster because most
|
116
|
+
# gems and node packages are already installed in the base context.
|
117
|
+
- name: Build and push branch Docker image
|
118
|
+
uses: docker/build-push-action@v6
|
119
|
+
with:
|
120
|
+
context: "${{ github.workspace }}"
|
121
|
+
file: "${{ github.workspace }}/Dockerfile"
|
122
|
+
push: true
|
123
|
+
platforms: linux/amd64,linux/arm64
|
124
|
+
cache-from: type=gha
|
125
|
+
cache-to: type=gha,mode=max
|
126
|
+
tags: ${{ steps.meta.outputs.tags }}
|
127
|
+
labels: ${{ steps.meta.outputs.labels }}
|
128
|
+
target: "app"
|
129
|
+
|
130
|
+
notify:
|
131
|
+
runs-on: ubuntu-latest
|
132
|
+
if: github.ref_name != 'main'
|
133
|
+
needs:
|
134
|
+
- build-app
|
135
|
+
- build-docker
|
136
|
+
permissions:
|
137
|
+
contents: read
|
138
|
+
packages: write
|
139
|
+
pull-requests: write
|
140
|
+
steps:
|
141
|
+
- name: Add artifact link to PR comments
|
142
|
+
uses: mshick/add-pr-comment@v2
|
143
|
+
with:
|
144
|
+
message: |
|
145
|
+
Demo app download link: ${{ needs.build-app.outputs.artifact-url }}
|
146
|
+
|
147
|
+
1. Download demo app and unzip file
|
148
|
+
2. Change into app directory
|
149
|
+
- run `docker compose pull`
|
150
|
+
- run `docker compose up`
|
151
|
+
3. Open in browser
|
152
|
+
- App: http://127.0.0.1:3001
|
153
|
+
- Solr: http://127.0.0.1:8984
|
@@ -0,0 +1,19 @@
|
|
1
|
+
name: Prune containers
|
2
|
+
|
3
|
+
on:
|
4
|
+
workflow_dispatch:
|
5
|
+
schedule:
|
6
|
+
- cron: "0 0 * * SUN" # every sunday at midnight
|
7
|
+
|
8
|
+
jobs:
|
9
|
+
clean:
|
10
|
+
runs-on: ubuntu-latest
|
11
|
+
name: Delete old images
|
12
|
+
steps:
|
13
|
+
- uses: snok/container-retention-policy@v3.0.0
|
14
|
+
with:
|
15
|
+
account: geoblacklight
|
16
|
+
image-names: geoblacklight
|
17
|
+
token: ${{ secrets.GITHUB_TOKEN }}
|
18
|
+
image-tags: "!main !base"
|
19
|
+
cut-off: 2w
|
data/.github/workflows/ruby.yml
CHANGED
@@ -10,66 +10,68 @@ jobs:
|
|
10
10
|
linter:
|
11
11
|
runs-on: ubuntu-latest
|
12
12
|
steps:
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
13
|
+
- uses: actions/checkout@v2
|
14
|
+
- name: Set up Ruby
|
15
|
+
uses: ruby/setup-ruby@v1
|
16
|
+
with:
|
17
|
+
ruby-version: 3.2
|
18
|
+
- name: Install dependencies
|
19
|
+
run: bundle install
|
20
|
+
- name: Run linter
|
21
|
+
run: bundle exec standardrb
|
22
22
|
|
23
23
|
aardvark-fixture-linter:
|
24
24
|
runs-on: ubuntu-latest
|
25
25
|
steps:
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
26
|
+
- uses: actions/checkout@v2
|
27
|
+
- name: Set up Ruby
|
28
|
+
uses: ruby/setup-ruby@v1
|
29
|
+
with:
|
30
|
+
ruby-version: 3.2
|
31
|
+
- name: Install json schema validator
|
32
|
+
run: gem install json_schemer
|
33
|
+
- name: Run json_schemer against aarkvark fixtures
|
34
|
+
run: find spec/fixtures/solr_documents -type f -name "*.json" | xargs json_schemer schema/geoblacklight-schema-aardvark.json
|
35
35
|
|
36
36
|
test:
|
37
37
|
runs-on: ubuntu-latest
|
38
38
|
strategy:
|
39
39
|
matrix:
|
40
|
-
ruby_version: [
|
41
|
-
rails_version: [
|
40
|
+
ruby_version: ["3.2", "3.3"]
|
41
|
+
rails_version: ["7.0.8.4", "7.1.3.4", "7.2.0"]
|
42
|
+
asset_pipeline: ["vite"]
|
43
|
+
additional_engine_cart_rails_options: [""]
|
44
|
+
# this build has failing tests that aren't easy to replicate locally
|
45
|
+
# https://github.com/geoblacklight/geoblacklight/issues/1585
|
46
|
+
# include:
|
47
|
+
# - ruby_version: "3.2"
|
48
|
+
# rails_version: "7.1.3.4"
|
49
|
+
# additional_engine_cart_rails_options: "--css bootstrap"
|
50
|
+
# asset_pipeline: "importmap"
|
42
51
|
|
43
|
-
name: test ruby ${{ matrix.ruby_version }} / rails ${{ matrix.rails_version }}
|
52
|
+
name: test ruby ${{ matrix.ruby_version }} / rails ${{ matrix.rails_version }} / ${{ matrix.asset_pipeline }}
|
44
53
|
steps:
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
SOLR_URL: http://solr:SolrRocks@localhost:8983/solr/blacklight-core
|
70
|
-
- name: Upload coverage artifacts
|
71
|
-
uses: actions/upload-artifact@v2
|
72
|
-
if: always()
|
73
|
-
with:
|
74
|
-
name: coverage
|
75
|
-
path: coverage/
|
54
|
+
- uses: actions/checkout@v2
|
55
|
+
- name: Set up Ruby
|
56
|
+
uses: ruby/setup-ruby@v1
|
57
|
+
with:
|
58
|
+
ruby-version: ${{ matrix.ruby_version }}
|
59
|
+
- name: Install dependencies
|
60
|
+
run: bundle install
|
61
|
+
env:
|
62
|
+
RAILS_VERSION: ${{ matrix.rails_version }}
|
63
|
+
- name: Setup Yarn
|
64
|
+
run: exec "yarnpkg"
|
65
|
+
- name: Run tests
|
66
|
+
run: bundle exec rake ci
|
67
|
+
env:
|
68
|
+
RAILS_VERSION: ${{ matrix.rails_version }}
|
69
|
+
ASSET_PIPELINE: ${{ matrix.asset_pipeline }}
|
70
|
+
ENGINE_CART_RAILS_OPTIONS: "--skip-git --skip-keeps --skip-action-cable --skip-test -a propshaft ${{ matrix.additional_engine_cart_rails_options }}"
|
71
|
+
SOLR_URL: http://solr:SolrRocks@localhost:8983/solr/blacklight-core
|
72
|
+
- name: Upload coverage artifacts
|
73
|
+
uses: actions/upload-artifact@v4
|
74
|
+
if: always()
|
75
|
+
with:
|
76
|
+
name: "coverage-${{ matrix.ruby_version }}-${{ matrix.rails_version }}"
|
77
|
+
path: coverage/
|
data/.gitignore
CHANGED
@@ -28,6 +28,7 @@ jetty
|
|
28
28
|
yarn-debug.log*
|
29
29
|
.yarn-integrity
|
30
30
|
yarn.lock
|
31
|
+
package-lock.json
|
31
32
|
|
32
33
|
# Ignore IDE files
|
33
34
|
.idea
|
@@ -36,8 +37,7 @@ yarn.lock
|
|
36
37
|
/public/vite*
|
37
38
|
/public/geoblacklight-vite*
|
38
39
|
node_modules
|
39
|
-
|
40
|
+
app/assets/javascripts/geoblacklight
|
40
41
|
# Vite uses dotenv and suggests to ignore local-only env files. See
|
41
42
|
# https://vitejs.dev/guide/env-and-mode.html#env-files
|
42
43
|
*.local
|
43
|
-
|
data/CONTRIBUTING.md
CHANGED
@@ -1,49 +1,67 @@
|
|
1
|
-
|
2
|
-
GeoBlacklight is a collaborative open source
|
1
|
+
# GeoBlacklight Codebase Contribution Guide
|
2
|
+
GeoBlacklight is a collaborative, open source project where contributions are :sparkles:welcome:sparkles:.
|
3
3
|
|
4
4
|
### Who can contribute?
|
5
|
-
**Anyone** is welcome to contribute to GeoBlacklight. We follow a set of contribution practices to maintain a technically sustainable and stable software project for everyone.
|
5
|
+
**Anyone** is welcome to contribute to GeoBlacklight. We follow a set of contribution practices to maintain a technically sustainable and stable software project for everyone. We expect all contributors to adhere to our [Code of Conduct](https://github.com/geoblacklight/geoblacklight/blob/main/CODE_OF_CONDUCT.md).
|
6
6
|
|
7
|
-
###
|
8
|
-
|
7
|
+
### Join the community
|
8
|
+
See the [community page](https://geoblacklight.org/community/) on our website for information about our community calendar, slack, volunteer opportunities, and more.
|
9
|
+
|
10
|
+
If you have questions or want to get more involved, join [GeoBlacklight Slack](https://geoblacklight.slack.com/join/shared_invite/zt-1p7dcay40-Ye_WTt5_iCqU8rDjzhkoWw#/shared-invite/email) or email the [GeoBlacklight Community](https://groups.google.com/g/geoblacklight-community) at [geoblacklight-community@googlegroups.com](mailto:geoblacklight-community@googlegroups.com).
|
11
|
+
|
12
|
+
## Issues
|
13
|
+
Issues are used in the GeoBlacklight community as a convenient way to document bugs, propose new functionality and enhancements, and discuss important code changes.
|
14
|
+
|
15
|
+
### Creating an issue
|
16
|
+
Did you find a bug in GeoBlacklight? Looking to suggest a new feature? Add an issue for it in the [issue tracker](https://github.com/geoblacklight/geoblacklight/issues).
|
9
17
|
|
10
18
|
- Make sure you have a [GitHub account](https://github.com/signup/free)
|
11
|
-
- Submit a
|
12
|
-
- Clearly
|
13
|
-
-
|
14
|
-
-
|
15
|
-
-
|
16
|
-
-
|
17
|
-
|
18
|
-
###
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
19
|
+
- Submit a new issue that:
|
20
|
+
- Clearly describes the issue
|
21
|
+
- Provides a descriptive summary
|
22
|
+
- Explains the expected behavior
|
23
|
+
- Explains the actual behavior
|
24
|
+
- Provides steps to reproduce the actual behavior
|
25
|
+
|
26
|
+
### Assigning an issue
|
27
|
+
|
28
|
+
In the GeoBlacklight community, issue assignment helps signal who is interested in working on an issue or who can assist in moving it forward. If you find an issue you’d like to contribute to, you can assign yourself to it. If an issue is already assigned, you are still welcome to contribute or provide support. Active issues will be marked with a status of “In progress” on our Project boards.
|
29
|
+
|
30
|
+
## Contributing to the codebase
|
31
|
+
GeoBlacklight welcomes code contributions. You do *not* need to be a "GeoBlacklight Committer" to contribute code or documentation. We follow the [pull request](https://help.github.com/articles/using-pull-requests/) model for contributing on GitHub. GeoBlacklight uses a suite of tests to express its features and protect from bugs :bug:.
|
32
|
+
|
33
|
+
When proposing major new features or changes that may introduce an API or schema change, please make sure to communicate with the [community](https://geoblacklight.org/community/) so the full implications are understood. Likely there are ways to introduce these changes in a backwards compatible way that others may be able to help with.
|
34
|
+
|
35
|
+
To contribute to our website or documentation pages, see the [GeoBlacklight Website Contribution Guide](https://github.com/geoblacklight/geoblacklight.github.io/blob/main/CONTRIBUTING.md).
|
36
|
+
|
37
|
+
### Pull request overview
|
38
|
+
Given the multi-institutional nature of the project, communitiy code review is important. **We discourage individuals from merging their own requests.** We also prefer that developers from the same institutions do not merge their colleagues code.
|
39
|
+
|
40
|
+
**Contributors:**
|
41
|
+
|
42
|
+
1. If there isn't already an associated issue in the repository, create one
|
43
|
+
1. Clone or fork the geoblacklight repository
|
44
|
+
1. Create a new feature branch and publish it
|
45
|
+
1. Make changes to the files
|
46
|
+
1. Commit your changes
|
47
|
+
1. Push to the new branch
|
48
|
+
1. Open a Pull Request to the appropriate branch, like **main**, **release-4.x**, etc.
|
49
|
+
1. If you want specific others to chime in, create a +1 comment and tag them. You can tag the [GeoBlacklight Developers](#who-are-the-geoblacklight-developers) with their @username: `@geoblacklight/geoblacklight-developers`
|
50
|
+
1. Add the GeoBlacklight Developers team as a requested reviewer
|
51
|
+
1. Mention the pull request in the associated issue
|
52
|
+
|
53
|
+
**Reviewers:**
|
54
|
+
|
55
|
+
1. Review the Pull Request
|
56
|
+
1. Merge changes to the appropriate branch
|
57
|
+
|
58
|
+
### Tips for contributions
|
59
|
+
Please take the time to review the changes you made. Make sure that:
|
60
|
+
- New and changed code has comments
|
61
|
+
- The commit summary explains what has been changed
|
62
|
+
- Each commit addresses just a single concern
|
63
|
+
- If your code requires testing, you wrote a new test for it
|
64
|
+
- The GitHub Actions CI tests completed successfully
|
65
|
+
|
66
|
+
### Who are the GeoBlacklight Developers?
|
67
|
+
The [GeoBlacklight Developers](https://github.com/orgs/geoblacklight/teams/geoblacklight-developers) team consists of contributors with GitHub privileges to review and merge pull requests (PRs) for the GeoBlacklight project. This team brings together individuals with varying types of expertise, including experience in the codebase, documentation, metadata, GIS data, and web services. If you have any questions or need guidance, this team or its individual members are a great starting point. When you submit a PR, a member of this team will review it and, if appropriate, merge it into the project.
|
data/Gemfile
CHANGED
@@ -3,28 +3,9 @@ source "https://rubygems.org"
|
|
3
3
|
# Specify your gem's dependencies in geoblacklight.gemspec
|
4
4
|
gemspec
|
5
5
|
|
6
|
-
group :development, :test do
|
7
|
-
# See https://github.com/rails/rails/issues/32955
|
8
|
-
gem "thor", ">= 0.19.0"
|
9
|
-
end
|
10
|
-
|
11
|
-
group :test do
|
12
|
-
gem "capybara", require: false
|
13
|
-
gem "database_cleaner", require: false
|
14
|
-
gem "engine_cart", require: false
|
15
|
-
gem "factory_bot_rails", require: false
|
16
|
-
gem "foreman", require: false
|
17
|
-
gem "rails-controller-testing", require: false
|
18
|
-
gem "rspec-rails", require: false
|
19
|
-
gem "simplecov", require: false
|
20
|
-
gem "standardrb", require: false
|
21
|
-
gem "webdrivers", require: false
|
22
|
-
gem "webmock", require: false
|
23
|
-
end
|
24
|
-
|
25
6
|
# BEGIN ENGINE_CART BLOCK
|
26
|
-
# engine_cart:
|
27
|
-
# engine_cart stanza:
|
7
|
+
# engine_cart: 2.6.0
|
8
|
+
# engine_cart stanza: 2.5.0
|
28
9
|
# the below comes from engine_cart, a gem used to test this Rails engine gem in the context of a Rails app.
|
29
10
|
file = File.expand_path("Gemfile", ENV["ENGINE_CART_DESTINATION"] || ENV["RAILS_ROOT"] || File.expand_path(".internal_test_app", File.dirname(__FILE__)))
|
30
11
|
if File.exist?(file)
|
@@ -40,16 +21,10 @@ else
|
|
40
21
|
if ENV["RAILS_VERSION"]
|
41
22
|
if ENV["RAILS_VERSION"] == "edge"
|
42
23
|
gem "rails", github: "rails/rails"
|
43
|
-
ENV["ENGINE_CART_RAILS_OPTIONS"] = "--edge
|
24
|
+
ENV["ENGINE_CART_RAILS_OPTIONS"] = "--edge"
|
44
25
|
else
|
45
26
|
gem "rails", ENV["RAILS_VERSION"]
|
46
27
|
end
|
47
28
|
end
|
48
29
|
end
|
49
|
-
|
50
|
-
if File.exist?("spec/test_app_templates/Gemfile.extra")
|
51
|
-
# rubocop:disable Security/Eval
|
52
|
-
eval File.read("spec/test_app_templates/Gemfile.extra"), nil, "spec/test_app_templates/Gemfile.extra"
|
53
|
-
# rubocop:enable Security/Eval
|
54
|
-
end
|
55
30
|
# END ENGINE_CART BLOCK
|
data/Rakefile
CHANGED
@@ -8,10 +8,29 @@ rescue LoadError
|
|
8
8
|
puts "You must `gem install bundler` and `bundle install` to run rake tasks"
|
9
9
|
end
|
10
10
|
|
11
|
-
require "solr_wrapper"
|
12
|
-
require "solr_wrapper/rake_task"
|
13
11
|
require "engine_cart/rake_task"
|
14
12
|
require "rspec/core/rake_task"
|
13
|
+
require "open3"
|
14
|
+
|
15
|
+
# Ensure the app generates with Propshaft; sprockets is no longer supported
|
16
|
+
# https://github.com/geoblacklight/geoblacklight/issues/1265
|
17
|
+
ENV["ENGINE_CART_RAILS_OPTIONS"] = ENV["ENGINE_CART_RAILS_OPTIONS"].to_s + " -a propshaft"
|
18
|
+
|
19
|
+
def system_with_error_handling(*args)
|
20
|
+
Open3.popen3(*args) do |_stdin, stdout, stderr, thread|
|
21
|
+
puts stdout.read
|
22
|
+
raise "Unable to run #{args.inspect}: #{stderr.read}" unless thread.value.success?
|
23
|
+
end
|
24
|
+
end
|
25
|
+
|
26
|
+
def with_solr(&block)
|
27
|
+
puts "Starting Solr"
|
28
|
+
system_with_error_handling "docker compose up -d solr"
|
29
|
+
yield
|
30
|
+
ensure
|
31
|
+
puts "Stopping Solr"
|
32
|
+
system_with_error_handling "docker compose stop solr"
|
33
|
+
end
|
15
34
|
|
16
35
|
task(:spec).clear
|
17
36
|
RSpec::Core::RakeTask.new(:spec) do |t|
|
@@ -24,16 +43,16 @@ task :javascript_tests do
|
|
24
43
|
end
|
25
44
|
|
26
45
|
desc "Run test suite"
|
27
|
-
task ci
|
28
|
-
|
29
|
-
|
30
|
-
end
|
46
|
+
task :ci do
|
47
|
+
with_solr do
|
48
|
+
Rake::Task["geoblacklight:internal:seed"].invoke
|
31
49
|
|
32
|
-
|
33
|
-
|
50
|
+
# Run RSpec tests with Coverage
|
51
|
+
Rake::Task["geoblacklight:coverage"].invoke
|
34
52
|
|
35
|
-
|
36
|
-
|
53
|
+
# Run JavaScript tests
|
54
|
+
Rake::Task["javascript_tests"].invoke
|
55
|
+
end
|
37
56
|
end
|
38
57
|
|
39
58
|
namespace :geoblacklight do
|
@@ -43,11 +62,6 @@ namespace :geoblacklight do
|
|
43
62
|
Rake::Task["spec"].invoke
|
44
63
|
end
|
45
64
|
|
46
|
-
desc "Create the test rails app"
|
47
|
-
task generate: ["engine_cart:generate"] do
|
48
|
-
# Intentionally Empty Block
|
49
|
-
end
|
50
|
-
|
51
65
|
namespace :internal do
|
52
66
|
task seed: ["engine_cart:generate"] do
|
53
67
|
within_test_app do
|
@@ -57,66 +71,27 @@ namespace :geoblacklight do
|
|
57
71
|
end
|
58
72
|
end
|
59
73
|
|
60
|
-
desc "Run
|
74
|
+
desc "Run GeoBlacklight and Solr with seed data for interactive development"
|
61
75
|
task :server, [:rails_server_args] do |_t, args|
|
62
|
-
|
63
|
-
|
64
|
-
system "bundle update"
|
65
|
-
end
|
66
|
-
else
|
67
|
-
Rake::Task["engine_cart:generate"].invoke
|
68
|
-
end
|
76
|
+
with_solr do
|
77
|
+
Rake::Task["geoblacklight:internal:seed"].invoke
|
69
78
|
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
puts "
|
77
|
-
puts " "
|
78
|
-
begin
|
79
|
-
system "bundle exec rails s #{args[:rails_server_args]}"
|
80
|
-
rescue Interrupt
|
81
|
-
puts "Shutting down..."
|
82
|
-
end
|
79
|
+
within_test_app do
|
80
|
+
puts "Starting GeoBlacklight (Rails server)"
|
81
|
+
puts " "
|
82
|
+
begin
|
83
|
+
system "bundle exec rails s #{args[:rails_server_args]}"
|
84
|
+
rescue Interrupt
|
85
|
+
puts "Shutting down..."
|
83
86
|
end
|
84
87
|
end
|
85
88
|
end
|
86
|
-
end
|
87
89
|
|
88
|
-
|
89
|
-
|
90
|
-
if File.exist? EngineCart.destination
|
90
|
+
desc "Stdout output asset paths"
|
91
|
+
task :asset_paths do
|
91
92
|
within_test_app do
|
92
|
-
system "bundle
|
93
|
+
system "bundle exec rake geoblacklight:application_asset_paths"
|
93
94
|
end
|
94
|
-
else
|
95
|
-
Rake::Task["engine_cart:generate"].invoke
|
96
|
-
end
|
97
|
-
|
98
|
-
SolrWrapper.wrap(port: "8983") do |solr|
|
99
|
-
solr.with_collection(name: "blacklight-core", dir: File.join(File.expand_path(".", File.dirname(__FILE__)), "solr", "conf")) do
|
100
|
-
Rake::Task["geoblacklight:internal:seed"].invoke
|
101
|
-
|
102
|
-
within_test_app do
|
103
|
-
puts "\nSolr server running: http://localhost:#{solr.port}/solr/#/blacklight-core"
|
104
|
-
puts "\n^C to stop"
|
105
|
-
puts " "
|
106
|
-
begin
|
107
|
-
sleep
|
108
|
-
rescue Interrupt
|
109
|
-
puts "Shutting down..."
|
110
|
-
end
|
111
|
-
end
|
112
|
-
end
|
113
|
-
end
|
114
|
-
end
|
115
|
-
|
116
|
-
desc "Stdout output asset paths"
|
117
|
-
task :asset_paths do
|
118
|
-
within_test_app do
|
119
|
-
system "bundle exec rake geoblacklight:application_asset_paths"
|
120
95
|
end
|
121
96
|
end
|
122
97
|
end
|