blacklight_allmaps 0.2.0 → 0.4.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (120) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/ci.yml +107 -0
  3. data/.gitignore +20 -0
  4. data/.standard.yml +1 -0
  5. data/Gemfile +50 -0
  6. data/README.md +47 -6
  7. data/Rakefile +4 -0
  8. data/app/assets/images/blacklight_allmaps/.keep +0 -0
  9. data/app/assets/javascripts/blacklight/allmaps/blacklight-allmaps.esm.js +41 -0
  10. data/app/assets/javascripts/blacklight/allmaps/blacklight-allmaps.esm.js.map +1 -1
  11. data/app/assets/javascripts/blacklight/allmaps/blacklight-allmaps.js +41 -0
  12. data/app/assets/javascripts/blacklight/allmaps/blacklight-allmaps.js.map +1 -1
  13. data/app/assets/stylesheets/blacklight/allmaps/base.scss +4 -1
  14. data/app/assets/stylesheets/blacklight/allmaps/modules/leaflet.opacity.css +76 -0
  15. data/app/controllers/allmaps/annotations_controller.rb +65 -0
  16. data/app/helpers/blacklight/allmaps/application_helper.rb +1 -1
  17. data/app/javascript/blacklight/allmaps/index.js +6 -0
  18. data/app/javascript/blacklight/allmaps/update_georef_links.js +36 -0
  19. data/app/jobs/blacklight/allmaps/store_sidecar_annotation.rb +7 -1
  20. data/app/models/concerns/.keep +0 -0
  21. data/app/models/concerns/blacklight/allmaps/solr_document.rb +1 -2
  22. data/app/views/allmaps/show/_blacklight.html.erb +1 -1
  23. data/app/views/allmaps/show/_geoblacklight.html.erb +1 -1
  24. data/app/views/allmaps/sidebar/_allmaps.html.erb +4 -32
  25. data/app/views/annotations/_annotation.json.jbuilder +1 -0
  26. data/app/views/annotations/_pagination.json.jbuilder +9 -0
  27. data/app/views/annotations/index.json.jbuilder +4 -0
  28. data/app/views/annotations/show.json.jbuilder +1 -0
  29. data/app/views/catalog/_show_allmaps_tabbed_viewer_container.html.erb +3 -3
  30. data/blacklight_allmaps.gemspec +34 -0
  31. data/config/locales/allmaps.en.yml +11 -0
  32. data/config/routes.rb +7 -0
  33. data/doc/Proposal_Eric_Larson_Ian_Spangler_4CE510.pdf +0 -0
  34. data/doc/allmaps_branding_screenshot.png +0 -0
  35. data/doc/allmaps_screenshot.png +0 -0
  36. data/doc/allmaps_screenshot_window.png +0 -0
  37. data/doc/development.md +72 -0
  38. data/doc/gbl_screenshot.png +0 -0
  39. data/doc/gbl_screenshot_window.png +0 -0
  40. data/doc/georeferenced_facet.png +0 -0
  41. data/doc/screenshot_layers.acorn +0 -0
  42. data/doc/screenshot_layers.png +0 -0
  43. data/lib/blacklight/allmaps/tasks/index.rake +7 -57
  44. data/lib/blacklight/allmaps/tasks/sidecars.rake +9 -0
  45. data/lib/blacklight/allmaps/version.rb +1 -1
  46. data/lib/blacklight/allmaps.rb +10 -2
  47. data/lib/generators/blacklight/allmaps/blacklight_generator.rb +54 -0
  48. data/lib/generators/blacklight/allmaps/config_generator.rb +7 -53
  49. data/lib/generators/blacklight/allmaps/geoblacklight_generator.rb +59 -0
  50. data/lib/generators/blacklight/allmaps/install_generator.rb +10 -0
  51. data/lib/generators/blacklight/allmaps/templates/package.json +6 -0
  52. data/package.json +43 -0
  53. data/rollup.config.js +43 -0
  54. data/solr/blacklight/conf/_rest_managed.json +3 -0
  55. data/solr/blacklight/conf/admin-extra.html +31 -0
  56. data/solr/blacklight/conf/elevate.xml +36 -0
  57. data/solr/blacklight/conf/mapping-ISOLatin1Accent.txt +246 -0
  58. data/solr/blacklight/conf/protwords.txt +21 -0
  59. data/solr/blacklight/conf/schema.xml +388 -0
  60. data/solr/blacklight/conf/scripts.conf +24 -0
  61. data/solr/blacklight/conf/solrconfig.xml +265 -0
  62. data/solr/blacklight/conf/spellings.txt +2 -0
  63. data/solr/blacklight/conf/stopwords.txt +58 -0
  64. data/solr/blacklight/conf/stopwords_en.txt +58 -0
  65. data/solr/blacklight/conf/synonyms.txt +31 -0
  66. data/solr/blacklight/conf/xslt/example.xsl +132 -0
  67. data/solr/blacklight/conf/xslt/example_atom.xsl +67 -0
  68. data/solr/blacklight/conf/xslt/example_rss.xsl +66 -0
  69. data/solr/blacklight/conf/xslt/luke.xsl +337 -0
  70. data/solr/geoblacklight/conf/_rest_managed.json +3 -0
  71. data/solr/geoblacklight/conf/admin-extra.html +31 -0
  72. data/solr/geoblacklight/conf/core.properties +5 -0
  73. data/solr/geoblacklight/conf/elevate.xml +36 -0
  74. data/solr/geoblacklight/conf/mapping-ISOLatin1Accent.txt +246 -0
  75. data/solr/geoblacklight/conf/protwords.txt +21 -0
  76. data/solr/geoblacklight/conf/schema.xml +198 -0
  77. data/solr/geoblacklight/conf/scripts.conf +24 -0
  78. data/solr/geoblacklight/conf/solrconfig.xml +243 -0
  79. data/solr/geoblacklight/conf/spellings.txt +2 -0
  80. data/solr/geoblacklight/conf/stopwords.txt +58 -0
  81. data/solr/geoblacklight/conf/stopwords_en.txt +58 -0
  82. data/solr/geoblacklight/conf/synonyms.txt +31 -0
  83. data/solr/geoblacklight/conf/xslt/example.xsl +132 -0
  84. data/solr/geoblacklight/conf/xslt/example_atom.xsl +67 -0
  85. data/solr/geoblacklight/conf/xslt/example_rss.xsl +66 -0
  86. data/solr/geoblacklight/conf/xslt/luke.xsl +337 -0
  87. data/spec/controllers/annotations_controller_spec.rb +74 -0
  88. data/spec/factories/annotations.rb +12 -0
  89. data/spec/features/show_page_spec.rb +35 -0
  90. data/spec/features/sidebar_spec.rb +28 -0
  91. data/spec/fixtures/blacklight_allmaps_sidecars.yml +1203 -0
  92. data/spec/fixtures/solr_documents/README.md +15 -0
  93. data/spec/fixtures/solr_documents/blacklight/README.md +9 -0
  94. data/spec/fixtures/solr_documents/blacklight/bl_georeferenced.json +40 -0
  95. data/spec/fixtures/solr_documents/geoblacklight/gbl_btaa_northwestern_georeferenced.json +57 -0
  96. data/spec/fixtures/solr_documents/geoblacklight/gbl_harvard-g4124-m2-1855-m3_georefereneced.json +68 -0
  97. data/spec/fixtures/solr_documents/geoblacklight/gbl_not_georeferenced.json +67 -0
  98. data/spec/fixtures/solr_documents/geoblacklight/gbl_osu-0r967h708_georeferenced.json +60 -0
  99. data/spec/fixtures/solr_documents/geoblacklight/gbl_p16022coll230:1933_georeferenced.json +60 -0
  100. data/spec/fixtures/solr_documents/geoblacklight/gbl_p16022coll230:360_georeferenced.json +67 -0
  101. data/spec/fixtures/solr_documents/geoblacklight/gbl_p16022coll230:4038_georeferenced.json +53 -0
  102. data/spec/helpers/blacklight/allmaps/application_helper_spec.rb +28 -0
  103. data/spec/models/blacklight/allmaps/sidecar_allmaps_spec.rb +22 -0
  104. data/spec/spec_helper.rb +53 -0
  105. data/spec/test_app_templates/Gemfile.extra +2 -0
  106. data/spec/test_app_templates/lib/generators/test_app_generator.rb +48 -0
  107. data/vendor/assets/images/fullscreen.png +0 -0
  108. data/vendor/assets/images/fullscreen@2x.png +0 -0
  109. data/vendor/assets/images/layers-2x.png +0 -0
  110. data/vendor/assets/images/layers.png +0 -0
  111. data/vendor/assets/images/marker-icon-2x.png +0 -0
  112. data/vendor/assets/images/marker-icon.png +0 -0
  113. data/vendor/assets/images/marker-shadow.png +0 -0
  114. data/vendor/assets/stylesheets/leaflet.css +640 -0
  115. data/vendor/assets/stylesheets/leaflet.fullscreen.css +40 -0
  116. metadata +109 -7
  117. data/app/controllers/blacklight/allmaps/application_controller.rb +0 -6
  118. data/app/jobs/blacklight/allmaps/application_job.rb +0 -6
  119. data/app/mailers/blacklight/allmaps/application_mailer.rb +0 -8
  120. data/app/models/blacklight/allmaps/application_record.rb +0 -7
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: b6dd1b81643cf47fb27e96e46ebd57783c7a276f0c62d4a955358eddaccaa2ba
4
- data.tar.gz: 55425ab5cabddc7f09b8da4bf81a421c5fbbc57e9b5e5925a874750a285cb9e0
3
+ metadata.gz: 36ee8dcecb6fdfe204e03e183438a3a41e09dd802e6efaa42f2e865aacdef99b
4
+ data.tar.gz: ad4a15de994f88bae9597e26761d5ad4aceb7ddfd227a823b68287f44043f75b
5
5
  SHA512:
