geoblacklight 5.0.2 → 5.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (77) hide show
  1. checksums.yaml +4 -4
  2. data/.github/dependabot.yml +15 -0
  3. data/.github/workflows/ruby.yml +11 -6
  4. data/app/assets/stylesheets/geoblacklight/modules/item.scss +5 -1
  5. data/app/components/blacklight/icons/circle_info_solid_component.rb +1 -1
  6. data/app/components/blacklight/icons/fire_solid_component.rb +1 -1
  7. data/app/components/blacklight/icons/lightbulb_solid_component.rb +1 -1
  8. data/app/components/blacklight/icons/triangle_exclamation_solid_component.rb +1 -1
  9. data/app/components/geoblacklight/arcgis_component.html.erb +1 -1
  10. data/app/components/geoblacklight/arcgis_component.rb +1 -1
  11. data/app/components/geoblacklight/attribute_table_component.rb +1 -1
  12. data/app/components/geoblacklight/data_dictionary_download_component.rb +1 -1
  13. data/app/components/geoblacklight/display_note_component.rb +2 -2
  14. data/app/components/geoblacklight/document/sidebar_component.html.erb +5 -5
  15. data/app/components/geoblacklight/document/sidebar_component.rb +15 -0
  16. data/app/components/geoblacklight/download_links_component.rb +5 -1
  17. data/app/components/geoblacklight/header_icons_component.rb +4 -4
  18. data/app/components/geoblacklight/homepage_feature_facet_component.html.erb +1 -1
  19. data/app/components/geoblacklight/homepage_feature_facet_component.rb +1 -1
  20. data/app/components/geoblacklight/iiif_drag_drop_component.html.erb +2 -2
  21. data/app/components/geoblacklight/iiif_drag_drop_component.rb +1 -1
  22. data/app/components/geoblacklight/index_map_inspect_component.rb +1 -1
  23. data/app/components/geoblacklight/index_map_legend_component.rb +1 -1
  24. data/app/components/geoblacklight/item_map_viewer_component.html.erb +58 -0
  25. data/app/components/geoblacklight/item_map_viewer_component.rb +24 -13
  26. data/app/components/geoblacklight/location_leaflet_map_component.rb +1 -1
  27. data/app/components/geoblacklight/login_link_component.rb +1 -1
  28. data/app/components/geoblacklight/relations_component.html.erb +1 -1
  29. data/app/components/geoblacklight/relations_component.rb +1 -1
  30. data/app/components/geoblacklight/static_map_component.rb +1 -4
  31. data/app/components/geoblacklight/viewer_help_text_component.rb +2 -2
  32. data/app/components/geoblacklight/web_services_component.rb +1 -1
  33. data/app/components/geoblacklight/web_services_default_component.html.erb +1 -1
  34. data/app/components/geoblacklight/web_services_default_component.rb +1 -1
  35. data/app/components/geoblacklight/web_services_link_component.rb +1 -1
  36. data/app/components/geoblacklight/web_services_wfs_component.rb +1 -1
  37. data/app/components/geoblacklight/web_services_wms_component.rb +1 -1
  38. data/app/controllers/relation_controller.rb +1 -1
  39. data/app/helpers/geoblacklight_helper.rb +0 -4
  40. data/app/javascript/geoblacklight/controllers/downloads_controller.js +2 -2
  41. data/app/javascript/geoblacklight/core.js +0 -2
  42. data/app/javascript/geoblacklight/index.js +0 -2
  43. data/config/locales/geoblacklight.en.yml +1 -0
  44. data/lib/generators/geoblacklight/assets/importmap_generator.rb +3 -15
  45. data/lib/generators/geoblacklight/assets/vite_generator.rb +6 -16
  46. data/lib/generators/geoblacklight/assets_generator.rb +15 -0
  47. data/lib/generators/geoblacklight/templates/settings.yml +1 -1
  48. data/lib/geoblacklight/download/geojson_download.rb +1 -1
  49. data/lib/geoblacklight/engine.rb +1 -1
  50. data/lib/geoblacklight/version.rb +1 -1
  51. data/lib/tasks/geoblacklight.rake +15 -23
  52. data/package.json +6 -9
  53. data/solr/conf/solrconfig.xml +1 -1
  54. data/spec/components/blacklight/icons/triangle_exclamation_solid_component_spec.rb +1 -1
  55. data/spec/components/geoblacklight/document_component_spec.rb +1 -1
  56. data/spec/components/geoblacklight/download_links_component_spec.rb +16 -0
  57. data/spec/components/geoblacklight/item_map_viewer_component_spec.rb +1 -1
  58. data/spec/features/configurable_basemap_spec.rb +7 -4
  59. data/spec/features/full_screen_control_spec.rb +2 -0
  60. data/spec/features/home_page_spec.rb +1 -6
  61. data/spec/features/index_view_spec.rb +21 -21
  62. data/spec/features/layer_inspection_spec.rb +1 -0
  63. data/spec/features/relations_spec.rb +9 -9
  64. data/spec/features/search_spec.rb +3 -3
  65. data/spec/features/tms_spec.rb +2 -2
  66. data/spec/features/xyz_spec.rb +2 -2
  67. data/spec/helpers/geoblacklight_helper_spec.rb +0 -17
  68. data/spec/lib/geoblacklight/download/geojson_download_spec.rb +1 -0
  69. data/template.rb +7 -20
  70. metadata +4 -13
  71. data/.github/workflows/build-demo-app.yml +0 -156
  72. data/.github/workflows/prune-containers.yml +0 -19
  73. data/app/javascript/geoblacklight/controllers/clover_viewer_controller.js +0 -47
  74. data/lib/generators/geoblacklight/templates/demo-app/Dockerfile +0 -31
  75. data/lib/generators/geoblacklight/templates/demo-app/compose.yml +0 -26
  76. data/lib/generators/geoblacklight/templates/demo-app/start-server.sh +0 -21
  77. data/spec/features/iiif_viewer_spec.rb +0 -10