6
- metadata.gz: cb4bf70dcd2491554327acaae79c8fd8fa0ff0eff8fa4a32728f602090072a5ca59c961003db9f9847f4cdbac61c22cab8dfd7358f223b62b7209da72e32631b
7
- data.tar.gz: 1fbab7b1404ff1ddb861df8163c2ac17e5f5105bad2e5947170032f0002363e5576656d39459504c584317e8df169e5e382a8efc47e3814dc3ffccc4987e53b3
6
+ metadata.gz: 5699838093c01346ad2dd666d3c930b002fbd00aa65909441c184b8f6b0906957b2a1e0195dddde11502864583273580558ac593e4e10280be028bc01e1ea292
7
+ data.tar.gz: 5fe0001de0341c5289d3914b1df02ec8425e6fe88fa26c28f6b8976a241fca3186e5d82b336776c773d8fc1b215fa34484f021f1f14362daa6a09fcd66e01f88
@@ -0,0 +1,107 @@
1
+ name: CI
2
+
3
+ on:
4
+ push:
5
+ branches:
6
+ - main
7
+ pull_request:
8
+
9
+ jobs:
10
+ linter:
11
+ runs-on: ubuntu-latest
12
+ steps:
13
+ - uses: actions/checkout@v3
14
+ - name: Set up Ruby
15
+ uses: ruby/setup-ruby@v1
16
+ with:
17
+ ruby-version: 3.3
18
+ - name: Install dependencies
19
+ run: bundle install
20
+ - name: Run linter
21
+ run: bundle exec standardrb
22
+
23
+ test_blacklight:
24
+ runs-on: ubuntu-latest
25
+ strategy:
26
+ matrix:
27
+ ruby_version: [3.3]
28
+ rails_version: [7.1.3.2]
29
+
30
+ name: Test Blacklight / Ruby ${{ matrix.ruby_version }} / Rails ${{ matrix.rails_version }}
31
+ steps:
32
+ - uses: actions/checkout@v3
33
+ - name: Set up Ruby
34
+ uses: ruby/setup-ruby@v1
35
+ with:
36
+ ruby-version: ${{ matrix.ruby_version }}
37
+ - name: Set up Node
38
+ uses: actions/setup-node@v4
39
+ with:
40
+ node-version: '20.x'
41
+ - name: Create Solr container
42
+ run: docker run -d -p 8983:8983 geoblacklight/solr:8.9-v1.0.0 server/scripts/ci-start.sh
43
+ - name: Lock platform version
44
+ run: bundle lock --add-platform ruby
45
+ - name: Install dependencies
46
+ run: bundle install
47
+ env:
48
+ RAILS_VERSION: ${{ matrix.rails_version }}
49
+ LIGHT: geoblacklight
50
+ - name: Setup Yarn
51
+ run: exec "yarnpkg"
52
+ - name: Load config into solr
53
+ run: |
54
+ cd solr/blacklight/conf
55
+ zip -1 -r solr_config.zip ./*
56
+ curl -H "Content-type:application/octet-stream" --data-binary @solr_config.zip "http://solr:SolrRocks@127.0.0.1:8983/solr/admin/configs?action=UPLOAD&name=blacklight"
57
+ curl -H 'Content-type: application/json' http://solr:SolrRocks@127.0.0.1:8983/api/collections/ -d '{create: {name: blacklight-core, config: blacklight, numShards: 1}}'
58
+ - name: Run tests
59
+ run: bundle exec rake ci
60
+ env:
61
+ RAILS_VERSION: ${{ matrix.rails_version }}
62
+ ENGINE_CART_RAILS_OPTIONS: '--skip-git --skip-listen --skip-spring --skip-keeps --skip-action-cable --skip-coffee --skip-test'
63
+ SOLR_URL: http://solr:SolrRocks@localhost:8983/solr/blacklight-core
64
+ LIGHT: blacklight
65
+
66
+ test_geoblacklight:
67
+ runs-on: ubuntu-latest
68
+ strategy:
69
+ matrix:
70
+ ruby_version: [3.3]
71
+ rails_version: [7.1.3.2]
72
+
73
+ name: Test GeoBlacklight / Ruby ${{ matrix.ruby_version }} / Rails ${{ matrix.rails_version }}
74
+ steps:
75
+ - uses: actions/checkout@v3
76
+ - name: Set up Ruby
77
+ uses: ruby/setup-ruby@v1
78
+ with:
79
+ ruby-version: ${{ matrix.ruby_version }}
80
+ - name: Set up Node
81
+ uses: actions/setup-node@v4
82
+ with:
83
+ node-version: '20.x'
84
+ - name: Create Solr container
85
+ run: docker run -d -p 8983:8983 geoblacklight/solr:8.9-v1.0.0 server/scripts/ci-start.sh
86
+ - name: Lock platform version
87
+ run: bundle lock --add-platform ruby
88
+ - name: Install dependencies
89
+ run: bundle install
90
+ env:
91
+ RAILS_VERSION: ${{ matrix.rails_version }}
92
+ LIGHT: geoblacklight
93
+ - name: Setup Yarn
94
+ run: exec "yarnpkg"
95
+ - name: Load config into solr
96
+ run: |
97
+ cd solr/geoblacklight/conf
98
+ zip -1 -r solr_config.zip ./*
99
+ curl -H "Content-type:application/octet-stream" --data-binary @solr_config.zip "http://solr:SolrRocks@127.0.0.1:8983/solr/admin/configs?action=UPLOAD&name=blacklight"
100
+ curl -H 'Content-type: application/json' http://solr:SolrRocks@127.0.0.1:8983/api/collections/ -d '{create: {name: blacklight-core, config: blacklight, numShards: 1}}'
101
+ - name: Run tests
102
+ run: bundle exec rake ci
103
+ env:
104
+ RAILS_VERSION: ${{ matrix.rails_version }}
105
+ ENGINE_CART_RAILS_OPTIONS: '--skip-git --skip-listen --skip-spring --skip-keeps --skip-action-cable --skip-coffee --skip-test'
106
+ SOLR_URL: http://solr:SolrRocks@localhost:8983/solr/blacklight-core
107
+ LIGHT: geoblacklight
data/.gitignore ADDED
@@ -0,0 +1,20 @@
1
+ .ruby-version
2
+ *.gem
3
+ Gemfile.lock
4
+ /.bundle/
5
+ /log/*.log
6
+ /pkg/
7
+ /tmp/
8
+
9
+ .internal_test_app
10
+
11
+ # Setup local JavaScript ignores
12
+ /node_modules
13
+ /yarn-error.log
14
+ yarn-debug.log*
15
+ .yarn-integrity
16
+ yarn.lock
17
+
18
+ node_modules
19
+ package-lock.json
20
+ dist
data/.standard.yml ADDED
@@ -0,0 +1 @@
1
+ format: progress
data/Gemfile ADDED
@@ -0,0 +1,50 @@
1
+ source "https://rubygems.org"
2
+ git_source(:github) { |repo| "https://github.com/#{repo}.git" }
3
+
4
+ # Specify your gem's dependencies in blacklight_allmaps.gemspec.
5
+ gemspec
6
+
7
+ group :test do
8
+ gem "capybara", require: false
9
+ gem "engine_cart", require: false
10
+ gem "factory_bot_rails", require: false
11
+ gem "rails-controller-testing", require: false
12
+ gem "rspec-rails", require: false
13
+ gem "standardrb", require: false
14
+ gem "webdrivers", require: false
15
+ end
16
+
17
+ # Start debugger with binding.b [https://github.com/ruby/debug]
18
+ # gem "debug", ">= 1.0.0"
19
+
20
+ # BEGIN ENGINE_CART BLOCK
21
+ # engine_cart: 2.6.0
22
+ # engine_cart stanza: 2.5.0
23
+ # the below comes from engine_cart, a gem used to test this Rails engine gem in the context of a Rails app.
24
+ file = File.expand_path("Gemfile", ENV["ENGINE_CART_DESTINATION"] || ENV["RAILS_ROOT"] || File.expand_path(".internal_test_app", File.dirname(__FILE__)))
25
+ if File.exist?(file)
26
+ begin
27
+ eval_gemfile file
28
+ rescue Bundler::GemfileError => e
29
+ Bundler.ui.warn "[EngineCart] Skipping Rails application dependencies:"
30
+ Bundler.ui.warn e.message
31
+ end
32
+ else
33
+ Bundler.ui.warn "[EngineCart] Unable to find test application dependencies in #{file}, using placeholder dependencies"
34
+
35
+ if ENV["RAILS_VERSION"]
36
+ if ENV["RAILS_VERSION"] == "edge"
37
+ gem "rails", github: "rails/rails"
38
+ ENV["ENGINE_CART_RAILS_OPTIONS"] = "--edge --skip-turbolinks"
39
+ else
40
+ gem "rails", ENV["RAILS_VERSION"]
41
+ end
42
+ end
43
+ end
44
+
45
+ if File.exist?("spec/test_app_templates/Gemfile.extra")
46
+ # rubocop:disable Security/Eval
47
+ eval File.read("spec/test_app_templates/Gemfile.extra"), nil, "spec/test_app_templates/Gemfile.extra"
48
+ # rubocop:enable Security/Eval
49
+ end
50
+ # END ENGINE_CART BLOCK
data/README.md CHANGED
@@ -36,6 +36,27 @@ LIGHT=blacklight bundle exec rails generate blacklight:allmaps:install
36
36
  LIGHT=geoblacklight bundle exec rails generate blacklight:allmaps:install
37
37
  ```
38
38
 
39
+ ## CatalogController Configuration
40
+
41
+ Configure options for local use are set into the `catalog_controller.rb` file.
42
+
43
+ ### Blacklight
44
+
45
+ ```ruby
46
+ # Blacklight::Allmaps Viewer
47
+ config.show.partials.insert(1, :blacklight_allmaps)
48
+ config.default_solr_unique_key = "id"
49
+ config.default_georeferenced_field = "bl_georeferenced_bsi"
50
+ config.default_iiif_manifest_field = "iiif_manifest_url_ssi"
51
+ ```
52
+
53
+ ### GeoBlacklight
54
+ ```ruby
55
+ # Blacklight::Allmaps Viewer
56
+ config.default_solr_unique_key = "id"
57
+ config.default_georeferenced_field = "gbl_georeferenced_b"
58
+ ```
59
+
39
60
  ## Rake Tasks
40
61
 
41
62
  ### Seed Fixtures
@@ -61,6 +82,13 @@ The rake task here kicks off a background harvest process that walks through you
61
82
  rake blacklight_allmaps:sidecars:harvest:allmaps
62
83
  ```
63
84
 
85
+ Alternatively, you can harvest Allmaps data for a list of identifers
86
+
87
+ ```bash
88
+ # For Blacklight or GeoBlacklight
89
+ rake "blacklight_allmaps:sidecars:harvest_ids[id1 id2 ...]"
90
+ ```
91
+
64
92
  ### Populate the Georeferenced Facet
65
93
 
66
94
  We expose the georeferenced items in the Blacklight user interface via a Georeferenced facet:
@@ -68,11 +96,8 @@ We expose the georeferenced items in the Blacklight user interface via a Georefe
68
96
  ![Screen shot](doc/georeferenced_facet.png)
69
97
 
70
98
  ```bash
71
- # For Blacklight...
72
- LIGHT=blacklight rake blacklight_allmaps:index:bl_georeferenced_facet
73
-
74
- # For GeoBlacklight...
75
- LIGHT=geoblacklight rake blacklight_allmaps:index:gbl_georeferenced_facet
99
+ # For Blacklight or GeoBlacklight
100
+ rake blacklight_allmaps:index:georeferenced_facet
76
101
  ```
77
102
 
78
103
  ## ActiveRecord Objects — Blacklight::Allmaps::Sidecar
@@ -81,7 +106,8 @@ Blacklight::Allmaps adopts the SolrDocumentSidecar "sidecar" pattern from [Spotl
81
106
 
82
107
  We use this `document.sidecar_allmaps` object to hold the results of the Allmaps Annotation harvest task.
83
108
 
84
- The Blacklight::Allmaps::Sidecar object contains:
109
+ The `Blacklight::Allmaps::Sidecar` object contains:
110
+
85
111
  | Field | Value |
86
112
  | --- | --- |
87
113
  | id | primary key |
@@ -115,6 +141,21 @@ document.sidecar_allmaps =>
115
141
  updated_at: Tue, 26 Mar 2024 16:39:42.427682000 UTC +00:00>
116
142
  ```
117
143
 
144
+ ## Allmaps::AnnotationsController
145
+
146
+ We've added an annotations controller to the application to expose the `Blacklight::Allmaps::Sidecar` data we've harvested. This controller returns only JSON.
147
+
148
+ The `#fetch` method will query Allmaps in real time for updated annotation data, should a nightly harvest (rake) be insufficient for Solr indexing or local development needs.
149
+
150
+ ```
151
+ Routes for Blacklight::Allmaps::Engine:
152
+ fetch_allmaps_annotation GET /allmaps/annotations/:id/fetch(.:format) allmaps/annotations#fetch {:format=>:json}
153
+ allmaps_annotations GET /allmaps/annotations(.:format) allmaps/annotations#index {:format=>:json}
154
+ allmaps_annotation GET /allmaps/annotations/:id(.:format) allmaps/annotations#show {:format=>:json}
155
+ PATCH /allmaps/annotations/:id(.:format) allmaps/annotations#update {:format=>:json}
156
+ PUT /allmaps/annotations/:id(.:format) allmaps/annotations#update {:format=>:json}
157
+ ```
158
+
118
159
  ## Contributing
119
160
 
120
161
  For Developer documentation see [doc/developer.md](./doc/development.md)
data/Rakefile CHANGED
@@ -1,12 +1,16 @@
1
+ require "rails"
1
2
  require "rake"
2
3
  require "bundler"
4
+
3
5
  Bundler::GemHelper.install_tasks
4
6
 
7
+ require "bundler/setup"
5
8
  require "bundler/gem_tasks"
6
9
 
7
10
  require "rspec/core/rake_task"
8
11
  require "engine_cart/rake_task"
9
12
  require "solr_wrapper"
13
+ require "solr_wrapper/rake_task"
10
14
  require "blacklight/allmaps/rake_task"
11
15
 
12
16
  task default: :ci
File without changes
@@ -26771,6 +26771,47 @@ function initializeBlacklightMap() {
26771
26771
  }
26772
26772
  // app/javascript/blacklight/allmaps/initialize_blacklight_map.js
26773
26773
 
26774
+ // update_georef_links.js
26775
+ const updateGeorefLinks = async () => {
26776
+ const sidebarElement = document.getElementById('allmaps-sidebar');
26777
+ if (sidebarElement) {
26778
+ const manifestUrl = sidebarElement.getAttribute('data-iiif-manifest');
26779
+ const documentId = sidebarElement.getAttribute('data-document-id');
26780
+ const georefDiv = document.getElementById('georeferencing');
26781
+ const annotationUrlByIIIFUri = `https://annotations.allmaps.org/?url=${manifestUrl}`;
26782
+
26783
+ try {
26784
+ const response = await fetch(annotationUrlByIIIFUri);
26785
+ if (!response.ok) {
26786
+ georefDiv.innerHTML = `<a href="https://editor.allmaps.org/#/collection?url=${manifestUrl}" target="_blank">Georeference this item</a>`;
26787
+
26788
+ const csrfToken = document.querySelector("meta[name='csrf-token']").getAttribute("content");
26789
+ fetch(`/allmaps/annotations/${documentId}`, {
26790
+ method: "PUT",
26791
+ headers: {
26792
+ "X-CSRF-Token": csrfToken,
26793
+ "Content-Type": "application/json",
26794
+ "Accept": "application/json"
26795
+ }
26796
+ })
26797
+ .then(response => response.json())
26798
+ .then(data => console.log(data))
26799
+ .catch(error => console.error(error));
26800
+
26801
+ } else {
26802
+ const annotationUrl = response.url;
26803
+ georefDiv.innerHTML = `<a href="https://viewer.allmaps.org/?url=${annotationUrl}" target="_blank">View this georeferenced item</a>`;
26804
+ }
26805
+ } catch (error) {
26806
+ console.error("Fetch error:", error);
26807
+ }
26808
+ }
26809
+ };
26810
+
26774
26811
  initializeGeoBlacklightMap();
26775
26812
  initializeBlacklightMap();
26813
+
26814
+ document.addEventListener('DOMContentLoaded', () => {
26815
+ updateGeorefLinks();
26816
+ });
26776
26817
  //# sourceMappingURL=blacklight-allmaps.esm.js.map