data/template.rb CHANGED
@@ -1,29 +1,16 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- gem "blacklight", "~> 8.0"
4
-
5
- # Ensure the app generates with Propshaft; sprockets is no longer supported
6
- # https://github.com/geoblacklight/geoblacklight/issues/1265
7
- ENV["ENGINE_CART_RAILS_OPTIONS"] = ENV["ENGINE_CART_RAILS_OPTIONS"].to_s + " -a propshaft --css bootstrap"
8
-
9
- # Use importmaps for JS if requested, otherwise default to vite
10
- ENV["ENGINE_CART_RAILS_OPTIONS"] += if ENV["ASSET_PIPELINE"] == "importmap"
11
- " --js importmap"
12
- else
13
- " --js rollup"
14
- end
15
-
16
- # Install latest version of geoblacklight gem if running
17
- # generator with a development branch.
3
+ # Set BRANCH=<branch_name> to install from a specific branch
18
4
  if ENV["BRANCH"]
19
5
  gem "geoblacklight", github: "geoblacklight/geoblacklight", branch: ENV["BRANCH"]
20
6
  else
21
- gem "geoblacklight", "~> 5.0"
7
+ gem "geoblacklight"
22
8
  end
23
9
 
24
10
  run "bundle install"
25
11
 
26
- generate "blacklight:install", "--devise", "--skip-solr"
27
- generate "geoblacklight:install", "-f"
28
-
29
- rake "db:migrate"
12
+ after_bundle do
13
+ generate "blacklight:install", ENV.fetch("BLACKLIGHT_INSTALL_OPTIONS", "--devise --skip-solr")
14
+ generate "geoblacklight:install"
15
+ rails_command "db:migrate"
16
+ end
metadata CHANGED
@@ -1,17 +1,16 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: geoblacklight
3
3
  version: !ruby/object:Gem::Version
4
- version: 5.0.2
4
+ version: 5.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Mike Graves
8
8
  - Darren Hardy
9
9
  - Eliot Jordan
10
10
  - Jack Reed
11
- autorequire:
12
11
  bindir: bin
13
12
  cert_chain: []
14
- date: 2025-04-17 00:00:00.000000000 Z
13
+ date: 2026-02-18 00:00:00.000000000 Z
15
14
  dependencies:
16
15
  - !ruby/object:Gem::Dependency
17
16
  name: rails
@@ -370,8 +369,7 @@ extensions: []
370
369
  extra_rdoc_files: []
371
370
  files:
372
371
  - ".github/ISSUE_TEMPLATE.md"
373
- - ".github/workflows/build-demo-app.yml"
374
- - ".github/workflows/prune-containers.yml"
372
+ - ".github/dependabot.yml"
375
373
  - ".github/workflows/ruby.yml"
376
374
  - ".gitignore"
377
375
  - ".standard.yml"
@@ -543,7 +541,6 @@ files:
543
541
  - app/controllers/wms_controller.rb
544
542
  - app/helpers/geoblacklight_helper.rb
545
543
  - app/javascript/geoblacklight/controllers/clipboard_controller.js
546
- - app/javascript/geoblacklight/controllers/clover_viewer_controller.js
547
544
  - app/javascript/geoblacklight/controllers/downloads_controller.js
548
545
  - app/javascript/geoblacklight/controllers/leaflet_viewer_controller.js
549
546
  - app/javascript/geoblacklight/controllers/oembed_viewer_controller.js
@@ -608,9 +605,6 @@ files:
608
605
  - lib/generators/geoblacklight/templates/assets/geoblacklight.scss
609
606
  - lib/generators/geoblacklight/templates/base.html.erb
610
607
  - lib/generators/geoblacklight/templates/catalog_controller.rb
611
- - lib/generators/geoblacklight/templates/demo-app/Dockerfile
612
- - lib/generators/geoblacklight/templates/demo-app/compose.yml
613
- - lib/generators/geoblacklight/templates/demo-app/start-server.sh
614
608
  - lib/generators/geoblacklight/templates/settings.yml
615
609
  - lib/generators/geoblacklight/templates/vite.config.ts
616
610
  - lib/generators/geoblacklight/templates/vite.json
@@ -785,7 +779,6 @@ files:
785
779
  - spec/features/full_screen_control_spec.rb
786
780
  - spec/features/help_text_spec.rb
787
781
  - spec/features/home_page_spec.rb
788
- - spec/features/iiif_viewer_spec.rb
789
782
  - spec/features/index_map_spec.rb
790
783
  - spec/features/index_view_spec.rb
791
784
  - spec/features/layer_inspection_spec.rb
@@ -940,7 +933,6 @@ homepage: http://github.com/geoblacklight/geoblacklight
940
933
  licenses:
941
934
  - Apache 2.0
942
935
  metadata: {}
943
- post_install_message:
944
936
  rdoc_options: []
945
937
  require_paths:
946
938
  - lib
@@ -955,8 +947,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
955
947
  - !ruby/object:Gem::Version
956
948
  version: 2.5.2
957
949
  requirements: []
958
- rubygems_version: 3.5.11
959
- signing_key:
950
+ rubygems_version: 3.6.2
960
951
  specification_version: 4
961
952
  summary: A discovery platform for geospatial holdings
962
953
  test_files: []
@@ -1,156 +0,0 @@
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.2.2.1"
33
-
34
- - name: Build frontend package
35
- run: |
36
- yarn install
37
- yarn build
38
- yarn link
39
-
40
- - name: Build
41
- run: BRANCH=${{ env.BRANCH }} rails new build -m template.rb -a propshaft --css bootstrap --js rollup
42
-
43
- - name: Cleanup
44
- run: rm -rf build/node_modules build/Gemfile.lock build/yarn.lock build/tmp
45
-
46
- - name: Copy Dockerfile
47
- run: cp lib/generators/geoblacklight/templates/demo-app/Dockerfile build/.
48
-
49
- - name: Copy demo-app compose.yml
50
- run: cp -f lib/generators/geoblacklight/templates/demo-app/compose.yml build/.
51
-
52
- - name: Copy start-server script
53
- run: cp lib/generators/geoblacklight/templates/demo-app/start-server.sh build/.
54
-
55
- - name: Copy fixture solr documents
56
- run: mkdir -p build/spec/fixtures && cp -R spec/fixtures/solr_documents build/spec/fixtures/.
57
-
58
- - name: Replace main image tag with pr tag
59
- if: github.ref_name != 'main'
60
- run: sed -i 's/main/pr-${{ github.event.number }}/g' build/compose.yml
61
-
62
- - name: Upload app build
63
- uses: actions/upload-artifact@v4
64
- id: artifact-upload-step
65
- with:
66
- name: build-${{ env.BRANCH }}
67
- path: build/
68
-
69
- build-docker:
70
- runs-on: ubuntu-latest
71
- needs:
72
- - build-app
73
- steps:
74
- - name: Download app build
75
- uses: actions/download-artifact@v4
76
- with:
77
- name: build-${{ env.BRANCH }}
78
-
79
- - name: Set up QEMU
80
- uses: docker/setup-qemu-action@v3
81
-
82
- - name: Set up Docker Buildx
83
- uses: docker/setup-buildx-action@v3
84
-
85
- - name: Log in to the Container registry
86
- uses: docker/login-action@v3
87
- with:
88
- registry: ${{ env.REGISTRY }}
89
- username: ${{ github.actor }}
90
- password: ${{ secrets.GITHUB_TOKEN }}
91
-
92
- - name: Extract metadata (tags, labels) for Docker
93
- id: meta
94
- uses: docker/metadata-action@v5
95
- with:
96
- images: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}
97
- tags: |
98
- type=ref,event=branch
99
- type=ref,event=pr
100
- type=sha
101
- env:
102
- DOCKER_METADATA_PR_HEAD_SHA: true
103
-
104
- # Rebuild base context when triggered by schedule or workflow_dispatch
105
- - name: Build and push base Docker image
106
- uses: docker/build-push-action@v6
107
- if: github.event_name == 'workflow_dispatch' || github.event_name == 'schedule'
108
- with:
109
- context: "${{ github.workspace }}"
110
- file: "${{ github.workspace }}/Dockerfile"
111
- push: true
112
- platforms: linux/amd64,linux/arm64
113
- cache-from: type=gha
114
- cache-to: type=gha,mode=max
115
- tags: ghcr.io/geoblacklight/geoblacklight:base
116
- target: "base"
117
-
118
- # Build only the app context. Build times are faster because most
119
- # gems and node packages are already installed in the base context.
120
- - name: Build and push branch Docker image
121
- uses: docker/build-push-action@v6
122
- with:
123
- context: "${{ github.workspace }}"
124
- file: "${{ github.workspace }}/Dockerfile"
125
- push: true
126
- platforms: linux/amd64,linux/arm64
127
- cache-from: type=gha
128
- cache-to: type=gha,mode=max
129
- tags: ${{ steps.meta.outputs.tags }}
130
- labels: ${{ steps.meta.outputs.labels }}
131
- target: "app"
132
-
133
- notify:
134
- runs-on: ubuntu-latest
135
- if: github.ref_name != 'main'
136
- needs:
137
- - build-app
138
- - build-docker
139
- permissions:
140
- contents: read
141
- packages: write
142
- pull-requests: write
143
- steps:
144
- - name: Add artifact link to PR comments
145
- uses: mshick/add-pr-comment@v2
146
- with:
147
- message: |
148
- Demo app download link: ${{ needs.build-app.outputs.artifact-url }}
149
-
150
- 1. Download demo app and unzip file
151
- 2. Change into app directory
152
- - run `docker compose pull`
153
- - run `docker compose up`
154
- 3. Open in browser
155
- - App: http://127.0.0.1:3001
156
- - Solr: http://127.0.0.1:8984
@@ -1,19 +0,0 @@
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
@@ -1,47 +0,0 @@
1
- import { createElement } from "react";
2
- import { createRoot } from "react-dom/client";
3
- import Viewer from "@samvera/clover-iiif/viewer";
4
- import Image from "@samvera/clover-iiif/image";
5
- import { Controller } from "@hotwired/stimulus";
6
-
7
- const viewerOptions = {
8
- showTitle: false,
9
- showIIIFBadge: false,
10
- informationPanel: {
11
- renderToggle: false,
12
- renderAbout: false,
13
- },
14
- };
15
-
16
- export default class CloverViewerController extends Controller {
17
- static values = {
18
- url: String,
19
- protocol: String,
20
- };
21
-
22
- connect() {
23
- const root = createRoot(this.element);
24
- root.render(this.getViewer(this.protocolValue, this.urlValue));
25
- }
26
-
27
- getViewer(protocol, url) {
28
- if (protocol == "Iiif") {
29
- // Create a wrapper div with inline style, as recommended in the docs:
30
- // https://samvera-labs.github.io/clover-iiif/docs/image#react
31
- return createElement(
32
- "div",
33
- { style: { height: 400 } },
34
- createElement(Image, {
35
- src: url.replace(/\/info\.json$/, ""),
36
- isTiledImage: true,
37
- })
38
- );
39
- }
40
- if (protocol == "IiifManifest")
41
- return createElement(Viewer, {
42
- iiifContent: url,
43
- options: viewerOptions,
44
- });
45
- console.error(`Unsupported protocol name: "${protocol}"`);
46
- }
47
- }
@@ -1,31 +0,0 @@
1
- # syntax = docker/dockerfile:1
2
-
3
- # Make sure RUBY_VERSION matches the Ruby version in .ruby-version and Gemfile
4
- ARG RUBY_VERSION=3.3.4
5
- FROM registry.docker.com/library/ruby:$RUBY_VERSION-slim AS base
6
-
7
- RUN apt-get update -qq && \
8
- apt-get install --no-install-recommends -y build-essential git pkg-config nodejs npm curl libsqlite3-0
9
-
10
- RUN npm install --global yarn
11
-
12
- ENV RAILS_ENV="development" \
13
- BUNDLE_PATH="/usr/local/bundle"
14
-
15
- # Rails app lives here
16
- WORKDIR /rails
17
-
18
- # Install gems and javascript packages
19
- COPY Gemfile .
20
- RUN bundle install
21
- COPY package.json .
22
- RUN yarn install
23
-
24
- FROM ghcr.io/geoblacklight/geoblacklight:base AS app
25
-
26
- # Add application code
27
- COPY . .
28
-
29
- # Run the server script by default, this can be overwritten at runtime
30
- EXPOSE 3000
31
- CMD ["sh", "start-server"]
@@ -1,26 +0,0 @@
1
- services:
2
- app:
3
- image: ghcr.io/geoblacklight/geoblacklight:main
4
- ports:
5
- - "3001:3001"
6
- links:
7
- - "solr:solr"
8
- environment:
9
- SOLR_URL: "http://solr:8983/solr/blacklight-core"
10
- RAILS_DEVELOPMENT_HOSTS: ".githubpreview.dev,.preview.app.github.dev,.app.github.dev,.csb.app"
11
- depends_on:
12
- - solr
13
- command: sh start-server.sh
14
- solr:
15
- image: solr:9.6.1
16
- volumes:
17
- - $PWD/solr/conf:/opt/solr/conf
18
- ports:
19
- - 8984:8983
20
- entrypoint:
21
- - docker-entrypoint.sh
22
- - solr-precreate
23
- - blacklight-core
24
- - /opt/solr/conf
25
- - "-Xms256m"
26
- - "-Xmx512m"
@@ -1,21 +0,0 @@
1
- #!/bin/sh
2
-
3
- bundle install
4
- yarn install
5
-
6
- # Build and Install local copy of @geoblackligt/frontend
7
- # These steps are included in the docker image instead if the image build script
8
- # to reduce the size of the layers that docker compose has to pull with each new version.
9
- gempath=$(bundle exec gem which geoblacklight | sed 's/\/lib\/geoblacklight.rb//')
10
- if [ ! -d "$gempath/dist/" ]; then
11
- cd $gempath
12
- yarn install
13
- yarn vite build
14
- cd -
15
- fi
16
- yarn add file:$gempath
17
-
18
- # Start the server
19
- bundle exec rake db:prepare
20
- bundle exec rake geoblacklight:index:seed
21
- bundle exec rails server -b 0.0.0.0 -p 3001
@@ -1,10 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require "spec_helper"
4
-
5
- feature "iiif reference" do
6
- scenario "displays leaflet viewer", js: true do
7
- visit solr_document_path("princeton-02870w62c")
8
- expect(page).to have_css '[data-button="zoom-in"]', visible: true
9
- end
10
- end